From 78e1a5b067c1612d3694248ad4d0f5651f7205a3 Mon Sep 17 00:00:00 2001 From: byuu Date: Sat, 13 Mar 2010 15:40:21 +0000 Subject: [PATCH] Update to bsnes v061r02 release. Complete rewrite of adc + sbc opcodes, should fix: - adc BCD overflow flag - sbc BCD overflow flag - sbc BCD invalid input value Testing is appreciated, I believe Sim Earth is probably the most likely to observe any difference. --- QtCore4.dll | Bin 672768 -> 0 bytes QtGui4.dll | Bin 2635264 -> 0 bytes bsnes-debugger.exe | Bin 707584 -> 0 bytes bsnes.exe | Bin 597533 -> 670208 bytes libgomp-1.dll | Bin 58086 -> 0 bytes mingwm10.dll | Bin 13599 -> 0 bytes pixelshaders/Curvature/fragment | 17 - pixelshaders/HDRTV/fragment | 14 - pixelshaders/HDRTV/vertex | 9 - pixelshaders/HLSL/sepia.fx | 25 - pixelshaders/HQ2x/fragment | 49 - pixelshaders/HQ2x/vertex | 26 - pixelshaders/Pixellate/fragment | 36 - pixelshaders/Pixellate/vertex | 8 - pixelshaders/Scale2x/fragment | 28 - pixelshaders/Scale2x/vertex | 28 - pthreadGC2.dll | Bin 47822 -> 0 bytes snesfilter.dll | Bin 96554 -> 0 bytes snesfilter/2xsai/2xsai.cpp | 132 - snesfilter/2xsai/2xsai.hpp | 35 - snesfilter/2xsai/implementation.cpp | 1171 ----- snesfilter/Makefile | 89 - snesfilter/cc.bat | 2 - snesfilter/clean.bat | 1 - snesfilter/direct/direct.cpp | 32 - snesfilter/direct/direct.hpp | 5 - snesfilter/hq2x/hq2x.cpp | 203 - snesfilter/hq2x/hq2x.hpp | 30 - snesfilter/lq2x/lq2x.cpp | 61 - snesfilter/lq2x/lq2x.hpp | 5 - snesfilter/nall/Makefile | 107 - snesfilter/nall/algorithm.hpp | 23 - snesfilter/nall/any.hpp | 74 - snesfilter/nall/array.hpp | 118 - snesfilter/nall/base64.hpp | 90 - snesfilter/nall/bit.hpp | 51 - snesfilter/nall/concept.hpp | 15 - snesfilter/nall/config.hpp | 124 - snesfilter/nall/crc32.hpp | 66 - snesfilter/nall/detect.hpp | 30 - snesfilter/nall/dictionary.hpp | 76 - snesfilter/nall/dl.hpp | 119 - snesfilter/nall/endian.hpp | 38 - snesfilter/nall/file.hpp | 259 -- snesfilter/nall/filemap.hpp | 190 - snesfilter/nall/foreach.hpp | 31 - snesfilter/nall/function.hpp | 190 - snesfilter/nall/input.hpp | 386 -- snesfilter/nall/lzss.hpp | 81 - snesfilter/nall/moduloarray.hpp | 40 - snesfilter/nall/platform.hpp | 80 - snesfilter/nall/priorityqueue.hpp | 109 - snesfilter/nall/property.hpp | 91 - snesfilter/nall/qt/Makefile | 55 - snesfilter/nall/qt/check-action.moc.hpp | 41 - snesfilter/nall/qt/concept.hpp | 10 - snesfilter/nall/qt/file-dialog.moc.hpp | 392 -- snesfilter/nall/qt/hex-editor.moc.hpp | 173 - snesfilter/nall/qt/radio-action.moc.hpp | 41 - snesfilter/nall/qt/window.moc.hpp | 105 - snesfilter/nall/serial.hpp | 80 - snesfilter/nall/serializer.hpp | 143 - snesfilter/nall/sha256.hpp | 143 - snesfilter/nall/sort.hpp | 62 - snesfilter/nall/static.hpp | 20 - snesfilter/nall/stdint.hpp | 44 - snesfilter/nall/string.hpp | 26 - snesfilter/nall/string/base.hpp | 126 - snesfilter/nall/string/cast.hpp | 29 - snesfilter/nall/string/compare.hpp | 100 - snesfilter/nall/string/convert.hpp | 149 - snesfilter/nall/string/core.hpp | 132 - snesfilter/nall/string/filename.hpp | 60 - snesfilter/nall/string/match.hpp | 72 - snesfilter/nall/string/math.hpp | 160 - snesfilter/nall/string/replace.hpp | 103 - snesfilter/nall/string/split.hpp | 56 - snesfilter/nall/string/strl.hpp | 48 - snesfilter/nall/string/trim.hpp | 50 - snesfilter/nall/string/utility.hpp | 165 - snesfilter/nall/string/variadic.hpp | 37 - snesfilter/nall/string/xml.hpp | 268 -- snesfilter/nall/traits.hpp | 97 - snesfilter/nall/ups.hpp | 190 - snesfilter/nall/utf8.hpp | 72 - snesfilter/nall/utility.hpp | 41 - snesfilter/nall/varint.hpp | 92 - snesfilter/nall/vector.hpp | 235 - snesfilter/ntsc/ntsc.cpp | 396 -- snesfilter/ntsc/ntsc.moc.hpp | 91 - snesfilter/ntsc/snes_ntsc/snes_ntsc.c | 251 -- snesfilter/ntsc/snes_ntsc/snes_ntsc.h | 228 - snesfilter/ntsc/snes_ntsc/snes_ntsc_config.h | 26 - snesfilter/ntsc/snes_ntsc/snes_ntsc_impl.h | 439 -- snesfilter/pixellate2x/pixellate2x.cpp | 39 - snesfilter/pixellate2x/pixellate2x.hpp | 5 - snesfilter/scale2x/scale2x.cpp | 61 - snesfilter/scale2x/scale2x.hpp | 5 - snesfilter/snesfilter.cpp | 84 - snesfilter/snesfilter.hpp | 16 - snesfilter/sync.sh | 2 - snesreader.dll | Bin 766679 -> 0 bytes snesreader/7z_C/7zAlloc.c | 77 - snesreader/7z_C/7zAlloc.h | 23 - snesreader/7z_C/7zBuf.c | 36 - snesreader/7z_C/7zBuf.h | 31 - snesreader/7z_C/7zC.txt | 194 - snesreader/7z_C/7zCrc.c | 35 - snesreader/7z_C/7zCrc.h | 32 - snesreader/7z_C/7zDecode.c | 257 -- snesreader/7z_C/7zDecode.h | 13 - snesreader/7z_C/7zExtract.c | 93 - snesreader/7z_C/7zExtract.h | 49 - snesreader/7z_C/7zHeader.c | 6 - snesreader/7z_C/7zHeader.h | 57 - snesreader/7z_C/7zIn.c | 1204 ------ snesreader/7z_C/7zIn.h | 49 - snesreader/7z_C/7zItem.c | 129 - snesreader/7z_C/7zItem.h | 83 - snesreader/7z_C/7zStream.c | 184 - snesreader/7z_C/Bcj2.c | 132 - snesreader/7z_C/Bcj2.h | 30 - snesreader/7z_C/Bra.h | 60 - snesreader/7z_C/Bra86.c | 85 - snesreader/7z_C/CpuArch.h | 69 - snesreader/7z_C/LzmaDec.c | 1010 ----- snesreader/7z_C/LzmaDec.h | 223 - snesreader/7z_C/Types.h | 206 - snesreader/7z_C/lzma.txt | 594 --- snesreader/7z_C/readme.txt | 19 - snesreader/Makefile | 188 - snesreader/cc.bat | 2 - snesreader/clean.bat | 1 - snesreader/fex/Binary_Extractor.cpp | 77 - snesreader/fex/Binary_Extractor.h | 26 - snesreader/fex/Data_Reader.cpp | 551 --- snesreader/fex/Data_Reader.h | 264 -- snesreader/fex/File_Extractor.cpp | 341 -- snesreader/fex/File_Extractor.h | 191 - snesreader/fex/Gzip_Extractor.cpp | 98 - snesreader/fex/Gzip_Extractor.h | 34 - snesreader/fex/Gzip_Reader.cpp | 85 - snesreader/fex/Gzip_Reader.h | 46 - snesreader/fex/Rar_Extractor.cpp | 197 - snesreader/fex/Rar_Extractor.h | 43 - snesreader/fex/Zip7_Extractor.cpp | 252 -- snesreader/fex/Zip7_Extractor.h | 34 - snesreader/fex/Zip_Extractor.cpp | 390 -- snesreader/fex/Zip_Extractor.h | 45 - snesreader/fex/Zlib_Inflater.cpp | 257 -- snesreader/fex/Zlib_Inflater.h | 70 - snesreader/fex/blargg_common.cpp | 51 - snesreader/fex/blargg_common.h | 206 - snesreader/fex/blargg_config.h | 34 - snesreader/fex/blargg_endian.h | 185 - snesreader/fex/blargg_errors.cpp | 113 - snesreader/fex/blargg_errors.h | 80 - snesreader/fex/blargg_source.h | 125 - snesreader/fex/fex.cpp | 323 -- snesreader/fex/fex.h | 206 - snesreader/filechooser.cpp | 57 - snesreader/filechooser.moc.hpp | 20 - snesreader/libjma/7z.h | 28 - snesreader/libjma/7zlzma.cpp | 50 - snesreader/libjma/aribitcd.h | 73 - snesreader/libjma/ariconst.h | 29 - snesreader/libjma/ariprice.h | 12 - snesreader/libjma/btreecd.h | 126 - snesreader/libjma/crc32.h | 26 - snesreader/libjma/iiostrm.cpp | 132 - snesreader/libjma/iiostrm.h | 210 - snesreader/libjma/inbyte.cpp | 60 - snesreader/libjma/inbyte.h | 76 - snesreader/libjma/jcrc32.cpp | 80 - snesreader/libjma/jma.cpp | 550 --- snesreader/libjma/jma.h | 88 - snesreader/libjma/lencoder.h | 93 - snesreader/libjma/litcoder.h | 122 - snesreader/libjma/lzma.cpp | 41 - snesreader/libjma/lzma.h | 124 - snesreader/libjma/lzmadec.h | 82 - snesreader/libjma/lzmadecode.cpp | 298 -- snesreader/libjma/portable.h | 83 - snesreader/libjma/rcdefs.h | 60 - snesreader/libjma/rngcoder.h | 143 - snesreader/libjma/winout.cpp | 89 - snesreader/libjma/winout.h | 89 - snesreader/micro-bunzip/micro-bunzip.c | 515 --- snesreader/nall/Makefile | 107 - snesreader/nall/algorithm.hpp | 23 - snesreader/nall/any.hpp | 74 - snesreader/nall/array.hpp | 118 - snesreader/nall/base64.hpp | 90 - snesreader/nall/bit.hpp | 51 - snesreader/nall/concept.hpp | 15 - snesreader/nall/config.hpp | 124 - snesreader/nall/crc32.hpp | 66 - snesreader/nall/detect.hpp | 30 - snesreader/nall/dictionary.hpp | 76 - snesreader/nall/dl.hpp | 119 - snesreader/nall/endian.hpp | 38 - snesreader/nall/file.hpp | 259 -- snesreader/nall/filemap.hpp | 190 - snesreader/nall/foreach.hpp | 31 - snesreader/nall/function.hpp | 190 - snesreader/nall/input.hpp | 386 -- snesreader/nall/lzss.hpp | 81 - snesreader/nall/moduloarray.hpp | 40 - snesreader/nall/platform.hpp | 80 - snesreader/nall/priorityqueue.hpp | 109 - snesreader/nall/property.hpp | 91 - snesreader/nall/qt/Makefile | 55 - snesreader/nall/qt/check-action.moc.hpp | 41 - snesreader/nall/qt/concept.hpp | 10 - snesreader/nall/qt/file-dialog.moc.hpp | 392 -- snesreader/nall/qt/hex-editor.moc.hpp | 173 - snesreader/nall/qt/radio-action.moc.hpp | 41 - snesreader/nall/qt/window.moc.hpp | 105 - snesreader/nall/serial.hpp | 80 - snesreader/nall/serializer.hpp | 143 - snesreader/nall/sha256.hpp | 143 - snesreader/nall/sort.hpp | 62 - snesreader/nall/static.hpp | 20 - snesreader/nall/stdint.hpp | 44 - snesreader/nall/string.hpp | 26 - snesreader/nall/string/base.hpp | 126 - snesreader/nall/string/cast.hpp | 29 - snesreader/nall/string/compare.hpp | 100 - snesreader/nall/string/convert.hpp | 149 - snesreader/nall/string/core.hpp | 132 - snesreader/nall/string/filename.hpp | 60 - snesreader/nall/string/match.hpp | 72 - snesreader/nall/string/math.hpp | 160 - snesreader/nall/string/replace.hpp | 103 - snesreader/nall/string/split.hpp | 56 - snesreader/nall/string/strl.hpp | 48 - snesreader/nall/string/trim.hpp | 50 - snesreader/nall/string/utility.hpp | 165 - snesreader/nall/string/variadic.hpp | 37 - snesreader/nall/string/xml.hpp | 268 -- snesreader/nall/traits.hpp | 97 - snesreader/nall/ups.hpp | 190 - snesreader/nall/utf8.hpp | 72 - snesreader/nall/utility.hpp | 41 - snesreader/nall/varint.hpp | 92 - snesreader/nall/vector.hpp | 235 - snesreader/snesreader.cpp | 236 - snesreader/snesreader.hpp | 7 - snesreader/sync.sh | 2 - snesreader/unrar/archive.cpp | 97 - snesreader/unrar/archive.hpp | 45 - snesreader/unrar/arcread.cpp | 314 -- snesreader/unrar/array.hpp | 135 - snesreader/unrar/changes.txt | 141 - snesreader/unrar/coder.cpp | 49 - snesreader/unrar/coder.hpp | 24 - snesreader/unrar/compress.hpp | 36 - snesreader/unrar/crc.cpp | 69 - snesreader/unrar/encname.cpp | 57 - snesreader/unrar/encname.hpp | 20 - snesreader/unrar/extract.cpp | 110 - snesreader/unrar/getbits.cpp | 34 - snesreader/unrar/getbits.hpp | 40 - snesreader/unrar/headers.hpp | 145 - snesreader/unrar/license.txt | 40 - snesreader/unrar/model.cpp | 612 --- snesreader/unrar/model.hpp | 133 - snesreader/unrar/rar.hpp | 209 - snesreader/unrar/rarvm.cpp | 1158 ----- snesreader/unrar/rarvm.hpp | 112 - snesreader/unrar/rarvmtbl.cpp | 57 - snesreader/unrar/rawread.cpp | 86 - snesreader/unrar/rawread.hpp | 25 - snesreader/unrar/readme.txt | 63 - snesreader/unrar/suballoc.cpp | 261 -- snesreader/unrar/suballoc.hpp | 88 - snesreader/unrar/technote.txt | 275 -- snesreader/unrar/unicode.cpp | 106 - snesreader/unrar/unicode.hpp | 10 - snesreader/unrar/unpack.cpp | 1065 ----- snesreader/unrar/unpack.hpp | 227 - snesreader/unrar/unpack15.cpp | 532 --- snesreader/unrar/unpack20.cpp | 394 -- snesreader/unrar/unrar.cpp | 350 -- snesreader/unrar/unrar.h | 164 - snesreader/unrar/unrar_misc.cpp | 170 - snesreader/unrar/unrar_open.cpp | 45 - snesreader/unrar/whatsnew.txt | 267 -- snesreader/xml.cpp | 750 ---- snesreader/xml.hpp | 103 - snesreader/zlib/adler32.c | 149 - snesreader/zlib/crc32.c | 423 -- snesreader/zlib/crc32.h | 441 -- snesreader/zlib/inffast.c | 318 -- snesreader/zlib/inffast.h | 11 - snesreader/zlib/inffixed.h | 94 - snesreader/zlib/inflate.c | 1368 ------ snesreader/zlib/inflate.h | 115 - snesreader/zlib/inftrees.c | 329 -- snesreader/zlib/inftrees.h | 55 - snesreader/zlib/readme.txt | 10 - snesreader/zlib/zconf.h | 335 -- snesreader/zlib/zlib.h | 1357 ------ snesreader/zlib/zlib.txt | 125 - snesreader/zlib/zutil.c | 318 -- snesreader/zlib/zutil.h | 269 -- src/base.hpp | 4 +- src/cpu/core/algorithms.cpp | 194 +- src/cpu/scpu/mmio/mmio.cpp | 54 +- src/cpu/scpu/scpu.hpp | 12 +- src/cpu/scpu/serialization.cpp | 11 +- src/cpu/scpu/timing/event.cpp | 7 - src/cpu/scpu/timing/timing.cpp | 23 +- src/cpu/scpu/timing/timing.hpp | 1 - src/system/config/config.cpp | 2 - src/system/config/config.hpp | 2 - src/ui_qt/config.cpp | 2 - supergameboy.dll | Bin 750254 -> 0 bytes supergameboy/Makefile | 126 - supergameboy/cc.bat | 2 - supergameboy/clean.bat | 1 - supergameboy/common/adaptivesleep.cpp | 56 - supergameboy/common/adaptivesleep.h | 34 - supergameboy/common/array.h | 40 - supergameboy/common/rateest.cpp | 96 - supergameboy/common/rateest.h | 73 - supergameboy/common/resample/blackmansinc.h | 100 - .../common/resample/chainresampler.cpp | 118 - supergameboy/common/resample/chainresampler.h | 189 - supergameboy/common/resample/cic2.h | 198 - supergameboy/common/resample/cic3.h | 382 -- supergameboy/common/resample/cic4.h | 237 - supergameboy/common/resample/convoluter.h | 156 - supergameboy/common/resample/hammingsinc.h | 100 - supergameboy/common/resample/linint.h | 129 - supergameboy/common/resample/makesinckernel.h | 152 - supergameboy/common/resample/rectsinc.h | 99 - supergameboy/common/resample/resampler.h | 43 - .../common/resample/resamplerinfo.cpp | 61 - supergameboy/common/resample/resamplerinfo.h | 36 - supergameboy/common/resample/subresampler.h | 33 - supergameboy/common/resample/u48div.cpp | 54 - supergameboy/common/resample/u48div.h | 24 - supergameboy/common/resample/upsampler.h | 51 - supergameboy/common/ringbuffer.h | 112 - supergameboy/common/usec.h | 31 - supergameboy/interface/interface.cpp | 373 -- supergameboy/interface/interface.hpp | 80 - supergameboy/libgambatte/SConstruct | 64 - supergameboy/libgambatte/include/filterinfo.h | 32 - supergameboy/libgambatte/include/gambatte.h | 82 - supergameboy/libgambatte/include/inputstate.h | 30 - .../libgambatte/include/inputstategetter.h | 30 - supergameboy/libgambatte/include/int.h | 29 - .../libgambatte/include/videoblitter.h | 44 - supergameboy/libgambatte/src/bitmap_font.cpp | 328 -- supergameboy/libgambatte/src/bitmap_font.h | 87 - .../libgambatte/src/colorconversion.cpp | 96 - .../libgambatte/src/colorconversion.h | 46 - supergameboy/libgambatte/src/cpu.cpp | 2842 ------------ supergameboy/libgambatte/src/cpu.h | 115 - supergameboy/libgambatte/src/event_queue.h | 160 - supergameboy/libgambatte/src/file/file.cpp | 73 - supergameboy/libgambatte/src/file/file.h | 42 - .../libgambatte/src/file/file_zip.cpp | 167 - .../libgambatte/src/file/unzip/crypt.h | 132 - .../libgambatte/src/file/unzip/ioapi.c | 177 - .../libgambatte/src/file/unzip/ioapi.h | 75 - .../libgambatte/src/file/unzip/unzip.c | 1605 ------- .../libgambatte/src/file/unzip/unzip.h | 354 -- supergameboy/libgambatte/src/gambatte.cpp | 184 - supergameboy/libgambatte/src/initstate.cpp | 281 -- supergameboy/libgambatte/src/initstate.h | 26 - supergameboy/libgambatte/src/insertion_sort.h | 51 - supergameboy/libgambatte/src/interrupter.cpp | 44 - supergameboy/libgambatte/src/interrupter.h | 38 - supergameboy/libgambatte/src/memory.cpp | 1867 -------- supergameboy/libgambatte/src/memory.h | 238 - supergameboy/libgambatte/src/osd_element.h | 65 - supergameboy/libgambatte/src/rtc.cpp | 157 - supergameboy/libgambatte/src/rtc.h | 97 - supergameboy/libgambatte/src/savestate.h | 184 - supergameboy/libgambatte/src/sound.cpp | 155 - supergameboy/libgambatte/src/sound.h | 95 - .../libgambatte/src/sound/channel1.cpp | 257 -- supergameboy/libgambatte/src/sound/channel1.h | 91 - .../libgambatte/src/sound/channel2.cpp | 161 - supergameboy/libgambatte/src/sound/channel2.h | 70 - .../libgambatte/src/sound/channel3.cpp | 207 - supergameboy/libgambatte/src/sound/channel3.h | 100 - .../libgambatte/src/sound/channel4.cpp | 300 -- supergameboy/libgambatte/src/sound/channel4.h | 99 - .../libgambatte/src/sound/duty_unit.cpp | 148 - .../libgambatte/src/sound/duty_unit.h | 64 - .../libgambatte/src/sound/envelope_unit.cpp | 101 - .../libgambatte/src/sound/envelope_unit.h | 50 - .../libgambatte/src/sound/length_counter.cpp | 87 - .../libgambatte/src/sound/length_counter.h | 44 - .../libgambatte/src/sound/master_disabler.h | 31 - .../libgambatte/src/sound/sound_unit.h | 35 - .../src/sound/static_output_tester.h | 41 - .../libgambatte/src/state_osd_elements.cpp | 169 - .../libgambatte/src/state_osd_elements.h | 29 - supergameboy/libgambatte/src/statesaver.cpp | 407 -- supergameboy/libgambatte/src/statesaver.h | 37 - supergameboy/libgambatte/src/video.cpp | 1474 ------- supergameboy/libgambatte/src/video.h | 293 -- .../libgambatte/src/video/basic_add_event.cpp | 75 - .../libgambatte/src/video/basic_add_event.h | 56 - .../libgambatte/src/video/break_event.cpp | 35 - .../libgambatte/src/video/break_event.h | 59 - .../src/video/filters/catrom2x.cpp | 194 - .../libgambatte/src/video/filters/catrom2x.h | 40 - .../src/video/filters/catrom3x.cpp | 360 -- .../libgambatte/src/video/filters/catrom3x.h | 40 - .../libgambatte/src/video/filters/filter.h | 39 - .../src/video/filters/kreed2xsai.cpp | 243 -- .../src/video/filters/kreed2xsai.h | 40 - .../src/video/filters/maxsthq2x.cpp | 2875 ------------ .../libgambatte/src/video/filters/maxsthq2x.h | 41 - .../src/video/filters/maxsthq3x.cpp | 3845 ----------------- .../libgambatte/src/video/filters/maxsthq3x.h | 40 - .../libgambatte/src/video/irq_event.cpp | 36 - .../libgambatte/src/video/irq_event.h | 52 - .../libgambatte/src/video/ly_counter.cpp | 62 - .../libgambatte/src/video/ly_counter.h | 69 - .../libgambatte/src/video/lyc_irq.cpp | 42 - supergameboy/libgambatte/src/video/lyc_irq.h | 67 - .../libgambatte/src/video/m3_extra_cycles.cpp | 101 - .../libgambatte/src/video/m3_extra_cycles.h | 56 - .../libgambatte/src/video/mode0_irq.cpp | 95 - .../libgambatte/src/video/mode0_irq.h | 42 - .../libgambatte/src/video/mode1_irq.cpp | 33 - .../libgambatte/src/video/mode1_irq.h | 56 - .../libgambatte/src/video/mode2_irq.cpp | 63 - .../libgambatte/src/video/mode2_irq.h | 40 - .../libgambatte/src/video/mode3_event.cpp | 62 - .../libgambatte/src/video/mode3_event.h | 47 - .../libgambatte/src/video/sc_reader.cpp | 62 - .../libgambatte/src/video/sc_reader.h | 77 - .../libgambatte/src/video/scx_reader.cpp | 71 - .../libgambatte/src/video/scx_reader.h | 85 - .../libgambatte/src/video/sprite_mapper.cpp | 187 - .../libgambatte/src/video/sprite_mapper.h | 148 - .../libgambatte/src/video/video_event.h | 50 - .../src/video/video_event_comparer.h | 31 - supergameboy/libgambatte/src/video/we.cpp | 59 - supergameboy/libgambatte/src/video/we.h | 118 - .../src/video/we_master_checker.cpp | 58 - .../libgambatte/src/video/we_master_checker.h | 73 - supergameboy/libgambatte/src/video/window.h | 47 - .../libgambatte/src/video/wx_reader.cpp | 65 - .../libgambatte/src/video/wx_reader.h | 83 - supergameboy/libgambatte/src/video/wy.cpp | 105 - supergameboy/libgambatte/src/video/wy.h | 187 - supergameboy/nall/Makefile | 107 - supergameboy/nall/algorithm.hpp | 23 - supergameboy/nall/any.hpp | 74 - supergameboy/nall/array.hpp | 118 - supergameboy/nall/base64.hpp | 90 - supergameboy/nall/bit.hpp | 51 - supergameboy/nall/concept.hpp | 15 - supergameboy/nall/config.hpp | 124 - supergameboy/nall/crc32.hpp | 66 - supergameboy/nall/detect.hpp | 30 - supergameboy/nall/dictionary.hpp | 76 - supergameboy/nall/dl.hpp | 119 - supergameboy/nall/endian.hpp | 38 - supergameboy/nall/file.hpp | 259 -- supergameboy/nall/filemap.hpp | 190 - supergameboy/nall/foreach.hpp | 31 - supergameboy/nall/function.hpp | 190 - supergameboy/nall/input.hpp | 386 -- supergameboy/nall/lzss.hpp | 81 - supergameboy/nall/moduloarray.hpp | 40 - supergameboy/nall/platform.hpp | 80 - supergameboy/nall/priorityqueue.hpp | 109 - supergameboy/nall/property.hpp | 91 - supergameboy/nall/qt/Makefile | 55 - supergameboy/nall/qt/check-action.moc.hpp | 41 - supergameboy/nall/qt/concept.hpp | 10 - supergameboy/nall/qt/file-dialog.moc.hpp | 392 -- supergameboy/nall/qt/hex-editor.moc.hpp | 173 - supergameboy/nall/qt/radio-action.moc.hpp | 41 - supergameboy/nall/qt/window.moc.hpp | 105 - supergameboy/nall/serial.hpp | 80 - supergameboy/nall/serializer.hpp | 143 - supergameboy/nall/sha256.hpp | 143 - supergameboy/nall/sort.hpp | 62 - supergameboy/nall/static.hpp | 20 - supergameboy/nall/stdint.hpp | 44 - supergameboy/nall/string.hpp | 26 - supergameboy/nall/string/base.hpp | 126 - supergameboy/nall/string/cast.hpp | 29 - supergameboy/nall/string/compare.hpp | 100 - supergameboy/nall/string/convert.hpp | 149 - supergameboy/nall/string/core.hpp | 132 - supergameboy/nall/string/filename.hpp | 60 - supergameboy/nall/string/match.hpp | 72 - supergameboy/nall/string/math.hpp | 160 - supergameboy/nall/string/replace.hpp | 103 - supergameboy/nall/string/split.hpp | 56 - supergameboy/nall/string/strl.hpp | 48 - supergameboy/nall/string/trim.hpp | 50 - supergameboy/nall/string/utility.hpp | 165 - supergameboy/nall/string/variadic.hpp | 37 - supergameboy/nall/string/xml.hpp | 268 -- supergameboy/nall/traits.hpp | 97 - supergameboy/nall/ups.hpp | 190 - supergameboy/nall/utf8.hpp | 72 - supergameboy/nall/utility.hpp | 41 - supergameboy/nall/varint.hpp | 92 - supergameboy/nall/vector.hpp | 235 - supergameboy/supergameboy.cpp | 68 - supergameboy/supergameboy.hpp | 32 - supergameboy/sync.sh | 2 - 516 files changed, 138 insertions(+), 77355 deletions(-) delete mode 100644 QtCore4.dll delete mode 100644 QtGui4.dll delete mode 100644 bsnes-debugger.exe delete mode 100644 libgomp-1.dll delete mode 100644 mingwm10.dll delete mode 100644 pixelshaders/Curvature/fragment delete mode 100644 pixelshaders/HDRTV/fragment delete mode 100644 pixelshaders/HDRTV/vertex delete mode 100644 pixelshaders/HLSL/sepia.fx delete mode 100644 pixelshaders/HQ2x/fragment delete mode 100644 pixelshaders/HQ2x/vertex delete mode 100644 pixelshaders/Pixellate/fragment delete mode 100644 pixelshaders/Pixellate/vertex delete mode 100644 pixelshaders/Scale2x/fragment delete mode 100644 pixelshaders/Scale2x/vertex delete mode 100644 pthreadGC2.dll delete mode 100644 snesfilter.dll delete mode 100644 snesfilter/2xsai/2xsai.cpp delete mode 100644 snesfilter/2xsai/2xsai.hpp delete mode 100644 snesfilter/2xsai/implementation.cpp delete mode 100644 snesfilter/Makefile delete mode 100644 snesfilter/cc.bat delete mode 100644 snesfilter/clean.bat delete mode 100644 snesfilter/direct/direct.cpp delete mode 100644 snesfilter/direct/direct.hpp delete mode 100644 snesfilter/hq2x/hq2x.cpp delete mode 100644 snesfilter/hq2x/hq2x.hpp delete mode 100644 snesfilter/lq2x/lq2x.cpp delete mode 100644 snesfilter/lq2x/lq2x.hpp delete mode 100644 snesfilter/nall/Makefile delete mode 100644 snesfilter/nall/algorithm.hpp delete mode 100644 snesfilter/nall/any.hpp delete mode 100644 snesfilter/nall/array.hpp delete mode 100644 snesfilter/nall/base64.hpp delete mode 100644 snesfilter/nall/bit.hpp delete mode 100644 snesfilter/nall/concept.hpp delete mode 100644 snesfilter/nall/config.hpp delete mode 100644 snesfilter/nall/crc32.hpp delete mode 100644 snesfilter/nall/detect.hpp delete mode 100644 snesfilter/nall/dictionary.hpp delete mode 100644 snesfilter/nall/dl.hpp delete mode 100644 snesfilter/nall/endian.hpp delete mode 100644 snesfilter/nall/file.hpp delete mode 100644 snesfilter/nall/filemap.hpp delete mode 100644 snesfilter/nall/foreach.hpp delete mode 100644 snesfilter/nall/function.hpp delete mode 100644 snesfilter/nall/input.hpp delete mode 100644 snesfilter/nall/lzss.hpp delete mode 100644 snesfilter/nall/moduloarray.hpp delete mode 100644 snesfilter/nall/platform.hpp delete mode 100644 snesfilter/nall/priorityqueue.hpp delete mode 100644 snesfilter/nall/property.hpp delete mode 100644 snesfilter/nall/qt/Makefile delete mode 100644 snesfilter/nall/qt/check-action.moc.hpp delete mode 100644 snesfilter/nall/qt/concept.hpp delete mode 100644 snesfilter/nall/qt/file-dialog.moc.hpp delete mode 100644 snesfilter/nall/qt/hex-editor.moc.hpp delete mode 100644 snesfilter/nall/qt/radio-action.moc.hpp delete mode 100644 snesfilter/nall/qt/window.moc.hpp delete mode 100644 snesfilter/nall/serial.hpp delete mode 100644 snesfilter/nall/serializer.hpp delete mode 100644 snesfilter/nall/sha256.hpp delete mode 100644 snesfilter/nall/sort.hpp delete mode 100644 snesfilter/nall/static.hpp delete mode 100644 snesfilter/nall/stdint.hpp delete mode 100644 snesfilter/nall/string.hpp delete mode 100644 snesfilter/nall/string/base.hpp delete mode 100644 snesfilter/nall/string/cast.hpp delete mode 100644 snesfilter/nall/string/compare.hpp delete mode 100644 snesfilter/nall/string/convert.hpp delete mode 100644 snesfilter/nall/string/core.hpp delete mode 100644 snesfilter/nall/string/filename.hpp delete mode 100644 snesfilter/nall/string/match.hpp delete mode 100644 snesfilter/nall/string/math.hpp delete mode 100644 snesfilter/nall/string/replace.hpp delete mode 100644 snesfilter/nall/string/split.hpp delete mode 100644 snesfilter/nall/string/strl.hpp delete mode 100644 snesfilter/nall/string/trim.hpp delete mode 100644 snesfilter/nall/string/utility.hpp delete mode 100644 snesfilter/nall/string/variadic.hpp delete mode 100644 snesfilter/nall/string/xml.hpp delete mode 100644 snesfilter/nall/traits.hpp delete mode 100644 snesfilter/nall/ups.hpp delete mode 100644 snesfilter/nall/utf8.hpp delete mode 100644 snesfilter/nall/utility.hpp delete mode 100644 snesfilter/nall/varint.hpp delete mode 100644 snesfilter/nall/vector.hpp delete mode 100644 snesfilter/ntsc/ntsc.cpp delete mode 100644 snesfilter/ntsc/ntsc.moc.hpp delete mode 100644 snesfilter/ntsc/snes_ntsc/snes_ntsc.c delete mode 100644 snesfilter/ntsc/snes_ntsc/snes_ntsc.h delete mode 100644 snesfilter/ntsc/snes_ntsc/snes_ntsc_config.h delete mode 100644 snesfilter/ntsc/snes_ntsc/snes_ntsc_impl.h delete mode 100644 snesfilter/pixellate2x/pixellate2x.cpp delete mode 100644 snesfilter/pixellate2x/pixellate2x.hpp delete mode 100644 snesfilter/scale2x/scale2x.cpp delete mode 100644 snesfilter/scale2x/scale2x.hpp delete mode 100644 snesfilter/snesfilter.cpp delete mode 100644 snesfilter/snesfilter.hpp delete mode 100644 snesfilter/sync.sh delete mode 100644 snesreader.dll delete mode 100644 snesreader/7z_C/7zAlloc.c delete mode 100644 snesreader/7z_C/7zAlloc.h delete mode 100644 snesreader/7z_C/7zBuf.c delete mode 100644 snesreader/7z_C/7zBuf.h delete mode 100644 snesreader/7z_C/7zC.txt delete mode 100644 snesreader/7z_C/7zCrc.c delete mode 100644 snesreader/7z_C/7zCrc.h delete mode 100644 snesreader/7z_C/7zDecode.c delete mode 100644 snesreader/7z_C/7zDecode.h delete mode 100644 snesreader/7z_C/7zExtract.c delete mode 100644 snesreader/7z_C/7zExtract.h delete mode 100644 snesreader/7z_C/7zHeader.c delete mode 100644 snesreader/7z_C/7zHeader.h delete mode 100644 snesreader/7z_C/7zIn.c delete mode 100644 snesreader/7z_C/7zIn.h delete mode 100644 snesreader/7z_C/7zItem.c delete mode 100644 snesreader/7z_C/7zItem.h delete mode 100644 snesreader/7z_C/7zStream.c delete mode 100644 snesreader/7z_C/Bcj2.c delete mode 100644 snesreader/7z_C/Bcj2.h delete mode 100644 snesreader/7z_C/Bra.h delete mode 100644 snesreader/7z_C/Bra86.c delete mode 100644 snesreader/7z_C/CpuArch.h delete mode 100644 snesreader/7z_C/LzmaDec.c delete mode 100644 snesreader/7z_C/LzmaDec.h delete mode 100644 snesreader/7z_C/Types.h delete mode 100644 snesreader/7z_C/lzma.txt delete mode 100644 snesreader/7z_C/readme.txt delete mode 100644 snesreader/Makefile delete mode 100644 snesreader/cc.bat delete mode 100644 snesreader/clean.bat delete mode 100644 snesreader/fex/Binary_Extractor.cpp delete mode 100644 snesreader/fex/Binary_Extractor.h delete mode 100644 snesreader/fex/Data_Reader.cpp delete mode 100644 snesreader/fex/Data_Reader.h delete mode 100644 snesreader/fex/File_Extractor.cpp delete mode 100644 snesreader/fex/File_Extractor.h delete mode 100644 snesreader/fex/Gzip_Extractor.cpp delete mode 100644 snesreader/fex/Gzip_Extractor.h delete mode 100644 snesreader/fex/Gzip_Reader.cpp delete mode 100644 snesreader/fex/Gzip_Reader.h delete mode 100644 snesreader/fex/Rar_Extractor.cpp delete mode 100644 snesreader/fex/Rar_Extractor.h delete mode 100644 snesreader/fex/Zip7_Extractor.cpp delete mode 100644 snesreader/fex/Zip7_Extractor.h delete mode 100644 snesreader/fex/Zip_Extractor.cpp delete mode 100644 snesreader/fex/Zip_Extractor.h delete mode 100644 snesreader/fex/Zlib_Inflater.cpp delete mode 100644 snesreader/fex/Zlib_Inflater.h delete mode 100644 snesreader/fex/blargg_common.cpp delete mode 100644 snesreader/fex/blargg_common.h delete mode 100644 snesreader/fex/blargg_config.h delete mode 100644 snesreader/fex/blargg_endian.h delete mode 100644 snesreader/fex/blargg_errors.cpp delete mode 100644 snesreader/fex/blargg_errors.h delete mode 100644 snesreader/fex/blargg_source.h delete mode 100644 snesreader/fex/fex.cpp delete mode 100644 snesreader/fex/fex.h delete mode 100644 snesreader/filechooser.cpp delete mode 100644 snesreader/filechooser.moc.hpp delete mode 100644 snesreader/libjma/7z.h delete mode 100644 snesreader/libjma/7zlzma.cpp delete mode 100644 snesreader/libjma/aribitcd.h delete mode 100644 snesreader/libjma/ariconst.h delete mode 100644 snesreader/libjma/ariprice.h delete mode 100644 snesreader/libjma/btreecd.h delete mode 100644 snesreader/libjma/crc32.h delete mode 100644 snesreader/libjma/iiostrm.cpp delete mode 100644 snesreader/libjma/iiostrm.h delete mode 100644 snesreader/libjma/inbyte.cpp delete mode 100644 snesreader/libjma/inbyte.h delete mode 100644 snesreader/libjma/jcrc32.cpp delete mode 100644 snesreader/libjma/jma.cpp delete mode 100644 snesreader/libjma/jma.h delete mode 100644 snesreader/libjma/lencoder.h delete mode 100644 snesreader/libjma/litcoder.h delete mode 100644 snesreader/libjma/lzma.cpp delete mode 100644 snesreader/libjma/lzma.h delete mode 100644 snesreader/libjma/lzmadec.h delete mode 100644 snesreader/libjma/lzmadecode.cpp delete mode 100644 snesreader/libjma/portable.h delete mode 100644 snesreader/libjma/rcdefs.h delete mode 100644 snesreader/libjma/rngcoder.h delete mode 100644 snesreader/libjma/winout.cpp delete mode 100644 snesreader/libjma/winout.h delete mode 100644 snesreader/micro-bunzip/micro-bunzip.c delete mode 100644 snesreader/nall/Makefile delete mode 100644 snesreader/nall/algorithm.hpp delete mode 100644 snesreader/nall/any.hpp delete mode 100644 snesreader/nall/array.hpp delete mode 100644 snesreader/nall/base64.hpp delete mode 100644 snesreader/nall/bit.hpp delete mode 100644 snesreader/nall/concept.hpp delete mode 100644 snesreader/nall/config.hpp delete mode 100644 snesreader/nall/crc32.hpp delete mode 100644 snesreader/nall/detect.hpp delete mode 100644 snesreader/nall/dictionary.hpp delete mode 100644 snesreader/nall/dl.hpp delete mode 100644 snesreader/nall/endian.hpp delete mode 100644 snesreader/nall/file.hpp delete mode 100644 snesreader/nall/filemap.hpp delete mode 100644 snesreader/nall/foreach.hpp delete mode 100644 snesreader/nall/function.hpp delete mode 100644 snesreader/nall/input.hpp delete mode 100644 snesreader/nall/lzss.hpp delete mode 100644 snesreader/nall/moduloarray.hpp delete mode 100644 snesreader/nall/platform.hpp delete mode 100644 snesreader/nall/priorityqueue.hpp delete mode 100644 snesreader/nall/property.hpp delete mode 100644 snesreader/nall/qt/Makefile delete mode 100644 snesreader/nall/qt/check-action.moc.hpp delete mode 100644 snesreader/nall/qt/concept.hpp delete mode 100644 snesreader/nall/qt/file-dialog.moc.hpp delete mode 100644 snesreader/nall/qt/hex-editor.moc.hpp delete mode 100644 snesreader/nall/qt/radio-action.moc.hpp delete mode 100644 snesreader/nall/qt/window.moc.hpp delete mode 100644 snesreader/nall/serial.hpp delete mode 100644 snesreader/nall/serializer.hpp delete mode 100644 snesreader/nall/sha256.hpp delete mode 100644 snesreader/nall/sort.hpp delete mode 100644 snesreader/nall/static.hpp delete mode 100644 snesreader/nall/stdint.hpp delete mode 100644 snesreader/nall/string.hpp delete mode 100644 snesreader/nall/string/base.hpp delete mode 100644 snesreader/nall/string/cast.hpp delete mode 100644 snesreader/nall/string/compare.hpp delete mode 100644 snesreader/nall/string/convert.hpp delete mode 100644 snesreader/nall/string/core.hpp delete mode 100644 snesreader/nall/string/filename.hpp delete mode 100644 snesreader/nall/string/match.hpp delete mode 100644 snesreader/nall/string/math.hpp delete mode 100644 snesreader/nall/string/replace.hpp delete mode 100644 snesreader/nall/string/split.hpp delete mode 100644 snesreader/nall/string/strl.hpp delete mode 100644 snesreader/nall/string/trim.hpp delete mode 100644 snesreader/nall/string/utility.hpp delete mode 100644 snesreader/nall/string/variadic.hpp delete mode 100644 snesreader/nall/string/xml.hpp delete mode 100644 snesreader/nall/traits.hpp delete mode 100644 snesreader/nall/ups.hpp delete mode 100644 snesreader/nall/utf8.hpp delete mode 100644 snesreader/nall/utility.hpp delete mode 100644 snesreader/nall/varint.hpp delete mode 100644 snesreader/nall/vector.hpp delete mode 100644 snesreader/snesreader.cpp delete mode 100644 snesreader/snesreader.hpp delete mode 100644 snesreader/sync.sh delete mode 100644 snesreader/unrar/archive.cpp delete mode 100644 snesreader/unrar/archive.hpp delete mode 100644 snesreader/unrar/arcread.cpp delete mode 100644 snesreader/unrar/array.hpp delete mode 100644 snesreader/unrar/changes.txt delete mode 100644 snesreader/unrar/coder.cpp delete mode 100644 snesreader/unrar/coder.hpp delete mode 100644 snesreader/unrar/compress.hpp delete mode 100644 snesreader/unrar/crc.cpp delete mode 100644 snesreader/unrar/encname.cpp delete mode 100644 snesreader/unrar/encname.hpp delete mode 100644 snesreader/unrar/extract.cpp delete mode 100644 snesreader/unrar/getbits.cpp delete mode 100644 snesreader/unrar/getbits.hpp delete mode 100644 snesreader/unrar/headers.hpp delete mode 100644 snesreader/unrar/license.txt delete mode 100644 snesreader/unrar/model.cpp delete mode 100644 snesreader/unrar/model.hpp delete mode 100644 snesreader/unrar/rar.hpp delete mode 100644 snesreader/unrar/rarvm.cpp delete mode 100644 snesreader/unrar/rarvm.hpp delete mode 100644 snesreader/unrar/rarvmtbl.cpp delete mode 100644 snesreader/unrar/rawread.cpp delete mode 100644 snesreader/unrar/rawread.hpp delete mode 100644 snesreader/unrar/readme.txt delete mode 100644 snesreader/unrar/suballoc.cpp delete mode 100644 snesreader/unrar/suballoc.hpp delete mode 100644 snesreader/unrar/technote.txt delete mode 100644 snesreader/unrar/unicode.cpp delete mode 100644 snesreader/unrar/unicode.hpp delete mode 100644 snesreader/unrar/unpack.cpp delete mode 100644 snesreader/unrar/unpack.hpp delete mode 100644 snesreader/unrar/unpack15.cpp delete mode 100644 snesreader/unrar/unpack20.cpp delete mode 100644 snesreader/unrar/unrar.cpp delete mode 100644 snesreader/unrar/unrar.h delete mode 100644 snesreader/unrar/unrar_misc.cpp delete mode 100644 snesreader/unrar/unrar_open.cpp delete mode 100644 snesreader/unrar/whatsnew.txt delete mode 100644 snesreader/xml.cpp delete mode 100644 snesreader/xml.hpp delete mode 100644 snesreader/zlib/adler32.c delete mode 100644 snesreader/zlib/crc32.c delete mode 100644 snesreader/zlib/crc32.h delete mode 100644 snesreader/zlib/inffast.c delete mode 100644 snesreader/zlib/inffast.h delete mode 100644 snesreader/zlib/inffixed.h delete mode 100644 snesreader/zlib/inflate.c delete mode 100644 snesreader/zlib/inflate.h delete mode 100644 snesreader/zlib/inftrees.c delete mode 100644 snesreader/zlib/inftrees.h delete mode 100644 snesreader/zlib/readme.txt delete mode 100644 snesreader/zlib/zconf.h delete mode 100644 snesreader/zlib/zlib.h delete mode 100644 snesreader/zlib/zlib.txt delete mode 100644 snesreader/zlib/zutil.c delete mode 100644 snesreader/zlib/zutil.h delete mode 100644 supergameboy.dll delete mode 100644 supergameboy/Makefile delete mode 100644 supergameboy/cc.bat delete mode 100644 supergameboy/clean.bat delete mode 100644 supergameboy/common/adaptivesleep.cpp delete mode 100644 supergameboy/common/adaptivesleep.h delete mode 100644 supergameboy/common/array.h delete mode 100644 supergameboy/common/rateest.cpp delete mode 100644 supergameboy/common/rateest.h delete mode 100644 supergameboy/common/resample/blackmansinc.h delete mode 100644 supergameboy/common/resample/chainresampler.cpp delete mode 100644 supergameboy/common/resample/chainresampler.h delete mode 100644 supergameboy/common/resample/cic2.h delete mode 100644 supergameboy/common/resample/cic3.h delete mode 100644 supergameboy/common/resample/cic4.h delete mode 100644 supergameboy/common/resample/convoluter.h delete mode 100644 supergameboy/common/resample/hammingsinc.h delete mode 100644 supergameboy/common/resample/linint.h delete mode 100644 supergameboy/common/resample/makesinckernel.h delete mode 100644 supergameboy/common/resample/rectsinc.h delete mode 100644 supergameboy/common/resample/resampler.h delete mode 100644 supergameboy/common/resample/resamplerinfo.cpp delete mode 100644 supergameboy/common/resample/resamplerinfo.h delete mode 100644 supergameboy/common/resample/subresampler.h delete mode 100644 supergameboy/common/resample/u48div.cpp delete mode 100644 supergameboy/common/resample/u48div.h delete mode 100644 supergameboy/common/resample/upsampler.h delete mode 100644 supergameboy/common/ringbuffer.h delete mode 100644 supergameboy/common/usec.h delete mode 100644 supergameboy/interface/interface.cpp delete mode 100644 supergameboy/interface/interface.hpp delete mode 100644 supergameboy/libgambatte/SConstruct delete mode 100644 supergameboy/libgambatte/include/filterinfo.h delete mode 100644 supergameboy/libgambatte/include/gambatte.h delete mode 100644 supergameboy/libgambatte/include/inputstate.h delete mode 100644 supergameboy/libgambatte/include/inputstategetter.h delete mode 100644 supergameboy/libgambatte/include/int.h delete mode 100644 supergameboy/libgambatte/include/videoblitter.h delete mode 100644 supergameboy/libgambatte/src/bitmap_font.cpp delete mode 100644 supergameboy/libgambatte/src/bitmap_font.h delete mode 100644 supergameboy/libgambatte/src/colorconversion.cpp delete mode 100644 supergameboy/libgambatte/src/colorconversion.h delete mode 100644 supergameboy/libgambatte/src/cpu.cpp delete mode 100644 supergameboy/libgambatte/src/cpu.h delete mode 100644 supergameboy/libgambatte/src/event_queue.h delete mode 100644 supergameboy/libgambatte/src/file/file.cpp delete mode 100644 supergameboy/libgambatte/src/file/file.h delete mode 100644 supergameboy/libgambatte/src/file/file_zip.cpp delete mode 100644 supergameboy/libgambatte/src/file/unzip/crypt.h delete mode 100644 supergameboy/libgambatte/src/file/unzip/ioapi.c delete mode 100644 supergameboy/libgambatte/src/file/unzip/ioapi.h delete mode 100644 supergameboy/libgambatte/src/file/unzip/unzip.c delete mode 100644 supergameboy/libgambatte/src/file/unzip/unzip.h delete mode 100644 supergameboy/libgambatte/src/gambatte.cpp delete mode 100644 supergameboy/libgambatte/src/initstate.cpp delete mode 100644 supergameboy/libgambatte/src/initstate.h delete mode 100644 supergameboy/libgambatte/src/insertion_sort.h delete mode 100644 supergameboy/libgambatte/src/interrupter.cpp delete mode 100644 supergameboy/libgambatte/src/interrupter.h delete mode 100644 supergameboy/libgambatte/src/memory.cpp delete mode 100644 supergameboy/libgambatte/src/memory.h delete mode 100644 supergameboy/libgambatte/src/osd_element.h delete mode 100644 supergameboy/libgambatte/src/rtc.cpp delete mode 100644 supergameboy/libgambatte/src/rtc.h delete mode 100644 supergameboy/libgambatte/src/savestate.h delete mode 100644 supergameboy/libgambatte/src/sound.cpp delete mode 100644 supergameboy/libgambatte/src/sound.h delete mode 100644 supergameboy/libgambatte/src/sound/channel1.cpp delete mode 100644 supergameboy/libgambatte/src/sound/channel1.h delete mode 100644 supergameboy/libgambatte/src/sound/channel2.cpp delete mode 100644 supergameboy/libgambatte/src/sound/channel2.h delete mode 100644 supergameboy/libgambatte/src/sound/channel3.cpp delete mode 100644 supergameboy/libgambatte/src/sound/channel3.h delete mode 100644 supergameboy/libgambatte/src/sound/channel4.cpp delete mode 100644 supergameboy/libgambatte/src/sound/channel4.h delete mode 100644 supergameboy/libgambatte/src/sound/duty_unit.cpp delete mode 100644 supergameboy/libgambatte/src/sound/duty_unit.h delete mode 100644 supergameboy/libgambatte/src/sound/envelope_unit.cpp delete mode 100644 supergameboy/libgambatte/src/sound/envelope_unit.h delete mode 100644 supergameboy/libgambatte/src/sound/length_counter.cpp delete mode 100644 supergameboy/libgambatte/src/sound/length_counter.h delete mode 100644 supergameboy/libgambatte/src/sound/master_disabler.h delete mode 100644 supergameboy/libgambatte/src/sound/sound_unit.h delete mode 100644 supergameboy/libgambatte/src/sound/static_output_tester.h delete mode 100644 supergameboy/libgambatte/src/state_osd_elements.cpp delete mode 100644 supergameboy/libgambatte/src/state_osd_elements.h delete mode 100644 supergameboy/libgambatte/src/statesaver.cpp delete mode 100644 supergameboy/libgambatte/src/statesaver.h delete mode 100644 supergameboy/libgambatte/src/video.cpp delete mode 100644 supergameboy/libgambatte/src/video.h delete mode 100644 supergameboy/libgambatte/src/video/basic_add_event.cpp delete mode 100644 supergameboy/libgambatte/src/video/basic_add_event.h delete mode 100644 supergameboy/libgambatte/src/video/break_event.cpp delete mode 100644 supergameboy/libgambatte/src/video/break_event.h delete mode 100644 supergameboy/libgambatte/src/video/filters/catrom2x.cpp delete mode 100644 supergameboy/libgambatte/src/video/filters/catrom2x.h delete mode 100644 supergameboy/libgambatte/src/video/filters/catrom3x.cpp delete mode 100644 supergameboy/libgambatte/src/video/filters/catrom3x.h delete mode 100644 supergameboy/libgambatte/src/video/filters/filter.h delete mode 100644 supergameboy/libgambatte/src/video/filters/kreed2xsai.cpp delete mode 100644 supergameboy/libgambatte/src/video/filters/kreed2xsai.h delete mode 100644 supergameboy/libgambatte/src/video/filters/maxsthq2x.cpp delete mode 100644 supergameboy/libgambatte/src/video/filters/maxsthq2x.h delete mode 100644 supergameboy/libgambatte/src/video/filters/maxsthq3x.cpp delete mode 100644 supergameboy/libgambatte/src/video/filters/maxsthq3x.h delete mode 100644 supergameboy/libgambatte/src/video/irq_event.cpp delete mode 100644 supergameboy/libgambatte/src/video/irq_event.h delete mode 100644 supergameboy/libgambatte/src/video/ly_counter.cpp delete mode 100644 supergameboy/libgambatte/src/video/ly_counter.h delete mode 100644 supergameboy/libgambatte/src/video/lyc_irq.cpp delete mode 100644 supergameboy/libgambatte/src/video/lyc_irq.h delete mode 100644 supergameboy/libgambatte/src/video/m3_extra_cycles.cpp delete mode 100644 supergameboy/libgambatte/src/video/m3_extra_cycles.h delete mode 100644 supergameboy/libgambatte/src/video/mode0_irq.cpp delete mode 100644 supergameboy/libgambatte/src/video/mode0_irq.h delete mode 100644 supergameboy/libgambatte/src/video/mode1_irq.cpp delete mode 100644 supergameboy/libgambatte/src/video/mode1_irq.h delete mode 100644 supergameboy/libgambatte/src/video/mode2_irq.cpp delete mode 100644 supergameboy/libgambatte/src/video/mode2_irq.h delete mode 100644 supergameboy/libgambatte/src/video/mode3_event.cpp delete mode 100644 supergameboy/libgambatte/src/video/mode3_event.h delete mode 100644 supergameboy/libgambatte/src/video/sc_reader.cpp delete mode 100644 supergameboy/libgambatte/src/video/sc_reader.h delete mode 100644 supergameboy/libgambatte/src/video/scx_reader.cpp delete mode 100644 supergameboy/libgambatte/src/video/scx_reader.h delete mode 100644 supergameboy/libgambatte/src/video/sprite_mapper.cpp delete mode 100644 supergameboy/libgambatte/src/video/sprite_mapper.h delete mode 100644 supergameboy/libgambatte/src/video/video_event.h delete mode 100644 supergameboy/libgambatte/src/video/video_event_comparer.h delete mode 100644 supergameboy/libgambatte/src/video/we.cpp delete mode 100644 supergameboy/libgambatte/src/video/we.h delete mode 100644 supergameboy/libgambatte/src/video/we_master_checker.cpp delete mode 100644 supergameboy/libgambatte/src/video/we_master_checker.h delete mode 100644 supergameboy/libgambatte/src/video/window.h delete mode 100644 supergameboy/libgambatte/src/video/wx_reader.cpp delete mode 100644 supergameboy/libgambatte/src/video/wx_reader.h delete mode 100644 supergameboy/libgambatte/src/video/wy.cpp delete mode 100644 supergameboy/libgambatte/src/video/wy.h delete mode 100644 supergameboy/nall/Makefile delete mode 100644 supergameboy/nall/algorithm.hpp delete mode 100644 supergameboy/nall/any.hpp delete mode 100644 supergameboy/nall/array.hpp delete mode 100644 supergameboy/nall/base64.hpp delete mode 100644 supergameboy/nall/bit.hpp delete mode 100644 supergameboy/nall/concept.hpp delete mode 100644 supergameboy/nall/config.hpp delete mode 100644 supergameboy/nall/crc32.hpp delete mode 100644 supergameboy/nall/detect.hpp delete mode 100644 supergameboy/nall/dictionary.hpp delete mode 100644 supergameboy/nall/dl.hpp delete mode 100644 supergameboy/nall/endian.hpp delete mode 100644 supergameboy/nall/file.hpp delete mode 100644 supergameboy/nall/filemap.hpp delete mode 100644 supergameboy/nall/foreach.hpp delete mode 100644 supergameboy/nall/function.hpp delete mode 100644 supergameboy/nall/input.hpp delete mode 100644 supergameboy/nall/lzss.hpp delete mode 100644 supergameboy/nall/moduloarray.hpp delete mode 100644 supergameboy/nall/platform.hpp delete mode 100644 supergameboy/nall/priorityqueue.hpp delete mode 100644 supergameboy/nall/property.hpp delete mode 100644 supergameboy/nall/qt/Makefile delete mode 100644 supergameboy/nall/qt/check-action.moc.hpp delete mode 100644 supergameboy/nall/qt/concept.hpp delete mode 100644 supergameboy/nall/qt/file-dialog.moc.hpp delete mode 100644 supergameboy/nall/qt/hex-editor.moc.hpp delete mode 100644 supergameboy/nall/qt/radio-action.moc.hpp delete mode 100644 supergameboy/nall/qt/window.moc.hpp delete mode 100644 supergameboy/nall/serial.hpp delete mode 100644 supergameboy/nall/serializer.hpp delete mode 100644 supergameboy/nall/sha256.hpp delete mode 100644 supergameboy/nall/sort.hpp delete mode 100644 supergameboy/nall/static.hpp delete mode 100644 supergameboy/nall/stdint.hpp delete mode 100644 supergameboy/nall/string.hpp delete mode 100644 supergameboy/nall/string/base.hpp delete mode 100644 supergameboy/nall/string/cast.hpp delete mode 100644 supergameboy/nall/string/compare.hpp delete mode 100644 supergameboy/nall/string/convert.hpp delete mode 100644 supergameboy/nall/string/core.hpp delete mode 100644 supergameboy/nall/string/filename.hpp delete mode 100644 supergameboy/nall/string/match.hpp delete mode 100644 supergameboy/nall/string/math.hpp delete mode 100644 supergameboy/nall/string/replace.hpp delete mode 100644 supergameboy/nall/string/split.hpp delete mode 100644 supergameboy/nall/string/strl.hpp delete mode 100644 supergameboy/nall/string/trim.hpp delete mode 100644 supergameboy/nall/string/utility.hpp delete mode 100644 supergameboy/nall/string/variadic.hpp delete mode 100644 supergameboy/nall/string/xml.hpp delete mode 100644 supergameboy/nall/traits.hpp delete mode 100644 supergameboy/nall/ups.hpp delete mode 100644 supergameboy/nall/utf8.hpp delete mode 100644 supergameboy/nall/utility.hpp delete mode 100644 supergameboy/nall/varint.hpp delete mode 100644 supergameboy/nall/vector.hpp delete mode 100644 supergameboy/supergameboy.cpp delete mode 100644 supergameboy/supergameboy.hpp delete mode 100644 supergameboy/sync.sh diff --git a/QtCore4.dll b/QtCore4.dll deleted file mode 100644 index 1cbd09747b3f4ad1bdb04bcb6f06732a058bf9d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672768 zcmb@seLRz2{6D@s+c4WO48z>t#z@&rjERLq?SBavcQYpP_ zZinuqJCQ=_tu6``O4-l*^ZS0kkKg0>$M3J-^YJ*>^E%ggo!50<=eo}0oYy(8&EXXw zC;Lyfuv&~ZxQhn0C_Xl91^YcV433LWBXUwxcBgLNL)@`F zIXQ((jM+&{!miS4(SPj*ucrU_e=w#C`k%7Z%zt))K*ax* zU#;+8omKotQcrEriz*1ng02m!{!hWGUW@;`!ha(F2bFJiL8$+e`~UAIgvlcPkG56Y z{&&0nv*-T_0SGjFN8vPHyb&q$ zG(mziNLVxsB!Zbt1*bibtE<%e^>s>afk2Xb<|@&nGm~=R5?EW>Ss`gL3u5EM8s0_M zeclp4E%V~LX%XC15I~*)iumsC)fq$ipsTf2GyKoWP zIzjka5F z4rs@THcpaCBgJTOVXlJt=_2F)78e34xYS(NY{&e)Tan` zd?w{B>%V(&`L?|jI1fJ~Ih#~&5WD1$vM8%K^RBX1ymV*&go?SesE=!pab8Na3A|~X zm+4{DhoLGYI>sWec5uGhC&ng*_Z_$h@}=4>aVTz~jI z2lZK9=@O?x(?)<7KUs8nk9HJ!nh@|PTO{F7L17d!sz1!FBIqt$aUReKO!OYJ$ILQy4|Y9 zD$FJO$C)x0!VRvdLp1wGP2`bn;5;e{td9y6>Z_NeZ=XR$I$L}g44<)G$~Yues`HXv z)=-Ep6~x=Cx^Ey_~9DM;aom>=t%8Q-w2 z;EJs9_-?vB1Es@#qB#5DujQ+vh1|qH6d#O=&O$Q3lbk7M9Re~WFBm~U?_5tt)Fjysts#> zk=II+)5xBPJ>ZjZuxgvv`~}&9a1&EoL1csR5(kks-JU>~S$iNM{L|kp^Xl8!#$Y>Q zHhiHusv;x#Ir$=4>as+F(MNjD!X6WB%w%ET-yHrE1I_=Sb^6nFSvNIyWY4i5fdso@ zd8Y&NM-SZy3|I-Wjrb;S|6KaJk&dT>0HiP*`3`vH2Qm*1_Vbpn%h4#d^&{4WO1=m- z%>V3|&@tg$+y#4|dXLblGN`-WUo<<5DNy<|dQER1rm~}Okf&L&c@+1}j??ccOk)Dn z^ZTQg-ipePtJ`p@!@A0*6tmEd^JojQj{CnoTWq+MT|d(=`rw+u-%4HjCFwj zGb`417+51QjPntOG?ZObZk7$}#XliiqEJ{lNC)?HIma81RUw?E6XAwN@fmWC$$C=U ztXx3_b3{tC@QAr#Xj4S8TkAqvqMCCQnW8@5`GKMdtmPxeweM%Us7kh*E#A)qrYQ=q zcbRr(VDD_g8r@TI5e>b(eI}i(FJB!_%v5{XZm&iujTxf456YrmX#=@Hc&fiTzQL2J z=?v9j6RW=y4`QlrL7MuT*u@~jwOpp)wlzOi9CbCBN%?E?@AsB^6}nd>+XNMBGn)B5 zAedM*gQ>KZc*_Gbp5smo+X@n_v&`)eVTsZf^*p>Vmo4WhnYKQ{%1>)UGDSzdSfX6! zg*A`U$9_ULUEgfv(wfv`U_KQy1jM-%~j?yk*w? zh#KxT5G79sEhp;OVQvNUpSi>T)pJ2O+a?+D-9~rkkCMfICWo(qXh@B^w4G8&?$@D9 zo03C{eOi~+iE;N7)3*b;zcNq;>p8N*g8Ukm6S`QTWc(`-XeyE&iUUDAU)e4xot%u3 zbJv8krI}_W8d0$BT{s&LOw(Io;yWkg66H4+ZEJ$rpq7W9gXU#mu{%y+dr4(h|;e zVRS6kI8FT>Z2xUwIB-1HNz`6!aNphL9GxwEEbr16J+7M>ApV{L5Tfp^uh_w)sp~1b z1}HD%68ZYstjG`YWXBJLw4%OTMbXl+#b2jau0|}yRtLpWgV;QqFQjiDMxuKc2ilkB zdqwm}pHCJfn}{iI+kpYVPM95ANxd`Di+KGc5+K~HBzi=4FG{k&MwF-b#r;Etb;|I< zACBUnf zx4=EVJ-gyI{zZ_zOWBjBAWp*rSP31=dA?%s2E5-z)MK57qZy*_Dsb2;$yKwWXM20R z>9})l2sARlRP=Lk6tJ|pq_L?8lkCTU?aSf_|3S_R_XQW;{{sG<54#&~y30^r?F$RK zn>Cnz@L<4`c7FE(!=4nItyRP;3V`8n8j4CsRiBk$725;+L>w~^qikrqsB=fvJ+h;5 zMoM5d1QI-8L6mUIa36h8l#np~at~Kc;-_QTF8l>G5sv?{{a)l=D6UN+xV7ARvv8Sm zoah^ZnlU_FV*SrSNMn}#itVknq*vArqPQV zU#B)@c%h9@g*fU>+H7zlgsW3pON*)!*rF=|OX03Gh8sdD2i1igQss5F_~k|GGraG@_%z>igu$y^X*>=*vrixeT3 z#5WZNJ*T-aK7dlB>9)wmdo5^D=LY?;xs_5u>}*kg+me&s*rF1qzS_0DLTf z#qePK5KTB1;eEqp@aVEW4hiELAcxZ$?lM{yJW5>^+HU5b0&ES`T=fM|t~N4l z6)-MNfs282l@MHo^9cn;e$d!gLrs?(1$acoEBU8Am{E`ta`^N6v4yUUm`dr8TqS*H zKHF4U##9zgJP`H^O0jgC_T5)Ha`Obo>SF%sB6gmk6<1gui@}IN*m{pt8p;^-Q8Y;- zfS^zM-A5iBCecQ@Ob^c#u~U2VBLly8qxwgck#|MUv%lSw88LJtiH@kc__;x3vgfNU zRV1tMEA4-R=3i_O^egBxtf&MVR53VOEq*jrA>pa*9o(Y;hJIBE?5;`g77cCxd?*IG zz;w~n98&Wb>~eL|iTnWVdDZoLJ!PMj)*%z}4Hqxh^4dC(?d)v(P7Cf~vddYDGIi3% zNWWfK1o=3LCcxUE+ObOSX|zJE;kbfC(nuD%5YUzl2w%%kXXxu2y z+sjqIXp6CKba*P4H;BO;!T^@lfdhDzjCpXAU zH2l<0a%AVL`z4qGiBN09ieHa@0O{GG=F*exyYJb}YE6rTp@5PMq@5k~|sOH9~sKg#TRQU5WBx8$EieLQWB{mKnTYsk@ zli%SReNMS|+SR!E(;r2~v%>`4>nG+F@po?S?m9rQk0p0{Q)O*RJ0|z2nxQHTZ*JP10JV-@pgL$x8`>5DMG< z+Ql4*a^9#F(>()`KYj9_{0wULNt33sN|P4JqH8QjD7G+{|D5Kjj1GMnfe&X#7Glt(0+`+)!DRd*&G4(*t};B{%XB5B6>9OOZ*=_q*yx+n z>6rAy1z9tp@^pq70IBi1_|LAZ!y{r4E*-(IFSgEP##TFl1uKaYUIUcZ&CK>Z4ibQLicT;Tu;fhTmQH z*}vv1>F|6}x&acL}WuOEbKf-*vvk zva0gm;j6eRL(QqZDF&6h$In6budrZ?^vsWI5!OW`OkpRd8?5wG(lq<4DIjDj(&HQt z>r;|ZKbj@GMXA`z)e&J@Y1jg7Wpoi);lOt!@l?z{L_^b9F~{VM)%g1EwCJ54f%_^1 z$^j7Yx#V@m#z|vgqwJkl&+Zhecsi?(a&2^ED&3QSuEv@64MmA=JySPp%ptLdK5gz~ zi1#zQdus`jwx^q~cUVWd+!6o1w&r%p)esOvR~$nB^s?$yjW1SwcxS4A!%CghB1r*j z`Lq3R@(iOvWwtQ^un|o?Te40Z$eK>@o5yL6Lf~;WfO1y5f?V&7&Ef#KyJ#kF;I0_V za9AgBdF<}#9-_pK+N`Kh$<>HQpN^Ji!7+tM$V&!knO#wF=P7wbqOuL1JV=G{H*{%` zQv1R9Ye~LWuLTZT@RZbI?6-Zi=)XVKp5lkZdL#~#vDgLS6rO9ozF_L$CK)k+jkTVc ztg=>DcR*5lJL`_U;SC&4%;gKaPv>SOW_=ZYS{f!DRTF;0zx2lA2>j}<tc`t0b)u zrKHI^n7npe)mHF&&g`M7u&1-k>953Qon$k%)UvmIiF+aEd!^LN25W@i^QBl zRn#YGA?>BRQ-Xp#L2(|aBlWMPjXf|fjR1knOb2~-{GR-wQ1Vjq zYU-54W1x|_y=ExTatVR!aB+2ZxG6>4Nk>61!|HI_Ni8_Y%mcXExkuBuXUmBr)r4NL z-?YIfG=fkHt#MR$h=iVcztN}F>Y6KdgGi>3*t%@B;*;);XlyWA5q9D!&r_#4=#!)M zw^W1Wio!2=;49aEeVWm`JG#??1F;8voM9Yegt8`Z)ejCO8zdi~nO5o#i;LstanFm7OIgT>>&K zXrvg>H>+e=7XYH)rW1a5>MvkfD(i>Vs& zqQ1NV$~;&3?Xbtwu-f`PqE{bZ?iO#*Un@fh1Cn@@6S2;x21KKGd7J|z-J}{@kW)viz54d!_Dq~N3?50uL|U-XO`dz z60mP5RAF}Q_I{&0I7?$8e2hyHoXf}5C zA)VYA6j-a(M`vh^0gCiX){i7KVtnUM>4(5DTnsG(tmH~$sWI#|`uf+17SS}m-3joI zekMQyQ#EsMymnqk(%6e0=)9(&+pB{N^XA2a+SuNRY?FZADKyeT$LAF5Wx8caULJI& z!p_4n7E@T^Zt@(TIMBaiw4E8MA#8hb%zn1ZBlh~8d04Sj7JtQL96H0_M&OPqx)Oe8 zZG{{gTB{ohtfe0DLE&#rqTJiIeuMTM2h^_IrwZTxd$&Td^(j!*mWK@7c+d7^c1rxq z*h!qqusN9SQq3=TyGicW^12SNx0@q0w5^Nbk~2m5UE;$59U60zGfG7jQ)GpdWIG25 zzXFFsNw|Q$@as9WQ_gYiqmh$TkE{CPP2TiE1x_GpJL)yGPF~L^!J5GUoU+1usIy!F zYJKNsKf^ulc1^s!BVWL5^YXa=c>N4n;`J!hr9$ZwuA-U%z^Jbpj(>ZH2vE`lwF$)U zDJ{J5h}In^VNVcdElR%UT#6RKvKvP*H{Csfymi7%B)-n#(0Jd9C&(fQNuT>1{y^zb zF>|Zv&4|$&y?;2U9R}t4>fLH8JhLRA%npZ9 zxvGlmb8Pb6PZmY>)%7YbPj*b(#vd=qv}2bL9ZCEh)psa2hQ@;H(Mk`D)&DMMirnnw zvowMuN9hzw_Wpx1xxa-#Y3t;=7RkBAA1+}&dBYf=_4X5vP{waKXyo|LbJ&k@Sna4c*=5+8hJAWAWA_S}mnL|pEJI#oPIq0$ zmtNL?LG!jhShJ=(_@FW%OIKGcNXIgWNx-|J`?b<$nN6od||3)Aq5xjzsD( zz^EkbbIqHtK~zzv&qH>zj`;ODg$n<%xm-`0A~Ho`v)}VaLxNDHOmWBx>uo-TwOG5KX3O1&pue5m*S8~uRl zxx)6RSo`I@7Ymm23z+x^TBy)^&(}=^(KGwO#kt8NTkz0vyRPy~D?92SmrUITNf zVPOX!T_|*P@z#Y~)XUeTSu)isGY1%x!S3Z)D}<8Sn{rw4VWkzBFcY<;&Ar|8TcVD~dDBG?&UUtRcpubeJYwMaM9hQ21?)Ie)58$_Jvh;<-2;63 z0$N#i=pZ|GYvE1LLK*Iw=S9bFS_RIIOc4W#3Pw%&bl{GIheaH0khw9X=0@w@C^h4eTNq2MgP4Ahu6uVIi7E$)IZF8jWVKzedeP zSMUV2QhML+yvk4vj(`)Etx0nn$L6A-=c*!4Pc{&(UTm=deF$Zu)+DLl8pFZ6qlD*FN>igy5BDFsUul&hbcS4+rMX$FP z)5ws6_h=7|d-zl)C+NgnT+U(JgK9HE80W;T$e<#n4pc9+3cGn=?dm!JM)}SIL~hE) zo6(+s%!+9Gd)+poG%z|J3Xwk5*$1kx+U0M#-_5)FMdRg46EEpKeZ) z43z1QhHhZg`k?oB0CyJASmNXn0ve0PBJ+n*(bzCzKySzmuF9{jnBa&gG&Zm2O3fHw zOxruT)oa#r==`~DDji0Tj$v!A9hPR=?mN!N0&4dN4 zJf*{Q-2>*XDE9dScquCwe+E_VlIp_q@BFxXuV*1j*ZI2k9aU{iQ&J>wsr5YXs612U zhAcO}b59qwzq~!@lo#36*4pK&WcF_f{*&wme+vY<1EK%yR( z)H(IwoqUY?ly?TW)Y&<}=C^p@IQ8P3wU7dLD;3=G?_>E=yvuVg+>+Dw4s$#7>TgdT zsVG{(cms8|D_s^!KcJq6*f2yH;yT%FsAhSb9RVzpy?G|(YW8^BeRTw`7tEExec)x{O+*}$c$s)fP3;ajI)kuYUdwI8I#UAtR zu1qB$^SpxaVVN4Z)5}R8{#hKxaqr>3up%MviEe21F2GcXS;J)&xcl)=D6Lz3acY*& z9OX?elBC`~IH<41pFdA`Q1vr;<5DC~x#s4lXez;xC}EL&Jsw<`*L;54vuTa$SK@%7 zE$g=+m5mMfJOm zMQ5g5C;%mYXx-L88VFf-)U@(k-LBQhwG*e+(7BAV&@U~XyVV4$9h}5Y^1OG-+wCXz zu{8{7Jo5%t1N0#1OC(4mbI21a2vVwM`4--nv>eE?vkLvXJAD$&Q?(1c<%ppFj6(C( zAG*Xag9rY&unfeBzGHiB$@q5_^NWMfq#@4%%5Tx_i;m?>bgYb?nMB?6Ad!15hN{o= zL$2J0xWbeCuED6jT%H@?|IhKdj_Kgcg%^xxrEVuP+329mGa%PO%q|S0AaJLzP!LeK(Mu6+Su&r-VoITy7TI?Xc-BPYDQ%jP_SEa8Y&(~Iq_ydaj zT{RO>p5?uecEP&Bo|Owq&Vn*l11-r$S;cxuY(Y&dS0k29i7tV){&cthg$V!7`vQvZ zs7cgb`3mnHm2YB`qXekD%hl06CJ7=1SkuPV7kkw>LZ3g!y*co#2ulVrr zatvjIpLaJUjq5Pp{MPt9GOJE63Ac<$`^-)fW-VnEB3@P*^Y7wT($liQ zy!ht}(Iz_<#BCy#?w{#E+!yXW5yxt=s@IXE!8H>xe)hu$9ru!D3&D<=P|Zw0mNV?j zN{Yl5^P!n0tyrJ(&(?QDUNCXe@k_Voj+h-t3M0&Q*^`o*H}Cg1Xm>s?A;hn`r#;G% z1^fP->_3R3yjrV2DI30nvwZgYd+p&K&m;JwvI5IR|0%7#75ItgIiIO1 zwA`j+^D%3&{?!VSMFUW}C$%nBmUk+Izula6qz8DE7s=;)Huac9s!)D3pAByiB&1H; z0+)1gpAZ-#pw2-`n$msU0p+^Ph6(jNdb)7t94%Z)r7F1@Q8bfU90=J}uM>%NUWO#4 z_v4=6oR<}r;cO`3{W5|F-Hi5HMta0muMfBE{u(iXFe#8dl?lq$55d9u1g>>r>sw_4 z;6xHt_?`>q<}26w)G>?ID$Z^5z6KMecuO$W5kZ8u4I`?7`CZ?QH~}4v4{3QYuO)mR zeV4VT8XJp|4yQh0ZPigKi_Z%H@>RZX8;==(hEaIGzr zW=4(M$d5Zw6s_ma(`npN2o-YFY`1J=7m2D_or&T#Ra2+Nsr1;~S0KZt`-^3Eh+R`W zF$%V8;*#vG&oj3Qw7}3W`$IN=a2OQn9o{$SSq}1^I=i~lf-5c>a63=qYf(D*&(2Z& z|1@B>@X=b7pv)Z2Z1v?lcWdu*Krym+YJ8-udwd=`En zP~GTX$&J%W<`ODKD^l8MsI?x?Q>mDpGN=TR6fUFuh$TpqPY=BdRl^Y;c4NwC#fT`d zjs1+uuy83|3oz^Sv{cL+OOWi{c%+;E7O*SoQ2wADv5!CDbaq{lE`zQ1Th4__Jk-n8 zoQ>M~*0=il{ZL2nflSs#lXr#S>%Sp9A_i@GRyt{p=93^L9P2~q{ni5Vy-O~n7fXTd z1r0pam&NknExv5wEEq5?bXK7FRIKp2w3U%K%td?Yn<8ob?wCKR^N067b%abm1uBk)cyu2zIBT{P{(S-6bTbA zLRN}1@qFvG1h~Ucwv^=%s6Zn*x=w14kQ*#4xahH>i}5b9)FaH~A!c)(mgqR*30F=O zN>Ot)1NJw*d3%nX%fF!kYl=gt+Oz<_N-$Q3a2@-f6O4Nu`8`LoxlS(E^FXbuP7O0KZ|r@M9=r4E>XQ|zEIPG+vWLRIq`O2BA0F& z%cvn-c&x5{=V^;JICl5KcIWsVM#VP^RSL)TGZAik9m02w4ft<}=Kjh`Om3qH{0MQ^UqGt}Og6#m~DPv;liV z#vemGTc-;6cVKMBATjl!9Y%&X{bvhQ3T=wT51sE@s#+Agx8 zrmAvW{KGfZsPBH)XF~3ja+FOGMg%gp*#t) zPw4O@2=N2o%Vcu|>My?%d)uSC0FNA6?;7MgrK>sVyo_IDAJy;@KU@FuC`XMW8@V9I zZfzFlXlzyi>-f_cGKOrDaOH}1%0sClVVErJex>L*uskhJ$`-C0LxXow8;|FM?d#nlqKJs) zX$(2^NPsDlhr6rgp@1Rqy}^nlST&;K+qn=7)yAZiG+n!Jv|~ zn!_H2!o8}GC~MEf7{UGsCEgo?D@&k#DqS|89$b4l7dQ9W^4V(qgTEwF{>%7j(#5r% z?aL71GU-3h2~d~Yt~0OHr98~h63S4i;0Herp3-u$Jim9QNCovWxXPwD2tl0j*3u|& z!Ps#faf4Tcds!lNk<>ak!ru0EHL*gsQefXr4=!U7j=1&cwVu|h3}xX&aeJ@r6yP5( z!rf@5670~M>EIbA2)@sr)v*S|5{n8GO$8z?DdCZl+%4y>UMpT4X1!6KHz#o3~u&)1Anuv=TWc3%sxT+o)iNvXVOp)MfAL>%JFaN(r**Mn~C;7YW`s{4Y)P-5cm_?9J;s$k88l zH15={kVQqZPzSUQ9pu2nnl6Y*RhOklyR@592YXK)TEP^CZCAQ1WT8Sgx9mXxdPI&C36CNL{kSwutcrpuKN}q*#WZ*>NO63!x1!|1aaABVtgma8#=$Zmeg>QF; z*zpJ##T!yROAwc+ zb0eQK8Dx*&zEw%&0$3Lq^@bp99%`wN&E|LgdM?pAm)Da<`kqEE?I`BDcHIARK~hmo zCxE%mPH&iKeKT7hq_5W3lC_{QCNMNy6!?30IQW}p0g^Whyfa12x9o7F*~~yV1tC#O z!dMd)UR7OkvxINxB$Sf4YK@xzyhT2vdjHeSdK}lD)ICF6ZKqZ^zhmPrCfZvBg;MdEV~2mc{FFIz;79$1RE~hY!B7c|c0-q4^2g z9X}5;!&KX8mqLyP5g&sf!qlpts2#Uqic(XQR+7#)%=Xh^7)OjrO#A6@mdG!HwJw10 z`IOLW2Nt{y@uf9tSO8+eng|>N6$dkc#M%y{9Q&n{Cc#cIeFU zM#q0excKfL*@7u7@BOPBDhf7^he`vb-uHVh_p2;xLPRT;PDS5v?W$0|^Y)<5f^R_g zRRFQgmz!~Z6B+N(iWe?*6{P`K9vf2l^8rlQLZdky{zp=f=w6=gxM&gNS0;Ip#^wq{vX+IDgc6mALC_FY#eJM5c(1 zX*NnKzoW+%I*`0g!ij%{{b)k^Wi{b*IRkrl);;ysZMB`~m(_%7V^)W8z}eH6?`Z7| ztzeGv>BnOy+L7Imlf2D4E*AvLJ_YGmw*;O&&^;@{`}M0&@Y?6F+JH>=Ntlf_je0270C#T}b$7*qBO)-cxC-e$*m z?$YhG0mh^LhK1in`1srfe;Y!cVkrdGA6-)SH-@6XKNWsd+$E}<1WTehw%hk*{!v-* zBBaEHY`Xjm5XT`UH_O*tx~FbGh-p`roj>;y>Wi&;PEg#7!o}Qv-g7OzB`BCT!L?T1 z6J7oE^R}ooT%jojR~vkzlAJd{xR|JTHtfOWy@yy9q+!)3%^TjQC=ooy4&m1jSwE_J zc4mxLnk@a&3FRv)=XL?1kM};(sIL_ahfgVwO^icaCHi2ClLS9!wcvi6B!gj8*(=lR zeZ?xV1uuTtPVa5otUarHbSv##H~YM_h}WQRTXvwa#4N;&{Zs3Z`98x?q~~3T_2ecq zn8jW2+$3f~*t2@(hZNx(Cg-|Rg7dpNZ!~n>32dMpgx}0#dq<*q)-omNCF47F-W_MX ztsp>F#`7k3ap3N<+rnth-W}1avls$XveRS0>rh~56XTKX0>)EA#hKaT9Sb%$Azwqm zGS*O*CSYrk>l`m>Ogo(F9hryURBnLtw2p8Q zCtr`){rN)rLN2!TtYrMM&VIJ&>%wAl+gl8f?6@Y@iyF$G0k+P_%R}pV8}(Jf$d&oI z6$Qi4H{3NwNg>K1d9JLFi38t!HV?>zX3YRd9n3TRBr{fw^%{M&%-;mA_uNPR9mCqq zv$97ruiX*cV@C3I*H)?G`ELTlmoSL^*g9V_vm5mGyP)KwS~7_1zNA9XjUgIcPl~n= zzQafO3S}^BX()37kobQe0hRnbiRuacVL#&cL)7&fDq%4n#yNIf8YogySfIS!6Naq)PqEL&MzLFCnwwuE65NyO zmH8mW{M}Ediyvhl1MBM+>HD&e6{vutqUm?bQ%nHEU2w6-8a%QEcXv>xf z@JAs?+;gcj*v^)=eB!dO6GzA(*`{DsrsE9m!>UDyd>L#yk(*0TV6RtFym-IR0lc_o z9?@p!6)i27Yi)jN`I@rAA5JdC9f$rhEX{!Tte7;*b}eQA>JC$fxkArNoM!NbcAp99 zGVuAp>uc|&x{2(V6(@hpXCBEC%Zj-+X{F8fMuHnO4mCneE zR1{msmN~gP1mUs6mb*AkIfqg-Ty}oy^afK^>A1YIvMmPTetgWWk*aMDJ3KioE%SXI zS7A@%KzsBP9{y{%8efka$aCTm_nVuas$fGqjgMiAtG8w2(kIALNkCh|c=PZ%ZD;%Hq(CR#K_>GlP$dEW-di~I1DHD6XjCEVVelTDAljaExJ4#a;ZSA>`$4Lh^ zZkzQ2uXh1)lV6b~j?5$5O(@bO8MQPzm-2KV`Uii`pCC_&cl5y*4T?9z_I(s5j9lrP zI?;QQbXS9yQwr2hivzG4bc|b&7l^#p)DDyeU zp?L^v!iwF?F#=U>&)tC}Z`)NI(XZ4R?W3u9Exgq&&5KHh@qQZxq13`X0{*@QUeeOB z8;Vb`9^*D^h7En&ZQn=f4TS5;GvOR^YKRhA$<(kOtuU3Ml;D;R6 zF#=BE4=x~suG*a}M4Cu?Let```(JQ^;+n_9rg*<3$%4=ywFX>u+k#RQsUK5BU_5>f z2kV4vX2yN>`j&h(N#cjOMzrj((p70!R_3O{R}W4esD*qPBkmc(X&-Jy8wD)GKY;Q;y&bsLC3DLo)ad*(ERl>0@flBq^hEPUR+Ugxci>9z$l zj*B|C+!^r%@17X5 z1~N|yHpBTCJ<6;#LQ&Ijc&Jt__Y(g+S&hzqF367K+K=5~8S1^Wc#&%y>o~`<)W%%~ zTrYB`J;HQ_a{Zv!BBzkr)CTao{8QU?qmPFzSx+A=7Ir+tbdY@FCXOz0quT=%c6rkL zJ~0Kkv;u;DAxaZC5k;HMI|8_P<`R19UnH!Rr)ye{9=Uz^VleiX2NqoDj&EDu}gQ>nAW*aMj8&6 zsSM}HZW(MFW+)gL80Z@gY}G}jg!>^5c~7IM+X%5H&rcFfl#J%D<1yD7_L*HpIh>_RBm(S38SBpt9QTlwU*uD$(N zzkP>gzYo`jc|{@Ei>ax=jS4UPJPhcVdwinxpC#t+`^pNMw9m*gIUBhVYcZ~kZm63O z0J?f!+h9@M-6}!A&^-u=*^p7v#Wdpyi!E`gOgkLGSS>HmP(h=TU}qO60ky1tPw zZlk$)pZEGj&&xrKE`0PmqHeit+OwI7k(gDX=KY_vlD3eB(a&8Rv5++KeI)eEzwsyw z8;eoqk%8MGt%B^?!hfirv#y5Y?~%Q*mr3YZtIo3VwOKtq33?A23IvQoE`l;8hRul*8wEQ^VQzfU{o#8^ka1V3G)h)J$N-- z+XPXuiM-M9!soRPe#|Z4a8GSfsgy8N^An3^l_JxpZF z7EUhQa@gm`HiZiXjY;*$x?_N{E;EUnj&$QZ=07gV@??GspMoZ;_P{#6LGR`t!2BgK zdkNL*OZ3h$Ih}h0=5$%jpagTyvuFgqUeohMl^5F~N$Tmu&CORt6(&r%+vbd=b2jckPO!+K2r4y*g)#9oYz_zyTe2*A{FcY!fzS_CX zdiOp7?h>ywNtz^=9f8R;QY|Q@AZvbo8oF*A>VcB@6-?;`s?S9U1X?3aQM7YOwr&wX{^Yz19pj6uWoY_ zBvhzZj~YW=4h8oySn!D?wYg@lTC#;F&R8weVm4k~f{tKMGOoTkz+%agP8P*l9bolY zQ%ob+5o`*6f6Q9VU_5Tp!wip4c#(|I^A^W-;0NRn=(!=FO_UCvqOcoQ)W@3>b$EPu zKig?(0%(7H(&IIS{l|Qup%U1xE{aT_(f`fnU^a7lak@QDFVfr4=>_cm~U z*;thLyyj%**cM#Kl}q#ri@44rx)tN>_MyFt4ydmVagpkaam28svB=$#x=XW31>5H` zFKb8X?1?fZE)o7OLtgtCD1>SKWmCk@AhxILz2tAij`P+YK1W@>pb4laQ}5|gH-xdM{n@V)RGHY4(wgtJm;=j! zCpi#p?y?-PHv9A5Sl`sUT;$UJ+w(mqS!#Cd}uv=q&B119*fXm zr!d6>I;p`sJ#23fvJKpi=UDoUx4+nRw41i*@QpI8LvJwrR9u`kBMrex zS*sdX5p*h#!4BI}Xhkm3ectpM$yTkW;|B=iNTC$x;-Vh7)pBn(N+Q^#Z*`fR0)rw% zE^nIO4{qe@Fhua-!dKT1A;r0{tVsFys<_`=zc`cxX6cQBdLyYGoAZ_yIhgVjS1o%P zd72BNL19NZPV4;%WkuQkgM2~O-H5uIN8gAON;&Vdj`}1cd@j4sI%JABqZW2=oKZxA zH#FpKvs^ld^|1P@0EEhYGS}B;;%Bwvz0L}IA~}%#KI4B2U{|W>I(!#D5B4&6;}s|} zmdz6d0keg;LIUskAU7xEss3h*`fp>oqC@eE14ZKyqS0uyr&`iF8E@thZwZR?T4e+i*1p} zh6IZQIoi=dp($RJalr-1#QGa+ltrGjInXF#se4+OMwNu`7toZJQGZg7*U819kx(zL zwb!7BhZl#hm^g`pwRX3G8oN7e_Gb9y&spS&i|b)ow5Llz?{2f>*J#~WecEzKXJLW7@Y7uGdD;!SsU#_iz-#_X7ohA*Q$2+-72?Nmk-Y`J6C|6NBrRU4d zk*vp*of1F;TK5^ROU$BXbDBj+Av0)8&W-xkB9c>c0<4qCa~KtEu*_dR?Urubnv#16 zdgz~Wio^rF>Uh0hX~#76QXZxq8UTpx6A)I4T#xpPgKhr;S&g@SHszQK0}q)0b867? zA(98k7*mDI$S0RY8p>np-(Z~qF-}}i7X30vxyt&ibce&rmC70w9Nts)@ zjJeHBlu9KfmsBd1O8B_nrQAZ1kP6GSLM8k9{sHeFUhm(|IgjV#DZX8N6U0JCb7a5A z@QkM24PtB}Q^LLPmZrCB%$Fq<#=zTb@-gtBtj#+|3coH!@Fw4)Uu1+FT*_7U>L5Y) z?8PXi3ugzO2*TqH*4p)`!Y%)-EaLmgCS5r<+~bAaZX7_+dKCD6B7+~s=D zIRx}2Jck0c=ici4BAaQxh29Z9i#AIM_X2k_4XpUaMDpJk+dL`+mRJ~6SA-Pb7Q3xl`HHtDO`AunPyGF* zsNxz%CQi1dDeA=mnsM>J_*Up+xT+I_Y!d-w%{d?b#T)QaL&~`aSNd=_vzYbW)>$ys z%0t56vRwqN1KB03hudOYMUA`w|1p_{3gB%Q2?|ky3-}dda5#z)6Q2Y^>Rt;(E_?x> zq#{1oSkAw@*73MH{4pZYKGAzfuaNt^4_Jh5d|jM1NS@O0RxR!XOOc#yigcb^oG!o- z?{0W;M^B*VdJpcQSiSJAZ4oI!;E|s?cS}(Mo9Z0DpZa!j25^K&=LC#EH zXHdHekHGUjk3{T8XnG~=RP4RB3Q3#~0>Kam zFNR4fuf`0R>0jzuZ%sj!%?+x`p zQGmDw4+E=Xc1|BLKBWZqq7Z~tJmR(b`xWq!xYZCJGbD%vtkh~(!rjX+H9rm_Or7a7 z&w3S`oFDRmVmD`MTf?(E7x}?mEAy|wlHx`hN^~PvzHb}$cgXRFC1cd$OqX5!8dE=gtBir5eIwej|EKABiG&PPyCzcoe3Y-t)t71mCh>33-UBd-Z zG$~((gS-*}9wg@O@}}Nl^1xSHY5nKTHs7Y-KlD7xspzwu240YM2N6V_qi`Kc-kuSZ zn7n9BxADP(^}P4a7q0w_Xdhd1A>xh1UFnSU*eSdgkO!7;QUy|$`2;s{rr}f^cA7PM zZHWxeguqU?2J-#$!VF8OSDrHzZG&`gf)v~jWO<#ULpPIy-E$|gynLHK?lXt)q(52% z*#oRpg1tMe$fnbEXyTS>NdU$J=Vt|QIw?hvwjn>%d-xRPbz=F3rWeCPwr_RUCr%R* zv{t=cQr!Gvr43Y}?K`5Nd;^3n>({D|9IZskILF;WR@j64-}t5A*WB>KkQuz%?pI z35m*{<~*-zfp0>8xLF4B^xvSsN@Oj1FXaVo%12hsu%cjxVZql^XbePWU23YF93S#&h3M;)j zMB4740^Lul_4m9Dd*s6fwnKQj#-iS>&;EC76s- z`PW5*;PVYd&4m{PFJ?yG^aJ&GpJiBGn|T*Nbyu ziymbYb1lI$AHIlRyErrTd8(Kq@036OZG642y>ED(ID9KH{B_^hVfmfcMW_3IXeqwk z>+7=PRXZKu-_>?Vw6IO7Y(RTUsad93s3A{m%Sxr8A-(zUM9zCsUJrDg@xaAlplyLn znnXYCv(qT6C>1E#%X|>2#Iv>M$s_+ev5rr>FR|F z4WlepLU#$Uh)hwibWN!E`@_qNWg1y%AYw5vD~j~=Pfg5S<+gDfWiVH zkRxD6UImQ0z>9uKHoeP(%*}t!w}S$zmq$X6`&1LxnyzNkub?vL5Z803kO@!d?cIwu zsb-HA<-s<d|IB&QG4?(m`M>Kl0*~yIKrDAyy)CGYBgPJ?f zeLth}xh`CqFdU}0*>q3mhoh07#NTF*6}es_O~Ombl4&D)ayse&;7ac7KHf;5$ zbrOEmI+F|2z+d`$qKY;6`LQldv^gPdrF?|`hO}dk1?upQCw8j*#H5V9(jyz3zK*B} zLgo1LFS1XNKDqrF`Nyv&!$F`n4WOpmf0JGRdG0cYqBFS!`#-C2_rpdZj3uz3*-gbB zm2s~qo@M72W>Sf(8Xa87j%?`Ma4wU1mbG+oD>-?>t0VFHMzy(YvUNP=n?;tt3&+&4 z@#iBcRpzT*)&HPoCzE} z8%M>Ur{Hfm`{x^5S_88Btrwk~2ZRXK0zz%mjVNVce95Q!?ko$yLUOj_?y@YF=E) zYf}9o#cYg=33;73lmDC}It-5_SIfG9@4~g+eHNgS>0KJa(4wWT!u3ygK8FOA#P5wW zyZ8pb%N4LsaHK?Pc|S@N$7T=;<9%AcPSe1w^LsT3(z}1jf1dN2Nxe`r*rl~jeX5+f z;tk=*vLP@d1RF;bj05fO%*y^?n(vjUzv)s5V!*2!eXF_w43%yLTr=J%q_7&(3Oi#+ z#wMZ|3u$`dX&{BPI5-5kQCR-sWhAE4?y46=EvF7BbOrfAG=ZtOa2PHfpy6fomVnuz zqo1MAj@w<`;eCPr*qZlqXSi*N$Kj)Wh_iq(UwDWOl_N|y6x_ZH`^vIKA7R3#k9vv8 zY4(~qu{b;eSn;M!Qh$LhB>jz+-?J2=Pue*3tZc|n*q|g1$~8m3xclmY znOO|^)vX&e<vSHd6>LDNc? zSHW!t%48(9mt2q=SjufL3#$f?Ldtfv6J_6yIx3%$poxK}NQ5)(J7v7m`7WO=cza@| z)4>rMk~eNZ#AW@!oqu&>He`!yRsNl6924z?s?;3e<88>VNVK^=9c@A|*w{^_HcTc> z@(;iXFN7yB$o#yWRYSIZCkMM+^B&bQ9vX2q#s%(?2)A)LLEl#!MkKN}m9Ch=Inu8x zV;C3**jP_bq=mDfb=!liB=BWQ@i?{#Fo?N#$F61FSR5;x~3c=!v+^6E?(}4*=D%wx`uCP*ly6ZViqLzIk z#9Bi}V}PC*^9-mel5YmLR)19(mLZ=^(e0XR0xOqVa3~s3O-$4$*+qZuk!uYLkx&ag5eq?Q8(2BoCtgCX$Zn+UqnTS- z+e!VLu1$ISg@4&^fIv7BdzoT?KJ)L-4^%bp(qTeczgxGQxIWhC^Bq+!a01av+ty;E zErP9m!p5UR?aYNmK++?9nvRJ#&o>nT@aP$5%Igpw*$%WI1uqOib4GeW?f{`)&we*( zg247tx;wtxNkRes?g~X4l{RV?HHgOp{P!|hcrMwj=` zS|K1x@wSN!JgAkfG?U8DvUC5pklDf4 zc6VMK+WC;0BmeYgk-c3vG{{3n*vd7FkNmoJy3WGxo0}-?w*x;!7-9rkhov1v6Ur>1 zH-^%ykRFq7@TSnqNa%Q$sj2Xx53Q=X7mE!h(s)$2n9eM<&E~o$R@K7M!cafluDH!? zJw__PZv{4t^D~FKw=B5NGRW9}u-3HqsvqchG(t&U#=Rrc(487Z!WQN}d^s7DHzSQ_ zn>)?Sw&m(ctcH1st4Ek2$|0~y1*O$6SMvuS(yor*%>p^44?hV7$-EpB$;s9o$cgu> zaPG74J?=f$Q;=0`6&a>O=}V_j33*oT4_-(Bi%y?QQY`e~nIHa=dL&#ZDzifT(8+~2 zheq+pPyYWZmj7c~#q?0&KsgMrd9YJI74ugodqd1+%3K-qK=OftVe-7Wjbf-!!l*;( z-se~M$p-^fg;`tCIzVOKH2XZ8_p4ILgNWG%0)Qq)KxGkPw)AYa*JNkB@Gp56 zon=jh7kIz?84bnw4hIqFX zQVlgG4?PDP-S$wdd{uAxc@%ccysyZw`uurwt6@1FolZTF2PA=y=kphX4fDebSsveo zK7|eWJe9GW*i&#=_lrGpIvxz}@q}8PEaVh56-FPg#Nu24Tb_D&0d4nZ4h2psF9<-Q z=5qAqPlLc7LZQ)WId^}7|3RGBF_{4|*&RG&xeOc;93EU_|2)sF7wWwoF z!fFEgPIWgruulM}1tZ>{HmW4$Lw;KJ$%-qjZ`5iq6dCrry9$f;wy|m2>z(@;rkTV> z(!eM#i5^o)f?qv*aS%waCqW$RGUg9WGDzqlhdxsh8v9UNj^|YdqmBeg#i|w#?v()7 z>+gPfUn`pL*Cjn?oPMZ28cXZ7G#@m^-_)$N{lY#i^qMkkwabd$1$+5E79{+N7wHHQ z&d#p}=&RMNF(1iJC7!F)PwnJT(vd(K`vA=#n` z0%q=f0`RaBca4mbmstw7TVs5HfJJ4|*<{dgA0mqX8O!XZ(UXhDcZBYwp5Jv16F;R- z&RUgAC+Q4l$oszk7sV*5=yNc5Cpt9dUe@i$9`=?tOw=$mT||h5S2-J4gs;BKJ$|9y zlE{50TihL!gNpQmNKUZKQL{cb?%iP{1ehNVbV$veL$Eg)5F@>fNR8xG47tuj2ob_q zE~zI%#LONi%@}YTVFzGB#Re5FbQCg;@!fS~SrfV8D2)1>O9(jp`NQ;+Pc}h!`^=W$ zkg_&+n;@oJ^xn^RS3I)(C)kyj2^yohzLTToS7ivgC*sLV_)v6k`h-mntwB73R*-0v zyngCC7Fx3>#1iHQ>=kFc3tL-)w1!FaQAq@A+;vQ4!??)NWa3miURV9+LjtQrvIl+_ zV+brA)(vrf@YPW>SRwjiufv3EopO|`tDYM!C*3JT6T=A6kw>wg)=t%R$OjNSEEnLwYl_r!DlgFtOtXy0 zRoz1qR=MSj3u{;1=}&AJE%0WJePX9@ccyc=lESGr&09DbQO^p`Wo^^M5kFF>y%96k zPp9RR*i-_6tMD9O->`p?Ln7z^Z*>p~RIYoh?JLVRfCMBOP{K);NA9JEnJP7GYUaDH zIY06*-jtAP`x=^h&Cp54=qs1ijLmLqou49B%#|y~CT-BXa%p?A`i6VOyD*Hk@AOFbkmHjQy=# zLIduG{jFR8j= zN?eJ6s=_9*#--WR4Dz#+Zu_Erx zsO!!gTAq%Y&RuwG)f_=H#-`%W4 zy7e*0oP2ITRH!LE?Nn79_EU*bkF_W8G0-0JnR;4y-cZT99QU@_2U061z;bf~yh;q9 zgecz_Itiz_kmvFOh8HUH+me!S;XpIr6)p^dpNq9Mjyy5si;4&m zd+-7_3gl?~9qXXd=enGo4~5K4WTc;m4`#3M^3#<*Xl?=L2()d#7!@A57j2Bg;J8RR zQu?XBOJowcsFWHprkrZs{n{w7yWy^vOblI6u)X>7dyf@-#OLd^!zISg)2#}Dmla;reV0}3_IaLmFLv`wx6 zLoTMMINIr7!|D@ERBSGTBsB3eyxrsv$s)dEEL+G(D@1{prR6w!Ik%O^T*8h`<gnpEcTw{=Roqz5%AU5d6~I*WV|R$awy^2`JNK}!2UtUexY z*Z9?*cLe&#h)dukDd^^Nv`{wFTK-C+C`|5gRo~dw(`-}?Sjv&5$mEk;KW+PTyl zgGMK0)}%U4>!^)oi&GzjE!O#|Ff@rmZ(oKJdHKY3-jAjmW&Eo+;gAJanv9ZoSbi~m zzSEy-0@0aaNr{B(w9om2j3q2-O={0J(o0@HJ$s%?%szj$e9GRVY2@SWt{X%S(nE*; zSME67<S*&AygJ|_{n03MA1YLe^jqu`C(8^yU0r`JcMltlu!rqJ1dl(i-lIJE*Muy zJUHp_`Bs!uSo^d%a}3yd_}%e7s#PSn)uIGpR&8o;a7JV<%j4R_g`Jv{{rD`Fz!6Cs zaDKhqkp#z6!I!@OEFaQC?6aNGY@M5%vur!FtXx06vARgW)qOY00XI@ArP^Irg8l&8 z<9}C&zIR0RhpM-}89e4gCI2M7^PF-D%tp=A^Tr@70<4UC_?Pym&rDKhf}H+<>WDOe zZ`GCfXV7<5RA4{G_bzY64L#~b%9xZEDj7%48q z=mbl2nFT_9=;wRD)aw^+qZ7^LU3<(qUtR@@wIt8*iwIWH$Jq&P6;>0H{h!1yC9s)a z!U20n?~|G4jc{?eWKp*#aC6t*=%ua-UNm;fLKb&!5H6cB1uhc4C1s1VQf{=t=9QD5 zv(F;=*G7KUq7I+un$bmfOKaHT*bn+1XB4~z3TSdS0iMo609{-D)_ZCkU?`dI>EpOc^yLJKPaFk}j9vNwavwG##V+C31 zy)Te{sqj~Zfrc^!;jLSA{kPExsfZx{ZFro8XKuQwwh2^K9RC(*#nAv=&ZO37!AZUk z91ihrP;2_(&s>WGz?DZtRVpSHil_rBd|^NqlDp$%?}U=q%O&H zQVKWXU5A{%cT#A>Az-@nVdU|GBT>n~J%|%Er6Syr?zq?(BP2e1Q5z46$;=*n{g6nS zaoId#Vn$7i%34iA#y(o&AZ}ZCMMyqDSfO5Qg||NO~wp%#JJ}RuWW_nc)cmJHF_~9AJoyd7iP|M8+=UBR3^aMQ>sufrOd2 zN!qtDeT5FBuvKd5BtcrY_3VVrUHYxyk_ z0yXw`Lljs>4}Bahn5|S%k=xc9j1Av4;H1cHck+Nm-j%DEALx~l&a^|ddx_saoZMAA zSCr!YboYo3BvT_gt+x@24kqQ3=o8Ej_bb{Rg4e{VhhG~v9d852cbRb{o3Olr?U%8j zRkZ`aN*i@IllN1wlJ#5IowwLLh=M^kd zh0fZ*=}_2u491w$W~sH)Jv<4g6!R?=GDn2x_RDt07HskEFratNO8p#ULuEJ@##p*X z7R$FWa}}yr)ImRey{oi<%h(+|!mB#K4DBdz3vX-xq5wWUT%eb6Ht{6f7M6z)?J?uN zBO(y%s*_pVw9O^-k$Y|0*4bx#v-+$0v|J#OzIJdv*(8gv(f#hk-~>CB2l`ol1Zw6v z;r$F{@U{B00b+PK)$II}e3MF?>btph=9aqgltRr02ij9fOWQG*PS?qze8WtbKN5Zr z)eDBG+LnI4i1i4mxAi?*M3FjlhZ#98V`K4kxqe4?+V3Y?QtGnE6L<;sPU}e1<=m06 z&vtmf5)f}T>=x~~X`?+Xq@?THVQfuq?^T_T6FkUoT{Z-XhpJNU*=uZXplW!_?qzrg zVOO9Bv@?>+Z=SiViqfDLB(9gp@AS$`IwBhz8!MRcBZU9Hkcn;l_BMEPu9J3gZTPOt z4frilp&Z`-*wr?0*bfu^K6+~z0qSdCkOOW<82x9?7+EU9DvYUTRx7ed!`DN;$Z~`Zqw}kP5 z;&Nf&eTnd2&ixnQU>6|z0JblmRiMZYJT6C-;U!X}Sbl=sIC#rHHcp&_$TI_z(Q%N4 zb5zYhXIb}kEv-AV+UcDaQu8FcPASFIl_o)NbEE%0tUQuEkjle$;i@EJtFHk$yf$4P zz)xf>n@RrqnTFTeR~Z$2z+|61HRs73Q0D;6@u(K!@-9rR$s5+b%Yt z`_6S`m1ay7lLPUiAa7A&J`G5`I!I_x!t~FFwvUE>Xs$6UoxB@UZDiz^k1NZg3mkVi z7p=fS=P9`z2ETe^5sa_cu&Eo;8cUzUkBpxaow^F7prOyQY{h45 zm|v}d6XU(z^-aU~ncj|QA=qiSJKhuL}wd%iZaME?}L$N1=PTnl+l zR#}&P>IR^p+*#l?AR)xHxym+{ZcnI3AU#ahQ4g*}KZZXF(TEB7V<36Zn!N>LKBF8eU}IDdR$R zO&|1%fqa__hPD$30?EMeN*D~V<_J`%zRWloRDzX)kQjIwOLLaj3y(svB81m^F%w&N z?^=o>Th`0YFA(l;@^t7LM|3p}&mpiaQI{T>=z?!C!}-D`GLcmHvMcyret4sV3TvI= ze%;%^cd+H-Rqz4yru&e~L5f1?yd@7{53FfY*slf=ZRlCrzLoMjZ z^<=)VWAF>kx$VE&udBY9wF=Ck05{cdz67^HgT7shJ3@A{x5$GBb!9xdj5~FI$`uDN zyUa#0(KfuFKQQXusO0f94Yt*PVIL~5#l+MSdsL&Wn>XWSezqUP<>SLz|H`Hde6{!) z3E$4~RF0Epo#*4>6?GHnQf&*71Zi@QMW{{4%1MJ0*dAQJ^60|Uu{5I<8H?Sp<}h^! zEX~E7Ge1p_^0&ZIEV&LQ)>Qp{uq|iKO!dQtP?8ZyvkVVAERlqh5$Ce}0loW_1VN#fOK$X+%zdDLF&Nn#?~2{=F_IN-|Bx_-Rj zgP#@r;koKxP3T4^(+VT83ZjSpKbW(y>t&@u5YFe=;V*Q zH&b<(+>TyyH*70I%VY2K*f@SDy={+ymQ{A2@Ym%}4c#*sq>+5isBYTLI#*2%|*VGkEYfd3G++^y-SOVXX5?xT~6IS3_J0bSH68#~#~7TQR7XXXpI*vteRCPVFhgqHs8R-$F&`-F(W2MwQ7nm{3b#jCZt@NqB17OCLDI51-$*RSzM_YlLutxrgSTn; z>hQ>!!WXv@LyJ~(PqG}mD~0Kk1O8v|5Td{VKLbnmbFg?w{V9=ZK7oM((-kXI0TJ$( zVq}1_Gr447$7%ga%q^14_1V8+7YvuhhvC8@Hq0UuQbLlP8(LcoJeYd|@VSmuvWb+;;N;`s3ufb$)DJqy$pje?Z=W(INC{`OeWAsaR)KUDp>W$H0ad z(F42LIe4XH(_Ak9;?n~&d{F88EQR_AK$KS7@<;(xWpNq7o95n5G)8^D@vq%07vZd+ z#h6Diejl=T28tF<{WN1Cjk=P1Ujl8e;)2AaW;(YjVEu~{-lkctvd08Cf(y<(KfNmb zlXJo5d0>_GEwvZILoC0i=8npqO?me4%RZ)4v+A*(!q{C4VQ1*P1iW<8)$o_{v1T$~ z9PCam$Sio1!8h8VUSZ9C{tL}ELx-PNix++`v@7-t8WptjpPIF@5mX^ONx{j;B^l#% z!|C6IbB=OwPVQ&*^33xZ>7XNvj=%UOMh%|#C0$VBQ!WVDC*-DhWWKj}e~8fe`IpV? zs_Phh!N$s};+(B_FW_xRuxb+v`{R`6cz4~a5+aoKXqm96;C{Rt!Fa5r&xLtB3v;qfKGs?@5@YW zp}&t^J?I$AVKKTgb|f7&B&3gCUeP$MEC)}FV#d;QIALFl=fwx zXg`M^iG#lD=~o+0osr>|?%z%a{Ovhqmk2SKe8=1TfhO`C_$x4CAyZj;3vSr*cV}+( zXx4>1Pj7fmI0E>wT!4XW9QnifpiS6_epz*tI`Y}lVC;D6d*+`{n-lqB9uCSq5ORh< zWCK8?44i)QGn>hs$$cEhQaw*n=C{K$2DJA(+lPnsS!`%Tp%8r?8-Jc|{+9 zYmyDQ7^Epv=tO8w6?+N2!1N7=|9q#pn#3p5-63V}+Nb1lZg`$orG(FMg)48>AZo?0 zB?5+vY5RmfZ=fHe*i%t)Cbog>6$9;I@saswvB;=+a?B z0eqbJ1m9c$fNhI5utmfnpOts-q^L><4Adw{EILopxwjQtsRy>!DVl~c(M8aGVT zz=zR;w0}pgkcmxSvDPK98#;fnqP=mg_}@EX0I~w&7qv*tQ|MI!fl%=5mrO2NM;M9b zMD$qG!o#8RhG2e67re8*fNUV6Bi+q93q{cp20}q5D$g(Vtb3%X2VJ*U++e{ZVXoVN zt85`ytP0vjenV3OERth3$NkF^y~x*Pk)sad*h&f|&viPdyYu7aM(cuvshAX;Iu4gV zUFN3)Gbl|)*Rn_8$>MR)yBe>tz{xpBKQo?v%a9`mVomH0$Q8Y`akUmKqaaXk zYoH%1pP)>tVrz!DCazB%tJl{2$>CvT%D)_$8rA!YdwdqrkAJ3lla@#`lE0LnNK^5Z zBN}y`%vZNBsJD)1*-(LU&fi|Q3=X@QV|s%%fpfu2vh#RvPe$|6F2|)vg_|I7JI{>u zUye*PaQI2$!*i1w;NO{-`M13z%%zwe(pdtr`g^|8g^90{rAezss)yIEmXEyNdCym+ zaQ%9AoNtt2*vb0}GxZloCslV8RBADautl)DzDb=BN`7jS2>gqtVfkHZ#u$kg@>Xdw zcCz47!P>wL%?oS@AG62uEHh6eUnip&b9MhhSbx>2>Y9wD?xhJE*Eem&7C{xdP!f2Z zI{H`2GqY7abNX-_ICH^05`snD%N~OWSZi(B58o>WyXPZfIQR%J>4{Ps^IKi((H&2K z!nLUMznO8$CE(Ak9QggO`#(^hqGx|F{sn`8zkvHRvcZ0;*jXvf`dr5-Z@ZVb?pHv~6dgwB-`L?$^g;Gf?tP?c? z^HZh}VqYGILbHEf0S2pk9S5NlQ+P|+FR>qFACp?oS|&aypqh8+wEpTky=0Saq-{TE z0E=_vSg;KdNs9!yt*v4Dmxw8QSH+)QAFeJkJ5Qh1xzw`QR!XSj+(|HAzDCc}u**F% z7cnQ4z4>s}?4|T$ljM(lmz14=NLTEW^rGiR8@dWu7v|70XTTl)cO9uoKjU`K%s0Tp zPK$#_(}%ED0(NT?!@@}fkC9XXAEC#3ff&&`{BN8t_LtmEIL-;IZk^C<>&!+VtzW}% z%ryzI`NU-BZA+USw+pvuIQG+)B3+?xS#S1Gnspr+6?doe&j$sibUYHRQT<5Lv|^x* zKa!+~H#c(#IUDyay)e$E)!th+DMuxg@e8lS09U^Kv7qMU*&_t*QSP#BZN#65%PfrxZ>RkGE(bj4vEgxHt2cqY^R&e!HT&tNK!dFNb27m!K`3x(qh}0=~-? zzLkV0Tk=yILFJy|A^@qktCkdi9Ng&)$F!b%s|!m(7_wc48Gm@=vB+BvRUc=d3DA2S zer&5m|EcEOHs-Pok4-N69iS!PEMNNq1de7n;hQXo$HJeghsQES08T)3W?WT#LrG55 zzMs8B09c*(mO(dXiq_ELt_z@FPm^E&Y*sCNeM@@TSLOJ%6hhXQONJ zK`lPRj#qdO3fGwTAZkdTzyAlD87p4cRw4Y1*7Q7v~UR+Zv zYa`JNiPM3}^z7ni`EIfn+QL4cggkZ3v{(X$%LpB$)a3D#_#lp*jQHxNVkKzuDdEvo zWY3|R(WH$bAV1=9V%T5cP7ua?u~G4+Z%%Z2Rq)%74~|V^!$Faw;Kp(xor z9(-$&E^@C5LQX4t>^l2MJYJpcEbjb@Bkd0eI{|+$E-Kh)tSNa|(NujjpUV|7bbM;k z{uRbM!Dxpue)FW7FqXqp!yELjMJW(eygMujm19eur(#ko)!$!5{*Brtwv@jdo3oMa zF|$q?AS;G-$s8Av=*-=@n{nnhv^W3uN;JI%XwtIQ_R3Vk=TsnLfoG_*?ucR1LL*p^ zks(~%)&}OaL6pek8)kw(Yzyj%4)hdwffP_LFg#Xh>ICag1|*KB1uCuLaAN8P;R~F1 z0qW+(kytc>@`ckJ{kB^XS3A3Y&(gT{A3JyHI= zF0pMsy({29zw*bYS4KyN05OQ_r-HjtmPQw)gA3)R?Ct#twV5D4ojuoTNNUZwjKEPV ztSL+F;pf(BhynXxx%E5M8F|ZQm)jaK%o|Uo9HLPu0W>m2gQi1Cr4fhY?@m7@CPa|$ zsDI)|4kGH^VR^jyRk|;8h19tgnHCGHn=M8w0vuTvURf=#i3>;UKTYLAw5*CiwYX8@ zG(@}*u8Elw;Q8D^zmL$$ZCBC*hmKe0F~SMmym&#zvQX2CXX zrAX*GMUKiLZb=SPW-&uU58JioQ1Ad6p9T$@Dx#%_u4!pMLgYz1Sph<-VD&T4bSBhm z1Q9a-{I%^6nsQQug;p1O{Z(+0a8>p3*5OyY?i+J!yuaAw!Ih1}A5>n82_9|0^TeQf zRE~tGWD;{Wr`k?kA-#iDM_(pyUaOA{6aLI`H%}y^zXC1<)s%NUQ)}_P?*EeJBziTf z2{q*`h^OD2Iz*#c$yycrn$+>lPQKi#V^Tu>mjr!t5>4`u-G>FeT z^s5IrcoX0&35_v@!ksm~&JR`be#i0-AQjMP5d6VcVPfm#n}vhU`cPSpqrImYlY1Pf*j-*Ov6vYfI@rhEgz z0zxlrBH478yw{3uSQt9kub&{}93MgI5~ta_|L%DB=2c-{q%wrT`sCi5djAws>%l*2 z2P*3ZP-?A}|E{y-&bi?#wi0^xzx-si?-lo{6d?J^Rr|klaBH#-=-AmN{JGx4L;{%M z7j307&Gb{@e76e8R=%;zg56??nR0kr>~T|*as4!~q>W!V@Nw76TlE8gd8qfNIU7It z%w>`2;QW_5rN4iUXw)-&ARq{flKV{hNm9g=XX3fV6btQLrtavJiN|SW324Qf(&z79 zBfjvU_Dv~9KlgUkZKrcvk9I~hV-=+@aH5rJtYY{3Jam>%;!#Y;2%x8)1jfK#itZ{?0?vSYRMoIT%!A;ULg^Zl%p||4=-t5?CZ=PSmhS?-AdkBNDVIHJSOe(a|Q25s)P-;XQ z5b(-LGTyuO(~k$L6W}elZ7?j?%`D>^25j|{wPPP%9I@i+E@0fzaJE#zyIH}HKM=Gh z8?*xCup!!`n8xZgRF1Cf_8JkjniSx26@14qkH?YUzqP)e`N3n%fTPFbG%nA3+&R%t zHPe0LV9a=jAm?{4Ofw#u8^`^)B0HE2O*KpZr_$jeZ(=y3vb3vXK9c)F=l#9+&!h!6 zStRC4-wx;;`Cj=8JNdU1px{RRC!6Hjgt+c{(f0(8edy zTZIyB7S8-BLXv%#F9*8Es>kY;3t;NrpYM$~=@cvmT}g>m|MI6AbV^J^paqc$3t))8 zD|qC7iERfrO_M#Pn=g{JjJ_zDn--T*&=D=z;ZO;bZS}Zo15r4~36$E(D0{ z&zaiDLoCgR@mH;!;V7(SyT+k=(&kPX1^}$d-|O}Ii5VWJ&k0k*>dp`!a=?O090ueDg!mmgZc{`o=rYXJj`why9! zgBFMs)W7)VX3e!X|FwI(CGE(5s&oDE5(ZATc*_U;gwFH(8xR1}c#KN^6*fzHBfEd_ z;l46P7wy(G*NUoMwW#=rO$-7@LNBqH?X@o92`g^})%0|y=~vAumr z;veg*&Swcy%e@I)h1EejsyU2hf@DB^AFnb|>pZbj2 zRy$(ydyA^-j6Nxros3>J=I*)p96Pu#y&+9ZfJK*tR`(*vAjNpEE* z5B|h9;#={QK+_*Jf3)UACY1{o)P2525Ox%@CHGP5K91`GXTF`0^H)zI`TV z_UlOEZ&`T}xuBb;CP;fUan-FiXvjW-{AJLl{T_8~hnLS{@D|x(rKOT@<&Wa;Sl@NR zy|=S=zGm7c7%FgR>m2}T(iW8;XxFqYKR3;{&iuMo_Z1b>+}bjK@0?__)+QT)vgb|i zYmfdkWZ08>L*?Vj9Dn?uA2Yvjz_*k?%H=C6h6|dHp8e?=`KQq=nnhe67bd5V>G;i< zjcNuE%~lr8NKmO<$TEo{L%H_5Ux*htfnBK;*f$s+e{W{E*)y`kINfF&+Vkbw^jBu} z{)BYk$YCR4o5d{TR6kd@-}t#R z%DY7plK^fF{eU`!6Ai9%)y)6L(3!_G{RVJ+mu+UYVHk$FuhFm=CUeg{%n=IZzSG=t z&C!}Wg_4q^l%i6(Do4&zC{j9*eqlK~D9O+FpXd8L&+B>qdcLpk^Sqw-=kpHnS(n~bk1l-=ZPZN1?yNHqo^ghr&+DM%TED`)>+>qTx(ZB6kDgdo>j zZ*BA)_6}V9X&v*Q@2amP@MpeI>2qX};U1nfHL|&|wiJLp^jtk?b7Kvd)WV0!86}zy4!29dt^&9u48|9c;eKy!ZNPmBj3S#D98=>L_q`>4d<` z4bj=X-`^Cm=D=FctF2f3zrJU>&OrY4JR5uV2I5iQnW|nR1b2KlF8)PKShFTmXI3{6E zDG{!VQh+ET(SQ0Jx~h7Hq$A+qSO`N`!#`&SsVLW@iy8HVfN3$eSG?d{RqdX9Jx2G@ znfqR%Tm(3IXhZoe^i0g%jdnqRncRoxQ9>@j?YgRUu}^Y?86cxPD5~^~)gYxi`sDd7 z;7%^s7XM&S;J1b4jlr^XLa{)5v7#!meZSln%z99Z1*lwgl4@m=zBxA|%btII`h(n0 zvYcZd|DqubuBVl<@u~IvN4WvcsN4ts)elm7s;XKJ1dYC`3%};2p7+a*^79(S^+;;y zy-)^|pYv0$pMU9y#=@EVB6^Td*mkqq#foHjvBm-dr;6CGQINOyD|jMRKf1*1R1NQK zl=ix|FW&{;5OC1th1q{lwV~Em%vNpU_64Z8y2i>l^U;nrpic&`P6`!mBdhi3yuE=6 z3zfevE8hIQ=Dj@HO0;<+!+s_9kC0ZgB5Vj4izOpt zGw=i=9&%(DNCgVcg-==mw9Gq%Q9yoqq>W{SU;ZHA~>gsnRIg{)!=x^y)pX3*K39>(<3qtT*e1-15->#~u zi1P|!6QqtQW(pJnqhvX%i2;_Grf4oG_#>%mN8T@6y|o7o^7Pt}#oV_{)CYkShMPlv z#Q_v#v3u{kq>6TLz)^?2H>P@yjZ7I1*K8d1eVQ@&=R7fUDzYy1bi(TaI~PbbG*R^w zd=`F?#qI6{MDb#{hhy;2h(DR@B4h2CtM%G51wqL>Z+fZKoZmf5vAaEAaDVr8k{Dj* z7l0RHNdzPrw)dnbI~2P{uOgbWcQAhUMOWiqanF5b&r+~GEd{+ucxv{dN8#I{ z{j3jSve{F25P0Lp+b!J20SqDl@nQKAZM3j;{3Pf|*|FN7+pve)i?tw*IoeOx=Q@?L zv}h>NNzg65lBoS|@lx}3!*_LJKbfU(K1FI))=^u?y$Z~+-U6kdbI+C@Ms%T0drgLg$&DJnOef5Jud>f!OrV3bF)d?J(CZ#M9=+d$bK0TfY@&H23P}o zCpaS;>rD$?DAC?8P5G3F{ENUU!_GY9_X`Tuh&$s+9ZjEE5pYflBcP}J{8tL8 z6&7h~TJ?2k>;iQyWGr**#`B0UW=Id?*>@^A=wc}Hzy6KIm9?a(ReWM*JWDag6SqvG zFIA`|P;7y7#$MD$;a4)TsVL~`I8u*QfE9~Ybr3s>920h}xErDMDv_oPG*N%sffXGo z>=0Df23s)fdmi^rxQ}jhh+2BsY~_#HQ?1G7zO*Qd-yLG@7X9x4)RN!xj?im4_nBN* zB$T~U(}5ce@dq?g(TAB>i4tq>kCgE#_REku zEW6)XB6XOs-#YK64^UT4HJZgms96fCTZSK? zfCK~KTs->--(ljYpvaICOfyw$8aU`@DR{tAHL*uXFzo(eUZiRLHMT75Mo|P0Sqgge zyc0<2;vS|A@6SCdXsSI8iT!J483T#$7BsgMG*m_$%?v$kDY#I|zwp=UZ^rQ!errp? zu37jux}{*A*if83_OPws-*fg#B6jvyXWeuh^7{^V(I5d%OaJX^KF9}xg%g415F~5k zztC!U%zic;`&$OT%CU}TkB!Q&isQh$n>Wm{<7=ey5Vb5BtC11NM#h_?weXlEUWr622Ze!H!K&VHYhP^HxI|hCeObfV(@1_FT>U${1i2*r?(or*%NyR#RtlZiWfHP zoj&(f9km8-3oS?Ai@8%^MPpAsdt%3^CK0vpsl(||BSJ`vFfq30l*XZ_;In=XA!69? z*(&pAbv0mpKGinaemju{ zBA|0B@jtAx8;-}o+m)U5-sk9P^VPsn2#G1Zo* zOGH9U`Lv8A9qOS6U|Puf{YJPczYfCnouq@Vz%~+T8lvv-MNki=kM`^$q}}0cb$!1n zMbFC-HS59(FNs}sZWGN=RQ1go`k43Cq@XqLdjU2Kr}@ul0F+_Yt}pnT@*XKa_ll?R ztFz<2!r!?fS;Z>OJ8i|<_Tsur6-kFao$Ek(%YgozDpT$32mB8Cb?(8e^m+}glR?2p(Fm?Sp(45x!0;Bn~K->0wx zmvFuZZvJ$rb(iZM3D8ed-x}-Wo0%nPCCtS%{5+aEOyQy11jgJeulSLJ-a3;GWg8{h z<)Y!ntm!SO_x(M5F*oIv?qJsRxG@qx0od0Y7(-}6@7D^h4raN{4#;H_G(!DImqbCMs>E*tZ>*YbwYV#dse+41jnm(?ckwcSzs z3=sdLC<04$NG&vpm%hQC>rV5vlQ@2GG=N%QjySXhHz3&EwlY-28R66zI2;~6=rc#? zVhf-Q6gBc|q&WC^fkFoCzk_q57Xd_knZ1IKF=u~Ia`(WhsdQ*zY?z(o`^Hzb8ihf@ zeTu^#Vog_spEZ4qi~D%tn`TjXVaEz&*Cb&yA(}BedD|q3{a-hDfpbFahTK&#vCCMC zgRhtI(wojOfc1K?O#Ec{>2a9fcLZT>Kfg`1dIE8L60GyvVW%?M8b%Q zB0pnx(x1G^FM!Z=)OvWw+5Zr6g8v}t5WDV#2k2p*^Apr5x6ZD+YFi!1NyaWSyc-Ez zKbdnmyJ=N(7|9p;?d6B5@2$XFYC8q&pA!&!-G6dOC}+s)Z~;~C@5snKd1IWYLRzlR z`0O9>*ssjKw-$<1??QUnl+9ca@;4`=&gYIH=u|iNxGAC>TNpY5!dksCYUAHpeG+-| z=%F_DL_^b9>M}^JPh#r+xZ}x-szA>xkOX&#&lCQG?fiCP7?uN}Cs9^R-rqy5>d*eb zIkSYXyWw}j|1sJa0IkpEMf?DAio9a%6EzD+2ZfIz)n0{%1Q7a)WG~|0f0KlO{M`IYCTd%Wjw(1V-8`xSSdllI6OU&?<%#NPX z(XECNAh-h&JXACbqg^=)xwk?aDy!~Q8#7HBwUlFma0L09E^9>z9OHfgvJIs>n!pZ> z{7i`(u#iB$FNol$)#Q;Lyj8SmEVc={yhF6MpYZ#|pYtTwTqwZ2oX0%`19T&3ZLuCb zF{H=sb{~y1!l-;t00DMcYOe`^M#9`I#61$ajFB==A5Wz2zjO22x*al*BNEkJB$()@%TH!|MCJsSN z=hHu+k(P4FO2boyicFVBKfX(ji5XOmivDP@ktR-+j>C8fl+BWG8}`%Z`K4m)jgagp zJG+`$)d%AmfMyubL4NhZKw`M9IcJIUN7|5j1JzV$1Xf0>F+g7Wl~EhMEcW*C1U|k9 zpH0W*Cz)gF9B*DWFN>FOIXzT3_#y6OiL7nvE?lc=mEnSLw7PGX|%TZ_w_&EO)Nw<)M|sOTn<^YYpt z9F}i=j2N(VPrSJT?WAb1?S}e%OkLjweWTGK+HNPj><;j?1`(8b5Pmfh*eaE39H0OZ z$!~_dzWyN1F*uZv%jvfJha+gbS<+U_FQ(+5u5n4^K)O#^^WH#eMP3>HbMGTcl0H1`)WE}TAyey zkOrmI?_PS&=4Hn1hj>l!qz^B@FzcWq(17ws{@p8ttmKN=42Bgsj;9A2`O z5?I>JLb9y}g~9TBjvASiJ#S?`^!ZKmy#uQ5=X$r^$&Gbntm>`PbbX{IjN1K{Ws*)C zzjjA^MACo-q14!iW(QAu9;;kO-F57U5ABu>6j0?A7}K_m0e*QEx+PoIP-d71EE zB0^?ej^9IvF^drx4GAsES-mLdH>D`z%Q%Z!ef;-g-gRDsbDucw_o3f=Lq*!d&-ui` z6nQhb5j81!uv6#({=zr3S#&uiN#(^JGhX7c9YAiU9pIB3ptfGk>)K(4c1r-)fzyP6 zy$aA9$8FV4{f?c1PPCc_JoLh|m+U8h*N`q%UWfavF@G%J1eGzD%qO6S+5ccjh^G;Oh(_1YT)BrE|<}eyRbo$%w~t8l!mKduzwXn zR?OR_R%9aVJyGX#y0;|r*Z^m+XHT|0!x^{~#uEo@Edd9F-q@xKq%z81%RT+~c%5_j zDc)K2WoiYNOMh(NL8DrLUrc279B36eW9x}{U$ONuFa1mFSXHWXIy`d+9MjwD7jK=? zd4l8a`WvsvVc{zTGWa?{{lGz+=}OjDmbj{qmsW*=qZk7 z^diCtJ~|J)<`#0*MW&)VSNo5X7yVVUlo6PvT8Zw5cpb;;3Z7(41}PAH1(l?NYH@)m z8PFXkubZ7nSDuaLgL2hyAm4-}5$_VSV<+)BEQALa36DyOYCg}C)W=1Mbc0LkPk5m2 zRTv89lng!$zn4#|*mpxos@@XYW)brBT8J#-*WXFilB%hyJfvdZ{QaAp{yV%Q+!Mpo zfUQnobM;nQp+^9rY|R2|Q;xV4VT;SSV|#&jkP<-tNgcma(^xj+fplJnyzq+(A>5z3 zmX)=Tekkc(7_e(hRHV2tw0zOj*}3$jA^cr^=(Q0HW}iqPtNpBrsVX%F%&#!L>eFTw zaG*vkoT^>vTKBoa+VpdPCH+=-iulv*%pxD%xyuk&6XR{~sJ93lS z!DKu;byatWVgDM%OHHc2{8f_vmClQ@`2Ov2kv1AmhvX3%fSL?^2jqH zj$kt4j^(hhYEty}lD+U~DUE5>8iRJCB4|zNKge96)RliMWH1~hIl8wSC$q0pFvs!K z74^z&^Cn!eZ3xD#jN*ypWRcMes&92J+bih2ensvBdi_e726Rn&6TAfQ!?yt6ohR^2 zk|aR)wI?c2Kx=TxBPM$G;s$}`m97q9xu#?Jqt3|(W&`pw46$$)rRyU46C4xA;%RR~ z0BY&N!a(ZFi(52#P@E@E4=zaL?S02s@eJ4kaIOI7ML7T7uS2>g`PjpJ9D(xKIT)bW zr*k^(;jiyIa8TSyKM;hE7k&sF7r02gv?$qh$eTIde-L4g&mlfbJnxuV5FVm~xr7w8 zQC>K6X@W?=9s`^d2U^b?O}onnh8{m%a9lT}p_TAJl>hQCv)7yZrqWS#9i4`lu{h(+ zjXF!;k#?-Jkb}eS;45!?t~*_=Z=JmF(IxN#qro3@fq$ka8hF+T8LnL)Ap;JB-@t}l zw92eMP)p;ci#DgEYqcf*R|(k>_f@+)#vj!775sqb(?)>kk@mzczlQrhV)E?Tj<@Io z4m7o5UHvXgw-INeUButk0J0o`Q}esnC7yU&S)sw&NfKc@y&neH;^zgnWo%tX@{X#N zSk1Y)0$>^g?>)Ix2d;_IK!Vs@*o-8jWvf6_3dn8C=|1+sm3}KuJut`T0D0E)C zWff@7GbS`@U8Xwx)BlIb{D+IFelv@Df|7xw8CQJ6ZV8<7lw`t=7o(cLoI|`9 zx_)ho3~r-~gs6M0uCASG3lNNNbBJzB3XwaPE#to{9xEsA?BN_Cfq)dhe}|2Sn2F=s zlEbxI&RJ^rI0RkH$;&Ji2Vax%6Y_U)$NX%^Yuf5M?tjh8UKEDr8(ewjHLza{=?1NOW*j z+4D{UrNz(4V+TUQzYggOAc-y246IHk!M%>Lb7RJbd~p~0q{;m;>nz4-lY1G?Uhp&q zunoQ$<9zYw7lMK`BLEyaRi6J@`8%f1`=!fCjCjSJ>FbuLJafx?0d>XzB54ri2M{M4 zac}8rRN9C>xLEAIErmvDKX z(|pd>7Oo93e}j-NNM_>nq4S>e40CM(Vb9My<1bHaXeWCBre#3@mld==p}SeH%A_+W#fpbMZ85y#CYA7@3+=is#9R zxWC?Aw8mo1xcgCRRxG6Q-q;_?GGzpfBBj3NiE@yGY_W}xCm@5)m%B{yp3pm1tb>#r z*I-^2+$9Yk6~R0~Ym>82|5`6dtu}I zdk{c1hE%EuqgUW#GJ$#B$$!2_uW>y(GzgfUj^|$7JyBwYOsd|)t#PCwf5d|rPF*i z@taf%-9mk{Doet}XDP-%4O57f^`C)mpLd2C{N6t-wt^0=!6wMd!cT4R&dwL-uu+Dm z;uHo>as%#z1HIk+#(msfr!D`JFo?O(L?Tj@)a=im%5>D}i(E_N8qDH?K(|P;atx)> z?PA5^b+=i?N;}j-q(2pOTBs)8_khH5s|FuHEu`g~RU16;CM=@_7;b89@D)O z<=VNgy`u4d&+ZShccQU=Gi_6ayUi;$+EtCyy=G}YZ(;a#~ zFgEd6Fo1XB5(Oxis-+J*HyV5FBQBZ>jX2##^HGo%NlMhE9Rz<4LRRxVIvo20Op)vg z2dAcmCFZegRqOG3(eM|+nfzW(t~_Sz);R-g9DOWQyJ zy3yGENJ*18O~6aZ$P_>Ls$EscoJ?(y@{8MW5w}qMWL9pw``70LJb!9@!9(DQhytt$ z`t)_PJVGKgPWf;Bct6JzpOH#-Je1rDyTaUSC4C0hSZ2fcRiCN8n4PtI1PZgfjGP>>t>>mswa>hkK(baeBtKwmy;`GFIHgYBoSpo#!`u71X2$Wc1_k($0(&;-0<0cKx zwo6XXwm72UNc8v3e@Bv`#7G*VFsI>cku!uYW!~p9LC8L5Q8? zor%_b|7{@1cs6fd`17903N=99HC>iUXW6AgsHQvw)xlS+E9^N~&maF760b&8SV@0y zl3@lEqK2^KsgdMb7G=OG1-kpq(P(;(_92n)$(B!z@xQ0l7L~0wugQHB zX$gw`L(fBv6@p_!fbKe3;h2ELQyTMs`MQ^oNEg!>3iLD|du#$clu3r=9ECUzi^@UX zfy|W`Y(Zc>ZnPBsQpt6|K0bL9AqP6LUAIBC0h!(wdYaxXM$PPf{UP|i{vuO@ZDCqg#OM(W2c(q4j|PP@Z!v zVLwiC^F!SRYl{h#$ue4Zmgx8b^{js{WZggaKrmS)_@wweiQ;iNQ)95*{Ma^{m3-14 zgud*Svk<$1`5e+%;7a2s2}>&CZ)h16ed%_h%|I}$Y#P>>WbWkC4#V#CZZ zUiP$BE995ctkCF@|G>9aS=3(#f9?=vLjk<6UBVv^Ol}@?(8mcG*m@>+<5WPor-)EDK*UXSQ)%)mf>aO6mA44h8Ipbn~Ng*;JXF?+9uR~x5XQN`z z9Pr_Yg9o7p1k<$2QysV(8Zvsg(H*mCYYYtq$5w>9`aCK3OYu8BX@l?C7oUxydSOM7 zg8Ikz=%Skehs2>dD_n4lYoiXNzkh|JQDO!CH_lRMgP{C!SOWT6p_n(P9jK0%m@K1A zxepfks!b;R6thHRoO&hVnD`V+Y1!aaFACR8B3HThds^SyF=XbY%X=$51(%9-27WDYT`A@g19HAHaoxh*rI6Z|()fW@ z#$icgS%^u}wKrqk)TCu@m07h@HHCuY3>ZKkXtoo@V1q-!#d~KDC)cGv;L2+FC{o{` z76PoSNNm!#Gs9%=HE4;ZL_oteE3(R~(lW7_?dw`|Cgpv7GaOm2JHa~x22TN`!{EmJ zou~VSUgcz-7A-Kg;MjM135dxRo)m%hGNo$AvcMBEHxn?M_2RqbQ zM$Xb0IP^?+KVe^z_*md(#(w(S>vCc03pPk+90azg_l)l*W4!BRmyF(Cg zI8vz|&UU;jTuzcyg|5w&Qrwm}x^toC%w3;~#dzEE>W`5iIj?Njj`cj?@jKEw$GUH6rL(k7*mnyMY!#8&l-Aj3U)y=T zb->@ea}!IRky2->%|YeYLgTyX=Imp~=ghRInJJg!buA&s?F%oEz~GRQh^5#lra6%6>Y5MX2^zR)-Hc!D|{BU=J>Q8AG%vIV1;pI(6p zK>5*Z1Q=42#Rnb*Tg0e(4F>?g*H~QoC*d-^WZWdXI=E(o;JHf8DF+GDFI`h``6~S0 zspq_Mm7

FY;;K(cbl&eG`ZUAcJ!9hA)FdhqBmb%^1}$OIO; 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%0AP`2+k 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%0D3<06V!V>dA;L3Q$4% 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

d7nbG~M(2~C}k z=j+hV-O?$NiPg>u3>2-9RRm-!rfJ1S=sHvt+q8Me2T8)tLq+TX*G-1~$8sw+>7Y%% zx)?zgWhwut&ReQXeFxrXjcH3xE%|s|ch}?to@N?+lwl65o+jaM*WIl9gH5hBH`C z`gX}KB1d>ww$As-VjV8eGd1Je5me5dA2f4v^CN$dbP;?=*M+uJnVIX9iQe1z6jOIH z%Z;NYc3CgWFFb0G*3XMVYt?ZW8FZm1i!37&5-h|Q`3}#;_MVnGB2au~By(>0T8>6T zOY2pR{Ux)a@TsIb61kVm9CYh8V-PhMg@?crgCvK+^;K_giz!XQ7Dy4HFvtXCPhW5_%6A0 zp{t+Y=a2J#JU)-}c|6V^=kqw9b3U)v^TpenoH@V&>Vi%-lq67*aZ|iRR-tvdw&N#t zzZnLPiN7`{2&+#JLj(>`5@eQK=In~l2RS3&;KbhPv-6H!KakmO*2?u!hYoX(yFo4k zGwvW#C1qjLV9b><&tL7KfN@%?#GfCoEWjm1y@i!I4(Lf$RXsi%t~?iMMZNxrij8VB?Sniqk|u1uej1-WBr z+LLj;#x{ncS(j_t-olHw`TrQS3u)c2(c&ifd=;+JhS6(x`{KJyiTy z!FdXV;O`$bzjM8XElSrm{?lAPY+Yj2To&cNsj4N7HT~NqI?H-pZ!+Hk>}3E%h)Y?` z`G+AE06F`yR9xYr$_ez(oDW5S&zJQmtmX`!JwBqa0r*QY92v)^N}KpC#Z&zx3xU^sD3_c(pl#6U0-V+&FO~0~}77a{ywuBjy#@_hwCX=lN$n=t1d_U-_Dj z?=NlJRl`SYXl5zshVrKNXE79Up6N+hKM37!Z{cU?Hh+>JEkG;NZENTdINLv$#c_L` zkz3uv4C-?r$OXtR>8iUOD%#T5WNIyEoVtFo<7MyLqJwAM_th<10e+g_RidX#L~qcA zI6BNGB*YLIU!Q?ULj3*JaNlroK~3Ag9Li4tm+Y zK7M-DIG{faV-jxr~y@UNXG$Amm z=-;!*pu{23N;hoH8f;tFHVVTsZUjXHR}i|k_5J&>@?*9NLoRy@sV2ffQSQbN2NtN z9LKizX1^;Y+`_RGtH>gzT36PYt{0Bc%dz^-&g|!r7%Q)vK}6m;^-S}ONWCCq)288- zafzB->g!!%0csI^g$9kk<$MA3(BIzgKM;*v#MlZti=Chqsou8 zhWi@29<2FpBJ!iyNo8W9%Xg9052%lktOtvIu0oLQd!=hON0S-7&#* z?rX{+{wx8eY={df3qtMVyw0yK8kiHR`L=x@(zr$mwtJuwCyQ6(ERyFM;t*cL`KsdR zN9gC&m&FptTDV?aO6?AK31$xKv>ARkPm*~eU{_|ToRa_NNBua8tReASQL;bak|wm7 z80sKeALneFc$V;lDN5u&I_{e!aW=u|1B{i4elO&4J8hd|ThvZ2|Dy;{!lxekFQA^K zUoi~X5Ec!C=RTV9o63=)Ng~wiL5XGu$i7xkz2ro^x@YnILfR|*i90)LR?){_;$t#O zvjVflUDhj;;7_u=PwaIvP%?I?C{mBnc?~V~%vn}Uh4}d|InS8iiLi#*!_Mx0{0jD7 zOY7@NINAz^r14C^p2(Z1^oY(b8`KH4Ye044H~qBha^4q@Na{gxLEX#BFJ5i6c$7v?tDf_sW-*C?!}T#~6`#+Z7IQlWm1jqU?h@(dsg_M?5$wO+8y5xr$^0@e_+MJObK?%}C{Qq8f~GMwN_aWe zS49|z%mY(?mkZyl%35BUsSxqtUt_}u_T95a0r<#(!YAKi*g z^Z+DD5NK9TFU)=oBnb1S^MjYNtDH=0n z{D3MO_)|vcNwjdw*8$}21 z-y06b{W;6$3uV6-MjxWGI@g1x)H(H!I>YGD;KK=KW5!Lnu4Y<8n#EfpM;YAHQFyJ3 z6y_QQ|AAo(UlFG$m}A~_C+0e}k`5f{HJg=u*}lOkuq%mp2bN~{071z3zUe=#FK?601q>R zHnWm=0DAwI<#S;NYFkp20ePi{oh})Y2@5c+?ix=4R+MXpL_lZn<`kyuMzac1BfUP| zT={bq?4Vt*d%f9IZEpNdW|e)PWM7st=|W;lc-KGwL67S$^?dE>tW0Mc7wY#+>E8<9 z8?A{&Gm@pN*}%(Ap^$mPC%^A_U#xe2=18>ZTru%x&q>ecu-9fIGKwuU{AOH(ORFT< zY-=a$Lt-tM>xwPcd9_BI40Mo<{NXiaFHgW*{IpSetPdtkaG7-ir~Ej;t`b}z9x~Gd zQXCYnMdCXr)u4aRJG@hrj32C#n=5A2Dfr&b%(OdYhI2vcb&iku9Ue12sG-~m54Bpb zUo*KKamRUlzGmQ7GW82d;Zr&FJw_-42VcBiyq;S{v zstd=v*Qrf8QIzJN_JmHEC?JiIhl(y^(E}maPrSNurO?)Q+L4|vCkdcjWGFpD&=auN z{AaxSfh)XQ7__)j9Y{{QBHGqz26gH)lP<0JvXD^svumSzv*je}Hze$&+nH#`JFRxH zcB?L$y<`RCE%zVDNr|$$b1jdm(fLC8AU41W#E6fA>adQ73@drD(PvV>=@0A?CzxX$4fW#d)_*x1u9Mj@-HWa4hJ6<8ErZ zacgjKogZN3XeT60KtCFjulypYAPoZ!$3KM^>;m9)NP|93xD}#9IYm|RkHmrUDS=|9 z$S1^_z=qh^Z%MYe!LrgPWVLruj5kuw5G<2D3!LTN;77TXPCKA?HnlHCFTNYR2%+nj6)ZsnA=PC;XlYoeSx;@|+ioBeo85C}ZzKzDi0}EFKA@E*`&!#v2-ZY2a2FVX<;PJxz|U71_@`X% zcAuuv*zL3ee8oECYAhn;?tzo0_iv_P7QdLK*s!ckG;SSq1@|8GX)w}e-}D3bv(Mt+ z{kCsih*iApx3%omRU;C5d!lbGv%~do|30VZ0K6F2*_nymphl1i4Akt5M#i4>D`w*6 zPxhFE^p6}r@5#C98=Zpc&2>~M_c}BgB$F>)L+bk69@GW!m)d5R`8z`rYC^FpP*xX= z`A86FN^G&tjMlE%jaj(6i&j+}bcDTi&ewA*`ULnx>;gBYF2CT*G!bwRDh65c1tt9G z-VHpCdcsoKZEfE#k&$CMIq_`rx0Uh(`^N`}GE&MGYJ3rqUNIIrlybmf>yL{nQv?xhKcIL9`+K;R!3Ht-AD)wRNFZZQ~=Z{;uzS4Y?Szsc<>!_Jkz_msOEMR0$ zgES1hWO^GgIaDtaKQ&$?^}`veq$ZQrDd+enuG|cl@}TAw`Dogw*hU4953nJK+#e+N z3PW1|X(Sm)Ue(@UYotXMP;vTIHZoM5ip?`~DeX6Ju0Inxy5_l5SqTVy=6|zLw~qmH z&Tef06T1!B_jW@=DNk=r6+V(Y*h={3)aI_HSDQi0*u%M_gBATw!@ch`npy9%-^ZI! zu~W1yz8v1wBUM>5fosf9oLVrHznwpG&~nDun7N{CUPx8-`DW~v_#a}A5NdNPHnkr% zHWne3E&8T7H$VGyjOI+uIdZEI6WCf}d6Gm=yaV8Ca`j)Cy%!pZ-Vj?K|9$qGA#*Q$ z7g*jc+4G)XKzB!s4>CwM0%$Eio?qV8OtMjpcn?#%OlS2DjA8>{ar(;jq&yLV7eygc zY7tImvuRpCBi1ITtwgp5!eH^T;St8@#PC=#DMRD|7>J~P6Ck!0`mZt&>z-lvyw_#d z)1RZnX?Z|Oj~;3EXvjj+FX`)V-y1BgJKWds1`YY!fDAHdBb3b4_Nc3!@Zjk>^%q=4 z!BIT+fRYOy$A;&g2r^fK_4Rg)an34~4}C<-F|=2<#ouOpF!89M&T_&)PNfFHU!{PTk**KK0rv1gsL zDS?xmQNL(UjvjX#R8D1Ilu$PG*WP9I0 z^Tb5h>c!2p3xW?K8%H+c@24wm61Qp6Bapb8+cX*|qZq3_upcM*ZT+?LkV2}SAMmhv zi9p#dg6l_%QHVkh`G`7^+BdL5MUtcEljKzIK`wNe^z@xxI^{yUP}N^h!s+xHUp9Cr z2UxDx)(y=v_-nB@FfLZ)GC|q;JS+&51VcMJH!Rc8%yEok280KG&Btrt_t1s-KCt82 zYLh><>#cS>Da`YMPok_4tMDk8S@~*A$5>pNX1w^KMOyS8DTqR*yDczk6MkLex{vew z)Z5azrIhEFCj~L*wb7!$52CUn&oN=S6n70kbII{|2x8y6$~)PD`+s|HOjt32%Rg#?A?sf z>|tlOGWYXHjZy0`rsRFTn~X`E5tt@}&wOrTz8D}0`dvY>vnEKj-Sc=g>ep6b!d`6O zR~0A{rT%)qm}76kQU6ABy#!cw<2M>%Pb}PBF>{tSTRdA#Z93b}*HFCL0b1n`DD+FU zyS;z=Fauql;$Z|ATDDSBHT84*`)z6BXzg)}?;TRe8i+oE06L?wCoqr2pq7ko>g`|`h(Fh2&BXk~h(ko!zpnZPC7 z8_OX)H^FqV=OvA7j#S?|t;#v#Ww>&NEYxToxiRnl_>!}BUXwrPbc+o_L|aZ}Am#CY zK{5ygM9+mQ5(v!+v5H999Wp|2J2gP8$^0gBkDHh4ExS^upn#&16o7}}8GE$Fi(BPa zyz%bNNJxeF#AnEs$rOde-(QF5OPEe&;}mrX>TmGLtcJJy$5_ppQJUP}5Pb|n*wf?S zIyt{448C{{xWlPf!wGHn4sV(MC!R00{jWE{BswikMkkb`N&o&?s8v}L)4*>}4wvi% zU2{$7uIt5wi2t#WOPCZoCKgBSZ&Qp;$rkNNyf9!&r*J-|ON7aP>*L&=UZV}E{A_T8 zDU_G{bg<7C#MIQ&U#ao7)e`wy0NPuascp)_17QAtazRyVmS$qVe2b8+!5?}PaasR9 za}Nk!I~o%GZK~Td?L^CZd2_s^Z$s2?$^+$Mj`L*&k>z2ojzd^YN+T-)lemLVM^=qK*bT`h-cWq3UI1 zz0aq14>Mn_bZktgC^%LZ_WW_$Lgwuhdpjf^_PM4V@g8_wD-V1^12Unyr?Bm!8|6onmvuZkICYPtcRM4c|7b^+7UPiI z^b;?u=In}I(FYY7C3dWvYi@^-0nV>&ALd|1zJ>bR!hy z(AgbT)Z0`?Nob`;`EWvPn;s%n&%nacbx8hHLT~l1kQ38Em>KzG$ONR}!bfMAzs-Bo zMNZ+K?{(Zv&F#?Ldg!yrN#+n;qJ~}786j-1Kg{>vr~=5}@1UN>VK|w+ADYs;?6)pj zh=?|cwU5*WwTu;uvT9Ry`>#x7MEhBQ9Y>TL2J$5za3>qw5C8UDymL#Y`ooSRuy;T^ zzoqg{1%hR%y!=#Xm!JfIpePxaw(}Vpf!B zbt)6dW@*L8%-?({vwoT^^lu$I=?z_Z}CG<9=HN7Th4ZBv299Lyp%UvHG6_3#81OFYcLrZ{D6{OEiW z6Rrl;ul*;Ldfv?cycMSuWr*~{bP%vFi|h$>RAn4YN+D_5+9c^7XkNmd410wE9URhB z;rVAdu+2%kRG39Cl0(*!GIaA?RY+q%=xmU^?#^IC@D2xSb|DUDeV=(Dhd14IVM}xU z;z9^gH)MZuEZ0f|_rr?pva1u^`{L0IqxrtEXU8jPZ=5M0M*7Q2d1gYyyjw?s=ZT3A z??5LoDVn+Xr~QyVf3XF=ooxioWx)K4CU^UDV?&R4X~kAO@##$oK%2~Z0K;$U#_8IY z#?(ONK)q58Oa!oRR)NHFymCWq$8cgkGV1<5>wXBnFC%+q8`6YlFk2eBc*C;^_O>#^$xnSJl?&$U4|44EF#u2-k;go zmbwb@$5J2(_e9az9@7!?3|;z5ttu9uA|>ChuV6+$`nRD>ZoTe>lt*8QxURy24YaPH z%IO1M*0W$0ic8#?dN!S|QI_afLr3$$O(8)k2I{YoV3>g8(+=;}yZ3qt4)Ko%ja;w= zcTfK(@4Z!!&>*(w68^$cyg$<(On-|AMFukKR>yW|{gFRdFT$S$*{#2?*qhw_Ag#co8+S?-If33(-7nirm=p7V5DjA~c zE;t-qmPTy{NqI-;)~tO=x$#?e3M1*g5kPhTb2L`S^~aSXJ=%(U2d3q; zHd-u!s29`TkT9rIICa6+uwZ**)Pc zmt5AEn)V%&=Wdd2#7;Z((7VJR3%1x;l2iNJ#J};0!uH4|zIb~itieBUU76+!a-IvA z`T~esF?5+ZY)^i_3qI`v85^4GPwiY&d@{^W7A-tlQ`7IaXt?^yg2xsdL>aogcmrJQ zX2%%1bos1F;P%fO=C_~g)XkPP23S>f9zHkyVOc43Q{>6sn&%Ry3qW*;9%xe+ zVrnjAK*y#3$_v#2G1O@pvWz5B+B+E;)McB_$Ex~?@5=h|SZgO%2i5Fy zR?DhA=oRhEN!=<|UOGT(Gfu@OVsrhcd9?hRO?MW)@z;yxvcyrhW=BC_k9g2(&I1(@|fd%@-cka<%*(s?Y)+ zAJ>`5E2{G$28sZzan_>Ss@-2w{AB%VlO(7ucPz7!IJ+j*!m6qv8yQ%ZC z7xRN{Xud=cfYei_}XI*rb>Dl8(SQ2^&G zv++L7)z$XPNEAMI5JMrayKBbu=GY0^L6cxF^FnN)=5?Uqgc?Q{plZd>7l50q?K&Qk z(+!xj^g_zl-f(ooZw9QdHTv-%nHxX$KRwMyRS+qjzRLnV8KFEhA~N9V-y@DpRRnY) z;hl#JlIkQc><*I_+%Jqq<_znapGD>%b3h#*XviENv7==8F-m~$-FI^J-C%`W$^XDR zDJP?{8ke!IJ4y)+@;Wcj<5V>hV|Q7UWru(|>_d7F8bj1MkC8cNTJ92YKvRmXGl%5_ z9q|N&v(?Bzbnx|5AV8&XT7TurZ|ft!?LfqcV>qiIAT$Dqf_R4?v#bMfVi~6nN$YlV zfC=*CZRHTjUF~r5vIMvMR<-IZIqfr!0_P9Py+<7d^xcQpTE#c&#_lc2w5dRW{-ZB1 zM-sH;+qJXx8&oWBE(6IWH?Q4XNd|9{q&y9gK)+l>$-Da_wToV=H~~%oXQbAzhRf5^ z3}8Fi)4r22EjfFxj&kjGwR^nYW9Kp0MDjC>y9bp_EZ9yEdnQyAVY@4IBplf%K$GOn z=^;aMkxp~F7^2-TWK@UNf+Xi}tBU!7jq#-!kFbYl&VGSkesiW&bxWWPw?cg5xiMpc z@;24B>MO>tKOSGFmDH!_gIuAZDxRS}Skk6vhT4;+h02oRAnG5;gb-?bO5j0TDml_g z`I&x3aVx~xhlK?bn-gc&=;*sJ!Du_=r`-6dQd15bR!?JA)}DL z4v#M0Qe+ndR~X0Ky0DlBjhNhFEvQvsjd1e{=MHZ*;d4DN693UeW5{keHEkdp#(7Mt z#E}&(?4)UV{(Z5Hms+1fn80l3zg-s?lkH&vHy2{PfQYNE<95A*!fb0MOgt01=ev;D z`-0B?#4UK2ZkI!r`ye!Wj`ZDhPLR$QL-aJ}>>Dw#QZPp22;%`Y;kQ^8p*+nT#~rtw zj%%V&(t{|&j z^SLtF3!i7B3j|kZ?w%)naF4i~0{eF8N3-o?{&nDXz6ZCF4B@S0P#sze8-99C>j*#I zzmoyX(7S8|0qPPKev!x+B?^v9qf|RYgQ#95yv`gA1Fm2Sp|_ z{|q=FHZ3Kui=_8p2OxAx4@`b!VDPedD=qDe+h9JbE{J#m){rwRz_dVv3bRAFdqP4q zd@;0;0betQB<9Chqx=Eu&jhY^O4(s

g=Q{ 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̐O6e&f7oSpc>9aF~<=LUB> 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

8SWdo(*I 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

R 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

9oGc7dF5E2CJ+?-VPT z6KE2BRPIKpM;SeNl^p-7RO(2$o{$3I+BG$%Bs7n4}c zQF4kYXA0{nSKPYv;2qX-gd0mZ?hI!R8!3ElPH4g_%-~CQ^Dm`K=7j6HhaSAfhkVBo z3YBtQFpbsxM8TY#a3#0Wk|!C;=ln{U()N`ejAJoBQMiotcz|aZ$@?s03x~M$yqs_+ z-T8>`iO#p5T+h99<4qRv3#Tc1K~C`FeBohUUHX51i(b3v)sZ z?x7>&S;r|ZxhTi`qs}9<*u-%PU7QoHp&7jy%g1cychYk9nHuzF5xYn)$q5x`!K-}C zZ{#oU`sFFcv6MX&yfi0NrvopufaCZ#nxQ3cvV-H4yv#n)lwOQs9=j=B(RRq?Wxiks zf0FNV*FV*`i+1#36d&*vNhP1jU3BGTX0V3jikxr}_wfWnc$?4pmy52<33t$riEQU6 z`K~gL#yrn#ex`6`^%1=p#dKEi2bWy!`rs)hv6F&T>=(~4g$)$ECMT4qCQa$WAl~O2 z{-o5kjyaDqkeRIHFqzlogtAoQVJ5MaLRDR7)TRfsSj}!uQsnxaa0QPtj5+M2V6~iZ z9bFm8hy1`_6u&|JNo#sAf~hQHH)(aB$?ZJJXy&nj{lqt_AE-iSUS$nOxvEA^c#Kz> z%|`y>s{iGLMhxX07O{!ArfY?3X+|zXn8XhxH@Qc-i=Mp65_S>Q$_W=!gL~=1E3Cnf zpM{*8oev&lC?BzwUkSBcBMjkFj!^y<^*PV-4y*W`;&pPu-Sl7rKXU1c)D^7Cp?e04UGLv5@SvM!#OiyO8jXZZ~Z+L`ptm8CQ>Zu=?#8P(f4<+t&-_eLp zyuvJY66#xzM;OCeG8*KB8)(K*rm~zJ9H($Y=bJk8<2^Q#_bzoHt$CiAtRrtD*CV6& zh~KGjw>p4P%w!dRkk#06;D0pZ38t}{{hWV~`;krzVmZH2q={onOZqaFxvb$IZn`%o zv}Xp}$lKJuGMvK{Y^MF?0S56N-|;s^o7*-I@HB7mF*}Lwb3Jk$chQ><_>J>gsM8tD zDo%3o{n}jyu!vu|q@}uv5v<@8l^;+aF_N!{S~*X2(TkdhC&W@*hpCa{9Ny54EaB)%YN@4RyZP3Xydc9Pjan@wZ7^EylTiHwf+ zhZ;2FHI{IM@{j4C(4Xn-;k-^cp)TEdjYaIBP-o|Zdw7~R_@4i`sf#**r+Jkv6nNbI zMhD(z6&bneG}YNSkCX9-%mZlQ@qX^_K`lP zEu(yl6E3Gdof*z-Ht-iEpLZS6nt?3m0F?)+ zS9pV!oZ*re97p;xi7os|p}{_bdUR$uv-p}{xnziIlI~34D}E*4P{)IN=*er$;Tz6y z>5Gmzlh{r&%(598QIGQu(C zd8ToI!mp?g=)#LkO1_H~EUcxNyAh&ofM8D|z2^tm(j;?BG8xnc(`PGo$#3?>IuCw_Iy9 z=RJ0jIngvD*~B?-J5IdBF>ajXm@uDw@Ayo*Fqyqnn(TNpo9uTTL!M<0KXdsM--jve z<%;(l6TTyBs=g^tvyA-jYa@Apk$g-tO`XjkCbOJfoT1DI?m_zSF}uh&T^UcahIoeW z%!9nd3jU(TOxFS*6K1K$=*nw+!Y=a8cJI@GPQ1t(PH^QM{REz8DjWHeB6IbtXvE`; zX9+)$??cCnJL$*}=ChS#p8B3An7|rNa@j}9n8q$Hp6|M64(Z4Cn=ZV{0=99I(hJnp zbmM(ibAT&9vENMLFD_ZAU1I>#InD*2x~>??2dv=)mn>3$Fou;JqtfD>@DL+ez;6^? z;&?NJP5e!%rLHBOWhOhwzsz}{9fO(18V*tTGi^A%S;8*j<@zE#%|{&Ly3b8BpWi66 z!u85hYJTCmVLhc+I={>&`qFl|hq0`p*ed;3#_%NrNPkY9*m&$8BOVEqA_?Bdywv+~RWgJWSmF)GdF`Cks zsjTB4%6@CV>B3mn@HZE1@O|ma6xMQ_3%_&!GlE6L8=VuLW)|x>MbS;#a2oI=V_3$Y zuT~_Yw~=hNb*U_72w&4>E?&`Ge9wxL$dTv3y3nQ~#NEJk2Y- z!xHwB??>$nwYirk8NzIq@eMzdZBDH2vxBTX?iCu-g*REkFPx+pEzf)dV+>@WCA<*hbq51#*APZU-A=YxO$&!iiynOb2hP$^f%W!*KikI zc##Qw#CIGd-tRb5lU8)1Kku=GogCyOnFky{s`3y|^FH6OmlG5`s2=17>Ty3$GJtVR z<1@DN8z(99yZemF+{6R)VH6**kgwRvAuLr{sEY0A@#{4CEueCmK#2s{JB=gzCDN3DG_i!IQ8Ox{qNI2zq(3nmPWCFAK zj$g<;?YvTfYBc64MlgdPDe@@-EBxp2KA3EgdRQ zlZWZS2&V8g-*cG4nLdkZG^P_1_>|q8p>$U1P@NX^c#IcW%IYmo{>uA9TY~w#_6mw2k%@Il!w?573%&TmqTnXho$xtS-nmznWsdF83?xZE1 z>C1RNWh%?oO7P*np!lcH=~%%Dt2*# zbIx~fatkf#&IqQlf?b@Z@CB|Fs&EU<=tLie^A@xDj7=OQDeIo#N^YhpkI|3$?Bpcn zE-W2t^Dw=5ods;*067;qKHN+ThA@HIEN3IXk>_I97u9J@FJ5OMJNS#jO0YzzD(dt_K~lGW5PZ3 z;60Y`9sBu@VwX8D)S@|0FqBCwWD|$Ttf=0k1|4{Y*I3R*_Hu%Jm)jOk@g6%lN#RPa z6KZoGxxByx=JPGT5nbVW=4$SuFBAEVf>){^xRXcd%NwlY5XG-59sb873}QTAbC3d+ z-ACL?Gdl1LFENevoS^*Gr9%@2GLJ2s=E5r0=TG=5IyXA!%IZg%f+I~^F#r+mi&GHSa{xsfJx zW)N@lDO>oHb8b=pQlIt=U?Pjz%AcH5$1>EXJp*~0rR?MsC2w_4(46OZo6p$68Oq(} zx}YC9l>VJSZn z-{rcX0i7AbEH-nP0*!n=ckn2KnZ;N9LVCCJ&Hre{v&>;Hg&RBev}X(}IZc&&w5LpA z8<|b)BlpvfDf~g!y}ldu7{qkGB5zaoIRjWl;bykUz4YV_7PF6h&E1zYB$rWq#xE4P zuXL!&{q*MpRbud|5V zWIe2o<3V0vHtRS_@wVy!9-t3zvywwpdc?l*BD45~tajR49%LX3`H}Qd$C3N!%R3z6 z!uGxgxy<1g3UqLu7{DaH<3B2Ov_8);ll2^>#AB`-?x!E`@->Gj-pM^hbDm~A3;B_> zvo@7RbZ0!Dv!8Ri=tI+nVa(?z3O??*@)+Y-%^9xEb#IZ&%gkgghbZ)fW6wSG<^xu< zpTb?W!?a^Kv)IHbE_~9lA(tt9#X$;pbG_1xXPCrlj#B0+>(GIr%wi)Kba(9N$9#V0 zyr&&!o@E9*$lt@c<5j-kKg#uV-;>J}c2J;~dz}Xv#7x$4ob#U1_og#r_?$l|+S|3n z0}NyaoB4|}eca1*VJx5X2bcGCf6$5H%w`AqpLNb@!HX>7cdGSMNAm_7NT1VA^8n8? zlPyI3-9y|(AKqpihshb>zM~^Avw)u{I?#9KQAVM&m5YvRGq6I1z-j3KT$9_J0Vl6R;+79Dt%PxzT4FS_PvMsFsvg5M}O%slRAC=2+W zGgNv>yF@?UXEVugpTQ%HU>OG}^Rj*lgP6tllpdk3;7;1om)F@wg;yL;y7L0BGmmu~ z;0))CbUjgvmgF*!vCQWPH@>PZrv+VkiFaAdX8s^^l>39~G~sE+^9h^zlOnI#7WXrR zX>6z9X!iq^xtYd1LQh^|5+AdMJ)AqnapPv1@gn1y!4kG`g#2Tjb8hAVdNGFiY~nZ0 zQ1o@jivQ7=N9oNgyvJg`<2Sq@7)o&s4QNF!0~p6FRCR0EY)dB7Y6eVOWD9)PEzP?_cnLYlNoH}6z5J71EM88 z8O=O)6TM@4pMrGI+3TD%n~+p zh$8Q~PHDp93}qHy@I8M~V5)OPT^?irZ}A;}ko~@Wqb}_j#OqAwdybMd%`xN#8qk+7 z+0DftxKDVQ>FgnEy6;L?rm}+F{Kt7S^fhSD5N7cW2g#i2KHwHw(~ZF_U^D3~*EFqo znf3h2X^PHP=W`49@i^02$#E{5qb=eErm~I0RGO=;rYEm3mCxAD5i&n?-SQ06`HG+T zha&SFJL>QVJsHQRtYbfUKJuNZ%3VChVBTgS8#zq&eEZ04Jj`>v#Zq<=f9%*$k5+VJ zC=>aFANYsj3*2kmMQ2`Q5-ZroVKP2ZM{^DJc!(an%oG;0iGw5ywNq5#P9EkNUgZP6 zU?+c5_*373+T71m4C5`n;z$0X@FLeFx6qQO7|v9dvxAJqw#6;9q9-r&F3b6m)0A4` z{wJ5=%wP=%$iLM2N{%Cf}V`!6Mo<*nV+j~xt_bp5l4q@R#|_*=7l!aIpYbFAQhJ>> zhx_QkSQfC2layZXywZw(Okoa-`HD^K<_}Jj?_045E~P5B(u7{T%?kEWe1l`eJ#=R% z6PU+V_VEuTzH^>=n32q61wV3%vK!S8+(rw!(4WyvV<{W?jWZP8bZN>P?exsvOt zNj>i7J|3bIy?B99yw69hWE*=qN#PyZ9IA6K5A!5_d7iVsn;ZxKC&6DlW%yrVnf}LC zzTkfY1plip_}`-8oKPhAZLi?>PQtlSrqjoDoi%7;rs zg>YG@7%mT$!WDic_bR{Pd$r&4y~gi$UFY|KuMgG24WW9tG1LhE3pK+{p;ov#)DE|V zI)2~zHh*bVH{22Gg*!w2&>%GQyS$CU-T(i)&rQO;egnE$XddnhEyDewrN78(<#(W4 zhlfI&@NhW$d&cd;*9m72!s8F*U<1{7#3a%!^6wQA72S0!>eIbcrA<$W5U?* zdKeep@c)6{3={k%*u?O5m}G=_^ z--V4~liy6*VhnU!*dD$QJHiiPXZSJf3O|M2;pea?{1WztU&FreoBxw`ARG+8heP3y za5x+ZN5h}tSokX(4}XUf;h%6aoC>FnqMix=IsH)-M@f`Md7_LcZJW8|9*a6foue+%<56z(MAS8UGU^sR6?KoEj(S8r zqh8T7QSYcv)HixI>K8p1^^XQb1Ec4oLD37*;AluRGPC@5$BCFO1^3h`xe#rX2LQhY^xWqeg!Ilels5?>Qv8($Y!jjxZZ z#W%#&;~V1|@&DqQ@lA29_~y8Fd`ny>zBRrrzCErR-x1e~?~Lom4dRCJU2&uM?znM$ zPuwKFH*Oj?i<`&y#Vz9djxOMzc+$MfFZW})mw~HT*+s7T^j`3r0r?_+6 zC4M~4jh~3S#!trG;-}*7@zZgSxM$oeekSf6_lf()&&K`Y=i>hHfOug1d^{+AAs!qL ziHF87#>3*5;^Fbj@rd}9cx3!)JSu)I9vzQ~$HuS6?W*;^pz@@rwA1cxC)$yej@GULAiOuZh2j*T(DO_3^jyhWNX9W4tNe9B+xY#@piU z@%QnL_=k9B{A0W;{wdxa{~Yg$e~I_TzsCFG-{Sr8f%stjdweMVBR(7-iI2vA#>e8n z;^Xn(@rn4K_+)%4J{|uXpNaod^+!pZBuSd&NiveWNoJCj(9#Yws3lB9fcX;LA%EUB1Wo>WS% zNUlt-N-8H;CsmSbl53OelB&t|NwwsLqNE)J|?m>Lj-&w5=qIdL_>!y^}sk z-{je(U-DeiKN*k=OrB2$B`+j{lOf5_E(C5w|K$#Mx`8-*Xe37h7zD!mnUnQ%Puah;&H_6&$ zU9vv;HrbGTmuyTnC7Y8i$<}0BvOW1e*^&H^>`Z=4b|pV0yOW=jJ;^W0-sIP0U-DbB zKRJ*bOny%eC4VG`lOxH|?-@>g;^`8zq0{F9taP9>+4f0HxGe;WQMjngDe(>!TL znm5f%v(kKN{xmx+kQPh}rG?XT(jsZmv{+g^Es>s^mP|{fIce#%OnP2=etJP#HoY*t zD7`o>mtK;VPcKa?q?e@?)63IJ=@sdf=~Zdv^y;)qdQEz5dRI`Go739qEoq(f*7UaY_Oxz#M_MnvGp(OCNE@birH#_N)5hsNX_NHcv}xKb zZJyqjwn*C+(X)oAyheOZ%q-(t+vo>7ew5bZ|N(9h$zF4ohE3 zho>*6BhpvWk?E`HsPwgTbUG#-o4%foOW#Pxr*Ebc(znuy>D%d~^qq8a`ffTUeJ`Dw zzMoD@|Btn&0B9$*Pl6Jd$lyl;j#I0kehP2sZW@e`U zn3y(Y%o~8jVJ;D!jVzn!;-fuPeO1@P@)03vVjC zx$u_4TMKV1yuI*_!aED^D!jY!p2B+z?<>5&@PWby3m+QID*U?eo5F7kzbpK{@Q1=53x6v7x$u|5UkiUL{Jrpx z!aocDD*U_fpTd6&|0|qhUCO$&bs4K*S(a@%mTP&IZv|FpMOM+etaUl-^41lsD_U2w zu54Y!x~g?G>+04utZQ1=vaW4i$GWa{J?r|`4XhhlH?nSQ-Nd@7bu;Vc)-9}CTDP)p zZQaJYtuG*0gmy>-N?itUFqFvhHl%#hS79ShLogHE->;&b9Vg z`>pe=1J*(7kagHPV%4k#YtdS=j#|g8^R4671=fYuU9G!Wcen0g-P2mO?q$`j6>HUM zSh2Ncty>#b(>h_Dv|84t)wVj;mUYVNT0N_84XkbJv~|YXu`aUiZQaMZuXR7`{?-Gm z2U-uZ9&A0tdZ_g<>*3ZTtVddpvL0#f$?thZb5u-<9C%X+u<9_zi<`>gj{AFw`XeaQN-^%3i%*2k=mTc5B# zX?@E2wDlS5v)1RV&s$%xzG!{P`m*&E>#Nq+tgl<&u)b-1%lfwU9qYT+_pI+*Kd^pi z{mA;U^%Lu-*3Yb;TfeY=Y5mIjwe=h8x7P2h-&=pM{%HNl`m^;H>#x?|tiN0Tu>NWN z%lfzVAM3x?|EzQDOWBvUFJl*M%eHODc5To0?Z6K0$S&HKwJ&F1-oAo;Mf*zjmF=t8 zSGBKZU){cjeNFpX_O81eMkFF_MPp!*faJXd)A(_=k2}rx%NJLzkQy4 zz&>anvJcxw?3%q`FWO7?QTv#EzJ1)jz`oGFt9>{7?)E+Gd)mwPz3jTZVz1f_JGR&C zb$i2Z+9&LjcFW$h+jhs^vQODvyJz?9fxT^?w$Io*_C@x+?fcmGweM%&-+qAoK>I=V zgYAdd549g=KiqzV{Yd*!_M`2`*pIazXFuM4g8fAMN%oWNr`S)mpJqSZeun)_`&st0 z?dRCfwV!7{-+qDpLiQ|w+HJxiY*LJSsT-UjtbA9Iq&JCR#IX8B0;@s4^nR9dJ7S1i5TRFFOZsXk68FNZb z*%@~#&V*BSCY>o~+PR%`d*=?$9i2NlcXsaL%s6|TS!d3fclJ8xI{Tdc&UwxO=b&@Q zIqV#9YR-bQ=qx!$ony}V&T;1g=R)VM&fT25JNIzz=`1_*&bD*fIpgd&7diKK?&I9oxu0`?=K;s|r?q0*a zrh6^-+U|AS>$=x-ukYT#y`g&}_r~r`+?%>Lb8qh6!o8(?EBDs!ZQR?sV{XYUyW?)f zop7t}q&wwKySH<1@7}?^qkAX!&hA~@8F!C6>(06J?q2s?cb~i8JuMUg+M{y_KEQpT`ylth?nB&%x({<7 z?mohOr28oM(e7j1$GVSmAMZW^9{YTf`(*bi?o-{TxlebW;Xc!Smiuh?Iqq}a=ef^! zU*NvbeUbZO_y63NxG!~I=Dys0h5JhPRqm_Z*SN2BU+2EweS`Z(_f77b-M6@Jb>HT` z-F=7qPWN5zyWRJ=?{(kjzTf?T`$6|Z?uXrvxF2;t=6>A$g!@VNQ|_nT&$yp;Kj(hl z{et^N_e<`V-LJS`b-(6*-Tj99P4`>wx83i!-*vy|e&79p`$P9f?vLG{xIcA&=KkFM zh5JkQSMIOf-?+bZf9L+*{e$~Q_fPJh-M_ehb^qr6-TjCAPxoK$zuo`1|8@W8p5tB0 zyR>&1ui#mp?Kz(7d7keDUg$+$(Yvg7Iq&k`6}&5YSMsjxUB$bqcQxCwfovp6orvd#d*|@9Ew%yk~mP@}BKI$9t~#Jn#A53%nP4 zFY;dO{h#*|@1@?$yq9~g@LuV?%6ql<8t=8<>%7-{Z}8sey~%sC_ZIK1-rKyld++ex z>AlN)xAz|Jz25u0_j@1kKInbO`>^*B@1x$wypMaI@IL8%%KNnU8Sk^+=e*B*U+})@ zeaZW>_Z9D}-q*aZd*ATB>3z%lw)Y+HyWaP_?|VP+e(3$k`?2>E@2B3+yq|l&@P6t2 z%KNqV8}GN?@4Vl8fAIe3{mJ{Y_ZRQ4-ru~xd;jqM>HW+5xA!0Kzuy16bNoyBm-a8? z7ktaNeaClw&-eYn5BL;ptpjs2VWH}!Ak-`u~2e@p*X{;mDn__y`P{E}bx$Nh>w;aB}hf6AZs zZ|C3Mzk`2A|4#m${k!-x{vLnUpY!Maz5coWK7YS|o`1kU=pXVA`$znmzu+(WOa4*+ zn18;1+`quT(7&sHH~;SbJ^Xw6%l^Imy1(MD`VBw!*Zg&Oa-`{>@K5?Jf75UK9e>L| z<#+v_-}eXpwtw0`f9h6a6RoPxhbUKh=Ml|8)Nu{xkh&`Oo&B<3HDbp8tIR1^x^D7x^#t z|IdGk|5E>D{>%MW_^S}K_@DGY<$v1$jQ?5xbN=W3FZf^dzvO?} z|BC-r|7-r&{crf+^uOhQ+y9RLUH^Oj_x&IEKlFd(|JeVD|5N{G{?Gki_`mdj<^S6M zjsIK!cmD7FKlp$2|K$JK|BL@u|8M@^{eSrX^#A4m+y9UMU;lspIl-lZO9z(;3V{{a zffKla7x+OCgh3P(gUbe&3oajAA-H02rQpiJRf4MqR|~ElTqC$G0><=|dHJy;1=gGLYsYr%T35j2An!O5T%YzFP16Kn;if^N_Y z`oSRB4o(MWf}P-^;NHP~g8K&d3+^90Ab4Q#py0v5LxP6}4+|b1JR*2x@TlO?!DE8Q z29FCKA3Py=V(_Hk$-z^Crv^_8o*q0ScxLdd;Mu`*g69U$3!WdmAb4T$qTt2B{{=4z zUK+eCczN)O;FZCvf>#Hx30@n#E_i+LhTx6Cn}Rn7ZwcNSye)Wp@Q&b}!MlQY2k!~q z8@w-gfAE3egTaS_4+kF!J{o*1_;~P%;FH0pf=>sZ2|gQqF8F-#h2V?9mx3<`UkSb% zd@cBT@QvV`!MB2M2j2<48+i1!M}ok2mcBF8~iUgC%ja6>F_dPA+$m}bV4`u zLO%?`FpR=tc-ioB;pM|CgjWo&6ka*JN_f@qYT?zxYlPPfuN7W9yiR!C@Ot6(!yAM* z3~vEj|v|hJ|=u@__*-# z;S<6qhEEEg96lv{YWTG9>EScNXNJ!TpB+9Yd~W!>@cH2j!WV`w3SS)lU-**nrQyrM zmxr$iUm3nCe0BJm@U`LV!q%%VDg1Nzm+-IQ-@?C#{|NsX{ww@<_@D5<;s3&OqDw`WjxG}wA}g{ZCvqb%@}nRM zqbMpymyIqLT|T-(bj9dO(UqgCL|2Wj7F|8MMs&^STG6$m>qOU$t`}WDxXN7u`O(Lv+XJPSKsC zyF@e5o@h3ji{_)f(YevSXn%BGbRaqy9f}S|N1|G^5G_Va(b4EwbbfR^x*)nRx@&Z| z=O2v=XgGjVO-RqV;GaYDOoblTj<$jM`Br+KNs^-KZD!qd~MCosP~# zJJChay`%d?_l@os-9LIj^uXvr(SxIhL=TM~7Ck(AMD)n$QPHEL$3%~f9v3}6dP4NX z=t8geKz`B^!exu(HEmHMPH7-5`8uLTJ-hk8__qT zZ$;mZz7u^n`d;+?=m*gcqaQ^-j(!sTH2PWe^XM1RFQZ>Yzm9$r{Wkht^!w-!(I2Bf zMSqU|68$y$TlDwnAJIRfe?|X}{uBK-`d@TT@lwT07cWyR6s@9Nbc$}#EBeKt7#5>q zv3S|y<%*XtUZHr!;+2Y5E?%X0)#BBPS1(?pc+KLqiq|e)r+D4s^@`Uo-k^BH;*E+o zF5aYg)8fsFH!t3zc+29ginlJ_rg+=pSg}+r7srd0;zY4poGeZir;E2M-oAK;;vI{3 zD&Dzxm*PxuPjR+5SDY{IEuLH4SKMDbuXvz%uz09=xOk*kD=rili%Z3$#bd?ui^q!> z6fZ2^wRpGU-HZ1q-m|z|yjQVaTq&*=8^yS|R$MP`6r05p#goNWakJPic8XiYQ^jtv zSL_!D#qHwh;+f)3@uK3ri}xwsw|Kwe{fiGMKCt+p;)9D1DL%CLu;Rmuk0?H}_^9He zi;pQjw)nW>8{3Goo2hgSSl?XjnDL#`rWv`Nh;f&-bUy2O1&3rDo@R{TAkHHK&{y%(5Lq8IUJwf zTVIW9+qJz@`}Qo)ce|bL((;MgM(xBrg<0CDZ^irj@n)@50SNN5i@%p?{dTXt)dgTZVrOw7(3zF85A# z`zH{z%y=;fw0sKa?rpZ>!}ZOW&@P`s=4M*Jd)%n8A`nV9ZtNK}TMbe&-s+r=yQ}aS z^q*q<6bQQAIbQF!o9%UA@gn3!Eo~;ndt3GOgPqlSzu9R+DS;hqZRNIby4gNA?jHg% z)z{-%wO?O9v~+H*y6^bmx#i^(r0`6_x>G>`AL^~|tG64i zxI4YjhaX3GwqnLi1sbcx@kwKAv^j+8^b(#pFGQ~=gvc7r^=7}9Rg8&KGmQokSnLe? z&30VdyS+_xbmG+hcC)`2_c{X@8vBnBo+nN%#&Yj!+b3uTCz!U>y79KqmPk8}GC;i591uHEd+EY6)u`mnj zqpw{&Fv&nk{Unfu4_0r*d%K;@gR}eR$gs!aP5PymK{i{1e&!QRodRvZc4qp(&&r@5 z!|>_DfGv&VpkD1ZxB57!Pt;12P@qDh!cBpYdwq~-q6hE+ly=C+m;$+PcD7^PhnhaM z3X{+I(Aj#s&y)#2R(T9MaB6R}-I(2gA+)>^w?MgT(Dx%NC*sw9B89~RFy|eL`*m7@ zxTRBbaVze}``h!|Fy%0^HI7R`7UT71uOD~0lFZfnbr@h9bZVe5@F}5t@Fjcww0+0LL%=18c;Z?V*` z_v1tL)eRU=@&`Gc9e?9xDhAS%Wt_X~t>xa<4w2eQef4B-@j$t>utX}BwsvMgm{`0N z_dyQhlb{z=3fN|IwbmM}H`_#~+N<&2L3@?VZhOUtBb^vuX=ay*@s-YIW_lQJ#Mz~0 zd?P-Sh3tSvrI*f13{zXSv=y&uU|}e%p=M01HP6J24A#V2YtY-s7L%2OEEyB0_SFI6 zKxu4Y&rUy{>2~WoNG~a-v&Le)CKdCkKq{JE*wgGM=nIGIhY4e+mc(C;ey84OHfznL z8 zOa$$1x-3nef{Bp+%1CNLNQCNeON3)K(?f#sCR(s{IbK zUW0aOD^NCtCIvSqrmzFE9l!^sx3Ld6f0A_z7A*4f{J7hLbswcUbxO4u#BWv!3r-!@ zSTLIQA6_~-b9i=s87-gMYICuOr@RfeqbDDrYRIbQSkMK}oj>Q-jc#Y0wN<6`C-8k!t=6 z^<(;!YImXq1!aA(s6?M=Gu#%0c0m}}&|!Jpfkh2#=^n7vs+IZ01H^t+0ZIt4SU-)6 z#yn8Tk|_0v0l3^Av|1=z6~D}C}>4Gj~p z%EGYEcCy-Rqd`B9W^sl+sV>VOuhcTgE3-7)gUyw=JKx9(u*#~)E=mzOuQ`$Bg5jJo z*6d_!y2O&2*R%t(cJrcGBPE#34-YoAT(c?-2dpN`!6d5YzW9uGTug3tW0S(jb(wyN zO5GO`m6a8H#Z0gva>UY5`0s}4E1>gm|0Yf?pegf*mAyg*4N{mshyjLQ zSBKT>ORXgU<6GU%Dr~T*5j|gBz#VxH7TM*}WKFKZ@_8=Tv&QFQO$bzB>jf)gvh&Hb zQHjsQtGnh5u$nNZvI$kRS2;C+V!on?;_B)8$@th-wgMGT+Hfh-Mg1|=&5dPgNlG9Z zo+}HuLtxXLsdYN7(&ReX-t5P1DQqENe+%D^^DMx|!6ej`Pr=Mj@UoPlH;1bWghFW? z98UvcfE@yJM@UMLhu)10EA>p^OFdhPH|tv)uqi8z^}9PWtMCoFNsESB{^>;ZWZi@a zvkff#Jq<}5_e=!@9q3r5OzMDulRALD$XSrmYN>>_;p*N__fT_1kV&e`yn0`MvjqcL zHpdtrqXE~1wWfhb8+#b>@%nbX*{ZL!V&D{pcc%5qESTP4cf?)Xw#JeKk`~i2iLy#C zyvyjvYsH$DCIl-)hB{^@IFV!hH6%T(cSGQH(whWZfV2-EkFlx&tE{f|yL<`~odh+? z2oTgLQzngifvXd&P_5DenCH#aqs`5@Tj}+|2BtLS@(CEt#5`2yniBZdz@tPa5<0BO zpA~dorlutYl#J?;Kt*R{e9;@Fkc*42Zh{TPMJsVohFawCNVfqNF|2yi z$*(NGWzr+w9P}yMVtE26?rn8oO#}Bgo@La!@oE$Ixk$cTHq>Prn?~7C;Vsry7qilv zPC8bbUf6$xb}~x`z?l4?{VMx20|qKolP4=-2qdISGR#Db-un4kmD=GRoWX z2uqo7LRDDm5JL!0jmA(#ncC!gWzij2{!%;T(!wGvvS19JjJsq3tdN4^Xt!V~6H)>s4HdNS zxS<0}Y^@F_eD&@;J@RCT5)7C+$wJH*IjMdeYWFtdR^xcH(cfS@3pog)Q~`+na7M8n zchRM50s$WxIQPgdUfDB`B^7KNpP~+i)bS1I_|g{on=~w<0ZmvWr|LM0(4r|-Qe~OG zm&X8cX3+11v zRvm;>Oie>m&h3jT4>_(?2s!Au*%9sS<TFNyTf)pCnpVVfKAN+Gx5mBQ?#3#{^etOBW(0>=N~E=Gam8vvycqcAd%+1VOe z$4~?n67~;bXOj@cU4^_G)}bvLmU_hHDy_xKiWO0^a>dfDV6ikSSuD+p7E80T#nP;B zu{0}PEX|4+OSAIDQX$|CT(yWZ8)J-wF^0lVtoe*Nc2tL^Y{g`V)AeQ_oOyE{SR2Lc zmQWaHUSW!2fPj7k;p`=i1C@GX0g5a87s}AuXyYd1Y)uE}Xmq3_5 zr+}$|4-g{`NFXnfU#cpZdtv)b|MAZtAa&m;snmQUQ7MZqDU?K)6egmhVKnHrDviPT z#Up95A%txpJE#%y=-gIC&kbU>#9r2^!*c%Xuy!gzw6OPS+I{>&^IpUVX%r30bU z(CYmB()cntEj>$OyJiCxbqGZymNSM#nz*Wt$`!gk&q6YYc8N(wOKc>`$e5R~WW)$k zR6=+F)KWf%$_w*wp3`2R9l)|u!tLnH=2olOAHar}uJBoiBX9}_(P*8%76KguvjaF9 z+N7SQy^RJvo>B=JW+Vj&7Z^eWJt5=|GT|sNxP60&ttL3vH2lIi%E2Y0jGbF5L}86uZ z1M!ZSJtPuSi~_eZR7^5SayP{UL&ME6@m(+pOVp-GQ!s&Q$$<>{{3YRl0C_1nUkCEw zvZ{iC1Al0%25nOnv;h8LLWVIXk(5M^*6mG&%wbFv63JBa3}0$qxCwKdhvfwcN}>pU znl?mVKsbEAG_e@>1}$)!K!5~#_DW;*MuV31Feq?aEOoh9)PsnN5{c)aODp)q^IDqd z?XHD{3xpx;Z#N(sZ?vvX zA=@>G=!BV;3u+Y3%i}aCGU0Ro+WFwdhoH=}>Ax1`lpOwb>AB_Tak9DufL|1cm0qRkIjVu?mWs!$Q|8!aPZ;r`)4kCYB%1TqQ6)S%TMJK$YOe~R`Ga60`yL^9za?P!vjCf{HQgpu`% zqEbHbc&7_z*rT-y=PIP5oL@>~MBH%}Ot+`r?KU9#5aX2yIqWSnJ4au z5y#Uw1OSiL7V~(F^dYKiaHpcjgYSnZieWO&D57CD&cGR_<1CzEK4#xfOj44mAB)npUtHJdnWQ%EF=g*8XOC{hlvX;P4pk3pPO|ac`}i zSoJh@pGpS_yMjx+^~6vfBC{HcM0!7&lABz)B-ij;J)LAw8tfDL>d%kHhzP8 z2xu9vpI}S}?%CPrNl~k;z%4==_(6aSJNwiwSH~9~ZNdf=jmr^wfzYty+idnQNR4~w zRpvk!ws!KnSZOueCx?J^Abu=4lupjPw2@^g4o1c0r%@WgR7RyiZHN>D=+K6<0_yip z)k){TY7N{->cCk&9TBN2a+gwHMdA!GXj0c&wb5;ELrkTPC~OJwin6J$O#_Fy<3=MR z^bw#<$PSxTmZvs4n=w%-UE9e)wO&e7UGQ<3v0)#vWvrcstsZRR$u_$*y)d)V>vthw zB^kHV^8%oD;4s{VD@}-!BU@xEUP~3zh#=}rQTqw=;$nGBnHOpxbJ(kBB!&5_b5*BN)|(v;s$M1xXi>a z?j&=x(uh$JWhi=n#APVgRMEEwYmu%lefLM@4?c=|;VX0lws^vP3-jyzlC(UCMw z?x3V;N^zn)G%F2UFo#KMSGr?BRCGsyF@7rl#x$$0`Ah{>XenbwWD*-4(#B{-ml$ zqa*2$j4$brQY`5YN#y|>ADF937@mlK;ucnL4Szr+Cfu;&A{vU3uskvf4+aJ)4<*lS zQU!81)20DYRehNah5tZ(I#Apm?{lNp9%Vfa>3z_&)m z5{&WFahTkX#esAp*9`%whhWv^iAh#i2}@R3xmZ$IG-_Bjo6;CfbAU;m#3Def9u82V zqT|sPf+M(#%@XNMEwEfg-264;OFcRpe7VbVCuAPw{u^No!YGm37O=d7pCXYxm^Y;N zTul_JyRbD>u?R$U&?v;|pdok=l&d#ORjM%k%(R=E@PQjF_87*NOtXBvOSK>GmB)c#XW1SG$r;YqEw@s}`{r0J!6(N$G-{q9R142m~c zMK)~AWNg#MOo8cP=$!E1t8Gj|Z^=R=7AZ+drr^^PN+S*YX;f2HKheG$Cq>|H=)f%$ zmQzRNL7o9L(nTu_oELJJnDauc13D~ehR|1^1yREcVwf|8zZ<%{12e+rL2{uS`a{pM zGsWT?$k1gyv@`=r&@zK^ak6=pIguEINQ1Q|T>ioU#PpskHRtbQe`3az7MwJYVg5>i z=|)xxq>33cgx;qrCt)6qArmMwI8wE!lCnb~TfGPg^tjiKs3zCRJT%bB{OYrzD!zG& zNuibLa;`d+1xVM5ZZYPwfDlOtaqMj**LKnnqnqbuOy$d~3>d$>0#>C_7UIJxmH6Q> zvk>bEINhrl4TDoV4DSZHi7wH42<;e%2GXhhc(&P%<+=uha z`p(hLTxS5W(8yA41%heG6jot(lsNpf1b?v8hQzbD0tb1w$l?E6~ z{g|Y}fb%Z#X;M&NuFzDf$MKvLgOb?|*fbY#exie=mR<%JK-oDPj228FA-*7TUuA__ z#z}Akq*jKE%`_)$f~$px!y4)2|L5Dtz6xX}L8gaQzHztClQ$3bsucF`z%~EjhfN76h@ zP&YlX3dq4U+z`b7nd+$&Ntz(2#8SAdgz3Dv4W@-R+IkAvks};*ZJ<7L`@&G4&m<5? z0EUs`(}lu6Oc(ihvT|y9lmUj3(y}0}913fawyNccwzBZ^qj)Q?R~p-*N1;s!)u2~1 zD+^`_dd`rBz@VCVPdBcgoNd9g4|+P)9?5YpDv!gpNLY{?#CcS~Ku_Y2P-ahh|Fg27 zgJqWkv>=n1CsE$;CRXfrcS*Cc^9~b*(KeEl3zJf z87sb4GCI>RnJGpCun0MOL?_61Wm^PwIA<`^Q-=oNEJ=$gAx%}jQM~Ab)^@Gl zg`oOUX$$`cgA)Ax(rn43r2WD`A$>~~RZ`4UMe;3|U^@aSwLAEf5jzFv5!}?inOI1H zjPB0LK~+9?ssZDtRN?d=NQIf^>8yCd^)yTPfnaN*%a@q}g-zy&pwbsn`H{Xzsv`L! zeHyJmvPQ<;@)!m%;&lLcD}&t5A|o6f2W&`Fa4_<@)yBWuD1@dVwqd5-0NN4(HVvil zA?F%pWU0OuLuePib}$3iP;2M2q{I^oDGa!0rNh7t$+j5_mcI-Zv$)Mja2d^jL|P*~ zsxII|V>4TD6PI4ggqROJ6w&d95UdJCMrV@D`0lA+rT73I@x6z5fWXm!SzOJUuU}tc?@CthkMd=2ql{@<-}Qo z2j8B^7WTJ*I$ztn0?ugmK!^q$9t=~!`J-(nC7*zJ2R>FwHbhega2qX21~Sm7=@AU_ zsczJJ?EWa>%dF+qPItZDX3q-bvcf{|lRP4@KLF3B$g^Q$r3bEK`5~+1BbfBbuuNv< zJ_-8?eAp~uVld;X0dyQna~;u(p@VW-k`VfZaz%uB7>=Y>Z&(u~fuh70m+eS+a%)V^ z!|*Eg?)s|fYhdNJv68&$U>MaEJcwq-c}96E_-c}otn|7=7PA+()@Zz2rcP&4W`X1z zJDJ)lolBG9n?Hw6gLp_PTI1X!2Z(SBZwSpTzFcOxFsL%<8Qe^xM#qSa^x2d~PFvx; z2L6F{JS84@(hs!hVQ2;h!A@T+kEabd<`U31g(z@3O7pB`z7x2cc1;ja%mjtapJ_@M z{n;9B^;Z`lb4II&lTag{lFawS{kMxPI*Y#3;wt81x`{I6S{A`- zYOGq8CPt1?0{Bh=JTO9jNZDwzD0oGPKrNA1P!rW=Uq8){ad}Ju>c@NvXgbERaTE-= zAw2`7Q-W18{XhUd!qk2b#Y25f@x^^&a(s-g$sE+PVg@!<`Aq`ASrX1+by$-*sAt2B zG@?^tmqv8DCK-eLEd~+V0IxM-M$diZ@z;4iFQvdhKlpl>t}&997){|wjHYW6YBa1x z1dyO>LA@WMzi|Rzg9OV7MDa2Y??Ad5@qX+XU5JP%L0_je$4xzmDlZ1c5pWkG#mAsemV;d9;tfg~%t+RL2E`Cb5{A+%RP%x7zVr znZ6J1)aK{|L+LkWGOgmkOwu0c1&uJKE|Q57{7{&%p1+NJ7~Zl-NrHeW;RHGm!*IYe z_@O)kjFCs2m`C7Ip1%!}Fit1Z6qM?^G?9xM5+wyw&}n?vVRmlj=!~>-m5FE-tu1l#=gFq<8JnT$Ob0d>Nm9PeYbDdSPo6e3>1(K{LjArst z&0VMTjaX(xTvIS&h@SM4^hlZcnsGKs`oPa6;c*+Bq_czCAS#MIPaa^-bnI+!a{5FV zRo1LThPh1{aLi3jB~6JhJG8BQB$N1cSedDjeyTE^LbyG!2H~`rZD|-|7KdP>Yjev;=x{&h}kIxe>jbfLc34sY*74AfojW=wHLfQ%+9FD+;sTksz9dk5M%1^7bj%B#pkmMkTqZ~00-%O)k-OY7E;I`v ztVmH-(0Bw#Z#vMhp~U|~hMfk(u-(l<>O6E=D3gm$1Bt8>k?PexEpAkM+4YpA zh!EVv1S4b^H0bdVdSt#}R}+TPlawgUx}>w2s$^zhNdQE+-LCX22U*dtEF64>R8$x2 z9qZj@z0GdI!+HgwY`80L(9EBU2SmmKrd3&Zc2x^6Upl1Tb#5k_tZ^t^=Y7gsdP=2&@zyyOpJ&pBd6T z$)nTIK>%3HHepM{)eLem8jwbKnnh`ZXR4ABew;;K|(?AB!s9I@A{l`v2NfCeST3fbbXlCxKw;OmQHb3hUgLcf-Aaxr;}eq z&L*UT5acDlnWTrq`Jd0sKzsy-aNguw^CVqesvYzt$>nL9>T-y^!Gk_juu?%7VED@=&ptK8z4nI9R=wU8a8)D|r&=ymN zt}Z)wK(^^kOi$M;jWx)dAjB2lgoIG|pc__@_Zt@B7uL|DpVW7hXwZ8ui=ET(z(tyd z8EX^Ufg>6W2QWj?c&=U2E;WE_KK@dj;_i|}Qb|ur5Iu7U!pBH+W~N48PqmGRkYDYD zD{%wQYV{ULJR4e`%BNv3YiQ|%M3D&jrYSUh911eP?QaUxjGo@;=#*DGt-)p+@)&Lt z%Qw|N$T2%s+JWf>{)5~>9h-yd8S2OyU1Q295AcCOLQ)+=MjgUc zXtC3ZiK`9-IkB*>-rLyUlszS8F^rRpOhPMC0&OO*rR!uk4hls%9->kRNI&&RfY2i{ zOmjvK1nr}wX6Z-V#lRegR9g@Q&xenB7{H5+7;AYJEdcxb$U!nuk0#NH(h+#Mpbbkp z^==9UH7gmUF((ST`yo)p?jCi7&pg3|a2DgDDm0tR zA;V$rAg>DL=J;kgA}kff2(VyFK-yi*Ny2BjE$zFejgoM3`$j!}EdaJPlbGy-M!!b7*v(qIc8SBV>Q-TFFR z{-mtbn5#)%7>!F(nNNIzowE?ag!W^Srz%8RQDw!SU#g@xdSbn=^q^aCs}8y_y##+A z>04J>`1nuMj^ad-NB5YiU7kG99YY|N=gt}wojd|Z7t0Q03N9d4oxMr9_#nD~a)QAK_bf_w^y^@DOI8~28FG^1X6upxzjx3dbYrHpQtOJGPuUThj%`A+qH*G9V05!%TI)2nF2v4}_ltx>e^+*89=0;aXaJSNvJt`;rWUe9FcycG zqVqCk46(t%A(B2K-ch)a3U`iIPQc+?W($x-G0q8D&?(wAc8sPESr8QM5yb8JV!O6lOS;mcndZvJ}#UsrY0#yxfc%SM(O}GwmssPgSbs52HfP zV5S5a3Mj|D+qG?OBxeD@Fvtavc+Vh9_9q-wH(>u;Yi`9fRB=~BEDu{5Vp%|vp}B`` zf-j0aa5#m*4=HxaY#k-siRnHIXB+|O@l1j9rhOVxkn8M&YP4S{{1p-;P*=f z6KDvb!VZU$G&IwW^p&%9TtjtFG?IuewC~u=q}T*n1biO^f~}QTQ?-B>WpO)@w!+uN$I_vl#C;b~t~)dK3?Rn-EH`noBZ0JIeFTAFy` zR0|e4R2?X~5vA8t zbs*$E8D#B)2qZS#wNN;nlgpA!v!-$2Xs=J|(BCq z9;TYba#aLB5Z1`+$;<(0{C0py=PxZ)^eUbe)x23pOl7(z#ayPX%#tOkU3cqlOlWJ- zrA12%d9fXiTB?S%O9zV!i{cSB0FCYs)DlR$9SlGhuN93pBp*ei4N|2>8${NNU05(u zw{+-wZAc(T%|NSd27}qCnGeCk5DBe+pG=Di9#TBI7h49vO%4V`X=>n07Z;Kp25B0d zT}%-ekwAQ0E~bU zU@l%Gx&a_$rW*iBWikL@XF?L>wYQtyP8)B?mL_{7CB%GEBxd?7v~tsX8uzg&a*)&! zLs39UxRJ;YiM7yd2~VJz9%c#S%Ej*h=}1Wnlm=P4K%_;^laM6aEM>7f(vg)f5>1m^ zd3!p8c7vq8$5%&)T@CrmNWvesUD3i-`W?K;&auS@LRTFx1m7W&oa%RKaHtCD6?(iT z2YjO6na3|%#1E%nNoE@TW{_W z?4!<>T^;5q>?+!)VK>pfY^9`qn#w#(Rr|z+Q*r5=NHIG~hXW=f+5pS0>gn#$OT$!y zjDi}8qZD8+M~d{djdEqlR!Y*>R3_5TR!Y)`EBBDqzu#ORz@VIkr=yAArvguq!9q@D zr3aaU43O}W9<2A&oeogcTPmF3^ehF8gT+C+jjtEr#aR9~4r&7mddR`k)9LqHuzV61 zw+S+Pf?|M#gAojQA=3q4lTDz|JnTK-8WEc0x$TcLm(C(NOrevciK+w&9#ryG4WO0y z%xb)a@rUSY8v;xFHA|im9nvv4^FbM?=Qsu)@aP)OhX@1s9djAhpAZ=+lP9X!Y0e^^ z%H->h3{HK#WXd)Who>UQSrslw?4#sK8g|Vn5eiAq!t%L+9q<-7vSWxLMDft8AvrCS zQJ3d6I60jl_w!*fC+A(H%aBkTr`LIiY3CD=dH5(tHhM9o4?6Tvbm?T5Sz#oP zS(%2@Nv1+Q9d2V9YMBqfP|IdReXTkjlAQ#5^O_mir7?KsY>Ve_X0p)2VUAH!kvy*} zZAo+nKG~N5Us`g_9z5^>6K&jrV_)5~&nCnk+C_w<7`eIz;GzM{bEM`HVHl3IVS1@U zk}l&$(7i zY#BGO4@U4l2nd0IkKMOT(o*k0KkAng=QWQfs?8-=`AiAP4x@R0L?s}RdVb@eFh3_x+St_Hr*s0h07jLAnJ*mYw|}9-vo=8MKCl*$Lf(m1QW_ZNX>Q>f*!Kn zW#^0rX~XhH??c0Cg=c!i1miw8^;|KB`zgu?IWRd(My7#zxE)KaDzs8y+DW{BBS>%> z(=#{gt>#6;d_~YLvfHJ{?U2%Lop=&*`Zvv`l=xO)Y@~<3nLrsAhdO_RDPvs`g;kf6 zGTe4MHHZiCyrN0mj>yAMwI~;3(B>VxIG?{fme5HA1oF|XWjR7B(?}9{l3ps%tL-1#<|@v)q@Zr;NF= z*zsM8;R#y2i&<-Wy>k@3XC{BWo`dPl=4uzR!N*%--8*~T=k6ALQ{W2A(LiZ4Ab&V! zuXE3co-%ifLT%PH(yPLI3K$@e?6nfhZ&YxOkvvWhGY0xfh#RC-g`h#aS+cj=*_`RE zHk+U-tIfq4eN~kxNr@U2b4^Ik3fDm5E(Ar4m$MHHl?{OKM0V20Y~DpWy_O zQzjE^%F3@Uka&juhat9}ObD1s!1$<+ktm-E$n(>%fmhBIO;{7j6vFWG1aElS#Y9|x zqGW_lu>$4?x6<->nxZem@`-rgY3?jHv;#NR7RP%|v#2%QNZN>HWU~3=Q6TmssE+!xv zM`|RXOh8)Li4KWGg}r{i+d(Td-G42XaX9Os$6=Q`5?T4Y5AwELo7AG6zMqqaGP+BlRP}9Irjh@7jTa(<5 zMsj(rNs`g=DvS+1apHO$l~>tMX?nY+G=^_k(Lh-?MHoTH!LV38372;Jczl3H2>C2# z_%?ahZFz&fI3b3PvVk{a_cy@47QE#*1^&2YFvOOb8AF|baq(7)BQ0oB>WQ;3RLbzCmXV(g*4Wl8l^@ z^k*Exj0835HL{CC5VOKJR(nGVow%+$*;zlfM zMu4P0{IEnsj_vXRclb0zNk}$^8G4tuZp`gw)4%Bg0GbOy1B zI(%8NgfP9)OCLuMy#ArDge0p&^YlGkCeaLY_+A1HmXK*=%Ko79L@??a--S913Wm( z0VgoE{mjI{a;rDsM47~p%%33_z#t#7iMUZy4G3^#2G_$3Y^>?ZwNUN?4^(=Cq@*KP6DVAl_)Ofa{kI?Dof&7Z%_?&T!nBhn?Q z%<{xKWayVCo9%4~;%I<3BSjiM+%Pqs#(?9~sEOJBz_`(5?;OI8SexJk0^>1Y2Clc# zTSu_AK!zko3l9y=10UG{9*Kx#8RWt5cDI>B>+JTMIRp)+MGl5>&uPYi#E3K#x%hfK zbBpml84M)TN7wCP&CoQ#5+)_5_JSEQV~FR1E{>Ot9BNJR9BOG>JQws5Y*<(+<_3l7 zmIK1=l;jrg+z#BGmQ%BqD%45Jq9{q0Bpw`>gEqAZ$z5k*Vu7b!Amg~m^jaZhBD^Sv zg6Lu%3^&CR7}!UG-M9`Hw%IY5n2hpZvVzFa(eRUn8G#>hZjtb#@&2u%=x|@0dCFY6 za;?FOA>+|e^@e0F0tB_UT1QL|!snqfpQABaEvI{$Pm<}1I8~bzzL`YakYTc02U7&^ z?`zVvmGf|*aSIT%?Nm5w4&?$# zN0&q3h7*(eXl7qb3VF@Rr9Re}U zjy>D}4W+`f+GO4x-34Z8VG+*V_YBtH@!H)rsy>xURysJ%5U(Ri>W6fbdQ9()NBv@v zTw0#OG7KoBujo%x|!dGJs2||~LVQDBqRVs~>Ov+&S5u#HY zolUA6iE>SKI~{5&N@d`I-AbwN^eV>CnG_4+F4#wx^cF9DG80l7Gs3DAGF4U{eJS)% zA|VaCrSawcaC6TZw3G z>`MVr0MYYF@?Fvongz@GT!<$`g)=S7Lc|_;<*Ejf<7*Rkjhrge*7m`r3L{q%92@d_ z?wQwCFrt;jL?Q_SXlxY$_sgG6yVhVoAP)<;bK&wV6)`T$$#79cy);2CV^Xak_gQHF zC0*C|O@fuwekiP@;AU7N2e_7od6?lmVSbgwK~f&4F`Ae1D9cqQri_PaG9EJ0kl_>E zhI3Rr#F%Nd1nulH4H7P+MU>_ut7dW|s;Xi5J+_plVfy%Gw&DS2X%uW$ZbP&6$LU%sks*fjIWjyjhO@ZBfE5_OLHj8OC&{0C@1SB)bOno z>8obF1Q2Pxq&Jt~702d!vrp4>oWKvLDJPF6u<}yBbF>LrUS?r?H7_G56*5M7vx)gD z;|BPNx(bR~qu}&A*udUS3)gA68Aw+k)yO#Ga4z53gxlUU{gsRa$84J`uuE&N&$eIz zRtTo+WRh^@q=}}&`FLd6X{>IvEcJi^R%N*xpFoOrGcvR%MiA}@NG6@bc2lr!m|71rdm=sEo)8Zjo8B{8jVaf0%H{!??Ow|O2gZhhPabfop{E|E=3W>Z0qddCm|9yNds0}11rzz0T67;J*)FwNeef z6A96ojaRff?e)3(4l%UIA(6HMNA36_xLLe`fFw~F9YTb&at~}IcuXowB~_D8W*m7D zjVS!5tMUm|2tRsCnYw&ZlMtnZPwCX#M?2>YTJS%dw90atJV8p2cFyI1^CuRYkOKq$ zB_hHlhE&$8_iPwel4@5(`ye) z<2)7w8nlfxAARiPFiRq&v%3n5NQ$pmKyJ0ZvvUXFpV42uT?{@SxV(LMrDw?F-3@ufo zqU|PyH={>TYSratXJxP^zCz-xE0vGH%?S)9N*r!7YIAouNdj<6M9%olN~HUftVGV~ zO^d3KeyP{j4-vf&hv6~nSQ>L#zYd*g@H=Gd6nR5+4-%C~hA)Y~6ityzsfgt6&JHC~ z45RF%L@425`ZVmA`Lo6}S(Gl8%H)wQUGP8xqIv7>JGOF%9{j2K*%gDuf4Y+J$JS%lO_HL#_aHG=8Z zCwky?z|Xj}Ol*dUnI0y8Tf}25k&6n#7625|{npz(Fc-zjk6!=X86Y_rLcItKH#G1E zH#G3?2?+D!2_z;KumqRHeTSBCtzzpbmdXpCTnuWPCP3Fc2?)M!LhRU}*(i(FD7~MGR0hf z8C23g8jjC2xVnJr?_TtZ%(USVv3bTlDWyJ$4#XADH(2>0IK((pN$yBg7f1=@QOT4| z;>#F#nSx1x0E$8;ds0X{RvL%FG$4B#F)A2&&=z9)83B^s5rTZv30cTsQ0*OQ05aJ0 z2xN)ON+aJc&mtt25wF8+jkY?!`p#ioUD?%F9 zanm5AGN0NK3G`+N^RU-v%1QtxW~IF=QqP6KEPfpI|b<5V<5nkp2`C3@#O2IEw`X7@pqT=z#M} zEWTonWk7v|B@-0AU@U%84WUrG7>a2Gc_^|v&}MR50|JWqOhs!u&kO*&!>jf!c zt0tT51VkF6?hgVm2v&RrfiP_JKWW%4ARbdMPaRpTLypZkF>tLSA zdouhC93*2`^9tPCQ7MDArVi}{OxC{URruLuG(`twAXzs=IgHog$SE6|BXboJznOI_ zehVcc2WDV^LQm)DeGy{EQt_}#xXLoX$qn;>bzzj_T0Kcp8pDLAKvr9jsCfWy!pWdh z2U%eX7MeUf*j$ObM@SB9>1BD?6PM*G>I9fvVEpI@F0U?+QFb9gD){Y0+rYD)kt%yS zf{bELgwD$-N2%qrKZFGZUR%lV)%xG|u$`3^pk+)owC& zm@%s~QEEV3RX;um29p@ujK@+e-?arEwfLjDyb_)ShCD&?HbHL_dnaS&Bt!rXPZi0A z{RF13q6B!E(#P^j3oL1x#j!_I$qPbd+rH zEYREpLt9zsXVxd$j>h`q^f6MZ4f}d^G>{#C1#bUh75H7n?v0~OHn*OS_qJfMItNSG;G9ZZ)h8OQIAFnTz2$E;)GrS zSufzBmCojIJj|ZycI$X;>2!)$c%q^OPA|dh3CM5B`BhkftfFvI47SlMrA<>3@so~H zRh+E~Qfax6=m{zS6HIvm7BujR&YTAM%^JjreV19QtZu-jOD$^P(Gk;f$}gnvhi|OW z6ZRMljH3$C6ovG9w{tp0I-@IcWD1uDPxDIKlS%R#vaz77EyimG2vuS9KzwjhT1xDT z;0E3mfpmy!NBDDPO%0FqS}N?wb*dl`p$j<-wuzNK-%v+Kl@(Kuv0#vuo>0Cbhiz#~ zH?^f_w52<0DLap$9UndnnKy};&7(u7ddN;~R7PM9gB?poMyxp17gnnFWpWEfFeDjc znk}mc*goWvfcn`*sWLjCl*|K+OyV8klUu=-8DwTw2bwva2SRmSNYm3yh{_77*+hmISF@(-YXkKtQ0P z?vuSOFxC3_{K@J?vZhYq;&E)XSAiOJ3ZOOpwW-W9JJpADjP!vph19mxNR6Dq@JWW8 zTOFhcinMRtno~ID98@Zh}6~ z4?sav>`t&NLbMWYc&WXqHXATa(@N>VFG1Vnwqk5e?KI<7W0vM8(6wJK0pmxREK#XQ zl6dy;9dBhE#*)exd6gnl1m-Rq9JHy*sR6%E#z|H1jkNhqS#}e>RtzcqQ)T2Z*eLJn zrUt1x&=gLR%PIrrcIRwN5)V^acT$Hc9C%vjn%ZL==6vfacL;|$?1ZTd`1V-~nDMky z9Ncn^L?GEvQ^aI+vfpeQHMM~G!@!V)kw+%IsRgw9X#w6Bz+cz}xts(eOu>rt~=&H!fKefQCN^RIuFSGQ^wHod~4?_u^Vn+Z= zwM5BLxA(kEj%6y5D5l*WNfkaG0uGl!ycfK+a(}>ijqhFWW|qjJ$g>2mEu(KWhWQB| z>ueBDT$xqDatpD}R7E)SIGNYy$OR7oPn2^+Ffgmrmtd#(Tizuj@e~&77m2V-Q0XNq z@w7NFmeURbV|qjEbQ>ODgfCyJupaUL!@ErN{_Ogz{<-szr%!%WDS0*-sUpkUI#Y1Ug@mwVVJ zc%FxkY}OK_ssmBLB`El+y3?bdi@+tP9VJ;oYTBu#*z39Izk&C&;;nGF4I*712!eh=rZ#=WZpDA&{EW zc1v%PJ#;7OuEMaUKGmWMPWs0!d?B2~#8+n*sT{R(3}dq3yYvUtk)7b1z9Ptm3pmUeo0=31)2151t0=^nRrsh~vd zX|%;@>C&Uz^W`NPHh3sb5I!gQr^-NNbo&~3#4>ztFuyX&30NH`r4iX zq3tMsN^V)RzN2|;?j+V`!iVH`wCXL9*7?^}{0bVA`?-f}X_;9|G7WOYk}8B;EN=V=Ltg8@#_p0ow zq~*Oj3=$ult>E!8x*F1mh8TDD>TsxsEn73a00)cY#7_g;Id7)p*8G0nPNi)ZQza%sCU@Mn1^l+nB zN(J8~%#+&eK7eyhsqD>Oq7EA&H;*64;Ft)b^EX)R1lqHK+6=pnsna*J0l zgY?iV({L79Wl}>Aobl=AvqKMnvO}*--On=Z)X*!>t3xkwVK5a>ObAvWdF&Gr&@=ND zdXkwG^BZV{f2kNOT?~k5l1V2i$N3{&1pP`C)enP&sT32`_=u*kvnUnv$#6H9p_1=t zz=Hifews8Ke);7-6~0tQ9PCiF1lPC73^#><NNr9AC~tG3WqF2A{f%lbXe4Bvbs%^Tak#F z`hFYCU2zgf zwRbyl=+0BIC6H-2)CE0dTFF!2&su(6i)C&At7!V5B;L66`j?WdZD>?4>TM+9NX ztk$;qydVltRM~)4WCKK(ZVpcTW7_vxs(VxI z_)I^yXH%!ag94ATolf&O4J|Egz#%7l!%4bno}3L2IrY-wBo1x48ipLdzbA z(D++Zv*-ooJ=lL_jy?)hUXdM%WWASh(QAPgAZjAdnIP2@_p}r(n;to$8NCx%qGa&m zN)YH^Jqn+Scu?ijW(kHo@xwf=@SJ_Kx4|7bGLX@QngFG42BF)Vi#|ymAc1ei@yV=w zDx^3i)C$T}151k2u*qGcq%qlfCzZlv534^@ZZ7x<;zQ!Q90^*Kr&`3+BOt&oFi6K0 zr!)!fSyGWMN4_!RR;p#52moGar4Fy8@uVu%c>0B=1Z8>v$2i*dVe(gw?h+haUrN;l z-T~c#x&oZ)0B#QDGe-#))`8Ipi@BdO!aZ>b!DPh{FbNi3^l#T8XCY>j7ui72*;pl4 z387Au*7)ScYf9px!z^I0K%5D>wWh?6+TInwVGD^sn&fY#bGTj#E7QzW@-jKcNukIM zq1%S8ZP^uz*HuX7H$J=bQt(mNVHOkpn|(HSFt(VmX=HG&q{d_6OP5)>y_|K9so?wio0!IwgEL)X0!4bb zz~=%$20tl;^=M7;U^HnSw=$*g1+4fwjmILziGno}}MqN+egB!jh)J zB}{WmlOzkq1k)0nn7275DD*~Ja=b2?<#~xDL*aGcbtP%C=4H9mb?^x*8Tz>Qr<@p0Lu3WS$0O)lr$VUs$A zdk4II2?Bz9W|;q6ofZWD6NG<^b%@g)VDq&A#VdI1<~ZvESUXkrXR5ad3rCrdC3+|a zruk8{iz>gD8CX3f6gKH_rMJ^w<;y$ARA*LEN^TM>={piSFf$O-$RsbEMu|YBuEU=b zOOU=z4)9RLF@-P66ZJ@G7go@bldgbvXwuY#lgv`Ydjtbs#{*gds*SB8@K2}3t>oaE zsV2-y@)-pjEhGc45&k{<-CQe|;2#raUi9nW^f#Bx< z+xxQYHj*7}FQ7NjyHIlGqso%6)h^qTC6~|tq(hOElwBl~#lf~}kG-e=0}ulu0-2)g zo_^~-w@YRKF(V@o7+KGwpmgfPK>s_U+|2M{V>s2B`kgH^Ve_27(ATdt zHx^0)I~q#DH-=1CUk~*PY)!rY4Xf3;X5ZTD>ZjD)>rPkn?Me1h*S{NmvS3U(82K4^e?W{SiCWY!zjdpPX6 z$kim5vam)#YJ(we;049^HY-jjDl!EFXoG%w%kM&d*N9n#^Qw)j3^RCyTyl}Ycf9fWTzJ| zuKFp{>GgG+h@uYO{+Fh7dIPP~O7>S6!HeS--zTUHUsbZQ>Gt-rs_d70wUG_VtJ1>A zy2d5?H=C1=@I+`|>cp~!Vz{j_v&Y(t@N+QTR{L)?o(@jd(~jU(x9u1#)y}{aX@2uW z|9^S?zyy{eR4EOJM|uYejpDUt%tj8)*Y1(@SIfu4e;xM+S+07{8su~+eMA`W4tw^J z4v^dQ`L$-uv?=TtTrOdM&4J2^a+0wOXt=^dB;^v@%iK-}GB?t}%KnEuA*-W3DC;0D zZRrRO&HLp~VFYpj7!8vSaQl3sKp)H`B$Y-&L3S-{YFmrQIPMP?gB}9Zrl$b5sveqm zu%V@S6q^!~EtK;B2%!||?lC?C0GT>lft;DaYIIkx*Cr*>o3s7Pj!=^tBDf?7Xr8u9 z9F>l@Pc{ol<%pXa4UCNh?4ki51hI0tZ~%TSmWQ7@zc&qH5v?Jbm$*f-+L;jSSym6ZBDjX2mi6~~C?8$?i&2+YU2 zNzeHVk&+5>JbHT3`A$?r1ec6E7JQ6+1z1=YE-7hxI!D?BPA{Msur`d2Ax^OcA!tw7 z_Ao*PE+y2&j*xsD3k7rXUhk1U5bOt=|6Ri$r{=^bZr&Pqhz|)NG7JbmU*G}|Ku|`{ z$RCHYb(HiVNxY$scy17y8qukC^#ej5tNNs>@Nm=z9_wR5`wCtOTx5Y3!hq830ZEdm z*_}ij>c_-BE_wcIRs_52ImvUZ#E z-4h;Xn*+FLSME!Ym#gi6LZy0Pqn5`Q^ppYz!)s#~zBHX!y+RHQ41qOU{x(VARZtYc z?B8ASDS|uEZ&!#&8`zZ;MfOcO>l0(MQRh#9HE9j$U8$=T~7K1a3NPdy*zj`rT zV?F83*$gHt;xUd8&cas&8a;%nvM~B?QWzr$vSnHxNx})XA#Ghh?Xw@uDQ^)OymjFC zW;&(?iK}a;3n}h*dv8NG{jf&%zLLn{P|xqN;Ilbo#3ZR1kdhqY0MSHd`%J#Fd)7K4 zDi#GhH5Y#rhuAR@=(CxV;G|Eqcr6kz!Xm7TfM+zC45N=Ue&Pjcv|j=0kIJzk`>t=sgqT;0Gn#`aK6GZ#@RQm zUdFQ{_!u1g^AO_BLL>8>72-!B7_Lu$ZjOnpbsU~?O~$eHswXgOG#Q6FbJ zXEI0o6Hz&kp)scXrj0eg`;&6br~|v$@3qgnkajbYaByZV`danP9lOG%9z#N=4UV_$ z(HyuR%;_1cv$$>=BxI#8KV<+DcpqWZY6LWfTs6e%=H_D)gZ1pE3-OU22&x+~+F9CY zl;~qc36)z$6W|b+U2<%~xS|0j*$U7MTUX!%Q{NcJ#OEF?EcY?>ZXof!0^>m=0gDm8 zh6Dl^yZt9J1aM5QZuha&pMpY__bO+#EsotZ4eiPE{H$=K?{(UOSO|nI(?wj=Hz>IauuOuNs&jStQXu^iw&u? z!S2d!-M@KvOD6W08`yiWE!^$$uOp^g&w_j=!@;V=0K8$C8Pb4^>TtRt!@52`GOY3b zxZOfbvS+0WzZySPF+WHg*fb(o`K}Cku{J>R=FihsK zXoQ~`!5Y?Zw?3hV5tOHkD6mMoA9MEzR`!nuz(+qH?soMFji2Gx@VPc!vMrr+ZH8O5 zrywF^7=r#Ln%=X6Nk|(H$%57`n2kJQfWpItCQk)CU%0T|==TtdL(HJRWDU zJJO{clN-2fjMgQcR^G-JuwGhfR<=RbL>(ACa_l%P-fp+I-lm@RAn6B&wiig52eARm z1-mE4R=Lm`cXnFuZ|A#ud(ukvHVuURFYZ-sZ%u#eUe(D(kxgSrH}mUljdgz=?F}{% zE!o5b^D=UL=v=6TcS=V(#8rvS2(lxKfV{hdC$h{QDc?g#?#Tk}l`(-OX7QapD_n}q z7`-;LLj07@ZbH(Ql&Y^+N8Dn+BPbkYG%6nv{hI`%3|mjr)hO}&4D^zKp$w^N%n{L!dvHBbt zC!qA+)F2o2#+;Jaf3xv)gwq$lLU;`D^7gLCHz^onNb%Ek@S%y|}_XKZTMFQgRvt_KTN!-b4ai<W;I26bLSO#agx^$)W(F3 zTyK}89Ko7~IBjK1Ly^VlA$tW}TSJs^2N4l|Uv8cb&tj@Q|Gn-FM-qgz>|;dBOU!7P zsT!~IXQvR&ghDr}%++2qNV~*}A++@q*-%@S$qBjcqUl5Ixc=3Z8n2hLJ>(Ab;FM3u ze^UAGO#SYB-QW^(Mi>7^&+r!v?SyH+=xGx#7o_3|*8=Ny4I8r1Ck|ZLS5J^|+lTOX z#}5N{$Ylv|;5EXhvoK9Ts-9!P^=H1s`%;=}MFTS;hdr2XQkq3ocGe*AB|J36-KbV? zS(f>cp6AP*NdK?MDos8=gfZ1hhtH>`08hIhXY3szH$2gp?uh)!(ISuHCQ|Cc%(=sVIjqy^j zV4}5uj}!v+S~GD-EKhr_B_5>uPEW#r6^T46+mL#=I!Tnqv&F8*7$`N2JcS;=)b$sv zoU?boZfgqG=-f(l;u-sPPps00Hh@qYX0)J7B;0}(e;bhxwhauYNpAQD8R4t%2$x7Q zx0Y>(MLbUdWXk)6S-(1myiVIB#`{0(EutraSi`dDF~x1S2RG!Mx>UQOYdgVV{vl;b zvm88rtTza7sUz1S!3QL>ZJUf^7cNKi1%+|ct+@E|#EM%Fv}JiHP=rHPB-nyHWxXkD z#@jJAi;qwQXcx8asZF7-0}soN7WNK+-@z%B9trGG5YBe{(n)b9i|lG8 zVMWicwO}7tSr5?yOG^w2VESG}(qnv6?4c==5qsJhQu3-Aky`@}JJ^zu7?Sp&H0Uyr zR(ROS)5)JnB~rCGESx(=5V6=;vQR!N$Ol*p<)gBfuE09LUdtJYw~wng$Bn$+yf%Dn z>bGZjaqhQB4cE~ci4Ym*>#lA`>;HAcGZa+5;Lpe%831W|*YY~xNveD2<4PMZPiAhcY z&ejH5z+n}{GLiB%I`!p=EcJCZZ7DhOM!jpBgWj@EN#9m3ak;E_$*ZrjkynKEJo z5hq;rS|?O+B;`2CKL3@zr+)3i2{^v_hSwYM4PC5FiIr)iO9b}bBMn}-P>pxC#RXVs zNFTl<8$h!A_oUHLRbYeFu5nFa z2H;+K?L&gP$h$umNHBp}lYkYraZ9%T=fj^Qza&SyBD3dUR+)wS5q3H*fokfR*)48L z^3heFcQtl{uQLB?HEWh1p@mjKQ_49)u*LWul2Nt~3t_u9@0Jj=eFWEidbKIkOM5H^ z#?OL7EnqYT*E@5zC(FgfZuWG}S8DirUaQb-U#~C#M|S$OhY!cag5H9stq} zhx%$x&#|O+Jj=rwRR{YDSP)J5V$tRl#)3?+yS&oyjn5ix-P{S7*|nqHWGL-5*7)SR zsJ*r3lxos_-nFaKT_YAS1`<(_`{=spJ)*&>fw+2+RKBt#s@5-jC83s>(!aj)p@KKI zZW-3w-OCms2E-x#J;H&qhyNA9Xq6m($m^(gqQD!H;92d$ zyCXT5xW2@Q5-c3KawJ!ei3aNf70Hs$Yy-{O(-N%*KAJ68Sv(jH<`R)?M;I}=s;!=h zooCEUZrqKV%8w0P=r35)5bh!$*IDQBfsS6fh8@WhVNLP(!~CPwlCG%;E% zGEH1(mx=k&QKF47P4pI1Oba(-fi0A1mU&|TQDp|Pc5ZfQ^}rRFG4&PrNBa)`LwifB zZ-{sct4lX(%@f3`ck~`;y(&$-*Lg#$TKBbQ)#$wUR0ZM=x9k-HZG3zoY_NN-y>n0CaBhiOA(+bSWMs3zn!Y^hPzdw4uGheKqe z+Azh{LMz@|FfAsj1=VDeT5u7{2tsIhdyrn>C0GfxVT02!*s52t6UM3yTb6?DR%s_4 zZM9%eA*)>C%{xc?LP+-G`mI*go`hTM=vqDJ}sBguGFqHTtlbtC89P;&Jx;K z1yk6H20Bx0A<&rcoS|ee@FDwl*skEqgn0}sS5}N zyT0Xh5R6;#9LthpwG9CA+g6Yv#R($>k<%1*tZ7emy}xTfWXyK+QBUF{dg@&bZ?0!> zGYo^$L%IwSg02N-UH0#9&mm!OBB^41x~hXt&*4XiP-x|@cT5hC_eQ8Hevd(956fy7 z6e8SPuyOt!vaL-e_nmL~7pnLh4@A;c%NuW;(u2nZCH(sEeC05%>V{>$7ckC|S2`X@ z{hsku@3mltFv`mXF`PS4ng3X1HkETndAnN9HplIIc3!fcUFbm`b17!V7Xa%z2=1Z~ z6IRzQjDJwcwqb%NB+I$kisO$2ePs)JKV&8O(1IaW@uC)KL4o44ULhn-H=n}+hoe_D5!@%EeLF z?Xr{`>nH$ZM-p>VHE)5CyL5w~QaFj@OdSYklZ=ZwkDzOySmP3N^Ad({S0w7Vg+H*8 zGMM%GtB#LWv$=jpb0a?o+H@Xl_WqP!aTm(UbfW2f<$6%(#~3tHk_)!t#uPrn5j0x< z#EV?Jiu{xpl-xz4cAcsc^CMw zCrHLoo$-^M)Uf`568uUuyNmZt5W}PZUO~U%)RJM5=4#-%gRs<3DzJ?MP<%yvphVEg zpn9%zcF;;8Xp2i}#F(RJIUOz1I0j)x^13mRhOP&5TpoCha6vzso##+w&>l#hrwIvC z-(x-Sa#1I^zQgEwbjJ5Y?M!$M^bWdMuIhD-`y*Kf%3OEJs`o``kGPBc^(I4}a%)w-XUtR9YdhH*yN;MjY<@_FG?Jl8vN$7lq#XP)ssQdiml=Q#p3hr0 zQ9+<`$eKUeE^b11}}ND!!=v^>ss)`e1V`Teznrgc(x#4hrK&(Tw(eimBI-y zY5XZ_{Omab<{1sp`MU5$Q8zrRFGm+wCDe2neSWc;* zouvCU-fs?2fh^WFOpc?X!9gsQv4E69RtmHRR!S0;t1HqvRw?paq@NniA=PjSUer)( zObTsB`Ap-|P{Md8ogs%Ex=zC>Ca?{>ig6qKtxW6|#G^iFL?tb*RZ9_vLKXM1=boHj>Dd^Xb|fzgN7uN$?hE=8IA_4;d-`thR4ZlBi`nrZK6s{CA6VPeZ(XSU_t91 z(#OR?u_c!aY9?({e+k);xK9mtbnlwgpMopW-vVXL;M1Ou0seRB*+B}WwXf5|u^Be~@JF`9|*v>c4S+GuN*B2+EbQMJ}dd`PvBq33i5j9;PV z65VL+=(<&Jh~tA3$fLO-G1=ns5y+p)^4?Jr!$ zjj+gpf9E{sAxukLl9zl1Tq23sRsIQ0`HgY{^-TX>?i&57^mYXiKHZ$n7z0RF*;?XBaU^O=|TnaShN)H^!I4g~jwtZ9*KR^zJ2D+MEN{kv` z4m%WykOC#Hq)5ez3J282^>{eG8Ac3akmN>iKluqu4t5Vv2aVelhhvB(eR8BKW&lF) zl(=bh{!ZUQkje)4BD;xoaCy9)ZOI%wuAl1*&LRxZMoOU~6cP+vkO5dxwa-2g%SFQV z#k!D$lUn)q1^zJJ$|gXEItFSK7kM~!?4Ajs2-jm)6oSZ{who!#%{PoaZv5E> z!q$f)kthy9R#FSBJoA#UxAgswKe?wJdkE2W>9*lvCm@#0c>hC(UB{wr2!evuh+Zn%F7k|l7vRgcEyv)O)`EA&>qM*#1G3%6Bl?& z^%0TQ!SA@gudK$4b@~VWpnoBi?v9YL>y*W;oF-!O8`4VolhY4fGpog_^$h7{SZ@Ho zk-$?j^Irc*sVdLj$x_oP8Dv&EesdB9=QN?KnI0Z zuf*acDV{HmIqiz8?*w|%wNF06bfuHdsmU6q?KM(!QC_3`W`N*5NxT;(#R2=N`7 zZ2$mb^qPITD9@7c`7W3h%s%IY=qz55<-%Q+SWNsXLO2K{D+}3OWR4JH=MreX%A^)v zN;uFpTQ22=p}TL31&t1XB3v|kNsA)cpqcl30;6ohUfL|8o)>CSzF9JOl z*%`19B-Wh|u~D$%A)-t%DgbpVT|Nh5Rj}K_vn$`R0PWA$+sN{U;=z9Q9jq{Hfk|Y6 z>InRmHmhUWhiXn%nvWjE2ppad8>O(h$V*d=QfL_r&u>UORbbGa?%TWSav50{9I+DKTD;UJ127tAB`J6J@P#6x% zS$$>T(=gxV<;9g1TB19PUr$CAkzW}A;eHH&P-qE2Xb2^@i=C6X5Py8xS5ySIpWgV7 z(LGS)B^it7jq5eaMClWz-MQUDJ58*}B>du!AY!ssq^LhQkb+4@7I6!!3k6D&Evxce z9UVcLu|^6|s%iyDg-{U?wc8@mO(ELOLqTYYygvCfK^JZ_nTac`Ky(`(GYZ$T^+jW} z^!Hx;5GxmUA_{ao%#&bu5u~}ISgN(-Qx2j*mT1-41Ki_W?j1i%vdj=*VXLic5->5? zPJtBAKv{WfU^GLChHPT|QJq}}6BQR>T~!PLfpO;s(hH+CtXouF%UoQ8k-z5Wa(-+X zau0@PBofw1?Nx2l;#|SWVr{!Z{>EFVfkX5-g-{xT7n=e18)<|5KGk`lS{Vn!cUlx> zrWL14~!QpjFChQm!{W=DgY~UgO8U2_{3NF93~HK`;fETv9V}?UbI&4f8#H)m^%#b z-q#Dn?JFTfl(?tM+2qzzaRd}o7T>QbTgGe(Y;*n!0h$a_)G)u!IilhM`ynX%kXSMOU_5HVsz+py z^yjVGRF6J^W9&vf6{eiifO2b9X9%u$*N9oJ*Q06hcZzp?*L*;l9TD;Fc`f9CQ z#mZhi6l-%F-n>a|M-Wkm`#B~MNcAIp6=>|v^)+vUzIVhAE6^txt=6QWecX`5rW@~I z1?)j_hwx6{eV{HcN%$0)szH3s#Cl@dQ(Vx#&%yIy?YVMQ2~O|v$_}{4-O9g>BkuT- z^i@IirvNahes8r-nN*1g4wvHwPv3qcms6gvl zR3bkEX9m-{FjH9QJjq)7KH=QXF{CL325B3hDvef&Q^?dExc$QODB9jCR!qM!kBa~e z`u6d~Y2fqNNT#ZcfC(Fz!Hp&?hi|Gp(-8rH%={q~L2%@p*NH&m3=F`EyJJ_*xSs(! zgcm5%C9#S#x$gtU$Y(u*M+mW6@tle%&F%?tWd3e%CA-jl&Fn)C#e7aEjkyZl=lEKW zIufD}OBu>Z9uWjcQwpWP3ps{s3C^x^CA1l$|DvyoWje#3FVp$&LK(+PmaKK5j6{Ae9!e+z?T5%iIs%L^nDaz8a=?9juo9_ zv}xEwsS(49@pF!II_HoWtF3^97-$SZj1wbX<#MC*A_y3tmIJm7~KQG3nRR8H_;s7~ijT+q#xfb|G(4e_r7$d2F_*Z=Rxu2dncRxK7BN>^5rQld$4lT>jS;+~-t3_6HcYl0>c2s{>Rqq?(@otH| z#4gDuDxXUs>mf-424JSbUTF?S2RIFPc+i@o~WUSm0Sxv-T$=y%{9fOENo$Qp`h#bJu+X)VsNiNefa~ zOB9?Gi6@p9;bEH=iJ5v{Ml5<>MjD^IjI=#@8GTu4ne)-g3t7LD7qVU{FJz@sR(O~_ zeZ2iwTIg+>)6&Teyo!-7n$8Ke_CaEi7Ds_Tm#5lGbB|LLCeEN`HQJ!yc77Z3s=@Ye zwJ$-$%bD#_AU3yOWv#GnB`EA(2@0E7g2*?}9ERTJyqa^tYpEAEy{s4aK8JZ<0<+PC z6v~>x^sroLf6AE6rbLss8_!6ya!Oi<^ca(4uGy8R>Mo~+EDA&c_w-c&0(lt_M_mTQ z5tjjRv}HgXX&DelSq8)rRso50Wq|x4Vt_nV86Zzo1xV490TYch_SS#}iZWnwAzJk` zJrxxbax$R)ac4DLoK!O?A$R@W8&Y!Zh-vcwK+$dv01}SlVZHQ!-!|J9|L@Dq!vFIM zzM}{R?2zeK_(37m)_V^E3x!=eVz15{RHotjzBrZ6mi&a=NEd%zl3#)xE%K z{yc68g51*0_hoET(lXuew=efFS6@BA4(^_|2&l-71noEpIQbWOT^zUf&uHomB5HVo k`TLT0#|00BZrh!BbxkS5ZE2#J731wsp&%`ro5O`5CoO7&Gjv$#X*<)Scj?4Nr>3T{ zbz*ktq;pbr5>s_(0YN&u(&BcQ%gML=k9R%_NLqR8IG=2ZS)x;oqJy|e>1Y&7} zK*Pv?VrP&}b|eUdaRz~M{$UVi2MF^ILH>K+;D6+Q_Wxf%-}!I)zsdjj1p?{(5C2d2 zKl1;eg@Q;BNrVI$@*+Wl|Lpw7uHk>*@Q?Z5VCb9!C6cWB+{mpMCwu zpZ^nbKp^oyJrw`0umIk zfRTrR_%OmWBcn?a;i$kI>Md&nfyz1!s+3I#XEyEfBGPNQNCRXB?Cm?E(1MBXI+8Bk({Q_*a@(PCJEnAG`kUl;5bt%2DNd@cbmev{_HbmH5bqvWjzq6*${l<%~?s!&Vd zyH62|nF4u1{sFkbM0*y0CZY%RDTnP*x5AOijApwHXsBV%nk zaH|Q#Dntgit#=@wl0$KPiEIV6N98M|gVq$L!u-jgp*7o*3**rO$n#UJb3O7fmA~ z*58G24HypufvCVZK4w7zL05J6*dOKvZxC81G@)jh-YqZ#c=|Qop&(y~&Mxn5ZH?-e z&&`rHQE?!+F^#TY+t&Qyj(+-how6{FLZcNU@B`V8?<5)CP~n@(8&2*&HIFh!!oDU% zQlHqRI4?+)OLx_;Q+f+C4@-ZoM1?|iWTqg?_}+Km*Uh<8ppZ9gW5LsqA`0Sv(NMU$fW+wX?`m;?9#bx|3wlWv1f?22$T7OQu-SJ&`b(d7c$B%$O*ShbSs zy6)o=ozhTZnOjyD`$xl{T`V`2nadRvHU-?**y{ayYr@v#7HnLU$*#knA2Q+7USSO7 zLY|vFec%Q4=I;)WHlkeVt9c|{`0E46u$?)QO6>-1Azlc*xa6!^L)4;zXa&n0gur#| zLHuh)780excBRHG!tNO5_<(xKxQc^+gSPE~m6hOa!InSylwP^Bj(&;Gimmnr=UTvQ z;*WZY{q|lVjz(B7KO*Ldrta@!bNSy(p!aE!tzBtS4DW6M^csoRlgG&Y@<9Q}5F_zk<0|N_hA1#H-a#J} z5L7T4Q*+!9U}j+}^aH;HeieqU=NYKNFoFZ>o^*0A+wS{-z}O$v4eJM4ST#c=9lQbh zC%0T=pb~|U^`?)xg3hCVq7C zNb2<`tAY|IK7yatckV*=6w{&#iYAn|3LvR)zbpxG+9Gx^R^L)mmO?PBi+y9<_6Kmo zlM`rp-%SZKcZMF_y^^AHkr8OSI{3W7)KhS@bi$`2tFJ546=gI?9^f`zOkYoo2`j-~ zpQGH_a$ksSy3A6DLc>++!A=k*rNZ%8oY(hj(kTJp`-tv=tn&e;)DQs+cIod;dojoK zY1x5P%1+mO5$AJ$*E6=b907>BUr7i`5czkoY{+c2ax%EJ*m~ZMHJ7ll1+nAevF=o{e2~9C^eEb{JV6;Ou$=wuizod5L)js?N(rZJ*X726R zVpqZ2iVB$a46jNZ!*DH?U}@r*TVJyW(i-?!I08eaQKK{()K7;Ba$kftw0$G59Vz zpVV;)h&Y<}8A>W+U{5ekp4)%-qyWn?d?K_(*#Nef)*5#64o$BPCyx_9y#Q1Wjdo*Q zM&;4cvkyV6iOOYOecpPl*lyctD&X>B>K3jFgL3ufSr^=Dh>4@6d!M}0UrF&EkReCM zcre|y$Z?NP_cc?L0GAl$x!C5R6ijYmJI7k!2B-h)XG*vMzM(?!$J{KDVYPRN}0 z(dJ;abbQlTaaCthii?M*!pnMp9q+U0n>fxB|0o_|ZO_ScgD|BBi;cqB8jTRnwhxL| zRTm^Hrk5XSEw|^Zz^;PT)!gW=~;$^w#&I76x zm%OJ#a>LUDb)-B!k^sf~)2H^!ByCS4jD0Y9LTfT6H}e%c4hXg(u7;7b`GkAmom82l zMpqWjxM-T-5=W;F?Ub268zn&&3~^e4GiEFn{ZLT~yPn$`xgU&-ywZq~apwQN;!DwF zhavIDds|}G<{M3UAGAKehu-<)uj?!&Ijwa((Y}}aMKS<_&XkSHz@b7JosIe5uSVN|L*zg5piC=b;;BUiE;g|@3@jgyJWNVTi z-kog6eRwMUpqRY2Eo_^QfB97S)@>~%X|=X=&+2lyMk3mb++NhN<--6%xENVaY_s^yfbbVyga(H&tdgi%2Qe&WYZ;meghybtVnfh`kez3GNZ!o@#7WbsGKBL|Cll?qM~4_)_R zYXk@r=_#5QT9Nw-TQ5B+IC?}lrL&zLDUB!)B|2S6SV8au9{rm0>XVT|Ma2nr4r}z5 zQSMM&Q1&6=^6He^-ZO<6F*0tx_T#=%hN!JBAlb2cJ6gBy@}8l>W47BT2Mo@zZ4TaX z&zqS!(r!a4Hd0{z)>`gM-CDLU#f)~P=7z}fGttf#ysPL~QY}9#0Xg}^2bD8_Q2PPi zXs+6j|HLF6NyeZH-Wb8pu9Jsr#MH?aY{jx9)4eRE5nIM6!2%n2b1>dF5#w>d4dflv zh#+;4eAH~={T%1@6J7gviTQH!Aq#rWoKNIeg_q!V>`mWT^Xlu|qvj5{Z8k2K=^E#S z7x`&6$vraVn!#%ReYW*YMUChyC^0el(9Kr`?(g%ZT)!RAsn*g~@W;()&A-bFY-Zg@ zem=Tg`;BGKT|3L8c4LW)O6)o!#3q*K1mdVD-a4dhn|L2Tf4hklYl%Plph6Lbe#5cS zPMg>(nACIQKUKY0c1CZE$$cbDp`)#Wek3GnMd_Xy>g4xF7H@c4AkkUZlUaDCwJM7) z>YdATT}>erpxSFJr@JNh^^67XFm#(VAT4{#?1l?-8}UX7&)t~KMZWy zK0mm#z{=4<0|rHSQU^IE5pJh`0>IvnrhPJq$f!R3z$YJ{qKJ8P5iveB6mQ;eEY7kqe0sYa8|mSL&8qsb$lngaH;@h zsxfs+Epl-9;iPU&cAil-JVNWX)|EAp%9T^V-ZYi(K$5nO^SD$$5FV}K4|tEYYdC4J z0CEeIZG(hyGz7s|vT^87Fvs8{4ARKX$hhMKXQPn_wu}@Tj^scYJ&3oJiu{FO4ON*J zNhc97WlH?z?b40|ZuCXeIjMZ=noLH0vCXlW493FM^O&#{;hs{oIVmbm!IpuuOYluW z+rk$c?wVV%M7ecyD`sro{t_PVbQfpXA)Yg4J^p4Rhw6{^TR@@@g&|So*V=$)1 zr)(a3;cW0Y$Pt?X_c097lzE8R+M5Xm>AG$Z_TsK$2U(2=xdEVjNRa?i;s$3qpqJO= z%aZ9`ltOU?Myj~xV4I5j&^>T(rv?I2kfDFLL^j0=TW#Z}9Rsu(vdda|(jqNWT zor5eRTNEE|Oh3oV+QrJ2WwAA1GemXt+B2R$qBpbG6bihdrR@vIFWHenK17r}328Hd z_K^QqYcaSjz(ksLtKSr6?ljUme@oV_j>~K&9y^!m;o+A7$o>s<>*Y;`O7|H!?;RbWgGr@ z)b}Cc1v!R`RRIYe8TnD5@2_ZY`>6AGxBtrYh0+|UYhPP>7Q?5tz7K%hYxkq_rFCD> zgcfPhJwoF+rr?9m>Jbb=@MiaA zgO||-LwV=Uc1oj*I#@XZ&k)cjwbvf754Hg&cE@g`O|Amzgope5PapO)@9}b}aw(qM z{u6K%_`oIjEzP8{VS{Vm-2TO%AZ~VEh;?rsQqks33(1g{_rPkV{eUYMfLp|HtL ziJfKNao_bV10q|N`H-khmwDD2ha@)+gfUNNnO#nxN4?2=Gi$B_wG_$n97WIW_~oj} zuMh|;Eb6XxVs8gHgBpEh=ZT|uuc#v%gRFM>Z=_Kn(M3eB_VhTP^SD?6jL>dGrlJZ_ zKxdNPAttn<(e4ET5?av_VGtD>n1H=ir%JT86aHulz`=tCb>0D3u%XVaYFFcVkhjKM zM2LaYkN(`$kL30}gHlIN#r#O++Ttv(70eC`atsCUsIE0_UfTnRbJ!UdC#vDy=}qQ8 zuLSQH*ysiJ96Twty=oEU9II;}%wGh30Hxai4403_*}Cyv@$`hvQ?5`=MtVz;*DI$| ziZ%U!cpgGjc2?wG&z5b}u*=7uQuomy97Umx3k!yY9;qv3 zu}{HbKF0R4xUc4{l(xW5QO2WU*3+Uo6X+LAC*HpkpV@<(7`OAzPja0&Gm5{oz`cWb zFmaR!Kqg*g{rGdQ;4+HG?c{71Ty|h|eu;@AWD{;`>zFxjJjJmQ#w3xiZI{0G8u!a*`=}M`k7Gtcd-WhJZ()& zpB@+Y8hm$U@X=B@ByRA0)3s7+vgy6jnO?NR(T#@8Hbm{LusWvlcuR5a8 zllr%H=Uu!`Qll&io4Ky?(G&nyAWvO;bYJf*>ycQB$gerdEnxDBzKwe*WXss9hQP9C(|owZ@*`+o2q+)? zWG0^)Evk&JBN!^Z-{yoplK#a>BA$gfXXUbx0?d;@8BO<|+zdT(tQ0Oz>H}LYJ7a^+ zNf*R1nqT6YX0W(1{)lS`+8E@IBQdT*U{M*iT$N@``8_&}H**J$^#z{s3Tje?w5(R2B z&D1yT-^G$K2kf7(blvO(m-n57e77$@k5e9pyt@C!f6(e;%eC2*eGcGj?qRl@Hwv%* zc*q=Zj{>EiYM|5mjyZgbdFyP8TQ69C&h~m&TcmUlA@CC702zVN>r9Nqhup`}<8{Mo zzVrJ4Tnlne0WJ03m6j6s(wwLE`(=z{A6Q*NU2W!shZ7cvQ# za@sH-_E5wA8n~ijV=jTsgQ$|!n&Cz;TY>jm;f9UaF$V_sNu$)y%5Q#fVSjWXS@D5R zEH$J|OZjrthPIX6)C_4H+|`X_)<_JYBU@P_CZYYgLs|{$ah1<^j1rgG12H77l5QV$ zb*!r0jmbAYd2?A}o4`&+w|gLYt1@h9B*muWeOa#a5Xk-9PldGMzO&;WArDurQYC<# zLZCt_(}{x{5s3@;CT~9RF-poN+As_JD@+X)q8PrAwrQ$>j?Iae`E#lTeCt47ft$T7 z=Lm3A@9Nv7`*PRB)~wsK{@KG*QKHZ?zPrs9Q$OnijD*=yU9S< z8B=ZueU07WQsIcbryw@)dAY3`b98~hs54Yj8)6qfr-G_WkLT?}LIiGA5B~nr;UJ~q zfbPn$uF~Joo|GF~#H-BJ2wF@0$f7bFPYOu_RZ2GK`D@jMeY8bFU=FEktT= zro{_x?92_dE9cv)`0rnU9g;qXKCxeeSJV60^!F+x(-MeZ)kem$rS?S-V(;nz=rW}x ztd#dy}=EYR8UnJmTbtKF=ZM^Ii(prVvnDCN!mdJB5HW6$}~NEGpM;?ox_ zY^99+qg3haUB)Lr2U7R!liBxO<&Bp{rBk~=S;bY#x*;~zSC98{X5`}4?d`P zzDC903wc<9;6&B*CFCo4_sJ{E?MOBqm>9!KZr%BC4ePieOWzSJr|qan3cbq2IVveQ zVr3kanW|;?V-B5L<_on2SXn0T%W!Hn!GV|M9B zd(#~E*9dw0#lLJAN0ZmNuTog&9C93^!jU;ANJma~jK9sh8Q2ehKcMiu12?e1y)6jB zuG>5pv#TH^l=7xY>1vn6M4R8-C*$XTiEdtfdtv$o*P89n zGY<-PL3Z~z-Gg(uG8Du|!6nWf^36u+g2w4V*fD{vfL|cfPnGqpT4v+6RQM+2H&mYj z?j9?-ce?W1#>Nnyh+BHjKGXe<0GCRUis)gqBdhta7Dt@KfJfxQYnfXHPqYgWU2*nd-9rWac<)!NCa9e6*@8Ev z6v>P9Bi*&lHS!aEHWVY_4mr7R6%bTe&T=<|tACTe;qKN zm~b!Ud&)pS!BxYtu_wu>ntVkX$e*(^(yfDeL)ynzc@GqJ=&8r3*JuWlvO^d~!#ez}K%-zmFE; z1xe6D+i|Hh>SSWy>k+rGw>BvHXNo3d577>VAjBi9FBp2^tx>v&9!R27q34Z=?l_vp#JoS^C~UmwXCdwzFd^T2aVP?$>v zcmlS~d@~X4$EM`du8$^A#Tr;E=0?3^_;26DD3cy*Ka`$3?P@VgtROe2)^Dfoj=HI# z6D5TPPkBq=t*Z$;FWm=-zB2532eXa$DbBcKNoga&AGR0M9_^RKrN;Gpil7ch3Y-qE zKGliiV9GKuyIB0^3<|I6hxd%4)R4_t5?4GC;5 zJJA)9#VVS*^V4gU8i%a0rH1iu(#OwtF}L4*ILM#l7mC0qC|47bN&PZTTG9=?M4s*2 zJ)<#-CLLp0tNfMzX)rNgDE;l=@I2%>#?wX`5C zD=MoU7U`~yTKdT+F3@`l+_7K#xT53A$F<(OeOOty-DJk8Fn@RL@_1S1-pu7)CvDkB zmvtG^HNA=F@9qxVnJ=Z;OYUPY@NEvS9oi<X=OlPu;QZ|aJY_VSz&Z7 z%DJ+xb16HfzBKk8yRh-w?=0&3`$HDLrP>A8_7sx%3;adkMK>VDSL$+v9LqTbBQLO} zPtNa@w35SC)29R$J_V!MZ!H-P^c(PLqG|u*CYm^fZs*V*!T z=T3~!V;zFd|F$=4Df3$=IgHIVp(Dx9_Zw!#DL9=+yRsp!9#gI{FM5MpH`;9e#LC@O z_Aoj~d*Dvj8&9v-4F}PsZ&h9A)kE@qzZ}_+_B{ku$m%paRdm%N#`%%JF20&*^cOE9 zv4Z@P9+pYF^%r)%c;k{b5&26-Yc5-n;(63#&=l<5qM2u{wPrf2^~-=v& z$n!f1B&(sdu4Fb4RTjK@G>W-T9C=hr*nc5P zW}&yFa!K^<=ZBw9eqL;=&I0XYeqv|6*F}tOuvC=JDJje}a5n^G6|TqrQaPRrHi;3^ z;U;zoUX4Y4o#P=rRMh=I2-wkU6t8oH)`v>ZXs|lF86}`!CLo30#?DM&Uzv{|J^I#o z;i+VbsqFJ+T#|b)4?teD`Ve9ML=Ya{Y4*4;^IDvoAhJ}ApC0({O!estij%|4*?~gk zJChEjqK=WuOsgV8SP8efLr$2;U&umIlgx~8b1FmM{ z;1pyieZA>*v)3xL*|Y?(GztUz55#iRbxZX{nsAt|galF*LJe7jzoHE{OoRS>3N|Vq zO&$dMu;r}<&3^XdIB@iqZ;B7WLn9#?B$FRe+r5w8Rt$v_VlTJ7^!ARFInw{- z-Nbh{DY!!A8n)KOI`Pu>$8PBGhW$g^c?f$%_r_SZiYQGvdzVP9#F`8XG)(12e%s&5 zNZa?uhGJFRhYa`>ouljYS?z2{kGpUB&y5Fw{LanH_X)V_>hiGf8I9g7=o1GjSo{9< zOR22@nr`T5Id^2pXFYuUC(2Uf(8|{NEMLaU$=%s&#u3vra+RU{3l`YK-cD#0%fE1n zx@m1OoN%bHustx9^;#(9i;GG9nIEt%4di1=5n^!YPMb$WJ<>UHa9$X#ur%M zw6T+V>DD8tv~Stm-Q@sn)_T@!dQVyA?d?A2S{71)ZEk(s&0|YekPd#2=OfDm9j?8`Ly6mC^I9+Mj(bM& z^atdz{aWi&DMA=^RT%rn^eFJ~)%cFf?*fzpHOf61W*VdiNq;r;V8NsLD+qGfd27Q{ zguv0Pt=sWH_LKg)6Q3_Jyo!f)@{PY8yMg4uE+I4-Ue9b6Q5Xwj&*TMdrt(a2Z_W=e z2TO}4b!$E^52mGPuijs%r5{txf5Tyfn`g7M6$$z-11x<|WQ_)FD*8ydbPygG+CWe; zomBax+V*SpBul0bc)L=U^Zxv#ZzG7~yiwsaHZ0Rr~wQ^exTf!UPEV}z5tFN(E zS|;mszQaQO;ZE{_Kmk<^Ux@XYkNBGjTe7R)mg!-9m;KSb5nDll$S0-V&IDV|lB?uy z=Pii0;E_9;m{`_p`vpLrJnkQWm~w0O4KsNV+l-Wt{qD*5lklE8pA8Fbtq@(*?w@Ji22xzmet3m7Y- ztL{(_bIXlDr+lLMRXbb_@v?#^AvMh4To9ZitD+_i5KD^hr0PLAJ2A0qvn3YG5>5mV zw7>Fvn`mWRx8JVIX{;AJC*K^W$X~03@W06iefvQMQtXJ+fOd{v3uI|r=C%~u_@%uS zf3HGlV)wb5=W2mw@o}iinrz-t=q7lt=gA(Vmg)m1Q^K*`u&?IPBPUXdoD|P)I!$Re zZDG$8L?Rjxrqd%u)sWSTZ~V%Rb%18&UhR#LQfnh2Y_e+%3O}9ly1l#UP3--8S}p!4 zx>@8`(OM@jih}KcoT|N_B=iVGEw|)OstZ1$JT|h{&kl&{Lc)XS9IqJVt1jvyoguDw zXIea6A$A5F`i5Hb$W){3DdoXL*;`V<@IZOXzelMXJT(oSywI+3=W>xoX=!Hx#s97N zt;(}^Cp4yG#O8eopuck{Mj2M^1%7);&64StUhSJdK$|WJD&(?*f!g=cg2ZPJ#wmXp z^I5o8GG3@bis@At`N7kbvcGIN*>#os$$oReZ1#r@<_<=`y*p%dJ@WZH#+{d&;UPx=@i!)oja9V}g}nLXmjkfy?PLfyJXuif=JCJ40g zVPiGk-?8!WBhpbhHqP+JsRw;XWhtd6UH~|RU-=2foo)#!ah}fsdFKvgp|-}4t?6~Y zc2M;?hv;7^@)4gvmmXCS?2c&h3XMW#c*8bxjs)&}r4yB&(5Kc!k}bI{wu`Nmzfc%G z9=jUSBDc_qBmUIRij5aG1in8*{BAx~*-!WJ*9mh!666yM zCWikUo|||Dlb_gHKDA?JcG14)lD=8M#PLgQ>5ZS^Wwnn1?DLdfw@djq7yZ+-=hTZP zipIQ*zv^yFU#~-rR>i5nH+9fQ8vP11amv-)ufG(r9>7YJ315|GNejbYHJHoSTLJ^wXF^?^_%cBau@l(DDQu0#7liB8en=z)2=1L0h?xW~l zysyL~`ZE(ir~4+F)2(&WLX_IXTfaRKfT5jfhO?@`;eMzC zoFw=99oVO&nqr%-*;&(W(_!Q*2jk3!#ks^Ons&59_Eo%kC1Ds_sy!4>BKj#`7lC{m z%(J!hKct$v*foLnr2DUeOHSGj{sd#TV|iDX!J00+8|0bq9_N#As}CxZeMGO#3y_1e zVNXvzE{6|*Sy#QUl-=&+tj#Zeyh(#J{>h)Is9F5e5(M1Z*fF9DwSdQ z@ezCX{w3a72xgdv4`{&rA4^x5 z?W2KdTqsW-lk~1~>)w#ND>_0MWmC7m{id*``!P{{oF?;Z%*W|tc@mZBuonSfxjsMd1J^urV)CK?nFqWNXx?uaxM1Rf&f|{zNcDViq>bJ*3hW2(Ni(=w8$>`B_}_ie z6OV#~V1g=bTZ`Ed7w(}P7)_f84RsxUiw0ivTOH5G=XUmPPKo?_k0aA<7%eqLJ-U}o z3`z#{VRkD476}?4$c?--J=D%O`sY_Z)b5PpOSMoYk+Z}>%3xQ~;q$#G0qO6)x%X9E zHF7A)(N^JO>eVllPYA+m#&YE@OBEU291~=wgg7bDam*;dS~8e$VI;OVXD?Egt*Ogt zp^mI89RGgtV052F!j^GT8Vclh*U5R?tBp(fu4Qce%P_>RXK@G;p6HCU=}vGUT;Bw| z?v|zG>tfc6fk2~A0mWKL(lnXjQL`uBSEGysiFgjCFmLFF4{_(2+j$ms*-I49>XzQ$ zuM;hc)8a7c&o2b(Gz-D>0xQN4)hcACyN=r+hwa~gqHL@a9o(?--Uj6KGq@;eS3uwo z`A6{Gy7S@hTrzR__}0wpaS8ENZ#BGPF44!qe>FhgY#O2oD$n%>(yDyMi`g_NUasZE zCB}_?(R-s#ZN6Lz8dCsUX;fU4G_J+!i^i-50-gl%PgN9lC&fBiUsBvxx!WCfdeuqP zRD1VH!_%xR-@?16cN^w6SdMbMlJ&MGx>Ueo_8R*9Fj{a0o+X54ds>g$RPFZmE*%ng zIR-GP0p{6AA9ByZCH@k^?wyL2U^6}u=|vtEcoL8LI?H0o^Xz{?|BJZ`eB%GfK;Vfm zrQ+D*(X=>s(}R_1)^3Sat7;^&6)F$)@n41(=w=Q1o|0&DLKFFl+zhd1Z?=fpbt|3eT^5u_x5sJvL5J>oEL!EU5w4!?h?(+|0!(?8=eu z44tApsk+KnJ@M{_kYcb^hv|`34C+T`p>=vnuhT(*-=2iH`rfchOEOeasP2Wm^CRU{ z{g?}9vvB_YTFfwJ!kwQiMg6GTC1FDJmn$T{sFMey#-;189N&Lh_ISQ{w@7Ni+kN)F zrm*7WPIkJT&?pBjef<~cdUz2f|HK$12Ndm>698E;-ty(q3eWZHnNg&po%%gzB2|!E z0$@1s{R$*l`gN+okTI)0U2?v*9fIz_Jg>mJyj?n63|JUgrcht9vNGe}$sPIl(<@c<9(Ht|_hiZQ1B3r}kSjK; z=@JG`lczcRmgsL9FWDn_Sy*neneRo{y`j><^kVx`&iRxjDWvuvw+BMPYP)KzANcX#;Hv2Ic3$$%7Zq%$^0I z76v!IJD<-@e68k%k@kghPhe(P+o>!_TYgm*Lh3{ zPBRQg5_?@_P4#CZvR8jZt;%?X&~zhoV2)N%gy|PIKW$BmKq!jO6=ljF@G6SD>oM&m zC*S6KdFc7bYq42bp4TJr#J^VWVvI|Gp3$4ap_7x0tir~C=Vq2hqTKwx;N}%0_;PU% zptwBDa4W&Ouo}G^afF%2`G4l2&>SB<&Zv2-QNzpgx$lioib7<(vGns)Jdvm})HATO z2P&`8x9npMV{5RLcNawrhvoK{dhrLrB{pX_xh#krRUg@+NoB+Ly|L}7qFl7S(rFLc z{!Wn8MYw$}DsZPTX&jGtkNC4S_?DTLaARaW@7oo_fSTABjWS}yr98u9uzdP&Y-CPa znbRTCPS$9`w=_A{pO0sGj`o&f{aQ@jwcX9%4YWudRs2ZDX}>QJNwvbf;~0T z33nvl-95Pqg^zXpZpm81bFWG@2{DR+6L3+K)aU%`=V@nMa^`)t)yaM9KCoNN;X$IC zd`R^`w$Zm7Jw4}l(mJ-|5C`uIrj%Wc`|eqHHcU-nvmt)=utRmZ?ukN(4#IPxU$@0_ z!K|zN{j(nO#9Q@Te7h+3qM^X0{ zao7M*7eGJK37Uawpt3x6!qCeD7#-#@*j-hBq~3eyLfwdux9du8b!xyZhJDEFTrM1bsYssX_O*Or*@&!n;(5PZ&0h=zP zHshRsODcVEb#)PRVNf@;#k!(%MyJX3CimF&&l};8*ob6_|EgCif(?C*0?@LkEksHs@`zJ13)Pyh3wwz>K~lvxoc^IikXI4& zkAD%GMn);qeQ(mPdS^hDgJ|j+s=*1Lr}u6YOC#h1g!S&gzWE38)r@sL5sv-uN6T?U zC(S;ZcCFSmrUIyH#vf{$YZ>X<@>&~G=M6L_sJhk1lAnqts>3PHu2P1M>*g)Ahu*3X{Li-`)iUJDG z?&}KUHzPxv8kKm%AuXxf;f>=QH`37o6N=xNt5#InPx^w-7V3S!;*+!-#>K)vZtM$* zhWof@1%{NeahLrU983=Mq29^=@wp=bq?bw(LLUyY`&A@7ZnPQKgf8iC56>HOqRq;8 zp;c~#pJ~CA4RKwwNcruuD7!=jvtwp@yNP;>hPI+(2>E9Yu#KHp4Z8u~acQ*2Sy$Br zu&K|EONWL#$e2^L4%RmpO)NhER#9^q1KsDl5xZXW`j%0*5h*XL@$>b+#D97nv^Wne ze+Khc{pxvjA_MmKtgPxBqdTxMh&G!|J=P*Pj5@AYjjXs7bCq6NIDAeBmHqLqqw|gl zH-|EF^^MfPPDje7iU&8jh-0as=i^^+?=)`J9iOr-Sog6{U;JzUhCww{WZxEPt$YK? zV>ds@$epM9-7imQTw$w(8VLQI>wiUR$*@8El#4C=fn-7v^N1mJ+YI|HEkm958L4)$ znnE=+5l0IBPT1V7h0C+#Hu4{+9?iip3eNowk+pMwd|Fa-$X9C?^iKc0jA`~o z!z!}L`HSLb>mQ$Id!@AXPAt&7Z-mpq6&RyxXxjHuW(-a_&W{Z;^_H;uvzg;?+J?$ z8&#b+IS)Zdg9PYz8-4hjDpv+GR&zxnd zUt}Fw-o}g+->~!rD_us#TruvQ49xFeVTB&z#xP{~Ej-MR79rHeU$PTuMPu%Xip!+P`Il zCjz$=Dtgq7g;)QS34)$EPEql^-zRLEp(MH#dTZKoRkyYu5H<(sQ>+CJ0?)@Jp~d@+ zS*{An^-wKA9@nO8QvbLn<(|7h&P>|-bn+X%U$DNWwIl7!2`la1DoC_PF0p_(5PpxF zZpe2l)^*VI5p`eu`D*6^|3+K4u^D`6!7(6l_>MPQaU|ma_;W81WWb0!meUjxWccH8 z51@bCr!1?HVeMCj}vuHPbBE)s|q*b6-1K@F3- zMK;c=iXYx|r#isjaO5|zpA!EyXZTT)jy;H}ir9h&&0ESF84g5$u$Xwtc*zm|ViN$m zzzKTGs!-y3CL~&ue%st2?)^?RzAt%c@_}FdN z!vYSXW%(6|Bf@*Wq$tQ%4UDN4^xuoremGxjr{*I0=-0}{Xwocb*1iW7{s@$Kdy$oA z#30JcI7=NMP%}sAeQvvA+=D&D{qV<{q)v<8CfBi{F%q5$Kde)LY4?YB@-OmCOAu;_ zn_koWyiEPg&xWRE@q67M=c^zrxZmlk_)+`#d&f>7VMFnI7@XCYBJiw)4h;W+CkH?0T{eX$K4~Z^(huCwWfYLwkmvh{P6#1KvP#pxm_fAZ_ymSBn zG(3Q*lS017*GvbQ)l%SjEbv5*4h$4PZBExTT73xt`5yW@&YyU*%hAsH;m(cBM49Ww zA4?z&QoOa?-k@I{pwsNzyU6><(LrjwRQvto=w;Y;bAM;eeN~ubnZ~~vPwS5c;!5dhly`}29wu~Db3fQ@svW2n_Y!7*vQ|yz98#CQ> z3T>K7-AgjbFl3wUy1!`AfXTDC`W!?sGy!KW-}Ksbux@rE|i>ZxMP{*I|5hLaVQFf|w)l4g&-%RB5s%PtUDT5xnJJnyO#~Z){fcJI3N#2?-|n zB=HNG=e^|OTGiVnIj$R*PhE#@%eG|gw3UOM5sCF@4vUYw9{!~NGGBLhYW4r3=-R`X zeE;xHW*EkXVHlP}&d0V)#vCJtVL5yqE60dAPsW^P)I!b`Au5UpMdcKdN<>8ERH>0u zNk>1we?IRY&-32b^|`L+dY|WcKlgoqCZswcQ2x~CJ#>r5wWO^e$(@duv1(ZFs{c&m z`(N@M^G>7tK^K3TXe;cWs^P#xPtuyd1+_j6Mq2Bbn^63jp3Qv*FUjPkx>&%e45YAQSuD?jc2ai|%M6sEAzDe$o zY?|FE*F`zVOlA|0dAvx-V_N+2WfnlTq)#^U471kEb2$4{Gs*q_2El zNZ)|IlfRu1d&<0gvA^R5s`ZvqaeEVskSFS*$&k1WU{Xi$=w$rB(7ig)f#y(c@I0sH)!+zf?kCDqHsy~BxD`mP`LJ@YeDVx^I> z#B)$&)WB`9x$4go)r5Q6`D01_5MS|J$;og?${$qC*iPM_r)D` z;YQ%lKShv??8&f#zmOS@T+o%zjk|Ckex_jl&NOf#Pj``^I$vq|pn!;C zAfiD%Ulxgeg5D-|Kl;Jn9mW2Ls1?u$GH|a;;*+K+ietifsqGaeX0&%{V?8l6vupYnq6OIPm=wlIn7mHCw*nkQAww#^HKL!xZ`9(&!) z-fDcDLD-w8XeKd^IY|2P+HWXH|GN||_VCISx4&)JMfA6TME@PHQ8;E8-fEy}Xdq@1 z`IzQiJSGTBY?}{-LVZ(n&VzffxB8+Yll*dQw4-mK#}G->wO9Y{v{PmIM>X@PORkoO zxud8?(KMedeYk4+dQQKvsGp38ntSM?l!v)|5Z(M4MuQ?jfIj3VpfwT@7JxpbZgqZA zo@F6$HOut`Jm2y3eA9+~wyc_k(u_Ut`6;2G`Of6Z`DB!uwdX*txIS7fR(8`pnsZF@ zE#{AZ0$8PeU2lglz0b6_U9bUEIs{ffWDnwF^5>7$IHsz-VF)#AX;r*l%13}Og9+Zr{y14s>t)NY61fQ>^`-nw`VD z(j*Kne_+|?JXQs3G;Ug)ZS1YRVMP>|Qu2%QAGD}(6Ok&dxg;iEVEcx8wV*H*c)%8# zR1K4Vfmh%IIV!dl18swEwWe07)SqOf!oabjs6#;}-(NiC`BG{!zjxriz$xkJDNX znQ7^IMvX|`i?5~vq4j9+anddk|E$Mf{Hw4@h@%$f(WudYTA@tOEn&Fja-qD!>{s*< zTFX{+No#A~))e!EZld1{1g-IK3u;r(E(=@T71o=bgbWe5X_q=C>6&Do98vSrV#N6T zAR!iays5?ow>bMnZemD(xIKS*!@Nb{S?vruAZS%!(Sx~}|Uv2``jXdXc1u%37WM_Ew|@8kxHA$v49>vw#pNG%r|Ho5LsSbj(k!BUm(i4c#mQ^?s(Q3Oti0 zqybld9n$mk1D~$x9|oHI)&PyFh=2ai94FCj879 zt!{BeNZFGX<&c*|Vo8*X$jK&&lBnm`)5`pp&(OvALEG1aZYp5=KJ1u0cYqW-mOn3! zb`&mzJQh>^205~?+Y_e7BTCf;4agtbe(xvF_X{{AthSO}`A1y_smTTEQe(psx!)*| zeYMAr7IGGno7Y4H4k})_a3Qh?Abhd7WOFh5LTP!P2|#N%ztci2KFxU=VHyf?oBX7Y zsJijGIu>1{oPY6}%F;U-bTGN*FwM_V-OS+6CB?Bnht&A$UKE8QJYttniNIX`lqm7A zeCve9J;qoFoK7Z^rrBqsc40E$|JGthJY_nM=LfqAexIt!nEf>Ht2GLj#?9P2D^aM8 z^nZU8EH5a~!8|NZ8_Y%?8XZaLgo3=UWZ1j1qA)=2Pp;?#D9k=;n4!Pv|8zrBWOnAl zXMN{tsnRw*4*`Gg>&g5f-~$=d)&ZHua)DBQkPl-s9Q<&X%j$YT7j@DR8pb|D<>X*U z-*OZMR7fugwZj7oj08Hio~gTV27?ASV7I-^(fCJOi3gP=B$lphnqQs#tQj*L6|CfZ z2CYyBS+xr+y1wQED(e=T`EKwQb%&)cH9;03#N{EmMIwY{ZfRvztq8o3+;Be7Z{EDw z*ze>^ZM&xjy3n1blJ3^!tKF~|@7ll24q>%HG9w!Y>})`uQ@?dxSvh zNrhg9*_paf{0CiGryH@Zr2F7I&}G-N^g{zWmMz-Qd9PI4XASz;!qM2*ewPK{Dh_#x z(1H3WZtV)mH*?St!S53ukjd1@93zcNQ(i|2-_uy?JRpS6j5+YB`(^!xD(`Ql4TXhY zF|o%7ZSrCLJ?KM_BZxowPKVWYrITfUcLB@7KVL51(uwPp;&@Q=A(w!*iymW;@>(Wd zi(W2x-D~%Tm6hbraJ9v0WUll|NCNb0LU$iV6ZlZ+i23>XStIoF$-a(S&$Bu!#iV$s zMX%`q_7>pWVE7Hz3V)weT6HQMhlm6Hi2K}489-p{2FIF)3|=`8csETA1}q*XlzbHH z%SKfghN61nSLrFi2J?C-Qf8f2rleoHY=QTN?xUHojX4!ag6}b{JA{7Ge6$Q1(65X? zO9R_bbGlg)#Nbo_rJb5EosP&hGD)m*7F`v_nx-`9_w)m22z=mMVBYJc19G?4Y$cWv zaAC!S6^fp!8gXtr>lUv1y?`hR^xJA|n+vS!VB>s!|5=tg!EqyrIqY7>-OZGX`;`dO zd=hZkxf#UTrcn41wbC3l-E3KHK`q-@SjKX}`vM%B>WssE-VhqJVE|)>H@q8#bNeiR zNUYy1*(&ZjO@2cv^D>&JRRkIo7rvJB?(e=vBp%?B&ppJ$g|Q`=TtmEbj{8u~`Z3P? z9zt}_a2x;uAg6}q=QC~;ysHddtD##t}-D&LvSI9lg;W-pW%4<**~hwB-arp zMDvz@o$isKpPux*%&;AT+<>`)scL~EVu1B#?HPlXQPO<7VsoSR@8kzKg2|y4UBo9# z6&=g6X#)1--|Liy{-?l(zmL9nIEZz2F14YuPz_eH>ratw_G5-b*D@HDvS5Dkx}w*w z$a&FNxt!UqJ99Rs$y_zaD<{3Sglf~VZ#}jE?-v!>=8h6{BfB`Cl8v5p&G=g*s#YTT zIE+;mbUdHmn6R3u-xU|84$JIWy-?9U#*<9t@r%`cw#R*+EYfg8b>x6VOI8hK70D+Q zyXMDou4jnBvq|1-Ro^>9!9q@D*PULiWU4L*R`e2eL1Wry60jOWB)hMY9p08I&=}Ox z>uxXq?%OfX_phYpwe7DT?TU}R`^bIz1c6Oyew=@ADDC6&a%k`nJ%Y$s;|zeLUjMk^ z&zGF`;e+6t8@aBpJu~@UK3WU5KNp;>Idm>S2*{6bQXKA`ee6pb0F*rqZ_M>+Tu^<4 zJVi&>9z$QNoAd`08X8SI)q#r5&CP9pGe5=K=xJm=5hP@e>&pkTwf5*x4Un?$B2=i0 zGKga5Mj>wB8&1Ype1YGGSK`i&?(%@Q5zpIutb2cka~2moSi2VsS;Kofte#pRUC>i^ ztb{WR9P29VBTI3(E0W%acE$Q#MSjC{k0i(|{o4@;CD7z;;p#Jlk(8pth=yQfJ?GrH z@dRv7J$*6U&c~nO4vAiiHKchR`p!^zmj>nMyppBh>66Zegq0kve0g)^XB&v&`--yH zx)Nkg?rfsDgQdaC-R|yB%m)tPFKl^-hCc5QHt{CfPbC`(k&x2ms}k2DUv_Zk@8N4N zU8|*2CKwSowT*%kNuK_*9jU(wGbu9p4x%@xxe!8hpD-I%y?~0h$*_hMwg?jn6og4U za3Q`vz)_hwAX;RM2uo1Qz7r(cu){x)@zWp(C|WG9V-~V?_!=-eJn1?HHaeCz z6u$H7z%6X|t&;yT?jD7Pl zDhhV!H|iM@bAXF7u^RW=J)@aCR*%Z)cQ^p4@mSGo97D(VA3$XoTC_ZH`=OVBd*{%* zT|mKGA9k^|WaX{#Uz;G=j9wcc_DX?)vfj@!XD@=%MliIGR=v575Ef$d3ioMRc8vqZ zI~pj&4f#-;i6ItC;*O$62nx@N!I|oYdAIGk38_YLUa4dgE8Y`7v!qcRhv?_kOSC8^P@~HKjhF`VX;G$BaRe7uYPhtnp}J zTF9cDzwGK z6DfPCol1WOE&y!)!@@T6?Spgruo|oEF1RV@W=U74kZD%_rlCe*sbIHBVZb<`e+Wdi zQ2H~QzsOktt^jvWJ?=@HxZ==YboIAhBF8V*lB`4{{io)7n#9@vb5m1&n#84s!6s8( zeFjQj(i3ncDaml?S1w#{)*%1(O{}}mg67Q@$um!n-FU-c7>b>e{CGhj190<9sqvLe z-ktX(y#Peb(O(c$TKuBP)onY2pW=B;P7lCC6r4ww27d7r{nxQb!XNcc8+OU;Nkp^m z4Y(`3^pNgh^|+k}L7quJauoCbalSuzh%CA*_y7i9t~N92jtw<|K3=2wJc@_595Oz| z( zwqZTEI76#H4wvdJmow?Dk7CU;ZseA-Mu4ovzd4A!`p4qW8z<1DKv4G)T*fIyd#fI@ zI`C^AK&%=rZak}c&*uVrR}Abe>gP%z5Q3<-gYZhakEei_fnk(n_u&=UZYibrGHX>- zOC$oErw&(COi)G;U$hA5kd)yG;eA`gY#1XraCVE+)qqF2IPHQQd$BoZIfI7qL#ZeDggSC!s-Q`*5t(Jww`&D{N^I6$^_db zKzpBW&kY4d%9pXc!V8+7$O7>#B)vnx4%<6k0zdBDKf^bFT=Bc&5J#aVX)*^Bb`%Hp z8QM4!Xi34Dl^I$FlKdlPNt}56a+vnEXm%s;hjA|Oj}wr&2y{GKLvG;xx`MeT9xG7x zOz}A?$06&Ti?c|eY2wQ-uX5y0eWRSFBit=|l9i8W6BbkOJbii5AG#xUfA8D{@|2@& zj6i3l?t3~yjn}9y4rfJt20-?mu$U+3m)d*49=)nzr>Y{>KjKa^0uU&3OIRYb0G)tA zklyqzk+7#pY%$1K^fShVEY$}N8DGK5_r9AcKOMvLuAsrVq{{Zk(0VEunlMTA7=N-Y z@5k^{A()C@w1Nbs1QCP1Gcyo#GJ=sV7X|JuzN_#6c~WyP5Y4DKPg~b@{wpWF;OZut zDat%KNudL;yel~tUg9Iqy|bA#sA;Dj{D6mqVlYXcqF)qlslr9-Yn}ihh@x4bQ@@C$ zm@V&0;^Cn1pe>^63-4g>1gc#8ZS9>qY zdtVMF`h)-bvSG$}WZI5NhDNN~@U^X5Tap8qamgOUySq`B;lp?H8i#_HEZjaV@#@># zQST!G)5fgSYN>4P!^VP7=^Ouq2#IxL&YVV_(rTX^Y z8Ycyuj@mw8{F%iea&8U?bu=#^=T+lhD%r+rU40D@ndVm%I^ub~toCBy<2|8ouO?ie zsafloi12uci(n4s>DkJ*vG--7g!xNI4(cIDr3GP$);-!R5OO8|L$d5M~ z9-0}NbLE2JaZ*68A)}7@q7PS?k@G<<3Ur0RGov-wq36!18#{n!lgz#*MQRplhhL4- zqT4(HPE;Ot2p$*wdaQ)!l0Hq!vNW5?m16G(X;_@I&bI^=NnU~+wrJWU=^yU)d+&oE zrM*J}g0FcyjOJLW8tehTLgfC~S-$)4zSWv4j~w}3 z(&-4_=~bXhGZ*IR&SUO;PCT8fl{d6>O;1!Aof5I=9OHEG^w zt2YXB!$z%M6xf*LM}aD`Viz}w0EILI^JUwLgQTvA_$R1M2qYV3lCw~Tzwq7YyZD|| zqy=J?bgbn8tXl*W%{L4PaNw40ir1=mLW*CBZ|!^)6ZmyJq=#bCjFAz)ge=5xs4_MzDKsyxXp*jL&Ec83h?7q5GC9S4-3HIZ*k)!W${%@ zT}g%J*Xpvq zSF(GC?wI6s`46bcD;b>pGk{g8ec%SUUI2<$b zrCUDgu6+# z6L#l5&xePS{53G-brCY`+NN} z(*BET?~8P<3w5TKh8e2Jd3bjL{41Jp-E<_Z6`Ni6+*X=h_~M^Q%REmUc?Zvf!4sAI z4u$NQ+zILzXq@`I4!LJ>dSv$OAs`^La$2zdO%BtDsdXsQz?JO^G-pnT>wxglHD_dU z6!@FQDD|NKFdYdqG`=&X0k) z{K85c5&n>9A{b@YWROr=j2(W$pzHt39nEq{fi7+a<*%i0AZ`iF0jmWe&Na@kJULvt z3J@tePPvlwXm5-u;2+@cQ}??eS(S9i(n)Vm|BjQXvRr+iZ{}Xxee4raB@2(F5jOFB ztr&9>vvK-J)LNoDY3w`cyvArBl9BE<&sTHmAhm;ptTaUQ^R2YIzr>69ccOeS(y~$K zOfY9&_NYqz#_%L;7T`b9bcRIpLYsYfu{2~c+kUJ9(Y=%IZ}>UJyHMm_R?82zqhkRP zl4w|kw^r*sSbaoHWEqP&gH}@$5_(4(*A+9uyZdmqJB6rZ^ZR?6h)`xL?py>wd8yZM z5jIgad=BRD?Tu(n#D0!QNhNpvHXXkfLEqSUXJnzSwDkQnTiaoS=EFaZ29q)R|C#D` z4T!@gi*-{yK;k!Fvxa)N^S|Upx>7-XXIgTe9_XEu<;W~UEmS{Bm_m5L8Np%j%1EnU zCorv}o78i94~(;Z%yJ-?Bw=@%hKk3=XK}Nf+3r2QJ03-3)^B8N{~+IazS0h(Q?0SO zC%lg4p2l7N#(vBl)ZfaU0iLz>XLprtZ7s8{rU0qW($815vaunO90T9JYFFSb@Jl4; zZA2Hm8g@L!b9Xxm)D*Am?8wAV{^&n!DE78dC+knNo zLT>bc35-DwU>P{S5sw$*VD5p)u3fXya>yvXKd@d7^vV(Ra&`OKenRp?iHP75Aqdh@ z*l`LghSE&2byx*>v1br8qA)^<25W@gG`+e zL?eGKL&hM}{(%u|a}g#S15QP6y-GNQdRgUms_5!)8!=G0F(zqPS!hXVDE9dg?vF)= z^GZ(5s*Bjwqb|yl(3LNYhZ$3^Pt9j-8{a#38>aJI^?h#f?nRNPeP^$Am=s4^F*&38 zUWI~GG+Ai4_D{)_(0m0wHXlpmgAE!;ZV+@W`=>i*-DIk5A(QOIMlc zo!v(+oJJlf*Bo1$`5n>zqV|$%uEW*`t!zh};8a4Vu8X!G>W{eCrvR6L-7h)l2j|HO zK;Hw6z&r0MQSQqOFmvsh484O~aNW zBLv*PxhZQ-lFyT3%+`!3Ox z-a9`4sv0H}8(xQAI3aacz2og_T-L!Kn%9s=OPnNs9ea2RVz&K?G=GCGXO}Oso>6vm zY@A0_rc=e({2VeZT6EArWZ+2*?TU&_cFq#5za;CbYD>Xa3cgJx-5>^{=ukuf&GKwq*dK;AdgGV;?2L^$ErM!YqZ!k95qDNWlZ`X{x z&Lw`vofW)eqA8jOe5@6Pj1(G|so^tVH+F7pg1nNgH%x4dFTHaAW`$?;@Q?D-FCnxn zlX0tlVXg_DlexC@*9tRI0RMP*wBRA<2r<^>KR>F^Y_aKb>@5ymlIZQ(DPXg%Icyo1 zb+&_!B__V#BKY(^iLOHV)FqkY)1v5I}J59 z-CKR42bD8K%3}cf8RwJcH0G;B9N3;sN(YZz9~1w`b`@3r=BFw8gAb`clV#*=!GXvk ztJq*V>(Mj$VZP&TfL8J*>XAjamds8c=m;Kk_QUusyn+l6D8^ib(BUnD|0P1e>|}=Q zEdfoGtg2{17NpxFxW>HzHgRjmG|vrbu-@YCw=Y;Y$9Yl;`y+Q(fk3fD$ zfBN}^_Nv|>`cI}I%($Whl4S_SF)boc4||IsA3m4Iq_lr$M^T0xAHiuh_ne(pe&)%SIB<8%>@#q$bl zSAIrj>)Z8YivXxcv^y4f3xU1^@vk6vZ|&IsYOh2}H$DR3D5B&6u?%3rhD zC^nLV%p8lAzt|RwY6c-*gXG`E3jh1%@y!vr1S!8Xb=|q9qI913Fa~Sm)I$~WoHl=$ zNnqL!8Qe8ORLmzM`cba{VaFoQXxS2`jF^{8>K=N-qJ73h!-qNGb%f!9fu`wbFkFr1 zt1ngMizUaR>+PGdMT^1Fbwa!OQ4pTFpPJwU=w*&4c?OL8tR978* zsBq(gRIN2_Ah@P&PWaoej<@jiv6(pelU#Y`DEy?{%+kFyZS3q35qZ>bgo&D(72rhN zFlzV-2oJFi6kIN?h31KC5I0~S^1H#DuyVoqy;II!g1LNs;VWe>)<;Ik4=4v~anCWz ziM0wFVXI#u9T>&;Kxv~B-7KMAXG?d*ZadWZ z#C40#tFo>Be#=W1!N&TPX0~!t){{8$bL$1MnUR=(etfG+75u8To4F=#o&2#mhTdLS z%W6}8$pGJNo%$zOEvy15RX{i1=C|=_OX3~nDqCHM|9OoJJI2j+f!0IYjeKwJii-{% zLh7G~D^UQ4F~OIq(2N6PP58 zrzKD}7@w9ONiY9s&HH;G%=CVAynJ?+fFAiQDfhet0n#`o2;h9+SNvCk{g zO@qh@1{_USez^>pAj)lN%K-0JkXfd8*>2U!ekTJ&q4&~EauCEucjXuH;>Qs-;}?g) zh-5TvBCazebnzY)Gn)1$DdfRMT(-ljLo1BS-Gk{vW<#uX4Y)PruWl`xr#Qz~jT?Z8 zR~v_z1n{KL5Pdi_`-U=W#DF4ql)6~p zrMDko5?+?~c*Y(1kMsGt@A1MCxk4m#7FG6y)HjVU*Hi_D$QV0A+0GuPj{#L@@)KN% z!_OX^&9@$sz_13@u4G)L^roYI7~S0LYVNbbYoRSrp*L5ng%Y2;KXywcsx1?G<=efO z-k7aQ(m8axCE`*P&IU)eA3RW(@{SCL3X1@62!LEsgV&xwMq++@Kn&^#)|n(6(Ndn8 z9IFyNY-0B1bW{?qKY__RB0R^IbFLQnO%l(oB15eXDoF|6KT@vi?81DZ4!=8z8$WyG zUvt)B2Xt<+Y1Condv~5{#NKPN@UP~zT`-9maa35nZ=*NK&g`i8)YRA5aZRx@MCEK> zh6Pq7S(d#|mg9$fb&Gyi~~5Hw3wzmR8+`l`$6iI>$Kq5%LwL{!Qm?*- zP%?&|-^X-v1A3cwG1eUcp@d@eFS)pU2kCIKAy6fkp8Z*%njn3S7lszcsHsdyuycf_<(R&UdR7gg+dW29{AiY4VscX!Eck#iE9XHFM^S|K_6_7Zh8bl`#&SKv*ABRz9`7*grBT)%vFaVV7xD(C~S_e!QUz zn|4vD+3$c>T!`Cy$d}x_;o6Ox;+bo&Vtvq;V*mPiIk<)05$&KrLBDi>tLdXNJuYvE zL~ybJ7^4YMM1i1#51CN_ifj_ihp_7>IAeV6z+Cf}^A8>wyY!kF7T*S3;zcA=zV=%Q zT5SiRBSX>{o!R43M(I_*#~qa-W(-&eyhtqlVzYr_%MEof-ag89JL!)*9`B}pnS*|L z*DQ)Bn?Tt5VtZnju#xGgNa-JYzqxO|Zy2MEc9%BcY6PV_yBM)9RJk(bulHo0_{h-B z=@+cbs9q&~eWrNvf|?qUjEljR973Pf+au`mYYTJ~^Tceth8Uo_cNZpjUJtRz^6&6f z`4?CdG4tu)QFLw5jkS<7f?1~i-`|CN2G6Bqd~>F`Wa>2Uk)em~)&`ays*Tz?qFr#k z%S8Gg%6Wf{d#vfY(W39NxH5Znr~7gwq9KH-SdmBl_FTG^=XM=WXx3tEV08`g77ata zrNR6;Z+1@48#`MPMq%KI0!} zKzKN17*9;ee5KU{d+-2a`X)BW%@^J;s#8Fl0vVtFqND;57Ge zmX+>}%_|;)7i<_K?!grK?PL$@QUc8{1^j-?{HCM$j47#cI^wFQ94TpBqlFE9dNgWE z<IU#bwfvIIBi$e;t0%f1UqQU<{}k;Op9%q4-ev<^b;~FVFdquQ}$tgMFq#H9w+eF z{wwB=!?tr(-TPI5rDa4bf|i!fw|h{B@McPRz^Ug>7nEmPLxY5_PvCfzCgz3EUw?9tCXkyuB*~WO%;rgrB66dWLg3^OqyZPi? z;c3EafOnnOk=(a5`yhL#VwgbIWH9{qy{$J#Te!ZLqAgbeT26$7J=buFuK#ZDjX;I% z%bAGn^ro!GUiJ3TD&|GSHfq*~JwNa{F4rm-91qYvZm$QdjRXRau-UQPQikn+&3;yc zwWV8lb9eBYYJ(r<@sK6SSdmjp9foXUd~%XIPu2=|B4}rb3=xLG(_CM{GCL&3M#jas zS$m_Jp<8Bq%-Lv;=iQ6R7pjiQUx^N@Yjof<%g8MXKE_B})M5Gw{!ZIxDsI_zO;(oP zzs&#)a>%earlTb=CBZl?N$Ch4>aiO?ogi6vqBiiv0WRPlW;iDJtD&0OQYz_Pgq`Yc`e6` z1s@V@ccT|Cn+C57X|J2v!xCQ;hKY?P+A+=+!#MtthDH_HDe>)t>It%3xZq2+ZQrj~ zQi83JK~4D_%AZ8xfM*IEz+3Il8bI}5t~S8NUKq|y7`$K=toqgMSj_@1S^oJ|8m#ZR zGaYLq)TOwbF6;}G$~q^Gw7hf^21$&@Wp*5WLc1W8Y!wv3R(cKj;@J~biCwZ-bH9C_ zuv-iT(?HohCtsDKu1UV}UqRK3>$Mcn#bmnx0uD#8!q&@dAqc6IS9q2yV*k_Zu))>%EEmTvIRMg#pYc!HVt04X@bNSv-8ooBVcITGn1yETpXmSr>xD z2RCM(`gyBIl<5U*)?QQs!K>d7T;ocY#a{>;V6ge%jlnn0XDm#fej%W~YHZ3;dgSJ=2jRadmj}ce! zz-@AX^Ka=$G9qw-OCION6~i`{ueK{)ITe-VjLjw_fHh=Ao3J;#1BGsvI$<A>KHDZWYTflPb>nmq?AB%8l!p+BWX6nL)CI3@4;gMIFH_92Q`+kWlV^o zAFG@=FY|k@%AzUsrjthwu*IBO&l;G@_^^yH@e==L3sVlSk|qWHZh5;~bs_#cys<58 zpc}B!^J(~QkKi}WMXGm}cOGXj45pTmXsZgdIr$O0lo%KU)g^UpX~!}aBhzyToDk0k zWy>ka2zD4sDG!awPsVzMbSXx*71`^GZ+TyST54E}Z?Ly5`9$pAukUOduD|uNh3itV zG`9)es1%j^enCBc8-upN;V+~>LSnEA2Wr9TP!emUk?*Mst1t2R$K}&_#O*nuqI+^^ z{v0wk>Sh3Wy!Bi@rC0OJ?G;O8-=~u_ZECBLA({n~zC3ix2!RO*x;FymnCtKILO=C^wDJYG=7XUXH=lrttZ}B7qelw`W2RX z;`NM$40PCbCb7Ms80<0+_X9Z@T#^lX=Y@y69ei`+y}jiN38uAX~Oa`cj(Kt3BfS>$T01{+8mlVRqvJ1 zeC9S*WPFn}r;IjmJ$%x*8%V&q@}GrO9`UQmPgdIofftoct@zPGZ8vPn^Q5+72gSI4 zh%~MR`NRj85b;>3k!L($o@s5uFdv6j3A#607{2)_Gvx(G#ym&y65uxJx8LT@6`Tc0 zi7SV{6ROH6DPn_l5pPQ^M3&TbZC2^ZQsWH%6M{Yl48abJ8EdHHY9FjDG`rkaSCa_4 zhe#V5rgrU|KfygUKkPQ_HrDh1*j$z7JnY7WUd6YJ`;|l~zAvBh-S!1POGap6z%k6X zBtK}o_T9a=G|HT9@SHUaLGw!WF28V-q-%>G&-2c}BGf#!&U{AyjvaQGKVDx|(B^DX z?z&HnN)KnkV8A_3oq7A9(o!JWOYI(5sGdkw>e$@c^|i!51Rm;@K)0~^F)d;balU&4 zCm$`Heb|$bhDUMY`}Y=Wx1)pJ2l|slU@}hZ-TPe!9E44x5rGu(ZB9kElHJ6y)}8w#7EpzTPSwgk{;>G)A8V$76|^55s>ulY2SGwB5WT@Pi~2;N=6W zaRN)iXraBr%l3hkjgrEGt;o1>xIg1@!N0-*M_xE_?{$}Ko8q>n4`pMQE-cgOeBn&w z0b~m7KauN(R-BZSSm@g_cfAw5V}Wz@3fwAP6nWZ!&X@0d^mZ!83auia>n4Lz0X+LA zgQyl(*~Kn36Im`|H1Ps`cq_>=4Q z(S^!N>NJ^up?eY2dz1NDYU&ZL(yw3HAB&FOkuCdgzNGWMqu&OmI(OBbPrBl9)_3R+ z{`14J_L+*qN^iR5?HQ2;5cLHGRQN$HNx`RO)7PShTgbPN9S?>TvoZZI-|xrhkKcan z^UH_#GWPGd`}}eVS*-g0gRE^r+K(c~TzvND0i z*8GyJm1NU%(#3Em+0a|^{xV)Nk&8Ms=VV=7*`yP`sUpjM3Ri2g)_9(q-@WeNIo$Wj z?z*Se1C5ALj`YI``f%1?Mj4ONp3Tp9!EvJ1xfN44L%ZRaEnLG}N@0b%rJCLa9%So` zYhZn*%b}LHfEcV2(G4*oaw{8UKs)$zS&g#aveb9d9eiQQsfrY#$TRMf+$xVv(t!}u zhByPzylKZyzx-W=LfgDP7}8-X)@!ekrOgit0AsOYIeY`BoZI+jNqIRl;KC-T5=oYh z(rsYnV|A9LOQY#nY!)g6I}CX@D9mBm$4m((J-#LypK)Lw+yB9R7_QY{X2{VjxUK|t zrUWTb*6$i==V!#CF{--$fZo8b5MPL*kK&nHk2Jh7R$+)uPj+g95pG0~-%~i6iWdY! zWrh`)Fcdl59SJl80rRTq+7daE@mr* z@%ii+l?*kKs*r(QY?lH>xRh*hftrhJOjkSpG%lp_z5hk}J-?fLLBWT(OKSHX^y-sN z!o8O|S1V}$`H_|{7?5jLEZ%qWGHS^*)TpiD4W?e;arz_XJrC%2yexKsoxm5O`CY72 zm^tXt2qX49{Rx-KH-#igD~q7rfZ)z~=LTjF5qB4uGjFA9W?o*#G>o;R+O2|$DT&V= zm|=Hmj}lQ#QUECAO8;il-kjU=LU|iUlBSI2YcyQIBh+ZZm>kj}eyIDfKm~r4bXBYV zFAYtc2T88|jm%5y{pJA^x*m+Rc==w{_9&mFVxBG)jW}g(kA1VCe+h;=jA~XvE2{Te zHcTrb9|b6h3zzWQYsOg~eGnL`d@#qWUx<33G5*T2T5<7M`)247MN{EE!8eEdEl8mn z(zv0~C;a|+bD|}@&#LE>WxR-g8}*Zzb6Yjv40m?9u)p^8e}1Cw(FZL9uKPNL@UfCu;wWsx66OO;MBhIRyZn&bx-&Rv>Az$H46|_}+@S5*S zhMJRmFm-8%r?#uxK`;fClpTbgq^-5eo*l9Jj0PrvW^E?>EAc;j9#=Q`aX;s@zCcaDP{ho*QyBa zp=?=S5UAx&EZvClL-gE19>`ke$$$6TK+KDe>U6)iHU48i&vj`1p5t%X3!vh&Ec#9d zxWYGK|J?|@r=@`SeHv4BF_a5eRgrTf+Fdwk36{}Bx$JzrFF>pX!pMOsiMRS-w*dtsnlm{Df3`FL*+BS?6R#$mnE0}qm_eBnRy0Bjw|NNAtKLy!R zd-kMm%K=eJe!Vw)8?;FnjM1;vX8i=7MZ!R_J7G6LSGSEZ%mm2t6f(UGao9X6$xFz5 z4#Lu&+5T_f;FZ-;%m?Ti^W+>Ylfq#&e?RmrIANXeE9D69^w>@RAh)TtvpV_T7axsz zhu=W(kOX|J=(PG6pfjb~lC`@RE3{vShBW13Qm1)>k6vDe-X0efJvp-X4aA0`^;y66 zps9zZ=~}QiDx8X&mi?%}5EBSH*IGQ5CxZt=rTbsq}VTT{gqkIb+Q1k2;zqJ)(4joc-##toXTYLkRV+!<7 zkAX#2NvUmUexM$%GKgqps94z~NR5>xb{(q%(`Mx0brY{Zrv1_i@c*&`Zir>k6|#nf z!Ij2nPGR?Dd2N|A@>MkhMb~DrqE_o?MkP4PP8gVfRI~>^h6#G6}kELzPSm^1DVGy%*hcjaXeQrn>*(^H$N}o z*=}3nUhLPc+TCi6bWU?1Ilhp7zPdbA(UqNjV)izl9VpL zoBhM^aycfsQD{jl8T0R`kW+=K1%$(#A5S0mLAbeb?Qb7IIsPj#k=1HmO&rpP?qZNj3z%WwphBQ@8#zd;w*h5;%H+K0D&F|1%9C@~I?ono)Uy|~$(})nZkbRF< z)$5=3aySByKbUZ*4Y@9&;=3Z}yr5pF%Al7=(TCFRd^pFoA0SB~P{X z6x~nTN*Tj;@AM!X2NtWx`pGSKFRqfhm61^D?NEt}Yo< znW+t+wK)2fq?7Ecz81DIpC}-%cke z-kXo{`{a=SKZ?#hoC)ub4y+Q22Qph|P zTzCy&0khyx`!X{K&+*ymN)4Nu zd|b4$f1d|s$~6Avs}5)7PW$!lu3=Tbm~^{X;KnQrG&y#mb{kQ}Uicz5BsRLGC=>O| zhR18DhY|Jv1U>IL0LmIq%fuQ6esvc|jQx=-R52z;VgWzTQ9(B9qt$wQj*FQLL!QxB zGnmDw`yn8m#5i5^ck$1(#P-IJx~jpz5BJVsuHV$Pex$BagZ)69uckx1*405A!MBkf z7xX_SQl!Hf97FG(a(&@bIsaDDVu&dwKvmopiS4vXg{sQ%Koim7Wbv8$3cXUTV4naV z{MBQW1vLk-5jX~y?3$#XLcCc5NWHUQWHlA%%|p*618oA(izU&(%Y7R&Zv~-~Fi_S9 z3DtT~l~MLOT||GX2QP;;mCt&n!Z~h0QF{qHM%LRdaUqB|kbJ{6RSjTcfw95wZ;BjI z{^#sz&W9pxqSbHS?qzdO`L`L4Z%T~fx-~((fF6JRz}5Mi;kgdirq}GN@Bb$XcJ$E0 zyjyrt#?nTj;i?udZC-+({e1&Ju-9S?GgfY^*0qni7%IqjLu^NYZ?GfhQ-j^`QHNcb zenCqG)YzQ)W-TfDfjX(+k5`(G1FcKR03)$%)eodMXR|B5tsaX)mrx~3#$#TqU@LGs zgsuPbGBd2V8K(Z{cRWx+@MqtP8HB6UgaaM~v+1otdG#3D{Bh!7^pA$_C&)LRaZK(X z5jxp)=HxRs$)|BH4lY|H9AK;S&Z@P$ zfuV&V1;a{uWjQe8$IvNyES*ai#gt}#c7upmP!QMo`19*YTu(Y7o1y~oxsTUg)B~U_ zrU`{v{h9sWlwHat=e)PUw}iLi@#wDo@Y^h|d^{qs+A$Q`D1n{7OTXnh$sLqR#U3+F z*L|w`zMmxe{(-~OR4sqYvB33PHvEG z4ZJvO?mn-gB>@{ChyXeq9A*)fa2OK7^mK4Qqc)MCo_Vro{`oI8HHszM54b2^c0)F4 z{My~N>VflTHcgug4dieLQ{{7`M!eHj&u@{G7;0 z3M!lUo9mg;Kl9S}96(qtbWGj# zn>NI2)DW+o*<&(}geh;msXSvh zlY~e@0)I=Rfq#NEvNawKHD#UH0*s^?S&>XL3Eg=uVEba(e8P05c(6?HkVF=B9)^wIT`yIr(#mHoRYf#f&A_@ z!e#n)Lb9w5r|qN>Qo(kR+Xpkv@8V$eg7hdKFr>hmZIB;MmA{seC)%L$~nqet&4_JqAGICdcl#B>O^@6 zI_~rUQ$An6hp2S))(cI;gwxh;bhN?w0%|WUan;T-3kh|_%{+nJ&1gV16!gTTu*vok<{8vYs~niFo)d?jm4X+ zA25YOsuJx@2AG}ek}JQcH??dI?d2%PI5#-;wYW?5;J%CasIqvrz@%gTGWf0oEvNht zlwoAAo#batHy#x|4E&y9Gf1bsG5T(OM^SJ3#(Thc0W;a?YAwNiPjPY`cnLgu7d?gX zJ*SG0%@ilBMzW0RQ{V%oqB6iil1KtP>dIc^IUSGP60lKpOeku&+OP1vs0PR*HWC2M z*PzuN?Y3qkCm26RQEFrd3Lfz zg=wnHr59N32jwTPNhQk9@ilIVaYIUu?49(kO#5bsS{~GrG%%KZ3zNPxmoUgW7U$dqBsx*Evr?sp|Ij= zNJKINVrjU(4JK~CUQROM%`Pk^*W91y!nu&>Z=GUjhs@Ap9$cdA>-NV2?SEW*d7J=r za9z*N#I@$sIYl~%y^3-_*&`2x2PJNR_jHU{uR z-$izIFGId)3a1M~yFVivVy8J78-F;@d?)S>*T&*>QL5J#YIAIkK2$E}KD}Gdcy}~V z^i+@jve}W^xH6mWsx|<%dm%g&%SyY}arKaqY+g?0!hh_chl()jiyJnOd677r-$y^) z@w32s;8FgGe=?Ck81L`j$V|Wg=-@mbh&ufD7rlkR&w0oqy(mib@9mjc+gjot%ajU; zA;#6zD-@+o_4?2480V!Fi*gD@QR{+~U8|M8d>z>g*@wFS;M9sGPr;TeF=z}-KJ*6S z`szP`++g&#^PWa-Pd|doTYYaGM>+v7u0jM=7Z$$HD99c-pS`i}>MZ6W&0hRq<#^0L z#6x+osCZ*>F>5?ld^xEYeBXO{HmnwyYdsUp3;cOYNw4dNe{658)KDGYOU~ud8yEq+ zwB%rxi)hz+zt`qiOW}#LGK-)G|9yG6Tw;%XMg13lrjw7?!H@Z?m@3tolM zHE;7vZbG|XtbX&fV@M12p+YqOElST)-%;kQSH~teX7CXlc=_dEVSM=z>71Iv=&`*G zg^YRiojvE~+3)U(OKO!(szns(XV2JA&V1S*r8VC0Mv)gV6uARz6_Q(@xSD1?xis5c7;E>meY7w%-}8t+CP-@pIlSlgP~z9AGmto5HcP^>JmIBn+|sgJY4j%!O5+y z?Z%V9h@#eZlGbIL)t>DrMju1`<1qms@B5A89-0kqvae$b8>@Ol2*tn-?TDfqO|LOh z$h`LK1Jf3QCU{YA8i;N4U z0~;p9UwVd4p^G0^?Z?^OXX;)FH#e6>p%nSsc|L}WzX=vQA+ zxrbJiRGmvg0f&A_C5{OFaL7Z2=FiPxPZ_%gw2Tf*Hle$oL=XGN?=Lau`hQccA~P{< zo7qj>^F|__T4fmK30legTBJ5ugLdP-2*ZEIxrJLsBYSIlOvuHo~HzP=7O^lbQ=65ZD-0h$VE0y@%FjKN?u`fqSg z-ZW)(tT|_N7IwmdcFLwZi{&N55hRPYdd>`~UacntNPt9vLY5jhhXLE&?JfkWK2j+x zxuCRF`wG*S(YlMnL|ODOk&^VIh=q0bg!P9upuYz6SaJ@xAP1}w%42EL*eJ~jvHQ#v zjHBR^LQ2NKlK_0DLt$>6EMND(zW6ZOE@$tYF%f!(mG zWaQt}sFCk6B6x3g2|+^LNIEL|? z0kGR@Azc^Vt0T8@b21J-Ro{c@aq)7nsn{l2QMG8yG9fanB+q15&u^uQ-Sl7+hrH9i zR{i9mkElobF2GJ;{4f3)d@}(@Pu0Z<4SsP>_o;^GAzb_P$K_9Z#?8w$eMhv@K~>Jj0&*C;Rj%=mJUn`!POAb?ugD^qyP=D>k*v zL}ymq8jE@8#B{tmY6)jNB1;R}8a8BU*w09p*I8#kNb2)R%%=Fk73&b}fTNxa`Cae8 zRwW|u)EEl`B4v{IkaX96IZKl9fmYqa>d@}g@4*lSIr!j7k+D;^7B6B>`1;aG-GtD{ zcQM>{Vp*o+;X@92sP5Mz??$r|Kneu&Age5!J6XvUky&Qe~uTu}O<{QqT z@nJYCdp&kW7CNoKAqu0Hp%DzlpNsE3!z2(;UhIW23yv90`)EZo4b<>p&jF+7LkXcA zd~VtgI*kfr^bk+ffAtDd(XYlWvY2K8cRZq+fw|6zOAcr@5t`$pK5C+k|26S>#tFJ| z5RO({!dpt+6yiSrgqE6;7)mU=+r+U!r9S5U?Zy zPU(}ccD;IS&rXv@2ETdwI&7D(hv~`Y-G6^M{)o#z)rAGpU8V3-rz=1D>YIC76IeGR zP*`1KqA^e<*Klc2k(dJX%>K_Lb|Lllw}L!Nj=-~uVEEYLK?V)1M3=FuW+<~eOOr4M zFIE-LD9K2LJhCe03x^U_9`NHIJMmlWgyM=(vo1i2$jC0(CbVW zsP{T9+Cx{)Fw`*B=&&5C(Wity)Q&$)7#<$(jhV%0>FwVi+lN(r+HM$sf8m-aR?DJA ztY!CW>2s1=>IMuLn5{3=rb{=8N}T~ek+E0_>rP%$JYG-;`41N&yqB_LyQUBcWJ-5U z;0}%+LJ4#5Xh}~cjXnQ0y`SI>j#b`FFIs4H15N>-0>{9-TMde5Qe(Kd9+(G&3N3{n-W##u<7t9EK_9z-=zRGg zD){*p=I{XfSJql%Ej(ihImqtBIl!VmK+unA{amJsAaBJuuICKoN5G>Ug=$u|v_|*F zco#apsTB(7Dkh!T)h^d3xadp}0X^9_gR`g+@td2E2rXCx_AWLP%XEQ7ty*7{#LZ3w zm8)OZkkLH{7FY4_8=|m$4W5k7WYO$iU0-KCw%vRyj-Xpu<+j(Pi!+W|6?BZh*l2EVmEG6PY?E>`vx#WZGqBW^`^JMUGIqeeaqh-^>I! zSt6_?Q(;zl~B z!xwH`w#V_FIbjdLw34o>DpL>@Gum|1?RFy#mFF&JyA1Eo5Ud2mkwoPjE4C$nfhEnd zT{OoW;k~bUIiHDpWd?{bzC{Zz(|XcRB=98b=Sx7Gw+E$G{0=m|8fCk0TTfx z<3jQqO0HXLsZ|n$>5q6YioB(s6p#$&kI!{|OWkRWOE=mH7H4X603(%)2z0viW6{q! zui>-I_Vr?7Yhj`4sPJ1SllmQ!iuzt-9u*@c{_vB<^HdM<{eHO}zn&hw{E;&3v90>T zb6i4E)W(1NicQbM;xq?v`=dca8$Nu!p7huCo|GX0*{}Dfogn4agGgm?0ADZiuAxho z)O5?2gMsH!o`?&80o0G32RktSO97(Su(YD1N*h{5bmel@0_J~%w;)@O&x`LB>&atJ zh6ztyYyJe%J>NaHAT}zPYVwdW4!WGDPQatiRZ7iU58P{1g21;D!M!S?k-c&v624bo z(M}K{tlZ<{^=&4LhY$FE0_Um2pA)r4PLOQFtyxJj-b3^wKo0aW67c7_7Qn$`D{V%u zw}Fi(Pc;qhel-o*P@sn@e{V8+$GX2s0>|DSkc;s#1uLXen?0Akk(y5Ey(Ob;xG-el z#gA*;ej7M2Cy6Q`{)H+fBC>*&}}w3njyymJD1C z8iuWVP$jH0v4-V2{5_m6ORxq7KO=I#LpQR?Fgn;DqcK%%tT`fQYcY^Y;J>xttO4FT z&aLrFdXmk*s{v`yTMc@$JhLNLvVoKOpaTR&HR0f8nIXuKpsPmq`(pXy@+&&OARl<@ z#?f`n_agAZKx4kCQbU#PwTrCVaX<$+q{Y2CAAbV}5=tWfiLsdth$4j%Yc0E)3twZc zq_V3FM)VpZ|LKIfw5idXh`=6ujkGIP+J{9t;L?1)%-YqulYGrh{Z#_OdbDE!#{K0x zX{7SpU8o{}ZW%E`pGffCfFC7-*5>|=KQ?qdfP>l~_0gBO_K$hDQo*xLAipvQ5(cwh zSIqpDs&_-^Q>>iow0o~~CP_qFh*I*z_k{=i-ey^fKAa;vc z8VWuKHI-~{pl>C-ABxNzR;*{hLOCE8Re%;Wn&9|$$6oi9Si^`D0T^;2S zE)@SH;tOZYOY^)&iSY3Sm1P!eK*>n*=SH?3w%q6jRd<^=m3yld6a8*vEgtgB#|AcQV4F(Y!Y{gpv0V4nYA zz)fga`Lrei?5hE<3mU+{`xV?-(a3t=Cr!}v8t?H)&%E^$f&N9FyVO`IZ@?Y-kMd0E zGMr(K%dNVg%_~M@sU|{0x>|v3dnl1rlJU>TdNU`yrNzOiPQ80o&JaJT^ReMqb6y}OMtNd!JG7iS|}OLThcUQz$FdT4W@WL zO!(*fZKj(PO;#WMD6INrHmN-aI$o{cwNy1*Z9?CEQyf8 zfG!mdj6Kt+0F3*B{m78F2Dy)MxbUso{2S)}qcIaDCFs-Yb6K9+9d~sezP`HV{bFi% zT`0;MzZUf9rS$FRz_BN#)_HVoA<1<6LVX52qe3a>(%C-a`xW}JSq)j5%m=}WS@s%d zuAcpIT<47Q0Z>$j?RJ)~>}$d1|E@VPiULO&-Bb zxSnZLtZ)t5v-!?kI^SUHo;64f`p4R$Nh;zs*Ucf$fElcHYkBr&I};t}bXdZNvpl0v zr@CyGZqBZkrdLf-!J5{;6Tq zw#8?L9xJvP<|1CVDf8I$)L7M!P(IU}TT%ECH&h$#-gX_vL3HQ=C3X72+CEh+NSre)!OiceRv);R-e_9)uE(W2 zC>GsufU!1$`=c9(2#~QTLA&JBp^M*nS1p4;rLk5S=fZjxW~yyCZat!%~v;0dP? z&Mpfi5f&YNGk*Zl4SVW)ljB%hdxPH9cTMY=b|bh^9&bpJel*(oB*@dSMa_;>lkUBx z|IA^74v%7aXhyM$soy`7^ViufXNk7=U4)lc4OVKd9U$v3$DWU6wH_HKs$EdXIxiJm z)3{;vCM=X|=*_>)v=2OXE*Gogp8)#LaGh-Bla!9GRI3xSdgvf`%*ut15}30R=l#Z| z&l!B^8_5uPoepsRE_+62OwaPx#FsbD9ijeMBSSR9HoA=;d@2rJw5t~lhyaz(B_X2zG8IlozK+wyAHr{T0uq$cL%kwGvyVXuGRskx(56;dQC5c6 z05qyrq}HNZbF?g7^bu1c3L@p$n+};PjJ1c1I6@eE#H547?&&=I;Me1I7u=%4BdLV^ z{w~WSiSbDElk8MD|1N}z#x?1LQ?epr&x_KC5?S0gLwzmNd+nZxR-Q|UqNje4y_NNh zzHcE}?SiK|uyL`5PMg*Y6OH+_M%~jx$$Ip9_2$sE47}k1fUfE%#MWpu@5Rf$^SJ_y zHK>zi8P7oz4CaL2TuLFTi}@mK3BHW%CBHpOzw9wlCPCndmC%V4-gv*<1sN8d zx09lW3+uh&(G2eh5LORi!^4Iu*ECLKM zi6vTmX1?|1xLRpGRmumup+k-t&)56zcNG6bxzrvYLLM~|3HHgYl9&DCldp;R*+f19 zsKC2sq#vT-2M>^X0XfXVN`UBQ(>jmW|C<_4y-A&{qNu05h;s7<~}V4nXKYF(>}3KPPQ02cxvw#b1d)UYGc2 zw^}1c8`>g}&J`5Gzj$N;Gxo~~)y!o`XWkFA&jW5BIAjy@(Bldv>}9aQm;aqKyW}Ax8s^Yd3VRoO5V%O z<;E22Uo0bPqcI2iOgwu@MgaMOf*3>8rn;o`N$GrQLV!lT78`EL(aVSKR5Lr5f;p=| z^WOUw3HN1B@JGa^gp{9-Z>m;NqD<+((A}frVUiNT_U7-zQ=d1-eL6P!NhtPbnN`fU z2L@a;#~0dOc?DmS*n7^NYtG_jNKA32U)c>tHfBLgUO+Mr4EGIIoL#(LP+eM*H14mr zU7ab-5)loAi~||FxIdx0m4LUu2~~Pjg3gIpOxPV?&f5*OlIaSw;5(j3gG2OVN|Pbn zI0W8j_i32QLD^`Oh#|bU`X^Bt_?vmIAYcDvvm)7xrhTMFHQ32jv)b-o*Q*+VXR(6f z06}wCfDZDIwRuesTekDQ*11n*4f5ZPqK=*1A(el+;QL$aKesEWRGF;pB*}*3qREEG zh}iY2P%P8If?-fq@pT^NtY41m%`8BEk45nvMl$a|1cci|?UOLz-t5$m48$uW$H8^@3UsJ;`fR}IpT{rcGp zNT?-N@|lrDY+<7Q`1JmNhrMZydL$cnY+V+M8W?p&Li^F0Ep_Eq83%RX^J6 z4EQi@$^qaLeWen56CweAWl$b+!DmQ2l~KzpFOYwFv$zZ#8WN)T0bo|WG#@Zy@H=9D z68MOG>Ry=`e<>*Gb)QB;_;OuYX}NmtuKf66?H7tAr4`XvTB%ivf&=7&nzzd{@~HQU zhAcVtUh=1Qw^q54NX*a>goGSmbPB>}ZuFd17i8|kXHSI=CWrN2xpVU(YnOz%Z0|&0 zB1-?nglOIsJ7__l;?KQgy(=b#?XSM(_ZGaJk(C7_K2FTFDi+aqvIeDKGEE@3xekXQ z*1je1)AB1+DTmKXy)O~;p1`@)ek%K#cJfZzoix#bM5DC5JrFtT=Rdko4^z-7$dn`V zbvq>jSPB7Yf~e))>BRM%QWd>OFoA`)R1JqR&%`RMzD4sO45*#OSp3?#Ju)2>(pron zXC884#5s|&6J8M)s4NA8F=XNJFwqeGQE!BmCnBe;YOU*=#z7bjez3ees8b;@N>dir z1cWh^;7tpLH!p%{(v}DW9nlUhpARCP$`H6_LZmD7en3u20FX_+fGv$doP`-(HA$fV z?!kMm8S4No@9o{VZ%wvqv>^h3isVKQHEZYUN}c4)?>Cskb{I3>#iQ!l;*4+Ne%35V zmW}8y&_TKhaM()OwPY+Dhj`3(xPIe+ll`$K*v)`QSnJ$w^j~y72Qy1{YTaw1CyF@p z-&lU;Y49Y3sCA2(4Iz|mf=nz&R}h;+XMYDUxih?-0M@}$>>k4}zy{Ul;ElJ4P||k-_rCyNx@=~)tF~;k9mqr3R~kQzNf#S~&?7w2rsvR# zirzj)TUR}uxSuaBhFTpTa()4GCDj#aqR~1QluA!m5T&4Dk%GZ=H9j~uYGA)ndf-X_12P}|A~AF?)g(usn|yN1T)KLsNUGK5=|lKKBd10q#f%+L zk3diH{C2s7g;&&$?oDwKz_b1G-5GyY_ywbuTkJm?(mBc#Uy~FK>3r6h5%*g1@%=6m z-w#LL!${pnVa3FBux~fB-M#!LK8Z_S6z{yK2tM6Au_!-r^3x%fw`mJd7}OhR-K6r} zK17F$b!gEC1AV-f#_!hkaa)GD|+?+_w8gr zRZ^%}>YUK-ZKh@PzDWmk2TKlMWkXPZD|4$ma?Ww@k66n-~m2W1_ zcc&NNpFH(fFUIWodVn=P6n$#W{V!`nZCB(&;3+v-5GtxpGc3twpr~;4s2vujamB{k=PifRCoTSmUot`ja}9(9Pn!411A~?R89j z?>^5*K1wEwSBIW?J4Ad?i>9m<02n*TsxLq3zo#UW%H_c03xM^2nyR_*5%r1-VO@Vj zD~IG|0c@Q@`TFyvZ5wt2>UF@iP<$Em`_D9k zM%8fFF`+Kp-;S)U=&I_8A%; z>Y}&`T-9|oJ$?Jsb1L!!r~&cnit(Nlf?T|$A~mMZ*XUwF%pQSj7xsPxk=zc8F9gK2 zPNH7FJSfdc?b~>%@m(RiR4x%v*?qOypMQ~WS)xYR?{@XJ*OP?9oslVq0ILLFq&3CU zh=b{mAMV?`@E2Wmyx4m8SMRC{<2U9FEAKqtx)>l;3P*lC(}Q7Et~eO%_pp9;q3NRF zfZd+w8#=GMy>_+WKvG9sjqnF@_=t>_3_iQ6JFnEQAUG!(Z^G|p4X$X7n7_O`JBfeL z-6+NhZ_(u4FNnFwQ`5s3)u6!Tf6Hswqh$!ZEqd@NO4_;`JDaC{p~8-bk&9o^@+m2W z+;GLUUcxuE-prtP3^FL0znpQvW}YyRHg@{_GvQG$m2OL(+yie&MQI=>G)t6*0zg{t zNLyIm{y7~#vsqxWy{cI|V6wg*E==DG{=3z7FJry<+5wjqX#xO01bDUo$8Z{<*lI zJjB|lf2)oJdWH6viv#**(YV;M(r(c*R=kjJ5%AD0o&zM z{iB;RX0R<^*B||aM>YNreX!1Mm1<^nz1e|(3+>_5v6n_`HV(__4`dtyr+br)6f*F2 zg!_;&g%;g;2+!C32DJt-o&ulKPQ7zC*gPQ^sBX_}Gk;>6~8|A#xmg#SR`O?`jEa94fBiJgXM`7_ceNhd;HYQlqa{ zn?#?qodUuAl%RJt|H$kd=+Z zFsdS(F7ak#^o+2F{teuPc#bZG4>?l3xm5Hldu8a1^6k%a=V>i|#!7nG>SlWgz-1N| z_w)l$0*4)Q?mhi#&{HJ(wc?Ip=XjL;?X2q{heAzVlLG(g--svK?($PyFewmWNJ+fY zXlJ}{#-DET>awrdWLUle_hL5mjugn)#%H%=nEXk$&d99xyk!6-E$Bp2N0ux2J0knerRNAf|0Iqmw^H-aPgb?|E{C^jDkTefp9iD@x+p(6(x|XtGR3HV zT9}qA&H3P!6-mvEmGYCiQ-6#$6W#>~Pg=kM-*9W_Tk`&X0+f2`wP^SX{ z0a8QSdY14N;ofkUP^946iobewx6a0br*FJHZE&CWI65;h&X)<%DZx?gh$@?pMqGUv z(iXG;hPXul^(HqW_+#i-9j*p<>OL?=m8-mbl0dZ6grxLZTdxrk+fWmh?XVB;SSOlN zg&vD+&l!8s{DZ#$N6?n)kXJl#rAv?0sfBf+lI)?CqO#_tnMLPbJ+(Ik?b>raCY})Gs7xO#uZu6PtmbU z=Js(}E+IH@7KX<18R=IW>5w*$X26A7_p313_{A>!(%skro}7pOrovkHbrvOJ$6ivb z`JOJihF3X(ihnh~Nk@{T8ZJ2Ox%fhtC?;`R%{i(h^q8k843F-{$ZbTux~{RJIb{6e ze(O;60;cpV2QmXZ8|=!Vs9Km{fzS4c$S)MeJ3jt<=Ok)_)>mKauqa zX-`(Cb|8006le-GfR8JnTJssjK_C$wnn{V2S>TtUTCrBnr&07#DySW^p={EOP7cM3 zo_F+loWMF2k@~r?RRyFInL3JytxCZh`28=*Y$5M+x%E^3*iJ8(q(oAJ1=ixf;+h}* z()^*-D73xd4&6c=`OL)tMKtt8xOh2@OvuOeoOE?1Ogwl3O>(iAV!rE1(hmlu1PW7o z(nSHck!gn9W&PEMr%rBX+HY~c>JQ{zV@+@n=UqJzrj8xu`iD`e8e#W;^E1^Uud%q0 zSRag(O%>q$)l7?l&4B>yrG2~7JUpMJD&Ms=TZSwtoKqY5?_cOY_bA>;l!M{PzyR*A zIa}@3v;F<9JUcYO(9ZK6=v3Ih8>Z;ZP*=Tva-PMrWEceNAa({x~C34bzV zz&@6}UUg0^KTWfBzua#7Hu}@bp9B4w)rhLmm`ki%w@8=w6j?^TbytoWFIj&SkOc4k z2oZb3r6KSrI1=)SgTow^E)sZRz``m8(*rH81l={agdw5&%r4xjnjpY4V!a1Km$i%d z^!&-+TuQ`~X}LF)A^L)_nWv(U%G#EqCrLVvxZz?gXp)lpK5omOzC&AGW=fNM-^M{m zQ@RR|ESV5y0KqjZgP3NSBp#LuzIV$;NjzF+&KUr!z1fQr8}5WtPP_X+fpgu-O^t5A|*p z=TE=RL%jNU!QDL$>MI@K>M1vb6rCay+;5KsO9uG_{*f zS6Z6qAPBLDjB^*Rss@xv{h<)D#lPYQ<#1_F_w*9NU;8F3EX+^udILLnVNHLB!NOfq z#?&w(FgkDXFE4@|tNmkc8FCD7Wb_F>_?KQ9nofc3kW}W2_7Y;?L@OA-;98?VQtE>5 zqvA+sk;*Ag&&wo(2+55sfBqrwNML8#UDlwew6*i+4Y_vRGZY4N{f!z!bt8uXX^15n zD%5@D`&JYH(xN(Y`JJ7Y&Vw7Rz4LWJ42i6R64h7c3r-XO<37v1a)1*Iw?@o8L-d7e zd3$Z86Ccfc>oKj!sZt6XLulMrMhN1yNb#)9wnMZCNBzC1+?}-NX+Z%no)i`HGe->`QJG04IG>Xb97x$bU7Sl zXd_gvH{tx9=Ug!qHJt7BP5`R`2YH3&X+H6^GA}Hzw}M9G$PNrCf{>r=M0wd*iq!PpRu?r{RJp+X%jQ5`3DB^|)JF&t3FM0>0P zK?*MN%Zt~EXATXcPk{7^(mV+xy{BYqK5MnD`R2bv%>Kye{vZDJAhF#nHIJuFAXcsN zKI5udMGJfoWM1JS;CQtOZS9Z>@q^yU_|@Ga(UuF@4P=t;fPvmpaS9|X!0!FJV+6uv z*rRd`HX*cZJP!I$Hk)tM>Mi{!*9%@yHIg##b)2JDcMXgeu&#u3uZ=4~;#jEP{oIKc z#|aBf%+8gr=REwA%j2);I_|)cjK4=Zw;S#$cgbssq-{YWky=Hw(uk~3neY%i&DcUC zydF4(kf7i4KgfsFtt1RSUKya^kxS~!r>jqNDcK_PB}JuaiVPET)E!+Z2heyMW)*wf z(vb}I-JkhUqbepgH9-;p4HIQr=TJxUu}6DJrEp3wYeLX8pz8bQ@NEKjO7z}rZM}F9 z4rBD86QzeP@Q?d0sa)@3|4MalHbp|d@yDZ|r4El-(!G3l82;m`y3CDf5h*^J(Ca-4 zw}<_?0!9VXUV#(D(HXrlfr@TIaR06$T>uEDfBn(y`I>MF%8-I+UJ_;8UGuRP>d1vt zME{=C0oj6{Rd@xWMJv7*$RE9$mGvBc+9hYt$+_wL zv-Pf^pVcq^`dc>s?aq;Oc65C{J;)&3;GJ9ooH;mWjJc_g)u>>fIf#PbYPhVzQ)m>X zUkUpAY1&aCehvDXVU*{($OkZ~3qULqS1Vc__844g|6{CK^C#MF9XaiLSX(vU#WB+z!Z9jdw3Uj5Cr5F+Hj}W>SyC>8ep8Ii< z+}RBHW8n=CUAJ?#v5J51BJgC&G7X~@sWVOi`ehl>$^jcv(Zn{$ST@vlHc9m6!JQAF zI~mV;`?p_=&><;bID?BmIY`F`1l8}r^UIu>h?-?UC1&@lBNz%PM0<~&a(2)38$)FU z&b^39oBfFL@3ORGF8d=jT#H%u`nKpvdQWK^ez^A5eSDKlB^t-xQBg66$y9UDlD13< zvq^>rCQW3uN<63onX8-N+s&c~e^)hgfeMF>TUW%0zBsoMT&$d!_|H)xv3PGH{u8Jm zh^eQn`SaeS$rk$@kvl=-f`y_u!JoS3AYu?XEQUtNQ7z0(DDzDII;MTaSMqP!{`jT? z7rX+(_jprPhdxl5);^(4zT|}oGNDLjp2s>1hHu0{>9)zRrs zd>w)T%DX-(DJwMZQp$E4FdmNxg^>rd(3-P>r&0ZCOTg4s(MuUh35rVv*7vF zQjvftt!VCACu`m5&ps&>yJwsGBI7xp{S>*feP!hj_mc*Yjb#4@q#H6t*niSb)on~m zeBR>z>i(z3T@m~CZfa|#@*A*MrtHQKSoao8sOhLtAiAH#onf3=#QgJMp8A5*k9MjK zggv?{;`*y+L6VNDhwwgM0e?28i)IS_6f8b3t1j#geWSe^K)akse!NLh_J=rEi>j8Z z3MIevem%&qfvM|Bm|Z|82)K9AYK~k+Xxy$1GgZ$a}NFQd95YjY2dI zMRjj{M-9;*-kNVJhk2s6-;Ne$Ws7s4u|KNO53fJsoLlXlrw9KO6Ng3iX`t;r&7gfrk^sa*!UG4}fa*+E2kg7==gF2zX$%B(?y8$h(l%3J`mF2jY# z1sYU*5$Ra|hzk^a8i18y2|bq}-c!W`Yr_b1wt1S^`rM|7Sf~)Ha4b~KWXg_7%kz|p zRW7UP4iW$hAh!6>vhhANFA2#-#9=aiq{%)6qF9%DUNNAhc~jS0e{u)%J(VG`Vt3oU zGoG!!=@|j4sWXd2XJ|m1r`z4)eNKOj{EUBy&0F{?`}kaQB3fzK%$n~sFcb^;;y{Y_ zs%?m6)_A&PQD19_BC9@MN&2>wK=RFXeUjlva3}w~#f?~PL2Y5&Z~1X*LSVA6BC4t5 zRYtXiE58wH=u~j8an`n+e{|#PpGP6D1IZ1iox;P>Y=uXW!vWI@T zsNH^4y!Z9ereXF=qQz>enAHL1OZ`>O^V2~y@(%hP_w?nJq=Pv(Ob)pygVWW0aY9FK zg)vxuOmaUWPtw9$!?)~K?nb6GxcF#5lkMOEO1s8I%$v~Oyh&i}=@#C>kEOd)pYO`H z5`WRHtd7W?2JITK>E^g^rgF4aG%^^De3=FbnVeh|NnnCGuto>!(wCZcjlJK*xc_7 z3uz>m5NV>wZ5!s++(K6h5sD(0RBpK>xhA=kqM}jgLf`t-&+o7IIgj%^@Ao;c^FHtM ze!U*I!GnOnR-{jX3=9R2kvg3VxE3Px1tZfUdbXQ<;4_@uOq4t3BAXO2mh>4N3{6OP>d%-!bxR_~RW9%nK3YDD;GER|G-;$1^z9B)$|EO&95REGVgQ9us3I1*} zaZ^xoYQoKBu!0~nb&fF=V6Y>~hLCZcO*xeFnvWdFDu+F2WK-&#`pe2i4Gy}5`YP=x*0A`jVn)(WJUg=>HKcKv+zv(I~UnnU>OJ3E=`2ty)^6N8eGy~_}Uh&4)_PhFF4)039^fO@?R+xGrEPcub3|mgq)c79In=+sKbM<;LtZmj1nuCO{v?my|2GOTdCD|x& zgeU4}A1?YcWR3|{j7@JdcA~1lfH75s_v0mBrhfL5_k8^52R)F1D-dxjSj3yTl34S2 zGOEA&?6I4+Kto(~?HB8T6V1RJmqCo7+vjitc}GP|c@9UW;)uA7FdEZ|m65^X)cz6v z-yW-{WlEIT4)h5XVZ#q0Y27L>$nNK&2EkHrn2%aizx40s-G0w;(Sv3>+6DJfBGyp} zjZs5&ZoUWF!Xpuyn&}>3zw|QS_Bs*GlN_}XI!u)IJVJG??b}YD@`=T>*GTrxxUeI~ z9`>0jH!T}I052)?1IBOyeplx0Y0lq+H1H3(V$DTox(%je-EMb9-M4qYK|OcuoUy%R z8a{^lELolzG!dnL&+LJphoT05eTdAFl)*Eees&>gRG zry|4thid2)C3L~(O6z}dofa$MB0U}dACja8+O?Y4Tgrv#nywagmsx*xLW9casB%th zba4M1un(;_^We6uCerH7z4O)%kiE{^s5;66Qfb3pee@*T)5@=LVD^xe){cN7)2{v| z*y6o8<_n8ayQH<5ucaY=bpF}zw=W3|M1$qDLGI}Wph+bzB}SrO64;Nrn>}T2eW#De z=xlcH8GR5jVdYqrl|fmjR<|!Krb(*TE(`@LKyU08Z<@`*XMs=WR&t)nbV~rx zQ+&UE<-BZpmp&%YFCcg4v8Ld+R~XqqVaIGBaC{*XZ)~(Zw4{MN2DV5H+>xhz&IkiD zq04TuCeM5L$}+jJQD$%A)6zNx1jVma%+y}<^TE`BB#p7X8US#oZ8hreMNGV9uKkTf zb-%N%_Zm)Nhr7;Vjz1);-^(}zwn9r4)p6&i&&-28zDRI8l6a?w`^rR^m9g(pZ@<;t z%!_wFN=XY+!(51c)hx2|G9=zw?ss^$>wZ2Kzd{%S7BBnw;c1;<3tEc%?AUts58xah zeVyg2AAq=f9~)fABI2Z>xvJ&M<=$Dwg@SUP>S%gmz0ZMdGdG zN-1JA1+BNR&XkF<=KLOyI}M>ox4{#~iyTa{+f>Xm zv2z$(#kHO+piI$&a1{EF#ocESh|cX&}2o;4j$22(F1u}di@7x%h86xd6T9-t3DWw z8}`6UArO0YSAX2#W6!6x7Bjh#<+CZm%1BV-fp65bwwi(i?IF|)QF9p# z1r7%_APO|BP@2G5>6!Emj9On0Ses1xjorvF8&)a8g_LAG`ptgbl!U>Y0vI%qDBvO5 zJ2kOh3??x1+AU-9>}%l3aMWcTr0}UZy1ucRyFhZz(s3WSZsB zW8=ZD@IxjPLFnhS@B_Re&6>xRkek0rL07eVh+km*t{dW-XyL!i=2t%MI3Ya(D8OF_)3>wsPqbvXzg!ozzVh_ZOx1kk`*%y#rh`BG$aHF(*>}Tw z>#YHiwD&mi*oL4vHC&6u;q$?IpSvDA@1i2r)$_=QPH9Wd>IKktBh4ZdWzkXAnKl3~ zA*IImV&YiJxH7Z9Vfte;lz%w#jo_M`r%i4QUCJy?gZtKyo}c*dk|MVp6RGqI(^fN$ zI*RBXpog|>&2x2Bpuo?7X3(u&N;PoRiI=c`ia$6X+b{hVdpEnM>$HUa!VRV-xjv6C z&JL9O`r#EPSF8|qi5~`ggE|DPK57RlxBp+In0bE_)F;7{wX$V!QE2||VnI060ryTc zXG`c=wz%x1v44MzgSiPW26T3MZ@n57yzuzDIXCh0eQdVLXs=9~#qMu~T%KX|aGKa4 zpa5Y$zUYoy|N6`46Hme~zfl8%y1jv3#_!+mQVB-(N~Zb;t6BwfO8`6Q#7O#MC>UEi zsFZ7om-HV2u)`GneaT0is~(SmQsCv6xI;m5Pp`guUMaEjZNTrs>vlHt_@@+ze0jF zZ<8y}y>BN=Dn_Wbf>LnnqN47iW}^J!CSioH_6_P!+{$uf5BjItkvR>Q{g2x}$c@gc ztbgT7tbYhqR`*eM=o3)@e&||q)W7|P)+N?|ZvQ=c8f7SS1zEP~xv7#u(MgWnL`VKZ zv(cKN_9N6w57E6d(x1%t#Yg7~@;v_Q?V3Qx&o=|xl_mmAQj={`ZhUD@G#BI>MV%G} z_L|KZGVYuK8?dsmZ{Vk|pLGsuq4Q9XHa(7_b2ERD zZ%Pkks$|~8{0|t~VIYJ^K+MBR6`_TlNpzb<@^)k^x@pEvi@O>5>XfDcoVrcu6DZG1uoK+z*2>5<5S&**NW94Y%n& z9Iw}NPc+9|+GoxWanor9%uQ>DHIsUk)-uI>`kfvtdvA-X&D$=D-du}2_OofNWk6U? z8rXNSsA!k>{toJQ5ZQf0&pxyALwsHwp$tn$q0w^ykR2+1nkV88j)RhhM@CRSXmpOx z`_|kmXjHM%8LG`q)*?{h;V$D!?m1HdM`-S4AGv6Oc$@3gc64J&+r%wh_uFLwxJth1 z-8ic|A(Xxt=OYa*w;8=3sx=`gA^52qS_<3K%aF+@28xrt>ky&gKDMp?a#btjs;aE4 zec7~a?!DSH3m^M;8#GekBj^zDB>20$uCA`ug!tZM_A>{FSnP6;P_uAzymu6 zq;^a|f5RZCd7Kwkz{EiL?Q(!^43uOrT!IuN3ptPAyr?L9q=7OE?hN+YN8MpG);@}$ zBTM$t0Abud$Pfup-Umg)#U0M+=|_QwP2& zW2*&D&hLqtHF~a|ms(=Oo#T4B7 zYung;g@C!o%cf!bQ2#Ov;*1wXVgDe56351Le;$*`{2J}VYAnC!Ol2T-gVt9-o= z0AxxqBaLn%Mj;lYhtJX)v;GP-%9B>#Ige<8r;x;X40+K8SDLXL_8j#&)O0@F22_u> zK`JLEX3?T-^8U1M^0uQIol`j!urHpBmtL5>ne-_j00=C6V9g`CYJ{IPx4ou?RU1PS z3QeL{88{XeP5=MJ!_d&~sB8O+<&3n4QB5}!Z6RbK$<1B~c_*akX|%M=Ny9V=seT_Z zv$G;3;(b0ndhp0CNv@xCW|gcbl|3otQP<_8N*iiNWwzRS1s`pWzvwI_GQW-jXNxocrTBH@G( z9B$b^wCjdP9MM0YZ6m0e>mt@rm(xO9 zU~HcuC+YVDE26wy)Eo%nhE9h6aDrHXp>_EM%vrR6AVQ_$Zk1#-Bm%TR&V({{sUHl$ zk}E(U-gRdZ_`3&~3x#zThaJZNu|Npe045nYmyZ-a4f#&>4yro72T-eAL)Rxy9UxvI z%wb_dK{f9zvPnu`k?3;R74B~F(GU#qc4d0^QO?Ed)q=-y4tUQH zb`;F`Lu_`g7x8e#GChu0A63L%RSOTP3brm_ls{ny3?I1c8L%(q8_ss8<3+MSq|y+@ z&LSV0yF=|Nz&Q$35mFQ$!mus?bOIP5)+!+(;ZgPlMK|rK-xD<}$S3Ahoy9LQJ4o%M zIJ^aNL;a#hwEV4I+@QHFVTDq)O z>};THPbCX;+EiwxAlme3bqPWd>sVku&^q%yhH#ZE=%NxrwSNh!>l!h&4I%qP4A#Mbd;77R;Oe@@f>pAJS~W4`HrkpCQoi2O z^iUwJiPwgUIYN6(KIlMX6S5(t^Q(n0;KjUb=mDu=Y|bXYjF--vOT*GGm2lT&Dpt+( z)_nBJWmX-bdRK@@gJA>=SZOMZ%es=r&a<^GfPULQ&vY*JBm0n8re4E@VxnH&a5|E} zP7@r)3#tX|tpY~y3>fgeDL^LNqqLK(vKm$A39sNGVmm7A@2t8r6KmAX_Nk#*B+ib@ z2rr$2;Cw;hA@4DDEJkU-S#r%yQv6RBVyO-uk$H;F!|uSxO-TuHQ%a*~ z6mp`WnWr!fY@u=l4y=sC?Ie$ot`JPI-7tvjv0Gf(!*t+d0Ecni14Omr+0iw{K8{X*kUzj)`bw7%0XC0Yg@3H(kQ~~BO~zia-6aRgtA{V zBwyl84-PS)J?k@f?`~$hBgfoz4qxc;U>d#ENqW||z$DlN;U$q+A*dg{3q_QWL;Kfi zEsW{_=~OrAVMJ$$R<)ZJ`^4y&dum~U7bhkO_CUP;0kH4_%F9zHppqxhW?P{aVkMbY zESBaZ;+{vjs1XvBpXNQ>7pNX@n4V)Tb+Rj|+0k}B_Ar4?m%JB){KM0na<->24~ixv zvLrcEC>`2(YK)IQ`#fNjP9Xk2Ddt##4>I$pQRB8A3>62=0WkGmCTI5wt74+b4R>?ohjc zu&@jYmHr-PA0}%HdqQ2gk3<{b#-}vZ&J#BCPnT)88&NkUJhVkey0hd?f^hPAyq688plx!3aow8*H9tT-EG#C-< zlV638_CAs~@@si?@Uo~OgTrb1e)ztK7?h*_AUZ7=XleX0)N>vmG*)f>ty2qg2ojyL zDg%W(O5m`F$m2+A<7otA#2RQ|_#uNvsJa1=_4&gwGJ5;#uJL=i4nG83rJV+e57S3S z^*NPp;D=L;*=2Q$Y(9)pgE%3s6{u#qSt0h*AyZg7XW`^!Twp(}>LZUo5lGgFh!rjA z|J8=MR=a%6y+CqJKba(TZ5k4}#+0bcBwVVJ3`e~B9Q-8z(P?;k_iMSHYinM$tWr!a|6P5V6hij%+5 zK)%m~NqFyAWycPUbwLgSWBVuyT#Dol+Q%D1*A)VWjr(CFaVGVOXstM#EbuXiUv1^; zr60@1Pb$CJ!TppqCTFN!z5r9??+E?#8!m?a#rMADKQb3{<%Zo#t3Gt(O7`H%00iyZ z04~xV9Fm;aq_81OZH`haD22TZHstd`S6RnARd*6c1E|JDge&c zU3rN)kR;hYMZ4C|&5^@&yW1lrMu3=u1QGw!q1_d6HMpyS@}l6Zi=kgCt9sTIId^ll zS*IsGykezr*;loUn+Zbs4If8IY#D5 zOI-02I1%m^mklHF{6lWFFdg?kB0c6v&uVg7CJcpAp+Y|Ve*(v zAmDy(!2b-^_Keul*ZNZ>e(HhxG7=_T{b1+SizfePDkMo+#3xKTthL!jj?MNr8Cj=P z%ejXPbLRd^^#|{l2iELr*Q@BMmE-E=K!;Y3{=6qx^57+GrG?h}`w2EbKn>En0s<>M zoGb5!4Q4hpp>*TWQjC@p%HD`|`In-DvUb2CL}w8Y1R5+xbb`Trdb7X(04s7{*C#IB z83blO2kC4J@2lf)4fRXHP6c0b+QeVvRsPl6G(WAa{Xbh;l!2=GvMamd%YiKk zVUT~~qurx^K#c^4^UsT*8dbR&m?uJ0`JIa6s3B|Aw-b{JN`2_lB!+=CxTY?~PzKSX zl9k@!IRL&270OvoxuJhzY8aF)zMTFvNKk8?_!7co_A%|GP^+*`USSL{fS~pb=$2}s z)Z@;#XbZw#-HuobSVr2I8WQw2jI?3Jn)q`$efmnzttHt<;0k720}I)+)$S@N_U)C- z2o_0v{&J#GskX1|O+Aw-xRZ9a217ELCC8;Boiyo=uJw3h(k_wVl_dNwTsA#hMb>?} z5A-G2!*hjk?eY33<UsD}W6{pl)maDxa*s&Ye#Z3Yww3)E zjBZc^?dKPjsx;e6Zij(HPqOQdhek8?mJ^Y#nz33#m>NSZD(QiV-*IG#sO(P2|6%|a zR)nn0+)?omjEMObHU*Ay(^W>@Li!@_h`N>A{mYHgs zh;p-_B+L;aN$0xDC7~J$OlTSF(=h=DhkP8mYH$bm5A(+rtaY}T3k8Jl_L(Yi!}QXA zmJFI_4x28K@{``Q7iZq2M6{Al6HX#?YlIhzpj3&k0`F6qchKs8d;fyY61m%xd^N2< zzw*%+azP%L{Fa%Xw=I}6)>fOPub9R!`ra-|{W%BOodmupN*%7Est@)4168mOgMSck zdibtR(m}zXwr4%XRx_cS%>n)}b5Lxxz}N!y!;x?p>JO(UQCz>OYs+gmMf2}x+8n!= z^IOmbj^Kdx@j8N~^~J67;0q2QAp1F0YEd(Xf=MWjSRQH`KT?vLdgo!`%}=Odmz!}W)r z<3#+>zKUUWoQN!bKH)YP2Y|(Y^&KKXoWCjV4Ozl>pp??(djGxydpirOw zv!KW}UdqVh1idL0LoU&v+Mar2>)MM{n^TWVtg=Lb|IO#Z9J>6dSy$}IkYtxMq9mC` zb{e9nrw&S=Jv7U>L8d7E?gxC)xMY%zlD*=kJN3^MYacIjKOTqo^Ox|?c?#o+i{Ku~ zLk=I1eKB_#ZIF@_aAU6>wXV#>Cd(eJwPyO+qyYGwpjXPn80EaTs-FM}r2@F0_L|rh zN*}A=*Je!oai#OVXVS&>bf=CLwnc3u4cC0)gh~BPxNgM7_uaWB@YAQ&0u)3GBg$PpoW2iUph}SN(7rm;2&fesn3dr^n)GdJ-CRisR!sS5+u*wB2zlBl2CG z4s9;qW3rSsmM3W-jR2k$H+LSTb|{aPngS2z(N5S8z{PrXI&@oYhC=6Oz0}&C@07%J z0P^jVqxZXDL2*8~V-VknAeh=0>3p9H{Xa2aQpA8wfCVz+Pkg>D&f{}d`+*BXado5< za2~tBihPx>b5~gFfpPZ4jUm?S�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 )kq7fT+yipjH;bkq&zn46nh3ZaY4s}Y}kpBNXo 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

~Zn_e9%}eu%@VTs2=i=RTz6d|6StSn! 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%0Adl@gPXAn(ub>#-^TG%2O8I%F2+*?hKU6 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⋘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

_j(05I6bM_$S?w0C;SDE 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%0ANYODCnutjJA;C3956)RfRY4|oXv9$Mpt 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

`{JhOK3*3ikmbz&XE#`^w|P%Fy-xP{B7mI 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%0A~ z9UnV)`uYO+xE{-OpT~HOwjuEkZfgqhbM%wcXE8+OCRU(}RN;1_<@0H#%y|dLvwDPO zHm*M^l--8o(YB_~Kbo$yRVSaYbfEjcA(Am=8vPy5CJKc0yl9sqq9y$xB-|-g7y6+vkdh%Ipn2OFMEHCXu1 zUe!QL?+^gD{ee58ezhLz_rRVx^=;pqHzAr)hf*C=dpE)oaX9`-hQv|j{3DDFl_Pxz zUR{|HJ3bb}b#IEJ;Nsw2!}& z_rxp^*z4s=&@1pc;r0(KQesB?cpb#~wB982N28Vu_k$gYSU9$9=UErDqE>-kQw@~d z2>4)G9zfN;>jFrVK(l3`#oEdJO_S?rINV3+fa0Br|3!FDlce<|yb_uUhfh}goMf50 zW@Zd6&`!m=&kbKXoX@)*9`awHm8(qAIV5RUrzTb_}XiuqwJ5a3>?-bPPf8TFKdx_d z@%={VKA1Zm*QzgB`5@)bSYfUT4|{vqu%B5roVTSJ`=4R7yir{7!g|cNI`M&Q2rgOR zu?HS{XG6Tq%&ufKbbt#d0yAeIX68&DEb#eXn%v0seQ_fn09<9h8#W92Ff*VYm~^*9 z&K1#)6a31ePWfH_HnF)v9OA?z6YnA%s`dI$$j9iIv{DJ@Z_dgRwc^XPH~p1jtbI|5 z7wg;w$<7_~c?-QO(~EtW3geUxfU>5u#C{>O<9uVh@Rw+KAgmak;5w>o9# zXw{kVG>DLy+^@TeMao2$uv-6SlqKRtnqQ@X-ql!Gqs$m-?A_DR80!IqcgZAHZyLFj zpj1+q9&T-QEC|44TV6u%XaX4N=+zmY#;VSoIj9$lSu%PKw~>zIYQE1uDq#=6F6lbJ zA1iwYY}w>u>kqFa-H6~{+)#<-?%DAr?(I$^JlFX;-Z+}>C8W~}xTV-<G_4c`50>fYy#Sb?^^5}^Z7VdG(SLK{^q-7hXy2a?L#4}x|5KY~ zI&30UvKmXu%@^X0L|a1M_2)AE77nPzVbC$&L%;(;PiJD!A?1fy@k4&C?FWYw&)%us zI#HeCdg@ue>eBWcNvjoq?%A($XSw@hD@`o`p=RjCv(rMt?o!zk1C*DY7@+oCn}Buc z;WRTiWqI^A33<2=Ea`(j% zjTXB+r1QV;aN_%RjJv&pNFNpha&)NnyCquIpZqQf68MUh9S(lX*$@peD1ne4{S`WY>QZD*ne|j?0)PWH|a9N&gSAcL|{>dpn>E zloeXRiooG6eTybS%+PRua38soU}Z)vX_p{ncTWX69GrTRc5R5&Lm=FX$WrWayd)gT zaAU)k3M!sJ%k9o+4uSL>bjbTZK_d_qv z^P;;*^OreP01Fq55fWRFl4zCM1|zMFj@+4S(R*brvEnN>B<-z zYdYCE-E^pIL7`APok~GK)xCDahqUPBP&uI0TBd>O+!N)iqPaQQ(2`O1=@-{=gyqd6e;Sk=KV1XKz!=kc-JakFJ@Mbqu-t;)z4B3Z?||qw)h!KQDdK~& zbqZ4_6YG^nrMDGCgpT2IDWql~<}eSd@h`nZKsYJr($|hX@Rznrh^aZHr)oA3Bj0*)_ zYLm#M`{ETyNBYBHu2*T}a`QCvKv2<+8Z7 zQ5MpKs|rU2dQ&DIJ*2KT0*80eF0|G|iFd|_+XDV$0KyNY=8|Cy;r$&rE)Z*a_zWe? z5NhI#4-n$z905{Lnlq3Mkie>R-7pOxJ)h4UViGF|*H8L@X)$)r-@d!tN~z;Dq>6xV zqOrj;=B}PEBxdjXy2$Uo*qC!Osyy)g+c=X9O}FbPF(PXHdwpb@xhhjS6FB5XQH1j) zUEK=w0TUXpZhyKv!J;iQN!|c%tC1KjuLUSDfV?@$Bz9l|(X zTdF^TD?}6?0($c{Y~f<46N=p4aMF99&`PL>m6gtx%XjV{p0Lo;S@;t&aj2?q?{cT! z_8zXTSp#4Nnoh#*QHW5_9#)aJGfrj-IEv*b*v*5Wpnu+$e78amhEmkZ;}W#}TZ4*AXcuU(RbZRJkpN$!n>N{QK`3|Z1Mjn&K>D!OYfJu0G1Oncf?5%0-w_1Fii=K)aRwAn!yu`6^b@O?%SfR4_-H`0SW?)cAOOKY(ZI}?s>BR0XI!m+$~pWkof(M0e3ybo5R=`q6XL&xOs?2|ZgSk||cun7+DyKL7JQS}k(ti5A8 zgwLBk7nS;G!6FNjxs6T8Pk!h>hs$84B20hww@r86rhG=G9y{Ap9rtH#M%*dc1uq28 z^Cz_maxtatf}=sD^Qtu^^pY6ODKzj%kRoYv~uMXZeT9%wZi>yUv3 z6t<$lI&pOk+g_4xSmh^bkN4p5QSoU(h0hc=GCExf(Y&Bz`QwT~1{u|Im7ip9+6P8R z4?IW_8FCU0vk#0QeNEo9{J1qm@J#*S(-F(Zd^IGUhNo7Xg;KZsI8uQ;=-pu=WSXZ1 zwRc}0y_Eep;7zhd6zYG;)Gy)iKCSkVWht|e47-;-#i2GUK$5!4@p3-sG6kYEoJxy@?X^69&Jdpu4Jng=;QEPsb5J8A0&#; zABFU*7ZznIRb317UiV6g-|4{b1Q65G+@!T1*p6@m2DJvklTWr9-`Axc8ZbZU8j%&r z;)k9rT^}qMH#pfZb@vL&ccmR`B0e7TzGZ@~vtF8!5icmbXkpW$)l?SwRko8gKPUAQ zyY|xm;aW$NO6TqAP*cXvrd=2N>}>iY4tnBGH~ulq2(`_s2GknN5{|tPAK%g$KI5>< ze(8n<0j{I*UTlVPXPV(f(+bv$d6Q>FS_oG`eTXY}m=!Yg__)0$Uy~$r%g1*1`d=)h zYUj#c_yQMo4Rq+iMS}-oIm#odek;~|)hoNo=xOw{Iw$8?%Gs=FS|@`kL?yyp5{=qs!L<4*grS_l(B z>y&qO@qmv)doRC*Q-0GI{&gSp)aIkq+0no?#pFzF9w15mV0Hdl=4S+XWdmdD*-%zVi9M zNM*ovtb{-uggBoQb8Pxg<6mJBMOL`e?N%{r>HVCeqYr!ZFr%s$hCw%FB}An1MziLuO1oi)6p-A>6nKf0dzp{x)q_s|8X31|rvE+ge7^JBFfBo5^@ zW*{6k^7ov<)>;yczag7kdjFh|tDUy2*{>+v`*Or)*3mNtcaf_=`yN+E8t=~>_SOEE zS%-DxaMSm|@~wf|73;pw6)8j=Wl&_AWXen$0T4}le9=&PYVGmiI*H_sXFKsbBd9wl zUFbmoAfd(JI>|8wqxQT0iO@s{_hy2cE&hA0m$V~-&WE&r8@rnh;KPFY2J9?|MK7+*-}Y`^Clu7vOdqUKJtH&FZrrR2G{Vamki_22EDvx zvVC(!8J7SR{pIXo)2or)_UKedv7Vw2gdUh3FxiPT{X81`oGz&m&z|q z-n01kwDj>J0fOLzJ0-g0>k)i7l!RP2-*r)fG7>~5@0V^BL*fVQwNoI31dp);NDrk! zRooL#JZiURxKHdKaL$Y}6oE`X>97h`^|Ge{C&~h5NM9ELHcR3`QK{zMJ7^WMEWol* z^=h*dBk8e>=Zs#O>&qg&okpb^a&O=d05YDMb?~1Y?5S0T04;Ea=)Xz6ARea3EH>_ zmOq$yBR3`t+{f;>%$6=sg)*^EucsPA8+c%({VDz}WvqV``qJkeJeUv#!S z-CTXts#j{LX+GCPA^4dmO%xsehvCPy{#j-Fl?A33FMtpF82rQ(NWLz4U1qf&_yXGY z`-nw#gjnkLbs9uIg0v}f9TjQ^+kzQ7b=Mu@b?XJc7ZrNfRE;+@wMB)-0!kw=rOvm? zD2=9_oICwjTBZoyTQ)}d&R84^o1$6eTNNHvM6f1E1J8L zf~o0vK9>nFQRyU_N;m#-Fv652B8tr6X{-7-O9E&Aeg#fzzoP-OwZ~+0t@N<74jN?Oldu{yrT$5k#ad4u)QE(qIhvGNN+>! z{|+dkCVcfb@+ppVz_VaSeR zQhuG98+4{jUbng7CPTW?9(*;Cu#vbVLr(awwg*@q#&XGo7tT8w!fn=1Lu$9vdp|c` zIu^?M-AC0~pfU>!%Wk8F66FTPs&YZlec{vu3xhj99)4G-j7!)>5C3Fhu>0xdjmv8D z_o-U`r|;^@-!@4HY?!$(#f&Lm5uOR(LI1P2F_Lrb1s0_+JK9y4Kus|Bk1jId)G1{c zH~%hkG(&b7jM|@7^U+9|BscM04iccvn_7aB_PtQ1Ci$mBFkT&>sJ0Dt2e&`234Unh zGj<+mi_t#9zbuBSodX315K=+Wmwl>;GsD+L3fZy>2AK)>z9Os?f-@^Fc?(AF=mD#& z#<~f!E^u~bt%s5GtJFVA-7CTQ0mH3^IYqMTMN*N8c* zdm12;vk~}wwxUSn{Zx4^R^Z!N0;XxkoZX8yUl0rs-#u?4+9t&-g0cwJ&-izna`@%Q zcHGY?0H=M@0`DYA&iUnOhrk#8$fep+Fq*8b4`8 zFi5x8WuO*j^qqq>PJR18US6ZXOm&|ZuuW!!fCoFNr2K9!=gfp)ORAs8lr%dX3_ctR zE5k3cSE4te7c?b=-qAENHM&?O%I9UGDb4lOVB;K_LY?=BE}_N7T@B8PPU?^{>S8s( zT+cYC(3hdhoc%TbI0m=6yL3}Js7zSr+lKASKhpMICm(b`p-17Vv!;*Fw#J(SdRplI zzbpP8Z~K9O>s&a*#SmawO{xk?akIkW6n|fjuKl%mi6!_dNl<8NSFN72G*pk@nx)-? zaJiwOqfNg(;e}X*LI_x_Xzn|F84Asiwh47g82`v(4fsr+Me@6M%sl=e8pgjyKia(` zLcll0qi?>VTtm#aAHwpo;%GI01LT^0Yp>B(mf4i)E!)N{XNKa-1=o<^-7x+Smn`S% z1D1@F42#96*j8;TsM~o!W(jjs9hH4y!Ud)M*bT!Iur zijNow%W z(k4QzF&ITP<3%FyRL%JRPc)CM1#i8B&bWlWdmxICf|Mq5_q=~i`zhtACe^sQ~V^8;pAk6PlJZql68zT^dyr5InlD)nnvK6-aQnJp-CJ> z%JmmYdRAROYwk1a=-c91j_+;)&vCa{N%Miv($!xkPnV@L6%c)M4}A?!FQ0tpJ*9l? zvF^czhki4`QgYxGr{`-UxN^UFp;Fc;f?(vn&1f`a20KKouA=Hp!SA$0XT*@(Y@WU8NqHPn11(2>8#6 zBEQN!0eiDEE)H@;+Mu3A{HTJ>YCecky?)|Up?Xqmp4y4nBTLgJ((_y_s*z-Z9Og<9 zLEXwbv}S13&GHD_*eIypP=AK_Q&D5GMEtdiLoR3gWs|V%qrpWqsj#;V$)>vO@5bz@ zQDaV_w&shBMZ~SR^;>Sd;ji&uW_#Tw4-0Qay>FR;K#aa@-V@YdvhKalW0U=$TrXy% zLvRMM_rkYxPPtxagOozmgyncsC8-oRBMh_Yhy@H76fUm*&(dG^hvT9_)Ron1RDGKL z9Oxs$ig5}AVrfT|h(Nin+EpSD55yJKt$z7cWd_2 zgY-4}V2PyFQ#$>9PL}1wzGu#|XS3T>)qI)r`d-tyYsdtX%XAqpt2H_km`<6uoYJCF zfoQF3#g*Y5ZcmkUL-Z`;i1)pCBcQLa2*U8lKXWJjp&wQ5!;M!Zccwb%bV>%^}BrPl@Wx)Vyt`Ly0J_=^1)r>ny` zs?I~uly!YLQq`vxww?Yu0uMKGHa!1{}xkjNfQF60;~$A8WPqV-Ux1G{8ikVco4AbwBGx8!~DWm%E;5X_M;J(I68 zc1iX=kR33g^>HPR<;yt{AaFyich6B1F0$fQPy;W)8q#G2b4;_Sge=xPH`EVEG#FWG zM@WgLY0_I4m?S}6iuew%W9VPy_(>~nv~!fy$S%OS(Mu8GOH*^pXKw_)_QP(DWI|tj z0eo{7*bO9iNdMgcWTt2y2@l@@0Z;t;;hbJf|S61n~4KP;UJ0sy}VH(?LDQ6bksY(Zy)8x#Vw(q zMG-oCZ7f?KNVjoV_+cWuwA`0{ViO}#XeZ7>252-mK75Agg_0eWQw(6uxQ2Xj+S3AAf!Oe2#|Li4R%RN+INbp1z!wp`@NL zUrsW2AFN!syX)Efo00(ZftR~pXBKr7CA1LTERNyn+#kEj$-s63koi(=hlzYuOq5rj zzsNijQ{^C(T%Mjqqq*iwKO=FE2~sjIhodDz-m3VhIqZxhh(w01F82lp`*AGAs8DO=P4# zan=U0Fwh`L?3kO@z7G3_h`EytRLpz%$2>tW>E)Dv8SLebeoMeIG zeX6v{VdOr|)8AkTd!DfmIN_&lpHTbI7{Z3ifaNRjgg;6%yuZ@d0B$8vBf-PMcx4(A z>i4`qm|A*pcSiY5KenGD<2%cn@?rhMa|6?XP-(p!(j3WYnjlN^d*;jpk4`*G-FUB< zb;}=|@7_$%ouW+RAriM8?xKA}$SHG>UiYB`!``#g`yE=Qv(^tzLX6Mbv-d0?8}agO zW7FFFP)lC>9Tbm){)h~b)nFuMB7y%J{CL(RllRM$u$Ltp4UYKH{Erh%^pWi(+Tb}) zDc1y2h%w48$14W7%il?`e(~djH0XSgR$zy?pjjw!hWq}XKH29K{RH4EYtc^M z;Tv&%D8CXxVoxH0whdeH|LDV(LXAQ%I!s3MjcRkd&Y|c_x!m7mV8G9k!dqOSR4Dp| z>f{1>;G3)s)7Q>@5SiZLqb# zUvgiMAHvi{Zki4++PF6TVJPp)QSAy~w{kkF&L~>}<9J>riCJFzTT_}abx-0%f zgcGjlJ06b}JJa2j^+|OS8LNvj#+Ioo62L=;(Ug6_E#1ePo&QJCxyLi%{eOH{Hilss zCL41fhPgI148vsZ3)S4pWh6~e(q?m+kr|0nk!v3mQRq6CM7p??OQk4%qNQ}D`tN5 z@_uQ{q3&k)W#ALeozne@X!j*x900ffX1zl3+jP5S3Pm%*c2bjaj`xcpPT$BurND#> zz-rH0&DKA@9>KpVik-1i=~6m7SGiHD|Hl2_W9kKuIKFjyep`-x?#lfhss6+4gGaeA zmgsa6GcxXC^z|3{Q^nz^Zl}y%RP?pH^}G#Qj@_i~+NiBlc1JDog8tlE_<@e-hrv&t zgvW=fj)N(x@oL5#9x}{IevW(exi}k>V!p|YfF=JWIXOjuNnh@f7|BM$3_oi-R;2sE z5DrTMrp|sTZt31DBTJ~A zK7zacPurkNS$23*7ffUsZb%$V%I5`?J=QsGx$@trs3{D~;O|gvKDIL%|LwoFq4@!@ z6KHD!wTKoqP*RB>E47XMF?S)k!h4&#P{-|}B)cQUtIVhUpe3+6@BC4}O?web^(aR@ zf7QeOrteIWR&4y-GIY=X)A(=_dUk*d37WG6F#A>eMj7;*swY1@h_t$!|1F6c)VCd^ z7>t}i@DuSg@*T{H2glsYfiJQ;O#LuVGFS4{%j7?Ov%U`&Vb6}z)H)P)K{2p4_=2+_ z(ni;qj~h?%iO)B1zuwo@3K_Hl-`MxPKZ@O8guF?B&AVwlhf~|Da0LG=ahR9TpX8 zxf@Oz27$FJof$98(Dp3*D~DPs=1iqChgmS2xHFCxF-)W8K?5z;2DaDl_8vzIiD5&Z z84&mxG9nx_P!J`83!3L*qAot4GB)1!Tu}pqKv+2cHtMK5bHRtT;=?!r)Y-nJgsu;T z<&+r@uDQJkT3{eC8~JfpOq~@2*~#d*=%H&o;o3Q}*>EOK!vgF?&49c2D`J)^w>inI z9*>)%$E+LgO>C53f8H!Rois{~epS)rb{zq9mD=Du;ae@zdW9FN z+<@KRgn{Q50;vy2IDrAQhF6oGp+3dds2J< zXLV0{7f|^e5)uxZV!LcZiFRaW(fiyCYlOLbult9MOudLT`*TB6l;d6S#vZaRXYr4l zNMXjc(Jh%RQ^$cYKsl^{eenGbTkG@bkO9%rQxPC6!H2TY2x&*p=1|Z!X{}+y z{YP)zEwF9e;r2!m3lHeoL;rMP)T;M}+J~=#O5`knIE&OBg!6zr^ z>A&6nuCE5`Q`%b{i7o?7W_CAkbyP}MYd+jVobnmodU5;x5+5Zag@BNd z*+~=Q!@9TpctnfJ{b_ZSN$qg^-3k$ErT$yOx6_stu`M^bn@N+|#MKl9xwyJ!t~>`P z_CJ3;Q&75XW8WoTx!ZTw4l6gx9x4=*j(0W$ndBOAN4zkgMz`VP1-B_%K=-SHeEwtL zeN}x-fW2bn8k+i#`c8$XnPD=Ebp%_5(CO;*H&F4XZEg)|KR*8J28^dPI+lqzJW}7%acX@mGi|&=PPUZ4WPYE-2#=P9%$Mm8j=c|{L3En_ zPR}t%rcj__O!uRwG{2gQ_6ogVd8kf+ZP#PmqyNxfOk^tkV z6vF~P6S>EB=(yW_I4}yS;mbq5JE+l&0j;^NuhhAvUI`hnx1cpsgT|8_UfRq{rYZ-< zJz$Uy4mJ{6i`P!yAxPbn6&fD{U%Z{`CfxQTnNTf8*awbbe7uPX zTlzPyfUa6JiT5~^i#zo{x4hHn9b;5m> zamCndxJV=|%;qN?F+YkpXhKzn;QcSbddkFBV2*ca)~oKH7zA2l;TbV`U0bTkbADcV zpMhY1o-X8KT?yqB6hL*FobtsYjX1&$(*jOwHk9Ni0HbmLXjdcg7-Vo$SXstefLNHs zeGTQHtt~3@-y$FG>p&*gA2%38!@~5}-1**i=N#P!C;A>Pt`$VGr z-yw+HOO}oK*&a0HP0OVjriT_l!PO2wqlDgMB`1$`?gYMbMe~QJpm}*)@gCipsA7jY zecBhm7x3h;;iJL{b11BN=R!oSJtyx;j9+{fCyOc7(%UzVB*?ix!2EwVo+| zlT@w1Y!JcX=w;J8Mb>%e!tUAp$cI@SL|XtLhK~h|bB0Mk^fK)mK|AXw0VTJC+9}i2=S{>O#{239V^55O{`Fx$5$ejb-@d)3 zk4B&Y51CIT#VIAaY*oYmsb73*@QHt0%{GlXcqfT*Ab!YqwC9SOrhttl2~ez=zec#3 zYvbDzwkajlaDJuM{+)JIo}P5yy)9pf1<>~@&fR%+>b=lDlQ@xfr*&f6C9dg-f7XNK z>aMys=YJ~|Ja~tBu>;Fr5&_%2-eCoti{k7SnqU2#>XCu|RwJ|Qs@;w%U-p%|(S#VP z5aUh%f~5#Cn2)EEHVcxJ34#k;cX`ru!caQksAW2=_(!6-fSFU-W0Yi(L^yqnTty(r zH~XL+&pbJ44P|uDZAXM;I#~cyfh3}h?ipw77{MA}jhm(0Gu|6L9va1C<6fxxHA7p7 z-nzCf*D_4%3Oos`=eb5s&6 zd;xs3Skt}h4WjZCU5LdtCr{IS~f6+SJ|zblOF|B5O(J~~u*b&fw6CB(#r z+8W5`8R;V2)1w9^TZkgbCD`D*)2j7De;@35yR`KnJ%b_ga*Zb>o@Wksvi#;#6hn?r0XymKQ@ai9PuM`mo1UX8d}rJJKU@~$O5C+l z#6HG}pR5~`P$W}#Czxu0Dbrr{o>rJA%+R{i3G{S*t2GD*IT<)b2^!!i-7_0-+iR5l z(a9EbE!Tn&Td?Bu%*?4vqdo*hN-c92Q%d(q>IT}QIJwKY3MtN-T;$TlVGdmZ;`9O> znR)qcq5MRw2d@}2N+hzp4fE+-yZQ10(#cFBX)`!xGBi{;Nw$pNg&w?;i>}LnK@(&w z8I%QCMlL)37Ldzu%eG{TO!4_)tx*(~OrU715E*+6JOzbMC@ed|{qm+x`TQyBp)V-_ zAx2qav#K_9n*O{8k5ApdR!2(vp`5Yf7T&5<{mrA1pHKSV&zArqe@&7l+BS`Z2m9|S zZjfjL_x^$}h%XvQ*kl9m*ME6J=$B&Pppq?-iT7x{ub*r0wY^-tFjO6$+Uj!EMiJC-!6BT_tOMwtW40NeCsf@Y8P@)6IZ#5~ zJNxu1fIekgERQ21qTR8;Tp~Jk;w_)^AQ$QoJZm{M+B;_PmggHt*;+-Q=50s zqx4z+7T2`S!daPS4ESNfw9WG^yu7qV+`j@b-t<+0=yKt>ddn*v&TjF}y^Jcgc6Odz zx;8pw|+wx>J`fQ>bL!2eHJ_&#G4}udtE5M$HMMWpP z@%UokoY1j3CF)l_y9!#_6RYO6{=hSw^DZeb7k+g6x$k(OI~tV-kw6Soq#>b=^w*(* zoFQc6OdR$FG{FCcQ#e1)#z$Crj$h)2NHR6se)e4DlIPqzd8{jI!_*8&_7|_fwX%~{Y%~)92@0c&a5{}q?VLG;@uRVx54Jc=CVW>3}#z@o;qk1 z<$3<@;ZON#w4|TP?y4?V*GZ(NNu=z(S3PC5Of>4)&|vAw!P5eVE=G|UJA!ygoqQd) z%BX?@vhD+J6m>Zes-Sy>k>>2k=K2W33ATv)xV~W0Y7-}&z&TrV-MhOSdj7>g-rHN+ z&0`yZjO?=Vq=A1c3fZCgs!OOVa$mUlpDRdu?qC{FTYl)Wa-91>i9X*2h&9D}Jp4$4 zUaK!U7$`5u?*y-Z{-bRg-K7Fzi-=Z%Y4K{utDPq}sTIJMpJ6i0EQ2A>j+lI>ZE%CT4#9_89UMzQuriK7*VotzsGZ95DA#yoZ8A<^L> zw-b&OnId==(1%55frd_-{vLqDU47#{u=I>y;_EK!Ww>t{lj8xaMvk~$@=3>6rQaXs ztLtaFIj}x9`%(avCW(@1)BGyE%vk4!|7xlZ&C`MB%d4a0Feg1T7+(dIirQ?`D8taX ziROB4BWenG+cO^^UtC{G2-As^Dh-${RH&SC_h@$b^jZU3eWcM0cRxt_pDc#CZQyrD zMZt(COgxBS%2_GG_Q2|T7#%5o==9MsZ_R|XKKFWh4Xp8f-g8bGMrxO>C`_Jy7Apg(V*Kybn?@=Lxd(iGQO!HP zoHYCb!FR`6kv3glfdOrx0PFU{iUnjCu=HKcyGE`+(EHYFK_c>>UM^cic8ISsreKAo zvdH;dwez~|5PI}c@}b-&LnEq*%AKWWbw)n=R+!o}D`K*|GMEBwXhfwBs-+_NMtA(%*SBd&?~Suwv-VmH31=T!z38$P=f>^b!gn|mX{`Ei z3mu;zBH4|FIo;f%v*q5E#(m{ZdsPO+=i2vv;%YPyKkxCuhiT_UL&cr(`?)6Z4MGn< ziFgr$Rsh@vW+r;6y(uET2)l8Ec5|rEcx5`^fmej?e)`T6FDJF_Z9i-vuDE0r-b~+5 zAQd;|V5g5qe$cGYNxg27gJQKp_YVV#KOHj-LtBKE1I^ALyGY^b3MwBEm^a{yqG!Y} z7+cdlU`J)^<96M0eiqSp+{YOJ)o?+4u@|89OwgLCTTKu)A5lpP`DA5%!r|ImGdnZC zT5}!H>1^OVk`K0n=cBxGU{^4eZEJ*K%;io^8r@T$w^z6iD zKtTnwlCT?(8vuAffaTgMh@@jX)Ie+~DWFva$$& z^4cA{GHtavJqJ5w>>*Q|Xr)JzO1_CzIqDmdnYd--u`RxZ zslHl5i66|<(a!1sHUYVJ;54)INc`=%7!NdBhUMEz+F+>A3G?a(TNFyuYEjke@6>Pg zh5ox2Z(-FDb}zVOB)l8`8~OwFj49qO^k}P5FnV*Puq(}dERxHjm_eQ?1UTw4Ly4CY zAoU96Cdhivy6V7ltuYrVU3YHQ0(fXMRqh}&T5xGOx-%w2*JAI{c}1iJP}M3Hx!IN- zA=;80+!V&JPPU-~%&)qen3GX;!#{0G6WgL2!0%MC=&<$tuosod=PQCx?^5v~<)6m7 zMhp<>Q6yZyN!sHNI;`yy>i7HoO}xt8_{(1JZ#JtYXaNe=sjwyF`v*Ju8kAFyu-FU# z6HqgaM1%Hb?(`517USl(}Ngf7miw#6-*N^``ZSY2UY{KrLNuL~H5i5g3{r_Wa zCVi4fEq%f6q9_ZnZ9N6nj!7TQLtro%sJoM=ECo_=4&BU&6l{Q4dJ$HjPd&}e2#Qs^DIW;FY8T_yD0H^xQ^ZTyVJBjhSg(|RiU!*lh&EZ^`bpi-?2(yR4a5Cj% z-1V8l=Isxg{DUt?BRDYG(}6+7-!`j2855+4a%k`OgjvSY&cvYzZIG~g4hQ__2=e*v z_pisq+4NxFQ_PIDOExF1-i84K0)Vcs(5ipNLH|RCV815qolc zzk9|V;k@idJyTpr8T2<8&kQ0x-%`k)mn`DJMJ@F((n|5sMXLI%(KOM0=D-(CEQ_K@ ztz8v4ejT^Hbn0+x6lF8V#S|ECaritmj|UB`cM1Kq`_&ybxj~1YZ3krYp63hoQ-OYdycw~K(^XH>AO26OCZ#lDRQ1ly9#~&Gw1*rd z%q~h(aIf#uME(bWmx_|#D(!$;bj=9!&T}F6k2l@I`L%48t%mbVyYkE*g$5>%@F(K^ z3dpLN08sN)L_=!1$5lkOQeL>*AqRHUJzXq--30gF#o`&lG#)Eq)8J>J*OGMQjot-c z_#@`ifOmnP!f(it;*3)wxlRBYOvT|5@<7$y{Yy*Y3bN)TcShc58S!eR!wy(*bb2*4 z>MJBHv2ndXS5y2NVU)Pbq2rcH8NjQl{^nuUmj|78x1vamVo`ibu}pC+uo)p|0er0M zYlOs53U$ywm3AR4G{(OK)nT|_xw>m@4>KI5d}1qI|2bZ%R_~tt8tv$x9u|{fsr5$f z3^6U(pfJQ^J2V6DhK1dDdtmlgGSx6 zFyI9HY=Q?g1%B>;;Q-4d>>d1>$!*7GnO7p`YxKz8x_0YhntGl0F(y$U*m@lhKwNZ}A&m|1~W4t|59QjPHMWw>c(y3V4eU}QO{gcYj*6SWF zIigU&o5>Ypp>pi|ibi<%yef&w{kc@Yl3f)HUSUW1VI;qh(fw z#`nRUAqs_Y&@MYUNWb)MsnWrf47C1&LajGyYk7uCL?@wUB||NIVzyXodecv;B;49S zu>;7~a8~IK3nDw6H8y}Q9OqaERNaXkWS&e%Ex1-U^Xj;YFL*T~wPup$PlV}ky;<|z z$3UfnCrtVaE3FT};8LfFt=Ht@{wWy;z4>Rj#5%hq5a<1c=-P%~$j18%Yza$JW?BaS zVeD}JS06_S+{}1;ZMs~36jYzl9yeR;3EKy}yl}(+X&^h?L=B#c;7)E_YT155u|yFl_7bqEC?tFi1a>FE<$usHPxmvn8t?j%e$ z#?hF;QO}hZv{bH1GB2J#<<`zN?&0vU-1>k&%Y)c88k+0NS25$-Pn=3G+7~e}P+s=@e;OXIj0>Mx zocSU)r()L4pYwG{d5{u6D}bMx(&1UyN5Hp_5rzR=(G7Pp-5swm`PXSITOW}1 zj*jzoO=}Xfep6Ua7Bv$vf>I+_@y_=n!OYiLkq9869sdd0fRX!S?h1s6mx+1A# zPLHXAt}CxJ;f;O%WS3%s3f1qSP}yVGmGNNfU_yS!z;sdOp210ubU@D=2X> zNNQGb$-vKNVZlT8qq{dfcPQwz_WxkE4BGb0doz~q0T!1+CVUPbO`NXDvHo#=Ji^E1 z+PVe_Jb%#lg3v4(rjG5d<2VA7Atsdf4W5Lbmj_71!JnW_IM%|{epVMC(feqkl5t8y zjD9OAn^mr*y(N^$FSIJE<Z^~yx%zMMi#}T4~N^ItcKXtS{eeA4t~|V z$p~(#sTE!}sD;CWQiznBdx*QA1ev9@1t(5y4@toRl)9Aquj3c%{)_*X+5}s?$uOgk zQNG4An!Qq^SVOl7%ZE00(XcyzHUazYUAu{^C<$k{KZqL=p|%gm8>t*b=r$UK>#_YM z3X|g*4hVnGjNg&@bs8HAuz6jFEp||t;nV6}y{OtPc--WJC9ajcVS);WvX!rjO$3udQ4Pyevk)Qr+4 z=Q?4Q%sJi&;~e_((&3w!vt`?kLAm$ltxkRWxb7D=^*y9LW_@ft&56)Ci8OE%)T0~R zAXHRCJ*?HBa1YVMB4dkrh zF6F4{!U4r6wkb;Gp2<93BFk#G(N_YKPkfDNUQj^toRksMbbS=RZUm)#j(^oVTH&ky z2@91$wV-0NXm<%7>6e#OmZWxHZ9hPtNW5W8`a@8(F8YUhrDbRmBozRVhmM3^SM12;FmPOfkz|2qn zd9dHt#UIVNXTigJ?X6~SbH=Oubp0^$Vd29XIy_Tl6_!~4j-Y7W=OFqiFoSt>{LZG`FS3?#lo3Zz!HE8hXW{y%affq?uI z`MnUbFmyC|cEAe!`_28Rq_=%Pb<@D~_b_c3pSy5KSJQe+yqe;B!y+Zc4OW~<>A7=+ z$iC2G3H02NxM%o7W6I6ClGc%^c*SDN~jc4!a_UrazVSdn@@!*%>A-S#DU|lf7ykFY4qqbdT%5B%K zXUNlS0s3+;?BSnxDXWLW-wE{7Hq)Ml9Vg9nx%tGpNyTxwyW_9~UY*50iD{J*Y^YLy z@`3^r@`lit>GR50_R#D*@M%uNMZeR!-CN<^_8Ttl7V0|&`VF6{8;Hp_wNFYCovj`T z1E46Yi%7w%?=rsn4qS+uzJ9^U=aV=?3d3A&ul!hLng>g{2TN8}#~bYR4!%l{-Ipvp z9D50p{AyJI0kjE%G;R!t!A6~{XzBB5>;dasKMnkRhPJ+q8JE6~&{hjsaAL|80!iZn z$>`~Eo!Ww1!)LwT~M`x`3q|S!~ITTbea- z+#X|&ixHVgL_RyC9oTUIU%(-yjty&kiVDac&}tsezxN}*+TALpIldg5r69FYy6C%l zu=1iqj@rAOo}fd>Oy_&6C0x54UG9lHGIOQcx*O0Tmy@o)J+2%0Fb_uO#e(mB#P9Jz z8$?ZH>bZG*WGE}nuvH5_4#?r`b(|;TO zy3aP@oTO>~Z@~4+i(9hJMZX5)=TEU4vHRh%?yt_VRT^;eWHPei|K}&$V|xEGx?PIEHh$fq=cstH?CXg*%B$` zM;{O$@iBo7Z-q8yWZ+6XtXm6Milm@lX?LDx-=*ty93U@}ha^|7M)iC7-QUhWeQgvO zNElJhxO8W2<-PE@6}MCyvk{j@6bisrO18VoWMrlM@eU$tFbCB?Ogc|`SbN3P|H<}{ z!bUHtk+C48<=XvlTJe8iPmQ2|mz+u@h;eYIPDXWPX$DZ5i3)2$f_ z&9{E}+NwT|jSD6nP$>W&G7cLPG`-Tf(@>{nKbQDJ2^y<6@rqFAL$*9A&gIya6Gi-=ew<$3eF-g^-MFsTdh*L5#x%z zqbo$Nw>2G@J8X>(uWmAV1VhEBRT3oIW^B zOV4^iVB3CvS^527TfaPi5b|e?e?*ka&`V?miQVU4)6Wr62C569Xlz$c)&pWk0; zk2F{r3fm_U?q?8SHh|46#|$lxKqfm_!)5)ZdYU}wIICj=b5v|Mm7Ta0VI*Gy7 z;NPGiONb16473|@t=L$$c1JRHum9FRE--`&*Sq8o|)y*F~C|S{LZim`n>ZFlneh$+0@(W}9Q8~ZIHaUY>&i*H->3(VY z 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

egIjGUhrjYvokVFGNnJ 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

)emY9|r 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%0Ag~pB2vWxu#O_5tmojVjjn+%~QyQi4i02 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�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

(gC#t6j}8FtEk^|!ny9)|y+i@+(~%n|@D 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%0D)EFUguutc-7E|TQvtf6qVuH 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

bY2I&n_gPz*L1+9xGtBnqq@oJ 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%0AdMqw>IASGf*9D+ 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%0D6I;?fEaI3iQ5zq2T~0$(+^@Lg;koA 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%0Ad2?DL0Ie(|#z4oeqlq%(O67$w?x*%^-orvx- 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�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 D^lOB1H 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

&Ktbozfbi=HVt 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

bvLh~#}Sl@3!5uvb(!PFm9EX=CG4#A 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ΞQY|}6mMs0| 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�lyz9s~5&|s@Dl^}UeM8fwD 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�$F=Fs+qWa&aLRR2U-KC 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 z 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

=eR@okH--^Sp+jPkIt9~*15DH_)3RhwQWo;s9 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%0AG;?22;WDnM?pV9+n^=LZ?o1>3Z-+C3NEIDS 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

R!w!%*3^^x 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 diff --git a/bsnes.exe b/bsnes.exe index e1d520ebb7827f26774f3687f8c1b15b4df05552..bae0f17684d58a766b170cb1e8e2046c246a7359 100644 GIT binary patch delta 621499 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� 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°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

)|H*pFtf0-vRo4~-sx)3J=a)| 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

}x5|Zr=`(A^7UpKl+~Q*Emmf>CtTw=C)_fXD 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%0Dg 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 S=;A-rpBma5t+U~r%>MysD6K&N delta 546983 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

qeDJspPe@Mr-L{uLife(; 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 z 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%0AM44aR6G7&k@nq8ol*Z#|7%b=;Wi;60!R4;Mg}L# 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%0AMv$UD$wqId4^+3 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

`qggAI7gK#@p^@Spuz3C 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

h*vw-+w!V5aO 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

*lgy<9Vd32=CKuCd#<_F00 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 BV7>qV diff --git a/libgomp-1.dll b/libgomp-1.dll deleted file mode 100644 index 3bb99f0f3a428744f3d87ed5da4b38c4430e38f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58086 zcmbrlcT`hd6EA#D8flOO0t5&UI!FseI!N!mBOtwpVhTk-N@yX15xdyM4vHvEM5+`; zMevazAfQ+Sg5?1fHJA6jcYWWtzP0ZC=gwO5o4sdd&zd=ZoVBahP96XS006edLLmTj zY{~zS?SJwA48>b!F~z%Lz#Y_Mr4G>Zu~J}i3WJhG&rG7nq*LNzGBPrml-L9cos~gJ z$)Gs;1W?j5;}i5mMbWDNE3~f@0C<8>pu%+29e4-;f434@01!$T5Ml=SZaGo5m0BR``-}02?VhJ8{7YlI>8 zVXD%cq8wF`2qXt)9lgw%e<^GoP*%hp>Nn^upFzOJSuW*&gmLZb#$3^3qbz5G84kZD z;Yawc$bM|*hS=A{;(ZsCPHPY6t*@`#2gLBCm`2#XiyufrplwxdQ_xb=b_|1UH7nD{ z-eUhr%o1Fw$p%(~I{vE8ZM41JPr4uqG{W?IUkOuaqwF7`Oz(h?{s3=p7e4_A+9n-a z_A*N~dxuH{)4;em73)8$JbZU0?7ba9)IODHh?GKYro%Th3@iLQ3Iv~gqJ?Grs9_>E z63dAwOuSi`bI26I9wdgVky2)(kN%M%!iW3PkVxKS9b`-f#|#%2ShOapVy<;*jQ_hf{~y-K&9(cspyp|4dJAey?F~p6R%nr z$;Zb*RkMiExv;*@+9q6A$EPBawB!Alxq8XH@Cyp~O>Mjfqhw9vvMPbJyslZALR%wO4xZSCa5=+jRBWqFi(=D{Rob!U+=SK?%T+P-ZPR_yfnj5vk7Nqj-M@3|j z?1AVb5~okCve0CbSxHt%TlDhjVTW(kcrC=pX1Rg)xT)7yuioNc6t%c%bmo1rObn`J z;g;WPxN=HCM0>aB#Ddije!+ZRW$4m+-Z@+A`Al48m!+=68|InS1JJO+yCAGb%y_Az zy9S1~%weR(z19@oNK4BmU}Xj~6FCOpUw3xj_Pw9w&i)dzzDnqMqMxMq%yc7o)e^^< z@H!UELGXo#)bXlFza1xCHX)KGNarl?73rDpE_X_;i2|!bz&OGC%wwN3C)tG~J90!; zY$rx=6*nelX5K-N&k{xyN1iRToNbGKHpszR-@BB5k4mbac8OdVw=9T0=~Vl+qztpx z9Dhg29E-r`+>Ev2xs(EGu#3G^_%#SGHqG?3$u<45`>^bdo+ss4q zRYX!QfK3PRR=Mkw2t_{8wkA^Jdj7iknF! zSbVeDbfa2nqfvzalx>OwH4g1Mvio>L(OX}RXnIXP_{eG04iWFz{|k8A`Q3O`Z)oy8 zU=i7X>Dqj#^|fx${;@ww+@qrG)t@Mhq$J2s$X}swK`Y*RcO&Qbxfg0|vv7!_xcxy7 z7c8gTq2bn!0(m$CXjJ))YA`d^9*IKret>3+{h7lo8jPN=j66t3nor``0sPPMeJDZi z1;fYK{@s+14of8+2A3SNtR5;iC;v*hBQ{BB{Be&k(N>HV?~wFbhK>|3S)ktta7%SJ zryNB@P5^^?NGp*a(-_K9NyJwbkt5dtnF3Qwh?xPBQR4xkh9GhzW2bv(Ivk)LYK-Ba z=;<9-e=Ga^PSMA;)(j>#Hp~V;Tz$-E+B+OM)zw+1wcb7%Mk&@}_@{_S7{1fp|c%i(wxR zSd01VjmQ3urF|N+s*j%4z8`(yU?qOyarmwIfhW>cgQB)(S;(gzcX#1Br9FP2N-*Vh zO4q6(e)}F)V9HXqZBpcHPV_xgN#io<_fI{3R^+ey<$?+D@Py^ar+mAlhA&I>uh5u_ zj&d79A*>}b*$}qD)Cy)6KDQe2#9w^=LFDr2W7FwVAE3CSw)VK|FeF! zgD+a~k;dh!w>Y4He4_*14j8n)WWLARXIEGp2hH{UgpIXSaHbI)d6tn#Q;|>=n;q8d zP3Y|Xe`a!IU=TWGeXlVm%RLm9c@u^?fG^7@!I+;XjX`UDK z@b1qD9`L59nCzG(ThV%S_z2w9R8%};G|(gsi;mT;1j5NvH!E6+rb$D#Uf6eLl@GA% z^f60V@{ziN2!&aFor2YpPCeWbiLBe<0qNRb6NJ@L(o@Nnm1q!K=E^k}iz*(}84{`t zD!F3cCUMQUyIr|qSTWB#f6ZSpeYke`LiVG*g(d6b$2SU5hie=~gon9)@?U1!qsQs; z<^+Z!C(QL8)vh#H5lxz??P=w=@{ASeizW^=WU7F#Qt%YO$#(Vh97-4|B|NRM?G;9~ z`IfmpW9o53ky_8#xp*K~ZujY1J=7vO@EON71CLyPHIH?ZEqu$F7A(f$-oJcPPPXFo zwd|6c5s{lHOK>&(M2QpLZtbUu$~~4+4(_-?P&{wFi`GT~*5;McMZ8iUE(60bd!~E__C*sDD=0CC_oFC@>b&Bb7 zS&Us0lh8e^L8+P4X}IY7H5(&#p*+c;)p98b+W0oo!uXWtm;o-nxM+tp>8<5*Kz)Nrq3|SDz|c z$dOPQH)u{QD;8#1cJzv2m(SoX;%MR15v4njBG_T<>Wl8S;T=j+mIU0PVSaBzjP7-` zq+63UB6x#C>ce!|+O-w#5aCzzFys##rwvL?q!P4a3{{ibJ#*Wd(3m8b^P?nAx?Fp? zmy*lr5YL-@v01r?*%y%8e2CHu$+HF<(-|`lxl%^isD5LF3v5SXcve!m>^^zz?Q$6n z7n^)UqdGnJVYB3`0|V4y(v@wPi*DBcicbg=dMk1{6`#P51lC|)LfVbA!fi+*auRZy}XMMK`f2WK7sM2|a zU0C|=IhWe*6P^RN%%u-qE4ulTc6YN$apa~C8GMwxkwm%yzCt@O04E7gPGm{RYRP9w*GX2c({TjF8HLM=5)0WA4Jj+b^MxDfCKT74cKRD7Mzdg+ zr-vJj(TEu0+U~;A(r?;?Nj}2v)ezDiUz%=*{JalwkPevmO*MYBkl=F(2zV29|ItJe zOo2p(I^ZP&h}`KmXG=ER5FwOtRUdnq?WrXygH>~tfrr@`@n;R*$QM@lS&bQTMmFAO zmP?!1aD$1AaE9lpW4jaUwp{ykl<0Y8p{GY(5e3%Czp$ zI%}1ie^poxeG;ag(sp%WX<;ehp@K@&)iI|NhNt-EaBTFG?bk{f(-vB}(_@C?&)c8> z+*r(d)3$lz*CQjZkA-{`>SuUqn+~pTluBH33BUc_I1(HsI148nhVI5V{22Ln{KhDq z^sV_0X?{7ANw6HD<8T!vki!!E)^7A2b7l1%(%YwPVyqF)du7dXu&T{%$F8RH6*`Zu zhdG%Hlm#bji`mhrUXbl_3JeJ#<&!N=T*ph?p!_;w^=SQt31S!=XdG{T33=4AulY{z zU{J}sYHN-M?D@8?rbY9{lJ9fl&ynf%WD_d3+=y%Co)b2+|Do_l1s0<5l{XOaXuaw2 z8P_b3;|CMP6Wf!jbg(d8f~!#r^mBWFw1cOS12J&Qr`ug*u~SKAchnH|-(3C-yGJQs zedq0ko%X=H5yU-D#R`Le7cgVZ4e?<|B;Za#PC+-!JD5<88|TrOq;cK9zNugSY=8gH z)JPb&wr^lZM?!VrZ6&K9AMyM$KBSh_2 zBFj1G1=Q$#6m7`H9GPm?NA7jaH;sM~{-W756q6h6tRHSF^K3_lSSZW>wQ9Mf5FRd!EeY zvBuMP{1H@D9oYo-x>kQF@FMKH)wi)}c8mva9+CeApl6zr^391=P8SOCNwbO1;p#sEMLLYxswk+ymHRb zYe!IQVM{Aiw0v62GgZeR9_IRJT(>z!Rd&FlxCpy9p4=8-D;e)ZG^-kj8p+UVrf6IK zPOjqj|E&WAilKs6Y3lZ2mIF5uuRbh2+3XO>S?l3pT=hmqR?hlYJ-C|-&qms>YmfCb z#NWXiBDWpEC13L6r*!1DDOPBk{^1_+-yzL#!RUSAFE-ucY@ zS3wj9AK|s$tlg69O4jV2?1|w<3_lbX=h*wQ`vWz?jie=brDRe7m7?_VX~&$;j_|z= zPk#wci3*NkGFu&`(ke`UK$xN*S5_>t$p|P@5e8#P2ETyyy!rJ>X^H2`6zF}I;q$s3 zDDi2!s*HGa9-!bj9)UUt@-A#2wAbAC;_XT4iM8g9^G6-dLh~?j6pg)mpytQR;;+3( zF{>$i%C#0wHI`cGZ7vd1tdf1FhPy^aDLvcD|53FVE0k*CUm+`Sa|Cx zJ@X~^HppMpUw(OQZG{-tG6;#=C-Szc>Exyk{;mqzIJv;bByVJtU=Nwf5Op4fjU1e0 z?QYhqtjz@z-y`pRgT$zrh@9pr4vfd5zP(0+C(@N1w_Q~AI=w@0{0!e7mhY2omeWd@ z$u~H6h3Jph=2t0ky^$F;lwPQ^tISbrOW?q6ZEx1Cgd45J_Tq+4cEFJ`Gu4GDz2G*O znac8YeUD3qpV!sRdEWrKVVTa6-P!hLhKQxeMH!Wt`0X!_e2e_57BT$(1?Pv9UZO_Q z^_mJ_cEZ&q(v*hY)SKPPaZ`oR$1iyDGTOsFZ>N>Y$Rq7j9K=9x_miodq27gPvL?Dq zQ#2eJZ(9p^$TTjM1rLP>YgG2x@j|YgyNv#5b&{dkz~Q;5X>^qQ<1(tgpw+~~Ij9ly zWL$lu2y{r@n$+4TYDA25rH6FoYqd^r{P`vH6F||@rOZzmgs6r4JA}79p5$& zNH~q*k}Ryibs$y+wMBH4W#J&MGN$AO1R7DO^_I3#adCloT6bp-T#nu%eQloz_Pqvl zghD zF!fNr$@DO`Ki*TQ90QoI>&xZHl_uuz|KKRCqc&@@y^JeMAQqnGXTS$q2;`1qO@czr zK589d-_))BQRgJJlk4!@+iP8|9y@b}!S9^i`|~PhI-RCYm7R<+cRJEm`=r}Zqv(vC z@2*DTtZjD3IO?}INd zbsn{}!dtyueZ4YCk6K*4Tn|+k$@R5OeaqRQhyK^s!YqEAFKvJw!7H&r+Tnf7^4L=g+MV*V$n*RihwEx0z5BSa5{wxP0cYAOZk8!uJ? zO`JB#PC`Q`Iv%(A&O|$E7HY1jswz8XfWc&-INZ|sf`>r$RYV19yE6&jF3&cb4Z2+N zUYPxAgm!Sv&{xqlzOUuMkCA#@`5qgVW6Ye9y94>S7iBkffagM`=m(?azM}Pb0e;b0 z19y$pcj@&xhC_THo`Y_X-lk%y)^ z;??*c?xqVoeV)sKlR9H2z2+djbi1p0P!*wypWm*!dN;_Glog6StHHJa$?ZjNn95v9 za}Q0XEZ5(MSiRoVydu@}own0B@_WmPB}@E_gCNEu5?;?7u1T=1-v~XXYxyj6?H-Rq z#f94_PCbikOE7zO1KD$4D9T&2)rQIldWDx$Wu(ai(xr&>7{yR6xn(g4ZOl!Q`PfQ( z;BSaHQtKsWl7=3bvv?T^hIbMa#10G#`0Qslc-5pc7vveHw@Y_)|qy(ICNS?;|n?YS-o z5XHHopZzQ)@qgFl{$aS4uQP)PSb!D6`Su=lwA%URd#3S-)Vc3b<^$OwHK8EpiDJ|P zv7Pzwu6h3R)fi$Xmm18xTK-x}^w)Pu^EC!EOE~kbJmQ4;JmUywQ&6`t!@E{A>|=A< zR*NsV${PkBgU#>av(8fDZVdR9IXLS$Am_dAj7iy}`ZRVF=6f(9tH+o&v9QXqzUhSF z;vKh7Q3*|`s##}_=iO0$^FBNeHR4dQfQMy5v0+G)!-b&EcPDyqKBdNKO^Pz&^|{9B zdxKp3jYj^(@5Pij}hWH_tTSly{cN=qINtWUuC3=^k)4aXxmw{057JQDp z()xj9gS1DBDxLGrSt7c=;F-X9B?`7zFC6i?ebEd_2z5213c%AbG-Pxx#vK`CbY z)b!$H4hiauugN8K624uGYEJ!}NzE9tHHNM@ES$PM^ZdhW=6^Sjn0*K`||e!5KA!m};>6hz@%C`=a`NzYPlJ#^e2UvurB1^C(A z+x2-2pTr9NcMeo&)IMF47t{uXB~2|yEoR@f0}H`f#2S}Yqbmuo%?lXw>sMteABUh{9u}dv(cvNO+vH!MZ#4^6;*PpE)<1Ipc9+hisAN{j6`o z+C_HO64#Z3WFgj_VHs7~1*}BQ{Cx+r@I>Fge|9zg#MBPY0E7%)!nrq_DZVg_A8Wy& zR}lhDvzbw651E}6iL*Ps^D@}@oO=10erY!Y68v1h8uq4H^f#0C)4xGN6m!qmo2+7r zk*#-#FO)Rzm=_2(BA7luO@nT~yEO8P^#Wxk6P`&m-qj z^@bL&Pbe-q8-w&d>|>OS4De$?T{)ETyTZ29{__ZO(AOTznlb&ZQylIABZ_k#ZhM5p zRYHdSpNXwxf!~GI-SBbg>1&dDmmPNw9K-T&AFgpYKrX+b9CA-OAl|@mickrQ3#n$u>fsWvy7go;^|m<( z?hQWPRDFgw2H55=nKA_*R_<4vHtMw-E~N%5XE#0?c1AxYo9Ry&W`Z|4M*iQC+!a{Ka5 z22VX0Fn_PFxw^d~UF-d)Sv=+Okfrx+(`N89^^3KkZQ~HPQf;@Ly$1HJL0g_iRM$~0 zTmsmwoC7zdast4HD9Rm-`c6BSoAWa@VwNt(C|8(29zqOGHOSWI@a|QmLgcV=^H{l4 zsV5ire{0}JrxxKnIPVTB2f_%=SjTtm3R2s;}o>*wd-I|3k{Np;YVuA)O<`{h9oZ?8Jcx)5YUHp!&(yZfI~R`iy@zNt%W%WC z!Mb4S|5_IB(UB{{a|wn`w$SK~HilPBqsH1(_Aov_!Wf_R^rG|9&Yf|CMdyQVT@$%5_`)E(U_^XCp(f9adhF2S#I;uq z_`pBq3rP0S5JCHeey4q6#*MeW)t-7e)^S`!=W@UgH-7dlRq>iVS`3x`P5(Z3q$7*V zZoaxX152E7bX2wbDP~-np@SOqMyi^%!gM0UnMS*GvdTvn`bh!qLA$Wz^MOj!S=91x zGnTO25JL;rN5KWxj|Q{ms(k@jWD%u%P_T?UsgBJx?pwGl5SX@LX*>;yQ*WR3CdUp4 zkS2CAu=7Dc^flR0**2Mm%2$gH4+D*dp+NObuVYCH0GRW#qdj*)Xn&}$Z&9QMi{VuJ zDt=lRZHm131Np+#7sfGyJhdPdR2YQTNDU$P?HhDi8U*k66xP79A;mRiY#uC0Glf=p zrxAbBZYrisU1PcwRkaT$DdI047!u+8e&qb*&~qntTW+9;&Wj`&qc8X0T*Rx6KutfK z3Gfc&C7w2vo65p#sLBy*=9`6VtD#SkpH=AhT((;`$IQ-Jc2 z>D%>T;kcb@W8mo$OU0m(Q~s=R?~0X*ki$+r#TGlwi;G$ym+|Ia9k|kpYud79pT~b) zT?_8G`E-1dj@SC3-hAhli!BsZiTBDLUXiX)WWQUpJWWSYee!t&cXR*kqh=#=Ep}a1 zdGxOMvbQs5@3HjFtaGG!XA;Jqj3mp<6ziO%oG)^|@0C6}q2n18=-GQJm&4Mz?Ql)T{xTBLoU3vQdtRq3^3M9U z!#bAI$GRo=I&6O6Jke%#7+11i0X5L&veV%9W8P}el7(lirTOxb-oY5W?ZI6pow7=A z#3Yn|zZa`Nj#AKblntN+lLjxFPW0LyiM1-uGLf|l{rA&(rkkT+{>EXs|(M!<7!IEAGfMzTL`o(4bd<^B?N&Q|7H z-X*+{i+0E%9&HJ@$JsfpgD&9AnfK+a>^n8?BYi|992%g(YcaSGy{PDnj1CX=(CQ~? z+U*;{&m0FGFW58Rc?R$D^h1V1aeDJ-^R_*TpgapTA7_@$O*A9F6a_x!d^Lu4sC^N> zK57*^_^7TA`_w(UO5@qz7vKxIrLqZ@?r(s7C^OZu|qn+tdZc_<bV>yl0#VMR`rn!Io!%-L+6PPwY{0`$eP+@A01uS*khS@ zgq>&w&TjPe^=Naiuc02&A-yO?g0$jy&^l49%K#dj%iG$rZe+= z%_A3{)y3MD9J1Y?JU`;?XvcwqKi-8NW6aFf!z^)3d@}($t&h*d@B89fgI|Eu_!whm zm-oOOOfing5b7(-0x9(ug5Dr4k?0zl)q*?r1`etjVyJ_ZTdX)`kw1Cs#yQ{Z=U=?F zARhfB42K$wS_Zh{4)uY3>wSyd;J0Hng-hGd@DH7Lu=08z@ipSS13y3_qrZ`O=EiVp55pEDY_Pg6Qe3QiPGS$|~bvqk# zTSIJr^ba7Qj#+FZ1+(dO3D^iWa@4Mm$ih{H4IDFFCBz=Q=!RhmU^O)~lM8~UM#-q& z;(2BcpnI(DaPEEb8|O^FVUqb5rbKWtFKFgI^i~&#C}fI@l*ZWJ_KyhbT@XyN{j=oT zbb8jA#_S;mzPkWxeEzwQM2pG`#7(#F0Xcp-&6+lHQA2_u>6Paf6Est2g4WCt*2((Z z@Apzw=Wxt0DRy|Vj9^6FTdULC}y;*S{JkH zyaO@4%+Z%u{}jeG`NTJ${56idWvEW5haxfT13=U)7Hx!-$pS->)J~YKShItP3z8|1 zmD6<@++L2}Ml9E{&>%r!NuAE^+;XOq5N`T1HNTZst+;B(nqV@Npz@jh04?zp1#M0y2!k*LSC7gpDwy^6g)V{Pw8^x#1A zuSsPEl{jCw?wIlU(3kUP%7gW<3^oQ{YHME~;79Vl3GF!{g1~rM6 zZcL5cQyIv8L)bu?n;Rmx=jr%99Ug>4B$lwx>HzrIldvj8b7ArlDG^$~8 z%_}=gZic?50B$M5ROA{zX81&(yHdEEZ~t6Op;TV8nYFl4yM_)~c-)8^sKF<~bVA@p z=k;XUJi-#;sGGMIBf>p)**mdu8*}g@7BE>!ilS!PaG@jOMGtwU-isUu+?j z)|yJZTV+uajz{-3@s44Zpur+ZfxNo=TltQUgu58^pD(2aCzYGu? z_S0H6`GeRieQUHWmt2lM@Lh19BsGq4Et-$I_C(%PXFu>- zz_s_%blzQ^X_^Uo(%K11iyisv@vp%;YV9EY*`j-~g&iyLiPDGib)1NqFH7Zwf+1ww zG=gngwQ>U-v7O~E#jCW7h;06EgwM=3u%&x^MPOVpIJhJ@`o z@LQk&I`7JPsq~Qj3zV5)zm{H(+Yt8KRpHIoSRZN*XDfAT*-q_G;*-r`R{l(1d(o9E z;dU{pOxvY$$2)PidZ~u!8s9LSN_fc2V@S`F(}xt+j}dAw+XD1wJo*AyVKHmxDS=hZc?`KT&YW511w>@~<{}C6j>R0pa+bYI4PL(cM@==710(48m zH*OJg1X_J~PSP0Hs5Des2=m3M^_sS!qe}~1xir<#?-(KWE{@7DWg+7ysvh5!m$|)UF z)GlC1D)iN4jr(=Fn19ACUjOyyRKLNf!A$p4(1zN5<7Ink=?6;RFGbn7v~99$#(h5& zlNwczgkQ)yvvrIxY4quE_igX}XM5nx?@#V6Edd+jjFbK4<172BNh4TpLPc&@h3eMT zY3yCR>OZL@{Af!4=8aqZ6B!(OR1U&YmP!xN{c!j5IyVBk5#Rhwk3=x;%t+Goy9iFp zQn6isD!P!IZ+G>+^ld6akt7M}u9@z9vSoy;6t41Mk)@{wn*%=JF;zryE*~{*6+EAp zN!^6?5$?^ZCb>%G)s~?SqrrL$Rbw0W2h$O3`L}^*rO8+F{jd8H z`ge^au#&nV-L0+2!zUC(>aTLf+un6t?F~!{a;dPL&d!=~<{1CLyW}Ii=EvUEA?dO% zpjD`x744#IZSGJkRcoj1{ZpI6knOe!*Y`tCof}^h9J)y@xj;#b;H#9a(~bW$D^~cX zs%HF7?T&BQOrHF4pDCDDi7Y9$JH_pahzgHBsQRzRR5z<~44*bzj?wL2EXP}p&)5rY z)#Fyv5Xzk)T`=b^!_b@-9w1aRZWdV>p|G(Z?tR}v!yo*$yst~6zx#o{k$%`g4YpO^ z_;NpT%QDipH2b`FOHw*cp4~$Bv4%q}RbrT@`=;y<#C-v2KfqpwUi*v^f&eXpimbWa z>9?^w%1w2Zb~_0Gad%6$fg+F=5k$$sqNAXMqaP(JwfMB+wd!U~T1srvH=$4%mm0;; zi>J|mDEI6r|AeFz1~Y-~K#O585*R{#q0ooLq+}*i(i74%>3Nix%(xh4N=6bzjmBDi z@ppp~o5xgR(pd>WqMRWR8a|it`Kwz-c1%14PNF25Q4-SU=k60y=$RQ#8B9rfN=z(` zq}G!r?6L6i@{I~`aCLGF@^k|7!s3AVyo{LDw#=?{ktCLVLOc*toEZ?5k(Qwob73hn zC&Rb$#mn}aamg$f3L|BY*nr*eUwr`U80Kx~<>r9#c4`$4zYGYJL3`PSM%g(8x&=E$ zY0_pCyI`IHl7X)NPIit2H-o_6>3yezyoeMRQwQImocfvj&dzS$l(4Di%*sqwQd_G@ zS#sRxvrsz6m3p#8k3u^YHUCgbY9#$^NX%l}Z#%cZC|@53TufYM_H7mX>6ol#k@n4O zTD)^|fNz|GPmuS&1F|#rp^1i^X_e8HbS5TcU%Z9$7+RN>z6fUFFmc{AM*8Bp2Vrr} zF%I4$_th^GUa`JAPxc#?jKk(mi5FDczZcfPy3mC?I9UN@c@qZhYz z?4+(vS!rsWS9WO4(6}RaHYFjuEosijOC+Jd#lazvVnX3}H(67l0%f+2u1#}0(nZSJ zT0vhkDk=pMx*Q*+73DN--}S&$laY=MRIbcX4kyXP?*Vk>g*7#zpgqK8#oI;K$yGPd zac%0^UoQjQ0C!J!+3&hiAx4JbfljW8fSsWxP}&RzNzm0aki36>Uv3@+;-UBnW3Nda zO~=sey2-6p!<~l<>z7haB#2F_TKFeNwxyiNF0DN|8FJ-6R+T%w<4ZqI+~|r&KUc*V zLhU_MPFzX}j!tIo-5PVLy6$AdjV;BAw)-O!v+wMtFQt6_jreE&_%(DmbbOgt4grYc zP-K3*HlR5U1?`+`N~^0!5Q@JK97rTXU<rG26KoybCV$y-@$@R^igeYw~ z{cTTkq#=+=Vr3-cW+lY6FZ7qj2X=2CfVvE|6=}2LQ?emOiiYp8c7JAQ^&N!}MTbBi z|0Db6^a26`(ZC6UV|A%JL>Tn1BAq7!x_Ads94M&XYrpyckUyiiDU7p-h@)pR81V_& z5wZ5V%=mO&11yWWxiOPMQ)8skQX@=qj0_{f(|dkOm)vDU$3b8stPDnM2ETo#&5xqS z#6d*1l4nvRpS1Pug253qUXnO+eeURE3?4+p9S5LMDVh11(oA6@K!KE2g5RTtAZ*P2 zf}%NyiddX>*&rYWi;ZCX)#HP6|G~j#aCY-_!g1FypWt2143n24>mtO){Jw~P z@VQG!rJJ$3JDDats&@mqw{l#ndhKE zU>lCX^cAJ`%k@Ho!AA;?X8V74>BJ>Cg@AZS7|1paYkQ%by`8?(HM)nto{%1c3s-c) zz+8U3%d|{q>E^mdfWe3mAAiTywz!BRUv6Mwi6b#xc7Z-#O2Ju~L=o_elDSL$VtGaQ zO;+qa>`xtW=yb9^tT`^mm+6#yv_8Gb_w~0;E#2L+>FW=7){*s2KevrGW&iYrOI?Ju zdc&oKGfjl{s2s!LdkGoKu{xnsRjFgfiUVZs$%s%{3Q}@(B;90IR;e88=$uhuCa!Ev z+|#0~qd-4Mw^t*>4nR6~tEa|A$;;H8q>099GFGNaSWG|d4`ncZ3$ z7kq!{z!H)Rf0^9+?ea`1g6xJ!8;nDD?C$<@x+~kcS=E~zW$XSH;;==OG7h| zG!1~DmfxA*6N(b=0$l-#U0_KD?N=g=#)SH0e-(g^;M*^|iPcF7%s6(dN+P{-U*N=d z6UbclwkkSQ2WXHaKVht6u7m<7gQd{M8&A+_VzZ$|MJGN_i-)w{mJWp;xLkz%KGljN z>xIPvB=DE@+7bUoaPQH{=%;RzrBhPn!VshW_0fu>MN-Q-7L_tI>VT0r!B9M+>!a)y znLmrcMDWnrz~6g)+hw1N%c(5E5b{3 zviGLwSA6YzgyzY{83ePS9aCxK4b z!Ph!=U*CbEhR+;zT=VB14yw+I_gUu$b=HweN_Y7yb@D*}iaI5kI{%6a1W&88qQd`y z4A1R$m#Yr<5XCwlF&Z5>(z>4ZItmfs#>~sgtQkTCiJcP3SE#LVBp-+e)!gq@iq#Fh zN{y=%%})E`kV^@~Imhp$4?(HEPz?-6qaVjpb|<0@yiG<-Vo^!y=$xFH=|8hMR2UwYt}O;bQ}@oZl|tJIJaKTM zQ}n{Kk91hXeAjPx+69lRaoT5JX`1$WYBo-4UiO7}w4S{{Fzns@8 zpkxh_q1Ww?CO<)>wHd^<^u*&ytAMk+l%Oe__ur)$GyNTkU>xz=AJOj)Q4(@V zXXl<8M>R=ZUj$@A2XByJXk*zXgA1^)U$6fF>hQ);P!1wP(Kh`9^~s@9($e%O=_72B zwjCyR0Tjb+=4QnWHZvk#a&M^HsU8GKm^ue zB`R+dV~GJJ#9*QT)=k0;tx0psehkOCNh73eL{?m`wJl-t&%H_io)hGV`?$6G36 zQ$_W_?B3c!4J-vO29LuTW9wTJp!jWKIuGY`i_$?fQd|kpkC4yqrrsJ^!)n%dl5 zswXB(Lf#p_fXDZXN#7+o4FA<#-hmBukdX%s{6jI1{j}%9FoCl8X>59QTvw1I*;rIw zjl6Mc<*)))L6Js5(h?XwiAw52kCjVQuq|^(_E=%@s&Hgxbfub-&09K3-_PnL$^%g* zjh0@=bd;&d$zxaGQy+rf7G6AKX?Jq|4EU*1MufDaWqzZ0^pSPSFZ$aRmNb( zr)26SJBchn&MWC&jrf=$Ze)mqqIdRo_U@9~ku04Ypc?^6g$|Ce6}OfELMSe@3i%D1 zYX!yJbz|-K4u|G2ku6YVWMj`1|G=TC|M)aP&lDx*u<~=D0{~JFn&ECO^g`M|DZHI* zD9Rmahm*Vi=RjQ;G_KL=v@3+X?ImDEufW@@Qi0|}RP78vTG(Sg&A-R^iUgtSg*I6W9r9=_{@b zKHntVSKP(>WMSOAA0ikXjEI+vpLSzRWMpLRi>x=U?3RqMPmxD#*6AjRUA=U*oQ6ob ze*Gmll&vv0Yx9{Vn+>9y)R(POI_`tUQ9l_IP$yVR}5J!A0@ zzxzD-;(cPB0LiC`L7AmNZW*PIbGJT}wS`^3S|0iI}P?mk|#sb$KyjUDKn<{!Py zw9NF;MxF%+-!)|9?sdB`S8l9v82KcDSoy`cxi?%c|qZs$D`Td+ido=0f?Cykzp zJ5Ho$vJnmkVg8UTT-FJ26Y{MJx4L?e8EWf7lk`uxo!Ro@p+9>Q-E&keX4>DV&d3*V z+l_kW8(h6j2M;xfzI_h~;-tU>!EADH3+jg^b9<;LuP(Q`DzTb2;i;c|jY_JcE$s~= z@VBAf7EOER?&|~X;^Xa@ndx>_KWvtrQ!>yl2~3o?=-Iu&zeF8abUO0yXTLAL^vt** zaj(pH7A?VbuKv`vJF4>Dbb!?yqoiw>Sa@P34&xQWNXsp6j*9BZRyuFCHHVkQrpH1a z&b^F^i$}!diVn`r2ukTvaC%0jNFp;OyAtVAo&jgX*%>U)cyCpUyt2B|)E^g@o`sHy z&9sQS|M(^5rbtvNjm1cwGFkmBlEq>Y6X^*FIdnM@srZ?lN!Mnw4b#cD-bFMc1B<;; zU9B(BxX(zqOiltJF+8~`+ufRw_>5PCJ$u?XD=jL9$)rd5MvmBI=1Hb9VsI3Z$8oYv z*y$J*U4}C){wYf@+2{({{gHZ5V-N1aYu)_6qI>s**+#~s@aD2a&?{R<84`Q=Eh6K+ z5)YzOMU90CrA!9~`*KrGpYVg*~DZxuT4s6@yj5O6tpyflJR z;VB}C28tL$ApuT;V+mP~`ck_k^`yvzR00W)uay$6cmD}RS)wGx%cW3JB1SM-h25xf zlwW)1qpc0zVGw%rD7*`SwY(~&Bis?)u4JqtEh3NdQgBD5p;AyjaD^3NW_w56tqA47eVtAdYs;||LN)YhM~#~qodcnoy}nGRQUMO;E&fvc1u zo*~l|@1PE?NrLUdbs;iN(FS)Kd0HhK*M%3L98l&mC|Qn&?MixAt5~3|k94!dGEx*3 zSiU~D;(^+MLCHZ?|3`V>A0Jh5_B%@=1o;&O6$LfaD6wGVM+l(Q20=uLf*2Joy4fU~ zWMz|0H=7VEwW***L>nzytW;x5Ep4gAN|jowpjffeN_}YyN^g06sTT`M>g8H$qq*N_ zW}b6q&g_Pgo7?w~dp@6Mch7g8d4A2$Gw1A?{wEd=`}FkZ-hca}etj=KR9i6gj3Kw2 zHER5OXI=Es+g%^^KmGb)L(l4e=GSv~jGJ-F;lkXz2fk9)HR7$VakrlR`BhD0PFynf z`u;in&g?s=;QWCjyZ*fQ{p!2Vcz)mwRaceXU)BHDLspF#I=th}m+yZ2rO@!_2A(|P z;urh&d#0=FgD(soFuecpkzcJZ?LTnfnRC9?zj)Rad4rq#|KgKBpZHm;n<<4IO#j$a(!=Jmu4_(Py7rGP=JjiLcU^GO(}UIy znsoD|95L+V?1680UEkT!eu9{H*}I`3`lSy8J`Mlv;ybg?Q!jlu*q;5@oU%pbxrrvLf9+=74h8TzNiAO51C zM2y=~m~5TVHoEWBqYo4%%S#F?!gT}I?s;@xsJ*)U$q|vC&W)b4Vewh#ls@)gOG#mD z#?GywH&c)2JRJRX-;4kAlsWqze{A%iHwWE*>4ioAJlwJN!;;Pio+#;a;rOXtuit$C z{sE((%$+zX@2bW34}N^e=v=I9Tt2vH^8T#6?8hF+n!Txb{Lpcg{o1B)o;>mK^~tKG z(@M6C9v6E)v42YOiI>lNyzfhGhpWWY)pN`Lboj^d?W0GC-&ORRBie_Z6cOrZ!>c;v z(Yhobo#$OY#~UBYUpS>CQhDDC2jBR#>xP55ZSq*rch>TLmxtbN>UZy1OF!s5>FwnE zo4_j!!c}fx^*59wsdQs zuYMx1X1Vltq5Fnixb&0G<{>NkTneMEX!`qmm1t>g_x4%(QuaOlmcE+3^u6rGe+#|w zUMb*P?)m%A_rcT^{VpGSU|MML-&;Q)YWncrek;P+)msnbY~7N3_qOwowjMkX>Y%(Q zEZ_akp8H-9Xbp+b|C+b-)ts(}=i&E55SOzhwfCNX+%WsY zr>^UIxC|iJ``weZ^yTb>{}~y-<)wiFrrdW+=lCsPM%rhl9bSA==;eE}?%pP~LSfdy zck+j9-IrT^FI4wA_|CmgEr1-T@966K1-)lvUfHeL*WS?e`}@B3IDBZ$`$}th!B-Z{ zE1O5)g2;U{^ILBfQ@1sJy!24(dw*Q{DVL`%*8i5T7Q8oP9=$unIPSuEZ2)V-c|!o> zERO+S584dc0eTBW#{vEQf&QLz+5D?7E1fu@aAs+#sB3JlOs3>|c0;N*8I4q3K4XGB z6{U$tRcWju8A;wYT?mZwG^k_nPevOXg}6SJOf^N~z*5o5ly^Qo9#2$yXR|Q;!U8OG zRS3}-tqaHMW8hVXeD4f?KK2Oe3BLDe%6}jvmahtlL*EREWhV=<1GEsd5wr%>3EB@@ zg}1Y8o-9PFP>5R4F1*!cf3Xk+!1osc!+FOMOD71i1n1>bg_w;z>!t{? z_F^Hn;e9RpFG4!ri8BS~`6WWM;C$63Lgazg%@86!O^C8fg*b}z-MGuR0O>n{ExA&N zWuU#K$a5j`gN}kWf!581Owbxo8z^rc_(3Jt;2U%lwEKD?j+CMIY!zbIBAm~Mzqble zh2K-+$cOKp?Re1)=x7Y~BE0}F@yP*oBGv-=YHMK+XzW$c1!_45{^I-SP$7ywBg8>x525o|A+a37d04Yb%6kUx?Tu zb^^3;4txOZ)G^%--i~(I1*(O8QxKPS{9XooTM(PQIA8q*#QJ8)djjzV4Qs{AcEBU( zH|$$j4f|jd#i$+jQJhlvrdV}A4#jIqJ!}P0+}aW;)Loc&W^W;hV~BHomFs zitxQ2?Qb*aw;(*^CEf>Re=8);1dRvH29<;AK}$i8fHr{M038MmdNd@)g64o0f$jmV z1HB0PBj|ll_L`758+0+~I#2`X8=&VvdqAC_v%eh@GeA+$a?p1{FM{@fj(|>hEF^}5 zJ`0)yS_E1NS`T^+^e50^P!78N5ugh}GeKVf)qxg+?gBjmdJ421^cLs?kZ2EyQ$Yow zOF%b(qM!!Q?VvVLJLs37KZC>*;04VD-2z$$S_^s+^e50KpfkP`5>r4of?7Zig4Tn! zgWds!zKa-xia`rOUjjV@`Wfg=&>_%(wRkNQXcp*3Py%!ZXf^1^pw~eMK%av0z84bH zL0MU7!a+PlC3B{s=k%`WTeEE+j^Srh(>z>OuE{eh7LV^g3t{=m4nC4-gB` zc+f1+b)YC{F=z$oG0-!hZJl1xM7T%S1g6J#yi5$^ioG1ohU22dREQVm(a*{Y%3>Cw~DdJRd zniwul7iWkOVx%||uM<0444Y;lFSQp`b@dzH9a%*E^8 zt`YOawW3U1C$1Mahy~(Cag+FhSSW55w}`MP7ZFh*aL-xb#DT(Lfk7> ziu=U<;_G#+>l2G3n2AX@Bv{iFtBL}*1!^=XFOjT@Cc&M-j9_x6 z?CEuK?qlf2iw#pTL@{77=jP;0x`Cr`GUe8(!OSc)pp)SsdwLxiWH-g*nc`_C1$9tb z`ZyXX=`wMkGL#|Z4zhG7CbJDJB|~|dia3yg_@-m&&K9JlDO*#D=13=`8yh$&UAD|R zU0oazuURr+2yTcZBk_3D=sY|mQ&YDY+;H3JX`HbcT)VyWMqKg567`MYbOsxk$LD!! zB338lCHQ6UL8e4JN)?ZWD-#X3`Tb|30lK^flERX+>htKA>;b8d4@a6Ku{fTzg5ZXx zMjGf`0(OHa#6UkHj<1guqK|Uz>pQI zY*y#7NIVv43{#YJB*M7BUz9Pi9^p#QfkzF(5!9RJDC}>JY9kE!lA*p50`SO>@+Ms0 zROhH7KJ9qgw9L{eOr{AsSOFWHUMF~w^YW)AX73Mgy+aI`KywGSt;aphoNHa zSWb+7#~_(>)ku>)*g3@Tq$@W)Idzgn;DIi0(S;ql^81kxr;dD)Bsk zSI3f#y8SVP2ZIBM9O0x@%%e@G(y-+@K6yEAtJj`k$<}u>iO20ArM`xp!bpjEvJ&bh z`V9(ex`{Y?W~YmyMO%NgYHUEmmm>YJ$d1Vz#*{V(_D8os(jwixNSI~{GB)xI{^Qb0 zovR*>?#fz#9F>|XF=kk>>}%Apj75Fn)$gNdMX+4m3oM-Uj8J76nbYWLtvibaRhud<}1YFpDHQAIg8I@ z$iaOqwco>U#$&nk|AV8j8jtbA&mkbX30)Jyzlv}(c6?!_v4kvL5OA zAgN1ce;%I=Y%`ge=GX~r3-bu}OXVV)uS0r{mG5}`%0o`&mnA};6ej%uQORV5MmbD{ zw^k+z^!?&!j0LKqA!m7knt}V2NZ-zWW$^tY@N_Z{ehV=GXX6k+Rqh-OC5J3r1)lzr zlRtVp8sw>p#yPCQ`)1#9D_{GrXO{u*hr^47>_r;i*)PRIeidk~o+{C6e(AQ1Ti0BB z_3FQE^m(vzSvNM5Ws|`}mdYAMfS3tn4d;@`LLeJ0BmpE3X@0IR1KDBm&;ua*Ed;j# zMW=h-1eTwN!~Y)R@C=G0pxf|-Vg58XH&Z5`6?o6 zA6$Fm|3d9;MOIyVX|2|&zcnyqoi49*_K@ZjcyiDX{c>*wQs5yRA0>zU`UY~LQW^)x zCl44olup<2#E1GH6`uiy7WI=`?n<00-)Vixab2v07t`2_G-W~3eh8i&%p=9W1|aH!Z(tnalQVA1pj_DqBcK_d%brez=L83#9aPM%W9Li@Yd9 z4`TP5y;g$S3u-^Abm+d5?E%?b0t;tj(nhr|U2P$r8^BYmc~mp01Cp|kB|utP4rLM# z1DSF*`%cJnKw2zh50Fh3@-dL37BUjWT$`sYBr)P*AiFGNK9GV@CQlN`DhpWw(EG+v}Y8M{rRSxOMx6Z*OXI9Jm;A_w*$eJa4Par z&MF}5Fm;e+A(8b!%Fj3DykhXEviK7amZOl5fUquw49@XARY)Nawpk%_fv{f+NdV!x zp^&?Qa8woY7!WQCh5QT%$5|n}fN<$3~suMCqb-F$9ewCL_Qfz1=PjK(OB~ z+}1s`Kb{=?tS*ZXTVa0}f~SRfWYRT2_FG6C$doZ=nYIC0Ya#1_9My=5&vqbj3}Aju zI0$5?h4ed7h`d6xZj1r4N+YUf&IN*hq#1HjK*}bV$Z8<#CYo}738ZwA$+HK@HcaS! zdp-iP8&BU7qHG?DA%ZPb$b~>SmqJQ`uw;eQ0%3a;vJwc}tdOUHuwM%KJrFJ(g>(Sn zs48S2>JXQOLPi7Os4C=2AY3{MsRzPk>eo!Ai)!XMxG0ZU)u6X)=06}^)l7Z2Akb+) z01KDk*<~5|3^nt+;915z(%NT%?6i=bK*r)(Xukyi3S^;$d;$ayp&2~6gAhXt$p_-= z;xSHHND;dQfyLCvIC?u`LlFfPF}|s3hinQg+{-p+h}azPjQyPHX#~h@3rPW4V<8U! zIbb2}K(a3}?TX>eIC{HGM|ow+&ym<=dI%P_aeOkAX*+w& zS;%A{c_n6?=KxvaA?&--MZW(8+Hk>U9KG%P1-|d{(HPrv%m`p%$#iXV2H%^>3+9ow z-Vfxchp=Bt4*4|bJK>L8w&5i%1D=9q>zs~m^x1C+z|2HgL zbA_@noh~x2FUFpY%tL@U4M+*TaVa9N(}b7=WbBn%4p5{6DYuYofvldx(IB1*Anm0l z@B3fzW?f{PCgyHINny zSr24`h5Q1@E(`fBkb)ac?e93bJ^^A&J`;n1t^HykwuQFfY|Zb z1;mT0jM!lyzRg?{6c5z|S|LXDF^=A@3Cq2jP}hVTPF7W5dzQgJ!sdnD*i7Mk3Osw6N5=P8 zK!)L;h5l%@7f6+b{0&H(h0yxz6#Spj&ou%_i-k-Evg~H&;Zjx>QpBp!_ns+j;E&#p z*w4L);f;EM?w9S^CN2E;v^cu+sONQf*wih;xrmsu2Wtg(W#SNtTfno^iz>l&4zk>o zjOZKRY?Amcyy#$0GeqNg z@N_bd%()Xt?k!yF2-*)M-$JsnUOvS_J_DrGLM8xNU?Eonsj`qbkQNJB4rHZ;JPu^F zg=_?}!$MvKa@0ch0vQ%Iy*LbHoP~4&nPwqFu*yE$Lh^x>S;$2|$}Qw-AaM(+0@7k3 z%|Mn}$k%|hS;!+m)>z2XKsH#&t3b9{$Xh^mTgX8mhb*KEh$uIsanfmskA<8Eq`*Ro zffQLtDUjI~ax;)J3;80DS_^3flCqH1K-w+jM?ltF$QB^GJcN52RiCL{bYO0MzA%qo zYlFIdWkG}LZTOLAyT{oH3-_^w8QRx=@El+suP0Ht$O|mK1diVJVyNdubp%h)T1PGY zzYs_nh~^7fqB>RERKE!24u2HlMZTQs57~^5z|m_q$LJZD{0SspY7e37k^P{ruu$<# z8pjsO>n}f@ercYfdHAj5&{c+g@b$&0ZsPOb;CsUL?fbH0`#!nq1eSvf{=mV$ zkMVrR6J_*7xLv_T7iw=ux$Za8mAjtBDITgDw2W&Xy;e7LtDNfDT!VLdxi$|Nj{Ac! zL0(sihQe{uoIHFYqpnNC!6PD>{X(i31DX z0-#wkjX&7td;l_H>E!6=^xD9qZ06klH`_eNvzgLvq{w>*$8evtne6eBydOQYhb*@b zw&zyMo~ftXT$l~QLS;{0T6>6p1$d4~o53RmJPBlZg|1N&*$Sit!J+glFY>;pZ^2g@ zmi^;+JY9usD)MfNBZm&W`*dPCimE@d9YLl9=a!dw!?Hl^N^OT(B~k>7R4)F zC2&)E8am%*&=QYmIW*p7g;MyWKF&Tux-78Z4xanc${DD6aFY@|P55-#Mrt11`UOuO zKHb_dM)OeLm=)5-;Wr;#Tj=RE)#B)X{*{#z{Kh6(=R(frN?q=*DPFlN9?~_~;X0mj zZ->@QEshMLa;MT(<$krJi+HHqskBwO{}STR%?A!DcPedF?*9X+t|%%~DoItQQ}D}; zGnFZoq$<-dy9~%hWlANf$}|tZTwPSAlya;xg-P-`>8wyIe%S|?=_;>G-5C+(p!i$^ z$5nhD20{_H4~laUD!hs_%~IThVmJc2R1Cia2HP+0{dQETl&sKrM@Vnh4T@n2G-Qe) z$7ihcl#D9i-)|jxWg3! zgzDi#_*V6>7{3DLrDq`XV2|n(@Q?3Qq6z;Dv3iA@AVYT!IZTU4q^nsC+0xh-kFZ<9j>KWa;pXdU89@DjAuy0YQ@URYr<-BA0~}=R=4_ z^o+5kN7{Ef+V?rysnBfgYaQ*aJ<`70(S9JPt0*Uk6hG@|U*03_>mBWzgSv|LI*~7R zw72z0`+i6J5l1`S*R>=6rlWmzkF+0fwA0#`rK^aZ^0$!Uy^i+w9%MH7V%6*Na{b-N0Z*#QoaW@bJ3KiEOW@$^%E!Bj4_}r18+|Vtdu+cZ z4dnhOv+t8Tx&DOg)n5vO95gak-fO`=$|HqlR;hIxg+Y z9qsLo_AQQf`k$SxJ+DXFTOIAI9qpSO?K>Uq1wGQf($T)w(Z0>mexlze=*W-jk#_oz zlU1gZRyo=?I@-55zSCQXy`Vq_j^6H#X&q6PdpEuDa*jsk9;s-ZCns}n{L60Q!@btO z(f6Y5-Px??W9yFX`{XvRKk4qR>$AuY z*6<0j4>w}8dWR4jN3YeE;9DTl)C5xd08B`EwU=swZ8+P^Ci>SYd4TNelvW@l0X(WK zCXeGdGcsu&mkuNJ(s;WcE2jT**rNkj9PK5J_Hsx2 zf?m>|?`WUtXs>d#H}{hE1&;O>NBe3=`<=a1?q!bll%su>qrJJ8w9j+2H#pkc9PPEe zqS&KU+Ud@9 zZG@%N^~lj`ns(`x;L>lEh;){lwALrDiii{1nJYAPA8pyblZr z_o9Rf@ivfFO!FX0^Lz}XLu*$&IcG>#L-I%qu?|qORYW=TRW-$VqcirE7ze>vbSoESvXe9%RzF4gldkT*>J(LeR!^vi>M! zBoMCi3i%w6PF*?*xdup^mn$5`8`SF)V!2#{Wt*$Ov&-Wl8@>pH{w(E}&I%xOP3`;j zeIPuuQo6QKE|F*CdJ72U@a23Yd5Dia%|W57D{;1G7!dABl;m+hxQ;2LgsO@@6fz$O zKdGXSg$_>~2+xQV&wW5jEZ;W(*#gPFr*8n+X(8_b*=XhZ2*?f#IpIt^32z}M0a5FR z?CH5csKBXDQ1%oNfC=lD;WH?vs&l! zOXoX;Smpjakkyu)-vilfA^!!W-9r8eM6Kzur-ROtZn0lsY=lcscFPvWJfk!ZajIxc z)QBISD=nUI7|#WV@mB&Iz85#yx~doB4R%qv)0zKorUZDn&s4hZ1X2JwzOIKXIi%w| z4)Ux-%CQF}+x&{dvlocE%gLU;3uLbqu@5Pi75NeR3LT<76DQBj#=_0K*$U7 z3H?|q5l<|RCe>X|=9vSYDzC2tqqq?W9ZFZYx|;SL7A;n-OMzz|Z1(F|E07k;i#AIR zN&FU&HTd>(J*{~t6&8l&`yeBB%iU`65a)krMEOO?enKpJJ_N#ZKUJoK@`9d@1d_6B z9t)(*LS_M3;^(&b?N9ArLVT^IS8I3R<3_gE*!q(!J~q`@i{>va_H6EcnhIe zXX&~EJgbpQl_|y)?9mY>Rq{}g4})iuCx;U1fvmBRB*_`zm`fax5Tp-k6`WBugc}!#skbThQ z_Zw4z@M=#V5-F|&vfJYcW1DZh4PNen>Gw#L;891Oh+$*n;A$A9wSXrNa{SiR288GQ zePs40f$a2j5%e4oJ`~S3AZsn2zW~_>CSP(V5OrsSYwtj@xKpZ&6U76=`__SYTc z01%$ND|aGVx6}?|$V>Fq{vBtqD zc+`Cvj(jta)@*C+2Er@JO8Zkl_)y3TK-6;%EN45A4lred6wkXr4p}ig0)!3~u@le5 zJ;JJJMN>@}8#&e2L>u|Ep{auYo#ma!>Z=o+7OAL6Mw|I89;=V?@9HG|qf1M~e?$1E zmW{u$(1&9X6EBgm1V zq6FEaK^iA#lFI3pbU*yvw027R7jkzam~-2<*~;xSzjR1D*8vq0J0Huo!eX;z zDp=F8e?^5|zP1iFgWZ5mTo@TWfT`?w3`#4gJ4*rrSQYA1GQR<}}Zb8Mj;nC^r# zPq#{#sXJv_NwDcq>{)iYG%Ye+5^L>7GP882fq7g_oZ=6Yj5N}Qa;gS-kTc!~QsjPh zb{?bAFtgkM&*oCwlvZ^Rc3^Wb5RW9Ckn5u$8 zh}s=fo${`R)^@+DnCS(ia$iLM6wAi6N2{?Rp?Nh%Y2H;NUofVy@gV(&q;O(U(PVY| zOzkSE^y_M1S}axg&DYz8QfD9oOm^P0QYF*vIjvf^b%`|K5;I&IjW=NDdd-NYZEg*$ zP`Ou|zu%$e^#Mz>0aH}DM#$P^r>S=4Z9Jw?^s>E~CrlQdm zSvD=k7t>3XY*t-L0aS1AZL@m2dAo3WW!NUsZ`1)p$Uq(g)vk@^DJ{+gqfeuN+P67V z5-qQ>OtUk``X9s63R+a6{RPvYK9*)wvGSx#_jBuALOl)6Du>pdcA>=6lRnkgVlKiM z?(ou%Cx=4kfhs$R_8^Xh1^Q}a)D8K1Urons}lj zf~y4i#%T*u8=i&34bj-dDaGEksC*w37POP1!FWN`1#v9Vc5XnRO-H8xdO$6EMigME9#ym9fb z+^PuP_z2t=(RVWV!F}b>1#)r(55wW6s#tSXY@)y-NkMl3I2}-A17?)i=lkQ;H z_b9@0Z)o*e?!w|plO|5WvbioW`NCm2OVgzp+!H(;j$vkj4Q2JbE^!;_nt$EZWmjBv zS$N*Hmt8k=Zg~D>rE_Qa_fKRF1Y54Z+nUq_L)IlZ7Dg)KxSi0@)Cj5Ms+vKmyD&4$ z=6W|}3KvHsiwfanb9lbK0W$;FRgKX`fNAg7Tpmr$!`q87&Q3=Wq6Xe}6=tlmK1%h0 zZLqzF(Ei$VwS`F}-%?N^(2t%#9Zg#098=mUy=5=4i8ktB9KORLE5(eoosv!?UQkol z*o=)o!x5B@x&bA{&5G4mO-Id~UQ)yw)Lmhe5e-#|YBCKsZ7LIWb!e>Iax?6G9xzgx zLcxM;TO6+UqDkzJ4tZFHzZI>dv8kf*HuSP}VJyEl#uD|a)X3%*xfwlvfO~pX&|Z#} zROZbo{CcLYD$p`XQp|{SxUzOpV+sSemqrt7vdD_Gl#8CwDM3py7^b7O-zQLacdL>*NjWihbMd^dNGn$ggXgxQh zl5w7U>R~_~cHPiW&Zr}eB~zrQ)btF5BTvmk^|M|f>RS`C7-0zR>%}TG`{gqxgd+wc zmo_%VMg2=OS`|-*ft*VvZ__o1#c@kQhiP_Wrcp+ljnv?tV+1!IQL&gsHD05xdSxNi zs@u+xUYVkHfT6CYz7CNyMQEOGdrnjYeaA|5hV1YRqbKxiN>|OPW^g7iAPtE|v}bZ% zw`_mRGlxmts46`HssUE|RZTV#J#@z^ac@<%8T5uISFRi!GHQSrfn(J%IeJ+xs2XNi zByHuKRwa=ssAAOTU5$Qly1HR6VR_GAZQ1ONUMP8Y*I_{|OvN^sD^<{0Z)Zj1t^i3C$D^)MrQ4Rcsf^#zv-w2&#=bNGrn zw5ChZm?)n&UZ7!7r2U2}9o7#I20C*Udb=ys57wod4RD>TMfhkoh=OmD)1QD?FB+;M z8TCVs?p7Pp9bCqlggGi;?GaBZAV;RY(`e$#YkFXuhtwE_%j(tQi3lD!30KD>HH|W) zGLwEflZ%~;*sgJ2E60?VIjzB%yT?V*WPLO~QTDYg%4)p~a*tz;n|4dly`1Wy{Sr54 z2rA8WReIK3-H?pcr>bFaU>x9SkTn59paUI4=KfWWeXc8_~L9BWjFH zsncnlu6Fdz^lN<`+gi0%F^aEh$4>1st%_7?Y1ILR+J0`RdH-{ltk8Mo&G+8-&i9>r z@A=*Te%5=>nf{vwBt!^_AbY(C?T0%~TITx8ms)roGwj0{v?ubDr2RzECrPubjCN(U z&01;GnU#8-#bTwE<&@IquqcfdWkK;QrP*qrRMF8<$(-ntLWGJ4AxcZ$Fcl3)=ywD{ ztw@|CBLvw<0Yo@^;C2q~ry;jOMhC47E@15j7RG-326aKkJdm(o2r0QTfEJ5?y{Cu9FKc(jPf;I_@OHl68IO)H z5I>XSJQlxTQIqSQH@D$NwrkPP?nQE!)7xw8*V^0@a&ufAi;l`|wFA4G#RWTdWYGD?>*Y7Q z8e0^JqVq%K1`+W<%kl9URUXH#1(}}q9m3aMIolXHF{@~jJbv@HC(f*IC~j4nX7)Eb zb6%%Pm2vb#(&$R(=>h#r%Jes~qyNy>k**Ncouo4-q>i+8Ob}}#A5(~SzjwIq%>IV< zKQ~A&y0zjf;wL9RJoVeNza8sLT88p3HFP=->th#5hh@-Nt6q=P7FVr(Z>(t0#g?89s4bSbVbrPDvUc+H)9@j!dy590NT^^seyMr}ILymyCK z<()Ne!Tn~(*BifVd~jqvb!)-mrB?aP@2*atLuc9I#6m}eK49Zh0g;onpTDFr=ee4+uCH=kpE{yro6i2Y;K#xf7o~$2P>)~Ny9WOt z*+nmV<@|zuhu#1mW`97 zO<&Vg?v+&ui`8w%?HyZQHC$1yH#FQF8k06GrKRLz>s8gMF`vEn&Hn6Nqs;bQS4Hb2 z%Swnf=VDIZ>%1U4FknrJ`w2;%*D=&RCUQ6V`l=5b9r3G_drl?q|FP!lXBwVy$IX3g zUH2&ai;do|?(ePca;<|7IhInrn|>I({lKp<528AMa7=w(^5aK&v{JyfuJS1`RbX{ zwpZI5M=911$!S|U>;$o0m|c?~YW|P+V>hq+SYpZ|?p$sYbv)eC{&tM_Py-s1rhe!( zsp2uTZQ#ClhAb_X*O$DZRVK)uS35T-u57Tb{9^2@ddZk>FFlHit5?4gE4FqucX|gn zuZboTjvMOVe(~-&aV<(y6b-m~V@-EvbGyJL%_rRPb(yyuUC+K4D<70Dos&@}*!xiZ zXEm{9ruKE@!wq>ezLAt{YuNQho_LU9_x7D|ZP@ejsnc-FJ9hpAT*YTRUs@F6L2a$M ziEV>^({_ef)g_ScUEnGI%gWC0JYUOD*}pxFBpn0ZOv^(lUhlA{O~&#{y`Hp_hMKHV znJRoSB?&(%J2lU2|X`vDZLl zBb6#$U~}BM+I-bQ8{^Zf(;NotsF5bCUZuZ(;r`)@IYt}p(3zfeWUo-B=nMv1n(~qI zi1~Lf2<^tFC~HMZd1~qwfu}6O*su0sW!&_)+Y}4SQ~p{pu1?rdc1NU(d3X93>crtA z)w&UXGJbe%yljrpvS#a3Lp_Tk$FB4W}jwcp&IQL4;W zs#Qb=BKB07WS0d)N5!R!Wdmf7#zkjc^S)4fH2<-M(~Xu%a~Ile`h{`dyms$KdBs9= zY-P>ptcA%aW8gun@W$ch`;`Jw#9&%1aaioeN(*IB#(L8`as?85mDNTo69}=sN@qht z(s;PJ#cM5hR3Ihs^myVevYL)3oHD^fjXCKxF?tKV-iAcwIy?35>Tzd>)=4W&y2@c2 z&Y!f^$YYHrYNKL&#SG0Q{o)Cm;$zm1JG*z|Q~g|tw7I&%qU*j^{GoZ?=D{dJ^x6>d z#3@CEsq;xx5$1!=cqq)Cc%6Xt!c zlce1qd-Ic)%T}HAy20uw|1MIfpQbtUz13X3T={@PFMbo09kZgzeMQtMS(#nZxDaG<B1lVC#VKlEGL1a%gn|8X*@) z62yQfqLR?aednJzDO2albB4;3P`WDl^5}WdgCYb`ULq@H(}gEyXP|Jrigfn_uX-u7J5pE0?I_u)ZXUrz4bvnajQGN8~BZ+pjU{y1UM z$ReGcF0|RKwrI1d`^I#u!I3*zXE8+N^(%Scz#-8Qecs2E-5xu|qNNVM`%91DLHrey%^n|#Z7`VnJG?YTd1Bgs|oQp?GKqPM5XpR-A+ z3!1r>ofhk&!FowWg~^dS@9R_csz3b3oM5KR`s#aLue}KMlcq?MqY@J4XGWLyA1IN^ z`VUC*dcB7Q%BT@3ljP#)blKSPiQh>c7#0y3BaMoR>?cW1k$F#?^QQkXTK<3{ZrEUX z9E$JXrIeziz24@M!g)o6j9ZM#ekU6(`*E#rH7eZ{FX_BD-tJKdm75P*Wdl1p3O9+K zlOT`0@$88k|2Pi#Sdn7I^Ow^0D@vA^CH+-vGYP8qM>O9>Dwj8A_OacHr1|5mJ+db zAHbTrtTEyAL2G?ud#=|zw_VY|q|M@qnLj{doNyfb{ba&Gt@5 zBu8Lx%RK44EVM-*X_W%Ev&&1hk9ZUtj-}qJZNE%(Vcv*MXD*(tZ$!Hha!VpTbdH-8)vwRMYjEPH z66bNL_xT)n{ym73dg$}6+jA#hf4kKCycR$pm$-z^CQsjO8|+ZABhJ zlPJ2xX4U7xj0+gO3Yl+6coKaJbp&_(350W3 zD?+y*Bfv}g!$%P0e(?M-M`t!#Dr?M{8SKh}WQuf^ja*8tAPq29BGQl9D6@4L<$s0S z1O6l%@)%tHA0|}=OwV97+7o@5gKyC6iQ4n{!`lK~}04)d-Qu4Np;a_OMt;Sd2kbV3OytXN2_g$`x>p3wy9oRgT*hn;3ftC0Fv__-G^n#70BEq7t`+k^EmzV}4KjkMK3!`j2PjzCF#UF-yqwTJ!6&kE={|7v^i1jgDE zXo>$BFM4spH6SEjW}ZVY$2l7KTM9Hg!Li_eis`@LXk-jcJ%+;41&#)Ot%4j4TseTF z4D%g@MIQ0>?(++&jCc%B9xLVSf;Pq?W43`@Y^e`XYeNxDhabV8D^SYjTf(o>J~&MK zF27{f9yRWRLH1~dLjX90)2{84_QWvlc(w}CrN(1a5TZ#8(>}RR+LdA2cZcdy^P{`3 zE;J*}LlKQAO#8e(X^#)nj(c}doYh64h$bdXds&~fCx>a@6RJy% zN53F@H0m(zRejQq*K9$O$KdfJ2vHY=BAPpXgd3l+&Fpwsp<9X<<^ie70)IK7tcA=< zuAr+NmZdPS_z-^FsOG%@|3XvPNYWDxH-_U;ptmuT8(Xrle8wIk9-i3Q5Mwy;+}OMSpVN#@;oA@VehN)te*LP^Sj$WH z)x{~^9v)HST4q}mR~MQ!Vf|t`-=cn%_JT0&r$cqAmxm&ntzp`0`=mWPO#87=U20P( zqL~w>eN&&b<8P3lsE#=ws!P2-6w#as)85c0?KxrEPlW1H;}u$vg&Iqk_HBLAUKFPN zOsFn(Z78DgglXU2C++Gm?VeCw>Z(vgGd@iF8-3C~IZXSPp}N$oLJ`f*FzvhhqMfy&=2n>Y{e99tJ4}0Ps4n%UP(<^CUpqI>8-B@VZXUe+&uPXk zv<7ZFyWg;N_s)1@>L0;4V zf)n0EVI{wb5k(-<#Ly@MXj%ZlQvF=FIXPGsD@TS2xWpnu!jMsburoey^Amuua{-Uc z0Hiv|=5n7LB{DMW@bG$H!O`Fwt9>Ip2G{$W_+^l%M*-OmpubK}19CbDxeUniAbaj$ zIb33O$s_nO)=rYJ&p?t4eB<_O%WkL2BfhO3~ zjetmj5nIPv_#7bT87{^`yz6YQLfRlXe*~I6z=7Rkx!wkZPb|_HhMW$T4BP5>D{Eem zv z@X1d<*APH(7xN>J0)j_T%*=9)17v3qGKrA`5W+nr4({PSWucFTmt(||A+x&-n0o`1 zaEtQm+Un!Nl3|mv2gz?SG6HRG;<)@?danM0h^l7o~L3<_$XQM!7)sOQ3Dl%tEejW zXc?yPZ3~BP0sA(CNfVq#3nC5JK@Q+|SbQvY#CyWoUjxT(C_IE&Z7V=jHDw%~ts&t6 zHEo0wZp@%2QeH*oe7S!8BpNH z&nRp5SP^pdL$R6_yqhlQRp8iu0LMaf|}|o13)bnrHPD@Mq?jqS0JU_8?VNL+O^Ppgq9h zKwklw!oLp`S zhy%$W#vTxMA|gZM8x~n0z~{_N6h3HXqVm{~1XmX0B-jT3Edw?6-i-LR%DY)b>8bs{@T-0#MD(yUa)e;j`L<;s)vsfvtmS7rIJ{#HT8m z$lBpB4308%-%5*_vaq$(yMwrbDi!{L@Eqt~bj`G@>O6QyCQp#qbOrx_%9p*M#dL0Yc pcVUu4$3(`;-o`Yt*A~-z%jdf`47Pq-eZwtZIeg=1)c4Xb{tMxpjGq7i diff --git a/pixelshaders/Curvature/fragment b/pixelshaders/Curvature/fragment deleted file mode 100644 index 5c311da9..00000000 --- a/pixelshaders/Curvature/fragment +++ /dev/null @@ -1,17 +0,0 @@ -//CRT curvature shader -//license: GPL -//author: DOLLS - -uniform sampler2D rubyTexture; - -#define distortion 0.2 - -vec2 barrelDistortion(vec2 coord) { - vec2 cc = coord - 0.5; - float dist = dot(cc, cc); - return coord + cc * (dist + distortion * dist * dist) * distortion; -} - -void main(void) { - gl_FragColor = texture2D(rubyTexture, barrelDistortion(gl_TexCoord[0].xy)); -} diff --git a/pixelshaders/HDRTV/fragment b/pixelshaders/HDRTV/fragment deleted file mode 100644 index 16098b90..00000000 --- a/pixelshaders/HDRTV/fragment +++ /dev/null @@ -1,14 +0,0 @@ -//HDRTV GLSL shader -//license: GPL -//original version by SimoneT -//ruby port by byuu - -uniform sampler2D rubyTexture; - -void main(void) { - vec4 rgb = texture2D(rubyTexture, gl_TexCoord[0].xy); - vec4 intens = smoothstep(0.2,0.8,rgb) + normalize(vec4(rgb.xyz, 1.0)); - - if(fract(gl_FragCoord.y * 0.5) > 0.5) intens = rgb * 0.8; - gl_FragColor = intens; -} diff --git a/pixelshaders/HDRTV/vertex b/pixelshaders/HDRTV/vertex deleted file mode 100644 index 70591d55..00000000 --- a/pixelshaders/HDRTV/vertex +++ /dev/null @@ -1,9 +0,0 @@ -//HDRTV GLSL shader -//license: GPL -//original version by SimoneT -//ruby port by byuu - -void main(void) { - gl_Position = ftransform(); - gl_TexCoord[0] = gl_MultiTexCoord0; -} diff --git a/pixelshaders/HLSL/sepia.fx b/pixelshaders/HLSL/sepia.fx deleted file mode 100644 index a9295d06..00000000 --- a/pixelshaders/HLSL/sepia.fx +++ /dev/null @@ -1,25 +0,0 @@ -texture rubyTexture; - -float4 vec; - -sampler s0 = sampler_state { texture = ; }; -float3 LightColor = { 1.0, 0.7, 0.5 }; -float3 DarkColor = { 0.2, 0.05, 0.0 }; - -float4 DiffColorPass(in float2 Tex : TEXCOORD0) : COLOR0 -{ - vec.x = 0.5; - vec.y = 1.0; - float3 scnColor = LightColor * tex2D(s0, Tex).xyz; - float3 grayXfer = float3(0.3, 0.59, 0.11); - float gray = dot(grayXfer, scnColor); - float3 muted = lerp(scnColor, gray.xxx, vec.x); - float3 sepia = lerp(DarkColor, LightColor, gray); - float3 result = lerp(muted, sepia, vec.y); - return float4(result, 1); -} - -Technique T0 -{ - pass p0 { PixelShader = compile ps_2_0 DiffColorPass(); } -} diff --git a/pixelshaders/HQ2x/fragment b/pixelshaders/HQ2x/fragment deleted file mode 100644 index 0bf24db3..00000000 --- a/pixelshaders/HQ2x/fragment +++ /dev/null @@ -1,49 +0,0 @@ -//HQ2x GLSL shader -//license: GPL -//original version by guest(r) -//ruby port by byuu - -uniform sampler2D rubyTexture; - -const float mx = 0.325; // start smoothing wt. -const float k = -0.250; // wt. decrease factor -const float max_w = 0.25; // max filter weigth -const float min_w =-0.05; // min filter weigth -const float lum_add = 0.25; // effects smoothing - -void main() { - vec3 c00 = texture2D(rubyTexture, gl_TexCoord[1].xy).xyz; - vec3 c10 = texture2D(rubyTexture, gl_TexCoord[1].zw).xyz; - vec3 c20 = texture2D(rubyTexture, gl_TexCoord[2].xy).xyz; - vec3 c01 = texture2D(rubyTexture, gl_TexCoord[4].zw).xyz; - vec3 c11 = texture2D(rubyTexture, gl_TexCoord[0].xy).xyz; - vec3 c21 = texture2D(rubyTexture, gl_TexCoord[2].zw).xyz; - vec3 c02 = texture2D(rubyTexture, gl_TexCoord[4].xy).xyz; - vec3 c12 = texture2D(rubyTexture, gl_TexCoord[3].zw).xyz; - vec3 c22 = texture2D(rubyTexture, gl_TexCoord[3].xy).xyz; - vec3 dt = vec3(1.0, 1.0, 1.0); - - float md1 = dot(abs(c00 - c22), dt); - float md2 = dot(abs(c02 - c20), dt); - - float w1 = dot(abs(c22 - c11), dt) * md2; - float w2 = dot(abs(c02 - c11), dt) * md1; - float w3 = dot(abs(c00 - c11), dt) * md2; - float w4 = dot(abs(c20 - c11), dt) * md1; - - float t1 = w1 + w3; - float t2 = w2 + w4; - float ww = max(t1, t2) + 0.0001; - - c11 = (w1 * c00 + w2 * c20 + w3 * c22 + w4 * c02 + ww * c11) / (t1 + t2 + ww); - - float lc1 = k / (0.12 * dot(c10 + c12 + c11, dt) + lum_add); - float lc2 = k / (0.12 * dot(c01 + c21 + c11, dt) + lum_add); - - w1 = clamp(lc1 * dot(abs(c11 - c10), dt) + mx, min_w, max_w); - w2 = clamp(lc2 * dot(abs(c11 - c21), dt) + mx, min_w, max_w); - w3 = clamp(lc1 * dot(abs(c11 - c12), dt) + mx, min_w, max_w); - w4 = clamp(lc2 * dot(abs(c11 - c01), dt) + mx, min_w, max_w); - - gl_FragColor.xyz = w1 * c10 + w2 * c21 + w3 * c12 + w4 * c01 + (1.0 - w1 - w2 - w3 - w4) * c11; -} diff --git a/pixelshaders/HQ2x/vertex b/pixelshaders/HQ2x/vertex deleted file mode 100644 index 488a870e..00000000 --- a/pixelshaders/HQ2x/vertex +++ /dev/null @@ -1,26 +0,0 @@ -//HQ2x GLSL shader -//license: GPL -//original version by guest(r) -//ruby port by byuu - -uniform vec2 rubyTextureSize; - -void main() { - float x = 0.5 * (1.0 / rubyTextureSize.x); - float y = 0.5 * (1.0 / rubyTextureSize.y); - vec2 dg1 = vec2( x, y); - vec2 dg2 = vec2(-x, y); - vec2 dx = vec2(x, 0.0); - vec2 dy = vec2(0.0, y); - - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; - gl_TexCoord[0] = gl_MultiTexCoord0; - gl_TexCoord[1].xy = gl_TexCoord[0].xy - dg1; - gl_TexCoord[1].zw = gl_TexCoord[0].xy - dy; - gl_TexCoord[2].xy = gl_TexCoord[0].xy - dg2; - gl_TexCoord[2].zw = gl_TexCoord[0].xy + dx; - gl_TexCoord[3].xy = gl_TexCoord[0].xy + dg1; - gl_TexCoord[3].zw = gl_TexCoord[0].xy + dy; - gl_TexCoord[4].xy = gl_TexCoord[0].xy + dg2; - gl_TexCoord[4].zw = gl_TexCoord[0].xy - dx; -} diff --git a/pixelshaders/Pixellate/fragment b/pixelshaders/Pixellate/fragment deleted file mode 100644 index ff94deea..00000000 --- a/pixelshaders/Pixellate/fragment +++ /dev/null @@ -1,36 +0,0 @@ -//Pixellate shader -//license: GPL -//author: Fes - -uniform sampler2D rubyTexture; -uniform vec2 rubyTextureSize; - -void main() { - vec2 texelSize = 1.0 / rubyTextureSize; - - vec2 range; - range.x = dFdx(gl_TexCoord[0].x) / 2.0 * 0.99; - range.y = dFdy(gl_TexCoord[0].y) / 2.0 * 0.99; - - float left = gl_TexCoord[0].x - range.x; - float top = gl_TexCoord[0].y + range.y; - float right = gl_TexCoord[0].x + range.x; - float bottom = gl_TexCoord[0].y - range.y; - - vec4 topLeftColor = texture2D(rubyTexture, (floor(vec2(left, top) / texelSize) + 0.5) * texelSize); - vec4 bottomRightColor = texture2D(rubyTexture, (floor(vec2(right, bottom) / texelSize) + 0.5) * texelSize); - vec4 bottomLeftColor = texture2D(rubyTexture, (floor(vec2(left, bottom) / texelSize) + 0.5) * texelSize); - vec4 topRightColor = texture2D(rubyTexture, (floor(vec2(right, top) / texelSize) + 0.5) * texelSize); - - vec2 border = clamp(round(gl_TexCoord[0] / texelSize) * texelSize, vec2(left, bottom), vec2(right, top)); - - float totalArea = 4.0 * range.x * range.y; - - vec4 averageColor; - averageColor = ((border.x - left) * (top - border.y) / totalArea) * topLeftColor; - averageColor += ((right - border.x) * (border.y - bottom) / totalArea) * bottomRightColor; - averageColor += ((border.x - left) * (border.y - bottom) / totalArea) * bottomLeftColor; - averageColor += ((right - border.x) * (top - border.y) / totalArea) * topRightColor; - - gl_FragColor = averageColor; -} diff --git a/pixelshaders/Pixellate/vertex b/pixelshaders/Pixellate/vertex deleted file mode 100644 index 898112ee..00000000 --- a/pixelshaders/Pixellate/vertex +++ /dev/null @@ -1,8 +0,0 @@ -//Pixellate shader -//license: GPL -//author: Fes - -void main() { - gl_Position = ftransform(); - gl_TexCoord[0] = gl_MultiTexCoord0; -} diff --git a/pixelshaders/Scale2x/fragment b/pixelshaders/Scale2x/fragment deleted file mode 100644 index c72625ae..00000000 --- a/pixelshaders/Scale2x/fragment +++ /dev/null @@ -1,28 +0,0 @@ -//Scale2x GLSL shader -//license: GPL -//original version by Pete Bernert -//ruby port by byuu - uniform sampler2D rubyTexture; -uniform vec2 rubyTextureSize; - -void main() { - vec4 colD, colF, colB, colH, col, tmp; - vec2 sel; - - col = texture2DProj(rubyTexture, gl_TexCoord[0]); //central (can be E0-E3) - colD = texture2DProj(rubyTexture, gl_TexCoord[1]); //D (left) - colF = texture2DProj(rubyTexture, gl_TexCoord[2]); //F (right) - colB = texture2DProj(rubyTexture, gl_TexCoord[3]); //B (top) - colH = texture2DProj(rubyTexture, gl_TexCoord[4]); //H (bottom) - - sel = fract(gl_TexCoord[0].xy * rubyTextureSize.xy); //where are we (E0-E3)? - //E0 is default - if(sel.y >= 0.5) { tmp = colB; colB = colH; colH = tmp; } //E1 (or E3): swap B and H - if(sel.x >= 0.5) { tmp = colF; colF = colD; colD = tmp; } //E2 (or E3): swap D and F - - if(colB == colD && colB != colF && colD != colH) { //do the Scale2x rule - col = colD; - } - - gl_FragColor = col; -} diff --git a/pixelshaders/Scale2x/vertex b/pixelshaders/Scale2x/vertex deleted file mode 100644 index 6e172cd1..00000000 --- a/pixelshaders/Scale2x/vertex +++ /dev/null @@ -1,28 +0,0 @@ -//Scale2x GLSL shader -//license: GPL -//original version by Pete Bernert -//ruby port by byuu - -uniform vec2 rubyTextureSize; - -void main() { - vec4 offsetx; - vec4 offsety; - - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; - - offsetx.x = 1.0 / rubyTextureSize.x; - offsetx.y = 0.0; - offsetx.w = 0.0; - offsetx.z = 0.0; - offsety.y = 1.0 / rubyTextureSize.y; - offsety.x = 0.0; - offsety.w = 0.0; - offsety.z = 0.0; - - gl_TexCoord[0] = gl_MultiTexCoord0; //center - gl_TexCoord[1] = gl_TexCoord[0] - offsetx; //left - gl_TexCoord[2] = gl_TexCoord[0] + offsetx; //right - gl_TexCoord[3] = gl_TexCoord[0] - offsety; //top - gl_TexCoord[4] = gl_TexCoord[0] + offsety; //bottom -} diff --git a/pthreadGC2.dll b/pthreadGC2.dll deleted file mode 100644 index bfdf4fd95af9610692eea629fadb86d8dee783b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47822 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 diff --git a/snesfilter/2xsai/2xsai.cpp b/snesfilter/2xsai/2xsai.cpp deleted file mode 100644 index 75923a0e..00000000 --- a/snesfilter/2xsai/2xsai.cpp +++ /dev/null @@ -1,132 +0,0 @@ -//2xSaI / Super 2xSaI / Super Eagle filter -//authors: kode54 and Kreed -//license: GPL - -#include "2xsai.hpp" -#include "implementation.cpp" - -//===== -//2xSaI -//===== - -void _2xSaIFilter::size(unsigned &outwidth, unsigned &outheight, unsigned width, unsigned height) { - outwidth = width; - outheight = height; - - if(width <= 256 && height <= 240) { - outwidth *= 2; - outheight *= 2; - } -} - -void _2xSaIFilter::render( - uint32_t *output, unsigned outpitch, const uint16_t *input, unsigned pitch, - const unsigned *line, unsigned width, unsigned height -) { - if(width > 256 || height > 240) { - filter_direct.render(output, outpitch, input, pitch, line, width, height); - return; - } - - for(unsigned y = 0; y < height; y++) { - const uint16_t *line_in = (const uint16_t *) (((const uint8_t*)input) + pitch * y); - uint32_t *line_out = temp + y * 256; - for(unsigned x = 0; x < width; x++) { - line_out[x] = colortable[line_in[x]]; - } - } - - _2xSaI32( (unsigned char *) temp, 1024, 0, (unsigned char *) output, outpitch, width, height ); -} - -_2xSaIFilter::_2xSaIFilter() { - temp = new uint32_t[256*240]; -} - -_2xSaIFilter::~_2xSaIFilter() { - delete[] temp; -} - -//=========== -//Super 2xSaI -//=========== - -void Super2xSaIFilter::size(unsigned &outwidth, unsigned &outheight, unsigned width, unsigned height) { - outwidth = width; - outheight = height; - - if(width <= 256 && height <= 240) { - outwidth *= 2; - outheight *= 2; - } -} - -void Super2xSaIFilter::render( - uint32_t *output, unsigned outpitch, const uint16_t *input, unsigned pitch, - const unsigned *line, unsigned width, unsigned height -) { - if(width > 256 || height > 240) { - filter_direct.render(output, outpitch, input, pitch, line, width, height); - return; - } - - for(unsigned y = 0; y < height; y++) { - const uint16_t *line_in = (const uint16_t *) (((const uint8_t*)input) + pitch * y); - uint32_t *line_out = temp + y * 256; - for(unsigned x = 0; x < width; x++) { - line_out[x] = colortable[line_in[x]]; - } - } - - Super2xSaI32( (unsigned char *) temp, 1024, 0, (unsigned char *) output, outpitch, width, height ); -} - -Super2xSaIFilter::Super2xSaIFilter() { - temp = new uint32_t[256*240]; -} - -Super2xSaIFilter::~Super2xSaIFilter() { - delete[] temp; -} - -//=========== -//Super Eagle -//=========== - -void SuperEagleFilter::size(unsigned &outwidth, unsigned &outheight, unsigned width, unsigned height) { - outwidth = width; - outheight = height; - - if(width <= 256 && height <= 240) { - outwidth *= 2; - outheight *= 2; - } -} - -void SuperEagleFilter::render( - uint32_t *output, unsigned outpitch, const uint16_t *input, unsigned pitch, - const unsigned *line, unsigned width, unsigned height -) { - if(width > 256 || height > 240) { - filter_direct.render(output, outpitch, input, pitch, line, width, height); - return; - } - - for(unsigned y = 0; y < height; y++) { - const uint16_t *line_in = (const uint16_t *) (((const uint8_t*)input) + pitch * y); - uint32_t *line_out = temp + y * 256; - for(unsigned x = 0; x < width; x++) { - line_out[x] = colortable[line_in[x]]; - } - } - - SuperEagle32( (unsigned char *) temp, 1024, 0, (unsigned char *) output, outpitch, width, height ); -} - -SuperEagleFilter::SuperEagleFilter() { - temp = new uint32_t[256*240]; -} - -SuperEagleFilter::~SuperEagleFilter() { - delete[] temp; -} diff --git a/snesfilter/2xsai/2xsai.hpp b/snesfilter/2xsai/2xsai.hpp deleted file mode 100644 index 361f47e9..00000000 --- a/snesfilter/2xsai/2xsai.hpp +++ /dev/null @@ -1,35 +0,0 @@ -class _2xSaIFilter { -public: - void size(unsigned&, unsigned&, unsigned, unsigned); - void render(uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned); - - _2xSaIFilter(); - ~_2xSaIFilter(); - -private: - uint32_t *temp; -} filter_2xsai; - -class Super2xSaIFilter { -public: - void size(unsigned&, unsigned&, unsigned, unsigned); - void render(uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned); - - Super2xSaIFilter(); - ~Super2xSaIFilter(); - -private: - uint32_t *temp; -} filter_super2xsai; - -class SuperEagleFilter { -public: - void size(unsigned&, unsigned&, unsigned, unsigned); - void render(uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned); - - SuperEagleFilter(); - ~SuperEagleFilter(); - -private: - uint32_t *temp; -} filter_supereagle; diff --git a/snesfilter/2xsai/implementation.cpp b/snesfilter/2xsai/implementation.cpp deleted file mode 100644 index cebca7ef..00000000 --- a/snesfilter/2xsai/implementation.cpp +++ /dev/null @@ -1,1171 +0,0 @@ -static uint32_t colorMask = 0xFEFEFE; -static uint32_t lowPixelMask = 0x010101; -static uint32_t qcolorMask = 0xFCFCFC; -static uint32_t qlowpixelMask = 0x030303; -static uint32_t redblueMask = 0xFF00FF; -static uint32_t greenMask = 0xFF00; - -uint32_t qRGB_COLOR_MASK[2] = { 0xFEFEFE, 0xFEFEFE }; - -static inline int GetResult1 (uint32_t A, uint32_t B, uint32_t C, uint32_t D, - uint32_t /* E */) -{ - int x = 0; - int y = 0; - int r = 0; - - if (A == C) - x += 1; - else if (B == C) - y += 1; - if (A == D) - x += 1; - else if (B == D) - y += 1; - if (x <= 1) - r += 1; - if (y <= 1) - r -= 1; - return r; -} - -static inline int GetResult2 (uint32_t A, uint32_t B, uint32_t C, uint32_t D, - uint32_t /* E */) -{ - int x = 0; - int y = 0; - int r = 0; - - if (A == C) - x += 1; - else if (B == C) - y += 1; - if (A == D) - x += 1; - else if (B == D) - y += 1; - if (x <= 1) - r -= 1; - if (y <= 1) - r += 1; - return r; -} - -static inline int GetResult (uint32_t A, uint32_t B, uint32_t C, uint32_t D) -{ - int x = 0; - int y = 0; - int r = 0; - - if (A == C) - x += 1; - else if (B == C) - y += 1; - if (A == D) - x += 1; - else if (B == D) - y += 1; - if (x <= 1) - r += 1; - if (y <= 1) - r -= 1; - return r; -} - -static inline uint32_t INTERPOLATE (uint32_t A, uint32_t B) -{ - if (A != B) { - return (((A & colorMask) >> 1) + ((B & colorMask) >> 1) + - (A & B & lowPixelMask)); - } else - return A; -} - -static inline uint32_t Q_INTERPOLATE (uint32_t A, uint32_t B, uint32_t C, uint32_t D) -{ - register uint32_t x = ((A & qcolorMask) >> 2) + - ((B & qcolorMask) >> 2) + - ((C & qcolorMask) >> 2) + ((D & qcolorMask) >> 2); - register uint32_t y = (A & qlowpixelMask) + - (B & qlowpixelMask) + (C & qlowpixelMask) + (D & qlowpixelMask); - - y = (y >> 2) & qlowpixelMask; - return x + y; -} - -static inline int GetResult1_32 (uint32_t A, uint32_t B, uint32_t C, uint32_t D, - uint32_t /* E */) -{ - int x = 0; - int y = 0; - int r = 0; - - if (A == C) - x += 1; - else if (B == C) - y += 1; - if (A == D) - x += 1; - else if (B == D) - y += 1; - if (x <= 1) - r += 1; - if (y <= 1) - r -= 1; - return r; -} - -static inline int GetResult2_32 (uint32_t A, uint32_t B, uint32_t C, uint32_t D, - uint32_t /* E */) -{ - int x = 0; - int y = 0; - int r = 0; - - if (A == C) - x += 1; - else if (B == C) - y += 1; - if (A == D) - x += 1; - else if (B == D) - y += 1; - if (x <= 1) - r -= 1; - if (y <= 1) - r += 1; - return r; -} - -#define BLUE_MASK565 0x001F001F -#define RED_MASK565 0xF800F800 -#define GREEN_MASK565 0x07E007E0 - -#define BLUE_MASK555 0x001F001F -#define RED_MASK555 0x7C007C00 -#define GREEN_MASK555 0x03E003E0 - -void Super2xSaI (uint8_t *srcPtr, uint32_t srcPitch, - uint8_t *deltaPtr, uint8_t *dstPtr, uint32_t dstPitch, - int width, int height) -{ - uint16_t *bP; - uint8_t *dP; - uint32_t inc_bP; - uint32_t Nextline = srcPitch >> 1; - { - inc_bP = 1; - - for (; height; height--) { - bP = (uint16_t *) srcPtr; - dP = (uint8_t *) dstPtr; - - for (uint32_t finish = width; finish; finish -= inc_bP) { - uint32_t color4, color5, color6; - uint32_t color1, color2, color3; - uint32_t colorA0, colorA1, colorA2, colorA3, - colorB0, colorB1, colorB2, colorB3, colorS1, colorS2; - uint32_t product1a, product1b, product2a, product2b; - - //--------------------------------------- B1 B2 - // 4 5 6 S2 - // 1 2 3 S1 - // A1 A2 - - colorB0 = *(bP - Nextline - 1); - colorB1 = *(bP - Nextline); - colorB2 = *(bP - Nextline + 1); - colorB3 = *(bP - Nextline + 2); - - color4 = *(bP - 1); - color5 = *(bP); - color6 = *(bP + 1); - colorS2 = *(bP + 2); - - color1 = *(bP + Nextline - 1); - color2 = *(bP + Nextline); - color3 = *(bP + Nextline + 1); - colorS1 = *(bP + Nextline + 2); - - colorA0 = *(bP + Nextline + Nextline - 1); - colorA1 = *(bP + Nextline + Nextline); - colorA2 = *(bP + Nextline + Nextline + 1); - colorA3 = *(bP + Nextline + Nextline + 2); - - //-------------------------------------- - if (color2 == color6 && color5 != color3) { - product2b = product1b = color2; - } else if (color5 == color3 && color2 != color6) { - product2b = product1b = color5; - } else if (color5 == color3 && color2 == color6) { - register int r = 0; - - r += GetResult (color6, color5, color1, colorA1); - r += GetResult (color6, color5, color4, colorB1); - r += GetResult (color6, color5, colorA2, colorS1); - r += GetResult (color6, color5, colorB2, colorS2); - - if (r > 0) - product2b = product1b = color6; - else if (r < 0) - product2b = product1b = color5; - else { - product2b = product1b = INTERPOLATE (color5, color6); - } - } else { - if (color6 == color3 && color3 == colorA1 - && color2 != colorA2 && color3 != colorA0) - product2b = - Q_INTERPOLATE (color3, color3, color3, color2); - else if (color5 == color2 && color2 == colorA2 - && colorA1 != color3 && color2 != colorA3) - product2b = - Q_INTERPOLATE (color2, color2, color2, color3); - else - product2b = INTERPOLATE (color2, color3); - - if (color6 == color3 && color6 == colorB1 - && color5 != colorB2 && color6 != colorB0) - product1b = - Q_INTERPOLATE (color6, color6, color6, color5); - else if (color5 == color2 && color5 == colorB2 - && colorB1 != color6 && color5 != colorB3) - product1b = - Q_INTERPOLATE (color6, color5, color5, color5); - else - product1b = INTERPOLATE (color5, color6); - } - - if (color5 == color3 && color2 != color6 && color4 == color5 - && color5 != colorA2) - product2a = INTERPOLATE (color2, color5); - else - if (color5 == color1 && color6 == color5 - && color4 != color2 && color5 != colorA0) - product2a = INTERPOLATE (color2, color5); - else - product2a = color2; - - if (color2 == color6 && color5 != color3 && color1 == color2 - && color2 != colorB2) - product1a = INTERPOLATE (color2, color5); - else - if (color4 == color2 && color3 == color2 - && color1 != color5 && color2 != colorB0) - product1a = INTERPOLATE (color2, color5); - else - product1a = color5; - -#ifdef WORDS_BIGENDIAN - product1a = (product1a << 16) | product1b; - product2a = (product2a << 16) | product2b; -#else - product1a = product1a | (product1b << 16); - product2a = product2a | (product2b << 16); -#endif - - *((uint32_t *) dP) = product1a; - *((uint32_t *) (dP + dstPitch)) = product2a; - - bP += inc_bP; - dP += sizeof (uint32_t); - } // end of for ( finish= width etc..) - - srcPtr += srcPitch; - dstPtr += dstPitch << 1; - deltaPtr += srcPitch; - } // endof: for (; height; height--) - } -} - -void Super2xSaI32 (uint8_t *srcPtr, uint32_t srcPitch, - uint8_t * /* deltaPtr */, uint8_t *dstPtr, uint32_t dstPitch, - int width, int height) -{ - uint32_t *bP; - uint32_t *dP; - uint32_t inc_bP; - uint32_t Nextline = srcPitch >> 2; - inc_bP = 1; - - for (; height; height--) { - bP = (uint32_t *) srcPtr; - dP = (uint32_t *) dstPtr; - - for (uint32_t finish = width; finish; finish -= inc_bP) { - uint32_t color4, color5, color6; - uint32_t color1, color2, color3; - uint32_t colorA0, colorA1, colorA2, colorA3, - colorB0, colorB1, colorB2, colorB3, colorS1, colorS2; - uint32_t product1a, product1b, product2a, product2b; - - //--------------------------------------- B1 B2 - // 4 5 6 S2 - // 1 2 3 S1 - // A1 A2 - - colorB0 = *(bP - Nextline - 1); - colorB1 = *(bP - Nextline); - colorB2 = *(bP - Nextline + 1); - colorB3 = *(bP - Nextline + 2); - - color4 = *(bP - 1); - color5 = *(bP); - color6 = *(bP + 1); - colorS2 = *(bP + 2); - - color1 = *(bP + Nextline - 1); - color2 = *(bP + Nextline); - color3 = *(bP + Nextline + 1); - colorS1 = *(bP + Nextline + 2); - - colorA0 = *(bP + Nextline + Nextline - 1); - colorA1 = *(bP + Nextline + Nextline); - colorA2 = *(bP + Nextline + Nextline + 1); - colorA3 = *(bP + Nextline + Nextline + 2); - - //-------------------------------------- - if (color2 == color6 && color5 != color3) { - product2b = product1b = color2; - } else if (color5 == color3 && color2 != color6) { - product2b = product1b = color5; - } else if (color5 == color3 && color2 == color6) { - register int r = 0; - - r += GetResult (color6, color5, color1, colorA1); - r += GetResult (color6, color5, color4, colorB1); - r += GetResult (color6, color5, colorA2, colorS1); - r += GetResult (color6, color5, colorB2, colorS2); - - if (r > 0) - product2b = product1b = color6; - else if (r < 0) - product2b = product1b = color5; - else { - product2b = product1b = INTERPOLATE (color5, color6); - } - } else { - if (color6 == color3 && color3 == colorA1 - && color2 != colorA2 && color3 != colorA0) - product2b = - Q_INTERPOLATE (color3, color3, color3, color2); - else if (color5 == color2 && color2 == colorA2 - && colorA1 != color3 && color2 != colorA3) - product2b = - Q_INTERPOLATE (color2, color2, color2, color3); - else - product2b = INTERPOLATE (color2, color3); - - if (color6 == color3 && color6 == colorB1 - && color5 != colorB2 && color6 != colorB0) - product1b = - Q_INTERPOLATE (color6, color6, color6, color5); - else if (color5 == color2 && color5 == colorB2 - && colorB1 != color6 && color5 != colorB3) - product1b = - Q_INTERPOLATE (color6, color5, color5, color5); - else - product1b = INTERPOLATE (color5, color6); - } - - if (color5 == color3 && color2 != color6 && color4 == color5 - && color5 != colorA2) - product2a = INTERPOLATE (color2, color5); - else - if (color5 == color1 && color6 == color5 - && color4 != color2 && color5 != colorA0) - product2a = INTERPOLATE (color2, color5); - else - product2a = color2; - - if (color2 == color6 && color5 != color3 && color1 == color2 - && color2 != colorB2) - product1a = INTERPOLATE (color2, color5); - else - if (color4 == color2 && color3 == color2 - && color1 != color5 && color2 != colorB0) - product1a = INTERPOLATE (color2, color5); - else - product1a = color5; - *(dP) = product1a; - *(dP+1) = product1b; - *(dP + (dstPitch >> 2)) = product2a; - *(dP + (dstPitch >> 2) + 1) = product2b; - - bP += inc_bP; - dP += 2; - } // end of for ( finish= width etc..) - - srcPtr += srcPitch; - dstPtr += dstPitch << 1; - // deltaPtr += srcPitch; - } // endof: for (; height; height--) -} - -void SuperEagle (uint8_t *srcPtr, uint32_t srcPitch, uint8_t *deltaPtr, - uint8_t *dstPtr, uint32_t dstPitch, int width, int height) -{ - uint8_t *dP; - uint16_t *bP; - uint16_t *xP; - uint32_t inc_bP; - - { - inc_bP = 1; - - uint32_t Nextline = srcPitch >> 1; - - for (; height; height--) { - bP = (uint16_t *) srcPtr; - xP = (uint16_t *) deltaPtr; - dP = dstPtr; - for (uint32_t finish = width; finish; finish -= inc_bP) { - uint32_t color4, color5, color6; - uint32_t color1, color2, color3; - uint32_t colorA1, colorA2, colorB1, colorB2, colorS1, colorS2; - uint32_t product1a, product1b, product2a, product2b; - - colorB1 = *(bP - Nextline); - colorB2 = *(bP - Nextline + 1); - - color4 = *(bP - 1); - color5 = *(bP); - color6 = *(bP + 1); - colorS2 = *(bP + 2); - - color1 = *(bP + Nextline - 1); - color2 = *(bP + Nextline); - color3 = *(bP + Nextline + 1); - colorS1 = *(bP + Nextline + 2); - - colorA1 = *(bP + Nextline + Nextline); - colorA2 = *(bP + Nextline + Nextline + 1); - - // -------------------------------------- - if (color2 == color6 && color5 != color3) { - product1b = product2a = color2; - if ((color1 == color2) || (color6 == colorB2)) { - product1a = INTERPOLATE (color2, color5); - product1a = INTERPOLATE (color2, product1a); - // product1a = color2; - } else { - product1a = INTERPOLATE (color5, color6); - } - - if ((color6 == colorS2) || (color2 == colorA1)) { - product2b = INTERPOLATE (color2, color3); - product2b = INTERPOLATE (color2, product2b); - // product2b = color2; - } else { - product2b = INTERPOLATE (color2, color3); - } - } else if (color5 == color3 && color2 != color6) { - product2b = product1a = color5; - - if ((colorB1 == color5) || (color3 == colorS1)) { - product1b = INTERPOLATE (color5, color6); - product1b = INTERPOLATE (color5, product1b); - // product1b = color5; - } else { - product1b = INTERPOLATE (color5, color6); - } - - if ((color3 == colorA2) || (color4 == color5)) { - product2a = INTERPOLATE (color5, color2); - product2a = INTERPOLATE (color5, product2a); - // product2a = color5; - } else { - product2a = INTERPOLATE (color2, color3); - } - - } else if (color5 == color3 && color2 == color6) { - register int r = 0; - - r += GetResult (color6, color5, color1, colorA1); - r += GetResult (color6, color5, color4, colorB1); - r += GetResult (color6, color5, colorA2, colorS1); - r += GetResult (color6, color5, colorB2, colorS2); - - if (r > 0) { - product1b = product2a = color2; - product1a = product2b = INTERPOLATE (color5, color6); - } else if (r < 0) { - product2b = product1a = color5; - product1b = product2a = INTERPOLATE (color5, color6); - } else { - product2b = product1a = color5; - product1b = product2a = color2; - } - } else { - product2b = product1a = INTERPOLATE (color2, color6); - product2b = - Q_INTERPOLATE (color3, color3, color3, product2b); - product1a = - Q_INTERPOLATE (color5, color5, color5, product1a); - - product2a = product1b = INTERPOLATE (color5, color3); - product2a = - Q_INTERPOLATE (color2, color2, color2, product2a); - product1b = - Q_INTERPOLATE (color6, color6, color6, product1b); - - // product1a = color5; - // product1b = color6; - // product2a = color2; - // product2b = color3; - } -#ifdef WORDS_BIGENDIAN - product1a = (product1a << 16) | product1b; - product2a = (product2a << 16) | product2b; -#else - product1a = product1a | (product1b << 16); - product2a = product2a | (product2b << 16); -#endif - - *((uint32_t *) dP) = product1a; - *((uint32_t *) (dP + dstPitch)) = product2a; - *xP = color5; - - bP += inc_bP; - xP += inc_bP; - dP += sizeof (uint32_t); - } // end of for ( finish= width etc..) - - srcPtr += srcPitch; - dstPtr += dstPitch << 1; - deltaPtr += srcPitch; - } // endof: for (height; height; height--) - } -} - -void SuperEagle32 (uint8_t *srcPtr, uint32_t srcPitch, uint8_t */*deltaPtr*/, - uint8_t *dstPtr, uint32_t dstPitch, int width, int height) -{ - uint32_t *dP; - uint32_t *bP; - //uint32_t *xP; - uint32_t inc_bP; - - inc_bP = 1; - - uint32_t Nextline = srcPitch >> 2; - - for (; height; height--) { - bP = (uint32_t *) srcPtr; - //xP = (uint32_t *) deltaPtr; - dP = (uint32_t *)dstPtr; - for (uint32_t finish = width; finish; finish -= inc_bP) { - uint32_t color4, color5, color6; - uint32_t color1, color2, color3; - uint32_t colorA1, colorA2, colorB1, colorB2, colorS1, colorS2; - uint32_t product1a, product1b, product2a, product2b; - - colorB1 = *(bP - Nextline); - colorB2 = *(bP - Nextline + 1); - - color4 = *(bP - 1); - color5 = *(bP); - color6 = *(bP + 1); - colorS2 = *(bP + 2); - - color1 = *(bP + Nextline - 1); - color2 = *(bP + Nextline); - color3 = *(bP + Nextline + 1); - colorS1 = *(bP + Nextline + 2); - - colorA1 = *(bP + Nextline + Nextline); - colorA2 = *(bP + Nextline + Nextline + 1); - - // -------------------------------------- - if (color2 == color6 && color5 != color3) { - product1b = product2a = color2; - if ((color1 == color2) || (color6 == colorB2)) { - product1a = INTERPOLATE (color2, color5); - product1a = INTERPOLATE (color2, product1a); - // product1a = color2; - } else { - product1a = INTERPOLATE (color5, color6); - } - - if ((color6 == colorS2) || (color2 == colorA1)) { - product2b = INTERPOLATE (color2, color3); - product2b = INTERPOLATE (color2, product2b); - // product2b = color2; - } else { - product2b = INTERPOLATE (color2, color3); - } - } else if (color5 == color3 && color2 != color6) { - product2b = product1a = color5; - - if ((colorB1 == color5) || (color3 == colorS1)) { - product1b = INTERPOLATE (color5, color6); - product1b = INTERPOLATE (color5, product1b); - // product1b = color5; - } else { - product1b = INTERPOLATE (color5, color6); - } - - if ((color3 == colorA2) || (color4 == color5)) { - product2a = INTERPOLATE (color5, color2); - product2a = INTERPOLATE (color5, product2a); - // product2a = color5; - } else { - product2a = INTERPOLATE (color2, color3); - } - - } else if (color5 == color3 && color2 == color6) { - register int r = 0; - - r += GetResult (color6, color5, color1, colorA1); - r += GetResult (color6, color5, color4, colorB1); - r += GetResult (color6, color5, colorA2, colorS1); - r += GetResult (color6, color5, colorB2, colorS2); - - if (r > 0) { - product1b = product2a = color2; - product1a = product2b = INTERPOLATE (color5, color6); - } else if (r < 0) { - product2b = product1a = color5; - product1b = product2a = INTERPOLATE (color5, color6); - } else { - product2b = product1a = color5; - product1b = product2a = color2; - } - } else { - product2b = product1a = INTERPOLATE (color2, color6); - product2b = - Q_INTERPOLATE (color3, color3, color3, product2b); - product1a = - Q_INTERPOLATE (color5, color5, color5, product1a); - - product2a = product1b = INTERPOLATE (color5, color3); - product2a = - Q_INTERPOLATE (color2, color2, color2, product2a); - product1b = - Q_INTERPOLATE (color6, color6, color6, product1b); - - // product1a = color5; - // product1b = color6; - // product2a = color2; - // product2b = color3; - } - *(dP) = product1a; - *(dP+1) = product1b; - *(dP + (dstPitch >> 2)) = product2a; - *(dP + (dstPitch >> 2) +1) = product2b; - //*xP = color5; - - bP += inc_bP; - //xP += inc_bP; - dP += 2; - } // end of for ( finish= width etc..) - - srcPtr += srcPitch; - dstPtr += dstPitch << 1; - //deltaPtr += srcPitch; - } // endof: for (height; height; height--) -} - -void _2xSaI (uint8_t *srcPtr, uint32_t srcPitch, uint8_t *deltaPtr, - uint8_t *dstPtr, uint32_t dstPitch, int width, int height) -{ - uint8_t *dP; - uint16_t *bP; - uint32_t inc_bP; - - { - inc_bP = 1; - - uint32_t Nextline = srcPitch >> 1; - - for (; height; height--) { - bP = (uint16_t *) srcPtr; - dP = dstPtr; - - for (uint32_t finish = width; finish; finish -= inc_bP) { - - register uint32_t colorA, colorB; - uint32_t colorC, colorD, - colorE, colorF, colorG, colorH, - colorI, colorJ, colorK, colorL, - - colorM, colorN, colorO, colorP; - uint32_t product, product1, product2; - - //--------------------------------------- - // Map of the pixels: I|E F|J - // G|A B|K - // H|C D|L - // M|N O|P - colorI = *(bP - Nextline - 1); - colorE = *(bP - Nextline); - colorF = *(bP - Nextline + 1); - colorJ = *(bP - Nextline + 2); - - colorG = *(bP - 1); - colorA = *(bP); - colorB = *(bP + 1); - colorK = *(bP + 2); - - colorH = *(bP + Nextline - 1); - colorC = *(bP + Nextline); - colorD = *(bP + Nextline + 1); - colorL = *(bP + Nextline + 2); - - colorM = *(bP + Nextline + Nextline - 1); - colorN = *(bP + Nextline + Nextline); - colorO = *(bP + Nextline + Nextline + 1); - colorP = *(bP + Nextline + Nextline + 2); - - if ((colorA == colorD) && (colorB != colorC)) { - if (((colorA == colorE) && (colorB == colorL)) || - ((colorA == colorC) && (colorA == colorF) - && (colorB != colorE) && (colorB == colorJ))) { - product = colorA; - } else { - product = INTERPOLATE (colorA, colorB); - } - - if (((colorA == colorG) && (colorC == colorO)) || - ((colorA == colorB) && (colorA == colorH) - && (colorG != colorC) && (colorC == colorM))) { - product1 = colorA; - } else { - product1 = INTERPOLATE (colorA, colorC); - } - product2 = colorA; - } else if ((colorB == colorC) && (colorA != colorD)) { - if (((colorB == colorF) && (colorA == colorH)) || - ((colorB == colorE) && (colorB == colorD) - && (colorA != colorF) && (colorA == colorI))) { - product = colorB; - } else { - product = INTERPOLATE (colorA, colorB); - } - - if (((colorC == colorH) && (colorA == colorF)) || - ((colorC == colorG) && (colorC == colorD) - && (colorA != colorH) && (colorA == colorI))) { - product1 = colorC; - } else { - product1 = INTERPOLATE (colorA, colorC); - } - product2 = colorB; - } else if ((colorA == colorD) && (colorB == colorC)) { - if (colorA == colorB) { - product = colorA; - product1 = colorA; - product2 = colorA; - } else { - register int r = 0; - - product1 = INTERPOLATE (colorA, colorC); - product = INTERPOLATE (colorA, colorB); - - r += - GetResult1 (colorA, colorB, colorG, colorE, - colorI); - r += - GetResult2 (colorB, colorA, colorK, colorF, - colorJ); - r += - GetResult2 (colorB, colorA, colorH, colorN, - colorM); - r += - GetResult1 (colorA, colorB, colorL, colorO, - colorP); - - if (r > 0) - product2 = colorA; - else if (r < 0) - product2 = colorB; - else { - product2 = - Q_INTERPOLATE (colorA, colorB, colorC, - colorD); - } - } - } else { - product2 = Q_INTERPOLATE (colorA, colorB, colorC, colorD); - - if ((colorA == colorC) && (colorA == colorF) - && (colorB != colorE) && (colorB == colorJ)) { - product = colorA; - } else if ((colorB == colorE) && (colorB == colorD) - && (colorA != colorF) && (colorA == colorI)) { - product = colorB; - } else { - product = INTERPOLATE (colorA, colorB); - } - - if ((colorA == colorB) && (colorA == colorH) - && (colorG != colorC) && (colorC == colorM)) { - product1 = colorA; - } else if ((colorC == colorG) && (colorC == colorD) - && (colorA != colorH) && (colorA == colorI)) { - product1 = colorC; - } else { - product1 = INTERPOLATE (colorA, colorC); - } - } - -#ifdef WORDS_BIGENDIAN - product = (colorA << 16) | product ; - product1 = (product1 << 16) | product2 ; -#else - product = colorA | (product << 16); - product1 = product1 | (product2 << 16); -#endif - *((int32_t *) dP) = product; - *((uint32_t *) (dP + dstPitch)) = product1; - - bP += inc_bP; - dP += sizeof (uint32_t); - } // end of for ( finish= width etc..) - - srcPtr += srcPitch; - dstPtr += dstPitch << 1; - deltaPtr += srcPitch; - } // endof: for (height; height; height--) - } -} - -void _2xSaI32 (uint8_t *srcPtr, uint32_t srcPitch, uint8_t * /* deltaPtr */, - uint8_t *dstPtr, uint32_t dstPitch, int width, int height) -{ - uint32_t *dP; - uint32_t *bP; - uint32_t inc_bP = 1; - - uint32_t Nextline = srcPitch >> 2; - - for (; height; height--) { - bP = (uint32_t *) srcPtr; - dP = (uint32_t *) dstPtr; - - for (uint32_t finish = width; finish; finish -= inc_bP) { - register uint32_t colorA, colorB; - uint32_t colorC, colorD, - colorE, colorF, colorG, colorH, - colorI, colorJ, colorK, colorL, - - colorM, colorN, colorO, colorP; - uint32_t product, product1, product2; - - //--------------------------------------- - // Map of the pixels: I|E F|J - // G|A B|K - // H|C D|L - // M|N O|P - colorI = *(bP - Nextline - 1); - colorE = *(bP - Nextline); - colorF = *(bP - Nextline + 1); - colorJ = *(bP - Nextline + 2); - - colorG = *(bP - 1); - colorA = *(bP); - colorB = *(bP + 1); - colorK = *(bP + 2); - - colorH = *(bP + Nextline - 1); - colorC = *(bP + Nextline); - colorD = *(bP + Nextline + 1); - colorL = *(bP + Nextline + 2); - - colorM = *(bP + Nextline + Nextline - 1); - colorN = *(bP + Nextline + Nextline); - colorO = *(bP + Nextline + Nextline + 1); - colorP = *(bP + Nextline + Nextline + 2); - - if ((colorA == colorD) && (colorB != colorC)) { - if (((colorA == colorE) && (colorB == colorL)) || - ((colorA == colorC) && (colorA == colorF) - && (colorB != colorE) && (colorB == colorJ))) { - product = colorA; - } else { - product = INTERPOLATE (colorA, colorB); - } - - if (((colorA == colorG) && (colorC == colorO)) || - ((colorA == colorB) && (colorA == colorH) - && (colorG != colorC) && (colorC == colorM))) { - product1 = colorA; - } else { - product1 = INTERPOLATE (colorA, colorC); - } - product2 = colorA; - } else if ((colorB == colorC) && (colorA != colorD)) { - if (((colorB == colorF) && (colorA == colorH)) || - ((colorB == colorE) && (colorB == colorD) - && (colorA != colorF) && (colorA == colorI))) { - product = colorB; - } else { - product = INTERPOLATE (colorA, colorB); - } - - if (((colorC == colorH) && (colorA == colorF)) || - ((colorC == colorG) && (colorC == colorD) - && (colorA != colorH) && (colorA == colorI))) { - product1 = colorC; - } else { - product1 = INTERPOLATE (colorA, colorC); - } - product2 = colorB; - } else if ((colorA == colorD) && (colorB == colorC)) { - if (colorA == colorB) { - product = colorA; - product1 = colorA; - product2 = colorA; - } else { - register int r = 0; - - product1 = INTERPOLATE (colorA, colorC); - product = INTERPOLATE (colorA, colorB); - - r += - GetResult1 (colorA, colorB, colorG, colorE, - colorI); - r += - GetResult2 (colorB, colorA, colorK, colorF, - colorJ); - r += - GetResult2 (colorB, colorA, colorH, colorN, - colorM); - r += - GetResult1 (colorA, colorB, colorL, colorO, - colorP); - - if (r > 0) - product2 = colorA; - else if (r < 0) - product2 = colorB; - else { - product2 = - Q_INTERPOLATE (colorA, colorB, colorC, - colorD); - } - } - } else { - product2 = Q_INTERPOLATE (colorA, colorB, colorC, colorD); - - if ((colorA == colorC) && (colorA == colorF) - && (colorB != colorE) && (colorB == colorJ)) { - product = colorA; - } else if ((colorB == colorE) && (colorB == colorD) - && (colorA != colorF) && (colorA == colorI)) { - product = colorB; - } else { - product = INTERPOLATE (colorA, colorB); - } - - if ((colorA == colorB) && (colorA == colorH) - && (colorG != colorC) && (colorC == colorM)) { - product1 = colorA; - } else if ((colorC == colorG) && (colorC == colorD) - && (colorA != colorH) && (colorA == colorI)) { - product1 = colorC; - } else { - product1 = INTERPOLATE (colorA, colorC); - } - } - *(dP) = colorA; - *(dP + 1) = product; - *(dP + (dstPitch >> 2)) = product1; - *(dP + (dstPitch >> 2) + 1) = product2; - - bP += inc_bP; - dP += 2; - } // end of for ( finish= width etc..) - - srcPtr += srcPitch; - dstPtr += dstPitch << 1; - // deltaPtr += srcPitch; - } // endof: for (height; height; height--) -} - -static uint32_t Bilinear (uint32_t A, uint32_t B, uint32_t x) -{ - unsigned long areaA, areaB; - unsigned long result; - - if (A == B) - return A; - - areaB = (x >> 11) & 0x1f; // reduce 16 bit fraction to 5 bits - areaA = 0x20 - areaB; - - A = (A & redblueMask) | ((A & greenMask) << 16); - B = (B & redblueMask) | ((B & greenMask) << 16); - - result = ((areaA * A) + (areaB * B)) >> 5; - - return (result & redblueMask) | ((result >> 16) & greenMask); -} - -static uint32_t Bilinear4 (uint32_t A, uint32_t B, uint32_t C, uint32_t D, uint32_t x, - uint32_t y) -{ - unsigned long areaA, areaB, areaC, areaD; - unsigned long result, xy; - - x = (x >> 11) & 0x1f; - y = (y >> 11) & 0x1f; - xy = (x * y) >> 5; - - A = (A & redblueMask) | ((A & greenMask) << 16); - B = (B & redblueMask) | ((B & greenMask) << 16); - C = (C & redblueMask) | ((C & greenMask) << 16); - D = (D & redblueMask) | ((D & greenMask) << 16); - - areaA = 0x20 + xy - x - y; - areaB = x - xy; - areaC = y - xy; - areaD = xy; - - result = ((areaA * A) + (areaB * B) + (areaC * C) + (areaD * D)) >> 5; - - return (result & redblueMask) | ((result >> 16) & greenMask); -} - -void Scale_2xSaI (uint8_t *srcPtr, uint32_t srcPitch, uint8_t * /* deltaPtr */, - uint8_t *dstPtr, uint32_t dstPitch, - uint32_t dstWidth, uint32_t dstHeight, int width, int height) -{ - uint8_t *dP; - uint16_t *bP; - - uint32_t w; - uint32_t h; - uint32_t dw; - uint32_t dh; - uint32_t hfinish; - uint32_t wfinish; - - uint32_t Nextline = srcPitch >> 1; - - wfinish = (width - 1) << 16; // convert to fixed point - dw = wfinish / (dstWidth - 1); - hfinish = (height - 1) << 16; // convert to fixed point - dh = hfinish / (dstHeight - 1); - - for (h = 0; h < hfinish; h += dh) { - uint32_t y1, y2; - - y1 = h & 0xffff; // fraction part of fixed point - bP = (uint16_t *) (srcPtr + ((h >> 16) * srcPitch)); - dP = dstPtr; - y2 = 0x10000 - y1; - - w = 0; - - for (; w < wfinish;) { - uint32_t A, B, C, D; - uint32_t E, F, G, H; - uint32_t I, J, K, L; - uint32_t x1, x2, a1, f1, f2; - uint32_t position, product1; - - position = w >> 16; - A = bP[position]; // current pixel - B = bP[position + 1]; // next pixel - C = bP[position + Nextline]; - D = bP[position + Nextline + 1]; - E = bP[position - Nextline]; - F = bP[position - Nextline + 1]; - G = bP[position - 1]; - H = bP[position + Nextline - 1]; - I = bP[position + 2]; - J = bP[position + Nextline + 2]; - K = bP[position + Nextline + Nextline]; - L = bP[position + Nextline + Nextline + 1]; - - x1 = w & 0xffff; // fraction part of fixed point - x2 = 0x10000 - x1; - - /*0*/ - if (A == B && C == D && A == C) - product1 = A; - else /*1*/ if (A == D && B != C) { - f1 = (x1 >> 1) + (0x10000 >> 2); - f2 = (y1 >> 1) + (0x10000 >> 2); - if (y1 <= f1 && A == J && A != E) // close to B - { - a1 = f1 - y1; - product1 = Bilinear (A, B, a1); - } else if (y1 >= f1 && A == G && A != L) // close to C - { - a1 = y1 - f1; - product1 = Bilinear (A, C, a1); - } - else if (x1 >= f2 && A == E && A != J) // close to B - { - a1 = x1 - f2; - product1 = Bilinear (A, B, a1); - } - else if (x1 <= f2 && A == L && A != G) // close to C - { - a1 = f2 - x1; - product1 = Bilinear (A, C, a1); - } - else if (y1 >= x1) // close to C - { - a1 = y1 - x1; - product1 = Bilinear (A, C, a1); - } - else if (y1 <= x1) // close to B - { - a1 = x1 - y1; - product1 = Bilinear (A, B, a1); - } - } - else - /*2*/ - if (B == C && A != D) - { - f1 = (x1 >> 1) + (0x10000 >> 2); - f2 = (y1 >> 1) + (0x10000 >> 2); - if (y2 >= f1 && B == H && B != F) // close to A - { - a1 = y2 - f1; - product1 = Bilinear (B, A, a1); - } - else if (y2 <= f1 && B == I && B != K) // close to D - { - a1 = f1 - y2; - product1 = Bilinear (B, D, a1); - } - else if (x2 >= f2 && B == F && B != H) // close to A - { - a1 = x2 - f2; - product1 = Bilinear (B, A, a1); - } - else if (x2 <= f2 && B == K && B != I) // close to D - { - a1 = f2 - x2; - product1 = Bilinear (B, D, a1); - } - else if (y2 >= x1) // close to A - { - a1 = y2 - x1; - product1 = Bilinear (B, A, a1); - } - else if (y2 <= x1) // close to D - { - a1 = x1 - y2; - product1 = Bilinear (B, D, a1); - } - } - /*3*/ - else - { - product1 = Bilinear4 (A, B, C, D, x1, y1); - } - - //end First Pixel - *(uint32_t *) dP = product1; - dP += 2; - w += dw; - } - dstPtr += dstPitch; - } -} diff --git a/snesfilter/Makefile b/snesfilter/Makefile deleted file mode 100644 index 089b86ee..00000000 --- a/snesfilter/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -include nall/Makefile - -qtlibs := QtCore QtGui -include nall/qt/Makefile - -c := $(compiler) -std=gnu99 -cpp := $(subst cc,++,$(compiler)) -std=gnu++0x -flags := -O3 -I. -Iobj -fomit-frame-pointer $(qtinc) -link := - -ifeq ($(platform),x) - flags := -fPIC -fopenmp $(flags) - link += -s -fopenmp -lpthread -lgomp -else ifeq ($(platform),osx) - flags := -fPIC -fopenmp $(flags) - link += -fopenmp -lpthread -lgomp -else ifeq ($(platform),win) - flags := -fopenmp $(flags) - link += -fopenmp -lpthread -endif - -objects := snesfilter - -compile = \ - $(strip \ - $(if $(filter %.c,$<), \ - $(c) $(flags) $1 -c $< -o $@, \ - $(if $(filter %.cpp,$<), \ - $(cpp) $(flags) $1 -c $< -o $@ \ - ) \ - ) \ - ) - -%.o: $<; $(call compile) - -all: build; - -objects := $(patsubst %,obj/%.o,$(objects)) -moc_headers := $(call rwildcard,./,%.moc.hpp) -moc_objects := $(foreach f,$(moc_headers),obj/$(notdir $(patsubst %.moc.hpp,%.moc,$f))) - -# automatically run moc on all .moc.hpp (MOC header) files -%.moc: $<; $(moc) -i $< -o $@ - -# automatically generate %.moc build rules -__list = $(moc_headers) -$(foreach f,$(moc_objects), \ - $(eval __file = $(word 1,$(__list))) \ - $(eval __list = $(wordlist 2,$(words $(__list)),$(__list))) \ - $(eval $f: $(__file)) \ -) - -################## -### snesfilter ### -################## - -obj/snesfilter.o: snesfilter.cpp * - -############### -### targets ### -############### - -build: $(moc_objects) $(objects) -ifeq ($(platform),x) - ar rcs libsnesfilter.a $(objects) - $(cpp) $(link) -o libsnesfilter.so -shared -Wl,-soname,libsnesfilter.so.1 $(objects) $(qtlib) -else ifeq ($(platform),osx) - ar rcs libsnesfilter.a $(objects) - $(cpp) $(link) -o libsnesfilter.dylib -shared -dynamiclib $(objects) $(qtlib) -else ifeq ($(platform),win) - $(cpp) $(link) -o snesfilter.dll -shared -Wl,--out-implib,libsnesfilter.a $(objects) $(qtlib) -endif - -install: -ifeq ($(platform),x) - install -D -m 755 libsnesfilter.a $(DESTDIR)$(prefix)/lib - install -D -m 755 libsnesfilter.so $(DESTDIR)$(prefix)/lib - ldconfig -n $(DESTDIR)$(prefix)/lib -else ifeq ($(platform),osx) - cp libsnesfilter.dylib /usr/local/lib/libsnesfilter.dylib -endif - -clean: - -@$(call delete,obj/*.o) - -@$(call delete,obj/*.moc) - -@$(call delete,libsnesfilter.a) - -@$(call delete,libsnesfilter.so) - -@$(call delete,libsnesfilter.dylib) - -@$(call delete,snesfilter.dll) diff --git a/snesfilter/cc.bat b/snesfilter/cc.bat deleted file mode 100644 index 8359a530..00000000 --- a/snesfilter/cc.bat +++ /dev/null @@ -1,2 +0,0 @@ -@mingw32-make -@pause \ No newline at end of file diff --git a/snesfilter/clean.bat b/snesfilter/clean.bat deleted file mode 100644 index d8bb7e0b..00000000 --- a/snesfilter/clean.bat +++ /dev/null @@ -1 +0,0 @@ -@mingw32-make clean diff --git a/snesfilter/direct/direct.cpp b/snesfilter/direct/direct.cpp deleted file mode 100644 index d5214367..00000000 --- a/snesfilter/direct/direct.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "direct.hpp" - -void DirectFilter::size(unsigned &outwidth, unsigned &outheight, unsigned width, unsigned height) { - outwidth = width; - outheight = height; -} - -void DirectFilter::render( - uint32_t *output, unsigned outpitch, const uint16_t *input, unsigned pitch, - const unsigned *line, unsigned width, unsigned height -) { - pitch >>= 1; - outpitch >>= 2; - - for(unsigned y = 0; y < height; y++) { - if(width == 512 && line[y] == 256) { - for(unsigned x = 0; x < 256; x++) { - uint16_t p = *input++; - *output++ = colortable[p]; - *output++ = colortable[p]; - } - input += 256; - } else { - for(unsigned x = 0; x < width; x++) { - uint16_t p = *input++; - *output++ = colortable[p]; - } - } - input += pitch - width; - output += outpitch - width; - } -} diff --git a/snesfilter/direct/direct.hpp b/snesfilter/direct/direct.hpp deleted file mode 100644 index d990b4fa..00000000 --- a/snesfilter/direct/direct.hpp +++ /dev/null @@ -1,5 +0,0 @@ -class DirectFilter { -public: - void size(unsigned&, unsigned&, unsigned, unsigned); - void render(uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned); -} filter_direct; diff --git a/snesfilter/hq2x/hq2x.cpp b/snesfilter/hq2x/hq2x.cpp deleted file mode 100644 index 7a285e8c..00000000 --- a/snesfilter/hq2x/hq2x.cpp +++ /dev/null @@ -1,203 +0,0 @@ -//HQ2x filter -//authors: byuu and blargg -//license: public domain -// -//note: this is a clean reimplementation of the original HQ2x filter, which was -//written by Maxim Stepin (MaxSt). it is not 100% identical, but very similar. - -#include "hq2x.hpp" - -void HQ2xFilter::size(unsigned &outwidth, unsigned &outheight, unsigned width, unsigned height) { - if(height > 240) return filter_direct.size(outwidth, outheight, width, height); - outwidth = (width <= 256) ? width * 2 : width; - outheight = (height <= 240) ? height * 2 : height; -} - -void HQ2xFilter::render( - uint32_t *output, unsigned outpitch, const uint16_t *input, unsigned pitch, - const unsigned *line, unsigned width, unsigned height -) { - if(height > 240) { - filter_direct.render(output, outpitch, input, pitch, line, width, height); - return; - } - - pitch >>= 1; - outpitch >>= 2; - - #pragma omp parallel for - for(unsigned y = 0; y < height; y++) { - const uint16_t *in = input + y * pitch; - uint32_t *out0 = output + y * pitch; - uint32_t *out1 = output + y * pitch + outpitch; - - unsigned linewidth = line[y]; - - if(linewidth == 256) { - int prevline = (y == 0) || (linewidth != line[y - 1]) ? 0 : pitch; - int nextline = (y == height - 1) || (linewidth != line[y + 1]) ? 0 : pitch; - - in++; - *out0++ = 0; *out0++ = 0; - *out1++ = 0; *out1++ = 0; - - for(unsigned x = 1; x < 256 - 1; x++) { - uint16_t A = *(in - prevline - 1); - uint16_t B = *(in - prevline + 0); - uint16_t C = *(in - prevline + 1); - uint16_t D = *(in - 1); - uint16_t E = *(in + 0); - uint16_t F = *(in + 1); - uint16_t G = *(in + nextline - 1); - uint16_t H = *(in + nextline + 0); - uint16_t I = *(in + nextline + 1); - uint32_t e = yuvTable[E] + diff_offset; - - uint8_t pattern; - pattern = diff(e, A) << 0; - pattern |= diff(e, B) << 1; - pattern |= diff(e, C) << 2; - pattern |= diff(e, D) << 3; - pattern |= diff(e, F) << 4; - pattern |= diff(e, G) << 5; - pattern |= diff(e, H) << 6; - pattern |= diff(e, I) << 7; - - *(out0 + 0) = colortable[blend(hqTable[pattern], E, A, B, D, F, H)]; pattern = rotate[pattern]; - *(out0 + 1) = colortable[blend(hqTable[pattern], E, C, F, B, H, D)]; pattern = rotate[pattern]; - *(out1 + 1) = colortable[blend(hqTable[pattern], E, I, H, F, D, B)]; pattern = rotate[pattern]; - *(out1 + 0) = colortable[blend(hqTable[pattern], E, G, D, H, B, F)]; - - in++; - out0 += 2; - out1 += 2; - } - - in++; - *out0++ = 0; *out0++ = 0; - *out1++ = 0; *out1++ = 0; - } else { - for(unsigned x = 0; x < 512; x++) { - *out0++ = *out1++ = colortable[*in++]; - } - } - } -} - -HQ2xFilter::HQ2xFilter() { - yuvTable = new uint32_t[32768]; - - for(unsigned i = 0; i < 32768; i++) { - uint8_t R = (i >> 0) & 31; - uint8_t G = (i >> 5) & 31; - uint8_t B = (i >> 10) & 31; - - //bgr555->bgr888 - double r = (R << 3) | (R >> 2); - double g = (G << 3) | (G >> 2); - double b = (B << 3) | (B >> 2); - - //bgr888->yuv888 - double y = (r + g + b) * (0.25f * (63.5f / 48.0f)); - double u = ((r - b) * 0.25f + 128.0f) * (7.5f / 7.0f); - double v = ((g * 2.0f - r - b) * 0.125f + 128.0f) * (7.5f / 6.0f); - - yuvTable[i] = ((unsigned)y << 21) + ((unsigned)u << 11) + ((unsigned)v); - } - - for(unsigned n = 0; n < 256; n++) { - rotate[n] = ((n >> 2) & 0x11) | ((n << 2) & 0x88) - | ((n & 0x01) << 5) | ((n & 0x08) << 3) - | ((n & 0x10) >> 3) | ((n & 0x80) >> 5); - } -} - -HQ2xFilter::~HQ2xFilter() { - delete[] yuvTable; -} - -bool HQ2xFilter::same(uint16_t x, uint16_t y) { - return !((yuvTable[x] - yuvTable[y] + diff_offset) & diff_mask); -} - -bool HQ2xFilter::diff(uint32_t x, uint16_t y) { - return ((x - yuvTable[y]) & diff_mask); -} - -void HQ2xFilter::grow(uint32_t &n) { n |= n << 16; n &= 0x03e07c1f; } -uint16_t HQ2xFilter::pack(uint32_t n) { n &= 0x03e07c1f; return n | (n >> 16); } - -uint16_t HQ2xFilter::blend1(uint32_t A, uint32_t B) { - grow(A); grow(B); - A = (A * 3 + B) >> 2; - return pack(A); -} - -uint16_t HQ2xFilter::blend2(uint32_t A, uint32_t B, uint32_t C) { - grow(A); grow(B); grow(C); - return pack((A * 2 + B + C) >> 2); -} - -uint16_t HQ2xFilter::blend3(uint32_t A, uint32_t B, uint32_t C) { - grow(A); grow(B); grow(C); - return pack((A * 5 + B * 2 + C) >> 3); -} - -uint16_t HQ2xFilter::blend4(uint32_t A, uint32_t B, uint32_t C) { - grow(A); grow(B); grow(C); - return pack((A * 6 + B + C) >> 3); -} - -uint16_t HQ2xFilter::blend5(uint32_t A, uint32_t B, uint32_t C) { - grow(A); grow(B); grow(C); - return pack((A * 2 + (B + C) * 3) >> 3); -} - -uint16_t HQ2xFilter::blend6(uint32_t A, uint32_t B, uint32_t C) { - grow(A); grow(B); grow(C); - return pack((A * 14 + B + C) >> 4); -} - -uint16_t HQ2xFilter::blend(unsigned rule, uint16_t E, uint16_t A, uint16_t B, uint16_t D, uint16_t F, uint16_t H) { - switch(rule) { default: - case 0: return E; - case 1: return blend1(E, A); - case 2: return blend1(E, D); - case 3: return blend1(E, B); - case 4: return blend2(E, D, B); - case 5: return blend2(E, A, B); - case 6: return blend2(E, A, D); - case 7: return blend3(E, B, D); - case 8: return blend3(E, D, B); - case 9: return blend4(E, D, B); - case 10: return blend5(E, D, B); - case 11: return blend6(E, D, B); - case 12: return same(B, D) ? blend2(E, D, B) : E; - case 13: return same(B, D) ? blend5(E, D, B) : E; - case 14: return same(B, D) ? blend6(E, D, B) : E; - case 15: return same(B, D) ? blend2(E, D, B) : blend1(E, A); - case 16: return same(B, D) ? blend4(E, D, B) : blend1(E, A); - case 17: return same(B, D) ? blend5(E, D, B) : blend1(E, A); - case 18: return same(B, F) ? blend3(E, B, D) : blend1(E, D); - case 19: return same(D, H) ? blend3(E, D, B) : blend1(E, B); - } -} - -const uint8_t HQ2xFilter::hqTable[256] = { - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 15, 12, 5, 3, 17, 13, - 4, 4, 6, 18, 4, 4, 6, 18, 5, 3, 12, 12, 5, 3, 1, 12, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 17, 13, 5, 3, 16, 14, - 4, 4, 6, 18, 4, 4, 6, 18, 5, 3, 16, 12, 5, 3, 1, 14, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 19, 12, 12, 5, 19, 16, 12, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 16, 12, 5, 3, 16, 12, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 19, 1, 12, 5, 19, 1, 14, - 4, 4, 6, 2, 4, 4, 6, 18, 5, 3, 16, 12, 5, 19, 1, 14, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 15, 12, 5, 3, 17, 13, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 16, 12, 5, 3, 16, 12, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 17, 13, 5, 3, 16, 14, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 16, 13, 5, 3, 1, 14, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 16, 12, 5, 3, 16, 13, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 16, 12, 5, 3, 1, 12, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 16, 12, 5, 3, 1, 14, - 4, 4, 6, 2, 4, 4, 6, 2, 5, 3, 1, 12, 5, 3, 1, 14, -}; diff --git a/snesfilter/hq2x/hq2x.hpp b/snesfilter/hq2x/hq2x.hpp deleted file mode 100644 index 5aaab806..00000000 --- a/snesfilter/hq2x/hq2x.hpp +++ /dev/null @@ -1,30 +0,0 @@ -class HQ2xFilter { -public: - void size(unsigned&, unsigned&, unsigned, unsigned); - void render(uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned); - - HQ2xFilter(); - ~HQ2xFilter(); - -private: - enum { - diff_offset = (0x440 << 21) + (0x207 << 11) + 0x407, - diff_mask = (0x380 << 21) + (0x1f0 << 11) + 0x3f0, - }; - - static const uint8_t hqTable[256]; - uint32_t *yuvTable; - uint8_t rotate[256]; - - alwaysinline bool same(uint16_t x, uint16_t y); - alwaysinline bool diff(uint32_t x, uint16_t y); - alwaysinline void grow(uint32_t &n); - alwaysinline uint16_t pack(uint32_t n); - alwaysinline uint16_t blend1(uint32_t A, uint32_t B); - alwaysinline uint16_t blend2(uint32_t A, uint32_t B, uint32_t C); - alwaysinline uint16_t blend3(uint32_t A, uint32_t B, uint32_t C); - alwaysinline uint16_t blend4(uint32_t A, uint32_t B, uint32_t C); - alwaysinline uint16_t blend5(uint32_t A, uint32_t B, uint32_t C); - alwaysinline uint16_t blend6(uint32_t A, uint32_t B, uint32_t C); - alwaysinline uint16_t blend(unsigned rule, uint16_t E, uint16_t A, uint16_t B, uint16_t D, uint16_t F, uint16_t H); -} filter_hq2x; diff --git a/snesfilter/lq2x/lq2x.cpp b/snesfilter/lq2x/lq2x.cpp deleted file mode 100644 index ead1cf58..00000000 --- a/snesfilter/lq2x/lq2x.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "lq2x.hpp" - -void LQ2xFilter::size(unsigned &outwidth, unsigned &outheight, unsigned width, unsigned height) { - if(height > 240) return filter_direct.size(outwidth, outheight, width, height); - outwidth = (width <= 256) ? width * 2 : width; - outheight = (height <= 240) ? height * 2 : height; -} - -void LQ2xFilter::render( - uint32_t *output, unsigned outpitch, const uint16_t *input, unsigned pitch, - const unsigned *line, unsigned width, unsigned height -) { - if(height > 240) { - filter_direct.render(output, outpitch, input, pitch, line, width, height); - return; - } - - pitch >>= 1; - outpitch >>= 2; - - uint32_t *out0 = output; - uint32_t *out1 = output + outpitch; - - for(unsigned y = 0; y < height; y++) { - unsigned linewidth = line[y]; - - if(linewidth == 256) { - int prevline = (y == 0) || (linewidth != line[y - 1]) ? 0 : pitch; - int nextline = (y == height - 1) || (linewidth != line[y + 1]) ? 0 : pitch; - - for(unsigned x = 0; x < 256; x++) { - uint16_t A = *(input - prevline); - uint16_t B = (x > 0) ? *(input - 1) : *input; - uint16_t C = *input; - uint16_t D = (x < 255) ? *(input + 1) : *input; - uint16_t E = *(input++ + nextline); - uint32_t c = colortable[C]; - - if(A != E && B != D) { - *out0++ = (A == B ? colortable[C + A - ((C ^ A) & 0x0421) >> 1] : c); - *out0++ = (A == D ? colortable[C + A - ((C ^ A) & 0x0421) >> 1] : c); - *out1++ = (E == B ? colortable[C + E - ((C ^ E) & 0x0421) >> 1] : c); - *out1++ = (E == D ? colortable[C + E - ((C ^ E) & 0x0421) >> 1] : c); - } else { - *out0++ = c; - *out0++ = c; - *out1++ = c; - *out1++ = c; - } - } - } else { - for(unsigned x = 0; x < 512; x++) { - *out0++ = *out1++ = colortable[*input++]; - } - } - - input += pitch - linewidth; - out0 += outpitch + outpitch - 512; - out1 += outpitch + outpitch - 512; - } -} diff --git a/snesfilter/lq2x/lq2x.hpp b/snesfilter/lq2x/lq2x.hpp deleted file mode 100644 index 07d95639..00000000 --- a/snesfilter/lq2x/lq2x.hpp +++ /dev/null @@ -1,5 +0,0 @@ -class LQ2xFilter { -public: - void size(unsigned&, unsigned&, unsigned, unsigned); - void render(uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned); -} filter_lq2x; diff --git a/snesfilter/nall/Makefile b/snesfilter/nall/Makefile deleted file mode 100644 index 8149bf15..00000000 --- a/snesfilter/nall/Makefile +++ /dev/null @@ -1,107 +0,0 @@ -# Makefile -# author: byuu -# license: public domain - -[A-Z] = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z -[a-z] = a b c d e f g h i j k l m n o p q r s t u v w x y z -[0-9] = 0 1 2 3 4 5 6 7 8 9 -[markup] = ` ~ ! @ \# $$ % ^ & * ( ) - _ = + [ { ] } \ | ; : ' " , < . > / ? -[all] = $([A-Z]) $([a-z]) $([0-9]) $([markup]) -[space] := -[space] += - -##### -# platform detection -##### - -ifeq ($(platform),) - uname := $(shell uname -a) - ifeq ($(uname),) - platform := win - delete = del $(subst /,\,$1) - else ifneq ($(findstring Darwin,$(uname)),) - platform := osx - delete = rm -f $1 - else - platform := x - delete = rm -f $1 - endif -endif - -ifeq ($(compiler),) - ifeq ($(platform),osx) - compiler := gcc-4.2 - else - compiler := gcc - endif -endif - -ifeq ($(prefix),) - prefix := /usr/local -endif - -##### -# function rwildcard(directory, pattern) -##### -rwildcard = \ - $(strip \ - $(filter $(if $2,$2,%), \ - $(foreach f, \ - $(wildcard $1*), \ - $(eval t = $(call rwildcard,$f/)) \ - $(if $t,$t,$f) \ - ) \ - ) \ - ) - -##### -# function strtr(source, from, to) -##### -strtr = \ - $(eval __temp := $1) \ - $(strip \ - $(foreach c, \ - $(join $(addsuffix :,$2),$3), \ - $(eval __temp := \ - $(subst $(word 1,$(subst :, ,$c)),$(word 2,$(subst :, ,$c)),$(__temp)) \ - ) \ - ) \ - $(__temp) \ - ) - -##### -# function strupper(source) -##### -strupper = $(call strtr,$1,$([a-z]),$([A-Z])) - -##### -# function strlower(source) -##### -strlower = $(call strtr,$1,$([A-Z]),$([a-z])) - -##### -# function strlen(source) -##### -strlen = \ - $(eval __temp := $(subst $([space]),_,$1)) \ - $(words \ - $(strip \ - $(foreach c, \ - $([all]), \ - $(eval __temp := \ - $(subst $c,$c ,$(__temp)) \ - ) \ - ) \ - $(__temp) \ - ) \ - ) - -##### -# function streq(source) -##### -streq = $(if $(filter-out xx,x$(subst $1,,$2)$(subst $2,,$1)x),,1) - -##### -# function strne(source) -##### -strne = $(if $(filter-out xx,x$(subst $1,,$2)$(subst $2,,$1)x),1,) diff --git a/snesfilter/nall/algorithm.hpp b/snesfilter/nall/algorithm.hpp deleted file mode 100644 index cdc48dcf..00000000 --- a/snesfilter/nall/algorithm.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef NALL_ALGORITHM_HPP -#define NALL_ALGORITHM_HPP - -#undef min -#undef max - -namespace nall { - template T min(const T &t, const U &u) { - return t < u ? t : u; - } - - template T max(const T &t, const U &u) { - return t > u ? t : u; - } - - //pseudo-random number generator - inline unsigned prng() { - static unsigned n = 0; - return n = (n >> 1) ^ (((n & 1) - 1) & 0xedb88320); - } -} - -#endif diff --git a/snesfilter/nall/any.hpp b/snesfilter/nall/any.hpp deleted file mode 100644 index 9689af13..00000000 --- a/snesfilter/nall/any.hpp +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef NALL_ANY_HPP -#define NALL_ANY_HPP - -#include -#include -#include - -namespace nall { - class any { - public: - bool empty() const { return container; } - const std::type_info& type() const { return container ? container->type() : typeid(void); } - - template any& operator=(const T& value_) { - typedef typename static_if< - is_array::value, - typename remove_extent::type>::type*, - T - >::type auto_t; - - if(type() == typeid(auto_t)) { - static_cast*>(container)->value = (auto_t)value_; - } else { - if(container) delete container; - container = new holder((auto_t)value_); - } - - return *this; - } - - any() : container(0) {} - template any(const T& value_) : container(0) { operator=(value_); } - - private: - struct placeholder { - virtual const std::type_info& type() const = 0; - } *container; - - template struct holder : placeholder { - T value; - const std::type_info& type() const { return typeid(T); } - holder(const T& value_) : value(value_) {} - }; - - template friend T any_cast(any&); - template friend T any_cast(const any&); - template friend T* any_cast(any*); - template friend const T* any_cast(const any*); - }; - - template T any_cast(any &value) { - typedef typename remove_reference::type nonref; - if(value.type() != typeid(nonref)) throw; - return static_cast*>(value.container)->value; - } - - template T any_cast(const any &value) { - typedef const typename remove_reference::type nonref; - if(value.type() != typeid(nonref)) throw; - return static_cast*>(value.container)->value; - } - - template T* any_cast(any *value) { - if(!value || value->type() != typeid(T)) return 0; - return &static_cast*>(value->container)->value; - } - - template const T* any_cast(const any *value) { - if(!value || value->type() != typeid(T)) return 0; - return &static_cast*>(value->container)->value; - } -} - -#endif diff --git a/snesfilter/nall/array.hpp b/snesfilter/nall/array.hpp deleted file mode 100644 index 392b5bc0..00000000 --- a/snesfilter/nall/array.hpp +++ /dev/null @@ -1,118 +0,0 @@ -#ifndef NALL_ARRAY_HPP -#define NALL_ARRAY_HPP - -#include -#include -#include -#include -#include -#include - -namespace nall { - //dynamic vector array - //neither constructor nor destructor is ever invoked; - //thus, this should only be used for POD objects. - template class array { - protected: - T *pool; - unsigned poolsize, buffersize; - - public: - unsigned size() const { return buffersize; } - unsigned capacity() const { return poolsize; } - - void reset() { - if(pool) free(pool); - pool = 0; - poolsize = 0; - buffersize = 0; - } - - void reserve(unsigned newsize) { - if(newsize == poolsize) return; - - pool = (T*)realloc(pool, newsize * sizeof(T)); - poolsize = newsize; - buffersize = min(buffersize, newsize); - } - - void resize(unsigned newsize) { - if(newsize > poolsize) reserve(bit::round(newsize)); //round reserve size up to power of 2 - buffersize = newsize; - } - - T* get(unsigned minsize = 0) { - if(minsize > buffersize) resize(minsize); - if(minsize > buffersize) throw "array[] out of bounds"; - return pool; - } - - void add(const T data) { - operator[](buffersize) = data; - } - - signed find(const T data) { - for(unsigned i = 0; i < size(); i++) if(pool[i] == data) return i; - return -1; //not found - } - - void clear() { - memset(pool, 0, buffersize * sizeof(T)); - } - - array() : pool(0), poolsize(0), buffersize(0) { - } - - array(std::initializer_list list) : pool(0), poolsize(0), buffersize(0) { - for(const T *p = list.begin(); p != list.end(); ++p) add(*p); - } - - ~array() { - reset(); - } - - //copy - array& operator=(const array &source) { - if(pool) free(pool); - buffersize = source.buffersize; - poolsize = source.poolsize; - pool = (T*)malloc(sizeof(T) * poolsize); //allocate entire pool size, - memcpy(pool, source.pool, sizeof(T) * buffersize); //... but only copy used pool objects - return *this; - } - - array(const array &source) : pool(0) { - operator=(source); - } - - //move - array& operator=(array &&source) { - if(pool) free(pool); - pool = source.pool; - poolsize = source.poolsize; - buffersize = source.buffersize; - source.pool = 0; - return *this; - } - - array(array &&source) { - operator=(move(source)); - } - - //index - inline T& operator[](unsigned index) { - if(index >= buffersize) resize(index + 1); - if(index >= buffersize) throw "array[] out of bounds"; - return pool[index]; - } - - inline const T& operator[](unsigned index) const { - if(index >= buffersize) throw "array[] out of bounds"; - return pool[index]; - } - }; - - template struct has_size> { enum { value = true }; }; -} - -#endif diff --git a/snesfilter/nall/base64.hpp b/snesfilter/nall/base64.hpp deleted file mode 100644 index e41c87b7..00000000 --- a/snesfilter/nall/base64.hpp +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef NALL_BASE64_HPP -#define NALL_BASE64_HPP - -#include -#include - -namespace nall { - class base64 { - public: - static bool encode(char *&output, const uint8_t* input, unsigned inlength) { - output = new char[inlength * 8 / 6 + 6](); - - unsigned i = 0, o = 0; - while(i < inlength) { - switch(i % 3) { - case 0: { - output[o++] = enc(input[i] >> 2); - output[o] = enc((input[i] & 3) << 4); - } break; - - case 1: { - uint8_t prev = dec(output[o]); - output[o++] = enc(prev + (input[i] >> 4)); - output[o] = enc((input[i] & 15) << 2); - } break; - - case 2: { - uint8_t prev = dec(output[o]); - output[o++] = enc(prev + (input[i] >> 6)); - output[o++] = enc(input[i] & 63); - } break; - } - - i++; - } - - return true; - } - - static bool decode(uint8_t *&output, unsigned &outlength, const char *input) { - unsigned inlength = strlen(input), infix = 0; - output = new uint8_t[inlength](); - - unsigned i = 0, o = 0; - while(i < inlength) { - uint8_t x = dec(input[i]); - - switch(i++ & 3) { - case 0: { - output[o] = x << 2; - } break; - - case 1: { - output[o++] |= x >> 4; - output[o] = (x & 15) << 4; - } break; - - case 2: { - output[o++] |= x >> 2; - output[o] = (x & 3) << 6; - } break; - - case 3: { - output[o++] |= x; - } break; - } - } - - outlength = o; - return true; - } - - private: - static char enc(uint8_t n) { - static char lookup_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; - return lookup_table[n & 63]; - } - - static uint8_t dec(char n) { - if(n >= 'A' && n <= 'Z') return n - 'A'; - if(n >= 'a' && n <= 'z') return n - 'a' + 26; - if(n >= '0' && n <= '9') return n - '0' + 52; - if(n == '-') return 62; - if(n == '_') return 63; - return 0; - } - }; -} - -#endif diff --git a/snesfilter/nall/bit.hpp b/snesfilter/nall/bit.hpp deleted file mode 100644 index 169fc144..00000000 --- a/snesfilter/nall/bit.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef NALL_BIT_HPP -#define NALL_BIT_HPP - -namespace nall { - template inline unsigned uclamp(const unsigned x) { - enum { y = (1U << bits) - 1 }; - return y + ((x - y) & -(x < y)); //min(x, y); - } - - template inline unsigned uclip(const unsigned x) { - enum { m = (1U << bits) - 1 }; - return (x & m); - } - - template inline signed sclamp(const signed x) { - enum { b = 1U << (bits - 1), m = (1U << (bits - 1)) - 1 }; - return (x > m) ? m : (x < -b) ? -b : x; - } - - template inline signed sclip(const signed x) { - enum { b = 1U << (bits - 1), m = (1U << bits) - 1 }; - return ((x & m) ^ b) - b; - } - - namespace bit { - //lowest(0b1110) == 0b0010 - template inline T lowest(const T x) { - return x & -x; - } - - //clear_lowest(0b1110) == 0b1100 - template inline T clear_lowest(const T x) { - return x & (x - 1); - } - - //set_lowest(0b0101) == 0b0111 - template inline T set_lowest(const T x) { - return x | (x + 1); - } - - //round up to next highest single bit: - //round(15) == 16, round(16) == 16, round(17) == 32 - inline unsigned round(unsigned x) { - if((x & (x - 1)) == 0) return x; - while(x & (x - 1)) x &= x - 1; - return x << 1; - } - } -} - -#endif diff --git a/snesfilter/nall/concept.hpp b/snesfilter/nall/concept.hpp deleted file mode 100644 index 2949cd5e..00000000 --- a/snesfilter/nall/concept.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef NALL_CONCEPT_HPP -#define NALL_CONCEPT_HPP - -namespace nall { - //unsigned count() const; - template struct has_count { enum { value = false }; }; - - //unsigned length() const; - template struct has_length { enum { value = false }; }; - - //unsigned size() const; - template struct has_size { enum { value = false }; }; -} - -#endif diff --git a/snesfilter/nall/config.hpp b/snesfilter/nall/config.hpp deleted file mode 100644 index 31ae4e00..00000000 --- a/snesfilter/nall/config.hpp +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef NALL_CONFIG_HPP -#define NALL_CONFIG_HPP - -#include -#include -#include - -namespace nall { - namespace configuration_traits { - template struct is_boolean { enum { value = false }; }; - template<> struct is_boolean { enum { value = true }; }; - - template struct is_signed { enum { value = false }; }; - template<> struct is_signed { enum { value = true }; }; - - template struct is_unsigned { enum { value = false }; }; - template<> struct is_unsigned { enum { value = true }; }; - - template struct is_double { enum { value = false }; }; - template<> struct is_double { enum { value = true }; }; - - template struct is_string { enum { value = false }; }; - template<> struct is_string { enum { value = true }; }; - } - - class configuration { - public: - enum type_t { boolean_t, signed_t, unsigned_t, double_t, string_t, unknown_t }; - struct item_t { - uintptr_t data; - string name; - string desc; - type_t type; - - string get() const { - switch(type) { - case boolean_t: return string() << *(bool*)data; - case signed_t: return string() << *(signed*)data; - case unsigned_t: return string() << *(unsigned*)data; - case double_t: return string() << *(double*)data; - case string_t: return string() << "\"" << *(string*)data << "\""; - } - return "???"; - } - - void set(string s) { - switch(type) { - case boolean_t: *(bool*)data = (s == "true"); break; - case signed_t: *(signed*)data = strsigned(s); break; - case unsigned_t: *(unsigned*)data = strunsigned(s); break; - case double_t: *(double*)data = strdouble(s); break; - case string_t: trim(s, "\""); *(string*)data = s; break; - } - } - }; - linear_vector list; - - template - void attach(T &data, const char *name, const char *desc = "") { - unsigned n = list.size(); - list[n].data = (uintptr_t)&data; - list[n].name = name; - list[n].desc = desc; - - if(configuration_traits::is_boolean::value) list[n].type = boolean_t; - else if(configuration_traits::is_signed::value) list[n].type = signed_t; - else if(configuration_traits::is_unsigned::value) list[n].type = unsigned_t; - else if(configuration_traits::is_double::value) list[n].type = double_t; - else if(configuration_traits::is_string::value) list[n].type = string_t; - else list[n].type = unknown_t; - } - - virtual bool load(const char *filename) { - string data; - if(data.readfile(filename) == true) { - data.replace("\r", ""); - lstring line; - line.split("\n", data); - - for(unsigned i = 0; i < line.size(); i++) { - int position = qstrpos(line[i], "#"); - if(position >= 0) line[i][position] = 0; - if(qstrpos(line[i], " = ") < 0) continue; - - lstring part; - part.qsplit(" = ", line[i]); - trim(part[0]); - trim(part[1]); - - for(unsigned n = 0; n < list.size(); n++) { - if(part[0] == list[n].name) { - list[n].set(part[1]); - break; - } - } - } - - return true; - } else { - return false; - } - } - - virtual bool save(const char *filename) const { - file fp; - if(fp.open(filename, file::mode_write)) { - for(unsigned i = 0; i < list.size(); i++) { - string output; - output << list[i].name << " = " << list[i].get(); - if(list[i].desc != "") output << " # " << list[i].desc; - output << "\r\n"; - fp.print(output); - } - - fp.close(); - return true; - } else { - return false; - } - } - }; -} - -#endif diff --git a/snesfilter/nall/crc32.hpp b/snesfilter/nall/crc32.hpp deleted file mode 100644 index ad36fbf6..00000000 --- a/snesfilter/nall/crc32.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef NALL_CRC32_HPP -#define NALL_CRC32_HPP - -#include - -namespace nall { - const uint32_t crc32_table[256] = { - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, - 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, - 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, - 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, - 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, - 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, - 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, - 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, - 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, - 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, - 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, - 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, - 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, - 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, - 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, - 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, - 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, - 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, - 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, - 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, - 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, - 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, - 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, - 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, - 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, - 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, - 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, - 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, - 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, - 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, - 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, - 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, - 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, - 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, - 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, - 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, - 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, - 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, - 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, - 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, - 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, - 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d - }; - - inline uint32_t crc32_adjust(uint32_t crc32, uint8_t input) { - return ((crc32 >> 8) & 0x00ffffff) ^ crc32_table[(crc32 ^ input) & 0xff]; - } - - inline uint32_t crc32_calculate(const uint8_t *data, unsigned length) { - uint32_t crc32 = ~0; - for(unsigned i = 0; i < length; i++) { - crc32 = crc32_adjust(crc32, data[i]); - } - return ~crc32; - } -} - -#endif diff --git a/snesfilter/nall/detect.hpp b/snesfilter/nall/detect.hpp deleted file mode 100644 index b4991aaf..00000000 --- a/snesfilter/nall/detect.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef NALL_DETECT_HPP -#define NALL_DETECT_HPP - -/* Compiler detection */ - -#if defined(__GNUC__) - #define COMPILER_GCC -#elif defined(_MSC_VER) - #define COMPILER_VISUALC -#endif - -/* Platform detection */ - -#if defined(_WIN32) - #define PLATFORM_WIN -#elif defined(__APPLE__) - #define PLATFORM_OSX -#elif defined(linux) || defined(__sun__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) - #define PLATFORM_X -#endif - -/* Endian detection */ - -#if defined(__i386__) || defined(__amd64__) || defined(_M_IX86) || defined(_M_AMD64) - #define ARCH_LSB -#elif defined(__powerpc__) || defined(_M_PPC) || defined(__BIG_ENDIAN__) - #define ARCH_MSB -#endif - -#endif diff --git a/snesfilter/nall/dictionary.hpp b/snesfilter/nall/dictionary.hpp deleted file mode 100644 index f14e2095..00000000 --- a/snesfilter/nall/dictionary.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef NALL_DICTIONARY_HPP -#define NALL_DICTIONARY_HPP - -#include -#include -#include - -namespace nall { - class dictionary { - public: - string operator[](const char *input) { - for(unsigned i = 0; i < index_input.size(); i++) { - if(index_input[i] == input) return index_output[i]; - } - - //no match, use input; remove input identifier, if one exists - if(strbegin(input, "{{")) { - int pos = strpos(input, "}}"); - if(pos >= 0) { - string temp = substr(input, pos + 2); - return temp; - } - } - - return input; - } - - bool import(const char *filename) { - string data; - if(data.readfile(filename) == false) return false; - ltrim_once(data, "\xef\xbb\xbf"); //remove UTF-8 marker, if it exists - data.replace("\r", ""); - - lstring line; - line.split("\n", data); - for(unsigned i = 0; i < line.size(); i++) { - lstring part; - //format: "Input" = "Output" - part.qsplit("=", line[i]); - if(part.size() != 2) continue; - - //remove whitespace - trim(part[0]); - trim(part[1]); - - //remove quotes - trim_once(part[0], "\""); - trim_once(part[1], "\""); - - unsigned n = index_input.size(); - index_input[n] = part[0]; - index_output[n] = part[1]; - } - - return true; - } - - void reset() { - index_input.reset(); - index_output.reset(); - } - - ~dictionary() { - reset(); - } - - dictionary& operator=(const dictionary&) = delete; - dictionary(const dictionary&) = delete; - - protected: - lstring index_input; - lstring index_output; - }; -} - -#endif diff --git a/snesfilter/nall/dl.hpp b/snesfilter/nall/dl.hpp deleted file mode 100644 index 22acf51f..00000000 --- a/snesfilter/nall/dl.hpp +++ /dev/null @@ -1,119 +0,0 @@ -#ifndef NALL_DL_HPP -#define NALL_DL_HPP - -//dynamic linking support - -#include -#include -#include -#include - -#if defined(PLATFORM_X) || defined(PLATFORM_OSX) - #include -#elif defined(PLATFORM_WIN) - #include - #include -#endif - -namespace nall { - struct library { - bool opened() const { return handle; } - bool open(const char*); - void* sym(const char*); - void close(); - - library() : handle(0) {} - ~library() { close(); } - - library& operator=(const library&) = delete; - library(const library&) = delete; - - private: - uintptr_t handle; - }; - - #if defined(PLATFORM_X) - inline bool library::open(const char *name) { - if(handle) close(); - char *t = new char[strlen(name) + 256]; - strcpy(t, "lib"); - strcat(t, name); - strcat(t, ".so"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - if(!handle) { - strcpy(t, "/usr/local/lib/lib"); - strcat(t, name); - strcat(t, ".so"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - } - delete[] t; - return handle; - } - - inline void* library::sym(const char *name) { - if(!handle) return 0; - return dlsym((void*)handle, name); - } - - inline void library::close() { - if(!handle) return; - dlclose((void*)handle); - handle = 0; - } - #elif defined(PLATFORM_OSX) - inline bool library::open(const char *name) { - if(handle) close(); - char *t = new char[strlen(name) + 256]; - strcpy(t, "lib"); - strcat(t, name); - strcat(t, ".dylib"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - if(!handle) { - strcpy(t, "/usr/local/lib/lib"); - strcat(t, name); - strcat(t, ".dylib"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - } - delete[] t; - return handle; - } - - inline void* library::sym(const char *name) { - if(!handle) return 0; - return dlsym((void*)handle, name); - } - - inline void library::close() { - if(!handle) return; - dlclose((void*)handle); - handle = 0; - } - #elif defined(PLATFORM_WIN) - inline bool library::open(const char *name) { - if(handle) close(); - char *t = new char[strlen(name) + 8]; - strcpy(t, name); - strcat(t, ".dll"); - handle = (uintptr_t)LoadLibraryW(utf16_t(t)); - delete[] t; - return handle; - } - - inline void* library::sym(const char *name) { - if(!handle) return 0; - return (void*)GetProcAddress((HMODULE)handle, name); - } - - inline void library::close() { - if(!handle) return; - FreeLibrary((HMODULE)handle); - handle = 0; - } - #else - inline bool library::open(const char*) { return false; } - inline void* library::sym(const char*) { return 0; } - inline void library::close() {} - #endif -}; - -#endif diff --git a/snesfilter/nall/endian.hpp b/snesfilter/nall/endian.hpp deleted file mode 100644 index 40d15633..00000000 --- a/snesfilter/nall/endian.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef NALL_ENDIAN_HPP -#define NALL_ENDIAN_HPP - -#if !defined(ARCH_MSB) - //little-endian: uint8_t[] { 0x01, 0x02, 0x03, 0x04 } == 0x04030201 - #define order_lsb2(a,b) a,b - #define order_lsb3(a,b,c) a,b,c - #define order_lsb4(a,b,c,d) a,b,c,d - #define order_lsb5(a,b,c,d,e) a,b,c,d,e - #define order_lsb6(a,b,c,d,e,f) a,b,c,d,e,f - #define order_lsb7(a,b,c,d,e,f,g) a,b,c,d,e,f,g - #define order_lsb8(a,b,c,d,e,f,g,h) a,b,c,d,e,f,g,h - #define order_msb2(a,b) b,a - #define order_msb3(a,b,c) c,b,a - #define order_msb4(a,b,c,d) d,c,b,a - #define order_msb5(a,b,c,d,e) e,d,c,b,a - #define order_msb6(a,b,c,d,e,f) f,e,d,c,b,a - #define order_msb7(a,b,c,d,e,f,g) g,f,e,d,c,b,a - #define order_msb8(a,b,c,d,e,f,g,h) h,g,f,e,d,c,b,a -#else - //big-endian: uint8_t[] { 0x01, 0x02, 0x03, 0x04 } == 0x01020304 - #define order_lsb2(a,b) b,a - #define order_lsb3(a,b,c) c,b,a - #define order_lsb4(a,b,c,d) d,c,b,a - #define order_lsb5(a,b,c,d,e) e,d,c,b,a - #define order_lsb6(a,b,c,d,e,f) f,e,d,c,b,a - #define order_lsb7(a,b,c,d,e,f,g) g,f,e,d,c,b,a - #define order_lsb8(a,b,c,d,e,f,g,h) h,g,f,e,d,c,b,a - #define order_msb2(a,b) a,b - #define order_msb3(a,b,c) a,b,c - #define order_msb4(a,b,c,d) a,b,c,d - #define order_msb5(a,b,c,d,e) a,b,c,d,e - #define order_msb6(a,b,c,d,e,f) a,b,c,d,e,f - #define order_msb7(a,b,c,d,e,f,g) a,b,c,d,e,f,g - #define order_msb8(a,b,c,d,e,f,g,h) a,b,c,d,e,f,g,h -#endif - -#endif diff --git a/snesfilter/nall/file.hpp b/snesfilter/nall/file.hpp deleted file mode 100644 index 4c8ca8ee..00000000 --- a/snesfilter/nall/file.hpp +++ /dev/null @@ -1,259 +0,0 @@ -#ifndef NALL_FILE_HPP -#define NALL_FILE_HPP - -#include -#include - -#if !defined(_WIN32) - #include -#else - #include -#endif - -#include -#include -#include - -namespace nall { - inline FILE* fopen_utf8(const char *utf8_filename, const char *mode) { - #if !defined(_WIN32) - return fopen(utf8_filename, mode); - #else - return _wfopen(utf16_t(utf8_filename), utf16_t(mode)); - #endif - } - - class file { - public: - enum FileMode { mode_read, mode_write, mode_readwrite, mode_writeread }; - enum SeekMode { seek_absolute, seek_relative }; - - uint8_t read() { - if(!fp) return 0xff; //file not open - if(file_mode == mode_write) return 0xff; //reads not permitted - if(file_offset >= file_size) return 0xff; //cannot read past end of file - buffer_sync(); - return buffer[(file_offset++) & buffer_mask]; - } - - uintmax_t readl(unsigned length = 1) { - uintmax_t data = 0; - for(int i = 0; i < length; i++) { - data |= (uintmax_t)read() << (i << 3); - } - return data; - } - - uintmax_t readm(unsigned length = 1) { - uintmax_t data = 0; - while(length--) { - data <<= 8; - data |= read(); - } - return data; - } - - void read(uint8_t *buffer, unsigned length) { - while(length--) *buffer++ = read(); - } - - void write(uint8_t data) { - if(!fp) return; //file not open - if(file_mode == mode_read) return; //writes not permitted - buffer_sync(); - buffer[(file_offset++) & buffer_mask] = data; - buffer_dirty = true; - if(file_offset > file_size) file_size = file_offset; - } - - void writel(uintmax_t data, unsigned length = 1) { - while(length--) { - write(data); - data >>= 8; - } - } - - void writem(uintmax_t data, unsigned length = 1) { - for(int i = length - 1; i >= 0; i--) { - write(data >> (i << 3)); - } - } - - void write(const uint8_t *buffer, unsigned length) { - while(length--) write(*buffer++); - } - - void print(const char *string) { - if(!string) return; - while(*string) write(*string++); - } - - void flush() { - buffer_flush(); - fflush(fp); - } - - void seek(int offset, SeekMode mode = seek_absolute) { - if(!fp) return; //file not open - buffer_flush(); - - uintmax_t req_offset = file_offset; - switch(mode) { - case seek_absolute: req_offset = offset; break; - case seek_relative: req_offset += offset; break; - } - - if(req_offset < 0) req_offset = 0; //cannot seek before start of file - if(req_offset > file_size) { - if(file_mode == mode_read) { //cannot seek past end of file - req_offset = file_size; - } else { //pad file to requested location - file_offset = file_size; - while(file_size < req_offset) write(0x00); - } - } - - file_offset = req_offset; - } - - int offset() { - if(!fp) return -1; //file not open - return file_offset; - } - - int size() { - if(!fp) return -1; //file not open - return file_size; - } - - bool truncate(unsigned size) { - if(!fp) return false; //file not open - #if !defined(_WIN32) - return ftruncate(fileno(fp), size) == 0; - #else - return _chsize(fileno(fp), size) == 0; - #endif - } - - bool end() { - if(!fp) return true; //file not open - return file_offset >= file_size; - } - - static bool exists(const char *fn) { - #if !defined(_WIN32) - FILE *fp = fopen(fn, "rb"); - #else - FILE *fp = _wfopen(utf16_t(fn), L"rb"); - #endif - if(fp) { - fclose(fp); - return true; - } - return false; - } - - static unsigned size(const char *fn) { - #if !defined(_WIN32) - FILE *fp = fopen(fn, "rb"); - #else - FILE *fp = _wfopen(utf16_t(fn), L"rb"); - #endif - unsigned filesize = 0; - if(fp) { - fseek(fp, 0, SEEK_END); - filesize = ftell(fp); - fclose(fp); - } - return filesize; - } - - bool open() { - return fp; - } - - bool open(const char *fn, FileMode mode) { - if(fp) return false; - - switch(file_mode = mode) { - #if !defined(_WIN32) - case mode_read: fp = fopen(fn, "rb"); break; - case mode_write: fp = fopen(fn, "wb+"); break; //need read permission for buffering - case mode_readwrite: fp = fopen(fn, "rb+"); break; - case mode_writeread: fp = fopen(fn, "wb+"); break; - #else - case mode_read: fp = _wfopen(utf16_t(fn), L"rb"); break; - case mode_write: fp = _wfopen(utf16_t(fn), L"wb+"); break; - case mode_readwrite: fp = _wfopen(utf16_t(fn), L"rb+"); break; - case mode_writeread: fp = _wfopen(utf16_t(fn), L"wb+"); break; - #endif - } - if(!fp) return false; - buffer_offset = -1; //invalidate buffer - file_offset = 0; - fseek(fp, 0, SEEK_END); - file_size = ftell(fp); - fseek(fp, 0, SEEK_SET); - return true; - } - - void close() { - if(!fp) return; - buffer_flush(); - fclose(fp); - fp = 0; - } - - file() { - memset(buffer, 0, sizeof buffer); - buffer_offset = -1; - buffer_dirty = false; - fp = 0; - file_offset = 0; - file_size = 0; - file_mode = mode_read; - } - - ~file() { - close(); - } - - file& operator=(const file&) = delete; - file(const file&) = delete; - - private: - enum { buffer_size = 1 << 12, buffer_mask = buffer_size - 1 }; - char buffer[buffer_size]; - int buffer_offset; - bool buffer_dirty; - FILE *fp; - unsigned file_offset; - unsigned file_size; - FileMode file_mode; - - void buffer_sync() { - if(!fp) return; //file not open - if(buffer_offset != (file_offset & ~buffer_mask)) { - buffer_flush(); - buffer_offset = file_offset & ~buffer_mask; - fseek(fp, buffer_offset, SEEK_SET); - unsigned length = (buffer_offset + buffer_size) <= file_size ? buffer_size : (file_size & buffer_mask); - if(length) unsigned unused = fread(buffer, 1, length, fp); - } - } - - void buffer_flush() { - if(!fp) return; //file not open - if(file_mode == mode_read) return; //buffer cannot be written to - if(buffer_offset < 0) return; //buffer unused - if(buffer_dirty == false) return; //buffer unmodified since read - fseek(fp, buffer_offset, SEEK_SET); - unsigned length = (buffer_offset + buffer_size) <= file_size ? buffer_size : (file_size & buffer_mask); - if(length) unsigned unused = fwrite(buffer, 1, length, fp); - buffer_offset = -1; //invalidate buffer - buffer_dirty = false; - } - }; -} - -#endif diff --git a/snesfilter/nall/filemap.hpp b/snesfilter/nall/filemap.hpp deleted file mode 100644 index a05f0eb7..00000000 --- a/snesfilter/nall/filemap.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef NALL_FILEMAP_HPP -#define NALL_FILEMAP_HPP - -#include -#include - -#include -#include -#if defined(_WIN32) - #include -#else - #include - #include - #include - #include - #include -#endif - -namespace nall { - class filemap { - public: - enum filemode { mode_read, mode_write, mode_readwrite, mode_writeread }; - - bool open(const char *filename, filemode mode) { return p_open(filename, mode); } - void close() { return p_close(); } - unsigned size() const { return p_size; } - uint8_t* handle() { return p_handle; } - const uint8_t* handle() const { return p_handle; } - filemap() : p_size(0), p_handle(0) { p_ctor(); } - ~filemap() { p_dtor(); } - - private: - unsigned p_size; - uint8_t *p_handle; - - #if defined(_WIN32) - //============= - //MapViewOfFile - //============= - - HANDLE p_filehandle, p_maphandle; - - bool p_open(const char *filename, filemode mode) { - int desired_access, creation_disposition, flprotect, map_access; - - switch(mode) { - default: return false; - case mode_read: - desired_access = GENERIC_READ; - creation_disposition = OPEN_EXISTING; - flprotect = PAGE_READONLY; - map_access = FILE_MAP_READ; - break; - case mode_write: - //write access requires read access - desired_access = GENERIC_WRITE; - creation_disposition = CREATE_ALWAYS; - flprotect = PAGE_READWRITE; - map_access = FILE_MAP_ALL_ACCESS; - break; - case mode_readwrite: - desired_access = GENERIC_READ | GENERIC_WRITE; - creation_disposition = OPEN_EXISTING; - flprotect = PAGE_READWRITE; - map_access = FILE_MAP_ALL_ACCESS; - break; - case mode_writeread: - desired_access = GENERIC_READ | GENERIC_WRITE; - creation_disposition = CREATE_NEW; - flprotect = PAGE_READWRITE; - map_access = FILE_MAP_ALL_ACCESS; - break; - } - - p_filehandle = CreateFileW(utf16_t(filename), desired_access, FILE_SHARE_READ, NULL, - creation_disposition, FILE_ATTRIBUTE_NORMAL, NULL); - if(p_filehandle == INVALID_HANDLE_VALUE) return false; - - p_size = GetFileSize(p_filehandle, NULL); - - p_maphandle = CreateFileMapping(p_filehandle, NULL, flprotect, 0, p_size, NULL); - if(p_maphandle == INVALID_HANDLE_VALUE) { - CloseHandle(p_filehandle); - p_filehandle = INVALID_HANDLE_VALUE; - return false; - } - - p_handle = (uint8_t*)MapViewOfFile(p_maphandle, map_access, 0, 0, p_size); - return p_handle; - } - - void p_close() { - if(p_handle) { - UnmapViewOfFile(p_handle); - p_handle = 0; - } - - if(p_maphandle != INVALID_HANDLE_VALUE) { - CloseHandle(p_maphandle); - p_maphandle = INVALID_HANDLE_VALUE; - } - - if(p_filehandle != INVALID_HANDLE_VALUE) { - CloseHandle(p_filehandle); - p_filehandle = INVALID_HANDLE_VALUE; - } - } - - void p_ctor() { - p_filehandle = INVALID_HANDLE_VALUE; - p_maphandle = INVALID_HANDLE_VALUE; - } - - void p_dtor() { - close(); - } - - #else - //==== - //mmap - //==== - - int p_fd; - - bool p_open(const char *filename, filemode mode) { - int open_flags, mmap_flags; - - switch(mode) { - default: return false; - case mode_read: - open_flags = O_RDONLY; - mmap_flags = PROT_READ; - break; - case mode_write: - open_flags = O_RDWR | O_CREAT; //mmap() requires read access - mmap_flags = PROT_WRITE; - break; - case mode_readwrite: - open_flags = O_RDWR; - mmap_flags = PROT_READ | PROT_WRITE; - break; - case mode_writeread: - open_flags = O_RDWR | O_CREAT; - mmap_flags = PROT_READ | PROT_WRITE; - break; - } - - p_fd = ::open(filename, open_flags); - if(p_fd < 0) return false; - - struct stat p_stat; - fstat(p_fd, &p_stat); - p_size = p_stat.st_size; - - p_handle = (uint8_t*)mmap(0, p_size, mmap_flags, MAP_SHARED, p_fd, 0); - if(p_handle == MAP_FAILED) { - p_handle = 0; - ::close(p_fd); - p_fd = -1; - return false; - } - - return p_handle; - } - - void p_close() { - if(p_handle) { - munmap(p_handle, p_size); - p_handle = 0; - } - - if(p_fd >= 0) { - ::close(p_fd); - p_fd = -1; - } - } - - void p_ctor() { - p_fd = -1; - } - - void p_dtor() { - p_close(); - } - - #endif - }; -} - -#endif diff --git a/snesfilter/nall/foreach.hpp b/snesfilter/nall/foreach.hpp deleted file mode 100644 index 39ca7f5f..00000000 --- a/snesfilter/nall/foreach.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef NALL_FOREACH_HPP -#define NALL_FOREACH_HPP - -#undef foreach -#define foreach(iter, object) \ - for(unsigned foreach_counter = 0, foreach_limit = foreach_size(object), foreach_once = 0, foreach_broken = 0; foreach_counter < foreach_limit && foreach_broken == 0; foreach_counter++, foreach_once = 0) \ - for(auto &iter = object[foreach_counter]; foreach_once == 0 && (foreach_broken = 1); foreach_once++, foreach_broken = 0) - -#include -#include -#include - -namespace nall { - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return object.count(); - } - - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return object.length(); - } - - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return object.size(); - } - - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return sizeof(T) / sizeof(typename remove_extent::type); - } -} - -#endif diff --git a/snesfilter/nall/function.hpp b/snesfilter/nall/function.hpp deleted file mode 100644 index 58fe349f..00000000 --- a/snesfilter/nall/function.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef NALL_FUNCTION_HPP -#define NALL_FUNCTION_HPP - -#include - -//prologue - -#define TN typename - -namespace nall { - template class function; -} - -//parameters = 0 - -#define cat(n) n -#define TL typename R -#define PL -#define CL - -#include "function.hpp" - -//parameters = 1 - -#define cat(n) , n -#define TL TN R, TN P1 -#define PL P1 p1 -#define CL p1 - -#include "function.hpp" - -//parameters = 2 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2 -#define PL P1 p1, P2 p2 -#define CL p1, p2 - -#include "function.hpp" - -//parameters = 3 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3 -#define PL P1 p1, P2 p2, P3 p3 -#define CL p1, p2, p3 - -#include "function.hpp" - -//parameters = 4 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4 -#define PL P1 p1, P2 p2, P3 p3, P4 p4 -#define CL p1, p2, p3, p4 - -#include "function.hpp" - -//parameters = 5 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5 -#define CL p1, p2, p3, p4, p5 - -#include "function.hpp" - -//parameters = 6 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5, TN P6 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6 -#define CL p1, p2, p3, p4, p5, p6 - -#include "function.hpp" - -//parameters = 7 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5, TN P6, TN P7 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7 -#define CL p1, p2, p3, p4, p5, p6, p7 - -#include "function.hpp" - -//parameters = 8 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5, TN P6, TN P7, TN P8 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8 -#define CL p1, p2, p3, p4, p5, p6, p7, p8 - -#include "function.hpp" - -//epilogue - -#undef TN -#define NALL_FUNCTION_T - -#elif !defined(NALL_FUNCTION_T) - -//function implementation template class - -namespace nall { - template - class function { - private: - struct base1 { virtual void func1(PL) {} }; - struct base2 { virtual void func2(PL) {} }; - struct derived : base1, virtual base2 {}; - - struct data_t { - R (*fn_call)(const data_t& cat(PL)); - union { - R (*fn_global)(PL); - struct { - R (derived::*fn_member)(PL); - void *object; - }; - }; - } data; - - static R fn_call_global(const data_t &d cat(PL)) { - return d.fn_global(CL); - } - - template - static R fn_call_member(const data_t &d cat(PL)) { - return (((C*)d.object)->*((R (C::*&)(PL))d.fn_member))(CL); - } - - public: - R operator()(PL) const { return data.fn_call(data cat(CL)); } - operator bool() const { return data.fn_call; } - - function() { data.fn_call = 0; } - - function(void *fn) { - data.fn_call = fn ? &fn_call_global : 0; - data.fn_global = (R (*)(PL))fn; - } - - function(R (*fn)(PL)) { - data.fn_call = &fn_call_global; - data.fn_global = fn; - } - - template - function(R (C::*fn)(PL), C *obj) { - data.fn_call = &fn_call_member; - (R (C::*&)(PL))data.fn_member = fn; - assert(sizeof data.fn_member >= sizeof fn); - data.object = obj; - } - - template - function(R (C::*fn)(PL) const, C *obj) { - data.fn_call = &fn_call_member; - (R (C::*&)(PL))data.fn_member = (R (C::*&)(PL))fn; - assert(sizeof data.fn_member >= sizeof fn); - data.object = obj; - } - - function& operator=(void *fn) { return operator=(function(fn)); } - function& operator=(const function &source) { memcpy(&data, &source.data, sizeof(data_t)); return *this; } - function(const function &source) { memcpy(&data, &source.data, sizeof(data_t)); } - }; - - template - function bind(R (*fn)(PL)) { - return function(fn); - } - - template - function bind(R (C::*fn)(PL), C *obj) { - return function(fn, obj); - } - - template - function bind(R (C::*fn)(PL) const, C *obj) { - return function(fn, obj); - } -} - -#undef cat -#undef TL -#undef PL -#undef CL - -#endif diff --git a/snesfilter/nall/input.hpp b/snesfilter/nall/input.hpp deleted file mode 100644 index b3ce9ebf..00000000 --- a/snesfilter/nall/input.hpp +++ /dev/null @@ -1,386 +0,0 @@ -#ifndef NALL_INPUT_HPP -#define NALL_INPUT_HPP - -#include -#include -#include - -#include -#include - -namespace nall { - -struct Keyboard; -Keyboard& keyboard(unsigned = 0); - -static const char KeyboardScancodeName[][64] = { - "Escape", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", - "PrintScreen", "ScrollLock", "Pause", "Tilde", - "Num1", "Num2", "Num3", "Num4", "Num5", "Num6", "Num7", "Num8", "Num9", "Num0", - "Dash", "Equal", "Backspace", - "Insert", "Delete", "Home", "End", "PageUp", "PageDown", - "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", - "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", - "LeftBracket", "RightBracket", "Backslash", "Semicolon", "Apostrophe", "Comma", "Period", "Slash", - "Keypad1", "Keypad2", "Keypad3", "Keypad4", "Keypad5", "Keypad6", "Keypad7", "Keypad8", "Keypad9", "Keypad0", - "Point", "Enter", "Add", "Subtract", "Multiply", "Divide", - "NumLock", "CapsLock", - "Up", "Down", "Left", "Right", - "Tab", "Return", "Spacebar", "Menu", - "Shift", "Control", "Alt", "Super", -}; - -struct Keyboard { - const unsigned ID; - enum { Base = 1 }; - enum { Count = 8, Size = 128 }; - - enum Scancode { - Escape, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, - PrintScreen, ScrollLock, Pause, Tilde, - Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9, Num0, - Dash, Equal, Backspace, - Insert, Delete, Home, End, PageUp, PageDown, - A, B, C, D, E, F, G, H, I, J, K, L, M, - N, O, P, Q, R, S, T, U, V, W, X, Y, Z, - LeftBracket, RightBracket, Backslash, Semicolon, Apostrophe, Comma, Period, Slash, - Keypad1, Keypad2, Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9, Keypad0, - Point, Enter, Add, Subtract, Multiply, Divide, - NumLock, CapsLock, - Up, Down, Left, Right, - Tab, Return, Spacebar, Menu, - Shift, Control, Alt, Super, - Limit, - }; - - static signed numberDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).belongsTo(scancode)) return i; - } - return -1; - } - - static signed keyDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isKey(scancode)) return scancode - keyboard(i).key(Escape); - } - return -1; - } - - static signed modifierDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isModifier(scancode)) return scancode - keyboard(i).key(Shift); - } - return -1; - } - - static bool isAnyKey(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isKey(scancode)) return true; - } - return false; - } - - static bool isAnyModifier(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isModifier(scancode)) return true; - } - return false; - } - - static uint16_t decode(const char *name) { - string s(name); - if(!strbegin(name, "KB")) return 0; - ltrim(s, "KB"); - unsigned id = strunsigned(s); - int pos = strpos(s, "::"); - if(pos < 0) return 0; - s = substr(s, pos + 2); - for(unsigned i = 0; i < Limit; i++) { - if(s == KeyboardScancodeName[i]) return Base + Size * id + i; - } - return 0; - } - - string encode(uint16_t code) const { - unsigned index = 0; - for(unsigned i = 0; i < Count; i++) { - if(code >= Base + Size * i && code < Base + Size * (i + 1)) { - index = code - (Base + Size * i); - break; - } - } - return string() << "KB" << ID << "::" << KeyboardScancodeName[index]; - } - - uint16_t operator[](Scancode code) const { return Base + ID * Size + code; } - uint16_t key(unsigned id) const { return Base + Size * ID + id; } - bool isKey(unsigned id) const { return id >= key(Escape) && id <= key(Menu); } - bool isModifier(unsigned id) const { return id >= key(Shift) && id <= key(Super); } - bool belongsTo(uint16_t scancode) const { return isKey(scancode) || isModifier(scancode); } - - Keyboard(unsigned ID_) : ID(ID_) {} -}; - -inline Keyboard& keyboard(unsigned id) { - static Keyboard kb0(0), kb1(1), kb2(2), kb3(3), kb4(4), kb5(5), kb6(6), kb7(7); - switch(id) { default: - case 0: return kb0; case 1: return kb1; case 2: return kb2; case 3: return kb3; - case 4: return kb4; case 5: return kb5; case 6: return kb6; case 7: return kb7; - } -} - -static const char MouseScancodeName[][64] = { - "Xaxis", "Yaxis", "Zaxis", - "Button0", "Button1", "Button2", "Button3", "Button4", "Button5", "Button6", "Button7", -}; - -struct Mouse; -Mouse& mouse(unsigned = 0); - -struct Mouse { - const unsigned ID; - enum { Base = Keyboard::Base + Keyboard::Size * Keyboard::Count }; - enum { Count = 8, Size = 16 }; - enum { Axes = 3, Buttons = 8 }; - - enum Scancode { - Xaxis, Yaxis, Zaxis, - Button0, Button1, Button2, Button3, Button4, Button5, Button6, Button7, - Limit, - }; - - static signed numberDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).belongsTo(scancode)) return i; - } - return -1; - } - - static signed axisDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isAxis(scancode)) return scancode - mouse(i).axis(0); - } - return -1; - } - - static signed buttonDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isButton(scancode)) return scancode - mouse(i).button(0); - } - return -1; - } - - static bool isAnyAxis(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isAxis(scancode)) return true; - } - return false; - } - - static bool isAnyButton(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isButton(scancode)) return true; - } - return false; - } - - static uint16_t decode(const char *name) { - string s(name); - if(!strbegin(name, "MS")) return 0; - ltrim(s, "MS"); - unsigned id = strunsigned(s); - int pos = strpos(s, "::"); - if(pos < 0) return 0; - s = substr(s, pos + 2); - for(unsigned i = 0; i < Limit; i++) { - if(s == MouseScancodeName[i]) return Base + Size * id + i; - } - return 0; - } - - string encode(uint16_t code) const { - unsigned index = 0; - for(unsigned i = 0; i < Count; i++) { - if(code >= Base + Size * i && code < Base + Size * (i + 1)) { - index = code - (Base + Size * i); - break; - } - } - return string() << "MS" << ID << "::" << MouseScancodeName[index]; - } - - uint16_t operator[](Scancode code) const { return Base + ID * Size + code; } - uint16_t axis(unsigned id) const { return Base + Size * ID + Xaxis + id; } - uint16_t button(unsigned id) const { return Base + Size * ID + Button0 + id; } - bool isAxis(unsigned id) const { return id >= axis(0) && id <= axis(2); } - bool isButton(unsigned id) const { return id >= button(0) && id <= button(7); } - bool belongsTo(uint16_t scancode) const { return isAxis(scancode) || isButton(scancode); } - - Mouse(unsigned ID_) : ID(ID_) {} -}; - -inline Mouse& mouse(unsigned id) { - static Mouse ms0(0), ms1(1), ms2(2), ms3(3), ms4(4), ms5(5), ms6(6), ms7(7); - switch(id) { default: - case 0: return ms0; case 1: return ms1; case 2: return ms2; case 3: return ms3; - case 4: return ms4; case 5: return ms5; case 6: return ms6; case 7: return ms7; - } -} - -static const char JoypadScancodeName[][64] = { - "Hat0", "Hat1", "Hat2", "Hat3", "Hat4", "Hat5", "Hat6", "Hat7", - "Axis0", "Axis1", "Axis2", "Axis3", "Axis4", "Axis5", "Axis6", "Axis7", - "Axis8", "Axis9", "Axis10", "Axis11", "Axis12", "Axis13", "Axis14", "Axis15", - "Button0", "Button1", "Button2", "Button3", "Button4", "Button5", "Button6", "Button7", - "Button8", "Button9", "Button10", "Button11", "Button12", "Button13", "Button14", "Button15", - "Button16", "Button17", "Button18", "Button19", "Button20", "Button21", "Button22", "Button23", - "Button24", "Button25", "Button26", "Button27", "Button28", "Button29", "Button30", "Button31", -}; - -struct Joypad; -Joypad& joypad(unsigned = 0); - -struct Joypad { - const unsigned ID; - enum { Base = Mouse::Base + Mouse::Size * Mouse::Count }; - enum { Count = 8, Size = 64 }; - enum { Hats = 8, Axes = 16, Buttons = 32 }; - - enum Scancode { - Hat0, Hat1, Hat2, Hat3, Hat4, Hat5, Hat6, Hat7, - Axis0, Axis1, Axis2, Axis3, Axis4, Axis5, Axis6, Axis7, - Axis8, Axis9, Axis10, Axis11, Axis12, Axis13, Axis14, Axis15, - Button0, Button1, Button2, Button3, Button4, Button5, Button6, Button7, - Button8, Button9, Button10, Button11, Button12, Button13, Button14, Button15, - Button16, Button17, Button18, Button19, Button20, Button21, Button22, Button23, - Button24, Button25, Button26, Button27, Button28, Button29, Button30, Button31, - Limit, - }; - - enum Hat { HatCenter = 0, HatUp = 1, HatRight = 2, HatDown = 4, HatLeft = 8 }; - - static signed numberDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).belongsTo(scancode)) return i; - } - return -1; - } - - static signed hatDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isHat(scancode)) return scancode - joypad(i).hat(0); - } - return -1; - } - - static signed axisDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isAxis(scancode)) return scancode - joypad(i).axis(0); - } - return -1; - } - - static signed buttonDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isButton(scancode)) return scancode - joypad(i).button(0); - } - return -1; - } - - static bool isAnyHat(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isHat(scancode)) return true; - } - return false; - } - - static bool isAnyAxis(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isAxis(scancode)) return true; - } - return false; - } - - static bool isAnyButton(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isButton(scancode)) return true; - } - return false; - } - - static uint16_t decode(const char *name) { - string s(name); - if(!strbegin(name, "JP")) return 0; - ltrim(s, "JP"); - unsigned id = strunsigned(s); - int pos = strpos(s, "::"); - if(pos < 0) return 0; - s = substr(s, pos + 2); - for(unsigned i = 0; i < Limit; i++) { - if(s == JoypadScancodeName[i]) return Base + Size * id + i; - } - return 0; - } - - string encode(uint16_t code) const { - unsigned index = 0; - for(unsigned i = 0; i < Count; i++) { - if(code >= Base + Size * i && code < Base + Size * (i + 1)) { - index = code - (Base + Size * i); - } - } - return string() << "JP" << ID << "::" << JoypadScancodeName[index]; - } - - uint16_t operator[](Scancode code) const { return Base + ID * Size + code; } - uint16_t hat(unsigned id) const { return Base + Size * ID + Hat0 + id; } - uint16_t axis(unsigned id) const { return Base + Size * ID + Axis0 + id; } - uint16_t button(unsigned id) const { return Base + Size * ID + Button0 + id; } - bool isHat(unsigned id) const { return id >= hat(0) && id <= hat(7); } - bool isAxis(unsigned id) const { return id >= axis(0) && id <= axis(15); } - bool isButton(unsigned id) const { return id >= button(0) && id <= button(31); } - bool belongsTo(uint16_t scancode) const { return isHat(scancode) || isAxis(scancode) || isButton(scancode); } - - Joypad(unsigned ID_) : ID(ID_) {} -}; - -inline Joypad& joypad(unsigned id) { - static Joypad jp0(0), jp1(1), jp2(2), jp3(3), jp4(4), jp5(5), jp6(6), jp7(7); - switch(id) { default: - case 0: return jp0; case 1: return jp1; case 2: return jp2; case 3: return jp3; - case 4: return jp4; case 5: return jp5; case 6: return jp6; case 7: return jp7; - } -} - -struct Scancode { - enum { None = 0, Limit = Joypad::Base + Joypad::Size * Joypad::Count }; - - static uint16_t decode(const char *name) { - uint16_t code; - code = Keyboard::decode(name); - if(code) return code; - code = Mouse::decode(name); - if(code) return code; - code = Joypad::decode(name); - if(code) return code; - return None; - } - - static string encode(uint16_t code) { - for(unsigned i = 0; i < Keyboard::Count; i++) { - if(keyboard(i).belongsTo(code)) return keyboard(i).encode(code); - } - for(unsigned i = 0; i < Mouse::Count; i++) { - if(mouse(i).belongsTo(code)) return mouse(i).encode(code); - } - for(unsigned i = 0; i < Joypad::Count; i++) { - if(joypad(i).belongsTo(code)) return joypad(i).encode(code); - } - return "None"; - } -}; - -} - -#endif diff --git a/snesfilter/nall/lzss.hpp b/snesfilter/nall/lzss.hpp deleted file mode 100644 index 202bc814..00000000 --- a/snesfilter/nall/lzss.hpp +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef NALL_LZSS_HPP -#define NALL_LZSS_HPP - -#include -#include -#include - -namespace nall { - class lzss { - public: - static bool encode(uint8_t *&output, unsigned &outlength, const uint8_t *input, unsigned inlength) { - output = new(zeromemory) uint8_t[inlength * 9 / 8 + 9]; - - unsigned i = 0, o = 0; - while(i < inlength) { - unsigned flagoffset = o++; - uint8_t flag = 0x00; - - for(unsigned b = 0; b < 8 && i < inlength; b++) { - unsigned longest = 0, pointer; - for(unsigned index = 1; index < 4096; index++) { - unsigned count = 0; - while(true) { - if(count >= 15 + 3) break; //verify pattern match is not longer than max length - if(i + count >= inlength) break; //verify pattern match does not read past end of input - if(i + count < index) break; //verify read is not before start of input - if(input[i + count] != input[i + count - index]) break; //verify pattern still matches - count++; - } - - if(count > longest) { - longest = count; - pointer = index; - } - } - - if(longest < 3) output[o++] = input[i++]; - else { - flag |= 1 << b; - uint16_t x = ((longest - 3) << 12) + pointer; - output[o++] = x; - output[o++] = x >> 8; - i += longest; - } - } - - output[flagoffset] = flag; - } - - outlength = o; - return true; - } - - static bool decode(uint8_t *&output, const uint8_t *input, unsigned length) { - output = new(zeromemory) uint8_t[length]; - - unsigned i = 0, o = 0; - while(o < length) { - uint8_t flag = input[i++]; - - for(unsigned b = 0; b < 8 && o < length; b++) { - if(!(flag & (1 << b))) output[o++] = input[i++]; - else { - uint16_t offset = input[i++]; - offset += input[i++] << 8; - uint16_t lookuplength = (offset >> 12) + 3; - offset &= 4095; - for(unsigned index = 0; index < lookuplength && o + index < length; index++) { - output[o + index] = output[o + index - offset]; - } - o += lookuplength; - } - } - } - - return true; - } - }; -} - -#endif diff --git a/snesfilter/nall/moduloarray.hpp b/snesfilter/nall/moduloarray.hpp deleted file mode 100644 index be549ae9..00000000 --- a/snesfilter/nall/moduloarray.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef NALL_MODULO_HPP -#define NALL_MODULO_HPP - -#include - -namespace nall { - template class modulo_array { - public: - inline T operator[](int index) const { - return buffer[size + index]; - } - - inline T read(int index) const { - return buffer[size + index]; - } - - inline void write(unsigned index, const T value) { - buffer[index] = - buffer[index + size] = - buffer[index + size + size] = value; - } - - void serialize(serializer &s) { - s.array(buffer, size * 3); - } - - modulo_array() { - buffer = new T[size * 3](); - } - - ~modulo_array() { - delete[] buffer; - } - - private: - T *buffer; - }; -} - -#endif diff --git a/snesfilter/nall/platform.hpp b/snesfilter/nall/platform.hpp deleted file mode 100644 index 68ed37ce..00000000 --- a/snesfilter/nall/platform.hpp +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef NALL_PLATFORM_HPP -#define NALL_PLATFORM_HPP - -#include - -//========================= -//standard platform headers -//========================= - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(_WIN32) - #include - #include - #include - #undef interface -#else - #include - #include - #include -#endif - -//================== -//warning supression -//================== - -//Visual C++ -#if defined(_MSC_VER) - //disable libc "deprecation" warnings - #pragma warning(disable:4996) -#endif - -//================ -//POSIX compliance -//================ - -#if defined(_MSC_VER) - #define PATH_MAX _MAX_PATH - #define va_copy(dest, src) ((dest) = (src)) -#endif - -#if defined(_WIN32) - #define getcwd _getcwd - #define ftruncate _chsize - #define putenv _putenv - #define mkdir(n, m) _wmkdir(nall::utf16_t(n)) - #define rmdir _rmdir - #define vsnprintf _vsnprintf - #define usleep(n) Sleep(n / 1000) -#endif - -//================ -//inline expansion -//================ - -#if defined(__GNUC__) - #define noinline __attribute__((noinline)) - #define inline inline - #define alwaysinline inline __attribute__((always_inline)) -#elif defined(_MSC_VER) - #define noinline __declspec(noinline) - #define inline inline - #define alwaysinline inline __forceinline -#else - #define noinline - #define inline inline - #define alwaysinline inline -#endif - -#endif - diff --git a/snesfilter/nall/priorityqueue.hpp b/snesfilter/nall/priorityqueue.hpp deleted file mode 100644 index 7104e791..00000000 --- a/snesfilter/nall/priorityqueue.hpp +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef NALL_PRIORITYQUEUE_HPP -#define NALL_PRIORITYQUEUE_HPP - -#include -#include -#include -#include - -namespace nall { - template void priority_queue_nocallback(type_t) {} - - //priority queue implementation using binary min-heap array; - //does not require normalize() function. - //O(1) find (tick) - //O(log n) insert (enqueue) - //O(log n) remove (dequeue) - template class priority_queue { - public: - inline void tick(unsigned ticks) { - basecounter += ticks; - while(heapsize && gte(basecounter, heap[0].counter)) callback(dequeue()); - } - - //counter is relative to current time (eg enqueue(64, ...) fires in 64 ticks); - //counter cannot exceed std::numeric_limits::max() >> 1. - void enqueue(unsigned counter, type_t event) { - unsigned child = heapsize++; - counter += basecounter; - - while(child) { - unsigned parent = (child - 1) >> 1; - if(gte(counter, heap[parent].counter)) break; - - heap[child].counter = heap[parent].counter; - heap[child].event = heap[parent].event; - child = parent; - } - - heap[child].counter = counter; - heap[child].event = event; - } - - type_t dequeue() { - type_t event(heap[0].event); - unsigned parent = 0; - unsigned counter = heap[--heapsize].counter; - - while(true) { - unsigned child = (parent << 1) + 1; - if(child >= heapsize) break; - if(child + 1 < heapsize && gte(heap[child].counter, heap[child + 1].counter)) child++; - if(gte(heap[child].counter, counter)) break; - - heap[parent].counter = heap[child].counter; - heap[parent].event = heap[child].event; - parent = child; - } - - heap[parent].counter = counter; - heap[parent].event = heap[heapsize].event; - return event; - } - - void reset() { - basecounter = 0; - heapsize = 0; - } - - void serialize(serializer &s) { - s.integer(basecounter); - s.integer(heapsize); - for(unsigned n = 0; n < heapcapacity; n++) { - s.integer(heap[n].counter); - s.integer(heap[n].event); - } - } - - priority_queue(unsigned size, function callback_ = &priority_queue_nocallback) - : callback(callback_) { - heap = new heap_t[size]; - heapcapacity = size; - reset(); - } - - ~priority_queue() { - delete[] heap; - } - - priority_queue& operator=(const priority_queue&) = delete; - priority_queue(const priority_queue&) = delete; - - private: - function callback; - unsigned basecounter; - unsigned heapsize; - unsigned heapcapacity; - struct heap_t { - unsigned counter; - type_t event; - } *heap; - - //return true if x is greater than or equal to y - inline bool gte(unsigned x, unsigned y) { - return x - y < (std::numeric_limits::max() >> 1); - } - }; -} - -#endif diff --git a/snesfilter/nall/property.hpp b/snesfilter/nall/property.hpp deleted file mode 100644 index 6fd33acd..00000000 --- a/snesfilter/nall/property.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef NALL_PROPERTY_HPP -#define NALL_PROPERTY_HPP - -//nall::property implements ownership semantics into container classes -//example: property::readonly implies that only owner has full -//access to type; and all other code has readonly access. -// -//this code relies on extended friend semantics from C++0x to work, as it -//declares a friend class via a template paramter. it also exploits a bug in -//G++ 4.x to work even in C++98 mode. -// -//if compiling elsewhere, simply remove the friend class and private semantics - -//property can be used either of two ways: -//struct foo { -// property::readonly x; -// property::readwrite y; -//}; -//-or- -//struct foo : property { -// readonly x; -// readwrite y; -//}; - -//return types are const T& (byref) instead fo T (byval) to avoid major speed -//penalties for objects with expensive copy constructors - -//operator-> provides access to underlying object type: -//readonly foo; -//foo->bar(); -//... will call Object::bar(); - -//operator='s reference is constant so as to avoid leaking a reference handle -//that could bypass access restrictions - -//both constant and non-constant operators are provided, though it may be -//necessary to cast first, for instance: -//struct foo : property { readonly bar; } object; -//int main() { int value = const_cast(object); } - -//writeonly is useful for objects that have non-const reads, but const writes. -//however, to avoid leaking handles, the interface is very restricted. the only -//way to write is via operator=, which requires conversion via eg copy -//constructor. example: -//struct foo { -// foo(bool value) { ... } -//}; -//writeonly bar; -//bar = true; - -namespace nall { - template struct property { - template struct traits { typedef T type; }; - - template struct readonly { - const T* operator->() const { return &value; } - const T& operator()() const { return value; } - operator const T&() const { return value; } - private: - T* operator->() { return &value; } - operator T&() { return value; } - const T& operator=(const T& value_) { return value = value_; } - T value; - friend class traits::type; - }; - - template struct writeonly { - void operator=(const T& value_) { value = value_; } - private: - const T* operator->() const { return &value; } - const T& operator()() const { return value; } - operator const T&() const { return value; } - T* operator->() { return &value; } - operator T&() { return value; } - T value; - friend class traits::type; - }; - - template struct readwrite { - const T* operator->() const { return &value; } - const T& operator()() const { return value; } - operator const T&() const { return value; } - T* operator->() { return &value; } - operator T&() { return value; } - const T& operator=(const T& value_) { return value = value_; } - T value; - }; - }; -} - -#endif diff --git a/snesfilter/nall/qt/Makefile b/snesfilter/nall/qt/Makefile deleted file mode 100644 index 69e84960..00000000 --- a/snesfilter/nall/qt/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -# requires nall/Makefile - -# imports: -# $(qtlibs) -- list of Qt components to link against - -# exports the following symbols: -# $(moc) -- meta-object compiler -# $(rcc) -- resource compiler -# $(qtinc) -- includes for compiling -# $(qtlib) -- libraries for linking - -ifeq ($(moc),) -moc := moc -endif - -ifeq ($(rcc),) -rcc := rcc -endif - -ifeq ($(platform),x) - qtinc := `pkg-config --cflags $(qtlibs)` - qtlib := `pkg-config --libs $(qtlibs)` -else ifeq ($(platform),osx) - qtinc := $(foreach lib,$(qtlibs),-I/Library/Frameworks/$(lib).framework/Versions/4/Headers) - - qtlib := -L/Library/Frameworks - qtlib += $(foreach lib,$(qtlibs),-framework $(lib)) - qtlib += -framework Carbon - qtlib += -framework Cocoa - qtlib += -framework OpenGL - qtlib += -framework AppKit - qtlib += -framework ApplicationServices -else ifeq ($(platform),win) - ifeq ($(qtpath),) - # find Qt install directory from PATH environment variable - qtpath := $(foreach path,$(subst ;, ,$(PATH)),$(if $(wildcard $(path)/$(moc).exe),$(path))) - qtpath := $(strip $(qtpath)) - qtpath := $(subst \,/,$(qtpath)) - qtpath := $(patsubst %/bin,%,$(qtpath)) - endif - - qtinc := -I$(qtpath)/include - qtinc += $(foreach lib,$(qtlibs),-I$(qtpath)/include/$(lib)) - - qtlib := -L$(qtpath)/lib - qtlib += -L$(qtpath)/plugins/imageformats - - qtlib += $(foreach lib,$(qtlibs),-l$(lib)4) - qtlib += -lmingw32 -lqtmain -lcomdlg32 -loleaut32 -limm32 -lwinmm - qtlib += -lwinspool -lmsimg32 -lole32 -ladvapi32 -lws2_32 -luuid -lgdi32 - qtlib += $(foreach lib,$(qtlibs),-l$(lib)4) - - # optional image-file support: - # qtlib += -lqjpeg -lqmng -endif diff --git a/snesfilter/nall/qt/check-action.moc.hpp b/snesfilter/nall/qt/check-action.moc.hpp deleted file mode 100644 index db378fe9..00000000 --- a/snesfilter/nall/qt/check-action.moc.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef NALL_QT_CHECKACTION_HPP -#define NALL_QT_CHECKACTION_HPP - -namespace nall { - -class CheckAction : public QAction { - Q_OBJECT - -public: - bool isChecked() const; - void setChecked(bool); - void toggleChecked(); - CheckAction(const QString&, QObject*); - -protected slots: - -protected: - bool checked; -}; - -inline bool CheckAction::isChecked() const { - return checked; -} - -inline void CheckAction::setChecked(bool checked_) { - checked = checked_; - if(checked) setIcon(QIcon(":/16x16/item-check-on.png")); - else setIcon(QIcon(":/16x16/item-check-off.png")); -} - -inline void CheckAction::toggleChecked() { - setChecked(!isChecked()); -} - -inline CheckAction::CheckAction(const QString &text, QObject *parent) : QAction(text, parent) { - setChecked(false); -} - -} - -#endif diff --git a/snesfilter/nall/qt/concept.hpp b/snesfilter/nall/qt/concept.hpp deleted file mode 100644 index 51cacef4..00000000 --- a/snesfilter/nall/qt/concept.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef NALL_QT_CONCEPT_HPP -#define NALL_QT_CONCEPT_HPP - -#include - -namespace nall { - template struct has_count> { enum { value = true }; }; -} - -#endif diff --git a/snesfilter/nall/qt/file-dialog.moc.hpp b/snesfilter/nall/qt/file-dialog.moc.hpp deleted file mode 100644 index bcccfaf5..00000000 --- a/snesfilter/nall/qt/file-dialog.moc.hpp +++ /dev/null @@ -1,392 +0,0 @@ -#ifndef NALL_QT_FILEDIALOG_HPP -#define NALL_QT_FILEDIALOG_HPP - -#include -#include -#include - -namespace nall { - -class FileDialog; - -class NewFolderDialog : public Window { - Q_OBJECT - -public: - void show(); - NewFolderDialog(FileDialog*); - -protected slots: - void createFolderAction(); - -protected: - FileDialog *parent; - QVBoxLayout *layout; - QLineEdit *folderNameEdit; - QHBoxLayout *controlLayout; - QPushButton *okButton; - QPushButton *cancelButton; -}; - -class FileView : public QListView { - Q_OBJECT - -protected: - void keyPressEvent(QKeyEvent*); - -signals: - void changed(const QModelIndex&); - void browseUp(); - -protected slots: - void currentChanged(const QModelIndex&, const QModelIndex&); -}; - -class FileDialog : public Window { - Q_OBJECT - -public: - void showLoad(); - void showSave(); - void showFolder(); - - void setPath(string path); - void setNameFilters(const string &filters); - FileDialog(); - -signals: - void changed(const string&); - void activated(const string&); - void accepted(const string&); - void rejected(); - -protected slots: - void fileViewChange(const QModelIndex&); - void fileViewActivate(const QModelIndex&); - void pathBoxChanged(); - void filterBoxChanged(); - void createNewFolder(); - void browseUp(); - void acceptAction(); - void rejectAction(); - -protected: - NewFolderDialog *newFolderDialog; - QVBoxLayout *layout; - QHBoxLayout *navigationLayout; - QComboBox *pathBox; - QPushButton *newFolderButton; - QPushButton *upFolderButton; - QHBoxLayout *browseLayout; - QFileSystemModel *fileSystemModel; - FileView *fileView; - QGroupBox *previewFrame; - QLineEdit *fileNameEdit; - QHBoxLayout *controlLayout; - QComboBox *filterBox; - QPushButton *optionsButton; - QPushButton *acceptButton; - QPushButton *rejectButton; - bool lock; - void createFolderAction(const string &name); - void closeEvent(QCloseEvent*); - - friend class NewFolderDialog; -}; - -inline void NewFolderDialog::show() { - folderNameEdit->setText(""); - Window::show(); - folderNameEdit->setFocus(); -} - -inline void NewFolderDialog::createFolderAction() { - string name = folderNameEdit->text().toUtf8().constData(); - if(name == "") { - folderNameEdit->setFocus(); - } else { - parent->createFolderAction(name); - close(); - } -} - -inline NewFolderDialog::NewFolderDialog(FileDialog *fileDialog) : parent(fileDialog) { - setMinimumWidth(240); - setWindowTitle("Create New Folder"); - - layout = new QVBoxLayout; - layout->setAlignment(Qt::AlignTop); - layout->setMargin(5); - layout->setSpacing(5); - setLayout(layout); - - folderNameEdit = new QLineEdit; - layout->addWidget(folderNameEdit); - - controlLayout = new QHBoxLayout; - controlLayout->setAlignment(Qt::AlignRight); - layout->addLayout(controlLayout); - - okButton = new QPushButton("Ok"); - controlLayout->addWidget(okButton); - - cancelButton = new QPushButton("Cancel"); - controlLayout->addWidget(cancelButton); - - connect(folderNameEdit, SIGNAL(returnPressed()), this, SLOT(createFolderAction())); - connect(okButton, SIGNAL(released()), this, SLOT(createFolderAction())); - connect(cancelButton, SIGNAL(released()), this, SLOT(close())); -} - -inline void FileView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous) { - QAbstractItemView::currentChanged(current, previous); - emit changed(current); -} - -inline void FileView::keyPressEvent(QKeyEvent *event) { - //enhance consistency: force OS X to act like Windows and Linux; enter = activate item - if(event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) { - emit activated(currentIndex()); - return; - } - - //simulate popular file manager behavior; backspace = go up one directory - if(event->key() == Qt::Key_Backspace) { - emit browseUp(); - return; - } - - //fallback: unrecognized keypresses get handled by the widget itself - QListView::keyPressEvent(event); -} - -inline void FileDialog::showLoad() { - acceptButton->setText("Load"); - fileNameEdit->hide(); - filterBox->show(); - show(); -} - -inline void FileDialog::showSave() { - acceptButton->setText("Save"); - fileNameEdit->show(); - filterBox->show(); - show(); -} - -inline void FileDialog::showFolder() { - acceptButton->setText("Choose"); - fileNameEdit->hide(); - filterBox->hide(); - setNameFilters("Folders ()"); - show(); -} - -inline void FileDialog::fileViewChange(const QModelIndex &index) { - string path = fileSystemModel->filePath(index).toUtf8().constData(); - if(path == fileSystemModel->rootPath().toUtf8().constData()) path = ""; - fileNameEdit->setText(notdir(path)); - emit changed(path); -} - -inline void FileDialog::fileViewActivate(const QModelIndex &index) { - string path = fileSystemModel->filePath(index).toUtf8().constData(); - if(fileSystemModel->isDir(index)) { - emit activated(path); - setPath(path); - } else { - emit activated(path); - close(); - } -} - -inline void FileDialog::pathBoxChanged() { - if(lock) return; - setPath(pathBox->currentText().toUtf8().constData()); -} - -inline void FileDialog::filterBoxChanged() { - if(lock) return; - string filters = filterBox->currentText().toUtf8().constData(); - if(filters.length() == 0) { - fileSystemModel->setNameFilters(QStringList() << "*"); - } else { - filters = substr(filters, strpos(filters, "(")); - ltrim(filters, "("); - rtrim(filters, ")"); - lstring part; - part.split(" ", filters); - QStringList list; - for(unsigned i = 0; i < part.size(); i++) list << part[i]; - fileSystemModel->setNameFilters(list); - } -} - -inline void FileDialog::createNewFolder() { - newFolderDialog->show(); -} - -inline void FileDialog::browseUp() { - if(pathBox->count() > 1) pathBox->setCurrentIndex(1); -} - -inline void FileDialog::setPath(string path) { - lock = true; - newFolderDialog->close(); - - if(QDir(path).exists()) { - newFolderButton->setEnabled(true); - } else { - newFolderButton->setEnabled(false); - path = ""; - } - - fileSystemModel->setRootPath(path); - fileView->setRootIndex(fileSystemModel->index(path)); - fileView->setCurrentIndex(fileView->rootIndex()); - fileView->setFocus(); - - pathBox->clear(); - if(path.length() > 0) { - QDir directory(path); - while(true) { - pathBox->addItem(directory.absolutePath()); - if(directory.isRoot()) break; - directory.cdUp(); - } - } - pathBox->addItem(""); - fileNameEdit->setText(""); - - lock = false; -} - -inline void FileDialog::setNameFilters(const string &filters) { - lock = true; - - lstring list; - list.split("\n", filters); - - filterBox->clear(); - for(unsigned i = 0; i < list.size(); i++) { - filterBox->addItem(list[i]); - } - - lock = false; - filterBoxChanged(); -} - -inline void FileDialog::acceptAction() { - string path = fileSystemModel->rootPath().toUtf8().constData(); - path << "/" << notdir(fileNameEdit->text().toUtf8().constData()); - rtrim(path, "/"); - if(QDir(path).exists()) { - emit accepted(path); - setPath(path); - } else { - emit accepted(path); - close(); - } -} - -inline void FileDialog::rejectAction() { - emit rejected(); - close(); -} - -inline void FileDialog::createFolderAction(const string &name) { - string path = fileSystemModel->rootPath().toUtf8().constData(); - path << "/" << notdir(name); - mkdir(path, 0755); -} - -inline void FileDialog::closeEvent(QCloseEvent *event) { - newFolderDialog->close(); - Window::closeEvent(event); -} - -inline FileDialog::FileDialog() { - newFolderDialog = new NewFolderDialog(this); - resize(640, 360); - - layout = new QVBoxLayout; - layout->setMargin(5); - layout->setSpacing(5); - setLayout(layout); - - navigationLayout = new QHBoxLayout; - layout->addLayout(navigationLayout); - - pathBox = new QComboBox; - pathBox->setEditable(true); - pathBox->setMinimumContentsLength(16); - pathBox->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); - pathBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - navigationLayout->addWidget(pathBox); - - newFolderButton = new QPushButton; - newFolderButton->setIconSize(QSize(16, 16)); - newFolderButton->setIcon(QIcon(":/16x16/folder-new.png")); - navigationLayout->addWidget(newFolderButton); - - upFolderButton = new QPushButton; - upFolderButton->setIconSize(QSize(16, 16)); - upFolderButton->setIcon(QIcon(":/16x16/go-up.png")); - navigationLayout->addWidget(upFolderButton); - - browseLayout = new QHBoxLayout; - layout->addLayout(browseLayout); - - fileSystemModel = new QFileSystemModel; - fileSystemModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); - fileSystemModel->setNameFilterDisables(false); - - fileView = new FileView; - fileView->setMinimumWidth(320); - fileView->setModel(fileSystemModel); - fileView->setIconSize(QSize(16, 16)); - browseLayout->addWidget(fileView); - - previewFrame = new QGroupBox; - previewFrame->hide(); - browseLayout->addWidget(previewFrame); - - fileNameEdit = new QLineEdit; - layout->addWidget(fileNameEdit); - - controlLayout = new QHBoxLayout; - controlLayout->setAlignment(Qt::AlignRight); - layout->addLayout(controlLayout); - - filterBox = new QComboBox; - filterBox->setMinimumContentsLength(16); - filterBox->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); - filterBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - controlLayout->addWidget(filterBox); - - optionsButton = new QPushButton("Options"); - optionsButton->hide(); - controlLayout->addWidget(optionsButton); - - acceptButton = new QPushButton("Ok"); - controlLayout->addWidget(acceptButton); - - rejectButton = new QPushButton("Cancel"); - controlLayout->addWidget(rejectButton); - - lock = false; - connect(pathBox, SIGNAL(currentIndexChanged(int)), this, SLOT(pathBoxChanged())); - connect(newFolderButton, SIGNAL(released()), this, SLOT(createNewFolder())); - connect(upFolderButton, SIGNAL(released()), this, SLOT(browseUp())); - connect(fileView, SIGNAL(changed(const QModelIndex&)), this, SLOT(fileViewChange(const QModelIndex&))); - connect(fileView, SIGNAL(activated(const QModelIndex&)), this, SLOT(fileViewActivate(const QModelIndex&))); - connect(fileView, SIGNAL(browseUp()), this, SLOT(browseUp())); - connect(fileNameEdit, SIGNAL(returnPressed()), this, SLOT(acceptAction())); - connect(filterBox, SIGNAL(currentIndexChanged(int)), this, SLOT(filterBoxChanged())); - connect(acceptButton, SIGNAL(released()), this, SLOT(acceptAction())); - connect(rejectButton, SIGNAL(released()), this, SLOT(rejectAction())); -} - -} - -#endif diff --git a/snesfilter/nall/qt/hex-editor.moc.hpp b/snesfilter/nall/qt/hex-editor.moc.hpp deleted file mode 100644 index d59f4be9..00000000 --- a/snesfilter/nall/qt/hex-editor.moc.hpp +++ /dev/null @@ -1,173 +0,0 @@ -#ifndef NALL_QT_HEXEDITOR_HPP -#define NALL_QT_HEXEDITOR_HPP - -#include -#include -#include - -namespace nall { - -class HexEditor : public QTextEdit { - Q_OBJECT - -public: - function reader; - function writer; - - void setColumns(unsigned columns); - void setRows(unsigned rows); - void setOffset(unsigned offset); - void setSize(unsigned size); - unsigned lineWidth() const; - void refresh(); - - HexEditor(); - -protected slots: - void scrolled(); - -protected: - QHBoxLayout *layout; - QScrollBar *scrollBar; - unsigned editorColumns; - unsigned editorRows; - unsigned editorOffset; - unsigned editorSize; - bool lock; - - void keyPressEvent(QKeyEvent*); -}; - -inline void HexEditor::keyPressEvent(QKeyEvent *event) { - QTextCursor cursor = textCursor(); - unsigned x = cursor.position() % lineWidth(); - unsigned y = cursor.position() / lineWidth(); - - int hexCode = -1; - switch(event->key()) { - case Qt::Key_0: hexCode = 0; break; - case Qt::Key_1: hexCode = 1; break; - case Qt::Key_2: hexCode = 2; break; - case Qt::Key_3: hexCode = 3; break; - case Qt::Key_4: hexCode = 4; break; - case Qt::Key_5: hexCode = 5; break; - case Qt::Key_6: hexCode = 6; break; - case Qt::Key_7: hexCode = 7; break; - case Qt::Key_8: hexCode = 8; break; - case Qt::Key_9: hexCode = 9; break; - case Qt::Key_A: hexCode = 10; break; - case Qt::Key_B: hexCode = 11; break; - case Qt::Key_C: hexCode = 12; break; - case Qt::Key_D: hexCode = 13; break; - case Qt::Key_E: hexCode = 14; break; - case Qt::Key_F: hexCode = 15; break; - } - - if(cursor.hasSelection() == false && hexCode != -1) { - bool cursorOffsetValid = (x >= 11 && ((x - 11) % 3) != 2); - if(cursorOffsetValid) { - bool nibble = (x - 11) % 3; //0 = top nibble, 1 = bottom nibble - unsigned cursorOffset = y * editorColumns + ((x - 11) / 3); - unsigned effectiveOffset = editorOffset + cursorOffset; - if(effectiveOffset >= editorSize) effectiveOffset %= editorSize; - - uint8_t data = reader ? reader(effectiveOffset) : 0x00; - data &= (nibble == 0 ? 0x0f : 0xf0); - data |= (nibble == 0 ? (hexCode << 4) : (hexCode << 0)); - if(writer) writer(effectiveOffset, data); - refresh(); - - cursor.setPosition(y * lineWidth() + x + 1); //advance cursor - setTextCursor(cursor); - } - } else { - //allow navigation keys to move cursor, but block text input - setTextInteractionFlags(Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse); - QTextEdit::keyPressEvent(event); - setTextInteractionFlags(Qt::TextEditorInteraction); - } -} - -inline void HexEditor::setColumns(unsigned columns) { - editorColumns = columns; -} - -inline void HexEditor::setRows(unsigned rows) { - editorRows = rows; - scrollBar->setPageStep(editorRows); -} - -inline void HexEditor::setOffset(unsigned offset) { - lock = true; - editorOffset = offset; - scrollBar->setSliderPosition(editorOffset / editorColumns); - lock = false; -} - -inline void HexEditor::setSize(unsigned size) { - editorSize = size; - bool indivisible = (editorSize % editorColumns) != 0; //add one for incomplete row - scrollBar->setRange(0, editorSize / editorColumns + indivisible - editorRows); -} - -inline unsigned HexEditor::lineWidth() const { - return 11 + 3 * editorColumns; -} - -inline void HexEditor::refresh() { - string output; - char temp[256]; - unsigned offset = editorOffset; - - for(unsigned y = 0; y < editorRows; y++) { - if(offset >= editorSize) break; - sprintf(temp, "%.4x:%.4x", (offset >> 16) & 0xffff, (offset >> 0) & 0xffff); - output << "" << temp << "  "; - - for(unsigned x = 0; x < editorColumns; x++) { - if(offset >= editorSize) break; - sprintf(temp, "%.2x", reader ? reader(offset) : 0x00); - offset++; - output << "" << temp << ""; - if(x != (editorColumns - 1)) output << " "; - } - - if(y != (editorRows - 1)) output << "
"; - } - - setHtml(output); -} - -inline void HexEditor::scrolled() { - if(lock) return; - unsigned offset = scrollBar->sliderPosition(); - editorOffset = offset * editorColumns; - refresh(); -} - -inline HexEditor::HexEditor() { - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - - layout = new QHBoxLayout; - layout->setAlignment(Qt::AlignRight); - layout->setMargin(0); - layout->setSpacing(0); - setLayout(layout); - - scrollBar = new QScrollBar(Qt::Vertical); - scrollBar->setSingleStep(1); - layout->addWidget(scrollBar); - - lock = false; - connect(scrollBar, SIGNAL(actionTriggered(int)), this, SLOT(scrolled())); - - setColumns(16); - setRows(16); - setSize(0); - setOffset(0); -} - -} - -#endif diff --git a/snesfilter/nall/qt/radio-action.moc.hpp b/snesfilter/nall/qt/radio-action.moc.hpp deleted file mode 100644 index a2bbca48..00000000 --- a/snesfilter/nall/qt/radio-action.moc.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef NALL_QT_RADIOACTION_HPP -#define NALL_QT_RADIOACTION_HPP - -namespace nall { - -class RadioAction : public QAction { - Q_OBJECT - -public: - bool isChecked() const; - void setChecked(bool); - void toggleChecked(); - RadioAction(const QString&, QObject*); - -protected slots: - -protected: - bool checked; -}; - -inline bool RadioAction::isChecked() const { - return checked; -} - -inline void RadioAction::setChecked(bool checked_) { - checked = checked_; - if(checked) setIcon(QIcon(":/16x16/item-radio-on.png")); - else setIcon(QIcon(":/16x16/item-radio-off.png")); -} - -inline void RadioAction::toggleChecked() { - setChecked(!isChecked()); -} - -inline RadioAction::RadioAction(const QString &text, QObject *parent) : QAction(text, parent) { - setChecked(false); -} - -} - -#endif diff --git a/snesfilter/nall/qt/window.moc.hpp b/snesfilter/nall/qt/window.moc.hpp deleted file mode 100644 index 0d3bf390..00000000 --- a/snesfilter/nall/qt/window.moc.hpp +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef NALL_QT_WINDOW_HPP -#define NALL_QT_WINDOW_HPP - -#include -#include - -namespace nall { - -class Window : public QWidget { - Q_OBJECT - -public: - void setGeometryString(string *geometryString); - void setCloseOnEscape(bool); - void show(); - void hide(); - void shrink(); - - Window(); - -protected slots: - -protected: - string *geometryString; - bool closeOnEscape; - void keyReleaseEvent(QKeyEvent *event); - void closeEvent(QCloseEvent *event); -}; - -inline void Window::setGeometryString(string *geometryString_) { - geometryString = geometryString_; - if(geometryString && isVisible() == false) { - uint8_t *data; - unsigned length; - base64::decode(data, length, *geometryString); - QByteArray array((const char*)data, length); - delete[] data; - restoreGeometry(array); - } -} - -inline void Window::setCloseOnEscape(bool value) { - closeOnEscape = value; -} - -inline void Window::show() { - if(geometryString && isVisible() == false) { - uint8_t *data; - unsigned length; - base64::decode(data, length, *geometryString); - QByteArray array((const char*)data, length); - delete[] data; - restoreGeometry(array); - } - QWidget::show(); - QApplication::processEvents(); - activateWindow(); - raise(); -} - -inline void Window::hide() { - if(geometryString && isVisible() == true) { - char *data; - QByteArray geometry = saveGeometry(); - base64::encode(data, (const uint8_t*)geometry.data(), geometry.length()); - *geometryString = data; - delete[] data; - } - QWidget::hide(); -} - -inline void Window::shrink() { - if(isFullScreen()) return; - - for(unsigned i = 0; i < 2; i++) { - resize(0, 0); - usleep(2000); - QApplication::processEvents(); - } -} - -inline void Window::keyReleaseEvent(QKeyEvent *event) { - if(closeOnEscape && (event->key() == Qt::Key_Escape)) close(); - QWidget::keyReleaseEvent(event); -} - -inline void Window::closeEvent(QCloseEvent *event) { - if(geometryString) { - char *data; - QByteArray geometry = saveGeometry(); - base64::encode(data, (const uint8_t*)geometry.data(), geometry.length()); - *geometryString = data; - delete[] data; - } - QWidget::closeEvent(event); -} - -inline Window::Window() { - geometryString = 0; - closeOnEscape = true; -} - -} - -#endif diff --git a/snesfilter/nall/serial.hpp b/snesfilter/nall/serial.hpp deleted file mode 100644 index 6f5cf6d6..00000000 --- a/snesfilter/nall/serial.hpp +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef NALL_SERIAL_HPP -#define NALL_SERIAL_HPP - -#include -#include -#include -#include - -#include - -namespace nall { - class serial { - public: - //-1 on error, otherwise return bytes read - int read(uint8_t *data, unsigned length) { - if(port_open == false) return -1; - return ::read(port, (void*)data, length); - } - - //-1 on error, otherwise return bytes written - int write(const uint8_t *data, unsigned length) { - if(port_open == false) return -1; - return ::write(port, (void*)data, length); - } - - bool open(const char *portname, unsigned rate) { - close(); - - port = ::open(portname, O_RDWR | O_NOCTTY | O_NDELAY | O_NONBLOCK); - if(port == -1) return false; - - if(ioctl(port, TIOCEXCL) == -1) { close(); return false; } - if(fcntl(port, F_SETFL, 0) == -1) { close(); return false; } - if(tcgetattr(port, &original_attr) == -1) { close(); return false; } - - termios attr = original_attr; - cfmakeraw(&attr); - cfsetspeed(&attr, rate); - - attr.c_lflag &=~ (ECHO | ECHONL | ISIG | ICANON | IEXTEN); - attr.c_iflag &=~ (BRKINT | PARMRK | INPCK | ISTRIP | INLCR | IGNCR | ICRNL | IXON | IXOFF | IXANY); - attr.c_iflag |= (IGNBRK | IGNPAR); - attr.c_oflag &=~ (OPOST); - attr.c_cflag &=~ (CSIZE | CSTOPB | PARENB); - attr.c_cflag |= (CS8 | CREAD | CLOCAL); - attr.c_cc[VTIME] = attr.c_cc[VMIN] = 0; - - if(tcsetattr(port, TCSANOW, &attr) == -1) { close(); return false; } - return port_open = true; - } - - void close() { - if(port != -1) { - tcdrain(port); - if(port_open == true) { - tcsetattr(port, TCSANOW, &original_attr); - port_open = false; - } - ::close(port); - port = -1; - } - } - - serial() { - port = -1; - port_open = false; - } - - ~serial() { - close(); - } - - private: - int port; - bool port_open; - termios original_attr; - }; -} - -#endif diff --git a/snesfilter/nall/serializer.hpp b/snesfilter/nall/serializer.hpp deleted file mode 100644 index 49b0964e..00000000 --- a/snesfilter/nall/serializer.hpp +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef NALL_SERIALIZER_HPP -#define NALL_SERIALIZER_HPP - -#include -#include -#include - -namespace nall { - //serializer: a class designed to save and restore the state of classes. - // - //benefits: - //- data() will be portable in size (it is not necessary to specify type sizes.) - //- data() will be portable in endianness (always stored internally as little-endian.) - //- one serialize function can both save and restore class states. - // - //caveats: - //- only plain-old-data can be stored. complex classes must provide serialize(serializer&); - //- floating-point usage is not portable across platforms - class serializer { - public: - enum mode_t { Load, Save, Size }; - - mode_t mode() const { - return imode; - } - - const uint8_t* data() const { - return idata; - } - - unsigned size() const { - return isize; - } - - unsigned capacity() const { - return icapacity; - } - - template void floatingpoint(T &value) { - enum { size = sizeof(T) }; - //this is rather dangerous, and not cross-platform safe; - //but there is no standardized way to export FP-values - uint8_t *p = (uint8_t*)&value; - if(imode == Save) { - for(unsigned n = 0; n < size; n++) idata[isize++] = p[n]; - } else if(imode == Load) { - for(unsigned n = 0; n < size; n++) p[n] = idata[isize++]; - } else { - isize += size; - } - } - - template void integer(T &value) { - enum { size = is_bool::value ? 1 : sizeof(T) }; - if(imode == Save) { - for(unsigned n = 0; n < size; n++) idata[isize++] = value >> (n << 3); - } else if(imode == Load) { - value = 0; - for(unsigned n = 0; n < size; n++) value |= idata[isize++] << (n << 3); - } else if(imode == Size) { - isize += size; - } - } - - template void array(T &array) { - enum { size = sizeof(T) / sizeof(typename remove_extent::type) }; - for(unsigned n = 0; n < size; n++) integer(array[n]); - } - - template void array(T array, unsigned size) { - for(unsigned n = 0; n < size; n++) integer(array[n]); - } - - //copy - serializer& operator=(const serializer &s) { - if(idata) delete[] idata; - - imode = s.imode; - idata = new uint8_t[s.icapacity]; - isize = s.isize; - icapacity = s.icapacity; - - memcpy(idata, s.idata, s.icapacity); - return *this; - } - - serializer(const serializer &s) : idata(0) { - operator=(s); - } - - //move - serializer& operator=(serializer &&s) { - if(idata) delete[] idata; - - imode = s.imode; - idata = s.idata; - isize = s.isize; - icapacity = s.icapacity; - - s.idata = 0; - return *this; - } - - serializer(serializer &&s) { - operator=(move(s)); - } - - //construction - serializer() { - imode = Size; - idata = 0; - isize = 0; - } - - serializer(unsigned capacity) { - imode = Save; - idata = new uint8_t[capacity](); - isize = 0; - icapacity = capacity; - } - - serializer(const uint8_t *data, unsigned capacity) { - imode = Load; - idata = new uint8_t[capacity]; - isize = 0; - icapacity = capacity; - memcpy(idata, data, capacity); - } - - ~serializer() { - if(idata) delete[] idata; - } - - private: - mode_t imode; - uint8_t *idata; - unsigned isize; - unsigned icapacity; - }; - -}; - -#endif diff --git a/snesfilter/nall/sha256.hpp b/snesfilter/nall/sha256.hpp deleted file mode 100644 index 7f41f04e..00000000 --- a/snesfilter/nall/sha256.hpp +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef NALL_SHA256_HPP -#define NALL_SHA256_HPP - -//author: vladitx - -namespace nall { - #define PTR(t, a) ((t*)(a)) - - #define SWAP32(x) ((uint32_t)( \ - (((uint32_t)(x) & 0x000000ff) << 24) | \ - (((uint32_t)(x) & 0x0000ff00) << 8) | \ - (((uint32_t)(x) & 0x00ff0000) >> 8) | \ - (((uint32_t)(x) & 0xff000000) >> 24) \ - )) - - #define ST32(a, d) *PTR(uint32_t, a) = (d) - #define ST32BE(a, d) ST32(a, SWAP32(d)) - - #define LD32(a) *PTR(uint32_t, a) - #define LD32BE(a) SWAP32(LD32(a)) - - #define LSL32(x, n) ((uint32_t)(x) << (n)) - #define LSR32(x, n) ((uint32_t)(x) >> (n)) - #define ROR32(x, n) (LSR32(x, n) | LSL32(x, 32 - (n))) - - //first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19 - static const uint32_t T_H[8] = { - 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, - }; - - //first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311 - static const uint32_t T_K[64] = { - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, - }; - - struct sha256_ctx { - uint8_t in[64]; - unsigned inlen; - - uint32_t w[64]; - uint32_t h[8]; - uint64_t len; - }; - - void sha256_init(sha256_ctx *p) { - memset(p, 0, sizeof(sha256_ctx)); - memcpy(p->h, T_H, sizeof(T_H)); - } - - static void sha256_block(sha256_ctx *p) { - unsigned i; - uint32_t s0, s1; - uint32_t a, b, c, d, e, f, g, h; - uint32_t t1, t2, maj, ch; - - for(i = 0; i < 16; i++) p->w[i] = LD32BE(p->in + i * 4); - - for(i = 16; i < 64; i++) { - s0 = ROR32(p->w[i - 15], 7) ^ ROR32(p->w[i - 15], 18) ^ LSR32(p->w[i - 15], 3); - s1 = ROR32(p->w[i - 2], 17) ^ ROR32(p->w[i - 2], 19) ^ LSR32(p->w[i - 2], 10); - p->w[i] = p->w[i - 16] + s0 + p->w[i - 7] + s1; - } - - a = p->h[0]; b = p->h[1]; c = p->h[2]; d = p->h[3]; - e = p->h[4]; f = p->h[5]; g = p->h[6]; h = p->h[7]; - - for(i = 0; i < 64; i++) { - s0 = ROR32(a, 2) ^ ROR32(a, 13) ^ ROR32(a, 22); - maj = (a & b) ^ (a & c) ^ (b & c); - t2 = s0 + maj; - s1 = ROR32(e, 6) ^ ROR32(e, 11) ^ ROR32(e, 25); - ch = (e & f) ^ (~e & g); - t1 = h + s1 + ch + T_K[i] + p->w[i]; - - h = g; g = f; f = e; e = d + t1; - d = c; c = b; b = a; a = t1 + t2; - } - - p->h[0] += a; p->h[1] += b; p->h[2] += c; p->h[3] += d; - p->h[4] += e; p->h[5] += f; p->h[6] += g; p->h[7] += h; - - //next block - p->inlen = 0; - } - - void sha256_chunk(sha256_ctx *p, const uint8_t *s, unsigned len) { - unsigned l; - p->len += len; - - while(len) { - l = 64 - p->inlen; - l = (len < l) ? len : l; - - memcpy(p->in + p->inlen, s, l); - s += l; - p->inlen += l; - len -= l; - - if(p->inlen == 64) sha256_block(p); - } - } - - void sha256_final(sha256_ctx *p) { - uint64_t len; - p->in[p->inlen++] = 0x80; - - if(p->inlen > 56) { - memset(p->in + p->inlen, 0, 64 - p->inlen); - sha256_block(p); - } - - memset(p->in + p->inlen, 0, 56 - p->inlen); - - len = p->len << 3; - ST32BE(p->in + 56, len >> 32); - ST32BE(p->in + 60, len); - sha256_block(p); - } - - void sha256_hash(sha256_ctx *p, uint8_t *s) { - uint32_t *t = (uint32_t*)s; - for(unsigned i = 0; i < 8; i++) ST32BE(t++, p->h[i]); - } - - #undef PTR - #undef SWAP32 - #undef ST32 - #undef ST32BE - #undef LD32 - #undef LD32BE - #undef LSL32 - #undef LSR32 - #undef ROR32 -} - -#endif diff --git a/snesfilter/nall/sort.hpp b/snesfilter/nall/sort.hpp deleted file mode 100644 index 23c317a5..00000000 --- a/snesfilter/nall/sort.hpp +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef NALL_SORT_HPP -#define NALL_SORT_HPP - -#include - -//class: merge sort -//average: O(n log n) -//worst: O(n log n) -//memory: O(n) -//stack: O(log n) -//stable?: yes - -//notes: -//there are two primary reasons for choosing merge sort -//over the (usually) faster quick sort*: -//1: it is a stable sort. -//2: it lacks O(n^2) worst-case overhead. -//(* which is also O(n log n) in the average case.) - -namespace nall { - template - void sort(T list[], unsigned length) { - if(length <= 1) return; //nothing to sort - - //use insertion sort to quickly sort smaller blocks - if(length < 64) { - for(unsigned i = 0; i < length; i++) { - unsigned min = i; - for(unsigned j = i + 1; j < length; j++) { - if(list[j] < list[min]) min = j; - } - if(min != i) swap(list[i], list[min]); - } - return; - } - - //split list in half and recursively sort both - unsigned middle = length / 2; - sort(list, middle); - sort(list + middle, length - middle); - - //left and right are sorted here; perform merge sort - T *buffer = new T[length]; - unsigned offset = 0; - unsigned left = 0; - unsigned right = middle; - while(left < middle && right < length) { - if(list[left] < list[right]) { - buffer[offset++] = list[left++]; - } else { - buffer[offset++] = list[right++]; - } - } - while(left < middle) buffer[offset++] = list[left++]; - while(right < length) buffer[offset++] = list[right++]; - - for(unsigned i = 0; i < length; i++) list[i] = buffer[i]; - delete[] buffer; - } -} - -#endif diff --git a/snesfilter/nall/static.hpp b/snesfilter/nall/static.hpp deleted file mode 100644 index 4acb9fd0..00000000 --- a/snesfilter/nall/static.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef NALL_STATIC_HPP -#define NALL_STATIC_HPP - -namespace nall { - template struct static_if { typedef T type; }; - template struct static_if { typedef F type; }; - template struct mp_static_if { typedef typename static_if::type type; }; - - template struct static_and { enum { value = false }; }; - template<> struct static_and { enum { value = true }; }; - template struct mp_static_and { enum { value = static_and::value }; }; - - template struct static_or { enum { value = false }; }; - template<> struct static_or { enum { value = true }; }; - template<> struct static_or { enum { value = true }; }; - template<> struct static_or { enum { value = true }; }; - template struct mp_static_or { enum { value = static_or::value }; }; -} - -#endif diff --git a/snesfilter/nall/stdint.hpp b/snesfilter/nall/stdint.hpp deleted file mode 100644 index d8b6c788..00000000 --- a/snesfilter/nall/stdint.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef NALL_STDINT_HPP -#define NALL_STDINT_HPP - -#include - -#if defined(_MSC_VER) - typedef signed char int8_t; - typedef signed short int16_t; - typedef signed int int32_t; - typedef signed long long int64_t; - typedef int64_t intmax_t; - #if defined(_WIN64) - typedef int64_t intptr_t; - #else - typedef int32_t intptr_t; - #endif - - typedef unsigned char uint8_t; - typedef unsigned short uint16_t; - typedef unsigned int uint32_t; - typedef unsigned long long uint64_t; - typedef uint64_t uintmax_t; - #if defined(_WIN64) - typedef uint64_t uintptr_t; - #else - typedef uint32_t uintptr_t; - #endif -#else - #include -#endif - -namespace nall { - static_assert(sizeof(int8_t) == 1, "int8_t is not of the correct size" ); - static_assert(sizeof(int16_t) == 2, "int16_t is not of the correct size"); - static_assert(sizeof(int32_t) == 4, "int32_t is not of the correct size"); - static_assert(sizeof(int64_t) == 8, "int64_t is not of the correct size"); - - static_assert(sizeof(uint8_t) == 1, "int8_t is not of the correct size" ); - static_assert(sizeof(uint16_t) == 2, "int16_t is not of the correct size"); - static_assert(sizeof(uint32_t) == 4, "int32_t is not of the correct size"); - static_assert(sizeof(uint64_t) == 8, "int64_t is not of the correct size"); -} - -#endif diff --git a/snesfilter/nall/string.hpp b/snesfilter/nall/string.hpp deleted file mode 100644 index 65a4a4b8..00000000 --- a/snesfilter/nall/string.hpp +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef NALL_STRING_HPP -#define NALL_STRING_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace nall { - template<> struct has_length { enum { value = true }; }; - template<> struct has_size { enum { value = true }; }; -} - -#endif diff --git a/snesfilter/nall/string/base.hpp b/snesfilter/nall/string/base.hpp deleted file mode 100644 index b9230fe4..00000000 --- a/snesfilter/nall/string/base.hpp +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef NALL_STRING_BASE_HPP -#define NALL_STRING_BASE_HPP - -#include -#include -#include -#include -#include -#include -#include -#include - -inline char chrlower(char c); -inline char chrupper(char c); -inline int stricmp(const char *dest, const char *src); -inline int strpos (const char *str, const char *key); -inline int qstrpos(const char *str, const char *key); -inline bool strbegin (const char *str, const char *key); -inline bool stribegin(const char *str, const char *key); -inline bool strend (const char *str, const char *key); -inline bool striend(const char *str, const char *key); -inline char* strlower(char *str); -inline char* strupper(char *str); -inline char* strtr(char *dest, const char *before, const char *after); -inline uintmax_t strhex (const char *str); -inline intmax_t strsigned (const char *str); -inline uintmax_t strunsigned(const char *str); -inline uintmax_t strbin (const char *str); -inline double strdouble (const char *str); -inline bool match(const char *pattern, const char *str); -inline bool strint (const char *str, int &result); -inline bool strmath(const char *str, int &result); -inline size_t strlcpy(char *dest, const char *src, size_t length); -inline size_t strlcat(char *dest, const char *src, size_t length); -inline char* ltrim(char *str, const char *key = " "); -inline char* rtrim(char *str, const char *key = " "); -inline char* trim (char *str, const char *key = " "); -inline char* ltrim_once(char *str, const char *key = " "); -inline char* rtrim_once(char *str, const char *key = " "); -inline char* trim_once (char *str, const char *key = " "); - -namespace nall { - class string; - template inline string to_string(T); - - class string { - public: - inline void reserve(size_t); - inline unsigned length() const; - - inline string& assign(const char*); - inline string& append(const char*); - template inline string& operator= (T value); - template inline string& operator<<(T value); - - inline operator const char*() const; - inline char* operator()(); - inline char& operator[](int); - - inline bool operator==(const char*) const; - inline bool operator!=(const char*) const; - inline bool operator< (const char*) const; - inline bool operator<=(const char*) const; - inline bool operator> (const char*) const; - inline bool operator>=(const char*) const; - - inline string(); - inline string(const char*); - inline string(const string&); - inline string(string&&); - inline string& operator=(const string&); - inline string& operator=(string&&); - inline ~string(); - - inline bool readfile(const char*); - inline string& replace (const char*, const char*); - inline string& qreplace(const char*, const char*); - - protected: - char *data; - size_t size; - - #if defined(QT_CORE_LIB) - public: - inline operator QString() const; - #endif - }; - - class lstring : public linear_vector { - public: - template inline lstring& operator<<(T value); - - inline int find(const char*); - inline void split (const char*, const char*, unsigned = 0); - inline void qsplit(const char*, const char*, unsigned = 0); - - lstring(); - lstring(std::initializer_list); - }; - - template inline string sprint(const char *s, Args... args); - template inline void print(const char *s, Args... args); -}; - -inline size_t strlcpy(nall::string &dest, const char *src, size_t length); -inline size_t strlcat(nall::string &dest, const char *src, size_t length); - -inline nall::string& strlower(nall::string &str); -inline nall::string& strupper(nall::string &str); -inline nall::string& strtr(nall::string &dest, const char *before, const char *after); -inline nall::string& ltrim(nall::string &str, const char *key = " "); -inline nall::string& rtrim(nall::string &str, const char *key = " "); -inline nall::string& trim (nall::string &str, const char *key = " "); -inline nall::string& ltrim_once(nall::string &str, const char *key = " "); -inline nall::string& rtrim_once(nall::string &str, const char *key = " "); -inline nall::string& trim_once (nall::string &str, const char *key = " "); - -inline nall::string substr(const char *src, size_t start = 0, size_t length = 0); -template inline nall::string strhex(uintmax_t value); -template inline nall::string strsigned(intmax_t value); -template inline nall::string strunsigned(uintmax_t value); -template inline nall::string strbin(uintmax_t value); -inline size_t strdouble(char *str, double value); -inline nall::string strdouble(double value); - -#endif diff --git a/snesfilter/nall/string/cast.hpp b/snesfilter/nall/string/cast.hpp deleted file mode 100644 index 7433073d..00000000 --- a/snesfilter/nall/string/cast.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef NALL_STRING_CAST_HPP -#define NALL_STRING_CAST_HPP - -namespace nall { - //this is needed, as C++0x does not support explicit template specialization inside classes - template<> inline string to_string (bool v) { return v ? "true" : "false"; } - template<> inline string to_string (signed int v) { return strsigned(v); } - template<> inline string to_string (unsigned int v) { return strunsigned(v); } - template<> inline string to_string (double v) { return strdouble(v); } - template<> inline string to_string (char *v) { return v; } - template<> inline string to_string (const char *v) { return v; } - template<> inline string to_string (string v) { return v; } - template<> inline string to_string(const string &v) { return v; } - - template string& string::operator= (T value) { return assign(to_string(value)); } - template string& string::operator<<(T value) { return append(to_string(value)); } - - template lstring& lstring::operator<<(T value) { - operator[](size()).assign(to_string(value)); - return *this; - } - - #if defined(QT_CORE_LIB) - template<> inline string to_string(const QString &v) { return v.toUtf8().constData(); } - string::operator QString() const { return QString::fromUtf8(*this); } - #endif -} - -#endif diff --git a/snesfilter/nall/string/compare.hpp b/snesfilter/nall/string/compare.hpp deleted file mode 100644 index 23d2ee39..00000000 --- a/snesfilter/nall/string/compare.hpp +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef NALL_STRING_COMPARE_HPP -#define NALL_STRING_COMPARE_HPP - -char chrlower(char c) { - return (c >= 'A' && c <= 'Z') ? c + ('a' - 'A') : c; -} - -char chrupper(char c) { - return (c >= 'a' && c <= 'z') ? c - ('a' - 'A') : c; -} - -int stricmp(const char *dest, const char *src) { - while(*dest) { - if(chrlower(*dest) != chrlower(*src)) break; - dest++; - src++; - } - - return (int)chrlower(*dest) - (int)chrlower(*src); -} - -int strpos(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return -1; - for(int i = 0; i <= ssl - ksl; i++) { - if(!memcmp(str + i, key, ksl)) { - return i; - } - } - return -1; -} - -int qstrpos(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return -1; - for(int i = 0; i <= ssl - ksl;) { - uint8_t x = str[i]; - if(x == '\"' || x == '\'') { - uint8_t z = i++; - while(str[i] != x && i < ssl) i++; - if(i >= ssl) i = z; - } - if(!memcmp(str + i, key, ksl)) { - return i; - } else { - i++; - } - } - return -1; -} - -bool strbegin(const char *str, const char *key) { - int i, ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - return (!memcmp(str, key, ksl)); -} - -bool stribegin(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - for(int i = 0; i < ksl; i++) { - if(str[i] >= 'A' && str[i] <= 'Z') { - if(str[i] != key[i] && str[i]+0x20 != key[i])return false; - } else if(str[i] >= 'a' && str[i] <= 'z') { - if(str[i] != key[i] && str[i]-0x20 != key[i])return false; - } else { - if(str[i] != key[i])return false; - } - } - return true; -} - -bool strend(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - return (!memcmp(str + ssl - ksl, key, ksl)); -} - -bool striend(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - for(int i = ssl - ksl, z = 0; i < ssl; i++, z++) { - if(str[i] >= 'A' && str[i] <= 'Z') { - if(str[i] != key[z] && str[i]+0x20 != key[z])return false; - } else if(str[i] >= 'a' && str[i] <= 'z') { - if(str[i] != key[z] && str[i]-0x20 != key[z])return false; - } else { - if(str[i] != key[z])return false; - } - } - return true; -} - -#endif diff --git a/snesfilter/nall/string/convert.hpp b/snesfilter/nall/string/convert.hpp deleted file mode 100644 index a34c3f14..00000000 --- a/snesfilter/nall/string/convert.hpp +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef NALL_STRING_CONVERT_HPP -#define NALL_STRING_CONVERT_HPP - -char* strlower(char *str) { - if(!str) return 0; - int i = 0; - while(str[i]) { - str[i] = chrlower(str[i]); - i++; - } - return str; -} - -char* strupper(char *str) { - if(!str) return 0; - int i = 0; - while(str[i]) { - str[i] = chrupper(str[i]); - i++; - } - return str; -} - -char* strtr(char *dest, const char *before, const char *after) { - if(!dest || !before || !after) return dest; - int sl = strlen(dest), bsl = strlen(before), asl = strlen(after); - - if(bsl != asl || bsl == 0) return dest; //patterns must be the same length for 1:1 replace - for(unsigned i = 0; i < sl; i++) { - for(unsigned l = 0; l < bsl; l++) { - if(dest[i] == before[l]) { - dest[i] = after[l]; - break; - } - } - } - - return dest; -} - -uintmax_t strhex(const char *str) { - if(!str) return 0; - uintmax_t result = 0; - - //skip hex identifiers 0x and $, if present - if(*str == '0' && (*(str + 1) == 'X' || *(str + 1) == 'x')) str += 2; - else if(*str == '$') str++; - - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else if(x >= 'A' && x <= 'F') x -= 'A' - 10; - else if(x >= 'a' && x <= 'f') x -= 'a' - 10; - else break; //stop at first invalid character - result = result * 16 + x; - } - - return result; -} - -intmax_t strsigned(const char *str) { - if(!str) return 0; - intmax_t result = 0; - bool negate = false; - - //check for negation - if(*str == '-') { - negate = true; - str++; - } - - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else break; //stop at first invalid character - result = result * 10 + x; - } - - return !negate ? result : -result; -} - -uintmax_t strunsigned(const char *str) { - if(!str) return 0; - uintmax_t result = 0; - - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else break; //stop at first invalid character - result = result * 10 + x; - } - - return result; -} - -uintmax_t strbin(const char *str) { - if(!str) return 0; - uintmax_t result = 0; - - //skip bin identifiers 0b and %, if present - if(*str == '0' && (*(str + 1) == 'B' || *(str + 1) == 'b')) str += 2; - else if(*str == '%') str++; - - while(*str) { - uint8_t x = *str++; - if(x == '0' || x == '1') x -= '0'; - else break; //stop at first invalid character - result = result * 2 + x; - } - - return result; -} - -double strdouble(const char *str) { - if(!str) return 0.0; - bool negate = false; - - //check for negation - if(*str == '-') { - negate = true; - str++; - } - - intmax_t result_integral = 0; - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else if(x == '.') break; //break loop and read fractional part - else return (double)result_integral; //invalid value, assume no fractional part - result_integral = result_integral * 10 + x; - } - - intmax_t result_fractional = 0; - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else break; //stop at first invalid character - result_fractional = result_fractional * 10 + x; - } - - //calculate fractional portion - double result = (double)result_fractional; - while((uintmax_t)result > 0) result /= 10.0; - result += (double)result_integral; - - return !negate ? result : -result; -} - -#endif diff --git a/snesfilter/nall/string/core.hpp b/snesfilter/nall/string/core.hpp deleted file mode 100644 index 5881018b..00000000 --- a/snesfilter/nall/string/core.hpp +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef NALL_STRING_CORE_HPP -#define NALL_STRING_CORE_HPP - -namespace nall { - -void string::reserve(size_t size_) { - if(size_ > size) { - size = size_; - data = (char*)realloc(data, size + 1); - data[size] = 0; - } -} - -unsigned string::length() const { - return strlen(data); -} - -string& string::assign(const char *s) { - unsigned length = strlen(s); - reserve(length); - strcpy(data, s); - return *this; -} - -string& string::append(const char *s) { - unsigned length = strlen(data) + strlen(s); - reserve(length); - strcat(data, s); - return *this; -} - -string::operator const char*() const { - return data; -} - -char* string::operator()() { - return data; -} - -char& string::operator[](int index) { - reserve(index); - return data[index]; -} - -bool string::operator==(const char *str) const { return strcmp(data, str) == 0; } -bool string::operator!=(const char *str) const { return strcmp(data, str) != 0; } -bool string::operator< (const char *str) const { return strcmp(data, str) < 0; } -bool string::operator<=(const char *str) const { return strcmp(data, str) <= 0; } -bool string::operator> (const char *str) const { return strcmp(data, str) > 0; } -bool string::operator>=(const char *str) const { return strcmp(data, str) >= 0; } - -string::string() { - size = 64; - data = (char*)malloc(size + 1); - *data = 0; -} - -string::string(const char *value) { - size = strlen(value); - data = strdup(value); -} - -string::string(const string &value) { - size = strlen(value); - data = strdup(value); -} - -string::string(string &&source) { - size = source.size; - data = source.data; - source.data = 0; -} - -string& string::operator=(const string &value) { - assign(value); - return *this; -} - -string& string::operator=(string &&source) { - if(data) free(data); - size = source.size; - data = source.data; - source.data = 0; - return *this; -} - -string::~string() { - free(data); -} - -bool string::readfile(const char *filename) { - assign(""); - - #if !defined(_WIN32) - FILE *fp = fopen(filename, "rb"); - #else - FILE *fp = _wfopen(nall::utf16_t(filename), L"rb"); - #endif - if(!fp) return false; - - fseek(fp, 0, SEEK_END); - size_t size = ftell(fp); - rewind(fp); - char *fdata = new char[size + 1]; - unsigned unused = fread(fdata, 1, size, fp); - fclose(fp); - fdata[size] = 0; - assign(fdata); - delete[] fdata; - - return true; -} - -int lstring::find(const char *key) { - for(unsigned i = 0; i < size(); i++) { - if(operator[](i) == key) return i; - } - return -1; -} - -inline lstring::lstring() { -} - -inline lstring::lstring(std::initializer_list list) { - for(const string *s = list.begin(); s != list.end(); ++s) { - operator<<(*s); - } -} - -} - -#endif diff --git a/snesfilter/nall/string/filename.hpp b/snesfilter/nall/string/filename.hpp deleted file mode 100644 index e26493c9..00000000 --- a/snesfilter/nall/string/filename.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef NALL_FILENAME_HPP -#define NALL_FILENAME_HPP - -namespace nall { - // "foo/bar.c" -> "foo/", "bar.c" -> "./" - inline string dir(char const *name) { - string result = name; - for(signed i = strlen(result); i >= 0; i--) { - if(result[i] == '/' || result[i] == '\\') { - result[i + 1] = 0; - break; - } - if(i == 0) result = "./"; - } - return result; - } - - // "foo/bar.c" -> "bar.c" - inline string notdir(char const *name) { - for(signed i = strlen(name); i >= 0; i--) { - if(name[i] == '/' || name[i] == '\\') { - name += i + 1; - break; - } - } - string result = name; - return result; - } - - // "foo/bar.c" -> "foo/bar" - inline string basename(char const *name) { - string result = name; - for(signed i = strlen(result); i >= 0; i--) { - if(result[i] == '/' || result[i] == '\\') { - //file has no extension - break; - } - - if(result[i] == '.') { - result[i] = 0; - break; - } - } - return result; - } - - // "foo/bar.c" -> "c" - inline string extension(char const *name) { - for(signed i = strlen(name); i >= 0; i--) { - if(name[i] == '.') { - name += i + 1; - break; - } - } - string result = name; - return result; - } -} - -#endif diff --git a/snesfilter/nall/string/match.hpp b/snesfilter/nall/string/match.hpp deleted file mode 100644 index 70184fec..00000000 --- a/snesfilter/nall/string/match.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef NALL_STRING_MATCH_HPP -#define NALL_STRING_MATCH_HPP - -bool match(const char *p, const char *s) { - const char *p_ = 0, *s_ = 0; - - for(;;) { - if(!*s) { - while(*p == '*') p++; - return !*p; - } - - //wildcard match - if(*p == '*') { - p_ = p++, s_ = s; - continue; - } - - //any match - if(*p == '?') { - p++, s++; - continue; - } - - //ranged match - if(*p == '{') { - #define pattern(name_, rule_) \ - if(strbegin(p, name_)) { \ - if(rule_) { \ - p += sizeof(name_) - 1, s++; \ - continue; \ - } \ - goto failure; \ - } - - pattern("{alpha}", (*s >= 'A' && *s <= 'Z') || (*s >= 'a' && *s <= 'z')) - pattern("{alphanumeric}", (*s >= 'A' && *s <= 'Z') || (*s >= 'a' && *s <= 'z') || (*s >= '0' && *s <= '9')) - pattern("{binary}", (*s == '0' || *s == '1')) - pattern("{hex}", (*s >= '0' && *s <= '9') || (*s >= 'A' && *s <= 'F') || (*s >= 'a' && *s <= 'f')) - pattern("{lowercase}", (*s >= 'a' && *s <= 'z')) - pattern("{numeric}", (*s >= '0' && *s <= '9')) - pattern("{uppercase}", (*s >= 'A' && *s <= 'Z')) - pattern("{whitespace}", (*s == ' ' || *s == '\t')) - - #undef pattern - goto failure; - } - - //reserved character match - if(*p == '\\') { - p++; - //fallthrough - } - - //literal match - if(*p == *s) { - p++, *s++; - continue; - } - - //attempt wildcard rematch - failure: - if(p_) { - p = p_, s = s_ + 1; - continue; - } - - return false; - } -} - -#endif diff --git a/snesfilter/nall/string/math.hpp b/snesfilter/nall/string/math.hpp deleted file mode 100644 index 604b083e..00000000 --- a/snesfilter/nall/string/math.hpp +++ /dev/null @@ -1,160 +0,0 @@ -#ifndef NALL_STRING_MATH_HPP -#define NALL_STRING_MATH_HPP - -static int eval_integer(const char *&s) { - if(!*s) throw "unrecognized_integer"; - int value = 0, x = *s, y = *(s + 1); - - //hexadecimal - if(x == '0' && (y == 'X' || y == 'x')) { - s += 2; - while(true) { - if(*s >= '0' && *s <= '9') { value = value * 16 + (*s++ - '0'); continue; } - if(*s >= 'A' && *s <= 'F') { value = value * 16 + (*s++ - 'A' + 10); continue; } - if(*s >= 'a' && *s <= 'f') { value = value * 16 + (*s++ - 'a' + 10); continue; } - return value; - } - } - - //binary - if(x == '0' && (y == 'B' || y == 'b')) { - s += 2; - while(true) { - if(*s == '0' || *s == '1') { value = value * 2 + (*s++ - '0'); continue; } - return value; - } - } - - //octal (or decimal '0') - if(x == '0') { - s += 1; - while(true) { - if(*s >= '0' && *s <= '7') { value = value * 8 + (*s++ - '0'); continue; } - return value; - } - } - - //decimal - if(x >= '0' && x <= '9') { - while(true) { - if(*s >= '0' && *s <= '9') { value = value * 10 + (*s++ - '0'); continue; } - return value; - } - } - - //char - if(x == '\'' && y != '\'') { - s += 1; - while(true) { - value = value * 256 + *s++; - if(*s == '\'') { s += 1; return value; } - if(!*s) throw "mismatched_char"; - } - } - - throw "unrecognized_integer"; -} - -static int eval(const char *&s, int depth = 0) { - while(*s == ' ' || *s == '\t') s++; //trim whitespace - if(!*s) throw "unrecognized_token"; - int value = 0, x = *s, y = *(s + 1); - - if(*s == '(') { - value = eval(++s, 1); - if(*s++ != ')') throw "mismatched_group"; - } - - else if(x == '!') value = !eval(++s, 13); - else if(x == '~') value = ~eval(++s, 13); - else if(x == '+') value = +eval(++s, 13); - else if(x == '-') value = -eval(++s, 13); - - else if((x >= '0' && x <= '9') || x == '\'') value = eval_integer(s); - - else throw "unrecognized_token"; - - while(true) { - while(*s == ' ' || *s == '\t') s++; //trim whitespace - if(!*s) break; - x = *s, y = *(s + 1); - - if(depth >= 13) break; - if(x == '*') { value *= eval(++s, 13); continue; } - if(x == '/') { value /= eval(++s, 13); continue; } - if(x == '%') { value %= eval(++s, 13); continue; } - - if(depth >= 12) break; - if(x == '+') { value += eval(++s, 12); continue; } - if(x == '-') { value -= eval(++s, 12); continue; } - - if(depth >= 11) break; - if(x == '<' && y == '<') { value <<= eval(++++s, 11); continue; } - if(x == '>' && y == '>') { value >>= eval(++++s, 11); continue; } - - if(depth >= 10) break; - if(x == '<' && y == '=') { value = value <= eval(++++s, 10); continue; } - if(x == '>' && y == '=') { value = value >= eval(++++s, 10); continue; } - if(x == '<') { value = value < eval(++s, 10); continue; } - if(x == '>') { value = value > eval(++s, 10); continue; } - - if(depth >= 9) break; - if(x == '=' && y == '=') { value = value == eval(++++s, 9); continue; } - if(x == '!' && y == '=') { value = value != eval(++++s, 9); continue; } - - if(depth >= 8) break; - if(x == '&' && y != '&') { value = value & eval(++s, 8); continue; } - - if(depth >= 7) break; - if(x == '^' && y != '^') { value = value ^ eval(++s, 7); continue; } - - if(depth >= 6) break; - if(x == '|' && y != '|') { value = value | eval(++s, 6); continue; } - - if(depth >= 5) break; - if(x == '&' && y == '&') { value = eval(++++s, 5) && value; continue; } - - if(depth >= 4) break; - if(x == '^' && y == '^') { value = (!eval(++++s, 4) != !value); continue; } - - if(depth >= 3) break; - if(x == '|' && y == '|') { value = eval(++++s, 3) || value; continue; } - - if(x == '?') { - int lhs = eval(++s, 2); - if(*s != ':') throw "mismatched_ternary"; - int rhs = eval(++s, 2); - value = value ? lhs : rhs; - continue; - } - if(depth >= 2) break; - - if(depth > 0 && x == ')') break; - - throw "unrecognized_token"; - } - - return value; -} - -bool strint(const char *s, int &result) { - try { - result = eval_integer(s); - return true; - } catch(const char*) { - result = 0; - return false; - } -} - -bool strmath(const char *s, int &result) { - try { - result = eval(s); - return true; - } catch(const char*) { - result = 0; - return false; - } -} - -#endif diff --git a/snesfilter/nall/string/replace.hpp b/snesfilter/nall/string/replace.hpp deleted file mode 100644 index db405a9b..00000000 --- a/snesfilter/nall/string/replace.hpp +++ /dev/null @@ -1,103 +0,0 @@ -#ifndef NALL_STRING_REPLACE_HPP -#define NALL_STRING_REPLACE_HPP - -namespace nall { - -string& string::replace(const char *key, const char *token) { - int i, z, ksl = strlen(key), tsl = strlen(token), ssl = length(); - unsigned int replace_count = 0, size = ssl; - char *buffer; - - if(ksl <= ssl) { - if(tsl > ksl) { //the new string may be longer than the old string... - for(i = 0; i <= ssl - ksl;) { //so let's find out how big of a string we'll need... - if(!memcmp(data + i, key, ksl)) { - replace_count++; - i += ksl; - } else i++; - } - size = ssl + ((tsl - ksl) * replace_count); - reserve(size); - } - - buffer = new char[size + 1]; - for(i = z = 0; i < ssl;) { - if(i <= ssl - ksl) { - if(!memcmp(data + i, key, ksl)) { - memcpy(buffer + z, token, tsl); - z += tsl; - i += ksl; - } else buffer[z++] = data[i++]; - } else buffer[z++] = data[i++]; - } - buffer[z] = 0; - - assign(buffer); - delete[] buffer; - } - - return *this; -} - -string& string::qreplace(const char *key, const char *token) { - int i, l, z, ksl = strlen(key), tsl = strlen(token), ssl = length(); - unsigned int replace_count = 0, size = ssl; - uint8_t x; - char *buffer; - - if(ksl <= ssl) { - if(tsl > ksl) { - for(i = 0; i <= ssl - ksl;) { - x = data[i]; - if(x == '\"' || x == '\'') { - l = i; - i++; - while(data[i++] != x) { - if(i == ssl) { - i = l; - break; - } - } - } - if(!memcmp(data + i, key, ksl)) { - replace_count++; - i += ksl; - } else i++; - } - size = ssl + ((tsl - ksl) * replace_count); - reserve(size); - } - - buffer = new char[size + 1]; - for(i = z = 0; i < ssl;) { - x = data[i]; - if(x == '\"' || x == '\'') { - l = i++; - while(data[i] != x && i < ssl)i++; - if(i >= ssl)i = l; - else { - memcpy(buffer + z, data + l, i - l); - z += i - l; - } - } - if(i <= ssl - ksl) { - if(!memcmp(data + i, key, ksl)) { - memcpy(buffer + z, token, tsl); - z += tsl; - i += ksl; - replace_count++; - } else buffer[z++] = data[i++]; - } else buffer[z++] = data[i++]; - } - buffer[z] = 0; - - assign(buffer); - delete[] buffer; - } - - return *this; -} - -}; - -#endif diff --git a/snesfilter/nall/string/split.hpp b/snesfilter/nall/string/split.hpp deleted file mode 100644 index bb77dfcd..00000000 --- a/snesfilter/nall/string/split.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef NALL_STRING_SPLIT_HPP -#define NALL_STRING_SPLIT_HPP - -namespace nall { - -void lstring::split(const char *key, const char *src, unsigned limit) { - reset(); - - int ssl = strlen(src), ksl = strlen(key); - int lp = 0, split_count = 0; - - for(int i = 0; i <= ssl - ksl;) { - if(!memcmp(src + i, key, ksl)) { - strlcpy(operator[](split_count++), src + lp, i - lp + 1); - i += ksl; - lp = i; - if(!--limit) break; - } else i++; - } - - operator[](split_count++) = src + lp; -} - -void lstring::qsplit(const char *key, const char *src, unsigned limit) { - reset(); - - int ssl = strlen(src), ksl = strlen(key); - int lp = 0, split_count = 0; - - for(int i = 0; i <= ssl - ksl;) { - uint8_t x = src[i]; - - if(x == '\"' || x == '\'') { - int z = i++; //skip opening quote - while(i < ssl && src[i] != x) i++; - if(i >= ssl) i = z; //failed match, rewind i - else { - i++; //skip closing quote - continue; //restart in case next char is also a quote - } - } - - if(!memcmp(src + i, key, ksl)) { - strlcpy(operator[](split_count++), src + lp, i - lp + 1); - i += ksl; - lp = i; - if(!--limit) break; - } else i++; - } - - operator[](split_count++) = src + lp; -} - -}; - -#endif diff --git a/snesfilter/nall/string/strl.hpp b/snesfilter/nall/string/strl.hpp deleted file mode 100644 index 329e8520..00000000 --- a/snesfilter/nall/string/strl.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef NALL_STRING_STRL_HPP -#define NALL_STRING_STRL_HPP - -//strlcpy, strlcat based on OpenBSD implementation by Todd C. Miller - -//return = strlen(src) -size_t strlcpy(char *dest, const char *src, size_t length) { - char *d = dest; - const char *s = src; - size_t n = length; - - if(n) { - while(--n && (*d++ = *s++)); //copy as many bytes as possible, or until null terminator reached - } - - if(!n) { - if(length) *d = 0; - while(*s++); //traverse rest of s, so that s - src == strlen(src) - } - - return (s - src - 1); //return length of copied string, sans null terminator -} - -//return = strlen(src) + min(length, strlen(dest)) -size_t strlcat(char *dest, const char *src, size_t length) { - char *d = dest; - const char *s = src; - size_t n = length; - - while(n-- && *d) d++; //find end of dest - size_t dlength = d - dest; - n = length - dlength; //subtract length of dest from maximum string length - - if(!n) return dlength + strlen(s); - - while(*s) { - if(n != 1) { - *d++ = *s; - n--; - } - s++; - } - *d = 0; - - return dlength + (s - src); //return length of resulting string, sans null terminator -} - -#endif diff --git a/snesfilter/nall/string/trim.hpp b/snesfilter/nall/string/trim.hpp deleted file mode 100644 index 8f218c54..00000000 --- a/snesfilter/nall/string/trim.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef NALL_STRING_TRIM_HPP -#define NALL_STRING_TRIM_HPP - -char* ltrim(char *str, const char *key) { - if(!key || !*key) return str; - while(strbegin(str, key)) { - char *dest = str, *src = str + strlen(key); - while(true) { - *dest = *src++; - if(!*dest) break; - dest++; - } - } - return str; -} - -char* rtrim(char *str, const char *key) { - if(!key || !*key) return str; - while(strend(str, key)) str[strlen(str) - strlen(key)] = 0; - return str; -} - -char* trim(char *str, const char *key) { - return ltrim(rtrim(str, key), key); -} - -char* ltrim_once(char *str, const char *key) { - if(!key || !*key) return str; - if(strbegin(str, key)) { - char *dest = str, *src = str + strlen(key); - while(true) { - *dest = *src++; - if(!*dest) break; - dest++; - } - } - return str; -} - -char* rtrim_once(char *str, const char *key) { - if(!key || !*key) return str; - if(strend(str, key)) str[strlen(str) - strlen(key)] = 0; - return str; -} - -char* trim_once(char *str, const char *key) { - return ltrim_once(rtrim_once(str, key), key); -} - -#endif diff --git a/snesfilter/nall/string/utility.hpp b/snesfilter/nall/string/utility.hpp deleted file mode 100644 index c050446b..00000000 --- a/snesfilter/nall/string/utility.hpp +++ /dev/null @@ -1,165 +0,0 @@ -#ifndef NALL_STRING_UTILITY_HPP -#define NALL_STRING_UTILITY_HPP - -size_t strlcpy(nall::string &dest, const char *src, size_t length) { - dest.reserve(length); - return strlcpy(dest(), src, length); -} - -size_t strlcat(nall::string &dest, const char *src, size_t length) { - dest.reserve(length); - return strlcat(dest(), src, length); -} - -nall::string substr(const char *src, size_t start, size_t length) { - nall::string dest; - if(length == 0) { - //copy entire string - dest = src + start; - } else { - //copy partial string - strlcpy(dest, src + start, length + 1); - } - return dest; -} - -/* very simplistic wrappers to return nall::string& instead of char* type */ - -nall::string& strlower(nall::string &str) { strlower(str()); return str; } -nall::string& strupper(nall::string &str) { strupper(str()); return str; } -nall::string& strtr(nall::string &dest, const char *before, const char *after) { strtr(dest(), before, after); return dest; } -nall::string& ltrim(nall::string &str, const char *key) { ltrim(str(), key); return str; } -nall::string& rtrim(nall::string &str, const char *key) { rtrim(str(), key); return str; } -nall::string& trim (nall::string &str, const char *key) { trim (str(), key); return str; } -nall::string& ltrim_once(nall::string &str, const char *key) { ltrim_once(str(), key); return str; } -nall::string& rtrim_once(nall::string &str, const char *key) { rtrim_once(str(), key); return str; } -nall::string& trim_once (nall::string &str, const char *key) { trim_once (str(), key); return str; } - -/* arithmetic <> string */ - -template nall::string strhex(uintmax_t value) { - nall::string output; - unsigned offset = 0; - - //render string backwards, as we do not know its length yet - do { - unsigned n = value & 15; - output[offset++] = n < 10 ? '0' + n : 'a' + n - 10; - value >>= 4; - } while(value); - - while(offset < length) output[offset++] = padding; - output[offset--] = 0; - - //reverse the string in-place - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -template nall::string strsigned(intmax_t value) { - nall::string output; - unsigned offset = 0; - - bool negative = value < 0; - if(negative) value = abs(value); - - do { - unsigned n = value % 10; - output[offset++] = '0' + n; - value /= 10; - } while(value); - - while(offset < length) output[offset++] = padding; - if(negative) output[offset++] = '-'; - output[offset--] = 0; - - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -template nall::string strunsigned(uintmax_t value) { - nall::string output; - unsigned offset = 0; - - do { - unsigned n = value % 10; - output[offset++] = '0' + n; - value /= 10; - } while(value); - - while(offset < length) output[offset++] = padding; - output[offset--] = 0; - - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -template nall::string strbin(uintmax_t value) { - nall::string output; - unsigned offset = 0; - - do { - unsigned n = value & 1; - output[offset++] = '0' + n; - value >>= 1; - } while(value); - - while(offset < length) output[offset++] = padding; - output[offset--] = 0; - - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -//using sprintf is certainly not the most ideal method to convert -//a double to a string ... but attempting to parse a double by -//hand, digit-by-digit, results in subtle rounding errors. -size_t strdouble(char *str, double value) { - char buffer[256]; - sprintf(buffer, "%f", value); - - //remove excess 0's in fraction (2.500000 -> 2.5) - for(char *p = buffer; *p; p++) { - if(*p == '.') { - char *p = buffer + strlen(buffer) - 1; - while(*p == '0') { - if(*(p - 1) != '.') *p = 0; //... but not for eg 1.0 -> 1. - p--; - } - break; - } - } - - unsigned length = strlen(buffer); - if(str) strcpy(str, buffer); - return length + 1; -} - -nall::string strdouble(double value) { - nall::string temp; - temp.reserve(strdouble(0, value)); - strdouble(temp(), value); - return temp; -} - -#endif diff --git a/snesfilter/nall/string/variadic.hpp b/snesfilter/nall/string/variadic.hpp deleted file mode 100644 index e707b487..00000000 --- a/snesfilter/nall/string/variadic.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef NALL_STRING_VARIADIC_HPP -#define NALL_STRING_VARIADIC_HPP - -namespace nall { - static void sprint(string &output, unsigned &offset, const char *&s) { - while(*s) output[offset++] = *s++; - } - - template - static void sprint(string &output, unsigned &offset, const char *&s, T value, Args... args) { - while(*s) { - if(*s == '$') { - string data = to_string(value); - unsigned i = 0; - while(data[i]) output[offset++] = data[i++]; - sprint(output, offset, ++s, args...); - return; - } else { - output[offset++] = *s++; - } - } - } - - template inline string sprint(const char *s, Args... args) { - string output; - unsigned offset = 0; - sprint(output, offset, s, args...); - output[offset] = 0; - return output; - } - - template inline void print(const char *s, Args... args) { - printf("%s", (const char*)sprint(s, args...)); - } -} - -#endif diff --git a/snesfilter/nall/string/xml.hpp b/snesfilter/nall/string/xml.hpp deleted file mode 100644 index 30d6bae6..00000000 --- a/snesfilter/nall/string/xml.hpp +++ /dev/null @@ -1,268 +0,0 @@ -#ifndef NALL_STRING_XML_HPP -#define NALL_STRING_XML_HPP - -//XML subset parser -//version 0.04 - -#include - -namespace nall { - -struct xml_attribute { - string name; - string content; - virtual string parse() const; -}; - -struct xml_element : xml_attribute { - string parse() const; - array attribute; - array element; - ~xml_element(); - -protected: - void parse_doctype(const char *&data); - bool parse_head(string data); - bool parse_body(const char *&data); - friend xml_element *xml_parse(const char *data); -}; - -inline string xml_attribute::parse() const { - string data; - unsigned offset = 0; - - const char *source = content; - while(*source) { - if(*source == '&') { - if(strbegin(source, "<")) { data[offset++] = '<'; source += 4; continue; } - if(strbegin(source, ">")) { data[offset++] = '>'; source += 4; continue; } - if(strbegin(source, "&")) { data[offset++] = '&'; source += 5; continue; } - if(strbegin(source, "'")) { data[offset++] = '\''; source += 6; continue; } - if(strbegin(source, """)) { data[offset++] = '"'; source += 6; continue; } - } - - //reject illegal characters - if(*source == '&') return ""; - if(*source == '<') return ""; - if(*source == '>') return ""; - - data[offset++] = *source++; - } - - data[offset] = 0; - return data; -} - -inline string xml_element::parse() const { - string data; - unsigned offset = 0; - - const char *source = content; - while(*source) { - if(*source == '&') { - if(strbegin(source, "<")) { data[offset++] = '<'; source += 4; continue; } - if(strbegin(source, ">")) { data[offset++] = '>'; source += 4; continue; } - if(strbegin(source, "&")) { data[offset++] = '&'; source += 5; continue; } - if(strbegin(source, "'")) { data[offset++] = '\''; source += 6; continue; } - if(strbegin(source, """)) { data[offset++] = '"'; source += 6; continue; } - } - - if(strbegin(source, ""); - if(pos == -1) return ""; - source += pos + 3; - continue; - } - - if(strbegin(source, ""); - if(pos == -1) return ""; - string cdata = substr(source, 9, pos - 9); - data << cdata; - offset += strlen(cdata); - - source += offset + 3; - continue; - } - - //reject illegal characters - if(*source == '&') return ""; - if(*source == '<') return ""; - if(*source == '>') return ""; - - data[offset++] = *source++; - } - - data[offset] = 0; - return data; -} - -inline void xml_element::parse_doctype(const char *&data) { - name = "!DOCTYPE"; - const char *content_begin = data; - - signed counter = 0; - while(*data) { - char value = *data++; - if(value == '<') counter++; - if(value == '>') counter--; - if(counter < 0) { - content = substr(content_begin, 0, data - content_begin - 1); - return; - } - } - throw "..."; -} - -inline bool xml_element::parse_head(string data) { - data.qreplace("\t", " "); - data.qreplace("\r", " "); - data.qreplace("\n", " "); - while(qstrpos(data, " ") >= 0) data.qreplace(" ", " "); - data.qreplace(" =", "="); - data.qreplace("= ", "="); - rtrim(data); - - lstring part; - part.qsplit(" ", data); - - name = part[0]; - if(name == "") throw "..."; - - for(unsigned i = 1; i < part.size(); i++) { - lstring side; - side.qsplit("=", part[i]); - if(side.size() != 2) throw "..."; - - xml_attribute *attr = new xml_attribute; - attr->name = side[0]; - attr->content = side[1]; - if(strbegin(attr->content, "\"") && strend(attr->content, "\"")) trim_once(attr->content, "\""); - else if(strbegin(attr->content, "'") && strend(attr->content, "'")) trim_once(attr->content, "'"); - else throw "..."; - attribute.add(attr); - } -} - -inline bool xml_element::parse_body(const char *&data) { - while(true) { - if(!*data) return false; - if(*data++ != '<') continue; - if(*data == '/') return false; - - if(strbegin(data, "!DOCTYPE") == true) { - parse_doctype(data); - return true; - } - - if(strbegin(data, "!--")) { - signed offset = strpos(data, "-->"); - if(offset == -1) throw "..."; - data += offset + 3; - continue; - } - - if(strbegin(data, "![CDATA[")) { - signed offset = strpos(data, "]]>"); - if(offset == -1) throw "..."; - data += offset + 3; - continue; - } - - signed offset = strpos(data, ">"); - if(offset == -1) throw "..."; - - string tag = substr(data, 0, offset); - data += offset + 1; - const char *content_begin = data; - - bool self_terminating = false; - - if(strend(tag, "?") == true) { - self_terminating = true; - rtrim_once(tag, "?"); - } else if(strend(tag, "/") == true) { - self_terminating = true; - rtrim_once(tag, "/"); - } - - parse_head(tag); - if(self_terminating) return true; - - while(*data) { - unsigned index = element.size(); - xml_element *elem = new xml_element; - if(elem->parse_body(data) == false) { - delete elem; - - if(*data == '/') { - signed length = data - content_begin - 1; - if(length > 0) content = substr(content_begin, 0, length); - - data++; - offset = strpos(data, ">"); - if(offset == -1) throw "..."; - - tag = substr(data, 0, offset); - data += offset + 1; - - tag.replace("\t", " "); - tag.replace("\r", " "); - tag.replace("\n", " "); - while(strpos(tag, " ") >= 0) tag.replace(" ", " "); - rtrim(tag); - - if(name != tag) throw "..."; - return true; - } - } else { - element.add(elem); - } - } - } -} - -inline xml_element::~xml_element() { - for(unsigned i = 0; i < attribute.size(); i++) delete attribute[i]; - for(unsigned i = 0; i < element.size(); i++) delete element[i]; -} - -//ensure there is only one root element -inline bool xml_validate(xml_element *document) { - unsigned root_counter = 0; - - for(unsigned i = 0; i < document->element.size(); i++) { - string &name = document->element[i]->name; - if(strbegin(name, "?")) continue; - if(strbegin(name, "!")) continue; - if(++root_counter > 1) return false; - } - - return true; -} - -inline xml_element* xml_parse(const char *data) { - xml_element *self = new xml_element; - - try { - while(*data) { - xml_element *elem = new xml_element; - if(elem->parse_body(data) == false) { - delete elem; - break; - } else { - self->element.add(elem); - } - } - - if(xml_validate(self) == false) throw "..."; - return self; - } catch(const char*) { - delete self; - return 0; - } -} - -} - -#endif diff --git a/snesfilter/nall/traits.hpp b/snesfilter/nall/traits.hpp deleted file mode 100644 index 0e7e0db3..00000000 --- a/snesfilter/nall/traits.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef NALL_TRAITS_HPP -#define NALL_TRAITS_HPP - -namespace nall { - //== - //is - //== - - template struct is_integral { enum { value = false }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - - template struct is_floating_point { enum { value = false }; }; - template<> struct is_floating_point { enum { value = true }; }; - template<> struct is_floating_point { enum { value = true }; }; - template<> struct is_floating_point { enum { value = true }; }; - - template struct is_bool { enum { value = false }; }; - template<> struct is_bool { enum { value = true }; }; - - template struct is_void { enum { value = false }; }; - template<> struct is_void { enum { value = true }; }; - - template struct is_arithmetic { - enum { value = is_integral::value || is_floating_point::value }; - }; - - template struct is_fundamental { - enum { value = is_integral::value || is_floating_point::value || is_void::value }; - }; - - template struct is_compound { - enum { value = !is_fundamental::value }; - }; - - template struct is_array { enum { value = false }; }; - template struct is_array { enum { value = true }; }; - template struct is_array { enum { value = true }; }; - - template struct is_const { enum { value = false }; }; - template struct is_const { enum { value = true }; }; - template struct is_const { enum { value = true }; }; - - template struct is_pointer { enum { value = false }; }; - template struct is_pointer { enum { value = true }; }; - - template struct is_reference { enum { value = false }; }; - template struct is_reference { enum { value = true }; }; - - template struct is_same { enum { value = false }; }; - template struct is_same { enum { value = true }; }; - - //=== - //add - //=== - - template struct add_const { typedef const T type; }; - template struct add_const { typedef const T type; }; - template struct add_const { typedef const T& type; }; - - template struct add_pointer { typedef T* type; }; - template struct add_pointer { typedef T** type; }; - - template struct add_reference { typedef T& type; }; - template struct add_reference { typedef T& type; }; - - //====== - //remove - //====== - - template struct remove_const { typedef T type; }; - template struct remove_const { typedef T type; }; - template struct remove_const { typedef T type; }; - - template struct remove_extent { typedef T type; }; - template struct remove_extent { typedef T type; }; - template struct remove_extent { typedef T type; }; - - template struct remove_pointer { typedef T type; }; - template struct remove_pointer { typedef T type; }; - - template struct remove_reference { typedef T type; }; - template struct remove_reference { typedef T type; }; -} - -#endif diff --git a/snesfilter/nall/ups.hpp b/snesfilter/nall/ups.hpp deleted file mode 100644 index f255ecb3..00000000 --- a/snesfilter/nall/ups.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef NALL_UPS_HPP -#define NALL_UPS_HPP - -#include - -#include -#include -#include -#include - -namespace nall { - class ups { - public: - enum result { - ok, - patch_unreadable, - patch_unwritable, - patch_invalid, - input_invalid, - output_invalid, - patch_crc32_invalid, - input_crc32_invalid, - output_crc32_invalid, - }; - - ups::result create(const char *patch_fn, const uint8_t *x_data, unsigned x_size, const uint8_t *y_data, unsigned y_size) { - if(!fp.open(patch_fn, file::mode_write)) return patch_unwritable; - - crc32 = ~0; - uint32_t x_crc32 = crc32_calculate(x_data, x_size); - uint32_t y_crc32 = crc32_calculate(y_data, y_size); - - //header - write('U'); - write('P'); - write('S'); - write('1'); - encptr(x_size); - encptr(y_size); - - //body - unsigned max_size = max(x_size, y_size); - unsigned relative = 0; - for(unsigned i = 0; i < max_size;) { - uint8_t x = i < x_size ? x_data[i] : 0x00; - uint8_t y = i < y_size ? y_data[i] : 0x00; - - if(x == y) { - i++; - continue; - } - - encptr(i++ - relative); - write(x ^ y); - - while(true) { - if(i >= max_size) { - write(0x00); - break; - } - - x = i < x_size ? x_data[i] : 0x00; - y = i < y_size ? y_data[i] : 0x00; - i++; - write(x ^ y); - if(x == y) break; - } - - relative = i; - } - - //footer - for(unsigned i = 0; i < 4; i++) write(x_crc32 >> (i << 3)); - for(unsigned i = 0; i < 4; i++) write(y_crc32 >> (i << 3)); - uint32_t p_crc32 = ~crc32; - for(unsigned i = 0; i < 4; i++) write(p_crc32 >> (i << 3)); - - fp.close(); - return ok; - } - - ups::result apply(const uint8_t *p_data, unsigned p_size, const uint8_t *x_data, unsigned x_size, uint8_t *&y_data, unsigned &y_size) { - if(p_size < 18) return patch_invalid; - p_buffer = p_data; - - crc32 = ~0; - - //header - if(read() != 'U') return patch_invalid; - if(read() != 'P') return patch_invalid; - if(read() != 'S') return patch_invalid; - if(read() != '1') return patch_invalid; - - unsigned px_size = decptr(); - unsigned py_size = decptr(); - - //mirror - if(x_size != px_size && x_size != py_size) return input_invalid; - y_size = (x_size == px_size) ? py_size : px_size; - y_data = new uint8_t[y_size](); - - for(unsigned i = 0; i < x_size && i < y_size; i++) y_data[i] = x_data[i]; - for(unsigned i = x_size; i < y_size; i++) y_data[i] = 0x00; - - //body - unsigned relative = 0; - while(p_buffer < p_data + p_size - 12) { - relative += decptr(); - - while(true) { - uint8_t x = read(); - if(x && relative < y_size) { - uint8_t y = relative < x_size ? x_data[relative] : 0x00; - y_data[relative] = x ^ y; - } - relative++; - if(!x) break; - } - } - - //footer - unsigned px_crc32 = 0, py_crc32 = 0, pp_crc32 = 0; - for(unsigned i = 0; i < 4; i++) px_crc32 |= read() << (i << 3); - for(unsigned i = 0; i < 4; i++) py_crc32 |= read() << (i << 3); - uint32_t p_crc32 = ~crc32; - for(unsigned i = 0; i < 4; i++) pp_crc32 |= read() << (i << 3); - - uint32_t x_crc32 = crc32_calculate(x_data, x_size); - uint32_t y_crc32 = crc32_calculate(y_data, y_size); - - if(px_size != py_size) { - if(x_size == px_size && x_crc32 != px_crc32) return input_crc32_invalid; - if(x_size == py_size && x_crc32 != py_crc32) return input_crc32_invalid; - if(y_size == px_size && y_crc32 != px_crc32) return output_crc32_invalid; - if(y_size == py_size && y_crc32 != py_crc32) return output_crc32_invalid; - } else { - if(x_crc32 != px_crc32 && x_crc32 != py_crc32) return input_crc32_invalid; - if(y_crc32 != px_crc32 && y_crc32 != py_crc32) return output_crc32_invalid; - if(x_crc32 == y_crc32 && px_crc32 != py_crc32) return output_crc32_invalid; - if(x_crc32 != y_crc32 && px_crc32 == py_crc32) return output_crc32_invalid; - } - - if(p_crc32 != pp_crc32) return patch_crc32_invalid; - return ok; - } - - private: - file fp; - uint32_t crc32; - const uint8_t *p_buffer; - - uint8_t read() { - uint8_t n = *p_buffer++; - crc32 = crc32_adjust(crc32, n); - return n; - } - - void write(uint8_t n) { - fp.write(n); - crc32 = crc32_adjust(crc32, n); - } - - void encptr(uint64_t offset) { - while(true) { - uint64_t x = offset & 0x7f; - offset >>= 7; - if(offset == 0) { - write(0x80 | x); - break; - } - write(x); - offset--; - } - } - - uint64_t decptr() { - uint64_t offset = 0, shift = 1; - while(true) { - uint8_t x = read(); - offset += (x & 0x7f) * shift; - if(x & 0x80) break; - shift <<= 7; - offset += shift; - } - return offset; - } - }; -} - -#endif diff --git a/snesfilter/nall/utf8.hpp b/snesfilter/nall/utf8.hpp deleted file mode 100644 index c66c341a..00000000 --- a/snesfilter/nall/utf8.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef NALL_UTF8_HPP -#define NALL_UTF8_HPP - -//UTF-8 <> UTF-16 conversion -//used only for Win32; Linux, etc use UTF-8 internally - -#if defined(_WIN32) - -#undef _WIN32_WINNT -#define _WIN32_WINNT 0x0501 -#undef NOMINMAX -#define NOMINMAX -#include -#undef interface - -namespace nall { - //UTF-8 to UTF-16 - class utf16_t { - public: - operator wchar_t*() { - return buffer; - } - - operator const wchar_t*() const { - return buffer; - } - - utf16_t(const char *s = "") { - if(!s) s = ""; - unsigned length = MultiByteToWideChar(CP_UTF8, 0, s, -1, 0, 0); - buffer = new wchar_t[length + 1](); - MultiByteToWideChar(CP_UTF8, 0, s, -1, buffer, length); - } - - ~utf16_t() { - delete[] buffer; - } - - private: - wchar_t *buffer; - }; - - //UTF-16 to UTF-8 - class utf8_t { - public: - operator char*() { - return buffer; - } - - operator const char*() const { - return buffer; - } - - utf8_t(const wchar_t *s = L"") { - if(!s) s = L""; - unsigned length = WideCharToMultiByte(CP_UTF8, 0, s, -1, 0, 0, (const char*)0, (BOOL*)0); - buffer = new char[length + 1](); - WideCharToMultiByte(CP_UTF8, 0, s, -1, buffer, length, (const char*)0, (BOOL*)0); - } - - ~utf8_t() { - delete[] buffer; - } - - private: - char *buffer; - }; -} - -#endif //if defined(_WIN32) - -#endif diff --git a/snesfilter/nall/utility.hpp b/snesfilter/nall/utility.hpp deleted file mode 100644 index c15945e1..00000000 --- a/snesfilter/nall/utility.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef NALL_UTILITY_HPP -#define NALL_UTILITY_HPP - -#include - -namespace nall { - template struct identity { - typedef T type; - }; - - template typename remove_reference::type&& move(T &&value) { - return value; - } - - template T&& forward(typename identity::type &&value) { - return value; - } - - template struct enable_if { typedef T type; }; - template struct enable_if {}; - template struct mp_enable_if : enable_if {}; - - template inline void swap(T &x, T &y) { - T temp(move(x)); - x = move(y); - y = move(temp); - } - - template struct base_from_member { - T value; - base_from_member(T value_) : value(value_) {} - }; - - template inline T* allocate(size_t size, const T &value) { - T *array = new T[size]; - for(size_t i = 0; i < size; i++) array[i] = value; - return array; - } -} - -#endif diff --git a/snesfilter/nall/varint.hpp b/snesfilter/nall/varint.hpp deleted file mode 100644 index cc3bb17c..00000000 --- a/snesfilter/nall/varint.hpp +++ /dev/null @@ -1,92 +0,0 @@ -#ifndef NALL_VARINT_HPP -#define NALL_VARINT_HPP - -#include -#include -#include - -namespace nall { - template class uint_t { - private: - enum { bytes = (bits + 7) >> 3 }; //minimum number of bytes needed to store value - typedef typename static_if< - sizeof(int) >= bytes, - unsigned int, - typename static_if< - sizeof(long) >= bytes, - unsigned long, - typename static_if< - sizeof(long long) >= bytes, - unsigned long long, - void - >::type - >::type - >::type T; - static_assert::value> uint_assert; - T data; - - public: - inline operator T() const { return data; } - inline T operator ++(int) { T r = data; data = uclip(data + 1); return r; } - inline T operator --(int) { T r = data; data = uclip(data - 1); return r; } - inline T operator ++() { return data = uclip(data + 1); } - inline T operator --() { return data = uclip(data - 1); } - inline T operator =(const T i) { return data = uclip(i); } - inline T operator |=(const T i) { return data = uclip(data | i); } - inline T operator ^=(const T i) { return data = uclip(data ^ i); } - inline T operator &=(const T i) { return data = uclip(data & i); } - inline T operator<<=(const T i) { return data = uclip(data << i); } - inline T operator>>=(const T i) { return data = uclip(data >> i); } - inline T operator +=(const T i) { return data = uclip(data + i); } - inline T operator -=(const T i) { return data = uclip(data - i); } - inline T operator *=(const T i) { return data = uclip(data * i); } - inline T operator /=(const T i) { return data = uclip(data / i); } - inline T operator %=(const T i) { return data = uclip(data % i); } - - inline uint_t() : data(0) {} - inline uint_t(const T i) : data(uclip(i)) {} - }; - - template class int_t { - private: - enum { bytes = (bits + 7) >> 3 }; //minimum number of bytes needed to store value - typedef typename static_if< - sizeof(int) >= bytes, - signed int, - typename static_if< - sizeof(long) >= bytes, - signed long, - typename static_if< - sizeof(long long) >= bytes, - signed long long, - void - >::type - >::type - >::type T; - static_assert::value> int_assert; - T data; - - public: - inline operator T() const { return data; } - inline T operator ++(int) { T r = data; data = sclip(data + 1); return r; } - inline T operator --(int) { T r = data; data = sclip(data - 1); return r; } - inline T operator ++() { return data = sclip(data + 1); } - inline T operator --() { return data = sclip(data - 1); } - inline T operator =(const T i) { return data = sclip(i); } - inline T operator |=(const T i) { return data = sclip(data | i); } - inline T operator ^=(const T i) { return data = sclip(data ^ i); } - inline T operator &=(const T i) { return data = sclip(data & i); } - inline T operator<<=(const T i) { return data = sclip(data << i); } - inline T operator>>=(const T i) { return data = sclip(data >> i); } - inline T operator +=(const T i) { return data = sclip(data + i); } - inline T operator -=(const T i) { return data = sclip(data - i); } - inline T operator *=(const T i) { return data = sclip(data * i); } - inline T operator /=(const T i) { return data = sclip(data / i); } - inline T operator %=(const T i) { return data = sclip(data % i); } - - inline int_t() : data(0) {} - inline int_t(const T i) : data(sclip(i)) {} - }; -} - -#endif diff --git a/snesfilter/nall/vector.hpp b/snesfilter/nall/vector.hpp deleted file mode 100644 index 8885f93d..00000000 --- a/snesfilter/nall/vector.hpp +++ /dev/null @@ -1,235 +0,0 @@ -#ifndef NALL_VECTOR_HPP -#define NALL_VECTOR_HPP - -#include -#include -#include -#include -#include -#include -#include - -namespace nall { - //linear_vector - //memory: O(capacity * 2) - // - //linear_vector uses placement new + manual destructor calls to create a - //contiguous block of memory for all objects. accessing individual elements - //is fast, though resizing the array incurs significant overhead. - //reserve() overhead is reduced from quadratic time to amortized constant time - //by resizing twice as much as requested. - // - //if objects hold memory address references to themselves (introspection), a - //valid copy constructor will be needed to keep pointers valid. - - template class linear_vector { - protected: - T *pool; - unsigned poolsize, objectsize; - - public: - unsigned size() const { return objectsize; } - unsigned capacity() const { return poolsize; } - - void reset() { - if(pool) { - for(unsigned i = 0; i < objectsize; i++) pool[i].~T(); - free(pool); - } - pool = 0; - poolsize = 0; - objectsize = 0; - } - - void reserve(unsigned newsize) { - newsize = bit::round(newsize); //round to nearest power of two (for amortized growth) - - T *poolcopy = (T*)malloc(newsize * sizeof(T)); - for(unsigned i = 0; i < min(objectsize, newsize); i++) new(poolcopy + i) T(pool[i]); - for(unsigned i = 0; i < objectsize; i++) pool[i].~T(); - free(pool); - pool = poolcopy; - poolsize = newsize; - objectsize = min(objectsize, newsize); - } - - void resize(unsigned newsize) { - if(newsize > poolsize) reserve(newsize); - - if(newsize < objectsize) { - //vector is shrinking; destroy excess objects - for(unsigned i = newsize; i < objectsize; i++) pool[i].~T(); - } else if(newsize > objectsize) { - //vector is expanding; allocate new objects - for(unsigned i = objectsize; i < newsize; i++) new(pool + i) T; - } - - objectsize = newsize; - } - - void add(const T data) { - if(objectsize + 1 > poolsize) reserve(objectsize + 1); - new(pool + objectsize++) T(data); - } - - inline T& operator[](unsigned index) { - if(index >= objectsize) resize(index + 1); - return pool[index]; - } - - inline const T& operator[](unsigned index) const { - if(index >= objectsize) throw "vector[] out of bounds"; - return pool[index]; - } - - //copy - inline linear_vector& operator=(const linear_vector &source) { - reset(); - reserve(source.capacity()); - for(unsigned i = 0; i < source.size(); i++) add(source[i]); - return *this; - } - - linear_vector(const linear_vector &source) { - operator=(source); - } - - //move - inline linear_vector& operator=(linear_vector &&source) { - reset(); - pool = source.pool; - poolsize = source.poolsize; - objectsize = source.objectsize; - source.pool = 0; - return *this; - } - - linear_vector(linear_vector &&source) { - operator=(move(source)); - } - - //construction - linear_vector() : pool(0), poolsize(0), objectsize(0) { - } - - linear_vector(std::initializer_list list) : pool(0), poolsize(0), objectsize(0) { - for(const T *p = list.begin(); p != list.end(); ++p) add(*p); - } - - ~linear_vector() { - reset(); - } - }; - - //pointer_vector - //memory: O(1) - // - //pointer_vector keeps an array of pointers to each vector object. this adds - //significant overhead to individual accesses, but allows for optimal memory - //utilization. - // - //by guaranteeing that the base memory address of each objects never changes, - //this avoids the need for an object to have a valid copy constructor. - - template class pointer_vector { - protected: - T **pool; - unsigned poolsize, objectsize; - - public: - unsigned size() const { return objectsize; } - unsigned capacity() const { return poolsize; } - - void reset() { - if(pool) { - for(unsigned i = 0; i < objectsize; i++) { if(pool[i]) delete pool[i]; } - free(pool); - } - pool = 0; - poolsize = 0; - objectsize = 0; - } - - void reserve(unsigned newsize) { - newsize = bit::round(newsize); //round to nearest power of two (for amortized growth) - - for(unsigned i = newsize; i < objectsize; i++) { - if(pool[i]) { delete pool[i]; pool[i] = 0; } - } - - pool = (T**)realloc(pool, newsize * sizeof(T*)); - for(unsigned i = poolsize; i < newsize; i++) pool[i] = 0; - poolsize = newsize; - objectsize = min(objectsize, newsize); - } - - void resize(unsigned newsize) { - if(newsize > poolsize) reserve(newsize); - - for(unsigned i = newsize; i < objectsize; i++) { - if(pool[i]) { delete pool[i]; pool[i] = 0; } - } - - objectsize = newsize; - } - - void add(const T data) { - if(objectsize + 1 > poolsize) reserve(objectsize + 1); - pool[objectsize++] = new T(data); - } - - inline T& operator[](unsigned index) { - if(index >= objectsize) resize(index + 1); - if(!pool[index]) pool[index] = new T; - return *pool[index]; - } - - inline const T& operator[](unsigned index) const { - if(index >= objectsize || !pool[index]) throw "vector[] out of bounds"; - return *pool[index]; - } - - //copy - inline pointer_vector& operator=(const pointer_vector &source) { - reset(); - reserve(source.capacity()); - for(unsigned i = 0; i < source.size(); i++) add(source[i]); - return *this; - } - - pointer_vector(const pointer_vector &source) { - operator=(source); - } - - //move - inline pointer_vector& operator=(pointer_vector &&source) { - reset(); - pool = source.pool; - poolsize = source.poolsize; - objectsize = source.objectsize; - source.pool = 0; - return *this; - } - - pointer_vector(pointer_vector &&source) { - operator=(move(source)); - } - - //construction - pointer_vector() : pool(0), poolsize(0), objectsize(0) { - } - - pointer_vector(std::initializer_list list) : pool(0), poolsize(0), objectsize(0) { - for(const T *p = list.begin(); p != list.end(); ++p) add(*p); - } - - ~pointer_vector() { - reset(); - } - }; - - template struct has_size> { enum { value = true }; }; - template struct has_size> { enum { value = true }; }; -} - -#endif diff --git a/snesfilter/ntsc/ntsc.cpp b/snesfilter/ntsc/ntsc.cpp deleted file mode 100644 index 142ce8f8..00000000 --- a/snesfilter/ntsc/ntsc.cpp +++ /dev/null @@ -1,396 +0,0 @@ -#include "snes_ntsc/snes_ntsc.h" -#include "snes_ntsc/snes_ntsc.c" - -#include "ntsc.moc.hpp" -#include "ntsc.moc" - -void NTSCFilter::bind(configuration &config) { - config.attach(hue = 0.0, "snesfilter.ntsc.hue"); - config.attach(saturation = 0.0, "snesfilter.ntsc.saturation"); - config.attach(contrast = 0.0, "snesfilter.ntsc.contrast"); - config.attach(brightness = 0.0, "snesfilter.ntsc.brightness"); - config.attach(sharpness = 0.0, "snesfilter.ntsc.sharpness"); - config.attach(gamma = 0.0, "snesfilter.ntsc.gamma"); - config.attach(resolution = 0.0, "snesfilter.ntsc.resolution"); - config.attach(artifacts = 0.0, "snesfilter.ntsc.artifacts"); - config.attach(fringing = 0.0, "snesfilter.ntsc.fringing"); - config.attach(bleed = 0.0, "snesfilter.ntsc.bleed"); - config.attach(mergeFields = true, "snesfilter.ntsc.mergeFields"); -} - -void NTSCFilter::size(unsigned &outwidth, unsigned &outheight, unsigned width, unsigned height) { - outwidth = SNES_NTSC_OUT_WIDTH(256); - outheight = height; -} - -void NTSCFilter::render( - uint32_t *output, unsigned outpitch, const uint16_t *input, unsigned pitch, - const unsigned *line, unsigned width, unsigned height -) { - if(!ntsc) return; - - width = SNES_NTSC_OUT_WIDTH(256); - burst ^= burst_toggle; - - pitch >>= 1; - outpitch >>= 2; - - unsigned line_burst = burst; - for(unsigned y = 0; y < height;) { - const uint16_t *in = input + y * pitch; - uint32_t *out = output + y * outpitch; - - //render as many lines in one snes_ntsc_blit as possible: - //do this by determining for how many lines the width stays the same - unsigned rheight = 1; - unsigned rwidth = line[y]; - while(y + rheight < height && rwidth == line[y + rheight]) rheight++; - - if(rwidth == 256) { - snes_ntsc_blit (ntsc, in, pitch, line_burst, rwidth, rheight, out, outpitch << 2); - } else { - snes_ntsc_blit_hires(ntsc, in, pitch, line_burst, rwidth, rheight, out, outpitch << 2); - } - - line_burst = (line_burst + rheight) % 3; - y += rheight; - } -} - -QWidget* NTSCFilter::settings() { - if(!widget) { - widget = new QWidget; - widget->setWindowTitle("NTSC Filter Configuration"); - - layout = new QVBoxLayout; - layout->setAlignment(Qt::AlignTop); - widget->setLayout(layout); - - gridLayout = new QGridLayout; - layout->addLayout(gridLayout); - - basicSettings = new QLabel("Basic settings:"); - gridLayout->addWidget(basicSettings, 0, 0, 1, 3); - - hueLabel = new QLabel("Hue:"); - gridLayout->addWidget(hueLabel, 1, 0); - - hueValue = new QLabel; - hueValue->setMinimumWidth(hueValue->fontMetrics().width("-100.0")); - hueValue->setAlignment(Qt::AlignHCenter); - gridLayout->addWidget(hueValue, 1, 1); - - hueSlider = new QSlider(Qt::Horizontal); - hueSlider->setMinimum(-100); - hueSlider->setMaximum(+100); - gridLayout->addWidget(hueSlider, 1, 2); - - saturationLabel = new QLabel("Saturation:"); - gridLayout->addWidget(saturationLabel, 2, 0); - - saturationValue = new QLabel; - saturationValue->setAlignment(Qt::AlignHCenter); - gridLayout->addWidget(saturationValue, 2, 1); - - saturationSlider = new QSlider(Qt::Horizontal); - saturationSlider->setMinimum(-100); - saturationSlider->setMaximum(+100); - gridLayout->addWidget(saturationSlider, 2, 2); - - contrastLabel = new QLabel("Contrast:"); - gridLayout->addWidget(contrastLabel, 3, 0); - - contrastValue = new QLabel; - contrastValue->setAlignment(Qt::AlignHCenter); - gridLayout->addWidget(contrastValue, 3, 1); - - contrastSlider = new QSlider(Qt::Horizontal); - contrastSlider->setMinimum(-100); - contrastSlider->setMaximum(+100); - gridLayout->addWidget(contrastSlider, 3, 2); - - brightnessLabel = new QLabel("Brightness:"); - gridLayout->addWidget(brightnessLabel, 4, 0); - - brightnessValue = new QLabel; - brightnessValue->setAlignment(Qt::AlignHCenter); - gridLayout->addWidget(brightnessValue, 4, 1); - - brightnessSlider = new QSlider(Qt::Horizontal); - brightnessSlider->setMinimum(-100); - brightnessSlider->setMaximum(+100); - gridLayout->addWidget(brightnessSlider, 4, 2); - - sharpnessLabel = new QLabel("Sharpness:"); - gridLayout->addWidget(sharpnessLabel, 5, 0); - - sharpnessValue = new QLabel; - sharpnessValue->setAlignment(Qt::AlignHCenter); - gridLayout->addWidget(sharpnessValue, 5, 1); - - sharpnessSlider = new QSlider(Qt::Horizontal); - sharpnessSlider->setMinimum(-100); - sharpnessSlider->setMaximum(+100); - gridLayout->addWidget(sharpnessSlider, 5, 2); - - advancedSettings = new QLabel("Advanced settings:"); - gridLayout->addWidget(advancedSettings, 6, 0, 1, 3); - - gammaLabel = new QLabel("Gamma:"); - gridLayout->addWidget(gammaLabel, 7, 0); - - gammaValue = new QLabel; - gammaValue->setAlignment(Qt::AlignHCenter); - gridLayout->addWidget(gammaValue, 7, 1); - - gammaSlider = new QSlider(Qt::Horizontal); - gammaSlider->setMinimum(-100); - gammaSlider->setMaximum(+100); - gridLayout->addWidget(gammaSlider, 7, 2); - - resolutionLabel = new QLabel("Resolution:"); - gridLayout->addWidget(resolutionLabel, 8, 0); - - resolutionValue = new QLabel; - resolutionValue->setAlignment(Qt::AlignHCenter); - gridLayout->addWidget(resolutionValue, 8, 1); - - resolutionSlider = new QSlider(Qt::Horizontal); - resolutionSlider->setMinimum(-100); - resolutionSlider->setMaximum(+100); - gridLayout->addWidget(resolutionSlider, 8, 2); - - artifactsLabel = new QLabel("Artifacts:"); - gridLayout->addWidget(artifactsLabel, 9, 0); - - artifactsValue = new QLabel; - artifactsValue->setAlignment(Qt::AlignHCenter); - gridLayout->addWidget(artifactsValue, 9, 1); - - artifactsSlider = new QSlider(Qt::Horizontal); - artifactsSlider->setMinimum(-100); - artifactsSlider->setMaximum(+100); - gridLayout->addWidget(artifactsSlider, 9, 2); - - fringingLabel = new QLabel("Fringing:"); - gridLayout->addWidget(fringingLabel, 10, 0); - - fringingValue = new QLabel; - fringingValue->setAlignment(Qt::AlignHCenter); - gridLayout->addWidget(fringingValue, 10, 1); - - fringingSlider = new QSlider(Qt::Horizontal); - fringingSlider->setMinimum(-100); - fringingSlider->setMaximum(+100); - gridLayout->addWidget(fringingSlider, 10, 2); - - bleedLabel = new QLabel("Color bleed:"); - gridLayout->addWidget(bleedLabel, 11, 0); - - bleedValue = new QLabel; - bleedValue->setAlignment(Qt::AlignHCenter); - gridLayout->addWidget(bleedValue, 11, 1); - - bleedSlider = new QSlider(Qt::Horizontal); - bleedSlider->setMinimum(-100); - bleedSlider->setMaximum(+100); - gridLayout->addWidget(bleedSlider, 11, 2); - - mergeFieldsBox = new QCheckBox("Merge even and odd fields to reduce flicker"); - gridLayout->addWidget(mergeFieldsBox, 12, 0, 1, 3); - - presets = new QLabel("Presets:"); - gridLayout->addWidget(presets, 13, 0, 1, 3); - - controlLayout = new QHBoxLayout; - layout->addLayout(controlLayout); - - rfPreset = new QPushButton("RF"); - controlLayout->addWidget(rfPreset); - - compositePreset = new QPushButton("Composite"); - controlLayout->addWidget(compositePreset); - - svideoPreset = new QPushButton("S-Video"); - controlLayout->addWidget(svideoPreset); - - rgbPreset = new QPushButton("RGB"); - controlLayout->addWidget(rgbPreset); - - monoPreset = new QPushButton("Monochrome"); - controlLayout->addWidget(monoPreset); - - spacer = new QWidget; - spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - spacer->setMinimumWidth(50); - controlLayout->addWidget(spacer); - - ok = new QPushButton("Ok"); - controlLayout->addWidget(ok); - - blockSignals = true; - loadSettingsFromConfig(); - syncUiToSettings(); - initialize(); - - connect(hueSlider, SIGNAL(valueChanged(int)), this, SLOT(syncSettingsToUi())); - connect(saturationSlider, SIGNAL(valueChanged(int)), this, SLOT(syncSettingsToUi())); - connect(contrastSlider, SIGNAL(valueChanged(int)), this, SLOT(syncSettingsToUi())); - connect(brightnessSlider, SIGNAL(valueChanged(int)), this, SLOT(syncSettingsToUi())); - connect(sharpnessSlider, SIGNAL(valueChanged(int)), this, SLOT(syncSettingsToUi())); - connect(gammaSlider, SIGNAL(valueChanged(int)), this, SLOT(syncSettingsToUi())); - connect(resolutionSlider, SIGNAL(valueChanged(int)), this, SLOT(syncSettingsToUi())); - connect(artifactsSlider, SIGNAL(valueChanged(int)), this, SLOT(syncSettingsToUi())); - connect(fringingSlider, SIGNAL(valueChanged(int)), this, SLOT(syncSettingsToUi())); - connect(bleedSlider, SIGNAL(valueChanged(int)), this, SLOT(syncSettingsToUi())); - connect(mergeFieldsBox, SIGNAL(stateChanged(int)), this, SLOT(syncSettingsToUi())); - connect(rfPreset, SIGNAL(released()), this, SLOT(setRfPreset())); - connect(compositePreset, SIGNAL(released()), this, SLOT(setCompositePreset())); - connect(svideoPreset, SIGNAL(released()), this, SLOT(setSvideoPreset())); - connect(rgbPreset, SIGNAL(released()), this, SLOT(setRgbPreset())); - connect(monoPreset, SIGNAL(released()), this, SLOT(setMonoPreset())); - connect(ok, SIGNAL(released()), widget, SLOT(hide())); - - blockSignals = false; - } - - return widget; -} - -void NTSCFilter::initialize() { - burst = 0; - burst_toggle = (setup.merge_fields ? 0 : 1); //don't toggle burst when fields are merged - snes_ntsc_init(ntsc, &setup); -} - -void NTSCFilter::loadSettingsFromConfig() { - setup.hue = hue; - setup.saturation = saturation; - setup.contrast = contrast; - setup.brightness = brightness; - setup.sharpness = sharpness; - - setup.gamma = gamma; - setup.resolution = resolution; - setup.artifacts = artifacts; - setup.fringing = fringing; - setup.bleed = bleed; - - setup.merge_fields = mergeFields; -} - -void NTSCFilter::syncUiToSettings() { - blockSignals = true; - - hue = setup.hue; - saturation = setup.saturation; - contrast = setup.contrast; - brightness = setup.brightness; - sharpness = setup.sharpness; - - gamma = setup.gamma; - resolution = setup.resolution; - artifacts = setup.artifacts; - fringing = setup.fringing; - bleed = setup.bleed; - - mergeFields = setup.merge_fields; - - hueValue->setText(string() << hue); - hueSlider->setSliderPosition(hue * 100); - - saturationValue->setText(string() << saturation); - saturationSlider->setSliderPosition(saturation * 100); - - contrastValue->setText(string() << contrast); - contrastSlider->setSliderPosition(contrast * 100); - - brightnessValue->setText(string() << brightness); - brightnessSlider->setSliderPosition(brightness * 100); - - sharpnessValue->setText(string() << sharpness); - sharpnessSlider->setSliderPosition(sharpness * 100); - - gammaValue->setText(string() << gamma); - gammaSlider->setSliderPosition(gamma * 100); - - resolutionValue->setText(string() << resolution); - resolutionSlider->setSliderPosition(resolution * 100); - - artifactsValue->setText(string() << artifacts); - artifactsSlider->setSliderPosition(artifacts * 100); - - fringingValue->setText(string() << fringing); - fringingSlider->setSliderPosition(fringing * 100); - - bleedValue->setText(string() << bleed); - bleedSlider->setSliderPosition(bleed * 100); - - mergeFieldsBox->setChecked(mergeFields); - - blockSignals = false; -} - -void NTSCFilter::syncSettingsToUi() { - if(blockSignals) return; - - hue = hueSlider->sliderPosition() / 100.0; - saturation = saturationSlider->sliderPosition() / 100.0; - contrast = contrastSlider->sliderPosition() / 100.0; - brightness = brightnessSlider->sliderPosition() / 100.0; - sharpness = sharpnessSlider->sliderPosition() / 100.0; - - gamma = gammaSlider->sliderPosition() / 100.0; - resolution = resolutionSlider->sliderPosition() / 100.0; - artifacts = artifactsSlider->sliderPosition() / 100.0; - fringing = fringingSlider->sliderPosition() / 100.0; - bleed = bleedSlider->sliderPosition() / 100.0; - - mergeFields = mergeFieldsBox->isChecked(); - - loadSettingsFromConfig(); - syncUiToSettings(); - initialize(); -} - -void NTSCFilter::setRfPreset() { - static snes_ntsc_setup_t defaults; - setup = defaults; - syncUiToSettings(); - initialize(); -} - -void NTSCFilter::setCompositePreset() { - setup = snes_ntsc_composite; - syncUiToSettings(); - initialize(); -} - -void NTSCFilter::setSvideoPreset() { - setup = snes_ntsc_svideo; - syncUiToSettings(); - initialize(); -} - -void NTSCFilter::setRgbPreset() { - setup = snes_ntsc_rgb; - syncUiToSettings(); - initialize(); -} - -void NTSCFilter::setMonoPreset() { - setup = snes_ntsc_monochrome; - syncUiToSettings(); - initialize(); -} - -NTSCFilter::NTSCFilter() : widget(0) { - ntsc = (snes_ntsc_t*)malloc(sizeof *ntsc); - static snes_ntsc_setup_t defaults; - setup = defaults; - initialize(); -} - -NTSCFilter::~NTSCFilter() { - if(ntsc) free(ntsc); -} diff --git a/snesfilter/ntsc/ntsc.moc.hpp b/snesfilter/ntsc/ntsc.moc.hpp deleted file mode 100644 index a99a6bb4..00000000 --- a/snesfilter/ntsc/ntsc.moc.hpp +++ /dev/null @@ -1,91 +0,0 @@ -class NTSCFilter : public QObject { - Q_OBJECT - -public: - void bind(configuration&); - void size(unsigned&, unsigned&, unsigned, unsigned); - void render(uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned); - QWidget* settings(); - - NTSCFilter(); - ~NTSCFilter(); - -private: - void initialize(); - void loadSettingsFromConfig(); - void syncUiToSettings(); - -private slots: - void syncSettingsToUi(); - void setRfPreset(); - void setCompositePreset(); - void setSvideoPreset(); - void setRgbPreset(); - void setMonoPreset(); - -private: - QWidget *widget; - QVBoxLayout *layout; - QGridLayout *gridLayout; - QLabel *basicSettings; - QLabel *hueLabel; - QLabel *hueValue; - QSlider *hueSlider; - QLabel *saturationLabel; - QLabel *saturationValue; - QSlider *saturationSlider; - QLabel *contrastLabel; - QLabel *contrastValue; - QSlider *contrastSlider; - QLabel *brightnessLabel; - QLabel *brightnessValue; - QSlider *brightnessSlider; - QLabel *sharpnessLabel; - QLabel *sharpnessValue; - QSlider *sharpnessSlider; - QLabel *advancedSettings; - QLabel *gammaLabel; - QLabel *gammaValue; - QSlider *gammaSlider; - QLabel *resolutionLabel; - QLabel *resolutionValue; - QSlider *resolutionSlider; - QLabel *artifactsLabel; - QLabel *artifactsValue; - QSlider *artifactsSlider; - QLabel *fringingLabel; - QLabel *fringingValue; - QSlider *fringingSlider; - QLabel *bleedLabel; - QLabel *bleedValue; - QSlider *bleedSlider; - QCheckBox *mergeFieldsBox; - QLabel *presets; - QHBoxLayout *controlLayout; - QPushButton *rfPreset; - QPushButton *compositePreset; - QPushButton *svideoPreset; - QPushButton *rgbPreset; - QPushButton *monoPreset; - QWidget *spacer; - QPushButton *ok; - - bool blockSignals; - - struct snes_ntsc_t *ntsc; - snes_ntsc_setup_t setup; - int burst, burst_toggle; - - //settings - double hue; - double saturation; - double contrast; - double brightness; - double sharpness; - double gamma; - double resolution; - double artifacts; - double fringing; - double bleed; - bool mergeFields; -} filter_ntsc; diff --git a/snesfilter/ntsc/snes_ntsc/snes_ntsc.c b/snesfilter/ntsc/snes_ntsc/snes_ntsc.c deleted file mode 100644 index f622baf8..00000000 --- a/snesfilter/ntsc/snes_ntsc/snes_ntsc.c +++ /dev/null @@ -1,251 +0,0 @@ -/* snes_ntsc 0.2.2. http://www.slack.net/~ant/ */ - -#include "snes_ntsc.h" - -/* Copyright (C) 2006-2007 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -snes_ntsc_setup_t const snes_ntsc_monochrome = { 0,-1, 0, 0,.2, 0,.2,-.2,-.2,-1, 1, 0, 0 }; -snes_ntsc_setup_t const snes_ntsc_composite = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }; -snes_ntsc_setup_t const snes_ntsc_svideo = { 0, 0, 0, 0,.2, 0,.2, -1, -1, 0, 1, 0, 0 }; -snes_ntsc_setup_t const snes_ntsc_rgb = { 0, 0, 0, 0,.2, 0,.7, -1, -1,-1, 1, 0, 0 }; - -#define alignment_count 3 -#define burst_count 3 -#define rescale_in 8 -#define rescale_out 7 - -#define artifacts_mid 1.0f -#define fringing_mid 1.0f -#define std_decoder_hue 0 - -#define rgb_bits 7 /* half normal range to allow for doubled hires pixels */ -#define gamma_size 32 - -#include "snes_ntsc_impl.h" - -/* 3 input pixels -> 8 composite samples */ -pixel_info_t const snes_ntsc_pixels [alignment_count] = { - { PIXEL_OFFSET( -4, -9 ), { 1, 1, .6667f, 0 } }, - { PIXEL_OFFSET( -2, -7 ), { .3333f, 1, 1, .3333f } }, - { PIXEL_OFFSET( 0, -5 ), { 0, .6667f, 1, 1 } }, -}; - -static void merge_kernel_fields( snes_ntsc_rgb_t* io ) -{ - int n; - for ( n = burst_size; n; --n ) - { - snes_ntsc_rgb_t p0 = io [burst_size * 0] + rgb_bias; - snes_ntsc_rgb_t p1 = io [burst_size * 1] + rgb_bias; - snes_ntsc_rgb_t p2 = io [burst_size * 2] + rgb_bias; - /* merge colors without losing precision */ - io [burst_size * 0] = - ((p0 + p1 - ((p0 ^ p1) & snes_ntsc_rgb_builder)) >> 1) - rgb_bias; - io [burst_size * 1] = - ((p1 + p2 - ((p1 ^ p2) & snes_ntsc_rgb_builder)) >> 1) - rgb_bias; - io [burst_size * 2] = - ((p2 + p0 - ((p2 ^ p0) & snes_ntsc_rgb_builder)) >> 1) - rgb_bias; - ++io; - } -} - -static void correct_errors( snes_ntsc_rgb_t color, snes_ntsc_rgb_t* out ) -{ - int n; - for ( n = burst_count; n; --n ) - { - unsigned i; - for ( i = 0; i < rgb_kernel_size / 2; i++ ) - { - snes_ntsc_rgb_t error = color - - out [i ] - out [(i+12)%14+14] - out [(i+10)%14+28] - - out [i + 7] - out [i + 5 +14] - out [i + 3 +28]; - DISTRIBUTE_ERROR( i+3+28, i+5+14, i+7 ); - } - out += alignment_count * rgb_kernel_size; - } -} - -void snes_ntsc_init( snes_ntsc_t* ntsc, snes_ntsc_setup_t const* setup ) -{ - int merge_fields; - int entry; - init_t impl; - if ( !setup ) - setup = &snes_ntsc_composite; - init( &impl, setup ); - - merge_fields = setup->merge_fields; - if ( setup->artifacts <= -1 && setup->fringing <= -1 ) - merge_fields = 1; - - for ( entry = 0; entry < snes_ntsc_palette_size; entry++ ) - { - /* Reduce number of significant bits of source color. Clearing the - low bits of R and B were least notictable. Modifying green was too - noticeable. */ - int ir = entry >> 8 & 0x1E; - int ig = entry >> 4 & 0x1F; - int ib = entry << 1 & 0x1E; - - #if SNES_NTSC_BSNES_COLORTBL - if ( setup->bsnes_colortbl ) - { - int bgr15 = (ib << 10) | (ig << 5) | ir; - unsigned long rgb16 = setup->bsnes_colortbl [bgr15]; - ir = rgb16 >> 11 & 0x1E; - ig = rgb16 >> 6 & 0x1F; - ib = rgb16 & 0x1E; - } - #endif - - { - float rr = impl.to_float [ir]; - float gg = impl.to_float [ig]; - float bb = impl.to_float [ib]; - - float y, i, q = RGB_TO_YIQ( rr, gg, bb, y, i ); - - int r, g, b = YIQ_TO_RGB( y, i, q, impl.to_rgb, int, r, g ); - snes_ntsc_rgb_t rgb = PACK_RGB( r, g, b ); - - snes_ntsc_rgb_t* out = ntsc->table [entry]; - gen_kernel( &impl, y, i, q, out ); - if ( merge_fields ) - merge_kernel_fields( out ); - correct_errors( rgb, out ); - } - } -} - -#ifndef SNES_NTSC_NO_BLITTERS - -void snes_ntsc_blit( snes_ntsc_t const* ntsc, SNES_NTSC_IN_T const* input, long in_row_width, - int burst_phase, int in_width, int in_height, void* rgb_out, long out_pitch ) -{ - int chunk_count = (in_width - 1) / snes_ntsc_in_chunk; - for ( ; in_height; --in_height ) - { - SNES_NTSC_IN_T const* line_in = input; - SNES_NTSC_BEGIN_ROW( ntsc, burst_phase, - snes_ntsc_black, snes_ntsc_black, SNES_NTSC_ADJ_IN( *line_in ) ); - snes_ntsc_out_t* restrict line_out = (snes_ntsc_out_t*) rgb_out; - int n; - ++line_in; - - for ( n = chunk_count; n; --n ) - { - /* order of input and output pixels must not be altered */ - SNES_NTSC_COLOR_IN( 0, SNES_NTSC_ADJ_IN( line_in [0] ) ); - SNES_NTSC_RGB_OUT( 0, line_out [0], SNES_NTSC_OUT_DEPTH ); - SNES_NTSC_RGB_OUT( 1, line_out [1], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 1, SNES_NTSC_ADJ_IN( line_in [1] ) ); - SNES_NTSC_RGB_OUT( 2, line_out [2], SNES_NTSC_OUT_DEPTH ); - SNES_NTSC_RGB_OUT( 3, line_out [3], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 2, SNES_NTSC_ADJ_IN( line_in [2] ) ); - SNES_NTSC_RGB_OUT( 4, line_out [4], SNES_NTSC_OUT_DEPTH ); - SNES_NTSC_RGB_OUT( 5, line_out [5], SNES_NTSC_OUT_DEPTH ); - SNES_NTSC_RGB_OUT( 6, line_out [6], SNES_NTSC_OUT_DEPTH ); - - line_in += 3; - line_out += 7; - } - - /* finish final pixels */ - SNES_NTSC_COLOR_IN( 0, snes_ntsc_black ); - SNES_NTSC_RGB_OUT( 0, line_out [0], SNES_NTSC_OUT_DEPTH ); - SNES_NTSC_RGB_OUT( 1, line_out [1], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 1, snes_ntsc_black ); - SNES_NTSC_RGB_OUT( 2, line_out [2], SNES_NTSC_OUT_DEPTH ); - SNES_NTSC_RGB_OUT( 3, line_out [3], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 2, snes_ntsc_black ); - SNES_NTSC_RGB_OUT( 4, line_out [4], SNES_NTSC_OUT_DEPTH ); - SNES_NTSC_RGB_OUT( 5, line_out [5], SNES_NTSC_OUT_DEPTH ); - SNES_NTSC_RGB_OUT( 6, line_out [6], SNES_NTSC_OUT_DEPTH ); - - burst_phase = (burst_phase + 1) % snes_ntsc_burst_count; - input += in_row_width; - rgb_out = (char*) rgb_out + out_pitch; - } -} - -void snes_ntsc_blit_hires( snes_ntsc_t const* ntsc, SNES_NTSC_IN_T const* input, long in_row_width, - int burst_phase, int in_width, int in_height, void* rgb_out, long out_pitch ) -{ - int chunk_count = (in_width - 2) / (snes_ntsc_in_chunk * 2); - for ( ; in_height; --in_height ) - { - SNES_NTSC_IN_T const* line_in = input; - SNES_NTSC_HIRES_ROW( ntsc, burst_phase, - snes_ntsc_black, snes_ntsc_black, snes_ntsc_black, - SNES_NTSC_ADJ_IN( line_in [0] ), - SNES_NTSC_ADJ_IN( line_in [1] ) ); - snes_ntsc_out_t* restrict line_out = (snes_ntsc_out_t*) rgb_out; - int n; - line_in += 2; - - for ( n = chunk_count; n; --n ) - { - /* twice as many input pixels per chunk */ - SNES_NTSC_COLOR_IN( 0, SNES_NTSC_ADJ_IN( line_in [0] ) ); - SNES_NTSC_HIRES_OUT( 0, line_out [0], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 1, SNES_NTSC_ADJ_IN( line_in [1] ) ); - SNES_NTSC_HIRES_OUT( 1, line_out [1], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 2, SNES_NTSC_ADJ_IN( line_in [2] ) ); - SNES_NTSC_HIRES_OUT( 2, line_out [2], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 3, SNES_NTSC_ADJ_IN( line_in [3] ) ); - SNES_NTSC_HIRES_OUT( 3, line_out [3], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 4, SNES_NTSC_ADJ_IN( line_in [4] ) ); - SNES_NTSC_HIRES_OUT( 4, line_out [4], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 5, SNES_NTSC_ADJ_IN( line_in [5] ) ); - SNES_NTSC_HIRES_OUT( 5, line_out [5], SNES_NTSC_OUT_DEPTH ); - SNES_NTSC_HIRES_OUT( 6, line_out [6], SNES_NTSC_OUT_DEPTH ); - - line_in += 6; - line_out += 7; - } - - SNES_NTSC_COLOR_IN( 0, snes_ntsc_black ); - SNES_NTSC_HIRES_OUT( 0, line_out [0], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 1, snes_ntsc_black ); - SNES_NTSC_HIRES_OUT( 1, line_out [1], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 2, snes_ntsc_black ); - SNES_NTSC_HIRES_OUT( 2, line_out [2], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 3, snes_ntsc_black ); - SNES_NTSC_HIRES_OUT( 3, line_out [3], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 4, snes_ntsc_black ); - SNES_NTSC_HIRES_OUT( 4, line_out [4], SNES_NTSC_OUT_DEPTH ); - - SNES_NTSC_COLOR_IN( 5, snes_ntsc_black ); - SNES_NTSC_HIRES_OUT( 5, line_out [5], SNES_NTSC_OUT_DEPTH ); - SNES_NTSC_HIRES_OUT( 6, line_out [6], SNES_NTSC_OUT_DEPTH ); - - burst_phase = (burst_phase + 1) % snes_ntsc_burst_count; - input += in_row_width; - rgb_out = (char*) rgb_out + out_pitch; - } -} - -#endif diff --git a/snesfilter/ntsc/snes_ntsc/snes_ntsc.h b/snesfilter/ntsc/snes_ntsc/snes_ntsc.h deleted file mode 100644 index fff97ecd..00000000 --- a/snesfilter/ntsc/snes_ntsc/snes_ntsc.h +++ /dev/null @@ -1,228 +0,0 @@ -/* SNES NTSC video filter */ - -/* snes_ntsc 0.2.2 */ -#ifndef SNES_NTSC_H -#define SNES_NTSC_H - -#include "snes_ntsc_config.h" - -#ifdef __cplusplus - extern "C" { -#endif - -/* Image parameters, ranging from -1.0 to 1.0. Actual internal values shown -in parenthesis and should remain fairly stable in future versions. */ -typedef struct snes_ntsc_setup_t -{ - /* Basic parameters */ - double hue; /* -1 = -180 degrees +1 = +180 degrees */ - double saturation; /* -1 = grayscale (0.0) +1 = oversaturated colors (2.0) */ - double contrast; /* -1 = dark (0.5) +1 = light (1.5) */ - double brightness; /* -1 = dark (0.5) +1 = light (1.5) */ - double sharpness; /* edge contrast enhancement/blurring */ - - /* Advanced parameters */ - double gamma; /* -1 = dark (1.5) +1 = light (0.5) */ - double resolution; /* image resolution */ - double artifacts; /* artifacts caused by color changes */ - double fringing; /* color artifacts caused by brightness changes */ - double bleed; /* color bleed (color resolution reduction) */ - int merge_fields; /* if 1, merges even and odd fields together to reduce flicker */ - float const* decoder_matrix; /* optional RGB decoder matrix, 6 elements */ - - unsigned long const* bsnes_colortbl; /* undocumented; set to 0 */ -} snes_ntsc_setup_t; - -/* Video format presets */ -extern snes_ntsc_setup_t const snes_ntsc_composite; /* color bleeding + artifacts */ -extern snes_ntsc_setup_t const snes_ntsc_svideo; /* color bleeding only */ -extern snes_ntsc_setup_t const snes_ntsc_rgb; /* crisp image */ -extern snes_ntsc_setup_t const snes_ntsc_monochrome;/* desaturated + artifacts */ - -/* Initializes and adjusts parameters. Can be called multiple times on the same -snes_ntsc_t object. Can pass NULL for either parameter. */ -typedef struct snes_ntsc_t snes_ntsc_t; -void snes_ntsc_init( snes_ntsc_t* ntsc, snes_ntsc_setup_t const* setup ); - -/* Filters one or more rows of pixels. Input pixel format is set by SNES_NTSC_IN_FORMAT -and output RGB depth is set by SNES_NTSC_OUT_DEPTH. Both default to 16-bit RGB. -In_row_width is the number of pixels to get to the next input row. Out_pitch -is the number of *bytes* to get to the next output row. */ -void snes_ntsc_blit( snes_ntsc_t const* ntsc, SNES_NTSC_IN_T const* input, - long in_row_width, int burst_phase, int in_width, int in_height, - void* rgb_out, long out_pitch ); - -void snes_ntsc_blit_hires( snes_ntsc_t const* ntsc, SNES_NTSC_IN_T const* input, - long in_row_width, int burst_phase, int in_width, int in_height, - void* rgb_out, long out_pitch ); - -/* Number of output pixels written by low-res blitter for given input width. Width -might be rounded down slightly; use SNES_NTSC_IN_WIDTH() on result to find rounded -value. Guaranteed not to round 256 down at all. */ -#define SNES_NTSC_OUT_WIDTH( in_width ) \ - ((((in_width) - 1) / snes_ntsc_in_chunk + 1) * snes_ntsc_out_chunk) - -/* Number of low-res input pixels that will fit within given output width. Might be -rounded down slightly; use SNES_NTSC_OUT_WIDTH() on result to find rounded -value. */ -#define SNES_NTSC_IN_WIDTH( out_width ) \ - (((out_width) / snes_ntsc_out_chunk - 1) * snes_ntsc_in_chunk + 1) - - -/* Interface for user-defined custom blitters */ - -enum { snes_ntsc_in_chunk = 3 }; /* number of input pixels read per chunk */ -enum { snes_ntsc_out_chunk = 7 }; /* number of output pixels generated per chunk */ -enum { snes_ntsc_black = 0 }; /* palette index for black */ -enum { snes_ntsc_burst_count = 3 }; /* burst phase cycles through 0, 1, and 2 */ - -/* Begins outputting row and starts three pixels. First pixel will be cut off a bit. -Use snes_ntsc_black for unused pixels. Declares variables, so must be before first -statement in a block (unless you're using C++). */ -#define SNES_NTSC_BEGIN_ROW( ntsc, burst, pixel0, pixel1, pixel2 ) \ - char const* ktable = \ - (char const*) (ntsc)->table + burst * (snes_ntsc_burst_size * sizeof (snes_ntsc_rgb_t));\ - SNES_NTSC_BEGIN_ROW_6_( pixel0, pixel1, pixel2, SNES_NTSC_IN_FORMAT, ktable ) - -/* Begins input pixel */ -#define SNES_NTSC_COLOR_IN( index, color ) \ - SNES_NTSC_COLOR_IN_( index, color, SNES_NTSC_IN_FORMAT, ktable ) - -/* Generates output pixel. Bits can be 24, 16, 15, 14, 32 (treated as 24), or 0: -24: RRRRRRRR GGGGGGGG BBBBBBBB (8-8-8 RGB) -16: RRRRRGGG GGGBBBBB (5-6-5 RGB) -15: RRRRRGG GGGBBBBB (5-5-5 RGB) -14: BBBBBGG GGGRRRRR (5-5-5 BGR, native SNES format) - 0: xxxRRRRR RRRxxGGG GGGGGxxB BBBBBBBx (native internal format; x = junk bits) */ -#define SNES_NTSC_RGB_OUT( index, rgb_out, bits ) \ - SNES_NTSC_RGB_OUT_14_( index, rgb_out, bits, 1 ) - -/* Hires equivalents */ -#define SNES_NTSC_HIRES_ROW( ntsc, burst, pixel1, pixel2, pixel3, pixel4, pixel5 ) \ - char const* ktable = \ - (char const*) (ntsc)->table + burst * (snes_ntsc_burst_size * sizeof (snes_ntsc_rgb_t));\ - unsigned const snes_ntsc_pixel1_ = (pixel1);\ - snes_ntsc_rgb_t const* kernel1 = SNES_NTSC_IN_FORMAT( ktable, snes_ntsc_pixel1_ );\ - unsigned const snes_ntsc_pixel2_ = (pixel2);\ - snes_ntsc_rgb_t const* kernel2 = SNES_NTSC_IN_FORMAT( ktable, snes_ntsc_pixel2_ );\ - unsigned const snes_ntsc_pixel3_ = (pixel3);\ - snes_ntsc_rgb_t const* kernel3 = SNES_NTSC_IN_FORMAT( ktable, snes_ntsc_pixel3_ );\ - unsigned const snes_ntsc_pixel4_ = (pixel4);\ - snes_ntsc_rgb_t const* kernel4 = SNES_NTSC_IN_FORMAT( ktable, snes_ntsc_pixel4_ );\ - unsigned const snes_ntsc_pixel5_ = (pixel5);\ - snes_ntsc_rgb_t const* kernel5 = SNES_NTSC_IN_FORMAT( ktable, snes_ntsc_pixel5_ );\ - snes_ntsc_rgb_t const* kernel0 = kernel1;\ - snes_ntsc_rgb_t const* kernelx0;\ - snes_ntsc_rgb_t const* kernelx1 = kernel1;\ - snes_ntsc_rgb_t const* kernelx2 = kernel1;\ - snes_ntsc_rgb_t const* kernelx3 = kernel1;\ - snes_ntsc_rgb_t const* kernelx4 = kernel1;\ - snes_ntsc_rgb_t const* kernelx5 = kernel1 - -#define SNES_NTSC_HIRES_OUT( x, rgb_out, bits ) {\ - snes_ntsc_rgb_t raw_ =\ - kernel0 [ x ] + kernel2 [(x+5)%7+14] + kernel4 [(x+3)%7+28] +\ - kernelx0 [(x+7)%7+7] + kernelx2 [(x+5)%7+21] + kernelx4 [(x+3)%7+35] +\ - kernel1 [(x+6)%7 ] + kernel3 [(x+4)%7+14] + kernel5 [(x+2)%7+28] +\ - kernelx1 [(x+6)%7+7] + kernelx3 [(x+4)%7+21] + kernelx5 [(x+2)%7+35];\ - SNES_NTSC_CLAMP_( raw_, 0 );\ - SNES_NTSC_RGB_OUT_( rgb_out, (bits), 0 );\ -} - - -/* private */ -enum { snes_ntsc_entry_size = 128 }; -enum { snes_ntsc_palette_size = 0x2000 }; -typedef unsigned long snes_ntsc_rgb_t; -struct snes_ntsc_t { - snes_ntsc_rgb_t table [snes_ntsc_palette_size] [snes_ntsc_entry_size]; -}; -enum { snes_ntsc_burst_size = snes_ntsc_entry_size / snes_ntsc_burst_count }; - -#define SNES_NTSC_RGB16( ktable, n ) \ - (snes_ntsc_rgb_t const*) (ktable + ((n & 0x001E) | (n >> 1 & 0x03E0) | (n >> 2 & 0x3C00)) * \ - (snes_ntsc_entry_size / 2 * sizeof (snes_ntsc_rgb_t))) - -#define SNES_NTSC_BGR15( ktable, n ) \ - (snes_ntsc_rgb_t const*) (ktable + ((n << 9 & 0x3C00) | (n & 0x03E0) | (n >> 10 & 0x001E)) * \ - (snes_ntsc_entry_size / 2 * sizeof (snes_ntsc_rgb_t))) - -/* common 3->7 ntsc macros */ -#define SNES_NTSC_BEGIN_ROW_6_( pixel0, pixel1, pixel2, ENTRY, table ) \ - unsigned const snes_ntsc_pixel0_ = (pixel0);\ - snes_ntsc_rgb_t const* kernel0 = ENTRY( table, snes_ntsc_pixel0_ );\ - unsigned const snes_ntsc_pixel1_ = (pixel1);\ - snes_ntsc_rgb_t const* kernel1 = ENTRY( table, snes_ntsc_pixel1_ );\ - unsigned const snes_ntsc_pixel2_ = (pixel2);\ - snes_ntsc_rgb_t const* kernel2 = ENTRY( table, snes_ntsc_pixel2_ );\ - snes_ntsc_rgb_t const* kernelx0;\ - snes_ntsc_rgb_t const* kernelx1 = kernel0;\ - snes_ntsc_rgb_t const* kernelx2 = kernel0 - -#define SNES_NTSC_RGB_OUT_14_( x, rgb_out, bits, shift ) {\ - snes_ntsc_rgb_t raw_ =\ - kernel0 [x ] + kernel1 [(x+12)%7+14] + kernel2 [(x+10)%7+28] +\ - kernelx0 [(x+7)%14] + kernelx1 [(x+ 5)%7+21] + kernelx2 [(x+ 3)%7+35];\ - SNES_NTSC_CLAMP_( raw_, shift );\ - SNES_NTSC_RGB_OUT_( rgb_out, bits, shift );\ -} - -/* common ntsc macros */ -#define snes_ntsc_rgb_builder ((1L << 21) | (1 << 11) | (1 << 1)) -#define snes_ntsc_clamp_mask (snes_ntsc_rgb_builder * 3 / 2) -#define snes_ntsc_clamp_add (snes_ntsc_rgb_builder * 0x101) -#define SNES_NTSC_CLAMP_( io, shift ) {\ - snes_ntsc_rgb_t sub = (io) >> (9-(shift)) & snes_ntsc_clamp_mask;\ - snes_ntsc_rgb_t clamp = snes_ntsc_clamp_add - sub;\ - io |= clamp;\ - clamp -= sub;\ - io &= clamp;\ -} - -#define SNES_NTSC_COLOR_IN_( index, color, ENTRY, table ) {\ - unsigned color_;\ - kernelx##index = kernel##index;\ - kernel##index = (color_ = (color), ENTRY( table, color_ ));\ -} - -/* x is always zero except in snes_ntsc library */ -/* original routine */ -/* -#define SNES_NTSC_RGB_OUT_( rgb_out, bits, x ) {\ - if ( bits == 16 )\ - rgb_out = (raw_>>(13-x)& 0xF800)|(raw_>>(8-x)&0x07E0)|(raw_>>(4-x)&0x001F);\ - if ( bits == 24 || bits == 32 )\ - rgb_out = (raw_>>(5-x)&0xFF0000)|(raw_>>(3-x)&0xFF00)|(raw_>>(1-x)&0xFF);\ - if ( bits == 15 )\ - rgb_out = (raw_>>(14-x)& 0x7C00)|(raw_>>(9-x)&0x03E0)|(raw_>>(4-x)&0x001F);\ - if ( bits == 14 )\ - rgb_out = (raw_>>(24-x)& 0x001F)|(raw_>>(9-x)&0x03E0)|(raw_<<(6+x)&0x7C00);\ - if ( bits == 0 )\ - rgb_out = raw_ << x;\ -} -*/ - -/* custom bsnes routine -- hooks into bsnes colortable */ -#define SNES_NTSC_RGB_OUT_( rgb_out, bits, x ) {\ - if ( bits == 16 ) {\ - rgb_out = (raw_>>(13-x)& 0xF800)|(raw_>>(8-x)&0x07E0)|(raw_>>(4-x)&0x001F);\ - rgb_out = ((rgb_out&0xf800)>>11)|((rgb_out&0x07c0)>>1)|((rgb_out&0x001f)<<10);\ - rgb_out = colortable[rgb_out];\ - } else if ( bits == 24 || bits == 32 ) {\ - rgb_out = (raw_>>(5-x)&0xFF0000)|(raw_>>(3-x)&0xFF00)|(raw_>>(1-x)&0xFF);\ - rgb_out = ((rgb_out&0xf80000)>>19)|((rgb_out&0x00f800)>>6)|((rgb_out&0x0000f8)<<7);\ - rgb_out = colortable[rgb_out];\ - } else if ( bits == 15 ) {\ - rgb_out = (raw_>>(14-x)& 0x7C00)|(raw_>>(9-x)&0x03E0)|(raw_>>(4-x)&0x001F);\ - rgb_out = ((rgb_out&0x7c00)>>10)|((rgb_out&0x03e0))|((rgb_out&0x001f)<<10);\ - rgb_out = colortable[rgb_out];\ - } else {\ - rgb_out = raw_ << x;\ - }\ -} - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/snesfilter/ntsc/snes_ntsc/snes_ntsc_config.h b/snesfilter/ntsc/snes_ntsc/snes_ntsc_config.h deleted file mode 100644 index 7ab94c2c..00000000 --- a/snesfilter/ntsc/snes_ntsc/snes_ntsc_config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Configure library by modifying this file */ - -#ifndef SNES_NTSC_CONFIG_H -#define SNES_NTSC_CONFIG_H - -/* Format of source pixels */ -/* #define SNES_NTSC_IN_FORMAT SNES_NTSC_RGB16 */ -#define SNES_NTSC_IN_FORMAT SNES_NTSC_BGR15 - -/* The following affect the built-in blitter only; a custom blitter can -handle things however it wants. */ - -/* Bits per pixel of output. Can be 15, 16, 32, or 24 (same as 32). */ -#define SNES_NTSC_OUT_DEPTH 32 - -/* Type of input pixel values */ -#define SNES_NTSC_IN_T unsigned short - -/* Each raw pixel input value is passed through this. You might want to mask -the pixel index if you use the high bits as flags, etc. */ -#define SNES_NTSC_ADJ_IN( in ) in - -/* For each pixel, this is the basic operation: -output_color = SNES_NTSC_ADJ_IN( SNES_NTSC_IN_T ) */ - -#endif diff --git a/snesfilter/ntsc/snes_ntsc/snes_ntsc_impl.h b/snesfilter/ntsc/snes_ntsc/snes_ntsc_impl.h deleted file mode 100644 index 1d7adc78..00000000 --- a/snesfilter/ntsc/snes_ntsc/snes_ntsc_impl.h +++ /dev/null @@ -1,439 +0,0 @@ -/* snes_ntsc 0.2.2. http://www.slack.net/~ant/ */ - -/* Common implementation of NTSC filters */ - -#include -#include - -/* Copyright (C) 2006 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#define DISABLE_CORRECTION 0 - -#undef PI -#define PI 3.14159265358979323846f - -#ifndef LUMA_CUTOFF - #define LUMA_CUTOFF 0.20 -#endif -#ifndef gamma_size - #define gamma_size 1 -#endif -#ifndef rgb_bits - #define rgb_bits 8 -#endif -#ifndef artifacts_max - #define artifacts_max (artifacts_mid * 1.5f) -#endif -#ifndef fringing_max - #define fringing_max (fringing_mid * 2) -#endif -#ifndef STD_HUE_CONDITION - #define STD_HUE_CONDITION( setup ) 1 -#endif - -#define ext_decoder_hue (std_decoder_hue + 15) -#define rgb_unit (1 << rgb_bits) -#define rgb_offset (rgb_unit * 2 + 0.5f) - -enum { burst_size = snes_ntsc_entry_size / burst_count }; -enum { kernel_half = 16 }; -enum { kernel_size = kernel_half * 2 + 1 }; - -typedef struct init_t -{ - float to_rgb [burst_count * 6]; - float to_float [gamma_size]; - float contrast; - float brightness; - float artifacts; - float fringing; - float kernel [rescale_out * kernel_size * 2]; -} init_t; - -#define ROTATE_IQ( i, q, sin_b, cos_b ) {\ - float t;\ - t = i * cos_b - q * sin_b;\ - q = i * sin_b + q * cos_b;\ - i = t;\ -} - -static void init_filters( init_t* impl, snes_ntsc_setup_t const* setup ) -{ -#if rescale_out > 1 - float kernels [kernel_size * 2]; -#else - float* const kernels = impl->kernel; -#endif - - /* generate luma (y) filter using sinc kernel */ - { - /* sinc with rolloff (dsf) */ - float const rolloff = 1 + (float) setup->sharpness * (float) 0.032; - float const maxh = 32; - float const pow_a_n = (float) pow( rolloff, maxh ); - float sum; - int i; - /* quadratic mapping to reduce negative (blurring) range */ - float to_angle = (float) setup->resolution + 1; - to_angle = PI / maxh * (float) LUMA_CUTOFF * (to_angle * to_angle + 1); - - kernels [kernel_size * 3 / 2] = maxh; /* default center value */ - for ( i = 0; i < kernel_half * 2 + 1; i++ ) - { - int x = i - kernel_half; - float angle = x * to_angle; - /* instability occurs at center point with rolloff very close to 1.0 */ - if ( x || pow_a_n > (float) 1.056 || pow_a_n < (float) 0.981 ) - { - float rolloff_cos_a = rolloff * (float) cos( angle ); - float num = 1 - rolloff_cos_a - - pow_a_n * (float) cos( maxh * angle ) + - pow_a_n * rolloff * (float) cos( (maxh - 1) * angle ); - float den = 1 - rolloff_cos_a - rolloff_cos_a + rolloff * rolloff; - float dsf = num / den; - kernels [kernel_size * 3 / 2 - kernel_half + i] = dsf - (float) 0.5; - } - } - - /* apply blackman window and find sum */ - sum = 0; - for ( i = 0; i < kernel_half * 2 + 1; i++ ) - { - float x = PI * 2 / (kernel_half * 2) * i; - float blackman = 0.42f - 0.5f * (float) cos( x ) + 0.08f * (float) cos( x * 2 ); - sum += (kernels [kernel_size * 3 / 2 - kernel_half + i] *= blackman); - } - - /* normalize kernel */ - sum = 1.0f / sum; - for ( i = 0; i < kernel_half * 2 + 1; i++ ) - { - int x = kernel_size * 3 / 2 - kernel_half + i; - kernels [x] *= sum; - assert( kernels [x] == kernels [x] ); /* catch numerical instability */ - } - } - - /* generate chroma (iq) filter using gaussian kernel */ - { - float const cutoff_factor = -0.03125f; - float cutoff = (float) setup->bleed; - int i; - - if ( cutoff < 0 ) - { - /* keep extreme value accessible only near upper end of scale (1.0) */ - cutoff *= cutoff; - cutoff *= cutoff; - cutoff *= cutoff; - cutoff *= -30.0f / 0.65f; - } - cutoff = cutoff_factor - 0.65f * cutoff_factor * cutoff; - - for ( i = -kernel_half; i <= kernel_half; i++ ) - kernels [kernel_size / 2 + i] = (float) exp( i * i * cutoff ); - - /* normalize even and odd phases separately */ - for ( i = 0; i < 2; i++ ) - { - float sum = 0; - int x; - for ( x = i; x < kernel_size; x += 2 ) - sum += kernels [x]; - - sum = 1.0f / sum; - for ( x = i; x < kernel_size; x += 2 ) - { - kernels [x] *= sum; - assert( kernels [x] == kernels [x] ); /* catch numerical instability */ - } - } - } - - /* - printf( "luma:\n" ); - for ( i = kernel_size; i < kernel_size * 2; i++ ) - printf( "%f\n", kernels [i] ); - printf( "chroma:\n" ); - for ( i = 0; i < kernel_size; i++ ) - printf( "%f\n", kernels [i] ); - */ - - /* generate linear rescale kernels */ - #if rescale_out > 1 - { - float weight = 1.0f; - float* out = impl->kernel; - int n = rescale_out; - do - { - float remain = 0; - int i; - weight -= 1.0f / rescale_in; - for ( i = 0; i < kernel_size * 2; i++ ) - { - float cur = kernels [i]; - float m = cur * weight; - *out++ = m + remain; - remain = cur - m; - } - } - while ( --n ); - } - #endif -} - -static float const default_decoder [6] = - { 0.956f, 0.621f, -0.272f, -0.647f, -1.105f, 1.702f }; - -static void init( init_t* impl, snes_ntsc_setup_t const* setup ) -{ - impl->brightness = (float) setup->brightness * (0.5f * rgb_unit) + rgb_offset; - impl->contrast = (float) setup->contrast * (0.5f * rgb_unit) + rgb_unit; - #ifdef default_palette_contrast - if ( !setup->palette ) - impl->contrast *= default_palette_contrast; - #endif - - impl->artifacts = (float) setup->artifacts; - if ( impl->artifacts > 0 ) - impl->artifacts *= artifacts_max - artifacts_mid; - impl->artifacts = impl->artifacts * artifacts_mid + artifacts_mid; - - impl->fringing = (float) setup->fringing; - if ( impl->fringing > 0 ) - impl->fringing *= fringing_max - fringing_mid; - impl->fringing = impl->fringing * fringing_mid + fringing_mid; - - init_filters( impl, setup ); - - /* generate gamma table */ - if ( gamma_size > 1 ) - { - float const to_float = 1.0f / (gamma_size - (gamma_size > 1)); - float const gamma = 1.1333f - (float) setup->gamma * 0.5f; - /* match common PC's 2.2 gamma to TV's 2.65 gamma */ - int i; - for ( i = 0; i < gamma_size; i++ ) - impl->to_float [i] = - (float) pow( i * to_float, gamma ) * impl->contrast + impl->brightness; - } - - /* setup decoder matricies */ - { - float hue = (float) setup->hue * PI + PI / 180 * ext_decoder_hue; - float sat = (float) setup->saturation + 1; - float const* decoder = setup->decoder_matrix; - if ( !decoder ) - { - decoder = default_decoder; - if ( STD_HUE_CONDITION( setup ) ) - hue += PI / 180 * (std_decoder_hue - ext_decoder_hue); - } - - { - float s = (float) sin( hue ) * sat; - float c = (float) cos( hue ) * sat; - float* out = impl->to_rgb; - int n; - - n = burst_count; - do - { - float const* in = decoder; - int n = 3; - do - { - float i = *in++; - float q = *in++; - *out++ = i * c - q * s; - *out++ = i * s + q * c; - } - while ( --n ); - if ( burst_count <= 1 ) - break; - ROTATE_IQ( s, c, 0.866025f, -0.5f ); /* +120 degrees */ - } - while ( --n ); - } - } -} - -/* kernel generation */ - -#define RGB_TO_YIQ( r, g, b, y, i ) (\ - (y = (r) * 0.299f + (g) * 0.587f + (b) * 0.114f),\ - (i = (r) * 0.596f - (g) * 0.275f - (b) * 0.321f),\ - ((r) * 0.212f - (g) * 0.523f + (b) * 0.311f)\ -) - -#define YIQ_TO_RGB( y, i, q, to_rgb, type, r, g ) (\ - r = (type) (y + to_rgb [0] * i + to_rgb [1] * q),\ - g = (type) (y + to_rgb [2] * i + to_rgb [3] * q),\ - (type) (y + to_rgb [4] * i + to_rgb [5] * q)\ -) - -#define PACK_RGB( r, g, b ) ((r) << 21 | (g) << 11 | (b) << 1) - -enum { rgb_kernel_size = burst_size / alignment_count }; -enum { rgb_bias = rgb_unit * 2 * snes_ntsc_rgb_builder }; - -typedef struct pixel_info_t -{ - int offset; - float negate; - float kernel [4]; -} pixel_info_t; - -#if rescale_in > 1 - #define PIXEL_OFFSET_( ntsc, scaled ) \ - (kernel_size / 2 + ntsc + (scaled != 0) + (rescale_out - scaled) % rescale_out + \ - (kernel_size * 2 * scaled)) - - #define PIXEL_OFFSET( ntsc, scaled ) \ - PIXEL_OFFSET_( ((ntsc) - (scaled) / rescale_out * rescale_in),\ - (((scaled) + rescale_out * 10) % rescale_out) ),\ - (1.0f - (((ntsc) + 100) & 2)) -#else - #define PIXEL_OFFSET( ntsc, scaled ) \ - (kernel_size / 2 + (ntsc) - (scaled)),\ - (1.0f - (((ntsc) + 100) & 2)) -#endif - -extern pixel_info_t const snes_ntsc_pixels [alignment_count]; - -/* Generate pixel at all burst phases and column alignments */ -static void gen_kernel( init_t* impl, float y, float i, float q, snes_ntsc_rgb_t* out ) -{ - /* generate for each scanline burst phase */ - float const* to_rgb = impl->to_rgb; - int burst_remain = burst_count; - y -= rgb_offset; - do - { - /* Encode yiq into *two* composite signals (to allow control over artifacting). - Convolve these with kernels which: filter respective components, apply - sharpening, and rescale horizontally. Convert resulting yiq to rgb and pack - into integer. Based on algorithm by NewRisingSun. */ - pixel_info_t const* pixel = snes_ntsc_pixels; - int alignment_remain = alignment_count; - do - { - /* negate is -1 when composite starts at odd multiple of 2 */ - float const yy = y * impl->fringing * pixel->negate; - float const ic0 = (i + yy) * pixel->kernel [0]; - float const qc1 = (q + yy) * pixel->kernel [1]; - float const ic2 = (i - yy) * pixel->kernel [2]; - float const qc3 = (q - yy) * pixel->kernel [3]; - - float const factor = impl->artifacts * pixel->negate; - float const ii = i * factor; - float const yc0 = (y + ii) * pixel->kernel [0]; - float const yc2 = (y - ii) * pixel->kernel [2]; - - float const qq = q * factor; - float const yc1 = (y + qq) * pixel->kernel [1]; - float const yc3 = (y - qq) * pixel->kernel [3]; - - float const* k = &impl->kernel [pixel->offset]; - int n; - ++pixel; - for ( n = rgb_kernel_size; n; --n ) - { - float i = k[0]*ic0 + k[2]*ic2; - float q = k[1]*qc1 + k[3]*qc3; - float y = k[kernel_size+0]*yc0 + k[kernel_size+1]*yc1 + - k[kernel_size+2]*yc2 + k[kernel_size+3]*yc3 + rgb_offset; - if ( rescale_out <= 1 ) - k--; - else if ( k < &impl->kernel [kernel_size * 2 * (rescale_out - 1)] ) - k += kernel_size * 2 - 1; - else - k -= kernel_size * 2 * (rescale_out - 1) + 2; - { - int r, g, b = YIQ_TO_RGB( y, i, q, to_rgb, int, r, g ); - *out++ = PACK_RGB( r, g, b ) - rgb_bias; - } - } - } - while ( alignment_count > 1 && --alignment_remain ); - - if ( burst_count <= 1 ) - break; - - to_rgb += 6; - - ROTATE_IQ( i, q, -0.866025f, -0.5f ); /* -120 degrees */ - } - while ( --burst_remain ); -} - -static void correct_errors( snes_ntsc_rgb_t color, snes_ntsc_rgb_t* out ); - -#if DISABLE_CORRECTION - #define CORRECT_ERROR( a ) { out [i] += rgb_bias; } - #define DISTRIBUTE_ERROR( a, b, c ) { out [i] += rgb_bias; } -#else - #define CORRECT_ERROR( a ) { out [a] += error; } - #define DISTRIBUTE_ERROR( a, b, c ) {\ - snes_ntsc_rgb_t fourth = (error + 2 * snes_ntsc_rgb_builder) >> 2;\ - fourth &= (rgb_bias >> 1) - snes_ntsc_rgb_builder;\ - fourth -= rgb_bias >> 2;\ - out [a] += fourth;\ - out [b] += fourth;\ - out [c] += fourth;\ - out [i] += error - (fourth * 3);\ - } -#endif - -#define RGB_PALETTE_OUT( rgb, out_ )\ -{\ - unsigned char* out = (out_);\ - snes_ntsc_rgb_t clamped = (rgb);\ - SNES_NTSC_CLAMP_( clamped, (8 - rgb_bits) );\ - out [0] = (unsigned char) (clamped >> 21);\ - out [1] = (unsigned char) (clamped >> 11);\ - out [2] = (unsigned char) (clamped >> 1);\ -} - -/* blitter related */ - -#ifndef restrict - #if defined (__GNUC__) - #define restrict __restrict__ - #elif defined (_MSC_VER) && _MSC_VER > 1300 - #define restrict __restrict - #else - /* no support for restricted pointers */ - #define restrict - #endif -#endif - -#include - -#if SNES_NTSC_OUT_DEPTH <= 16 - #if USHRT_MAX == 0xFFFF - typedef unsigned short snes_ntsc_out_t; - #else - #error "Need 16-bit int type" - #endif - -#else - #if UINT_MAX == 0xFFFFFFFF - typedef unsigned int snes_ntsc_out_t; - #elif ULONG_MAX == 0xFFFFFFFF - typedef unsigned long snes_ntsc_out_t; - #else - #error "Need 32-bit int type" - #endif - -#endif diff --git a/snesfilter/pixellate2x/pixellate2x.cpp b/snesfilter/pixellate2x/pixellate2x.cpp deleted file mode 100644 index 6259efc0..00000000 --- a/snesfilter/pixellate2x/pixellate2x.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "pixellate2x.hpp" - -void Pixellate2xFilter::size(unsigned &outwidth, unsigned &outheight, unsigned width, unsigned height) { - outwidth = (width <= 256) ? width * 2 : width; - outheight = (height <= 240) ? height * 2 : height; -} - -void Pixellate2xFilter::render( - uint32_t *output, unsigned outpitch, const uint16_t *input, unsigned pitch, - const unsigned *line, unsigned width, unsigned height -) { - pitch >>= 1; - outpitch >>= 2; - - uint32_t *out0 = output; - uint32_t *out1 = output + outpitch; - - for(unsigned y = 0; y < height; y++) { - unsigned linewidth = line[y]; - for(unsigned x = 0; x < linewidth; x++) { - uint32_t p = colortable[*input++]; - - *out0++ = p; - if(height <= 240) *out1++ = p; - if(linewidth > 256) continue; - - *out0++ = p; - if(height <= 240) *out1++ = p; - } - - input += pitch - linewidth; - if(height <= 240) { - out0 += outpitch + outpitch - 512; - out1 += outpitch + outpitch - 512; - } else { - out0 += outpitch - 512; - } - } -} diff --git a/snesfilter/pixellate2x/pixellate2x.hpp b/snesfilter/pixellate2x/pixellate2x.hpp deleted file mode 100644 index 4e597e4b..00000000 --- a/snesfilter/pixellate2x/pixellate2x.hpp +++ /dev/null @@ -1,5 +0,0 @@ -class Pixellate2xFilter { -public: - void size(unsigned&, unsigned&, unsigned, unsigned); - void render(uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned); -} filter_pixellate2x; diff --git a/snesfilter/scale2x/scale2x.cpp b/snesfilter/scale2x/scale2x.cpp deleted file mode 100644 index f1915ab3..00000000 --- a/snesfilter/scale2x/scale2x.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "scale2x.hpp" - -void Scale2xFilter::size(unsigned &outwidth, unsigned &outheight, unsigned width, unsigned height) { - if(height > 240) return filter_direct.size(outwidth, outheight, width, height); - outwidth = (width <= 256) ? width * 2 : width; - outheight = (height <= 240) ? height * 2 : height; -} - -void Scale2xFilter::render( - uint32_t *output, unsigned outpitch, const uint16_t *input, unsigned pitch, - const unsigned *line, unsigned width, unsigned height -) { - if(height > 240) { - filter_direct.render(output, outpitch, input, pitch, line, width, height); - return; - } - - pitch >>= 1; - outpitch >>= 2; - - uint32_t *out0 = output; - uint32_t *out1 = output + outpitch; - - for(unsigned y = 0; y < height; y++) { - unsigned linewidth = line[y]; - - if(linewidth == 256) { - int prevline = (y == 0) || (linewidth != line[y - 1]) ? 0 : pitch; - int nextline = (y == height - 1) || (linewidth != line[y + 1]) ? 0 : pitch; - - for(unsigned x = 0; x < 256; x++) { - uint16_t A = *(input - prevline); - uint16_t B = (x > 0) ? *(input - 1) : *input; - uint16_t C = *input; - uint16_t D = (x < 255) ? *(input + 1) : *input; - uint16_t E = *(input++ + nextline); - uint32_t c = colortable[C]; - - if(A != E && B != D) { - *out0++ = (A == B ? colortable[A] : c); - *out0++ = (A == D ? colortable[A] : c); - *out1++ = (E == B ? colortable[E] : c); - *out1++ = (E == D ? colortable[E] : c); - } else { - *out0++ = c; - *out0++ = c; - *out1++ = c; - *out1++ = c; - } - } - } else { - for(unsigned x = 0; x < 512; x++) { - *out0++ = *out1++ = colortable[*input++]; - } - } - - input += pitch - linewidth; - out0 += outpitch + outpitch - 512; - out1 += outpitch + outpitch - 512; - } -} diff --git a/snesfilter/scale2x/scale2x.hpp b/snesfilter/scale2x/scale2x.hpp deleted file mode 100644 index fad44e6a..00000000 --- a/snesfilter/scale2x/scale2x.hpp +++ /dev/null @@ -1,5 +0,0 @@ -class Scale2xFilter { -public: - void size(unsigned&, unsigned&, unsigned, unsigned); - void render(uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned); -} filter_scale2x; diff --git a/snesfilter/snesfilter.cpp b/snesfilter/snesfilter.cpp deleted file mode 100644 index b73b9072..00000000 --- a/snesfilter/snesfilter.cpp +++ /dev/null @@ -1,84 +0,0 @@ -#include "snesfilter.hpp" - -#if defined(_WIN32) - #define dllexport __declspec(dllexport) -#else - #define dllexport -#endif - -#include -#include -#include - -#define QT_CORE_LIB -#include - -#include -#include -#include -using namespace nall; - -const uint32_t *colortable; -configuration *config; - -#include "direct/direct.cpp" -#include "pixellate2x/pixellate2x.cpp" -#include "scale2x/scale2x.cpp" -#include "2xsai/2xsai.cpp" -#include "lq2x/lq2x.cpp" -#include "hq2x/hq2x.cpp" -#include "ntsc/ntsc.cpp" - -dllexport const char* snesfilter_supported() { - return "Pixellate2x;Scale2x;2xSaI;Super 2xSaI;Super Eagle;LQ2x;HQ2x;NTSC"; -} - -dllexport void snesfilter_configuration(configuration &config_) { - config = &config_; - if(config) { - filter_ntsc.bind(*config); - } -} - -dllexport void snesfilter_colortable(const uint32_t *colortable_) { - colortable = colortable_; -} - -dllexport void snesfilter_size(unsigned filter, unsigned &outwidth, unsigned &outheight, unsigned width, unsigned height) { - switch(filter) { - default: return filter_direct.size(outwidth, outheight, width, height); - case 1: return filter_pixellate2x.size(outwidth, outheight, width, height); - case 2: return filter_scale2x.size(outwidth, outheight, width, height); - case 3: return filter_2xsai.size(outwidth, outheight, width, height); - case 4: return filter_super2xsai.size(outwidth, outheight, width, height); - case 5: return filter_supereagle.size(outwidth, outheight, width, height); - case 6: return filter_lq2x.size(outwidth, outheight, width, height); - case 7: return filter_hq2x.size(outwidth, outheight, width, height); - case 8: return filter_ntsc.size(outwidth, outheight, width, height); - } -} - -dllexport void snesfilter_render( - unsigned filter, uint32_t *output, unsigned outpitch, - const uint16_t *input, unsigned pitch, - const unsigned *line, unsigned width, unsigned height -) { - switch(filter) { - default: return filter_direct.render(output, outpitch, input, pitch, line, width, height); - case 1: return filter_pixellate2x.render(output, outpitch, input, pitch, line, width, height); - case 2: return filter_scale2x.render(output, outpitch, input, pitch, line, width, height); - case 3: return filter_2xsai.render(output, outpitch, input, pitch, line, width, height); - case 4: return filter_super2xsai.render(output, outpitch, input, pitch, line, width, height); - case 5: return filter_supereagle.render(output, outpitch, input, pitch, line, width, height); - case 6: return filter_lq2x.render(output, outpitch, input, pitch, line, width, height); - case 7: return filter_hq2x.render(output, outpitch, input, pitch, line, width, height); - case 8: return filter_ntsc.render(output, outpitch, input, pitch, line, width, height); - } -} - -dllexport QWidget* snesfilter_settings(unsigned filter) { - switch(filter) { - default: return 0; - case 8: return filter_ntsc.settings(); - } -} diff --git a/snesfilter/snesfilter.hpp b/snesfilter/snesfilter.hpp deleted file mode 100644 index 15a5ba4a..00000000 --- a/snesfilter/snesfilter.hpp +++ /dev/null @@ -1,16 +0,0 @@ -#include -class QWidget; -namespace nall { class configuration; } - -extern "C" { - const char* snesfilter_supported(); - void snesfilter_configuration(nall::configuration&); - void snesfilter_colortable(const uint32_t*); - void snesfilter_size(unsigned, unsigned&, unsigned&, unsigned, unsigned); - void snesfilter_render( - unsigned, uint32_t*, unsigned, - const uint16_t*, unsigned, - const unsigned*, unsigned, unsigned - ); - QWidget* snesfilter_settings(unsigned); -} diff --git a/snesfilter/sync.sh b/snesfilter/sync.sh deleted file mode 100644 index 4bbaf34f..00000000 --- a/snesfilter/sync.sh +++ /dev/null @@ -1,2 +0,0 @@ -rm -r nall -cp -r ../nall ./nall diff --git a/snesreader.dll b/snesreader.dll deleted file mode 100644 index aa55db0f4c86744f9150ce718029adf8a78c0d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766679 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
3Rl{KirA0W_w9nS>(*V>)}-0s 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≤_ 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 HL|pzq<@&_& diff --git a/snesreader/7z_C/7zAlloc.c b/snesreader/7z_C/7zAlloc.c deleted file mode 100644 index 4bfaf42a..00000000 --- a/snesreader/7z_C/7zAlloc.c +++ /dev/null @@ -1,77 +0,0 @@ -/* 7zAlloc.c -- Allocation functions -2008-10-04 : Igor Pavlov : Public domain */ - -#include -#include "7zAlloc.h" - -/* #define _SZ_ALLOC_DEBUG */ -/* use _SZ_ALLOC_DEBUG to debug alloc/free operations */ - -#ifdef _SZ_ALLOC_DEBUG - -#ifdef _WIN32 -#include -#endif - -#include -int g_allocCount = 0; -int g_allocCountTemp = 0; - -#endif - -void *SzAlloc(void *p, size_t size) -{ - p = p; - if (size == 0) - return 0; - #ifdef _SZ_ALLOC_DEBUG - fprintf(stderr, "\nAlloc %10d bytes; count = %10d", size, g_allocCount); - g_allocCount++; - #endif - return malloc(size); -} - -void SzFree(void *p, void *address) -{ - p = p; - #ifdef _SZ_ALLOC_DEBUG - if (address != 0) - { - g_allocCount--; - fprintf(stderr, "\nFree; count = %10d", g_allocCount); - } - #endif - free(address); -} - -void *SzAllocTemp(void *p, size_t size) -{ - p = p; - if (size == 0) - return 0; - #ifdef _SZ_ALLOC_DEBUG - fprintf(stderr, "\nAlloc_temp %10d bytes; count = %10d", size, g_allocCountTemp); - g_allocCountTemp++; - #ifdef _WIN32 - return HeapAlloc(GetProcessHeap(), 0, size); - #endif - #endif - return malloc(size); -} - -void SzFreeTemp(void *p, void *address) -{ - p = p; - #ifdef _SZ_ALLOC_DEBUG - if (address != 0) - { - g_allocCountTemp--; - fprintf(stderr, "\nFree_temp; count = %10d", g_allocCountTemp); - } - #ifdef _WIN32 - HeapFree(GetProcessHeap(), 0, address); - return; - #endif - #endif - free(address); -} diff --git a/snesreader/7z_C/7zAlloc.h b/snesreader/7z_C/7zAlloc.h deleted file mode 100644 index f84ca5ae..00000000 --- a/snesreader/7z_C/7zAlloc.h +++ /dev/null @@ -1,23 +0,0 @@ -/* 7zAlloc.h -- Allocation functions -2008-10-04 : Igor Pavlov : Public domain */ - -#ifndef __7Z_ALLOC_H -#define __7Z_ALLOC_H - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -void *SzAlloc(void *p, size_t size); -void SzFree(void *p, void *address); - -void *SzAllocTemp(void *p, size_t size); -void SzFreeTemp(void *p, void *address); - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/snesreader/7z_C/7zBuf.c b/snesreader/7z_C/7zBuf.c deleted file mode 100644 index 14e7f4e2..00000000 --- a/snesreader/7z_C/7zBuf.c +++ /dev/null @@ -1,36 +0,0 @@ -/* 7zBuf.c -- Byte Buffer -2008-03-28 -Igor Pavlov -Public domain */ - -#include "7zBuf.h" - -void Buf_Init(CBuf *p) -{ - p->data = 0; - p->size = 0; -} - -int Buf_Create(CBuf *p, size_t size, ISzAlloc *alloc) -{ - p->size = 0; - if (size == 0) - { - p->data = 0; - return 1; - } - p->data = (Byte *)alloc->Alloc(alloc, size); - if (p->data != 0) - { - p->size = size; - return 1; - } - return 0; -} - -void Buf_Free(CBuf *p, ISzAlloc *alloc) -{ - alloc->Free(alloc, p->data); - p->data = 0; - p->size = 0; -} diff --git a/snesreader/7z_C/7zBuf.h b/snesreader/7z_C/7zBuf.h deleted file mode 100644 index c5bd7187..00000000 --- a/snesreader/7z_C/7zBuf.h +++ /dev/null @@ -1,31 +0,0 @@ -/* 7zBuf.h -- Byte Buffer -2008-10-04 : Igor Pavlov : Public domain */ - -#ifndef __7Z_BUF_H -#define __7Z_BUF_H - -#include "Types.h" - -typedef struct -{ - Byte *data; - size_t size; -} CBuf; - -void Buf_Init(CBuf *p); -int Buf_Create(CBuf *p, size_t size, ISzAlloc *alloc); -void Buf_Free(CBuf *p, ISzAlloc *alloc); - -typedef struct -{ - Byte *data; - size_t size; - size_t pos; -} CDynBuf; - -void DynBuf_Construct(CDynBuf *p); -void DynBuf_SeekToBeg(CDynBuf *p); -int DynBuf_Write(CDynBuf *p, const Byte *buf, size_t size, ISzAlloc *alloc); -void DynBuf_Free(CDynBuf *p, ISzAlloc *alloc); - -#endif diff --git a/snesreader/7z_C/7zC.txt b/snesreader/7z_C/7zC.txt deleted file mode 100644 index 4ff63250..00000000 --- a/snesreader/7z_C/7zC.txt +++ /dev/null @@ -1,194 +0,0 @@ -7z ANSI-C Decoder 4.62 ----------------------- - -7z ANSI-C provides 7z/LZMA decoding. -7z ANSI-C version is simplified version ported from C++ code. - -LZMA is default and general compression method of 7z format -in 7-Zip compression program (www.7-zip.org). LZMA provides high -compression ratio and very fast decompression. - - -LICENSE -------- - -7z ANSI-C Decoder is part of the LZMA SDK. -LZMA SDK is written and placed in the public domain by Igor Pavlov. - -Files ---------------------- - -7zDecode.* - Low level 7z decoding -7zExtract.* - High level 7z decoding -7zHeader.* - .7z format constants -7zIn.* - .7z archive opening -7zItem.* - .7z structures -7zMain.c - Test application - - -How To Use ----------- - -You must download 7-Zip program from www.7-zip.org. - -You can create .7z archive with 7z.exe or 7za.exe: - - 7za.exe a archive.7z *.htm -r -mx -m0fb=255 - -If you have big number of files in archive, and you need fast extracting, -you can use partly-solid archives: - - 7za.exe a archive.7z *.htm -ms=512K -r -mx -m0fb=255 -m0d=512K - -In that example 7-Zip will use 512KB solid blocks. So it needs to decompress only -512KB for extracting one file from such archive. - - -Limitations of current version of 7z ANSI-C Decoder ---------------------------------------------------- - - - It reads only "FileName", "Size", "LastWriteTime" and "CRC" information for each file in archive. - - It supports only LZMA and Copy (no compression) methods with BCJ or BCJ2 filters. - - It converts original UTF-16 Unicode file names to UTF-8 Unicode file names. - -These limitations will be fixed in future versions. - - -Using 7z ANSI-C Decoder Test application: ------------------------------------------ - -Usage: 7zDec - -: - e: Extract files from archive - l: List contents of archive - t: Test integrity of archive - -Example: - - 7zDec l archive.7z - -lists contents of archive.7z - - 7zDec e archive.7z - -extracts files from archive.7z to current folder. - - -How to use .7z Decoder ----------------------- - -Memory allocation -~~~~~~~~~~~~~~~~~ - -7z Decoder uses two memory pools: -1) Temporary pool -2) Main pool -Such scheme can allow you to avoid fragmentation of allocated blocks. - - -Steps for using 7z decoder --------------------------- - -Use code at 7zMain.c as example. - -1) Declare variables: - inStream /* implements ILookInStream interface */ - CSzArEx db; /* 7z archive database structure */ - ISzAlloc allocImp; /* memory functions for main pool */ - ISzAlloc allocTempImp; /* memory functions for temporary pool */ - -2) call CrcGenerateTable(); function to initialize CRC structures. - -3) call SzArEx_Init(&db); function to initialize db structures. - -4) call SzArEx_Open(&db, inStream, &allocMain, &allocTemp) to open archive - -This function opens archive "inStream" and reads headers to "db". -All items in "db" will be allocated with "allocMain" functions. -SzArEx_Open function allocates and frees temporary structures by "allocTemp" functions. - -5) List items or Extract items - - Listing code: - ~~~~~~~~~~~~~ - { - UInt32 i; - for (i = 0; i < db.db.NumFiles; i++) - { - CFileItem *f = db.db.Files + i; - printf("%10d %s\n", (int)f->Size, f->Name); - } - } - - Extracting code: - ~~~~~~~~~~~~~~~~ - - SZ_RESULT SzAr_Extract( - CArchiveDatabaseEx *db, - ILookInStream *inStream, - UInt32 fileIndex, /* index of file */ - UInt32 *blockIndex, /* index of solid block */ - Byte **outBuffer, /* pointer to pointer to output buffer (allocated with allocMain) */ - size_t *outBufferSize, /* buffer size for output buffer */ - size_t *offset, /* offset of stream for required file in *outBuffer */ - size_t *outSizeProcessed, /* size of file in *outBuffer */ - ISzAlloc *allocMain, - ISzAlloc *allocTemp); - - If you need to decompress more than one file, you can send these values from previous call: - blockIndex, - outBuffer, - outBufferSize, - You can consider "outBuffer" as cache of solid block. If your archive is solid, - it will increase decompression speed. - - After decompressing you must free "outBuffer": - allocImp.Free(outBuffer); - -6) call SzArEx_Free(&db, allocImp.Free) to free allocated items in "db". - - - - -Memory requirements for .7z decoding ------------------------------------- - -Memory usage for Archive opening: - - Temporary pool: - - Memory for uncompressed .7z headers - - some other temporary blocks - - Main pool: - - Memory for database: - Estimated size of one file structures in solid archive: - - Size (4 or 8 Bytes) - - CRC32 (4 bytes) - - LastWriteTime (8 bytes) - - Some file information (4 bytes) - - File Name (variable length) + pointer + allocation structures - -Memory usage for archive Decompressing: - - Temporary pool: - - Memory for LZMA decompressing structures - - Main pool: - - Memory for decompressed solid block - - Memory for temprorary buffers, if BCJ2 fileter is used. Usually these - temprorary buffers can be about 15% of solid block size. - - -7z Decoder doesn't allocate memory for compressed blocks. -Instead of this, you must allocate buffer with desired -size before calling 7z Decoder. Use 7zMain.c as example. - - -Defines -------- - -_SZ_ALLOC_DEBUG - define it if you want to debug alloc/free operations to stderr. - - ---- - -http://www.7-zip.org -http://www.7-zip.org/sdk.html -http://www.7-zip.org/support.html diff --git a/snesreader/7z_C/7zCrc.c b/snesreader/7z_C/7zCrc.c deleted file mode 100644 index 71962b2c..00000000 --- a/snesreader/7z_C/7zCrc.c +++ /dev/null @@ -1,35 +0,0 @@ -/* 7zCrc.c -- CRC32 calculation -2008-08-05 -Igor Pavlov -Public domain */ - -#include "7zCrc.h" - -#define kCrcPoly 0xEDB88320 -UInt32 g_CrcTable[256]; - -void MY_FAST_CALL CrcGenerateTable(void) -{ - UInt32 i; - for (i = 0; i < 256; i++) - { - UInt32 r = i; - int j; - for (j = 0; j < 8; j++) - r = (r >> 1) ^ (kCrcPoly & ~((r & 1) - 1)); - g_CrcTable[i] = r; - } -} - -UInt32 MY_FAST_CALL CrcUpdate(UInt32 v, const void *data, size_t size) -{ - const Byte *p = (const Byte *)data; - for (; size > 0 ; size--, p++) - v = CRC_UPDATE_BYTE(v, *p); - return v; -} - -UInt32 MY_FAST_CALL CrcCalc(const void *data, size_t size) -{ - return CrcUpdate(CRC_INIT_VAL, data, size) ^ 0xFFFFFFFF; -} diff --git a/snesreader/7z_C/7zCrc.h b/snesreader/7z_C/7zCrc.h deleted file mode 100644 index ab8cf8c4..00000000 --- a/snesreader/7z_C/7zCrc.h +++ /dev/null @@ -1,32 +0,0 @@ -/* 7zCrc.h -- CRC32 calculation -2008-03-13 -Igor Pavlov -Public domain */ - -#ifndef __7Z_CRC_H -#define __7Z_CRC_H - -#include - -#include "Types.h" - -#ifdef __cplusplus - extern "C" { -#endif - -extern UInt32 g_CrcTable[]; - -void MY_FAST_CALL CrcGenerateTable(void); - -#define CRC_INIT_VAL 0xFFFFFFFF -#define CRC_GET_DIGEST(crc) ((crc) ^ 0xFFFFFFFF) -#define CRC_UPDATE_BYTE(crc, b) (g_CrcTable[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8)) - -UInt32 MY_FAST_CALL CrcUpdate(UInt32 crc, const void *data, size_t size); -UInt32 MY_FAST_CALL CrcCalc(const void *data, size_t size); - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/snesreader/7z_C/7zDecode.c b/snesreader/7z_C/7zDecode.c deleted file mode 100644 index c643da5f..00000000 --- a/snesreader/7z_C/7zDecode.c +++ /dev/null @@ -1,257 +0,0 @@ -/* 7zDecode.c -- Decoding from 7z folder -2008-11-23 : Igor Pavlov : Public domain */ - -#include - -#include "Bcj2.h" -#include "Bra.h" -#include "LzmaDec.h" -#include "7zDecode.h" - -#define k_Copy 0 -#define k_LZMA 0x30101 -#define k_BCJ 0x03030103 -#define k_BCJ2 0x0303011B - -static SRes SzDecodeLzma(CSzCoderInfo *coder, UInt64 inSize, ILookInStream *inStream, - Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain) -{ - CLzmaDec state; - SRes res = SZ_OK; - - LzmaDec_Construct(&state); - RINOK(LzmaDec_AllocateProbs(&state, coder->Props.data, (unsigned)coder->Props.size, allocMain)); - state.dic = outBuffer; - state.dicBufSize = outSize; - LzmaDec_Init(&state); - - for (;;) - { - Byte *inBuf = NULL; - size_t lookahead = (1 << 18); - if (lookahead > inSize) - lookahead = (size_t)inSize; - res = inStream->Look((void *)inStream, (void **)&inBuf, &lookahead); - if (res != SZ_OK) - break; - - { - SizeT inProcessed = (SizeT)lookahead, dicPos = state.dicPos; - ELzmaStatus status; - res = LzmaDec_DecodeToDic(&state, outSize, inBuf, &inProcessed, LZMA_FINISH_END, &status); - lookahead -= inProcessed; - inSize -= inProcessed; - if (res != SZ_OK) - break; - if (state.dicPos == state.dicBufSize || (inProcessed == 0 && dicPos == state.dicPos)) - { - if (state.dicBufSize != outSize || lookahead != 0 || - (status != LZMA_STATUS_FINISHED_WITH_MARK && - status != LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK)) - res = SZ_ERROR_DATA; - break; - } - res = inStream->Skip((void *)inStream, inProcessed); - if (res != SZ_OK) - break; - } - } - - LzmaDec_FreeProbs(&state, allocMain); - return res; -} - -static SRes SzDecodeCopy(UInt64 inSize, ILookInStream *inStream, Byte *outBuffer) -{ - while (inSize > 0) - { - void *inBuf; - size_t curSize = (1 << 18); - if (curSize > inSize) - curSize = (size_t)inSize; - RINOK(inStream->Look((void *)inStream, (void **)&inBuf, &curSize)); - if (curSize == 0) - return SZ_ERROR_INPUT_EOF; - memcpy(outBuffer, inBuf, curSize); - outBuffer += curSize; - inSize -= curSize; - RINOK(inStream->Skip((void *)inStream, curSize)); - } - return SZ_OK; -} - -#define IS_UNSUPPORTED_METHOD(m) ((m) != k_Copy && (m) != k_LZMA) -#define IS_UNSUPPORTED_CODER(c) (IS_UNSUPPORTED_METHOD(c.MethodID) || c.NumInStreams != 1 || c.NumOutStreams != 1) -#define IS_NO_BCJ(c) (c.MethodID != k_BCJ || c.NumInStreams != 1 || c.NumOutStreams != 1) -#define IS_NO_BCJ2(c) (c.MethodID != k_BCJ2 || c.NumInStreams != 4 || c.NumOutStreams != 1) - -static -SRes CheckSupportedFolder(const CSzFolder *f) -{ - if (f->NumCoders < 1 || f->NumCoders > 4) - return SZ_ERROR_UNSUPPORTED; - if (IS_UNSUPPORTED_CODER(f->Coders[0])) - return SZ_ERROR_UNSUPPORTED; - if (f->NumCoders == 1) - { - if (f->NumPackStreams != 1 || f->PackStreams[0] != 0 || f->NumBindPairs != 0) - return SZ_ERROR_UNSUPPORTED; - return SZ_OK; - } - if (f->NumCoders == 2) - { - if (IS_NO_BCJ(f->Coders[1]) || - f->NumPackStreams != 1 || f->PackStreams[0] != 0 || - f->NumBindPairs != 1 || - f->BindPairs[0].InIndex != 1 || f->BindPairs[0].OutIndex != 0) - return SZ_ERROR_UNSUPPORTED; - return SZ_OK; - } - if (f->NumCoders == 4) - { - if (IS_UNSUPPORTED_CODER(f->Coders[1]) || - IS_UNSUPPORTED_CODER(f->Coders[2]) || - IS_NO_BCJ2(f->Coders[3])) - return SZ_ERROR_UNSUPPORTED; - if (f->NumPackStreams != 4 || - f->PackStreams[0] != 2 || - f->PackStreams[1] != 6 || - f->PackStreams[2] != 1 || - f->PackStreams[3] != 0 || - f->NumBindPairs != 3 || - f->BindPairs[0].InIndex != 5 || f->BindPairs[0].OutIndex != 0 || - f->BindPairs[1].InIndex != 4 || f->BindPairs[1].OutIndex != 1 || - f->BindPairs[2].InIndex != 3 || f->BindPairs[2].OutIndex != 2) - return SZ_ERROR_UNSUPPORTED; - return SZ_OK; - } - return SZ_ERROR_UNSUPPORTED; -} - -static -UInt64 GetSum(const UInt64 *values, UInt32 index) -{ - UInt64 sum = 0; - UInt32 i; - for (i = 0; i < index; i++) - sum += values[i]; - return sum; -} - -static -SRes SzDecode2(const UInt64 *packSizes, const CSzFolder *folder, - ILookInStream *inStream, UInt64 startPos, - Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain, - Byte *tempBuf[]) -{ - UInt32 ci; - SizeT tempSizes[3] = { 0, 0, 0}; - SizeT tempSize3 = 0; - Byte *tempBuf3 = 0; - - RINOK(CheckSupportedFolder(folder)); - - for (ci = 0; ci < folder->NumCoders; ci++) - { - CSzCoderInfo *coder = &folder->Coders[ci]; - - if (coder->MethodID == k_Copy || coder->MethodID == k_LZMA) - { - UInt32 si = 0; - UInt64 offset; - UInt64 inSize; - Byte *outBufCur = outBuffer; - SizeT outSizeCur = outSize; - if (folder->NumCoders == 4) - { - UInt32 indices[] = { 3, 2, 0 }; - UInt64 unpackSize = folder->UnpackSizes[ci]; - si = indices[ci]; - if (ci < 2) - { - Byte *temp; - outSizeCur = (SizeT)unpackSize; - if (outSizeCur != unpackSize) - return SZ_ERROR_MEM; - temp = (Byte *)IAlloc_Alloc(allocMain, outSizeCur); - if (temp == 0 && outSizeCur != 0) - return SZ_ERROR_MEM; - outBufCur = tempBuf[1 - ci] = temp; - tempSizes[1 - ci] = outSizeCur; - } - else if (ci == 2) - { - if (unpackSize > outSize) /* check it */ - return SZ_ERROR_PARAM; - tempBuf3 = outBufCur = outBuffer + (outSize - (size_t)unpackSize); - tempSize3 = outSizeCur = (SizeT)unpackSize; - } - else - return SZ_ERROR_UNSUPPORTED; - } - offset = GetSum(packSizes, si); - inSize = packSizes[si]; - RINOK(LookInStream_SeekTo(inStream, startPos + offset)); - - if (coder->MethodID == k_Copy) - { - if (inSize != outSizeCur) /* check it */ - return SZ_ERROR_DATA; - RINOK(SzDecodeCopy(inSize, inStream, outBufCur)); - } - else - { - RINOK(SzDecodeLzma(coder, inSize, inStream, outBufCur, outSizeCur, allocMain)); - } - } - else if (coder->MethodID == k_BCJ) - { - UInt32 state; - if (ci != 1) - return SZ_ERROR_UNSUPPORTED; - x86_Convert_Init(state); - x86_Convert(outBuffer, outSize, 0, &state, 0); - } - else if (coder->MethodID == k_BCJ2) - { - UInt64 offset = GetSum(packSizes, 1); - UInt64 s3Size = packSizes[1]; - SRes res; - if (ci != 3) - return SZ_ERROR_UNSUPPORTED; - RINOK(LookInStream_SeekTo(inStream, startPos + offset)); - tempSizes[2] = (SizeT)s3Size; - if (tempSizes[2] != s3Size) - return SZ_ERROR_MEM; - tempBuf[2] = (Byte *)IAlloc_Alloc(allocMain, tempSizes[2]); - if (tempBuf[2] == 0 && tempSizes[2] != 0) - return SZ_ERROR_MEM; - res = SzDecodeCopy(s3Size, inStream, tempBuf[2]); - RINOK(res) - - res = Bcj2_Decode( - tempBuf3, tempSize3, - tempBuf[0], tempSizes[0], - tempBuf[1], tempSizes[1], - tempBuf[2], tempSizes[2], - outBuffer, outSize); - RINOK(res) - } - else - return SZ_ERROR_UNSUPPORTED; - } - return SZ_OK; -} - -SRes SzDecode(const UInt64 *packSizes, const CSzFolder *folder, - ILookInStream *inStream, UInt64 startPos, - Byte *outBuffer, size_t outSize, ISzAlloc *allocMain) -{ - Byte *tempBuf[3] = { 0, 0, 0}; - int i; - SRes res = SzDecode2(packSizes, folder, inStream, startPos, - outBuffer, (SizeT)outSize, allocMain, tempBuf); - for (i = 0; i < 3; i++) - IAlloc_Free(allocMain, tempBuf[i]); - return res; -} diff --git a/snesreader/7z_C/7zDecode.h b/snesreader/7z_C/7zDecode.h deleted file mode 100644 index e19fe387..00000000 --- a/snesreader/7z_C/7zDecode.h +++ /dev/null @@ -1,13 +0,0 @@ -/* 7zDecode.h -- Decoding from 7z folder -2008-11-23 : Igor Pavlov : Public domain */ - -#ifndef __7Z_DECODE_H -#define __7Z_DECODE_H - -#include "7zItem.h" - -SRes SzDecode(const UInt64 *packSizes, const CSzFolder *folder, - ILookInStream *stream, UInt64 startPos, - Byte *outBuffer, size_t outSize, ISzAlloc *allocMain); - -#endif diff --git a/snesreader/7z_C/7zExtract.c b/snesreader/7z_C/7zExtract.c deleted file mode 100644 index 99ef3654..00000000 --- a/snesreader/7z_C/7zExtract.c +++ /dev/null @@ -1,93 +0,0 @@ -/* 7zExtract.c -- Extracting from 7z archive -2008-11-23 : Igor Pavlov : Public domain */ - -#include "7zCrc.h" -#include "7zDecode.h" -#include "7zExtract.h" - -SRes SzAr_Extract( - const CSzArEx *p, - ILookInStream *inStream, - UInt32 fileIndex, - UInt32 *blockIndex, - Byte **outBuffer, - size_t *outBufferSize, - size_t *offset, - size_t *outSizeProcessed, - ISzAlloc *allocMain, - ISzAlloc *allocTemp) -{ - UInt32 folderIndex = p->FileIndexToFolderIndexMap[fileIndex]; - SRes res = SZ_OK; - *offset = 0; - *outSizeProcessed = 0; - if (folderIndex == (UInt32)-1) - { - IAlloc_Free(allocMain, *outBuffer); - *blockIndex = folderIndex; - *outBuffer = 0; - *outBufferSize = 0; - return SZ_OK; - } - - if (*outBuffer == 0 || *blockIndex != folderIndex) - { - CSzFolder *folder = p->db.Folders + folderIndex; - UInt64 unpackSizeSpec = SzFolder_GetUnpackSize(folder); - size_t unpackSize = (size_t)unpackSizeSpec; - UInt64 startOffset = SzArEx_GetFolderStreamPos(p, folderIndex, 0); - - if (unpackSize != unpackSizeSpec) - return SZ_ERROR_MEM; - *blockIndex = folderIndex; - IAlloc_Free(allocMain, *outBuffer); - *outBuffer = 0; - - RINOK(LookInStream_SeekTo(inStream, startOffset)); - - if (res == SZ_OK) - { - *outBufferSize = unpackSize; - if (unpackSize != 0) - { - *outBuffer = (Byte *)IAlloc_Alloc(allocMain, unpackSize); - if (*outBuffer == 0) - res = SZ_ERROR_MEM; - } - if (res == SZ_OK) - { - res = SzDecode(p->db.PackSizes + - p->FolderStartPackStreamIndex[folderIndex], folder, - inStream, startOffset, - *outBuffer, unpackSize, allocTemp); - if (res == SZ_OK) - { - if (folder->UnpackCRCDefined) - { - if (CrcCalc(*outBuffer, unpackSize) != folder->UnpackCRC) - res = SZ_ERROR_CRC; - } - } - } - } - } - if (res == SZ_OK) - { - UInt32 i; - CSzFileItem *fileItem = p->db.Files + fileIndex; - *offset = 0; - for (i = p->FolderStartFileIndex[folderIndex]; i < fileIndex; i++) - *offset += (UInt32)p->db.Files[i].Size; - *outSizeProcessed = (size_t)fileItem->Size; - if (*offset + *outSizeProcessed > *outBufferSize) - return SZ_ERROR_FAIL; - { - if (fileItem->FileCRCDefined) - { - if (CrcCalc(*outBuffer + *offset, *outSizeProcessed) != fileItem->FileCRC) - res = SZ_ERROR_CRC; - } - } - } - return res; -} diff --git a/snesreader/7z_C/7zExtract.h b/snesreader/7z_C/7zExtract.h deleted file mode 100644 index 1ca110c6..00000000 --- a/snesreader/7z_C/7zExtract.h +++ /dev/null @@ -1,49 +0,0 @@ -/* 7zExtract.h -- Extracting from 7z archive -2008-11-23 : Igor Pavlov : Public domain */ - -#ifndef __7Z_EXTRACT_H -#define __7Z_EXTRACT_H - -#include "7zIn.h" - -#ifdef __cplusplus - extern "C" { -#endif - -/* - SzExtract extracts file from archive - - *outBuffer must be 0 before first call for each new archive. - - Extracting cache: - If you need to decompress more than one file, you can send - these values from previous call: - *blockIndex, - *outBuffer, - *outBufferSize - You can consider "*outBuffer" as cache of solid block. If your archive is solid, - it will increase decompression speed. - - If you use external function, you can declare these 3 cache variables - (blockIndex, outBuffer, outBufferSize) as static in that external function. - - Free *outBuffer and set *outBuffer to 0, if you want to flush cache. -*/ - -SRes SzAr_Extract( - const CSzArEx *db, - ILookInStream *inStream, - UInt32 fileIndex, /* index of file */ - UInt32 *blockIndex, /* index of solid block */ - Byte **outBuffer, /* pointer to pointer to output buffer (allocated with allocMain) */ - size_t *outBufferSize, /* buffer size for output buffer */ - size_t *offset, /* offset of stream for required file in *outBuffer */ - size_t *outSizeProcessed, /* size of file in *outBuffer */ - ISzAlloc *allocMain, - ISzAlloc *allocTemp); - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/snesreader/7z_C/7zHeader.c b/snesreader/7z_C/7zHeader.c deleted file mode 100644 index e48faa48..00000000 --- a/snesreader/7z_C/7zHeader.c +++ /dev/null @@ -1,6 +0,0 @@ -/* 7zHeader.c -- 7z Headers -2008-10-04 : Igor Pavlov : Public domain */ - -#include "7zHeader.h" - -Byte k7zSignature[k7zSignatureSize] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}; diff --git a/snesreader/7z_C/7zHeader.h b/snesreader/7z_C/7zHeader.h deleted file mode 100644 index ad095df4..00000000 --- a/snesreader/7z_C/7zHeader.h +++ /dev/null @@ -1,57 +0,0 @@ -/* 7zHeader.h -- 7z Headers -2008-10-04 : Igor Pavlov : Public domain */ - -#ifndef __7Z_HEADER_H -#define __7Z_HEADER_H - -#include "Types.h" - -#define k7zSignatureSize 6 -extern Byte k7zSignature[k7zSignatureSize]; - -#define k7zMajorVersion 0 - -#define k7zStartHeaderSize 0x20 - -enum EIdEnum -{ - k7zIdEnd, - - k7zIdHeader, - - k7zIdArchiveProperties, - - k7zIdAdditionalStreamsInfo, - k7zIdMainStreamsInfo, - k7zIdFilesInfo, - - k7zIdPackInfo, - k7zIdUnpackInfo, - k7zIdSubStreamsInfo, - - k7zIdSize, - k7zIdCRC, - - k7zIdFolder, - - k7zIdCodersUnpackSize, - k7zIdNumUnpackStream, - - k7zIdEmptyStream, - k7zIdEmptyFile, - k7zIdAnti, - - k7zIdName, - k7zIdCTime, - k7zIdATime, - k7zIdMTime, - k7zIdWinAttributes, - k7zIdComment, - - k7zIdEncodedHeader, - - k7zIdStartPos, - k7zIdDummy -}; - -#endif diff --git a/snesreader/7z_C/7zIn.c b/snesreader/7z_C/7zIn.c deleted file mode 100644 index e594b7de..00000000 --- a/snesreader/7z_C/7zIn.c +++ /dev/null @@ -1,1204 +0,0 @@ -/* 7zIn.c -- 7z Input functions -2008-12-31 : Igor Pavlov : Public domain */ - -#include "7zCrc.h" -#include "CpuArch.h" - -#include "7zDecode.h" -#include "7zIn.h" - -#define RINOM(x) { if ((x) == 0) return SZ_ERROR_MEM; } - -#define NUM_FOLDER_CODERS_MAX 32 -#define NUM_CODER_STREAMS_MAX 32 - -void SzArEx_Init(CSzArEx *p) -{ - SzAr_Init(&p->db); - p->FolderStartPackStreamIndex = 0; - p->PackStreamStartPositions = 0; - p->FolderStartFileIndex = 0; - p->FileIndexToFolderIndexMap = 0; -} - -void SzArEx_Free(CSzArEx *p, ISzAlloc *alloc) -{ - IAlloc_Free(alloc, p->FolderStartPackStreamIndex); - IAlloc_Free(alloc, p->PackStreamStartPositions); - IAlloc_Free(alloc, p->FolderStartFileIndex); - IAlloc_Free(alloc, p->FileIndexToFolderIndexMap); - SzAr_Free(&p->db, alloc); - SzArEx_Init(p); -} - -/* -UInt64 GetFolderPackStreamSize(int folderIndex, int streamIndex) const -{ - return PackSizes[FolderStartPackStreamIndex[folderIndex] + streamIndex]; -} - -UInt64 GetFilePackSize(int fileIndex) const -{ - int folderIndex = FileIndexToFolderIndexMap[fileIndex]; - if (folderIndex >= 0) - { - const CSzFolder &folderInfo = Folders[folderIndex]; - if (FolderStartFileIndex[folderIndex] == fileIndex) - return GetFolderFullPackSize(folderIndex); - } - return 0; -} -*/ - -#define MY_ALLOC(T, p, size, alloc) { if ((size) == 0) p = 0; else \ - if ((p = (T *)IAlloc_Alloc(alloc, (size) * sizeof(T))) == 0) return SZ_ERROR_MEM; } - -static SRes SzArEx_Fill(CSzArEx *p, ISzAlloc *alloc) -{ - UInt32 startPos = 0; - UInt64 startPosSize = 0; - UInt32 i; - UInt32 folderIndex = 0; - UInt32 indexInFolder = 0; - MY_ALLOC(UInt32, p->FolderStartPackStreamIndex, p->db.NumFolders, alloc); - for (i = 0; i < p->db.NumFolders; i++) - { - p->FolderStartPackStreamIndex[i] = startPos; - startPos += p->db.Folders[i].NumPackStreams; - } - - MY_ALLOC(UInt64, p->PackStreamStartPositions, p->db.NumPackStreams, alloc); - - for (i = 0; i < p->db.NumPackStreams; i++) - { - p->PackStreamStartPositions[i] = startPosSize; - startPosSize += p->db.PackSizes[i]; - } - - MY_ALLOC(UInt32, p->FolderStartFileIndex, p->db.NumFolders, alloc); - MY_ALLOC(UInt32, p->FileIndexToFolderIndexMap, p->db.NumFiles, alloc); - - for (i = 0; i < p->db.NumFiles; i++) - { - CSzFileItem *file = p->db.Files + i; - int emptyStream = !file->HasStream; - if (emptyStream && indexInFolder == 0) - { - p->FileIndexToFolderIndexMap[i] = (UInt32)-1; - continue; - } - if (indexInFolder == 0) - { - /* - v3.13 incorrectly worked with empty folders - v4.07: Loop for skipping empty folders - */ - for (;;) - { - if (folderIndex >= p->db.NumFolders) - return SZ_ERROR_ARCHIVE; - p->FolderStartFileIndex[folderIndex] = i; - if (p->db.Folders[folderIndex].NumUnpackStreams != 0) - break; - folderIndex++; - } - } - p->FileIndexToFolderIndexMap[i] = folderIndex; - if (emptyStream) - continue; - indexInFolder++; - if (indexInFolder >= p->db.Folders[folderIndex].NumUnpackStreams) - { - folderIndex++; - indexInFolder = 0; - } - } - return SZ_OK; -} - - -UInt64 SzArEx_GetFolderStreamPos(const CSzArEx *p, UInt32 folderIndex, UInt32 indexInFolder) -{ - return p->dataPos + - p->PackStreamStartPositions[p->FolderStartPackStreamIndex[folderIndex] + indexInFolder]; -} - -int SzArEx_GetFolderFullPackSize(const CSzArEx *p, UInt32 folderIndex, UInt64 *resSize) -{ - UInt32 packStreamIndex = p->FolderStartPackStreamIndex[folderIndex]; - CSzFolder *folder = p->db.Folders + folderIndex; - UInt64 size = 0; - UInt32 i; - for (i = 0; i < folder->NumPackStreams; i++) - { - UInt64 t = size + p->db.PackSizes[packStreamIndex + i]; - if (t < size) /* check it */ - return SZ_ERROR_FAIL; - size = t; - } - *resSize = size; - return SZ_OK; -} - - -/* -SRes SzReadTime(const CObjectVector &dataVector, - CObjectVector &files, UInt64 type) -{ - CBoolVector boolVector; - RINOK(ReadBoolVector2(files.Size(), boolVector)) - - CStreamSwitch streamSwitch; - RINOK(streamSwitch.Set(this, &dataVector)); - - for (int i = 0; i < files.Size(); i++) - { - CSzFileItem &file = files[i]; - CArchiveFileTime fileTime; - bool defined = boolVector[i]; - if (defined) - { - UInt32 low, high; - RINOK(SzReadUInt32(low)); - RINOK(SzReadUInt32(high)); - fileTime.dwLowDateTime = low; - fileTime.dwHighDateTime = high; - } - switch(type) - { - case k7zIdCTime: file.IsCTimeDefined = defined; if (defined) file.CTime = fileTime; break; - case k7zIdATime: file.IsATimeDefined = defined; if (defined) file.ATime = fileTime; break; - case k7zIdMTime: file.IsMTimeDefined = defined; if (defined) file.MTime = fileTime; break; - } - } - return SZ_OK; -} -*/ - -static int TestSignatureCandidate(Byte *testBytes) -{ - size_t i; - for (i = 0; i < k7zSignatureSize; i++) - if (testBytes[i] != k7zSignature[i]) - return 0; - return 1; -} - -typedef struct _CSzState -{ - Byte *Data; - size_t Size; -}CSzData; - -static SRes SzReadByte(CSzData *sd, Byte *b) -{ - if (sd->Size == 0) - return SZ_ERROR_ARCHIVE; - sd->Size--; - *b = *sd->Data++; - return SZ_OK; -} - -static SRes SzReadBytes(CSzData *sd, Byte *data, size_t size) -{ - size_t i; - for (i = 0; i < size; i++) - { - RINOK(SzReadByte(sd, data + i)); - } - return SZ_OK; -} - -static SRes SzReadUInt32(CSzData *sd, UInt32 *value) -{ - int i; - *value = 0; - for (i = 0; i < 4; i++) - { - Byte b; - RINOK(SzReadByte(sd, &b)); - *value |= ((UInt32)(b) << (8 * i)); - } - return SZ_OK; -} - -static SRes SzReadNumber(CSzData *sd, UInt64 *value) -{ - Byte firstByte; - Byte mask = 0x80; - int i; - RINOK(SzReadByte(sd, &firstByte)); - *value = 0; - for (i = 0; i < 8; i++) - { - Byte b; - if ((firstByte & mask) == 0) - { - UInt64 highPart = firstByte & (mask - 1); - *value += (highPart << (8 * i)); - return SZ_OK; - } - RINOK(SzReadByte(sd, &b)); - *value |= ((UInt64)b << (8 * i)); - mask >>= 1; - } - return SZ_OK; -} - -static SRes SzReadNumber32(CSzData *sd, UInt32 *value) -{ - UInt64 value64; - RINOK(SzReadNumber(sd, &value64)); - if (value64 >= 0x80000000) - return SZ_ERROR_UNSUPPORTED; - if (value64 >= ((UInt64)(1) << ((sizeof(size_t) - 1) * 8 + 2))) - return SZ_ERROR_UNSUPPORTED; - *value = (UInt32)value64; - return SZ_OK; -} - -static SRes SzReadID(CSzData *sd, UInt64 *value) -{ - return SzReadNumber(sd, value); -} - -static SRes SzSkeepDataSize(CSzData *sd, UInt64 size) -{ - if (size > sd->Size) - return SZ_ERROR_ARCHIVE; - sd->Size -= (size_t)size; - sd->Data += (size_t)size; - return SZ_OK; -} - -static SRes SzSkeepData(CSzData *sd) -{ - UInt64 size; - RINOK(SzReadNumber(sd, &size)); - return SzSkeepDataSize(sd, size); -} - -static SRes SzReadArchiveProperties(CSzData *sd) -{ - for (;;) - { - UInt64 type; - RINOK(SzReadID(sd, &type)); - if (type == k7zIdEnd) - break; - SzSkeepData(sd); - } - return SZ_OK; -} - -static SRes SzWaitAttribute(CSzData *sd, UInt64 attribute) -{ - for (;;) - { - UInt64 type; - RINOK(SzReadID(sd, &type)); - if (type == attribute) - return SZ_OK; - if (type == k7zIdEnd) - return SZ_ERROR_ARCHIVE; - RINOK(SzSkeepData(sd)); - } -} - -static SRes SzReadBoolVector(CSzData *sd, size_t numItems, Byte **v, ISzAlloc *alloc) -{ - Byte b = 0; - Byte mask = 0; - size_t i; - MY_ALLOC(Byte, *v, numItems, alloc); - for (i = 0; i < numItems; i++) - { - if (mask == 0) - { - RINOK(SzReadByte(sd, &b)); - mask = 0x80; - } - (*v)[i] = (Byte)(((b & mask) != 0) ? 1 : 0); - mask >>= 1; - } - return SZ_OK; -} - -static SRes SzReadBoolVector2(CSzData *sd, size_t numItems, Byte **v, ISzAlloc *alloc) -{ - Byte allAreDefined; - size_t i; - RINOK(SzReadByte(sd, &allAreDefined)); - if (allAreDefined == 0) - return SzReadBoolVector(sd, numItems, v, alloc); - MY_ALLOC(Byte, *v, numItems, alloc); - for (i = 0; i < numItems; i++) - (*v)[i] = 1; - return SZ_OK; -} - -static SRes SzReadHashDigests( - CSzData *sd, - size_t numItems, - Byte **digestsDefined, - UInt32 **digests, - ISzAlloc *alloc) -{ - size_t i; - RINOK(SzReadBoolVector2(sd, numItems, digestsDefined, alloc)); - MY_ALLOC(UInt32, *digests, numItems, alloc); - for (i = 0; i < numItems; i++) - if ((*digestsDefined)[i]) - { - RINOK(SzReadUInt32(sd, (*digests) + i)); - } - return SZ_OK; -} - -static SRes SzReadPackInfo( - CSzData *sd, - UInt64 *dataOffset, - UInt32 *numPackStreams, - UInt64 **packSizes, - Byte **packCRCsDefined, - UInt32 **packCRCs, - ISzAlloc *alloc) -{ - UInt32 i; - RINOK(SzReadNumber(sd, dataOffset)); - RINOK(SzReadNumber32(sd, numPackStreams)); - - RINOK(SzWaitAttribute(sd, k7zIdSize)); - - MY_ALLOC(UInt64, *packSizes, (size_t)*numPackStreams, alloc); - - for (i = 0; i < *numPackStreams; i++) - { - RINOK(SzReadNumber(sd, (*packSizes) + i)); - } - - for (;;) - { - UInt64 type; - RINOK(SzReadID(sd, &type)); - if (type == k7zIdEnd) - break; - if (type == k7zIdCRC) - { - RINOK(SzReadHashDigests(sd, (size_t)*numPackStreams, packCRCsDefined, packCRCs, alloc)); - continue; - } - RINOK(SzSkeepData(sd)); - } - if (*packCRCsDefined == 0) - { - MY_ALLOC(Byte, *packCRCsDefined, (size_t)*numPackStreams, alloc); - MY_ALLOC(UInt32, *packCRCs, (size_t)*numPackStreams, alloc); - for (i = 0; i < *numPackStreams; i++) - { - (*packCRCsDefined)[i] = 0; - (*packCRCs)[i] = 0; - } - } - return SZ_OK; -} - -static SRes SzReadSwitch(CSzData *sd) -{ - Byte external; - RINOK(SzReadByte(sd, &external)); - return (external == 0) ? SZ_OK: SZ_ERROR_UNSUPPORTED; -} - -static SRes SzGetNextFolderItem(CSzData *sd, CSzFolder *folder, ISzAlloc *alloc) -{ - UInt32 numCoders, numBindPairs, numPackStreams, i; - UInt32 numInStreams = 0, numOutStreams = 0; - - RINOK(SzReadNumber32(sd, &numCoders)); - if (numCoders > NUM_FOLDER_CODERS_MAX) - return SZ_ERROR_UNSUPPORTED; - folder->NumCoders = numCoders; - - MY_ALLOC(CSzCoderInfo, folder->Coders, (size_t)numCoders, alloc); - - for (i = 0; i < numCoders; i++) - SzCoderInfo_Init(folder->Coders + i); - - for (i = 0; i < numCoders; i++) - { - Byte mainByte; - CSzCoderInfo *coder = folder->Coders + i; - { - unsigned idSize, j; - Byte longID[15]; - RINOK(SzReadByte(sd, &mainByte)); - idSize = (unsigned)(mainByte & 0xF); - RINOK(SzReadBytes(sd, longID, idSize)); - if (idSize > sizeof(coder->MethodID)) - return SZ_ERROR_UNSUPPORTED; - coder->MethodID = 0; - for (j = 0; j < idSize; j++) - coder->MethodID |= (UInt64)longID[idSize - 1 - j] << (8 * j); - - if ((mainByte & 0x10) != 0) - { - RINOK(SzReadNumber32(sd, &coder->NumInStreams)); - RINOK(SzReadNumber32(sd, &coder->NumOutStreams)); - if (coder->NumInStreams > NUM_CODER_STREAMS_MAX || - coder->NumOutStreams > NUM_CODER_STREAMS_MAX) - return SZ_ERROR_UNSUPPORTED; - } - else - { - coder->NumInStreams = 1; - coder->NumOutStreams = 1; - } - if ((mainByte & 0x20) != 0) - { - UInt64 propertiesSize = 0; - RINOK(SzReadNumber(sd, &propertiesSize)); - if (!Buf_Create(&coder->Props, (size_t)propertiesSize, alloc)) - return SZ_ERROR_MEM; - RINOK(SzReadBytes(sd, coder->Props.data, (size_t)propertiesSize)); - } - } - while ((mainByte & 0x80) != 0) - { - RINOK(SzReadByte(sd, &mainByte)); - RINOK(SzSkeepDataSize(sd, (mainByte & 0xF))); - if ((mainByte & 0x10) != 0) - { - UInt32 n; - RINOK(SzReadNumber32(sd, &n)); - RINOK(SzReadNumber32(sd, &n)); - } - if ((mainByte & 0x20) != 0) - { - UInt64 propertiesSize = 0; - RINOK(SzReadNumber(sd, &propertiesSize)); - RINOK(SzSkeepDataSize(sd, propertiesSize)); - } - } - numInStreams += coder->NumInStreams; - numOutStreams += coder->NumOutStreams; - } - - if (numOutStreams == 0) - return SZ_ERROR_UNSUPPORTED; - - folder->NumBindPairs = numBindPairs = numOutStreams - 1; - MY_ALLOC(CBindPair, folder->BindPairs, (size_t)numBindPairs, alloc); - - for (i = 0; i < numBindPairs; i++) - { - CBindPair *bp = folder->BindPairs + i; - RINOK(SzReadNumber32(sd, &bp->InIndex)); - RINOK(SzReadNumber32(sd, &bp->OutIndex)); - } - - if (numInStreams < numBindPairs) - return SZ_ERROR_UNSUPPORTED; - - folder->NumPackStreams = numPackStreams = numInStreams - numBindPairs; - MY_ALLOC(UInt32, folder->PackStreams, (size_t)numPackStreams, alloc); - - if (numPackStreams == 1) - { - for (i = 0; i < numInStreams ; i++) - if (SzFolder_FindBindPairForInStream(folder, i) < 0) - break; - if (i == numInStreams) - return SZ_ERROR_UNSUPPORTED; - folder->PackStreams[0] = i; - } - else - for (i = 0; i < numPackStreams; i++) - { - RINOK(SzReadNumber32(sd, folder->PackStreams + i)); - } - return SZ_OK; -} - -static SRes SzReadUnpackInfo( - CSzData *sd, - UInt32 *numFolders, - CSzFolder **folders, /* for alloc */ - ISzAlloc *alloc, - ISzAlloc *allocTemp) -{ - UInt32 i; - RINOK(SzWaitAttribute(sd, k7zIdFolder)); - RINOK(SzReadNumber32(sd, numFolders)); - { - RINOK(SzReadSwitch(sd)); - - MY_ALLOC(CSzFolder, *folders, (size_t)*numFolders, alloc); - - for (i = 0; i < *numFolders; i++) - SzFolder_Init((*folders) + i); - - for (i = 0; i < *numFolders; i++) - { - RINOK(SzGetNextFolderItem(sd, (*folders) + i, alloc)); - } - } - - RINOK(SzWaitAttribute(sd, k7zIdCodersUnpackSize)); - - for (i = 0; i < *numFolders; i++) - { - UInt32 j; - CSzFolder *folder = (*folders) + i; - UInt32 numOutStreams = SzFolder_GetNumOutStreams(folder); - - MY_ALLOC(UInt64, folder->UnpackSizes, (size_t)numOutStreams, alloc); - - for (j = 0; j < numOutStreams; j++) - { - RINOK(SzReadNumber(sd, folder->UnpackSizes + j)); - } - } - - for (;;) - { - UInt64 type; - RINOK(SzReadID(sd, &type)); - if (type == k7zIdEnd) - return SZ_OK; - if (type == k7zIdCRC) - { - SRes res; - Byte *crcsDefined = 0; - UInt32 *crcs = 0; - res = SzReadHashDigests(sd, *numFolders, &crcsDefined, &crcs, allocTemp); - if (res == SZ_OK) - { - for (i = 0; i < *numFolders; i++) - { - CSzFolder *folder = (*folders) + i; - folder->UnpackCRCDefined = crcsDefined[i]; - folder->UnpackCRC = crcs[i]; - } - } - IAlloc_Free(allocTemp, crcs); - IAlloc_Free(allocTemp, crcsDefined); - RINOK(res); - continue; - } - RINOK(SzSkeepData(sd)); - } -} - -static SRes SzReadSubStreamsInfo( - CSzData *sd, - UInt32 numFolders, - CSzFolder *folders, - UInt32 *numUnpackStreams, - UInt64 **unpackSizes, - Byte **digestsDefined, - UInt32 **digests, - ISzAlloc *allocTemp) -{ - UInt64 type = 0; - UInt32 i; - UInt32 si = 0; - UInt32 numDigests = 0; - - for (i = 0; i < numFolders; i++) - folders[i].NumUnpackStreams = 1; - *numUnpackStreams = numFolders; - - for (;;) - { - RINOK(SzReadID(sd, &type)); - if (type == k7zIdNumUnpackStream) - { - *numUnpackStreams = 0; - for (i = 0; i < numFolders; i++) - { - UInt32 numStreams; - RINOK(SzReadNumber32(sd, &numStreams)); - folders[i].NumUnpackStreams = numStreams; - *numUnpackStreams += numStreams; - } - continue; - } - if (type == k7zIdCRC || type == k7zIdSize) - break; - if (type == k7zIdEnd) - break; - RINOK(SzSkeepData(sd)); - } - - if (*numUnpackStreams == 0) - { - *unpackSizes = 0; - *digestsDefined = 0; - *digests = 0; - } - else - { - *unpackSizes = (UInt64 *)IAlloc_Alloc(allocTemp, (size_t)*numUnpackStreams * sizeof(UInt64)); - RINOM(*unpackSizes); - *digestsDefined = (Byte *)IAlloc_Alloc(allocTemp, (size_t)*numUnpackStreams * sizeof(Byte)); - RINOM(*digestsDefined); - *digests = (UInt32 *)IAlloc_Alloc(allocTemp, (size_t)*numUnpackStreams * sizeof(UInt32)); - RINOM(*digests); - } - - for (i = 0; i < numFolders; i++) - { - /* - v3.13 incorrectly worked with empty folders - v4.07: we check that folder is empty - */ - UInt64 sum = 0; - UInt32 j; - UInt32 numSubstreams = folders[i].NumUnpackStreams; - if (numSubstreams == 0) - continue; - if (type == k7zIdSize) - for (j = 1; j < numSubstreams; j++) - { - UInt64 size; - RINOK(SzReadNumber(sd, &size)); - (*unpackSizes)[si++] = size; - sum += size; - } - (*unpackSizes)[si++] = SzFolder_GetUnpackSize(folders + i) - sum; - } - if (type == k7zIdSize) - { - RINOK(SzReadID(sd, &type)); - } - - for (i = 0; i < *numUnpackStreams; i++) - { - (*digestsDefined)[i] = 0; - (*digests)[i] = 0; - } - - - for (i = 0; i < numFolders; i++) - { - UInt32 numSubstreams = folders[i].NumUnpackStreams; - if (numSubstreams != 1 || !folders[i].UnpackCRCDefined) - numDigests += numSubstreams; - } - - - si = 0; - for (;;) - { - if (type == k7zIdCRC) - { - int digestIndex = 0; - Byte *digestsDefined2 = 0; - UInt32 *digests2 = 0; - SRes res = SzReadHashDigests(sd, numDigests, &digestsDefined2, &digests2, allocTemp); - if (res == SZ_OK) - { - for (i = 0; i < numFolders; i++) - { - CSzFolder *folder = folders + i; - UInt32 numSubstreams = folder->NumUnpackStreams; - if (numSubstreams == 1 && folder->UnpackCRCDefined) - { - (*digestsDefined)[si] = 1; - (*digests)[si] = folder->UnpackCRC; - si++; - } - else - { - UInt32 j; - for (j = 0; j < numSubstreams; j++, digestIndex++) - { - (*digestsDefined)[si] = digestsDefined2[digestIndex]; - (*digests)[si] = digests2[digestIndex]; - si++; - } - } - } - } - IAlloc_Free(allocTemp, digestsDefined2); - IAlloc_Free(allocTemp, digests2); - RINOK(res); - } - else if (type == k7zIdEnd) - return SZ_OK; - else - { - RINOK(SzSkeepData(sd)); - } - RINOK(SzReadID(sd, &type)); - } -} - - -static SRes SzReadStreamsInfo( - CSzData *sd, - UInt64 *dataOffset, - CSzAr *p, - UInt32 *numUnpackStreams, - UInt64 **unpackSizes, /* allocTemp */ - Byte **digestsDefined, /* allocTemp */ - UInt32 **digests, /* allocTemp */ - ISzAlloc *alloc, - ISzAlloc *allocTemp) -{ - for (;;) - { - UInt64 type; - RINOK(SzReadID(sd, &type)); - if ((UInt64)(int)type != type) - return SZ_ERROR_UNSUPPORTED; - switch((int)type) - { - case k7zIdEnd: - return SZ_OK; - case k7zIdPackInfo: - { - RINOK(SzReadPackInfo(sd, dataOffset, &p->NumPackStreams, - &p->PackSizes, &p->PackCRCsDefined, &p->PackCRCs, alloc)); - break; - } - case k7zIdUnpackInfo: - { - RINOK(SzReadUnpackInfo(sd, &p->NumFolders, &p->Folders, alloc, allocTemp)); - break; - } - case k7zIdSubStreamsInfo: - { - RINOK(SzReadSubStreamsInfo(sd, p->NumFolders, p->Folders, - numUnpackStreams, unpackSizes, digestsDefined, digests, allocTemp)); - break; - } - default: - return SZ_ERROR_UNSUPPORTED; - } - } -} - -Byte kUtf8Limits[5] = { 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }; - -static SRes SzReadFileNames(CSzData *sd, UInt32 numFiles, CSzFileItem *files, ISzAlloc *alloc) -{ - UInt32 i; - for (i = 0; i < numFiles; i++) - { - UInt32 len = 0; - UInt32 pos = 0; - CSzFileItem *file = files + i; - while (pos + 2 <= sd->Size) - { - int numAdds; - UInt32 value = (UInt32)(sd->Data[pos] | (((UInt32)sd->Data[pos + 1]) << 8)); - pos += 2; - len++; - if (value == 0) - break; - if (value < 0x80) - continue; - if (value >= 0xD800 && value < 0xE000) - { - UInt32 c2; - if (value >= 0xDC00) - return SZ_ERROR_ARCHIVE; - if (pos + 2 > sd->Size) - return SZ_ERROR_ARCHIVE; - c2 = (UInt32)(sd->Data[pos] | (((UInt32)sd->Data[pos + 1]) << 8)); - pos += 2; - if (c2 < 0xDC00 || c2 >= 0xE000) - return SZ_ERROR_ARCHIVE; - value = ((value - 0xD800) << 10) | (c2 - 0xDC00); - } - for (numAdds = 1; numAdds < 5; numAdds++) - if (value < (((UInt32)1) << (numAdds * 5 + 6))) - break; - len += numAdds; - } - - MY_ALLOC(char, file->Name, (size_t)len, alloc); - - len = 0; - while (2 <= sd->Size) - { - int numAdds; - UInt32 value = (UInt32)(sd->Data[0] | (((UInt32)sd->Data[1]) << 8)); - SzSkeepDataSize(sd, 2); - if (value < 0x80) - { - file->Name[len++] = (char)value; - if (value == 0) - break; - continue; - } - if (value >= 0xD800 && value < 0xE000) - { - UInt32 c2 = (UInt32)(sd->Data[0] | (((UInt32)sd->Data[1]) << 8)); - SzSkeepDataSize(sd, 2); - value = ((value - 0xD800) << 10) | (c2 - 0xDC00); - } - for (numAdds = 1; numAdds < 5; numAdds++) - if (value < (((UInt32)1) << (numAdds * 5 + 6))) - break; - file->Name[len++] = (char)(kUtf8Limits[numAdds - 1] + (value >> (6 * numAdds))); - do - { - numAdds--; - file->Name[len++] = (char)(0x80 + ((value >> (6 * numAdds)) & 0x3F)); - } - while (numAdds > 0); - - len += numAdds; - } - } - return SZ_OK; -} - -static SRes SzReadHeader2( - CSzArEx *p, /* allocMain */ - CSzData *sd, - UInt64 **unpackSizes, /* allocTemp */ - Byte **digestsDefined, /* allocTemp */ - UInt32 **digests, /* allocTemp */ - Byte **emptyStreamVector, /* allocTemp */ - Byte **emptyFileVector, /* allocTemp */ - Byte **lwtVector, /* allocTemp */ - ISzAlloc *allocMain, - ISzAlloc *allocTemp) -{ - UInt64 htype; - UInt32 numUnpackStreams = 0; - UInt32 numFiles = 0; - CSzFileItem *files = 0; - UInt32 numEmptyStreams = 0; - UInt32 i; - - RINOK(SzReadID(sd, &htype)); - - if (htype == k7zIdArchiveProperties) - { - RINOK(SzReadArchiveProperties(sd)); - RINOK(SzReadID(sd, &htype)); - } - - - if (htype == k7zIdMainStreamsInfo) - { - RINOK(SzReadStreamsInfo(sd, - &p->dataPos, - &p->db, - &numUnpackStreams, - unpackSizes, - digestsDefined, - digests, allocMain, allocTemp)); - p->dataPos += p->startPosAfterHeader; - RINOK(SzReadID(sd, &htype)); - } - - if (htype == k7zIdEnd) - return SZ_OK; - if (htype != k7zIdFilesInfo) - return SZ_ERROR_ARCHIVE; - - RINOK(SzReadNumber32(sd, &numFiles)); - p->db.NumFiles = numFiles; - - MY_ALLOC(CSzFileItem, files, (size_t)numFiles, allocMain); - - p->db.Files = files; - for (i = 0; i < numFiles; i++) - SzFile_Init(files + i); - - for (;;) - { - UInt64 type; - UInt64 size; - RINOK(SzReadID(sd, &type)); - if (type == k7zIdEnd) - break; - RINOK(SzReadNumber(sd, &size)); - - if ((UInt64)(int)type != type) - { - RINOK(SzSkeepDataSize(sd, size)); - } - else - switch((int)type) - { - case k7zIdName: - { - RINOK(SzReadSwitch(sd)); - RINOK(SzReadFileNames(sd, numFiles, files, allocMain)) - break; - } - case k7zIdEmptyStream: - { - RINOK(SzReadBoolVector(sd, numFiles, emptyStreamVector, allocTemp)); - numEmptyStreams = 0; - for (i = 0; i < numFiles; i++) - if ((*emptyStreamVector)[i]) - numEmptyStreams++; - break; - } - case k7zIdEmptyFile: - { - RINOK(SzReadBoolVector(sd, numEmptyStreams, emptyFileVector, allocTemp)); - break; - } - case k7zIdMTime: - { - RINOK(SzReadBoolVector2(sd, numFiles, lwtVector, allocTemp)); - RINOK(SzReadSwitch(sd)); - for (i = 0; i < numFiles; i++) - { - CSzFileItem *f = &files[i]; - Byte defined = (*lwtVector)[i]; - f->MTimeDefined = defined; - f->MTime.Low = f->MTime.High = 0; - if (defined) - { - RINOK(SzReadUInt32(sd, &f->MTime.Low)); - RINOK(SzReadUInt32(sd, &f->MTime.High)); - } - } - break; - } - default: - { - RINOK(SzSkeepDataSize(sd, size)); - } - } - } - - { - UInt32 emptyFileIndex = 0; - UInt32 sizeIndex = 0; - for (i = 0; i < numFiles; i++) - { - CSzFileItem *file = files + i; - file->IsAnti = 0; - if (*emptyStreamVector == 0) - file->HasStream = 1; - else - file->HasStream = (Byte)((*emptyStreamVector)[i] ? 0 : 1); - if (file->HasStream) - { - file->IsDir = 0; - file->Size = (*unpackSizes)[sizeIndex]; - file->FileCRC = (*digests)[sizeIndex]; - file->FileCRCDefined = (Byte)(*digestsDefined)[sizeIndex]; - sizeIndex++; - } - else - { - if (*emptyFileVector == 0) - file->IsDir = 1; - else - file->IsDir = (Byte)((*emptyFileVector)[emptyFileIndex] ? 0 : 1); - emptyFileIndex++; - file->Size = 0; - file->FileCRCDefined = 0; - } - } - } - return SzArEx_Fill(p, allocMain); -} - -static SRes SzReadHeader( - CSzArEx *p, - CSzData *sd, - ISzAlloc *allocMain, - ISzAlloc *allocTemp) -{ - UInt64 *unpackSizes = 0; - Byte *digestsDefined = 0; - UInt32 *digests = 0; - Byte *emptyStreamVector = 0; - Byte *emptyFileVector = 0; - Byte *lwtVector = 0; - SRes res = SzReadHeader2(p, sd, - &unpackSizes, &digestsDefined, &digests, - &emptyStreamVector, &emptyFileVector, &lwtVector, - allocMain, allocTemp); - IAlloc_Free(allocTemp, unpackSizes); - IAlloc_Free(allocTemp, digestsDefined); - IAlloc_Free(allocTemp, digests); - IAlloc_Free(allocTemp, emptyStreamVector); - IAlloc_Free(allocTemp, emptyFileVector); - IAlloc_Free(allocTemp, lwtVector); - return res; -} - -static SRes SzReadAndDecodePackedStreams2( - ILookInStream *inStream, - CSzData *sd, - CBuf *outBuffer, - UInt64 baseOffset, - CSzAr *p, - UInt64 **unpackSizes, - Byte **digestsDefined, - UInt32 **digests, - ISzAlloc *allocTemp) -{ - - UInt32 numUnpackStreams = 0; - UInt64 dataStartPos; - CSzFolder *folder; - UInt64 unpackSize; - SRes res; - - RINOK(SzReadStreamsInfo(sd, &dataStartPos, p, - &numUnpackStreams, unpackSizes, digestsDefined, digests, - allocTemp, allocTemp)); - - dataStartPos += baseOffset; - if (p->NumFolders != 1) - return SZ_ERROR_ARCHIVE; - - folder = p->Folders; - unpackSize = SzFolder_GetUnpackSize(folder); - - RINOK(LookInStream_SeekTo(inStream, dataStartPos)); - - if (!Buf_Create(outBuffer, (size_t)unpackSize, allocTemp)) - return SZ_ERROR_MEM; - - res = SzDecode(p->PackSizes, folder, - inStream, dataStartPos, - outBuffer->data, (size_t)unpackSize, allocTemp); - RINOK(res); - if (folder->UnpackCRCDefined) - if (CrcCalc(outBuffer->data, (size_t)unpackSize) != folder->UnpackCRC) - return SZ_ERROR_CRC; - return SZ_OK; -} - -static SRes SzReadAndDecodePackedStreams( - ILookInStream *inStream, - CSzData *sd, - CBuf *outBuffer, - UInt64 baseOffset, - ISzAlloc *allocTemp) -{ - CSzAr p; - UInt64 *unpackSizes = 0; - Byte *digestsDefined = 0; - UInt32 *digests = 0; - SRes res; - SzAr_Init(&p); - res = SzReadAndDecodePackedStreams2(inStream, sd, outBuffer, baseOffset, - &p, &unpackSizes, &digestsDefined, &digests, - allocTemp); - SzAr_Free(&p, allocTemp); - IAlloc_Free(allocTemp, unpackSizes); - IAlloc_Free(allocTemp, digestsDefined); - IAlloc_Free(allocTemp, digests); - return res; -} - -static SRes SzArEx_Open2( - CSzArEx *p, - ILookInStream *inStream, - ISzAlloc *allocMain, - ISzAlloc *allocTemp) -{ - Byte header[k7zStartHeaderSize]; - UInt64 nextHeaderOffset, nextHeaderSize; - size_t nextHeaderSizeT; - UInt32 nextHeaderCRC; - CBuf buffer; - SRes res; - - RINOK(LookInStream_Read2(inStream, header, k7zStartHeaderSize, SZ_ERROR_NO_ARCHIVE)); - - if (!TestSignatureCandidate(header)) - return SZ_ERROR_NO_ARCHIVE; - if (header[6] != k7zMajorVersion) - return SZ_ERROR_UNSUPPORTED; - - nextHeaderOffset = GetUi64(header + 12); - nextHeaderSize = GetUi64(header + 20); - nextHeaderCRC = GetUi32(header + 28); - - p->startPosAfterHeader = k7zStartHeaderSize; - - if (CrcCalc(header + 12, 20) != GetUi32(header + 8)) - return SZ_ERROR_CRC; - - nextHeaderSizeT = (size_t)nextHeaderSize; - if (nextHeaderSizeT != nextHeaderSize) - return SZ_ERROR_MEM; - if (nextHeaderSizeT == 0) - return SZ_OK; - if (nextHeaderOffset > nextHeaderOffset + nextHeaderSize || - nextHeaderOffset > nextHeaderOffset + nextHeaderSize + k7zStartHeaderSize) - return SZ_ERROR_NO_ARCHIVE; - - { - Int64 pos = 0; - RINOK(inStream->Seek(inStream, &pos, SZ_SEEK_END)); - if ((UInt64)pos < nextHeaderOffset || - (UInt64)pos < k7zStartHeaderSize + nextHeaderOffset || - (UInt64)pos < k7zStartHeaderSize + nextHeaderOffset + nextHeaderSize) - return SZ_ERROR_INPUT_EOF; - } - - RINOK(LookInStream_SeekTo(inStream, k7zStartHeaderSize + nextHeaderOffset)); - - if (!Buf_Create(&buffer, nextHeaderSizeT, allocTemp)) - return SZ_ERROR_MEM; - - res = LookInStream_Read(inStream, buffer.data, nextHeaderSizeT); - if (res == SZ_OK) - { - res = SZ_ERROR_ARCHIVE; - if (CrcCalc(buffer.data, nextHeaderSizeT) == nextHeaderCRC) - { - CSzData sd; - UInt64 type; - sd.Data = buffer.data; - sd.Size = buffer.size; - res = SzReadID(&sd, &type); - if (res == SZ_OK) - { - if (type == k7zIdEncodedHeader) - { - CBuf outBuffer; - Buf_Init(&outBuffer); - res = SzReadAndDecodePackedStreams(inStream, &sd, &outBuffer, p->startPosAfterHeader, allocTemp); - if (res != SZ_OK) - Buf_Free(&outBuffer, allocTemp); - else - { - Buf_Free(&buffer, allocTemp); - buffer.data = outBuffer.data; - buffer.size = outBuffer.size; - sd.Data = buffer.data; - sd.Size = buffer.size; - res = SzReadID(&sd, &type); - } - } - } - if (res == SZ_OK) - { - if (type == k7zIdHeader) - res = SzReadHeader(p, &sd, allocMain, allocTemp); - else - res = SZ_ERROR_UNSUPPORTED; - } - } - } - Buf_Free(&buffer, allocTemp); - return res; -} - -SRes SzArEx_Open(CSzArEx *p, ILookInStream *inStream, ISzAlloc *allocMain, ISzAlloc *allocTemp) -{ - SRes res = SzArEx_Open2(p, inStream, allocMain, allocTemp); - if (res != SZ_OK) - SzArEx_Free(p, allocMain); - return res; -} diff --git a/snesreader/7z_C/7zIn.h b/snesreader/7z_C/7zIn.h deleted file mode 100644 index 89e0fb85..00000000 --- a/snesreader/7z_C/7zIn.h +++ /dev/null @@ -1,49 +0,0 @@ -/* 7zIn.h -- 7z Input functions -2008-11-23 : Igor Pavlov : Public domain */ - -#ifndef __7Z_IN_H -#define __7Z_IN_H - -#include "7zHeader.h" -#include "7zItem.h" - -#ifdef __cplusplus - extern "C" { -#endif - -typedef struct -{ - CSzAr db; - - UInt64 startPosAfterHeader; - UInt64 dataPos; - - UInt32 *FolderStartPackStreamIndex; - UInt64 *PackStreamStartPositions; - UInt32 *FolderStartFileIndex; - UInt32 *FileIndexToFolderIndexMap; -} CSzArEx; - -void SzArEx_Init(CSzArEx *p); -void SzArEx_Free(CSzArEx *p, ISzAlloc *alloc); -UInt64 SzArEx_GetFolderStreamPos(const CSzArEx *p, UInt32 folderIndex, UInt32 indexInFolder); -int SzArEx_GetFolderFullPackSize(const CSzArEx *p, UInt32 folderIndex, UInt64 *resSize); - -/* -Errors: -SZ_ERROR_NO_ARCHIVE -SZ_ERROR_ARCHIVE -SZ_ERROR_UNSUPPORTED -SZ_ERROR_MEM -SZ_ERROR_CRC -SZ_ERROR_INPUT_EOF -SZ_ERROR_FAIL -*/ - -SRes SzArEx_Open(CSzArEx *p, ILookInStream *inStream, ISzAlloc *allocMain, ISzAlloc *allocTemp); - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/snesreader/7z_C/7zItem.c b/snesreader/7z_C/7zItem.c deleted file mode 100644 index 4a092614..00000000 --- a/snesreader/7z_C/7zItem.c +++ /dev/null @@ -1,129 +0,0 @@ -/* 7zItem.c -- 7z Items -2008-10-04 : Igor Pavlov : Public domain */ - -#include "7zItem.h" - -void SzCoderInfo_Init(CSzCoderInfo *p) -{ - Buf_Init(&p->Props); -} - -void SzCoderInfo_Free(CSzCoderInfo *p, ISzAlloc *alloc) -{ - Buf_Free(&p->Props, alloc); - SzCoderInfo_Init(p); -} - -void SzFolder_Init(CSzFolder *p) -{ - p->Coders = 0; - p->BindPairs = 0; - p->PackStreams = 0; - p->UnpackSizes = 0; - p->NumCoders = 0; - p->NumBindPairs = 0; - p->NumPackStreams = 0; - p->UnpackCRCDefined = 0; - p->UnpackCRC = 0; - p->NumUnpackStreams = 0; -} - -static -void SzFolder_Free(CSzFolder *p, ISzAlloc *alloc) -{ - UInt32 i; - if (p->Coders) - for (i = 0; i < p->NumCoders; i++) - SzCoderInfo_Free(&p->Coders[i], alloc); - IAlloc_Free(alloc, p->Coders); - IAlloc_Free(alloc, p->BindPairs); - IAlloc_Free(alloc, p->PackStreams); - IAlloc_Free(alloc, p->UnpackSizes); - SzFolder_Init(p); -} - -UInt32 SzFolder_GetNumOutStreams(CSzFolder *p) -{ - UInt32 result = 0; - UInt32 i; - for (i = 0; i < p->NumCoders; i++) - result += p->Coders[i].NumOutStreams; - return result; -} - -int SzFolder_FindBindPairForInStream(CSzFolder *p, UInt32 inStreamIndex) -{ - UInt32 i; - for (i = 0; i < p->NumBindPairs; i++) - if (p->BindPairs[i].InIndex == inStreamIndex) - return i; - return -1; -} - - -static -int SzFolder_FindBindPairForOutStream(CSzFolder *p, UInt32 outStreamIndex) -{ - UInt32 i; - for (i = 0; i < p->NumBindPairs; i++) - if (p->BindPairs[i].OutIndex == outStreamIndex) - return i; - return -1; -} - -UInt64 SzFolder_GetUnpackSize(CSzFolder *p) -{ - int i = (int)SzFolder_GetNumOutStreams(p); - if (i == 0) - return 0; - for (i--; i >= 0; i--) - if (SzFolder_FindBindPairForOutStream(p, i) < 0) - return p->UnpackSizes[i]; - /* throw 1; */ - return 0; -} - -void SzFile_Init(CSzFileItem *p) -{ - p->HasStream = 1; - p->IsDir = 0; - p->IsAnti = 0; - p->FileCRCDefined = 0; - p->MTimeDefined = 0; - p->Name = 0; -} - -static void SzFile_Free(CSzFileItem *p, ISzAlloc *alloc) -{ - IAlloc_Free(alloc, p->Name); - SzFile_Init(p); -} - -void SzAr_Init(CSzAr *p) -{ - p->PackSizes = 0; - p->PackCRCsDefined = 0; - p->PackCRCs = 0; - p->Folders = 0; - p->Files = 0; - p->NumPackStreams = 0; - p->NumFolders = 0; - p->NumFiles = 0; -} - -void SzAr_Free(CSzAr *p, ISzAlloc *alloc) -{ - UInt32 i; - if (p->Folders) - for (i = 0; i < p->NumFolders; i++) - SzFolder_Free(&p->Folders[i], alloc); - if (p->Files) - for (i = 0; i < p->NumFiles; i++) - SzFile_Free(&p->Files[i], alloc); - IAlloc_Free(alloc, p->PackSizes); - IAlloc_Free(alloc, p->PackCRCsDefined); - IAlloc_Free(alloc, p->PackCRCs); - IAlloc_Free(alloc, p->Folders); - IAlloc_Free(alloc, p->Files); - SzAr_Init(p); -} diff --git a/snesreader/7z_C/7zItem.h b/snesreader/7z_C/7zItem.h deleted file mode 100644 index 7ef24731..00000000 --- a/snesreader/7z_C/7zItem.h +++ /dev/null @@ -1,83 +0,0 @@ -/* 7zItem.h -- 7z Items -2008-10-04 : Igor Pavlov : Public domain */ - -#ifndef __7Z_ITEM_H -#define __7Z_ITEM_H - -#include "7zBuf.h" - -typedef struct -{ - UInt32 NumInStreams; - UInt32 NumOutStreams; - UInt64 MethodID; - CBuf Props; -} CSzCoderInfo; - -void SzCoderInfo_Init(CSzCoderInfo *p); -void SzCoderInfo_Free(CSzCoderInfo *p, ISzAlloc *alloc); - -typedef struct -{ - UInt32 InIndex; - UInt32 OutIndex; -} CBindPair; - -typedef struct -{ - CSzCoderInfo *Coders; - CBindPair *BindPairs; - UInt32 *PackStreams; - UInt64 *UnpackSizes; - UInt32 NumCoders; - UInt32 NumBindPairs; - UInt32 NumPackStreams; - int UnpackCRCDefined; - UInt32 UnpackCRC; - - UInt32 NumUnpackStreams; -} CSzFolder; - -void SzFolder_Init(CSzFolder *p); -UInt64 SzFolder_GetUnpackSize(CSzFolder *p); -int SzFolder_FindBindPairForInStream(CSzFolder *p, UInt32 inStreamIndex); -UInt32 SzFolder_GetNumOutStreams(CSzFolder *p); - -typedef struct -{ - UInt32 Low; - UInt32 High; -} CNtfsFileTime; - -typedef struct -{ - CNtfsFileTime MTime; - UInt64 Size; - char *Name; - UInt32 FileCRC; - - Byte HasStream; - Byte IsDir; - Byte IsAnti; - Byte FileCRCDefined; - Byte MTimeDefined; -} CSzFileItem; - -void SzFile_Init(CSzFileItem *p); - -typedef struct -{ - UInt64 *PackSizes; - Byte *PackCRCsDefined; - UInt32 *PackCRCs; - CSzFolder *Folders; - CSzFileItem *Files; - UInt32 NumPackStreams; - UInt32 NumFolders; - UInt32 NumFiles; -} CSzAr; - -void SzAr_Init(CSzAr *p); -void SzAr_Free(CSzAr *p, ISzAlloc *alloc); - -#endif diff --git a/snesreader/7z_C/7zStream.c b/snesreader/7z_C/7zStream.c deleted file mode 100644 index 6dc333ef..00000000 --- a/snesreader/7z_C/7zStream.c +++ /dev/null @@ -1,184 +0,0 @@ -/* 7zStream.c -- 7z Stream functions -2008-11-23 : Igor Pavlov : Public domain */ - -#include - -#include "Types.h" - -#if NEVER_CALLED -SRes SeqInStream_Read2(ISeqInStream *stream, void *buf, size_t size, SRes errorType) -{ - while (size != 0) - { - size_t processed = size; - RINOK(stream->Read(stream, buf, &processed)); - if (processed == 0) - return errorType; - buf = (void *)((Byte *)buf + processed); - size -= processed; - } - return SZ_OK; -} - -SRes SeqInStream_Read(ISeqInStream *stream, void *buf, size_t size) -{ - return SeqInStream_Read2(stream, buf, size, SZ_ERROR_INPUT_EOF); -} - -SRes SeqInStream_ReadByte(ISeqInStream *stream, Byte *buf) -{ - size_t processed = 1; - RINOK(stream->Read(stream, buf, &processed)); - return (processed == 1) ? SZ_OK : SZ_ERROR_INPUT_EOF; -} -#endif - -SRes LookInStream_SeekTo(ILookInStream *stream, UInt64 offset) -{ - Int64 t = offset; - return stream->Seek(stream, &t, SZ_SEEK_SET); -} - -#if NEVER_CALLED -SRes LookInStream_LookRead(ILookInStream *stream, void *buf, size_t *size) -{ - void *lookBuf; - if (*size == 0) - return SZ_OK; - RINOK(stream->Look(stream, &lookBuf, size)); - memcpy(buf, lookBuf, *size); - return stream->Skip(stream, *size); -} -#endif - -SRes LookInStream_Read2(ILookInStream *stream, void *buf, size_t size, SRes errorType) -{ - while (size != 0) - { - size_t processed = size; - RINOK(stream->Read(stream, buf, &processed)); - if (processed == 0) - return errorType; - buf = (void *)((Byte *)buf + processed); - size -= processed; - } - return SZ_OK; -} - -SRes LookInStream_Read(ILookInStream *stream, void *buf, size_t size) -{ - return LookInStream_Read2(stream, buf, size, SZ_ERROR_INPUT_EOF); -} - -static SRes LookToRead_Look_Lookahead(void *pp, void **buf, size_t *size) -{ - SRes res = SZ_OK; -#if !NEVER_CALLED - (void)pp; - (void)buf; - (void)size; -#else - CLookToRead *p = (CLookToRead *)pp; - size_t size2 = p->size - p->pos; - if (size2 == 0 && *size > 0) - { - p->pos = 0; - size2 = LookToRead_BUF_SIZE; - res = p->realStream->Read(p->realStream, p->buf, &size2); - p->size = size2; - } - if (size2 < *size) - *size = size2; - *buf = p->buf + p->pos; -#endif - return res; -} - -static SRes LookToRead_Look_Exact(void *pp, void **buf, size_t *size) -{ - SRes res = SZ_OK; - CLookToRead *p = (CLookToRead *)pp; - size_t size2 = p->size - p->pos; - if (size2 == 0 && *size > 0) - { - p->pos = 0; - if (*size > LookToRead_BUF_SIZE) - *size = LookToRead_BUF_SIZE; - res = p->realStream->Read(p->realStream, p->buf, size); - size2 = p->size = *size; - } - if (size2 < *size) - *size = size2; - *buf = p->buf + p->pos; - return res; -} - -static SRes LookToRead_Skip(void *pp, size_t offset) -{ - CLookToRead *p = (CLookToRead *)pp; - p->pos += offset; - return SZ_OK; -} - -static SRes LookToRead_Read(void *pp, void *buf, size_t *size) -{ - CLookToRead *p = (CLookToRead *)pp; - size_t rem = p->size - p->pos; - if (rem == 0) - return p->realStream->Read(p->realStream, buf, size); - if (rem > *size) - rem = *size; - memcpy(buf, p->buf + p->pos, rem); - p->pos += rem; - *size = rem; - return SZ_OK; -} - -static SRes LookToRead_Seek(void *pp, Int64 *pos, ESzSeek origin) -{ - CLookToRead *p = (CLookToRead *)pp; - p->pos = p->size = 0; - return p->realStream->Seek(p->realStream, pos, origin); -} - -void LookToRead_CreateVTable(CLookToRead *p, int lookahead) -{ -#if !NEVER_CALLED - lookahead = 0; -#endif - p->s.Look = lookahead ? - LookToRead_Look_Lookahead : - LookToRead_Look_Exact; - p->s.Skip = LookToRead_Skip; - p->s.Read = LookToRead_Read; - p->s.Seek = LookToRead_Seek; -} - -void LookToRead_Init(CLookToRead *p) -{ - p->pos = p->size = 0; -} - -#if NEVER_CALLED -static SRes SecToLook_Read(void *pp, void *buf, size_t *size) -{ - CSecToLook *p = (CSecToLook *)pp; - return LookInStream_LookRead(p->realStream, buf, size); -} - -void SecToLook_CreateVTable(CSecToLook *p) -{ - p->s.Read = SecToLook_Read; -} - -static SRes SecToRead_Read(void *pp, void *buf, size_t *size) -{ - CSecToRead *p = (CSecToRead *)pp; - return p->realStream->Read(p->realStream, buf, size); -} - -void SecToRead_CreateVTable(CSecToRead *p) -{ - p->s.Read = SecToRead_Read; -} -#endif diff --git a/snesreader/7z_C/Bcj2.c b/snesreader/7z_C/Bcj2.c deleted file mode 100644 index bc3dae92..00000000 --- a/snesreader/7z_C/Bcj2.c +++ /dev/null @@ -1,132 +0,0 @@ -/* Bcj2.c -- Converter for x86 code (BCJ2) -2008-10-04 : Igor Pavlov : Public domain */ - -#include "Bcj2.h" - -#ifdef _LZMA_PROB32 -#define CProb UInt32 -#else -#define CProb UInt16 -#endif - -#define IsJcc(b0, b1) ((b0) == 0x0F && ((b1) & 0xF0) == 0x80) -#define IsJ(b0, b1) ((b1 & 0xFE) == 0xE8 || IsJcc(b0, b1)) - -#define kNumTopBits 24 -#define kTopValue ((UInt32)1 << kNumTopBits) - -#define kNumBitModelTotalBits 11 -#define kBitModelTotal (1 << kNumBitModelTotalBits) -#define kNumMoveBits 5 - -#define RC_READ_BYTE (*buffer++) -#define RC_TEST { if (buffer == bufferLim) return SZ_ERROR_DATA; } -#define RC_INIT2 code = 0; range = 0xFFFFFFFF; \ - { int i; for (i = 0; i < 5; i++) { RC_TEST; code = (code << 8) | RC_READ_BYTE; }} - -#define NORMALIZE if (range < kTopValue) { RC_TEST; range <<= 8; code = (code << 8) | RC_READ_BYTE; } - -#define IF_BIT_0(p) ttt = *(p); bound = (range >> kNumBitModelTotalBits) * ttt; if (code < bound) -#define UPDATE_0(p) range = bound; *(p) = (CProb)(ttt + ((kBitModelTotal - ttt) >> kNumMoveBits)); NORMALIZE; -#define UPDATE_1(p) range -= bound; code -= bound; *(p) = (CProb)(ttt - (ttt >> kNumMoveBits)); NORMALIZE; - -int Bcj2_Decode( - const Byte *buf0, SizeT size0, - const Byte *buf1, SizeT size1, - const Byte *buf2, SizeT size2, - const Byte *buf3, SizeT size3, - Byte *outBuf, SizeT outSize) -{ - CProb p[256 + 2]; - SizeT inPos = 0, outPos = 0; - - const Byte *buffer, *bufferLim; - UInt32 range, code; - Byte prevByte = 0; - { - unsigned int i; - for (i = 0; i < sizeof(p) / sizeof(p[0]); i++) - p[i] = kBitModelTotal >> 1; - } - buffer = buf3; - bufferLim = buffer + size3; - RC_INIT2 - - if (outSize == 0) - return SZ_OK; - - for (;;) - { - Byte b; - CProb *prob; - UInt32 bound; - UInt32 ttt; - - SizeT limit = size0 - inPos; - if (outSize - outPos < limit) - limit = outSize - outPos; - while (limit != 0) - { - Byte bb = buf0[inPos]; - outBuf[outPos++] = bb; - if (IsJ(prevByte, bb)) - break; - inPos++; - prevByte = bb; - limit--; - } - - if (limit == 0 || outPos == outSize) - break; - - b = buf0[inPos++]; - - if (b == 0xE8) - prob = p + prevByte; - else if (b == 0xE9) - prob = p + 256; - else - prob = p + 257; - - IF_BIT_0(prob) - { - UPDATE_0(prob) - prevByte = b; - } - else - { - UInt32 dest; - const Byte *v; - UPDATE_1(prob) - if (b == 0xE8) - { - v = buf1; - if (size1 < 4) - return SZ_ERROR_DATA; - buf1 += 4; - size1 -= 4; - } - else - { - v = buf2; - if (size2 < 4) - return SZ_ERROR_DATA; - buf2 += 4; - size2 -= 4; - } - dest = (((UInt32)v[0] << 24) | ((UInt32)v[1] << 16) | - ((UInt32)v[2] << 8) | ((UInt32)v[3])) - ((UInt32)outPos + 4); - outBuf[outPos++] = (Byte)dest; - if (outPos == outSize) - break; - outBuf[outPos++] = (Byte)(dest >> 8); - if (outPos == outSize) - break; - outBuf[outPos++] = (Byte)(dest >> 16); - if (outPos == outSize) - break; - outBuf[outPos++] = prevByte = (Byte)(dest >> 24); - } - } - return (outPos == outSize) ? SZ_OK : SZ_ERROR_DATA; -} diff --git a/snesreader/7z_C/Bcj2.h b/snesreader/7z_C/Bcj2.h deleted file mode 100644 index 32d450b3..00000000 --- a/snesreader/7z_C/Bcj2.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Bcj2.h -- Converter for x86 code (BCJ2) -2008-10-04 : Igor Pavlov : Public domain */ - -#ifndef __BCJ2_H -#define __BCJ2_H - -#include "Types.h" - -/* -Conditions: - outSize <= FullOutputSize, - where FullOutputSize is full size of output stream of x86_2 filter. - -If buf0 overlaps outBuf, there are two required conditions: - 1) (buf0 >= outBuf) - 2) (buf0 + size0 >= outBuf + FullOutputSize). - -Returns: - SZ_OK - SZ_ERROR_DATA - Data error -*/ - -int Bcj2_Decode( - const Byte *buf0, SizeT size0, - const Byte *buf1, SizeT size1, - const Byte *buf2, SizeT size2, - const Byte *buf3, SizeT size3, - Byte *outBuf, SizeT outSize); - -#endif diff --git a/snesreader/7z_C/Bra.h b/snesreader/7z_C/Bra.h deleted file mode 100644 index 45e231e8..00000000 --- a/snesreader/7z_C/Bra.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Bra.h -- Branch converters for executables -2008-10-04 : Igor Pavlov : Public domain */ - -#ifndef __BRA_H -#define __BRA_H - -#include "Types.h" - -/* -These functions convert relative addresses to absolute addresses -in CALL instructions to increase the compression ratio. - - In: - data - data buffer - size - size of data - ip - current virtual Instruction Pinter (IP) value - state - state variable for x86 converter - encoding - 0 (for decoding), 1 (for encoding) - - Out: - state - state variable for x86 converter - - Returns: - The number of processed bytes. If you call these functions with multiple calls, - you must start next call with first byte after block of processed bytes. - - Type Endian Alignment LookAhead - - x86 little 1 4 - ARMT little 2 2 - ARM little 4 0 - PPC big 4 0 - SPARC big 4 0 - IA64 little 16 0 - - size must be >= Alignment + LookAhead, if it's not last block. - If (size < Alignment + LookAhead), converter returns 0. - - Example: - - UInt32 ip = 0; - for () - { - ; size must be >= Alignment + LookAhead, if it's not last block - SizeT processed = Convert(data, size, ip, 1); - data += processed; - size -= processed; - ip += processed; - } -*/ - -#define x86_Convert_Init(state) { state = 0; } -SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding); -SizeT ARM_Convert(Byte *data, SizeT size, UInt32 ip, int encoding); -SizeT ARMT_Convert(Byte *data, SizeT size, UInt32 ip, int encoding); -SizeT PPC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding); -SizeT SPARC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding); -SizeT IA64_Convert(Byte *data, SizeT size, UInt32 ip, int encoding); - -#endif diff --git a/snesreader/7z_C/Bra86.c b/snesreader/7z_C/Bra86.c deleted file mode 100644 index 1ee0e709..00000000 --- a/snesreader/7z_C/Bra86.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Bra86.c -- Converter for x86 code (BCJ) -2008-10-04 : Igor Pavlov : Public domain */ - -#include "Bra.h" - -#define Test86MSByte(b) ((b) == 0 || (b) == 0xFF) - -const Byte kMaskToAllowedStatus[8] = {1, 1, 1, 0, 1, 0, 0, 0}; -const Byte kMaskToBitNumber[8] = {0, 1, 2, 2, 3, 3, 3, 3}; - -SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding) -{ - SizeT bufferPos = 0, prevPosT; - UInt32 prevMask = *state & 0x7; - if (size < 5) - return 0; - ip += 5; - prevPosT = (SizeT)0 - 1; - - for (;;) - { - Byte *p = data + bufferPos; - Byte *limit = data + size - 4; - for (; p < limit; p++) - if ((*p & 0xFE) == 0xE8) - break; - bufferPos = (SizeT)(p - data); - if (p >= limit) - break; - prevPosT = bufferPos - prevPosT; - if (prevPosT > 3) - prevMask = 0; - else - { - prevMask = (prevMask << ((int)prevPosT - 1)) & 0x7; - if (prevMask != 0) - { - Byte b = p[4 - kMaskToBitNumber[prevMask]]; - if (!kMaskToAllowedStatus[prevMask] || Test86MSByte(b)) - { - prevPosT = bufferPos; - prevMask = ((prevMask << 1) & 0x7) | 1; - bufferPos++; - continue; - } - } - } - prevPosT = bufferPos; - - if (Test86MSByte(p[4])) - { - UInt32 src = ((UInt32)p[4] << 24) | ((UInt32)p[3] << 16) | ((UInt32)p[2] << 8) | ((UInt32)p[1]); - UInt32 dest; - for (;;) - { - Byte b; - int index; - if (encoding) - dest = (ip + (UInt32)bufferPos) + src; - else - dest = src - (ip + (UInt32)bufferPos); - if (prevMask == 0) - break; - index = kMaskToBitNumber[prevMask] * 8; - b = (Byte)(dest >> (24 - index)); - if (!Test86MSByte(b)) - break; - src = dest ^ ((1 << (32 - index)) - 1); - } - p[4] = (Byte)(~(((dest >> 24) & 1) - 1)); - p[3] = (Byte)(dest >> 16); - p[2] = (Byte)(dest >> 8); - p[1] = (Byte)dest; - bufferPos += 5; - } - else - { - prevMask = ((prevMask << 1) & 0x7) | 1; - bufferPos++; - } - } - prevPosT = bufferPos - prevPosT; - *state = ((prevPosT > 3) ? 0 : ((prevMask << ((int)prevPosT - 1)) & 0x7)); - return bufferPos; -} diff --git a/snesreader/7z_C/CpuArch.h b/snesreader/7z_C/CpuArch.h deleted file mode 100644 index 7384b0c3..00000000 --- a/snesreader/7z_C/CpuArch.h +++ /dev/null @@ -1,69 +0,0 @@ -/* CpuArch.h -2008-08-05 -Igor Pavlov -Public domain */ - -#ifndef __CPUARCH_H -#define __CPUARCH_H - -/* -LITTLE_ENDIAN_UNALIGN means: - 1) CPU is LITTLE_ENDIAN - 2) it's allowed to make unaligned memory accesses -if LITTLE_ENDIAN_UNALIGN is not defined, it means that we don't know -about these properties of platform. -*/ - -#if defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64) || defined(__i386__) || defined(__x86_64__) -#define LITTLE_ENDIAN_UNALIGN -#endif - -#ifdef LITTLE_ENDIAN_UNALIGN - -#define GetUi16(p) (*(const UInt16 *)(p)) -#define GetUi32(p) (*(const UInt32 *)(p)) -#define GetUi64(p) (*(const UInt64 *)(p)) -#define SetUi32(p, d) *(UInt32 *)(p) = (d); - -#else - -#define GetUi16(p) (((const Byte *)(p))[0] | ((UInt16)((const Byte *)(p))[1] << 8)) - -#define GetUi32(p) ( \ - ((const Byte *)(p))[0] | \ - ((UInt32)((const Byte *)(p))[1] << 8) | \ - ((UInt32)((const Byte *)(p))[2] << 16) | \ - ((UInt32)((const Byte *)(p))[3] << 24)) - -#define GetUi64(p) (GetUi32(p) | ((UInt64)GetUi32(((const Byte *)(p)) + 4) << 32)) - -#define SetUi32(p, d) { UInt32 _x_ = (d); \ - ((Byte *)(p))[0] = (Byte)_x_; \ - ((Byte *)(p))[1] = (Byte)(_x_ >> 8); \ - ((Byte *)(p))[2] = (Byte)(_x_ >> 16); \ - ((Byte *)(p))[3] = (Byte)(_x_ >> 24); } - -#endif - -#if defined(LITTLE_ENDIAN_UNALIGN) && defined(_WIN64) && (_MSC_VER >= 1300) - -#pragma intrinsic(_byteswap_ulong) -#pragma intrinsic(_byteswap_uint64) -#define GetBe32(p) _byteswap_ulong(*(const UInt32 *)(const Byte *)(p)) -#define GetBe64(p) _byteswap_uint64(*(const UInt64 *)(const Byte *)(p)) - -#else - -#define GetBe32(p) ( \ - ((UInt32)((const Byte *)(p))[0] << 24) | \ - ((UInt32)((const Byte *)(p))[1] << 16) | \ - ((UInt32)((const Byte *)(p))[2] << 8) | \ - ((const Byte *)(p))[3] ) - -#define GetBe64(p) (((UInt64)GetBe32(p) << 32) | GetBe32(((const Byte *)(p)) + 4)) - -#endif - -#define GetBe16(p) (((UInt16)((const Byte *)(p))[0] << 8) | ((const Byte *)(p))[1]) - -#endif diff --git a/snesreader/7z_C/LzmaDec.c b/snesreader/7z_C/LzmaDec.c deleted file mode 100644 index fb08e786..00000000 --- a/snesreader/7z_C/LzmaDec.c +++ /dev/null @@ -1,1010 +0,0 @@ -/* LzmaDec.c -- LZMA Decoder -2008-11-06 : Igor Pavlov : Public domain */ - -#include "LzmaDec.h" - -#include - -#define kNumTopBits 24 -#define kTopValue ((UInt32)1 << kNumTopBits) - -#define kNumBitModelTotalBits 11 -#define kBitModelTotal (1 << kNumBitModelTotalBits) -#define kNumMoveBits 5 - -#define RC_INIT_SIZE 5 - -#define NORMALIZE if (range < kTopValue) { range <<= 8; code = (code << 8) | (*buf++); } - -#define IF_BIT_0(p) ttt = *(p); NORMALIZE; bound = (range >> kNumBitModelTotalBits) * ttt; if (code < bound) -#define UPDATE_0(p) range = bound; *(p) = (CLzmaProb)(ttt + ((kBitModelTotal - ttt) >> kNumMoveBits)); -#define UPDATE_1(p) range -= bound; code -= bound; *(p) = (CLzmaProb)(ttt - (ttt >> kNumMoveBits)); -#define GET_BIT2(p, i, A0, A1) IF_BIT_0(p) \ - { UPDATE_0(p); i = (i + i); A0; } else \ - { UPDATE_1(p); i = (i + i) + 1; A1; } -#define GET_BIT(p, i) GET_BIT2(p, i, ; , ;) - -#define TREE_GET_BIT(probs, i) { GET_BIT((probs + i), i); } -#define TREE_DECODE(probs, limit, i) \ - { i = 1; do { TREE_GET_BIT(probs, i); } while (i < limit); i -= limit; } - -/* #define _LZMA_SIZE_OPT */ - -#ifdef _LZMA_SIZE_OPT -#define TREE_6_DECODE(probs, i) TREE_DECODE(probs, (1 << 6), i) -#else -#define TREE_6_DECODE(probs, i) \ - { i = 1; \ - TREE_GET_BIT(probs, i); \ - TREE_GET_BIT(probs, i); \ - TREE_GET_BIT(probs, i); \ - TREE_GET_BIT(probs, i); \ - TREE_GET_BIT(probs, i); \ - TREE_GET_BIT(probs, i); \ - i -= 0x40; } -#endif - -#define NORMALIZE_CHECK if (range < kTopValue) { if (buf >= bufLimit) return DUMMY_ERROR; range <<= 8; code = (code << 8) | (*buf++); } - -#define IF_BIT_0_CHECK(p) ttt = *(p); NORMALIZE_CHECK; bound = (range >> kNumBitModelTotalBits) * ttt; if (code < bound) -#define UPDATE_0_CHECK range = bound; -#define UPDATE_1_CHECK range -= bound; code -= bound; -#define GET_BIT2_CHECK(p, i, A0, A1) IF_BIT_0_CHECK(p) \ - { UPDATE_0_CHECK; i = (i + i); A0; } else \ - { UPDATE_1_CHECK; i = (i + i) + 1; A1; } -#define GET_BIT_CHECK(p, i) GET_BIT2_CHECK(p, i, ; , ;) -#define TREE_DECODE_CHECK(probs, limit, i) \ - { i = 1; do { GET_BIT_CHECK(probs + i, i) } while (i < limit); i -= limit; } - - -#define kNumPosBitsMax 4 -#define kNumPosStatesMax (1 << kNumPosBitsMax) - -#define kLenNumLowBits 3 -#define kLenNumLowSymbols (1 << kLenNumLowBits) -#define kLenNumMidBits 3 -#define kLenNumMidSymbols (1 << kLenNumMidBits) -#define kLenNumHighBits 8 -#define kLenNumHighSymbols (1 << kLenNumHighBits) - -#define LenChoice 0 -#define LenChoice2 (LenChoice + 1) -#define LenLow (LenChoice2 + 1) -#define LenMid (LenLow + (kNumPosStatesMax << kLenNumLowBits)) -#define LenHigh (LenMid + (kNumPosStatesMax << kLenNumMidBits)) -#define kNumLenProbs (LenHigh + kLenNumHighSymbols) - - -#define kNumStates 12 -#define kNumLitStates 7 - -#define kStartPosModelIndex 4 -#define kEndPosModelIndex 14 -#define kNumFullDistances (1 << (kEndPosModelIndex >> 1)) - -#define kNumPosSlotBits 6 -#define kNumLenToPosStates 4 - -#define kNumAlignBits 4 -#define kAlignTableSize (1 << kNumAlignBits) - -#define kMatchMinLen 2 -#define kMatchSpecLenStart (kMatchMinLen + kLenNumLowSymbols + kLenNumMidSymbols + kLenNumHighSymbols) - -#define IsMatch 0 -#define IsRep (IsMatch + (kNumStates << kNumPosBitsMax)) -#define IsRepG0 (IsRep + kNumStates) -#define IsRepG1 (IsRepG0 + kNumStates) -#define IsRepG2 (IsRepG1 + kNumStates) -#define IsRep0Long (IsRepG2 + kNumStates) -#define PosSlot (IsRep0Long + (kNumStates << kNumPosBitsMax)) -#define SpecPos (PosSlot + (kNumLenToPosStates << kNumPosSlotBits)) -#define Align (SpecPos + kNumFullDistances - kEndPosModelIndex) -#define LenCoder (Align + kAlignTableSize) -#define RepLenCoder (LenCoder + kNumLenProbs) -#define Literal (RepLenCoder + kNumLenProbs) - -#define LZMA_BASE_SIZE 1846 -#define LZMA_LIT_SIZE 768 - -#define LzmaProps_GetNumProbs(p) ((UInt32)LZMA_BASE_SIZE + (LZMA_LIT_SIZE << ((p)->lc + (p)->lp))) - -#if Literal != LZMA_BASE_SIZE -StopCompilingDueBUG -#endif - -static const Byte kLiteralNextStates[kNumStates * 2] = -{ - 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5, - 7, 7, 7, 7, 7, 7, 7, 10, 10, 10, 10, 10 -}; - -#define LZMA_DIC_MIN (1 << 12) - -/* First LZMA-symbol is always decoded. -And it decodes new LZMA-symbols while (buf < bufLimit), but "buf" is without last normalization -Out: - Result: - SZ_OK - OK - SZ_ERROR_DATA - Error - p->remainLen: - < kMatchSpecLenStart : normal remain - = kMatchSpecLenStart : finished - = kMatchSpecLenStart + 1 : Flush marker - = kMatchSpecLenStart + 2 : State Init Marker -*/ - -static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte *bufLimit) -{ - CLzmaProb *probs = p->probs; - - unsigned state = p->state; - UInt32 rep0 = p->reps[0], rep1 = p->reps[1], rep2 = p->reps[2], rep3 = p->reps[3]; - unsigned pbMask = ((unsigned)1 << (p->prop.pb)) - 1; - unsigned lpMask = ((unsigned)1 << (p->prop.lp)) - 1; - unsigned lc = p->prop.lc; - - Byte *dic = p->dic; - SizeT dicBufSize = p->dicBufSize; - SizeT dicPos = p->dicPos; - - UInt32 processedPos = p->processedPos; - UInt32 checkDicSize = p->checkDicSize; - unsigned len = 0; - - const Byte *buf = p->buf; - UInt32 range = p->range; - UInt32 code = p->code; - - do - { - CLzmaProb *prob; - UInt32 bound; - unsigned ttt; - unsigned posState = processedPos & pbMask; - - prob = probs + IsMatch + (state << kNumPosBitsMax) + posState; - IF_BIT_0(prob) - { - unsigned symbol; - UPDATE_0(prob); - prob = probs + Literal; - if (checkDicSize != 0 || processedPos != 0) - prob += (LZMA_LIT_SIZE * (((processedPos & lpMask) << lc) + - (dic[(dicPos == 0 ? dicBufSize : dicPos) - 1] >> (8 - lc)))); - - if (state < kNumLitStates) - { - symbol = 1; - do { GET_BIT(prob + symbol, symbol) } while (symbol < 0x100); - } - else - { - unsigned matchByte = p->dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)]; - unsigned offs = 0x100; - symbol = 1; - do - { - unsigned bit; - CLzmaProb *probLit; - matchByte <<= 1; - bit = (matchByte & offs); - probLit = prob + offs + bit + symbol; - GET_BIT2(probLit, symbol, offs &= ~bit, offs &= bit) - } - while (symbol < 0x100); - } - dic[dicPos++] = (Byte)symbol; - processedPos++; - - state = kLiteralNextStates[state]; - /* if (state < 4) state = 0; else if (state < 10) state -= 3; else state -= 6; */ - continue; - } - else - { - UPDATE_1(prob); - prob = probs + IsRep + state; - IF_BIT_0(prob) - { - UPDATE_0(prob); - state += kNumStates; - prob = probs + LenCoder; - } - else - { - UPDATE_1(prob); - if (checkDicSize == 0 && processedPos == 0) - return SZ_ERROR_DATA; - prob = probs + IsRepG0 + state; - IF_BIT_0(prob) - { - UPDATE_0(prob); - prob = probs + IsRep0Long + (state << kNumPosBitsMax) + posState; - IF_BIT_0(prob) - { - UPDATE_0(prob); - dic[dicPos] = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)]; - dicPos++; - processedPos++; - state = state < kNumLitStates ? 9 : 11; - continue; - } - UPDATE_1(prob); - } - else - { - UInt32 distance; - UPDATE_1(prob); - prob = probs + IsRepG1 + state; - IF_BIT_0(prob) - { - UPDATE_0(prob); - distance = rep1; - } - else - { - UPDATE_1(prob); - prob = probs + IsRepG2 + state; - IF_BIT_0(prob) - { - UPDATE_0(prob); - distance = rep2; - } - else - { - UPDATE_1(prob); - distance = rep3; - rep3 = rep2; - } - rep2 = rep1; - } - rep1 = rep0; - rep0 = distance; - } - state = state < kNumLitStates ? 8 : 11; - prob = probs + RepLenCoder; - } - { - unsigned limit2, offset; - CLzmaProb *probLen = prob + LenChoice; - IF_BIT_0(probLen) - { - UPDATE_0(probLen); - probLen = prob + LenLow + (posState << kLenNumLowBits); - offset = 0; - limit2 = (1 << kLenNumLowBits); - } - else - { - UPDATE_1(probLen); - probLen = prob + LenChoice2; - IF_BIT_0(probLen) - { - UPDATE_0(probLen); - probLen = prob + LenMid + (posState << kLenNumMidBits); - offset = kLenNumLowSymbols; - limit2 = (1 << kLenNumMidBits); - } - else - { - UPDATE_1(probLen); - probLen = prob + LenHigh; - offset = kLenNumLowSymbols + kLenNumMidSymbols; - limit2 = (1 << kLenNumHighBits); - } - } - TREE_DECODE(probLen, limit2, len); - len += offset; - } - - if (state >= kNumStates) - { - UInt32 distance; - prob = probs + PosSlot + - ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << kNumPosSlotBits); - TREE_6_DECODE(prob, distance); - if (distance >= kStartPosModelIndex) - { - unsigned posSlot = (unsigned)distance; - int numDirectBits = (int)(((distance >> 1) - 1)); - distance = (2 | (distance & 1)); - if (posSlot < kEndPosModelIndex) - { - distance <<= numDirectBits; - prob = probs + SpecPos + distance - posSlot - 1; - { - UInt32 mask = 1; - unsigned i = 1; - do - { - GET_BIT2(prob + i, i, ; , distance |= mask); - mask <<= 1; - } - while (--numDirectBits != 0); - } - } - else - { - numDirectBits -= kNumAlignBits; - do - { - NORMALIZE - range >>= 1; - - { - UInt32 t; - code -= range; - t = (0 - ((UInt32)code >> 31)); /* (UInt32)((Int32)code >> 31) */ - distance = (distance << 1) + (t + 1); - code += range & t; - } - /* - distance <<= 1; - if (code >= range) - { - code -= range; - distance |= 1; - } - */ - } - while (--numDirectBits != 0); - prob = probs + Align; - distance <<= kNumAlignBits; - { - unsigned i = 1; - GET_BIT2(prob + i, i, ; , distance |= 1); - GET_BIT2(prob + i, i, ; , distance |= 2); - GET_BIT2(prob + i, i, ; , distance |= 4); - GET_BIT2(prob + i, i, ; , distance |= 8); - } - if (distance == (UInt32)0xFFFFFFFF) - { - len += kMatchSpecLenStart; - state -= kNumStates; - break; - } - } - } - rep3 = rep2; - rep2 = rep1; - rep1 = rep0; - rep0 = distance + 1; - if (checkDicSize == 0) - { - if (distance >= processedPos) - return SZ_ERROR_DATA; - } - else if (distance >= checkDicSize) - return SZ_ERROR_DATA; - state = (state < kNumStates + kNumLitStates) ? kNumLitStates : kNumLitStates + 3; - /* state = kLiteralNextStates[state]; */ - } - - len += kMatchMinLen; - - if (limit == dicPos) - return SZ_ERROR_DATA; - { - SizeT rem = limit - dicPos; - unsigned curLen = ((rem < len) ? (unsigned)rem : len); - SizeT pos = (dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0); - - processedPos += curLen; - - len -= curLen; - if (pos + curLen <= dicBufSize) - { - Byte *dest = dic + dicPos; - ptrdiff_t src = (ptrdiff_t)pos - (ptrdiff_t)dicPos; - const Byte *lim = dest + curLen; - dicPos += curLen; - do - *(dest) = (Byte)*(dest + src); - while (++dest != lim); - } - else - { - do - { - dic[dicPos++] = dic[pos]; - if (++pos == dicBufSize) - pos = 0; - } - while (--curLen != 0); - } - } - } - } - while (dicPos < limit && buf < bufLimit); - NORMALIZE; - p->buf = buf; - p->range = range; - p->code = code; - p->remainLen = len; - p->dicPos = dicPos; - p->processedPos = processedPos; - p->reps[0] = rep0; - p->reps[1] = rep1; - p->reps[2] = rep2; - p->reps[3] = rep3; - p->state = state; - - return SZ_OK; -} - -static void MY_FAST_CALL LzmaDec_WriteRem(CLzmaDec *p, SizeT limit) -{ - if (p->remainLen != 0 && p->remainLen < kMatchSpecLenStart) - { - Byte *dic = p->dic; - SizeT dicPos = p->dicPos; - SizeT dicBufSize = p->dicBufSize; - unsigned len = p->remainLen; - UInt32 rep0 = p->reps[0]; - if (limit - dicPos < len) - len = (unsigned)(limit - dicPos); - - if (p->checkDicSize == 0 && p->prop.dicSize - p->processedPos <= len) - p->checkDicSize = p->prop.dicSize; - - p->processedPos += len; - p->remainLen -= len; - while (len-- != 0) - { - dic[dicPos] = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)]; - dicPos++; - } - p->dicPos = dicPos; - } -} - -static int MY_FAST_CALL LzmaDec_DecodeReal2(CLzmaDec *p, SizeT limit, const Byte *bufLimit) -{ - do - { - SizeT limit2 = limit; - if (p->checkDicSize == 0) - { - UInt32 rem = p->prop.dicSize - p->processedPos; - if (limit - p->dicPos > rem) - limit2 = p->dicPos + rem; - } - RINOK(LzmaDec_DecodeReal(p, limit2, bufLimit)); - if (p->processedPos >= p->prop.dicSize) - p->checkDicSize = p->prop.dicSize; - LzmaDec_WriteRem(p, limit); - } - while (p->dicPos < limit && p->buf < bufLimit && p->remainLen < kMatchSpecLenStart); - - if (p->remainLen > kMatchSpecLenStart) - { - p->remainLen = kMatchSpecLenStart; - } - return 0; -} - -typedef enum -{ - DUMMY_ERROR, /* unexpected end of input stream */ - DUMMY_LIT, - DUMMY_MATCH, - DUMMY_REP -} ELzmaDummy; - -static ELzmaDummy LzmaDec_TryDummy(const CLzmaDec *p, const Byte *buf, SizeT inSize) -{ - UInt32 range = p->range; - UInt32 code = p->code; - const Byte *bufLimit = buf + inSize; - CLzmaProb *probs = p->probs; - unsigned state = p->state; - ELzmaDummy res; - - { - CLzmaProb *prob; - UInt32 bound; - unsigned ttt; - unsigned posState = (p->processedPos) & ((1 << p->prop.pb) - 1); - - prob = probs + IsMatch + (state << kNumPosBitsMax) + posState; - IF_BIT_0_CHECK(prob) - { - UPDATE_0_CHECK - - /* if (bufLimit - buf >= 7) return DUMMY_LIT; */ - - prob = probs + Literal; - if (p->checkDicSize != 0 || p->processedPos != 0) - prob += (LZMA_LIT_SIZE * - ((((p->processedPos) & ((1 << (p->prop.lp)) - 1)) << p->prop.lc) + - (p->dic[(p->dicPos == 0 ? p->dicBufSize : p->dicPos) - 1] >> (8 - p->prop.lc)))); - - if (state < kNumLitStates) - { - unsigned symbol = 1; - do { GET_BIT_CHECK(prob + symbol, symbol) } while (symbol < 0x100); - } - else - { - unsigned matchByte = p->dic[p->dicPos - p->reps[0] + - ((p->dicPos < p->reps[0]) ? p->dicBufSize : 0)]; - unsigned offs = 0x100; - unsigned symbol = 1; - do - { - unsigned bit; - CLzmaProb *probLit; - matchByte <<= 1; - bit = (matchByte & offs); - probLit = prob + offs + bit + symbol; - GET_BIT2_CHECK(probLit, symbol, offs &= ~bit, offs &= bit) - } - while (symbol < 0x100); - } - res = DUMMY_LIT; - } - else - { - unsigned len; - UPDATE_1_CHECK; - - prob = probs + IsRep + state; - IF_BIT_0_CHECK(prob) - { - UPDATE_0_CHECK; - state = 0; - prob = probs + LenCoder; - res = DUMMY_MATCH; - } - else - { - UPDATE_1_CHECK; - res = DUMMY_REP; - prob = probs + IsRepG0 + state; - IF_BIT_0_CHECK(prob) - { - UPDATE_0_CHECK; - prob = probs + IsRep0Long + (state << kNumPosBitsMax) + posState; - IF_BIT_0_CHECK(prob) - { - UPDATE_0_CHECK; - NORMALIZE_CHECK; - return DUMMY_REP; - } - else - { - UPDATE_1_CHECK; - } - } - else - { - UPDATE_1_CHECK; - prob = probs + IsRepG1 + state; - IF_BIT_0_CHECK(prob) - { - UPDATE_0_CHECK; - } - else - { - UPDATE_1_CHECK; - prob = probs + IsRepG2 + state; - IF_BIT_0_CHECK(prob) - { - UPDATE_0_CHECK; - } - else - { - UPDATE_1_CHECK; - } - } - } - state = kNumStates; - prob = probs + RepLenCoder; - } - { - unsigned limit, offset; - CLzmaProb *probLen = prob + LenChoice; - IF_BIT_0_CHECK(probLen) - { - UPDATE_0_CHECK; - probLen = prob + LenLow + (posState << kLenNumLowBits); - offset = 0; - limit = 1 << kLenNumLowBits; - } - else - { - UPDATE_1_CHECK; - probLen = prob + LenChoice2; - IF_BIT_0_CHECK(probLen) - { - UPDATE_0_CHECK; - probLen = prob + LenMid + (posState << kLenNumMidBits); - offset = kLenNumLowSymbols; - limit = 1 << kLenNumMidBits; - } - else - { - UPDATE_1_CHECK; - probLen = prob + LenHigh; - offset = kLenNumLowSymbols + kLenNumMidSymbols; - limit = 1 << kLenNumHighBits; - } - } - TREE_DECODE_CHECK(probLen, limit, len); - len += offset; - } - - if (state < 4) - { - unsigned posSlot; - prob = probs + PosSlot + - ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << - kNumPosSlotBits); - TREE_DECODE_CHECK(prob, 1 << kNumPosSlotBits, posSlot); - if (posSlot >= kStartPosModelIndex) - { - int numDirectBits = ((posSlot >> 1) - 1); - - /* if (bufLimit - buf >= 8) return DUMMY_MATCH; */ - - if (posSlot < kEndPosModelIndex) - { - prob = probs + SpecPos + ((2 | (posSlot & 1)) << numDirectBits) - posSlot - 1; - } - else - { - numDirectBits -= kNumAlignBits; - do - { - NORMALIZE_CHECK - range >>= 1; - code -= range & (((code - range) >> 31) - 1); - /* if (code >= range) code -= range; */ - } - while (--numDirectBits != 0); - prob = probs + Align; - numDirectBits = kNumAlignBits; - } - { - unsigned i = 1; - do - { - GET_BIT_CHECK(prob + i, i); - } - while (--numDirectBits != 0); - } - } - } - } - } - NORMALIZE_CHECK; - return res; -} - - -static void LzmaDec_InitRc(CLzmaDec *p, const Byte *data) -{ - p->code = ((UInt32)data[1] << 24) | ((UInt32)data[2] << 16) | ((UInt32)data[3] << 8) | ((UInt32)data[4]); - p->range = 0xFFFFFFFF; - p->needFlush = 0; -} - -static -void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState) -{ - p->needFlush = 1; - p->remainLen = 0; - p->tempBufSize = 0; - - if (initDic) - { - p->processedPos = 0; - p->checkDicSize = 0; - p->needInitState = 1; - } - if (initState) - p->needInitState = 1; -} - -void LzmaDec_Init(CLzmaDec *p) -{ - p->dicPos = 0; - LzmaDec_InitDicAndState(p, True, True); -} - -static void LzmaDec_InitStateReal(CLzmaDec *p) -{ - UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (p->prop.lc + p->prop.lp)); - UInt32 i; - CLzmaProb *probs = p->probs; - for (i = 0; i < numProbs; i++) - probs[i] = kBitModelTotal >> 1; - p->reps[0] = p->reps[1] = p->reps[2] = p->reps[3] = 1; - p->state = 0; - p->needInitState = 0; -} - -SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *srcLen, - ELzmaFinishMode finishMode, ELzmaStatus *status) -{ - SizeT inSize = *srcLen; - (*srcLen) = 0; - LzmaDec_WriteRem(p, dicLimit); - - *status = LZMA_STATUS_NOT_SPECIFIED; - - while (p->remainLen != kMatchSpecLenStart) - { - int checkEndMarkNow; - - if (p->needFlush != 0) - { - for (; inSize > 0 && p->tempBufSize < RC_INIT_SIZE; (*srcLen)++, inSize--) - p->tempBuf[p->tempBufSize++] = *src++; - if (p->tempBufSize < RC_INIT_SIZE) - { - *status = LZMA_STATUS_NEEDS_MORE_INPUT; - return SZ_OK; - } - if (p->tempBuf[0] != 0) - return SZ_ERROR_DATA; - - LzmaDec_InitRc(p, p->tempBuf); - p->tempBufSize = 0; - } - - checkEndMarkNow = 0; - if (p->dicPos >= dicLimit) - { - if (p->remainLen == 0 && p->code == 0) - { - *status = LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK; - return SZ_OK; - } - if (finishMode == LZMA_FINISH_ANY) - { - *status = LZMA_STATUS_NOT_FINISHED; - return SZ_OK; - } - if (p->remainLen != 0) - { - *status = LZMA_STATUS_NOT_FINISHED; - return SZ_ERROR_DATA; - } - checkEndMarkNow = 1; - } - - if (p->needInitState) - LzmaDec_InitStateReal(p); - - if (p->tempBufSize == 0) - { - SizeT processed; - const Byte *bufLimit; - if (inSize < LZMA_REQUIRED_INPUT_MAX || checkEndMarkNow) - { - int dummyRes = LzmaDec_TryDummy(p, src, inSize); - if (dummyRes == DUMMY_ERROR) - { - memcpy(p->tempBuf, src, inSize); - p->tempBufSize = (unsigned)inSize; - (*srcLen) += inSize; - *status = LZMA_STATUS_NEEDS_MORE_INPUT; - return SZ_OK; - } - if (checkEndMarkNow && dummyRes != DUMMY_MATCH) - { - *status = LZMA_STATUS_NOT_FINISHED; - return SZ_ERROR_DATA; - } - bufLimit = src; - } - else - bufLimit = src + inSize - LZMA_REQUIRED_INPUT_MAX; - p->buf = src; - if (LzmaDec_DecodeReal2(p, dicLimit, bufLimit) != 0) - return SZ_ERROR_DATA; - processed = (SizeT)(p->buf - src); - (*srcLen) += processed; - src += processed; - inSize -= processed; - } - else - { - unsigned rem = p->tempBufSize, lookAhead = 0; - while (rem < LZMA_REQUIRED_INPUT_MAX && lookAhead < inSize) - p->tempBuf[rem++] = src[lookAhead++]; - p->tempBufSize = rem; - if (rem < LZMA_REQUIRED_INPUT_MAX || checkEndMarkNow) - { - int dummyRes = LzmaDec_TryDummy(p, p->tempBuf, rem); - if (dummyRes == DUMMY_ERROR) - { - (*srcLen) += lookAhead; - *status = LZMA_STATUS_NEEDS_MORE_INPUT; - return SZ_OK; - } - if (checkEndMarkNow && dummyRes != DUMMY_MATCH) - { - *status = LZMA_STATUS_NOT_FINISHED; - return SZ_ERROR_DATA; - } - } - p->buf = p->tempBuf; - if (LzmaDec_DecodeReal2(p, dicLimit, p->buf) != 0) - return SZ_ERROR_DATA; - lookAhead -= (rem - (unsigned)(p->buf - p->tempBuf)); - (*srcLen) += lookAhead; - src += lookAhead; - inSize -= lookAhead; - p->tempBufSize = 0; - } - } - if (p->code == 0) - *status = LZMA_STATUS_FINISHED_WITH_MARK; - return (p->code == 0) ? SZ_OK : SZ_ERROR_DATA; -} - -#if NEVER_CALLED -SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status) -{ - SizeT outSize = *destLen; - SizeT inSize = *srcLen; - *srcLen = *destLen = 0; - for (;;) - { - SizeT inSizeCur = inSize, outSizeCur, dicPos; - ELzmaFinishMode curFinishMode; - SRes res; - if (p->dicPos == p->dicBufSize) - p->dicPos = 0; - dicPos = p->dicPos; - if (outSize > p->dicBufSize - dicPos) - { - outSizeCur = p->dicBufSize; - curFinishMode = LZMA_FINISH_ANY; - } - else - { - outSizeCur = dicPos + outSize; - curFinishMode = finishMode; - } - - res = LzmaDec_DecodeToDic(p, outSizeCur, src, &inSizeCur, curFinishMode, status); - src += inSizeCur; - inSize -= inSizeCur; - *srcLen += inSizeCur; - outSizeCur = p->dicPos - dicPos; - memcpy(dest, p->dic + dicPos, outSizeCur); - dest += outSizeCur; - outSize -= outSizeCur; - *destLen += outSizeCur; - if (res != 0) - return res; - if (outSizeCur == 0 || outSize == 0) - return SZ_OK; - } -} -#endif - -void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc) -{ - alloc->Free(alloc, p->probs); - p->probs = 0; -} - -static void LzmaDec_FreeDict(CLzmaDec *p, ISzAlloc *alloc) -{ - alloc->Free(alloc, p->dic); - p->dic = 0; -} - -void LzmaDec_Free(CLzmaDec *p, ISzAlloc *alloc) -{ - LzmaDec_FreeProbs(p, alloc); - LzmaDec_FreeDict(p, alloc); -} - -SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size) -{ - UInt32 dicSize; - Byte d; - - if (size < LZMA_PROPS_SIZE) - return SZ_ERROR_UNSUPPORTED; - else - dicSize = data[1] | ((UInt32)data[2] << 8) | ((UInt32)data[3] << 16) | ((UInt32)data[4] << 24); - - if (dicSize < LZMA_DIC_MIN) - dicSize = LZMA_DIC_MIN; - p->dicSize = dicSize; - - d = data[0]; - if (d >= (9 * 5 * 5)) - return SZ_ERROR_UNSUPPORTED; - - p->lc = d % 9; - d /= 9; - p->pb = d / 5; - p->lp = d % 5; - - return SZ_OK; -} - -static SRes LzmaDec_AllocateProbs2(CLzmaDec *p, const CLzmaProps *propNew, ISzAlloc *alloc) -{ - UInt32 numProbs = LzmaProps_GetNumProbs(propNew); - if (p->probs == 0 || numProbs != p->numProbs) - { - LzmaDec_FreeProbs(p, alloc); - p->probs = (CLzmaProb *)alloc->Alloc(alloc, numProbs * sizeof(CLzmaProb)); - p->numProbs = numProbs; - if (p->probs == 0) - return SZ_ERROR_MEM; - } - return SZ_OK; -} - -SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc) -{ - CLzmaProps propNew; - RINOK(LzmaProps_Decode(&propNew, props, propsSize)); - RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc)); - p->prop = propNew; - return SZ_OK; -} - -SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc) -{ - CLzmaProps propNew; - SizeT dicBufSize; - RINOK(LzmaProps_Decode(&propNew, props, propsSize)); - RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc)); - dicBufSize = propNew.dicSize; - if (p->dic == 0 || dicBufSize != p->dicBufSize) - { - LzmaDec_FreeDict(p, alloc); - p->dic = (Byte *)alloc->Alloc(alloc, dicBufSize); - if (p->dic == 0) - { - LzmaDec_FreeProbs(p, alloc); - return SZ_ERROR_MEM; - } - } - p->dicBufSize = dicBufSize; - p->prop = propNew; - return SZ_OK; -} - -SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, - const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode, - ELzmaStatus *status, ISzAlloc *alloc) -{ - CLzmaDec p; - SRes res; - SizeT inSize = *srcLen; - SizeT outSize = *destLen; - *srcLen = *destLen = 0; - if (inSize < RC_INIT_SIZE) - return SZ_ERROR_INPUT_EOF; - - LzmaDec_Construct(&p); - res = LzmaDec_AllocateProbs(&p, propData, propSize, alloc); - if (res != 0) - return res; - p.dic = dest; - p.dicBufSize = outSize; - - LzmaDec_Init(&p); - - *srcLen = inSize; - res = LzmaDec_DecodeToDic(&p, outSize, src, srcLen, finishMode, status); - - if (res == SZ_OK && *status == LZMA_STATUS_NEEDS_MORE_INPUT) - res = SZ_ERROR_INPUT_EOF; - - (*destLen) = p.dicPos; - LzmaDec_FreeProbs(&p, alloc); - return res; -} diff --git a/snesreader/7z_C/LzmaDec.h b/snesreader/7z_C/LzmaDec.h deleted file mode 100644 index 98cdbe94..00000000 --- a/snesreader/7z_C/LzmaDec.h +++ /dev/null @@ -1,223 +0,0 @@ -/* LzmaDec.h -- LZMA Decoder -2008-10-04 : Igor Pavlov : Public domain */ - -#ifndef __LZMADEC_H -#define __LZMADEC_H - -#include "Types.h" - -/* #define _LZMA_PROB32 */ -/* _LZMA_PROB32 can increase the speed on some CPUs, - but memory usage for CLzmaDec::probs will be doubled in that case */ - -#ifdef _LZMA_PROB32 -#define CLzmaProb UInt32 -#else -#define CLzmaProb UInt16 -#endif - - -/* ---------- LZMA Properties ---------- */ - -#define LZMA_PROPS_SIZE 5 - -typedef struct _CLzmaProps -{ - unsigned lc, lp, pb; - UInt32 dicSize; -} CLzmaProps; - -/* LzmaProps_Decode - decodes properties -Returns: - SZ_OK - SZ_ERROR_UNSUPPORTED - Unsupported properties -*/ - -SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size); - - -/* ---------- LZMA Decoder state ---------- */ - -/* LZMA_REQUIRED_INPUT_MAX = number of required input bytes for worst case. - Num bits = log2((2^11 / 31) ^ 22) + 26 < 134 + 26 = 160; */ - -#define LZMA_REQUIRED_INPUT_MAX 20 - -typedef struct -{ - CLzmaProps prop; - CLzmaProb *probs; - Byte *dic; - const Byte *buf; - UInt32 range, code; - SizeT dicPos; - SizeT dicBufSize; - UInt32 processedPos; - UInt32 checkDicSize; - unsigned state; - UInt32 reps[4]; - unsigned remainLen; - int needFlush; - int needInitState; - UInt32 numProbs; - unsigned tempBufSize; - Byte tempBuf[LZMA_REQUIRED_INPUT_MAX]; -} CLzmaDec; - -#define LzmaDec_Construct(p) { (p)->dic = 0; (p)->probs = 0; } - -void LzmaDec_Init(CLzmaDec *p); - -/* There are two types of LZMA streams: - 0) Stream with end mark. That end mark adds about 6 bytes to compressed size. - 1) Stream without end mark. You must know exact uncompressed size to decompress such stream. */ - -typedef enum -{ - LZMA_FINISH_ANY, /* finish at any point */ - LZMA_FINISH_END /* block must be finished at the end */ -} ELzmaFinishMode; - -/* ELzmaFinishMode has meaning only if the decoding reaches output limit !!! - - You must use LZMA_FINISH_END, when you know that current output buffer - covers last bytes of block. In other cases you must use LZMA_FINISH_ANY. - - If LZMA decoder sees end marker before reaching output limit, it returns SZ_OK, - and output value of destLen will be less than output buffer size limit. - You can check status result also. - - You can use multiple checks to test data integrity after full decompression: - 1) Check Result and "status" variable. - 2) Check that output(destLen) = uncompressedSize, if you know real uncompressedSize. - 3) Check that output(srcLen) = compressedSize, if you know real compressedSize. - You must use correct finish mode in that case. */ - -typedef enum -{ - LZMA_STATUS_NOT_SPECIFIED, /* use main error code instead */ - LZMA_STATUS_FINISHED_WITH_MARK, /* stream was finished with end mark. */ - LZMA_STATUS_NOT_FINISHED, /* stream was not finished */ - LZMA_STATUS_NEEDS_MORE_INPUT, /* you must provide more input bytes */ - LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK /* there is probability that stream was finished without end mark */ -} ELzmaStatus; - -/* ELzmaStatus is used only as output value for function call */ - - -/* ---------- Interfaces ---------- */ - -/* There are 3 levels of interfaces: - 1) Dictionary Interface - 2) Buffer Interface - 3) One Call Interface - You can select any of these interfaces, but don't mix functions from different - groups for same object. */ - - -/* There are two variants to allocate state for Dictionary Interface: - 1) LzmaDec_Allocate / LzmaDec_Free - 2) LzmaDec_AllocateProbs / LzmaDec_FreeProbs - You can use variant 2, if you set dictionary buffer manually. - For Buffer Interface you must always use variant 1. - -LzmaDec_Allocate* can return: - SZ_OK - SZ_ERROR_MEM - Memory allocation error - SZ_ERROR_UNSUPPORTED - Unsupported properties -*/ - -SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc); -void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc); - -SRes LzmaDec_Allocate(CLzmaDec *state, const Byte *prop, unsigned propsSize, ISzAlloc *alloc); -void LzmaDec_Free(CLzmaDec *state, ISzAlloc *alloc); - -/* ---------- Dictionary Interface ---------- */ - -/* You can use it, if you want to eliminate the overhead for data copying from - dictionary to some other external buffer. - You must work with CLzmaDec variables directly in this interface. - - STEPS: - LzmaDec_Constr() - LzmaDec_Allocate() - for (each new stream) - { - LzmaDec_Init() - while (it needs more decompression) - { - LzmaDec_DecodeToDic() - use data from CLzmaDec::dic and update CLzmaDec::dicPos - } - } - LzmaDec_Free() -*/ - -/* LzmaDec_DecodeToDic - - The decoding to internal dictionary buffer (CLzmaDec::dic). - You must manually update CLzmaDec::dicPos, if it reaches CLzmaDec::dicBufSize !!! - -finishMode: - It has meaning only if the decoding reaches output limit (dicLimit). - LZMA_FINISH_ANY - Decode just dicLimit bytes. - LZMA_FINISH_END - Stream must be finished after dicLimit. - -Returns: - SZ_OK - status: - LZMA_STATUS_FINISHED_WITH_MARK - LZMA_STATUS_NOT_FINISHED - LZMA_STATUS_NEEDS_MORE_INPUT - LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK - SZ_ERROR_DATA - Data error -*/ - -SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, - const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status); - - -/* ---------- Buffer Interface ---------- */ - -/* It's zlib-like interface. - See LzmaDec_DecodeToDic description for information about STEPS and return results, - but you must use LzmaDec_DecodeToBuf instead of LzmaDec_DecodeToDic and you don't need - to work with CLzmaDec variables manually. - -finishMode: - It has meaning only if the decoding reaches output limit (*destLen). - LZMA_FINISH_ANY - Decode just destLen bytes. - LZMA_FINISH_END - Stream must be finished after (*destLen). -*/ - -SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, - const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status); - - -/* ---------- One Call Interface ---------- */ - -/* LzmaDecode - -finishMode: - It has meaning only if the decoding reaches output limit (*destLen). - LZMA_FINISH_ANY - Decode just destLen bytes. - LZMA_FINISH_END - Stream must be finished after (*destLen). - -Returns: - SZ_OK - status: - LZMA_STATUS_FINISHED_WITH_MARK - LZMA_STATUS_NOT_FINISHED - LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK - SZ_ERROR_DATA - Data error - SZ_ERROR_MEM - Memory allocation error - SZ_ERROR_UNSUPPORTED - Unsupported properties - SZ_ERROR_INPUT_EOF - It needs more bytes in input buffer (src). -*/ - -SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, - const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode, - ELzmaStatus *status, ISzAlloc *alloc); - -#endif diff --git a/snesreader/7z_C/Types.h b/snesreader/7z_C/Types.h deleted file mode 100644 index 286ce83b..00000000 --- a/snesreader/7z_C/Types.h +++ /dev/null @@ -1,206 +0,0 @@ -/* Types.h -- Basic types -2008-11-23 : Igor Pavlov : Public domain */ - -#ifndef __7Z_TYPES_H -#define __7Z_TYPES_H - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -#define SZ_OK 0 - -#define SZ_ERROR_DATA 1 -#define SZ_ERROR_MEM 2 -#define SZ_ERROR_CRC 3 -#define SZ_ERROR_UNSUPPORTED 4 -#define SZ_ERROR_PARAM 5 -#define SZ_ERROR_INPUT_EOF 6 -#define SZ_ERROR_OUTPUT_EOF 7 -#define SZ_ERROR_READ 8 -#define SZ_ERROR_WRITE 9 -#define SZ_ERROR_PROGRESS 10 -#define SZ_ERROR_FAIL 11 -#define SZ_ERROR_THREAD 12 - -#define SZ_ERROR_ARCHIVE 16 -#define SZ_ERROR_NO_ARCHIVE 17 - -typedef int SRes; - -#ifndef RINOK -#define RINOK(x) { int __result__ = (x); if (__result__ != 0) return __result__; } -#endif - -typedef unsigned char Byte; -typedef short Int16; -typedef unsigned short UInt16; - -#ifdef _LZMA_UINT32_IS_ULONG -typedef long Int32; -typedef unsigned long UInt32; -#else -typedef int Int32; -typedef unsigned int UInt32; -#endif - -#ifdef _SZ_NO_INT_64 - -/* define _SZ_NO_INT_64, if your compiler doesn't support 64-bit integers. - NOTES: Some code will work incorrectly in that case! */ - -typedef long Int64; -typedef unsigned long UInt64; - -#else - -#if defined(_MSC_VER) || defined(__BORLANDC__) -typedef __int64 Int64; -typedef unsigned __int64 UInt64; -#else -typedef long long int Int64; -typedef unsigned long long int UInt64; -#endif - -#endif - -#ifdef _LZMA_NO_SYSTEM_SIZE_T -typedef UInt32 SizeT; -#else -typedef size_t SizeT; -#endif - -typedef int Bool; -#define True 1 -#define False 0 - - -#ifdef _MSC_VER - -#if _MSC_VER >= 1300 -#define MY_NO_INLINE __declspec(noinline) -#else -#define MY_NO_INLINE -#endif - -#define MY_CDECL __cdecl -#define MY_STD_CALL __stdcall -#define MY_FAST_CALL MY_NO_INLINE __fastcall - -#else - -#define MY_CDECL -#define MY_STD_CALL -#define MY_FAST_CALL - -#endif - - -/* The following interfaces use first parameter as pointer to structure */ - -typedef struct -{ - SRes (*Read)(void *p, void *buf, size_t *size); - /* if (input(*size) != 0 && output(*size) == 0) means end_of_stream. - (output(*size) < input(*size)) is allowed */ -} ISeqInStream; - -/* it can return SZ_ERROR_INPUT_EOF */ -SRes SeqInStream_Read(ISeqInStream *stream, void *buf, size_t size); -SRes SeqInStream_Read2(ISeqInStream *stream, void *buf, size_t size, SRes errorType); -SRes SeqInStream_ReadByte(ISeqInStream *stream, Byte *buf); - -typedef struct -{ - size_t (*Write)(void *p, const void *buf, size_t size); - /* Returns: result - the number of actually written bytes. - (result < size) means error */ -} ISeqOutStream; - -typedef enum -{ - SZ_SEEK_SET = 0, - SZ_SEEK_CUR = 1, - SZ_SEEK_END = 2 -} ESzSeek; - -typedef struct -{ - SRes (*Read)(void *p, void *buf, size_t *size); /* same as ISeqInStream::Read */ - SRes (*Seek)(void *p, Int64 *pos, ESzSeek origin); -} ISeekInStream; - -typedef struct -{ - SRes (*Look)(void *p, void **buf, size_t *size); - /* if (input(*size) != 0 && output(*size) == 0) means end_of_stream. - (output(*size) > input(*size)) is not allowed - (output(*size) < input(*size)) is allowed */ - SRes (*Skip)(void *p, size_t offset); - /* offset must be <= output(*size) of Look */ - - SRes (*Read)(void *p, void *buf, size_t *size); - /* reads directly (without buffer). It's same as ISeqInStream::Read */ - SRes (*Seek)(void *p, Int64 *pos, ESzSeek origin); -} ILookInStream; - -SRes LookInStream_LookRead(ILookInStream *stream, void *buf, size_t *size); -SRes LookInStream_SeekTo(ILookInStream *stream, UInt64 offset); - -/* reads via ILookInStream::Read */ -SRes LookInStream_Read2(ILookInStream *stream, void *buf, size_t size, SRes errorType); -SRes LookInStream_Read(ILookInStream *stream, void *buf, size_t size); - -#define LookToRead_BUF_SIZE (1 << 14) - -typedef struct -{ - ILookInStream s; - ISeekInStream *realStream; - size_t pos; - size_t size; - Byte buf[LookToRead_BUF_SIZE]; -} CLookToRead; - -void LookToRead_CreateVTable(CLookToRead *p, int lookahead); -void LookToRead_Init(CLookToRead *p); - -typedef struct -{ - ISeqInStream s; - ILookInStream *realStream; -} CSecToLook; - -void SecToLook_CreateVTable(CSecToLook *p); - -typedef struct -{ - ISeqInStream s; - ILookInStream *realStream; -} CSecToRead; - -void SecToRead_CreateVTable(CSecToRead *p); - -typedef struct -{ - SRes (*Progress)(void *p, UInt64 inSize, UInt64 outSize); - /* Returns: result. (result != SZ_OK) means break. - Value (UInt64)(Int64)-1 for size means unknown value. */ -} ICompressProgress; - -typedef struct -{ - void *(*Alloc)(void *p, size_t size); - void (*Free)(void *p, void *address); /* address can be 0 */ -} ISzAlloc; - -#define IAlloc_Alloc(p, size) (p)->Alloc((p), size) -#define IAlloc_Free(p, a) (p)->Free((p), a) - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/snesreader/7z_C/lzma.txt b/snesreader/7z_C/lzma.txt deleted file mode 100644 index d4f4af92..00000000 --- a/snesreader/7z_C/lzma.txt +++ /dev/null @@ -1,594 +0,0 @@ -LZMA SDK 4.65 -------------- - -LZMA SDK provides the documentation, samples, header files, libraries, -and tools you need to develop applications that use LZMA compression. - -LZMA is default and general compression method of 7z format -in 7-Zip compression program (www.7-zip.org). LZMA provides high -compression ratio and very fast decompression. - -LZMA is an improved version of famous LZ77 compression algorithm. -It was improved in way of maximum increasing of compression ratio, -keeping high decompression speed and low memory requirements for -decompressing. - - - -LICENSE -------- - -LZMA SDK is written and placed in the public domain by Igor Pavlov. - - -LZMA SDK Contents ------------------ - -LZMA SDK includes: - - - ANSI-C/C++/C#/Java source code for LZMA compressing and decompressing - - Compiled file->file LZMA compressing/decompressing program for Windows system - - -UNIX/Linux version ------------------- -To compile C++ version of file->file LZMA encoding, go to directory -C++/7zip/Compress/LZMA_Alone -and call make to recompile it: - make -f makefile.gcc clean all - -In some UNIX/Linux versions you must compile LZMA with static libraries. -To compile with static libraries, you can use -LIB = -lm -static - - -Files ---------------------- -lzma.txt - LZMA SDK description (this file) -7zFormat.txt - 7z Format description -7zC.txt - 7z ANSI-C Decoder description -methods.txt - Compression method IDs for .7z -lzma.exe - Compiled file->file LZMA encoder/decoder for Windows -history.txt - history of the LZMA SDK - - -Source code structure ---------------------- - -C/ - C files - 7zCrc*.* - CRC code - Alloc.* - Memory allocation functions - Bra*.* - Filters for x86, IA-64, ARM, ARM-Thumb, PowerPC and SPARC code - LzFind.* - Match finder for LZ (LZMA) encoders - LzFindMt.* - Match finder for LZ (LZMA) encoders for multithreading encoding - LzHash.h - Additional file for LZ match finder - LzmaDec.* - LZMA decoding - LzmaEnc.* - LZMA encoding - LzmaLib.* - LZMA Library for DLL calling - Types.h - Basic types for another .c files - Threads.* - The code for multithreading. - - LzmaLib - LZMA Library (.DLL for Windows) - - LzmaUtil - LZMA Utility (file->file LZMA encoder/decoder). - - Archive - files related to archiving - 7z - 7z ANSI-C Decoder - -CPP/ -- CPP files - - Common - common files for C++ projects - Windows - common files for Windows related code - - 7zip - files related to 7-Zip Project - - Common - common files for 7-Zip - - Compress - files related to compression/decompression - - Copy - Copy coder - RangeCoder - Range Coder (special code of compression/decompression) - LZMA - LZMA compression/decompression on C++ - LZMA_Alone - file->file LZMA compression/decompression - Branch - Filters for x86, IA-64, ARM, ARM-Thumb, PowerPC and SPARC code - - Archive - files related to archiving - - Common - common files for archive handling - 7z - 7z C++ Encoder/Decoder - - Bundles - Modules that are bundles of other modules - - Alone7z - 7zr.exe: Standalone version of 7z.exe that supports only 7z/LZMA/BCJ/BCJ2 - Format7zR - 7zr.dll: Reduced version of 7za.dll: extracting/compressing to 7z/LZMA/BCJ/BCJ2 - Format7zExtractR - 7zxr.dll: Reduced version of 7zxa.dll: extracting from 7z/LZMA/BCJ/BCJ2. - - UI - User Interface files - - Client7z - Test application for 7za.dll, 7zr.dll, 7zxr.dll - Common - Common UI files - Console - Code for console archiver - - - -CS/ - C# files - 7zip - Common - some common files for 7-Zip - Compress - files related to compression/decompression - LZ - files related to LZ (Lempel-Ziv) compression algorithm - LZMA - LZMA compression/decompression - LzmaAlone - file->file LZMA compression/decompression - RangeCoder - Range Coder (special code of compression/decompression) - -Java/ - Java files - SevenZip - Compression - files related to compression/decompression - LZ - files related to LZ (Lempel-Ziv) compression algorithm - LZMA - LZMA compression/decompression - RangeCoder - Range Coder (special code of compression/decompression) - - -C/C++ source code of LZMA SDK is part of 7-Zip project. -7-Zip source code can be downloaded from 7-Zip's SourceForge page: - - http://sourceforge.net/projects/sevenzip/ - - - -LZMA features -------------- - - Variable dictionary size (up to 1 GB) - - Estimated compressing speed: about 2 MB/s on 2 GHz CPU - - Estimated decompressing speed: - - 20-30 MB/s on 2 GHz Core 2 or AMD Athlon 64 - - 1-2 MB/s on 200 MHz ARM, MIPS, PowerPC or other simple RISC - - Small memory requirements for decompressing (16 KB + DictionarySize) - - Small code size for decompressing: 5-8 KB - -LZMA decoder uses only integer operations and can be -implemented in any modern 32-bit CPU (or on 16-bit CPU with some conditions). - -Some critical operations that affect the speed of LZMA decompression: - 1) 32*16 bit integer multiply - 2) Misspredicted branches (penalty mostly depends from pipeline length) - 3) 32-bit shift and arithmetic operations - -The speed of LZMA decompressing mostly depends from CPU speed. -Memory speed has no big meaning. But if your CPU has small data cache, -overall weight of memory speed will slightly increase. - - -How To Use ----------- - -Using LZMA encoder/decoder executable --------------------------------------- - -Usage: LZMA inputFile outputFile [...] - - e: encode file - - d: decode file - - b: Benchmark. There are two tests: compressing and decompressing - with LZMA method. Benchmark shows rating in MIPS (million - instructions per second). Rating value is calculated from - measured speed and it is normalized with Intel's Core 2 results. - Also Benchmark checks possible hardware errors (RAM - errors in most cases). Benchmark uses these settings: - (-a1, -d21, -fb32, -mfbt4). You can change only -d parameter. - Also you can change the number of iterations. Example for 30 iterations: - LZMA b 30 - Default number of iterations is 10. - - - - - -a{N}: set compression mode 0 = fast, 1 = normal - default: 1 (normal) - - d{N}: Sets Dictionary size - [0, 30], default: 23 (8MB) - The maximum value for dictionary size is 1 GB = 2^30 bytes. - Dictionary size is calculated as DictionarySize = 2^N bytes. - For decompressing file compressed by LZMA method with dictionary - size D = 2^N you need about D bytes of memory (RAM). - - -fb{N}: set number of fast bytes - [5, 273], default: 128 - Usually big number gives a little bit better compression ratio - and slower compression process. - - -lc{N}: set number of literal context bits - [0, 8], default: 3 - Sometimes lc=4 gives gain for big files. - - -lp{N}: set number of literal pos bits - [0, 4], default: 0 - lp switch is intended for periodical data when period is - equal 2^N. For example, for 32-bit (4 bytes) - periodical data you can use lp=2. Often it's better to set lc0, - if you change lp switch. - - -pb{N}: set number of pos bits - [0, 4], default: 2 - pb switch is intended for periodical data - when period is equal 2^N. - - -mf{MF_ID}: set Match Finder. Default: bt4. - Algorithms from hc* group doesn't provide good compression - ratio, but they often works pretty fast in combination with - fast mode (-a0). - - Memory requirements depend from dictionary size - (parameter "d" in table below). - - MF_ID Memory Description - - bt2 d * 9.5 + 4MB Binary Tree with 2 bytes hashing. - bt3 d * 11.5 + 4MB Binary Tree with 3 bytes hashing. - bt4 d * 11.5 + 4MB Binary Tree with 4 bytes hashing. - hc4 d * 7.5 + 4MB Hash Chain with 4 bytes hashing. - - -eos: write End Of Stream marker. By default LZMA doesn't write - eos marker, since LZMA decoder knows uncompressed size - stored in .lzma file header. - - -si: Read data from stdin (it will write End Of Stream marker). - -so: Write data to stdout - - -Examples: - -1) LZMA e file.bin file.lzma -d16 -lc0 - -compresses file.bin to file.lzma with 64 KB dictionary (2^16=64K) -and 0 literal context bits. -lc0 allows to reduce memory requirements -for decompression. - - -2) LZMA e file.bin file.lzma -lc0 -lp2 - -compresses file.bin to file.lzma with settings suitable -for 32-bit periodical data (for example, ARM or MIPS code). - -3) LZMA d file.lzma file.bin - -decompresses file.lzma to file.bin. - - -Compression ratio hints ------------------------ - -Recommendations ---------------- - -To increase the compression ratio for LZMA compressing it's desirable -to have aligned data (if it's possible) and also it's desirable to locate -data in such order, where code is grouped in one place and data is -grouped in other place (it's better than such mixing: code, data, code, -data, ...). - - -Filters -------- -You can increase the compression ratio for some data types, using -special filters before compressing. For example, it's possible to -increase the compression ratio on 5-10% for code for those CPU ISAs: -x86, IA-64, ARM, ARM-Thumb, PowerPC, SPARC. - -You can find C source code of such filters in C/Bra*.* files - -You can check the compression ratio gain of these filters with such -7-Zip commands (example for ARM code): -No filter: - 7z a a1.7z a.bin -m0=lzma - -With filter for little-endian ARM code: - 7z a a2.7z a.bin -m0=arm -m1=lzma - -It works in such manner: -Compressing = Filter_encoding + LZMA_encoding -Decompressing = LZMA_decoding + Filter_decoding - -Compressing and decompressing speed of such filters is very high, -so it will not increase decompressing time too much. -Moreover, it reduces decompression time for LZMA_decoding, -since compression ratio with filtering is higher. - -These filters convert CALL (calling procedure) instructions -from relative offsets to absolute addresses, so such data becomes more -compressible. - -For some ISAs (for example, for MIPS) it's impossible to get gain from such filter. - - -LZMA compressed file format ---------------------------- -Offset Size Description - 0 1 Special LZMA properties (lc,lp, pb in encoded form) - 1 4 Dictionary size (little endian) - 5 8 Uncompressed size (little endian). -1 means unknown size - 13 Compressed data - - -ANSI-C LZMA Decoder -~~~~~~~~~~~~~~~~~~~ - -Please note that interfaces for ANSI-C code were changed in LZMA SDK 4.58. -If you want to use old interfaces you can download previous version of LZMA SDK -from sourceforge.net site. - -To use ANSI-C LZMA Decoder you need the following files: -1) LzmaDec.h + LzmaDec.c + Types.h -LzmaUtil/LzmaUtil.c is example application that uses these files. - - -Memory requirements for LZMA decoding -------------------------------------- - -Stack usage of LZMA decoding function for local variables is not -larger than 200-400 bytes. - -LZMA Decoder uses dictionary buffer and internal state structure. -Internal state structure consumes - state_size = (4 + (1.5 << (lc + lp))) KB -by default (lc=3, lp=0), state_size = 16 KB. - - -How To decompress data ----------------------- - -LZMA Decoder (ANSI-C version) now supports 2 interfaces: -1) Single-call Decompressing -2) Multi-call State Decompressing (zlib-like interface) - -You must use external allocator: -Example: -void *SzAlloc(void *p, size_t size) { p = p; return malloc(size); } -void SzFree(void *p, void *address) { p = p; free(address); } -ISzAlloc alloc = { SzAlloc, SzFree }; - -You can use p = p; operator to disable compiler warnings. - - -Single-call Decompressing -------------------------- -When to use: RAM->RAM decompressing -Compile files: LzmaDec.h + LzmaDec.c + Types.h -Compile defines: no defines -Memory Requirements: - - Input buffer: compressed size - - Output buffer: uncompressed size - - LZMA Internal Structures: state_size (16 KB for default settings) - -Interface: - int LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, - const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode, - ELzmaStatus *status, ISzAlloc *alloc); - In: - dest - output data - destLen - output data size - src - input data - srcLen - input data size - propData - LZMA properties (5 bytes) - propSize - size of propData buffer (5 bytes) - finishMode - It has meaning only if the decoding reaches output limit (*destLen). - LZMA_FINISH_ANY - Decode just destLen bytes. - LZMA_FINISH_END - Stream must be finished after (*destLen). - You can use LZMA_FINISH_END, when you know that - current output buffer covers last bytes of stream. - alloc - Memory allocator. - - Out: - destLen - processed output size - srcLen - processed input size - - Output: - SZ_OK - status: - LZMA_STATUS_FINISHED_WITH_MARK - LZMA_STATUS_NOT_FINISHED - LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK - SZ_ERROR_DATA - Data error - SZ_ERROR_MEM - Memory allocation error - SZ_ERROR_UNSUPPORTED - Unsupported properties - SZ_ERROR_INPUT_EOF - It needs more bytes in input buffer (src). - - If LZMA decoder sees end_marker before reaching output limit, it returns OK result, - and output value of destLen will be less than output buffer size limit. - - You can use multiple checks to test data integrity after full decompression: - 1) Check Result and "status" variable. - 2) Check that output(destLen) = uncompressedSize, if you know real uncompressedSize. - 3) Check that output(srcLen) = compressedSize, if you know real compressedSize. - You must use correct finish mode in that case. */ - - -Multi-call State Decompressing (zlib-like interface) ----------------------------------------------------- - -When to use: file->file decompressing -Compile files: LzmaDec.h + LzmaDec.c + Types.h - -Memory Requirements: - - Buffer for input stream: any size (for example, 16 KB) - - Buffer for output stream: any size (for example, 16 KB) - - LZMA Internal Structures: state_size (16 KB for default settings) - - LZMA dictionary (dictionary size is encoded in LZMA properties header) - -1) read LZMA properties (5 bytes) and uncompressed size (8 bytes, little-endian) to header: - unsigned char header[LZMA_PROPS_SIZE + 8]; - ReadFile(inFile, header, sizeof(header) - -2) Allocate CLzmaDec structures (state + dictionary) using LZMA properties - - CLzmaDec state; - LzmaDec_Constr(&state); - res = LzmaDec_Allocate(&state, header, LZMA_PROPS_SIZE, &g_Alloc); - if (res != SZ_OK) - return res; - -3) Init LzmaDec structure before any new LZMA stream. And call LzmaDec_DecodeToBuf in loop - - LzmaDec_Init(&state); - for (;;) - { - ... - int res = LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, - const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode); - ... - } - - -4) Free all allocated structures - LzmaDec_Free(&state, &g_Alloc); - -For full code example, look at C/LzmaUtil/LzmaUtil.c code. - - -How To compress data --------------------- - -Compile files: LzmaEnc.h + LzmaEnc.c + Types.h + -LzFind.c + LzFind.h + LzFindMt.c + LzFindMt.h + LzHash.h - -Memory Requirements: - - (dictSize * 11.5 + 6 MB) + state_size - -Lzma Encoder can use two memory allocators: -1) alloc - for small arrays. -2) allocBig - for big arrays. - -For example, you can use Large RAM Pages (2 MB) in allocBig allocator for -better compression speed. Note that Windows has bad implementation for -Large RAM Pages. -It's OK to use same allocator for alloc and allocBig. - - -Single-call Compression with callbacks --------------------------------------- - -Check C/LzmaUtil/LzmaUtil.c as example, - -When to use: file->file decompressing - -1) you must implement callback structures for interfaces: -ISeqInStream -ISeqOutStream -ICompressProgress -ISzAlloc - -static void *SzAlloc(void *p, size_t size) { p = p; return MyAlloc(size); } -static void SzFree(void *p, void *address) { p = p; MyFree(address); } -static ISzAlloc g_Alloc = { SzAlloc, SzFree }; - - CFileSeqInStream inStream; - CFileSeqOutStream outStream; - - inStream.funcTable.Read = MyRead; - inStream.file = inFile; - outStream.funcTable.Write = MyWrite; - outStream.file = outFile; - - -2) Create CLzmaEncHandle object; - - CLzmaEncHandle enc; - - enc = LzmaEnc_Create(&g_Alloc); - if (enc == 0) - return SZ_ERROR_MEM; - - -3) initialize CLzmaEncProps properties; - - LzmaEncProps_Init(&props); - - Then you can change some properties in that structure. - -4) Send LZMA properties to LZMA Encoder - - res = LzmaEnc_SetProps(enc, &props); - -5) Write encoded properties to header - - Byte header[LZMA_PROPS_SIZE + 8]; - size_t headerSize = LZMA_PROPS_SIZE; - UInt64 fileSize; - int i; - - res = LzmaEnc_WriteProperties(enc, header, &headerSize); - fileSize = MyGetFileLength(inFile); - for (i = 0; i < 8; i++) - header[headerSize++] = (Byte)(fileSize >> (8 * i)); - MyWriteFileAndCheck(outFile, header, headerSize) - -6) Call encoding function: - res = LzmaEnc_Encode(enc, &outStream.funcTable, &inStream.funcTable, - NULL, &g_Alloc, &g_Alloc); - -7) Destroy LZMA Encoder Object - LzmaEnc_Destroy(enc, &g_Alloc, &g_Alloc); - - -If callback function return some error code, LzmaEnc_Encode also returns that code. - - -Single-call RAM->RAM Compression --------------------------------- - -Single-call RAM->RAM Compression is similar to Compression with callbacks, -but you provide pointers to buffers instead of pointers to stream callbacks: - -HRes LzmaEncode(Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen, - CLzmaEncProps *props, Byte *propsEncoded, SizeT *propsSize, int writeEndMark, - ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig); - -Return code: - SZ_OK - OK - SZ_ERROR_MEM - Memory allocation error - SZ_ERROR_PARAM - Incorrect paramater - SZ_ERROR_OUTPUT_EOF - output buffer overflow - SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version) - - - -LZMA Defines ------------- - -_LZMA_SIZE_OPT - Enable some optimizations in LZMA Decoder to get smaller executable code. - -_LZMA_PROB32 - It can increase the speed on some 32-bit CPUs, but memory usage for - some structures will be doubled in that case. - -_LZMA_UINT32_IS_ULONG - Define it if int is 16-bit on your compiler and long is 32-bit. - -_LZMA_NO_SYSTEM_SIZE_T - Define it if you don't want to use size_t type. - - -C++ LZMA Encoder/Decoder -~~~~~~~~~~~~~~~~~~~~~~~~ -C++ LZMA code use COM-like interfaces. So if you want to use it, -you can study basics of COM/OLE. -C++ LZMA code is just wrapper over ANSI-C code. - - -C++ Notes -~~~~~~~~~~~~~~~~~~~~~~~~ -If you use some C++ code folders in 7-Zip (for example, C++ code for .7z handling), -you must check that you correctly work with "new" operator. -7-Zip can be compiled with MSVC 6.0 that doesn't throw "exception" from "new" operator. -So 7-Zip uses "CPP\Common\NewHandler.cpp" that redefines "new" operator: -operator new(size_t size) -{ - void *p = ::malloc(size); - if (p == 0) - throw CNewException(); - return p; -} -If you use MSCV that throws exception for "new" operator, you can compile without -"NewHandler.cpp". So standard exception will be used. Actually some code of -7-Zip catches any exception in internal code and converts it to HRESULT code. -So you don't need to catch CNewException, if you call COM interfaces of 7-Zip. - ---- - -http://www.7-zip.org -http://www.7-zip.org/sdk.html -http://www.7-zip.org/support.html diff --git a/snesreader/7z_C/readme.txt b/snesreader/7z_C/readme.txt deleted file mode 100644 index a07f1fcc..00000000 --- a/snesreader/7z_C/readme.txt +++ /dev/null @@ -1,19 +0,0 @@ -Modified LZMA 4.65 ------------------- -This is just the ANSI C 7-zip extraction code from the LZMA 4.65 source -code release, with unnecessary files removed. I've made minor changes to -allow the code to compile with almost all warnings enabled in GCC. - -* Made relevant functions extern "C" so that they can be called from -C++. - -* Put all files in same directory and removed "../../" from #includes. - -* Made private (unprototyped) functions static. - -* #if'd out code that is never called. - -* Removed a couple of Windows references. - --- -Shay Green diff --git a/snesreader/Makefile b/snesreader/Makefile deleted file mode 100644 index aff4cc62..00000000 --- a/snesreader/Makefile +++ /dev/null @@ -1,188 +0,0 @@ -include nall/Makefile - -qtlibs := QtCore QtGui -include nall/qt/Makefile - -c := $(compiler) -std=gnu99 -cpp := $(subst cc,++,$(compiler)) -std=gnu++0x -flags := -O3 -I. -Iobj -fomit-frame-pointer -link := - -ifeq ($(platform),x) - flags := -fPIC $(flags) - link += -s -else ifeq ($(platform),osx) - flags := -fPIC $(flags) -endif - -objects := snesreader - -# fex -objects += Binary_Extractor blargg_common blargg_errors Data_Reader fex File_Extractor Gzip_Extractor Gzip_Reader Rar_Extractor Zip7_Extractor Zip_Extractor Zlib_Inflater -# zlib -objects += adler32 crc32 inffast inflate inftrees zutil -# 7-zip -objects += 7zAlloc 7zBuf 7zCrc 7zDecode 7zExtract 7zHeader 7zIn 7zItem 7zStream Bcj2 Bra86 LzmaDec -# unrar -objects += archive arcread coder crc encname extract getbits model rarvm rarvmtbl rawread suballoc unicode unpack unpack15 unpack20 unrar unrar_misc unrar_open -# micro-bunzip -objects += micro-bunzip -# jma -objects += jma jcrc32 lzmadecode 7zlzma iiostrm inbyte lzma winout - -compile = \ - $(strip \ - $(if $(filter %.c,$<), \ - $(c) $(flags) $1 -c $< -o $@, \ - $(if $(filter %.cpp,$<), \ - $(cpp) $(flags) $1 -c $< -o $@ \ - ) \ - ) \ - ) - -%.o: $<; $(call compile) - -all: build; - -objects := $(patsubst %,obj/%.o,$(objects)) -moc_headers := $(call rwildcard,./,%.moc.hpp) -moc_objects := $(foreach f,$(moc_headers),obj/$(notdir $(patsubst %.moc.hpp,%.moc,$f))) - -# automatically run moc on all .moc.hpp (MOC header) files -%.moc: $<; $(moc) -i $< -o $@ - -# automatically generate %.moc build rules -__list = $(moc_headers) -$(foreach f,$(moc_objects), \ - $(eval __file = $(word 1,$(__list))) \ - $(eval __list = $(wordlist 2,$(words $(__list)),$(__list))) \ - $(eval $f: $(__file)) \ -) - - -################## -### snesreader ### -################## - -obj/snesreader.o: snesreader.cpp * - $(call compile,$(qtinc)) - -########### -### fex ### -########### - -obj/Binary_Extractor.o: fex/Binary_Extractor.cpp fex/* -obj/blargg_common.o : fex/blargg_common.cpp fex/* -obj/blargg_errors.o : fex/blargg_errors.cpp fex/* -obj/Data_Reader.o : fex/Data_Reader.cpp fex/* -obj/fex.o : fex/fex.cpp fex/* -obj/File_Extractor.o : fex/File_Extractor.cpp fex/* -obj/Gzip_Extractor.o : fex/Gzip_Extractor.cpp fex/* -obj/Gzip_Reader.o : fex/Gzip_Reader.cpp fex/* -obj/Rar_Extractor.o : fex/Rar_Extractor.cpp fex/* -obj/Zip7_Extractor.o : fex/Zip7_Extractor.cpp fex/* -obj/Zip_Extractor.o : fex/Zip_Extractor.cpp fex/* -obj/Zlib_Inflater.o : fex/Zlib_Inflater.cpp fex/* - -############ -### zlib ### -############ - -obj/adler32.o : zlib/adler32.c zlib/* -obj/crc32.o : zlib/crc32.c zlib/* -obj/inffast.o : zlib/inffast.c zlib/* -obj/inflate.o : zlib/inflate.c zlib/* -obj/inftrees.o: zlib/inftrees.c zlib/* -obj/zutil.o : zlib/zutil.c zlib/* - -############# -### 7-zip ### -############# - -obj/7zAlloc.o : 7z_C/7zAlloc.c 7z_C/* -obj/7zBuf.o : 7z_C/7zBuf.c 7z_C/* -obj/7zCrc.o : 7z_C/7zCrc.c 7z_C/* -obj/7zDecode.o : 7z_C/7zDecode.c 7z_C/* -obj/7zExtract.o: 7z_C/7zExtract.c 7z_C/* -obj/7zHeader.o : 7z_C/7zHeader.c 7z_C/* -obj/7zIn.o : 7z_C/7zIn.c 7z_C/* -obj/7zItem.o : 7z_C/7zItem.c 7z_C/* -obj/7zStream.o : 7z_C/7zStream.c 7z_C/* -obj/Bcj2.o : 7z_C/Bcj2.c 7z_C/* -obj/Bra86.o : 7z_C/Bra86.c 7z_C/* -obj/LzmaDec.o : 7z_C/LzmaDec.c 7z_C/* - -#################### -### micro-bunzip ### -#################### - -obj/micro-bunzip.o: micro-bunzip/micro-bunzip.c micro-bunzip/* - -############# -### unrar ### -############# - -obj/archive.o : unrar/archive.cpp unrar/* -obj/arcread.o : unrar/arcread.cpp unrar/* -obj/coder.o : unrar/coder.cpp unrar/* -obj/crc.o : unrar/crc.cpp unrar/* -obj/encname.o : unrar/encname.cpp unrar/* -obj/extract.o : unrar/extract.cpp unrar/* -obj/getbits.o : unrar/getbits.cpp unrar/* -obj/model.o : unrar/model.cpp unrar/* -obj/rarvm.o : unrar/rarvm.cpp unrar/* -obj/rarvmtbl.o : unrar/rarvmtbl.cpp unrar/* -obj/rawread.o : unrar/rawread.cpp unrar/* -obj/suballoc.o : unrar/suballoc.cpp unrar/* -obj/unicode.o : unrar/unicode.cpp unrar/* -obj/unpack.o : unrar/unpack.cpp unrar/* -obj/unpack15.o : unrar/unpack15.cpp unrar/* -obj/unpack20.o : unrar/unpack20.cpp unrar/* -obj/unrar.o : unrar/unrar.cpp unrar/* -obj/unrar_misc.o: unrar/unrar_misc.cpp unrar/* -obj/unrar_open.o: unrar/unrar_open.cpp unrar/* - -############## -### libjma ### -############## - -obj/jma.o : libjma/jma.cpp libjma/* -obj/jcrc32.o : libjma/jcrc32.cpp libjma/* -obj/lzmadecode.o: libjma/lzmadecode.cpp libjma/* -obj/7zlzma.o : libjma/7zlzma.cpp libjma/* -obj/iiostrm.o : libjma/iiostrm.cpp libjma/* -obj/inbyte.o : libjma/inbyte.cpp libjma/* -obj/lzma.o : libjma/lzma.cpp libjma/* -obj/winout.o : libjma/winout.cpp libjma/* - -############### -### targets ### -############### - -build: $(moc_objects) $(objects) -ifeq ($(platform),x) - ar rcs libsnesreader.a $(objects) - $(cpp) $(link) -o libsnesreader.so -shared -Wl,-soname,libsnesreader.so.1 $(objects) $(qtlib) -else ifeq ($(platform),osx) - ar rcs libsnesreader.a $(objects) - $(cpp) $(link) -o libsnesreader.dylib -shared -dynamiclib $(objects) $(qtlib) -else ifeq ($(platform),win) - $(cpp) $(link) -o snesreader.dll -shared -Wl,--out-implib,libsnesreader.a $(objects) $(qtlib) -endif - -install: -ifeq ($(platform),x) - install -D -m 755 libsnesreader.a $(DESTDIR)$(prefix)/lib - install -D -m 755 libsnesreader.so $(DESTDIR)$(prefix)/lib - ldconfig -n $(DESTDIR)$(prefix)/lib -else ifeq ($(platform),osx) - cp libsnesreader.dylib /usr/local/lib/libsnesreader.dylib -endif - -clean: - -@$(call delete,obj/*.o) - -@$(call delete,obj/*.moc) - -@$(call delete,libsnesreader.a) - -@$(call delete,libsnesreader.so) - -@$(call delete,libsnesreader.dylib) - -@$(call delete,snesreader.dll) diff --git a/snesreader/cc.bat b/snesreader/cc.bat deleted file mode 100644 index 8359a530..00000000 --- a/snesreader/cc.bat +++ /dev/null @@ -1,2 +0,0 @@ -@mingw32-make -@pause \ No newline at end of file diff --git a/snesreader/clean.bat b/snesreader/clean.bat deleted file mode 100644 index d8bb7e0b..00000000 --- a/snesreader/clean.bat +++ /dev/null @@ -1 +0,0 @@ -@mingw32-make clean diff --git a/snesreader/fex/Binary_Extractor.cpp b/snesreader/fex/Binary_Extractor.cpp deleted file mode 100644 index 8c85b992..00000000 --- a/snesreader/fex/Binary_Extractor.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "Binary_Extractor.h" - -/* Copyright (C) 2005-2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - -// TODO: could close file once data has been read into memory - -static File_Extractor* new_binary() -{ - return BLARGG_NEW Binary_Extractor; -} - -fex_type_t_ const fex_bin_type [1] = {{ - "", - &new_binary, - "file", - NULL -}}; - -Binary_Extractor::Binary_Extractor() : - File_Extractor( fex_bin_type ) -{ } - -Binary_Extractor::~Binary_Extractor() -{ - close(); -} - -blargg_err_t Binary_Extractor::open_path_v() -{ - set_name( arc_path() ); - return blargg_ok; -} - -blargg_err_t Binary_Extractor::open_v() -{ - set_name( arc_path() ); - set_info( arc().remain(), 0, 0 ); - return blargg_ok; -} - -void Binary_Extractor::close_v() -{ } - -blargg_err_t Binary_Extractor::next_v() -{ - return blargg_ok; -} - -blargg_err_t Binary_Extractor::rewind_v() -{ - return open_path_v(); -} - -blargg_err_t Binary_Extractor::stat_v() -{ - RETURN_ERR( open_arc_file() ); - RETURN_ERR( arc().seek( 0 ) ); - return open_v(); -} - -blargg_err_t Binary_Extractor::extract_v( void* p, int n ) -{ - return arc().read( p, n ); -} diff --git a/snesreader/fex/Binary_Extractor.h b/snesreader/fex/Binary_Extractor.h deleted file mode 100644 index 339a0873..00000000 --- a/snesreader/fex/Binary_Extractor.h +++ /dev/null @@ -1,26 +0,0 @@ -// Presents a single file as an "archive" of just that file. - -// File_Extractor 1.0.0 -#ifndef BINARY_EXTRACTOR_H -#define BINARY_EXTRACTOR_H - -#include "File_Extractor.h" - -class Binary_Extractor : public File_Extractor { -public: - Binary_Extractor(); - virtual ~Binary_Extractor(); - -protected: - virtual blargg_err_t open_path_v(); - virtual blargg_err_t open_v(); - virtual void close_v(); - - virtual blargg_err_t next_v(); - virtual blargg_err_t rewind_v(); - - virtual blargg_err_t stat_v(); - virtual blargg_err_t extract_v( void*, int ); -}; - -#endif diff --git a/snesreader/fex/Data_Reader.cpp b/snesreader/fex/Data_Reader.cpp deleted file mode 100644 index cbea9f47..00000000 --- a/snesreader/fex/Data_Reader.cpp +++ /dev/null @@ -1,551 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "Data_Reader.h" - -#include "blargg_endian.h" -#include -#include - -#if BLARGG_UTF8_PATHS - #include -#endif - -/* Copyright (C) 2005-2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - -// Data_Reader - -blargg_err_t Data_Reader::read( void* p, int n ) -{ - assert( n >= 0 ); - - if ( n < 0 ) - return blargg_err_caller; - - if ( n <= 0 ) - return blargg_ok; - - if ( n > remain() ) - return blargg_err_file_eof; - - blargg_err_t err = read_v( p, n ); - if ( !err ) - remain_ -= n; - - return err; -} - -blargg_err_t Data_Reader::read_avail( void* p, int* n_ ) -{ - assert( *n_ >= 0 ); - - int n = min( *n_, remain() ); - *n_ = 0; - - if ( n < 0 ) - return blargg_err_caller; - - if ( n <= 0 ) - return blargg_ok; - - blargg_err_t err = read_v( p, n ); - if ( !err ) - { - remain_ -= n; - *n_ = n; - } - - return err; -} - -blargg_err_t Data_Reader::read_avail( void* p, long* n ) -{ - int i = STATIC_CAST(int, *n); - blargg_err_t err = read_avail( p, &i ); - *n = i; - return err; -} - -blargg_err_t Data_Reader::skip_v( int count ) -{ - char buf [512]; - while ( count ) - { - int n = min( count, (int) sizeof buf ); - count -= n; - RETURN_ERR( read_v( buf, n ) ); - } - return blargg_ok; -} - -blargg_err_t Data_Reader::skip( int n ) -{ - assert( n >= 0 ); - - if ( n < 0 ) - return blargg_err_caller; - - if ( n <= 0 ) - return blargg_ok; - - if ( n > remain() ) - return blargg_err_file_eof; - - blargg_err_t err = skip_v( n ); - if ( !err ) - remain_ -= n; - - return err; -} - - -// File_Reader - -blargg_err_t File_Reader::seek( int n ) -{ - assert( n >= 0 ); - - if ( n < 0 ) - return blargg_err_caller; - - if ( n == tell() ) - return blargg_ok; - - if ( n > size() ) - return blargg_err_file_eof; - - blargg_err_t err = seek_v( n ); - if ( !err ) - set_tell( n ); - - return err; -} - -blargg_err_t File_Reader::skip_v( int n ) -{ - return seek_v( tell() + n ); -} - - -// Subset_Reader - -Subset_Reader::Subset_Reader( Data_Reader* dr, int size ) : - in( dr ) -{ - set_remain( min( size, dr->remain() ) ); -} - -blargg_err_t Subset_Reader::read_v( void* p, int s ) -{ - return in->read( p, s ); -} - - -// Remaining_Reader - -Remaining_Reader::Remaining_Reader( void const* h, int size, Data_Reader* r ) : - in( r ) -{ - header = h; - header_remain = size; - - set_remain( size + r->remain() ); -} - -blargg_err_t Remaining_Reader::read_v( void* out, int count ) -{ - int first = min( count, header_remain ); - if ( first ) - { - memcpy( out, header, first ); - header = STATIC_CAST(char const*, header) + first; - header_remain -= first; - } - - return in->read( STATIC_CAST(char*, out) + first, count - first ); -} - - -// Mem_File_Reader - -Mem_File_Reader::Mem_File_Reader( const void* p, long s ) : - begin( STATIC_CAST(const char*, p) ) -{ - set_size( s ); -} - -blargg_err_t Mem_File_Reader::read_v( void* p, int s ) -{ - memcpy( p, begin + tell(), s ); - return blargg_ok; -} - -blargg_err_t Mem_File_Reader::seek_v( int ) -{ - return blargg_ok; -} - - -// Callback_Reader - -Callback_Reader::Callback_Reader( callback_t c, long s, void* d ) : - callback( c ), - user_data( d ) -{ - set_remain( s ); -} - -blargg_err_t Callback_Reader::read_v( void* out, int count ) -{ - return callback( user_data, out, count ); -} - - -// Callback_File_Reader - -Callback_File_Reader::Callback_File_Reader( callback_t c, long s, void* d ) : - callback( c ), - user_data( d ) -{ - set_size( s ); -} - -blargg_err_t Callback_File_Reader::read_v( void* out, int count ) -{ - return callback( user_data, out, count, tell() ); -} - -blargg_err_t Callback_File_Reader::seek_v( int ) -{ - return blargg_ok; -} - - -// BLARGG_UTF8_PATHS - -#if BLARGG_UTF8_PATHS - -// Thanks to byuu for the idea for BLARGG_UTF8_PATHS and the implementations - -// Converts wide-character path to UTF-8. Free result with free(). Only supported on Windows. -char* blargg_to_utf8( const wchar_t* wpath ) -{ - if ( wpath == NULL ) - return NULL; - - int needed = WideCharToMultiByte( CP_UTF8, 0, wpath, -1, NULL, 0, NULL, NULL ); - if ( needed <= 0 ) - return NULL; - - char* path = (char*) malloc( needed ); - if ( path == NULL ) - return NULL; - - int actual = WideCharToMultiByte( CP_UTF8, 0, wpath, -1, path, needed, NULL, NULL ); - if ( actual == 0 ) - { - free( path ); - return NULL; - } - - assert( actual == needed ); - return path; -} - -// Converts UTF-8 path to wide-character. Free result with free() Only supported on Windows. -wchar_t* blargg_to_wide( const char* path ) -{ - if ( path == NULL ) - return NULL; - - int needed = MultiByteToWideChar( CP_UTF8, 0, path, -1, NULL, 0 ); - if ( needed <= 0 ) - return NULL; - - wchar_t* wpath = (wchar_t*) malloc( needed * sizeof *wpath ); - if ( wpath == NULL ) - return NULL; - - int actual = MultiByteToWideChar( CP_UTF8, 0, path, -1, wpath, needed ); - if ( actual == 0 ) - { - free( wpath ); - return NULL; - } - - assert( actual == needed ); - return wpath; -} - -static FILE* blargg_fopen( const char path [], const char mode [] ) -{ - FILE* file = NULL; - wchar_t* wmode = NULL; - wchar_t* wpath = NULL; - - wpath = blargg_to_wide( path ); - if ( wpath ) - { - wmode = blargg_to_wide( mode ); - if ( wmode ) - file = _wfopen( wpath, wmode ); - } - - // Save and restore errno in case free() clears it - int saved_errno = errno; - free( wmode ); - free( wpath ); - errno = saved_errno; - - return file; -} - -#else - -static inline FILE* blargg_fopen( const char path [], const char mode [] ) -{ - return fopen( path, mode ); -} - -#endif - - -// Std_File_Reader - -Std_File_Reader::Std_File_Reader() -{ - file_ = NULL; -} - -Std_File_Reader::~Std_File_Reader() -{ - close(); -} - -static blargg_err_t blargg_fopen( FILE** out, const char path [] ) -{ - errno = 0; - *out = blargg_fopen( path, "rb" ); - if ( !*out ) - { - #ifdef ENOENT - if ( errno == ENOENT ) - return blargg_err_file_missing; - #endif - #ifdef ENOMEM - if ( errno == ENOMEM ) - return blargg_err_memory; - #endif - return blargg_err_file_read; - } - - return blargg_ok; -} - -static blargg_err_t blargg_fsize( FILE* f, long* out ) -{ - if ( fseek( f, 0, SEEK_END ) ) - return blargg_err_file_io; - - *out = ftell( f ); - if ( *out < 0 ) - return blargg_err_file_io; - - if ( fseek( f, 0, SEEK_SET ) ) - return blargg_err_file_io; - - return blargg_ok; -} - -blargg_err_t Std_File_Reader::open( const char path [] ) -{ - close(); - - FILE* f; - RETURN_ERR( blargg_fopen( &f, path ) ); - - long s; - blargg_err_t err = blargg_fsize( f, &s ); - if ( err ) - { - fclose( f ); - return err; - } - - file_ = f; - set_size( s ); - - return blargg_ok; -} - -void Std_File_Reader::make_unbuffered() -{ - if ( setvbuf( STATIC_CAST(FILE*, file_), NULL, _IONBF, 0 ) ) - check( false ); // shouldn't fail, but OK if it does -} - -blargg_err_t Std_File_Reader::read_v( void* p, int s ) -{ - if ( (size_t) s != fread( p, 1, s, STATIC_CAST(FILE*, file_) ) ) - { - // Data_Reader's wrapper should prevent EOF - check( !feof( STATIC_CAST(FILE*, file_) ) ); - - return blargg_err_file_io; - } - - return blargg_ok; -} - -blargg_err_t Std_File_Reader::seek_v( int n ) -{ - if ( fseek( STATIC_CAST(FILE*, file_), n, SEEK_SET ) ) - { - // Data_Reader's wrapper should prevent EOF - check( !feof( STATIC_CAST(FILE*, file_) ) ); - - return blargg_err_file_io; - } - - return blargg_ok; -} - -void Std_File_Reader::close() -{ - if ( file_ ) - { - fclose( STATIC_CAST(FILE*, file_) ); - file_ = NULL; - } -} - - -// Gzip_File_Reader - -#ifdef HAVE_ZLIB_H - -#include "zlib.h" - -static const char* get_gzip_eof( const char path [], long* eof ) -{ - FILE* file; - RETURN_ERR( blargg_fopen( &file, path ) ); - - int const h_size = 4; - unsigned char h [h_size]; - - // read four bytes to ensure that we can seek to -4 later - if ( fread( h, 1, h_size, file ) != (size_t) h_size || h[0] != 0x1F || h[1] != 0x8B ) - { - // Not gzipped - if ( ferror( file ) ) - return blargg_err_file_io; - - if ( fseek( file, 0, SEEK_END ) ) - return blargg_err_file_io; - - *eof = ftell( file ); - if ( *eof < 0 ) - return blargg_err_file_io; - } - else - { - // Gzipped; get uncompressed size from end - if ( fseek( file, -h_size, SEEK_END ) ) - return blargg_err_file_io; - - if ( fread( h, 1, h_size, file ) != (size_t) h_size ) - return blargg_err_file_io; - - *eof = get_le32( h ); - } - - if ( fclose( file ) ) - check( false ); - - return blargg_ok; -} - -Gzip_File_Reader::Gzip_File_Reader() -{ - file_ = NULL; -} - -Gzip_File_Reader::~Gzip_File_Reader() -{ - close(); -} - -blargg_err_t Gzip_File_Reader::open( const char path [] ) -{ - close(); - - long s; - RETURN_ERR( get_gzip_eof( path, &s ) ); - - file_ = gzopen( path, "rb" ); - if ( !file_ ) - return blargg_err_file_read; - - set_size( s ); - return blargg_ok; -} - -static blargg_err_t convert_gz_error( gzFile file ) -{ - int err; - gzerror( file, &err ); - - switch ( err ) - { - case Z_STREAM_ERROR: break; - case Z_DATA_ERROR: return blargg_err_file_corrupt; - case Z_MEM_ERROR: return blargg_err_memory; - case Z_BUF_ERROR: break; - } - return blargg_err_internal; -} - -blargg_err_t Gzip_File_Reader::read_v( void* p, int s ) -{ - int result = gzread( file_, p, s ); - if ( result != s ) - { - if ( result < 0 ) - return convert_gz_error( file_ ); - - return blargg_err_file_corrupt; - } - - return blargg_ok; -} - -blargg_err_t Gzip_File_Reader::seek_v( int n ) -{ - if ( gzseek( file_, n, SEEK_SET ) < 0 ) - return convert_gz_error( file_ ); - - return blargg_ok; -} - -void Gzip_File_Reader::close() -{ - if ( file_ ) - { - if ( gzclose( file_ ) ) - check( false ); - file_ = NULL; - } -} - -#endif diff --git a/snesreader/fex/Data_Reader.h b/snesreader/fex/Data_Reader.h deleted file mode 100644 index be206f7b..00000000 --- a/snesreader/fex/Data_Reader.h +++ /dev/null @@ -1,264 +0,0 @@ -// Lightweight interface for reading data from byte stream - -// File_Extractor 1.0.0 -#ifndef DATA_READER_H -#define DATA_READER_H - -#include "blargg_common.h" - -/* Some functions accept a long instead of int for convenience where caller has -a long due to some other interface, and would otherwise have to get a warning, -or cast it (and verify that it wasn't outside the range of an int). - -To really support huge (>2GB) files, long isn't a solution, since there's no -guarantee it's more than 32 bits. We'd need to use long long (if available), or -something compiler-specific, and change all places file sizes or offsets are -used. */ - -// Supports reading and finding out how many bytes are remaining -class Data_Reader { -public: - - // Reads min(*n,remain()) bytes and sets *n to this number, thus trying to read more - // tham remain() bytes doesn't result in error, just *n being set to remain(). - blargg_err_t read_avail( void* p, int* n ); - blargg_err_t read_avail( void* p, long* n ); - - // Reads exactly n bytes, or returns error if they couldn't ALL be read. - // Reading past end of file results in blargg_err_file_eof. - blargg_err_t read( void* p, int n ); - - // Number of bytes remaining until end of file - int remain() const { return remain_; } - - // Reads and discards n bytes. Skipping past end of file results in blargg_err_file_eof. - blargg_err_t skip( int n ); - - virtual ~Data_Reader() { } - -private: - // noncopyable - Data_Reader( const Data_Reader& ); - Data_Reader& operator = ( const Data_Reader& ); - -// Derived interface -protected: - Data_Reader() : remain_( 0 ) { } - - // Sets remain - void set_remain( int n ) { assert( n >= 0 ); remain_ = n; } - - // Do same as read(). Guaranteed that 0 < n <= remain(). Value of remain() is updated - // AFTER this call succeeds, not before. set_remain() should NOT be called from this. - virtual blargg_err_t read_v( void*, int n ) BLARGG_PURE( { (void)n; return blargg_ok; } ) - - // Do same as skip(). Guaranteed that 0 < n <= remain(). Default just reads data - // and discards it. Value of remain() is updated AFTER this call succeeds, not - // before. set_remain() should NOT be called from this. - virtual blargg_err_t skip_v( int n ); - -// Implementation -public: - BLARGG_DISABLE_NOTHROW - -private: - int remain_; -}; - - -// Supports seeking in addition to Data_Reader operations -class File_Reader : public Data_Reader { -public: - - // Size of file - int size() const { return size_; } - - // Current position in file - int tell() const { return size_ - remain(); } - - // Goes to new position - blargg_err_t seek( int ); - -// Derived interface -protected: - // Sets size and resets position - void set_size( int n ) { size_ = n; Data_Reader::set_remain( n ); } - void set_size( long n ) { set_size( STATIC_CAST(int, n) ); } - - // Sets reported position - void set_tell( int i ) { assert( 0 <= i && i <= size_ ); Data_Reader::set_remain( size_ - i ); } - - // Do same as seek(). Guaranteed that 0 <= n <= size(). Value of tell() is updated - // AFTER this call succeeds, not before. set_* functions should NOT be called from this. - virtual blargg_err_t seek_v( int n ) BLARGG_PURE( { (void)n; return blargg_ok; } ) - -// Implementation -protected: - File_Reader() : size_( 0 ) { } - - virtual blargg_err_t skip_v( int ); - -private: - int size_; - - void set_remain(); // avoid accidental use of set_remain -}; - - -// Reads from file on disk -class Std_File_Reader : public File_Reader { -public: - - // Opens file - blargg_err_t open( const char path [] ); - - // Closes file if one was open - void close(); - - // Switches to unbuffered mode. Useful if buffering is already being - // done at a higher level. - void make_unbuffered(); - -// Implementation -public: - Std_File_Reader(); - virtual ~Std_File_Reader(); - -protected: - virtual blargg_err_t read_v( void*, int ); - virtual blargg_err_t seek_v( int ); - -private: - void* file_; -}; - - -// Treats range of memory as a file -class Mem_File_Reader : public File_Reader { -public: - - Mem_File_Reader( const void* begin, long size ); - -// Implementation -protected: - virtual blargg_err_t read_v( void*, int ); - virtual blargg_err_t seek_v( int ); - -private: - const char* const begin; -}; - - -// Allows only count bytes to be read from reader passed -class Subset_Reader : public Data_Reader { -public: - - Subset_Reader( Data_Reader*, int count ); - -// Implementation -protected: - virtual blargg_err_t read_v( void*, int ); - -private: - Data_Reader* const in; -}; - - -// Joins already-read header and remaining data into original file. -// Meant for cases where you've already read header and don't want -// to seek and re-read data (for efficiency). -class Remaining_Reader : public Data_Reader { -public: - - Remaining_Reader( void const* header, int header_size, Data_Reader* ); - -// Implementation -protected: - virtual blargg_err_t read_v( void*, int ); - -private: - Data_Reader* const in; - void const* header; - int header_remain; -}; - - -// Invokes callback function to read data -extern "C" { // necessary to be usable from C - typedef const char* (*callback_reader_func_t)( - void* user_data, // Same value passed to constructor - void* out, // Buffer to place data into - int count // Number of bytes to read - ); -} -class Callback_Reader : public Data_Reader { -public: - typedef callback_reader_func_t callback_t; - Callback_Reader( callback_t, long size, void* user_data ); - -// Implementation -protected: - virtual blargg_err_t read_v( void*, int ); - -private: - callback_t const callback; - void* const user_data; -}; - - -// Invokes callback function to read data -extern "C" { // necessary to be usable from C - typedef const char* (*callback_file_reader_func_t)( - void* user_data, // Same value passed to constructor - void* out, // Buffer to place data into - int count, // Number of bytes to read - int pos // Position in file to read from - ); -} -class Callback_File_Reader : public File_Reader { -public: - typedef callback_file_reader_func_t callback_t; - Callback_File_Reader( callback_t, long size, void* user_data ); - -// Implementation -protected: - virtual blargg_err_t read_v( void*, int ); - virtual blargg_err_t seek_v( int ); - -private: - callback_t const callback; - void* const user_data; -}; - - -#ifdef HAVE_ZLIB_H - -// Reads file compressed with gzip (or uncompressed) -class Gzip_File_Reader : public File_Reader { -public: - - // Opens possibly gzipped file - blargg_err_t open( const char path [] ); - - // Closes file if one was open - void close(); - -// Implementation -public: - Gzip_File_Reader(); - ~Gzip_File_Reader(); - -protected: - virtual blargg_err_t read_v( void*, int ); - virtual blargg_err_t seek_v( int ); - -private: - // void* so "zlib.h" doesn't have to be included here - void* file_; -}; -#endif - -char* blargg_to_utf8( const wchar_t* ); -wchar_t* blargg_to_wide( const char* ); - -#endif diff --git a/snesreader/fex/File_Extractor.cpp b/snesreader/fex/File_Extractor.cpp deleted file mode 100644 index e060e095..00000000 --- a/snesreader/fex/File_Extractor.cpp +++ /dev/null @@ -1,341 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "File_Extractor.h" - -/* Copyright (C) 2005-2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - -File_Extractor::fex_t( fex_type_t t ) : - type_( t ) -{ - own_file_ = NULL; - - close_(); -} - -// Open - -blargg_err_t File_Extractor::set_path( const char* path ) -{ - if ( !path ) - path = ""; - - RETURN_ERR( path_.resize( strlen( path ) + 1 ) ); - memcpy( path_.begin(), path, path_.size() ); - return blargg_ok; -} - -blargg_err_t File_Extractor::open( const char path [] ) -{ - close(); - - RETURN_ERR( set_path( path ) ); - - blargg_err_t err = open_path_v(); - if ( err ) - close(); - else - opened_ = true; - - return err; -} - -blargg_err_t File_Extractor::open_path_v() -{ - RETURN_ERR( open_arc_file() ); - - return open_v(); -} - -inline -static void make_unbuffered( Std_File_Reader* r ) -{ - r->make_unbuffered(); -} - -inline -static void make_unbuffered( void* ) -{ } - -blargg_err_t File_Extractor::open_arc_file( bool unbuffered ) -{ - if ( reader_ ) - return blargg_ok; - - FEX_FILE_READER* in = BLARGG_NEW FEX_FILE_READER; - CHECK_ALLOC( in ); - - blargg_err_t err = in->open( arc_path() ); - if ( err ) - { - delete in; - } - else - { - reader_ = in; - own_file(); - if ( unbuffered ) - make_unbuffered( in ); - } - - return err; -} - -blargg_err_t File_Extractor::open( File_Reader* input, const char* path ) -{ - close(); - - RETURN_ERR( set_path( path ) ); - - RETURN_ERR( input->seek( 0 ) ); - - reader_ = input; - blargg_err_t err = open_v(); - if ( err ) - close(); - else - opened_ = true; - - return err; -} - -// Close - -void File_Extractor::close() -{ - close_v(); - close_(); -} - -void File_Extractor::close_() -{ - delete own_file_; - own_file_ = NULL; - - tell_ = 0; - reader_ = NULL; - opened_ = false; - - path_.clear(); - clear_file(); -} - -File_Extractor::~fex_t() -{ - check( !opened() ); // fails if derived destructor didn't call close() - - delete own_file_; -} - -// Scanning - -void File_Extractor::clear_file() -{ - name_ = NULL; - wname_ = NULL; - done_ = true; - stat_called = false; - data_ptr_ = NULL; - - set_info( 0 ); - own_data_.clear(); - clear_file_v(); -} - -void File_Extractor::set_name( const char new_name [], const wchar_t* new_wname ) -{ - name_ = new_name; - wname_ = new_wname; - done_ = false; -} - -void File_Extractor::set_info( int new_size, unsigned date, unsigned crc ) -{ - size_ = new_size; - date_ = (date != 0xFFFFFFFF ? date : 0); - crc32_ = crc; - set_remain( new_size ); -} - -blargg_err_t File_Extractor::next_() -{ - tell_++; - clear_file(); - - blargg_err_t err = next_v(); - if ( err ) - clear_file(); - - return err; -} - -blargg_err_t File_Extractor::next() -{ - assert( !done() ); - return next_(); -} - -blargg_err_t File_Extractor::rewind() -{ - assert( opened() ); - - tell_ = 0; - clear_file(); - - blargg_err_t err = rewind_v(); - if ( err ) - clear_file(); - - return err; -} - -blargg_err_t File_Extractor::stat() -{ - assert( !done() ); - - if ( !stat_called ) - { - RETURN_ERR( stat_v() ); - stat_called = true; - } - return blargg_ok; -} - -// Tell/seek - -int const pos_offset = 1; - -fex_pos_t File_Extractor::tell_arc() const -{ - assert( opened() ); - - fex_pos_t pos = tell_arc_v(); - assert( pos >= 0 ); - - return pos + pos_offset; -} - -blargg_err_t File_Extractor::seek_arc( fex_pos_t pos ) -{ - assert( opened() ); - assert( pos != 0 ); - - clear_file(); - - blargg_err_t err = seek_arc_v( pos - pos_offset ); - if ( err ) - clear_file(); - - return err; -} - -fex_pos_t File_Extractor::tell_arc_v() const -{ - return tell_; -} - -blargg_err_t File_Extractor::seek_arc_v( fex_pos_t pos ) -{ - // >= because seeking to current file should always reset read pointer etc. - if ( tell_ >= pos ) - RETURN_ERR( rewind() ); - - while ( tell_ < pos ) - { - RETURN_ERR( next_() ); - - if ( done() ) - { - assert( false ); - return blargg_err_caller; - } - } - - assert( tell_ == pos ); - - return blargg_ok; -} - -// Extraction - -blargg_err_t File_Extractor::rewind_file() -{ - RETURN_ERR( stat() ); - - if ( tell() > 0 ) - { - if ( data_ptr_ ) - { - set_remain( size() ); - } - else - { - RETURN_ERR( seek_arc( tell_arc() ) ); - RETURN_ERR( stat() ); - } - } - - return blargg_ok; -} - -blargg_err_t File_Extractor::data( const void** data_out ) -{ - assert( !done() ); - - *data_out = NULL; - if ( !data_ptr_ ) - { - int old_tell = tell(); - - RETURN_ERR( rewind_file() ); - - void const* ptr; - RETURN_ERR( data_v( &ptr ) ); - data_ptr_ = ptr; - - // Now that data is in memory, we can seek by simply setting remain - set_remain( size() - old_tell ); - } - - *data_out = data_ptr_; - return blargg_ok; -} - -blargg_err_t File_Extractor::data_v( void const** out ) -{ - RETURN_ERR( own_data_.resize( size() ) ); - *out = own_data_.begin(); - - blargg_err_t err = extract_v( own_data_.begin(), own_data_.size() ); - if ( err ) - own_data_.clear(); - - return err; -} - -blargg_err_t File_Extractor::extract_v( void* out, int count ) -{ - void const* p; - RETURN_ERR( data( &p ) ); - memcpy( out, STATIC_CAST(char const*,p) + (size() - remain()), count ); - - return blargg_ok; -} - -blargg_err_t File_Extractor::read_v( void* out, int count ) -{ - if ( data_ptr_ ) - return File_Extractor::extract_v( out, count ); - - return extract_v( out, count ); -} diff --git a/snesreader/fex/File_Extractor.h b/snesreader/fex/File_Extractor.h deleted file mode 100644 index ad25d5f8..00000000 --- a/snesreader/fex/File_Extractor.h +++ /dev/null @@ -1,191 +0,0 @@ -// Compressed file archive interface - -// File_Extractor 1.0.0 -#ifndef FILE_EXTRACTOR_H -#define FILE_EXTRACTOR_H - -#include "blargg_common.h" -#include "Data_Reader.h" -#include "fex.h" - -struct fex_t : private Data_Reader { -public: - virtual ~fex_t(); - -// Open/close - - // Opens archive from custom data source. Keeps pointer until close(). - blargg_err_t open( File_Reader* input, const char* path = NULL ); - - // Takes ownership of File_Reader* passed to open(), so that close() - // will delete it. - void own_file() { own_file_ = reader_; } - - // See fex.h - blargg_err_t open( const char path [] ); - fex_type_t type() const { return type_; } - void close(); - -// Scanning - - // See fex.h - bool done() const { return done_; } - blargg_err_t next(); - blargg_err_t rewind(); - fex_pos_t tell_arc() const; - blargg_err_t seek_arc( fex_pos_t ); - -// Info - - // See fex.h - const char* name() const { return name_; } - const wchar_t* wname() const { return wname_; } - blargg_err_t stat(); - int size() const { assert( stat_called ); return size_; } - unsigned int dos_date() const { return date_; } - unsigned int crc32() const { return crc32_; } - -// Extraction - - // Data_Reader to current file's data, so standard Data_Reader interface can - // be used, rather than having to treat archives specially. stat() must have - // been called. - Data_Reader& reader() { assert( stat_called ); return *this; } - - // See fex.h - blargg_err_t data( const void** data_out ); - int tell() const { return size_ - remain(); } - -// Derived interface -protected: - - // Sets type of object - fex_t( fex_type_t ); - - // Path to archive file, or "" if none supplied - const char* arc_path() const { return path_.begin(); } - - // Opens archive file if it's not already. If unbuffered is true, opens file - // without any buffering. - blargg_err_t open_arc_file( bool unbuffered = false ); - - // Archive file - File_Reader& arc() const { return *reader_; } - - // Sets current file name - void set_name( const char name [], const wchar_t* wname = NULL ); - - // Sets current file information - void set_info( int size, unsigned date = 0, unsigned crc = 0 ); - -// User overrides - - // Overrides must do indicated task. Non-pure functions have reasonable default - // implementation. Overrides should avoid calling public functions like - // next() and rewind(). - - // Open archive using file_path(). OK to delay actual file opening until later. - // Default just calls open_arc_file(), then open_v(). - virtual blargg_err_t open_path_v(); - - // Open archive using file() for source data. If unsupported, return error. - virtual blargg_err_t open_v() BLARGG_PURE( ; ) - - // Go to next file in archive and call set_name() and optionally set_info() - virtual blargg_err_t next_v() BLARGG_PURE( ; ) - - // Go back to first file in archive - virtual blargg_err_t rewind_v() BLARGG_PURE( ; ) - - // Close archive. Called even if open_path_v() or open_v() return unsuccessfully. - virtual void close_v() BLARGG_PURE( ; ) - - // Clear any fields related to current file - virtual void clear_file_v() { } - - // Call set_info() if not already called by next_v() - virtual blargg_err_t stat_v() { return blargg_ok; } - - // Return value that allows later return to this file. Result must be >= 0. - virtual fex_pos_t tell_arc_v() const; - - // Return to previously saved position - virtual blargg_err_t seek_arc_v( fex_pos_t ); - - // One or both of the following must be overridden - - // Provide pointer to data for current file in archive - virtual blargg_err_t data_v( const void** out ); - - // Extract next n bytes - virtual blargg_err_t extract_v( void* out, int n ); - -// Implementation -public: - BLARGG_DISABLE_NOTHROW - -private: - fex_type_t const type_; - - // Archive file - blargg_vector path_; - File_Reader* reader_; - File_Reader* own_file_; - bool opened_; - - // Position in archive - fex_pos_t tell_; // only used by default implementation of tell/seek - bool done_; - - // Info for current file in archive - const char* name_; - const wchar_t* wname_; - unsigned date_; - unsigned crc32_; - int size_; - bool stat_called; - - // Current file contents - void const* data_ptr_; // NULL if not read into memory - blargg_vector own_data_; - - bool opened() const { return opened_; } - void clear_file(); - void close_(); - blargg_err_t set_path( const char* path ); - blargg_err_t rewind_file(); - blargg_err_t next_(); - - // Data_Reader overrides - // TODO: override skip_v? - virtual blargg_err_t read_v( void* out, int n ); -}; - -struct fex_type_t_ -{ - const char* extension; - File_Extractor* (*new_fex)(); - const char* name; - blargg_err_t (*init)(); // Called by fex_init(). Can be NULL. -}; - -extern const fex_type_t_ - fex_7z_type [1], - fex_gz_type [1], - fex_rar_type [1], - fex_zip_type [1], - fex_bin_type [1]; - -inline blargg_err_t File_Extractor::open_v() { return blargg_ok; } -inline blargg_err_t File_Extractor::next_v() { return blargg_ok; } -inline blargg_err_t File_Extractor::rewind_v() { return blargg_ok; } -inline void File_Extractor::close_v() { } - -// Default to Std_File_Reader for archive access -#ifndef FEX_FILE_READER - #define FEX_FILE_READER Std_File_Reader -#elif defined (FEX_FILE_READER_INCLUDE) - #include FEX_FILE_READER_INCLUDE -#endif - -#endif diff --git a/snesreader/fex/Gzip_Extractor.cpp b/snesreader/fex/Gzip_Extractor.cpp deleted file mode 100644 index f169fed9..00000000 --- a/snesreader/fex/Gzip_Extractor.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "Gzip_Extractor.h" - -/* Copyright (C) 2005-2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - -// TODO: could close file once data has been read into memory - -static blargg_err_t init_gzip_file() -{ - get_crc_table(); // initialize zlib's CRC-32 tables - return blargg_ok; -} - -static File_Extractor* new_gzip() -{ - return BLARGG_NEW Gzip_Extractor; -} - -fex_type_t_ const fex_gz_type [1] = {{ - ".gz", - &new_gzip, - "gzipped file", - &init_gzip_file -}}; - -Gzip_Extractor::Gzip_Extractor() : - File_Extractor( fex_gz_type ) -{ } - -Gzip_Extractor::~Gzip_Extractor() -{ - close(); -} - -blargg_err_t Gzip_Extractor::open_path_v() -{ - // skip opening file - return open_v(); -} - -blargg_err_t Gzip_Extractor::stat_v() -{ - RETURN_ERR( open_arc_file( true ) ); - if ( !gr.opened() || gr.tell() != 0 ) - RETURN_ERR( gr.open( &arc() ) ); - - set_info( gr.remain(), 0, gr.crc32() ); - return blargg_ok; -} - -blargg_err_t Gzip_Extractor::open_v() -{ - // Remove .gz suffix - size_t len = strlen( arc_path() ); - if ( fex_has_extension( arc_path(), ".gz" ) ) - len -= 3; - - RETURN_ERR( name.resize( len + 1 ) ); - memcpy( name.begin(), arc_path(), name.size() ); - name [name.size() - 1] = '\0'; - - set_name( name.begin() ); - return blargg_ok; -} - -void Gzip_Extractor::close_v() -{ - name.clear(); - gr.close(); -} - -blargg_err_t Gzip_Extractor::next_v() -{ - return blargg_ok; -} - -blargg_err_t Gzip_Extractor::rewind_v() -{ - set_name( name.begin() ); - return blargg_ok; -} - -blargg_err_t Gzip_Extractor::extract_v( void* p, int n ) -{ - return gr.read( p, n ); -} diff --git a/snesreader/fex/Gzip_Extractor.h b/snesreader/fex/Gzip_Extractor.h deleted file mode 100644 index 814dc9b3..00000000 --- a/snesreader/fex/Gzip_Extractor.h +++ /dev/null @@ -1,34 +0,0 @@ -// Presents a gzipped file as an "archive" of just that file. -// Also handles non-gzipped files. - -// File_Extractor 1.0.0 -#ifndef GZIP_EXTRACTOR_H -#define GZIP_EXTRACTOR_H - -#include "File_Extractor.h" -#include "Gzip_Reader.h" - -class Gzip_Extractor : public File_Extractor { -public: - Gzip_Extractor(); - virtual ~Gzip_Extractor(); - -protected: - virtual blargg_err_t open_path_v(); - virtual blargg_err_t open_v(); - virtual void close_v(); - - virtual blargg_err_t next_v(); - virtual blargg_err_t rewind_v(); - - virtual blargg_err_t stat_v(); - virtual blargg_err_t extract_v( void*, int ); - -private: - Gzip_Reader gr; - blargg_vector name; - - void set_info_(); -}; - -#endif diff --git a/snesreader/fex/Gzip_Reader.cpp b/snesreader/fex/Gzip_Reader.cpp deleted file mode 100644 index 2aad302c..00000000 --- a/snesreader/fex/Gzip_Reader.cpp +++ /dev/null @@ -1,85 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "Gzip_Reader.h" - -#include "blargg_endian.h" - -/* Copyright (C) 2006-2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - -Gzip_Reader::Gzip_Reader() -{ - close(); -} - -Gzip_Reader::~Gzip_Reader() -{ } - -static blargg_err_t gzip_reader_read( void* file, void* out, int* count ) -{ - return STATIC_CAST(File_Reader*,file)->read_avail( out, count ); -} - -blargg_err_t Gzip_Reader::calc_size() -{ - size_ = in->size(); - crc32_ = 0; - if ( inflater.deflated() ) - { - byte trailer [8]; - int old_pos = in->tell(); - RETURN_ERR( in->seek( size_ - sizeof trailer ) ); - RETURN_ERR( in->read( trailer, sizeof trailer ) ); - RETURN_ERR( in->seek( old_pos ) ); - crc32_ = get_le32( trailer + 0 ); - - unsigned n = get_le32( trailer + 4 ); - if ( n > INT_MAX ) - return BLARGG_ERR( BLARGG_ERR_FILE_FEATURE, "gzip larger than 2GB" ); - - size_ = n; - } - return blargg_ok; -} - -blargg_err_t Gzip_Reader::open( File_Reader* new_in ) -{ - close(); - - in = new_in; - RETURN_ERR( in->seek( 0 ) ); - RETURN_ERR( inflater.begin( gzip_reader_read, new_in ) ); - RETURN_ERR( inflater.set_mode( inflater.mode_auto ) ); - RETURN_ERR( calc_size() ); - set_remain( size_ ); - - return blargg_ok; -} - -void Gzip_Reader::close() -{ - in = NULL; - inflater.end(); -} - -blargg_err_t Gzip_Reader::read_v( void* out, int count ) -{ - assert( in ); - int actual = count; - RETURN_ERR( inflater.read( out, &actual ) ); - - if ( actual != count ) - return blargg_err_file_corrupt; - - return blargg_ok; -} diff --git a/snesreader/fex/Gzip_Reader.h b/snesreader/fex/Gzip_Reader.h deleted file mode 100644 index a9b2d6a9..00000000 --- a/snesreader/fex/Gzip_Reader.h +++ /dev/null @@ -1,46 +0,0 @@ -// Transparently decompresses gzip files, as well as uncompressed - -// File_Extractor 1.0.0 -#ifndef GZIP_READER_H -#define GZIP_READER_H - -#include "Data_Reader.h" -#include "Zlib_Inflater.h" - -class Gzip_Reader : public Data_Reader { -public: - // Keeps pointer to reader until close(). If - blargg_err_t open( File_Reader* ); - - // True if file is open - bool opened() const { return in != NULL; } - - // Frees memory - void close(); - - // True if file is compressed - bool deflated() const { return inflater.deflated(); } - - // CRC-32 of data, of 0 if unavailable - unsigned int crc32() const { return crc32_; } - - // Number of bytes read since opening - int tell() const { return size_ - remain(); } - -public: - Gzip_Reader(); - virtual ~Gzip_Reader(); - -protected: - virtual blargg_err_t read_v( void*, int ); - -private: - File_Reader* in; - unsigned crc32_; - int size_; - Zlib_Inflater inflater; - - blargg_err_t calc_size(); -}; - -#endif diff --git a/snesreader/fex/Rar_Extractor.cpp b/snesreader/fex/Rar_Extractor.cpp deleted file mode 100644 index afade7fa..00000000 --- a/snesreader/fex/Rar_Extractor.cpp +++ /dev/null @@ -1,197 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "blargg_common.h" - -#if FEX_ENABLE_RAR - -#include "Rar_Extractor.h" - -/* Copyright (C) 2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - -static blargg_err_t init_rar() -{ - unrar_init(); - return blargg_ok; -} - -static File_Extractor* new_rar() -{ - return BLARGG_NEW Rar_Extractor; -} - -fex_type_t_ const fex_rar_type [1] = {{ - ".rar", - &new_rar, - "RAR archive", - &init_rar -}}; - -blargg_err_t Rar_Extractor::convert_err( unrar_err_t err ) -{ - blargg_err_t reader_err = reader.err; - reader.err = blargg_ok; - if ( reader_err ) - check( err == unrar_next_err ); - - switch ( err ) - { - case unrar_ok: return blargg_ok; - case unrar_err_memory: return blargg_err_memory; - case unrar_err_open: return blargg_err_file_read; - case unrar_err_not_arc: return blargg_err_file_type; - case unrar_err_corrupt: return blargg_err_file_corrupt; - case unrar_err_io: return blargg_err_file_io; - case unrar_err_arc_eof: return blargg_err_internal; - case unrar_err_encrypted: return BLARGG_ERR( BLARGG_ERR_FILE_FEATURE, "RAR encryption not supported" ); - case unrar_err_segmented: return BLARGG_ERR( BLARGG_ERR_FILE_FEATURE, "RAR segmentation not supported" ); - case unrar_err_huge: return BLARGG_ERR( BLARGG_ERR_FILE_FEATURE, "Huge RAR files not supported" ); - case unrar_err_old_algo: return BLARGG_ERR( BLARGG_ERR_FILE_FEATURE, "Old RAR compression not supported" ); - case unrar_err_new_algo: return BLARGG_ERR( BLARGG_ERR_FILE_FEATURE, "RAR uses unknown newer compression" ); - case unrar_next_err: break; - default: - check( false ); // unhandled RAR error - } - - if ( reader_err ) - return reader_err; - - check( false ); - return BLARGG_ERR( BLARGG_ERR_INTERNAL, "RAR archive" ); -} - -static inline unrar_err_t handle_err( Rar_Extractor::read_callback_t* h, blargg_err_t err ) -{ - if ( !err ) - return unrar_ok; - - h->err = err; - return unrar_next_err; -} - -extern "C" -{ - static unrar_err_t my_unrar_read( void* data, void* out, int* count, unrar_pos_t pos ) - { - // TODO: 64-bit file support - - Rar_Extractor::read_callback_t* h = STATIC_CAST(Rar_Extractor::read_callback_t*,data); - if ( h->pos != pos ) - { - blargg_err_t err = h->in->seek( pos ); - if ( err ) - return handle_err( h, err ); - - h->pos = pos; - } - - blargg_err_t err = h->in->read_avail( out, count ); - if ( err ) - return handle_err( h, err ); - - h->pos += *count; - - return unrar_ok; - } -} - -Rar_Extractor::Rar_Extractor() : - File_Extractor( fex_rar_type ) -{ - unrar = NULL; -} - -Rar_Extractor::~Rar_Extractor() -{ - close(); -} - -blargg_err_t Rar_Extractor::open_v() -{ - reader.pos = 0; - reader.in = &arc(); - reader.err = blargg_ok; - - RETURN_ERR( arc().seek( 0 ) ); - RETURN_ERR( convert_err( unrar_open_custom( &unrar, &my_unrar_read, &reader ) ) ); - return skip_unextractables(); -} - -void Rar_Extractor::close_v() -{ - unrar_close( unrar ); - - unrar = NULL; - reader.in = NULL; -} - -blargg_err_t Rar_Extractor::skip_unextractables() -{ - while ( !unrar_done( unrar ) && unrar_try_extract( unrar ) ) - RETURN_ERR( next_raw() ); - - if ( !unrar_done( unrar ) ) - { - unrar_info_t const* info = unrar_info( unrar ); - - set_name( info->name, (info->name_w && *info->name_w) ? info->name_w : NULL ); - set_info( info->size, info->dos_date, (info->is_crc32 ? info->crc : 0) ); - } - - return blargg_ok; -} - -blargg_err_t Rar_Extractor::next_raw() -{ - return convert_err( unrar_next( unrar ) ); -} - -blargg_err_t Rar_Extractor::next_v() -{ - RETURN_ERR( next_raw() ); - return skip_unextractables(); -} - -blargg_err_t Rar_Extractor::rewind_v() -{ - RETURN_ERR( convert_err( unrar_rewind( unrar ) ) ); - return skip_unextractables(); -} - -fex_pos_t Rar_Extractor::tell_arc_v() const -{ - return unrar_tell( unrar ); -} - -blargg_err_t Rar_Extractor::seek_arc_v( fex_pos_t pos ) -{ - RETURN_ERR( convert_err( unrar_seek( unrar, pos ) ) ); - return skip_unextractables(); -} - -blargg_err_t Rar_Extractor::data_v( void const** out ) -{ - return convert_err( unrar_extract_mem( unrar, out ) ); -} - -blargg_err_t Rar_Extractor::extract_v( void* out, int count ) -{ - // We can read entire file directly into user buffer - if ( count == size() ) - return convert_err( unrar_extract( unrar, out, count ) ); - - // This will call data_v() and copy from that buffer for us - return File_Extractor::extract_v( out, count ); -} - -#endif diff --git a/snesreader/fex/Rar_Extractor.h b/snesreader/fex/Rar_Extractor.h deleted file mode 100644 index 9a74dea3..00000000 --- a/snesreader/fex/Rar_Extractor.h +++ /dev/null @@ -1,43 +0,0 @@ -// RAR archive extractor - -// File_Extractor 1.0.0 -#ifndef RAR_EXTRACTOR_H -#define RAR_EXTRACTOR_H - -#include "File_Extractor.h" -#include "unrar/unrar.h" - -class Rar_Extractor : public File_Extractor { -public: - Rar_Extractor(); - virtual ~Rar_Extractor(); - - struct read_callback_t - { - const char* err; - int pos; - File_Reader* in; - }; - -protected: - virtual blargg_err_t open_v(); - virtual void close_v(); - - virtual blargg_err_t next_v(); - virtual blargg_err_t rewind_v(); - virtual fex_pos_t tell_arc_v() const; - virtual blargg_err_t seek_arc_v( fex_pos_t ); - - virtual blargg_err_t data_v( void const** ); - virtual blargg_err_t extract_v( void*, int ); - -private: - unrar_t* unrar; - read_callback_t reader; - - blargg_err_t convert_err( unrar_err_t ); - blargg_err_t skip_unextractables(); - blargg_err_t next_raw(); -}; - -#endif diff --git a/snesreader/fex/Zip7_Extractor.cpp b/snesreader/fex/Zip7_Extractor.cpp deleted file mode 100644 index 1803a71c..00000000 --- a/snesreader/fex/Zip7_Extractor.cpp +++ /dev/null @@ -1,252 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "Zip7_Extractor.h" - -#include "7z_C/7zExtract.h" -#include "7z_C/7zAlloc.h" -#include "7z_C/7zCrc.h" - -/* Copyright (C) 2005-2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - -static ISzAlloc zip7_alloc = { SzAlloc, SzFree }; -static ISzAlloc zip7_alloc_temp = { SzAllocTemp, SzFreeTemp }; - -struct Zip7_Extractor_Impl : - ISeekInStream -{ - CLookToRead look; - CSzArEx db; - - // SzExtract state - UInt32 block_index; - Byte* buf; - size_t buf_size; - - File_Reader* in; - const char* in_err; -}; - -extern "C" -{ - // 7-zip callbacks pass an ISeekInStream* for data, so we must cast it - // back to ISeekInStream* FIRST, then cast to our Impl structure - - static SRes zip7_read_( void* vstream, void* out, size_t* size ) - { - assert( out && size ); - ISeekInStream* stream = STATIC_CAST(ISeekInStream*,vstream); - Zip7_Extractor_Impl* impl = STATIC_CAST(Zip7_Extractor_Impl*,stream); - - long lsize = *size; - blargg_err_t err = impl->in->read_avail( out, &lsize ); - if ( err ) - { - *size = 0; - impl->in_err = err; - return SZ_ERROR_READ; - } - - *size = lsize; - return SZ_OK; - } - - static SRes zip7_seek_( void* vstream, Int64* pos, ESzSeek mode ) - { - ISeekInStream* stream = STATIC_CAST(ISeekInStream*,vstream); - Zip7_Extractor_Impl* impl = STATIC_CAST(Zip7_Extractor_Impl*,stream); - - assert( mode != SZ_SEEK_CUR ); // never used - - if ( mode == SZ_SEEK_END ) - { - assert( *pos == 0 ); // only used to find file length - *pos = impl->in->size(); - return SZ_OK; - } - - assert( mode == SZ_SEEK_SET ); - blargg_err_t err = impl->in->seek( *pos ); - if ( err ) - { - // don't set in_err in this case, since it might be benign - if ( err == blargg_err_file_eof ) - return SZ_ERROR_INPUT_EOF; - - impl->in_err = err; - return SZ_ERROR_READ; - } - - return SZ_OK; - } -} - -blargg_err_t Zip7_Extractor::zip7_err( int err ) -{ - // TODO: ignore in_err in some cases? unsure about which error to use - blargg_err_t in_err = impl->in_err; - impl->in_err = NULL; - if ( in_err ) - { - check( err != SZ_OK ); - return in_err; - } - - switch ( err ) - { - case SZ_OK: return blargg_ok; - case SZ_ERROR_MEM: return blargg_err_memory; - case SZ_ERROR_READ: return blargg_err_file_io; - case SZ_ERROR_CRC: - case SZ_ERROR_DATA: - case SZ_ERROR_INPUT_EOF: - case SZ_ERROR_ARCHIVE: return blargg_err_file_corrupt; - case SZ_ERROR_UNSUPPORTED: return blargg_err_file_feature; - case SZ_ERROR_NO_ARCHIVE: return blargg_err_file_type; - } - - return blargg_err_generic; -} - -static blargg_err_t init_7z() -{ - static bool inited; - if ( !inited ) - { - inited = true; - CrcGenerateTable(); - } - return blargg_ok; -} - -static File_Extractor* new_7z() -{ - return BLARGG_NEW Zip7_Extractor; -} - -fex_type_t_ const fex_7z_type [1] = {{ - ".7z", - &new_7z, - "7-zip archive", - &init_7z -}}; - -Zip7_Extractor::Zip7_Extractor() : - File_Extractor( fex_7z_type ) -{ - impl = NULL; -} - -Zip7_Extractor::~Zip7_Extractor() -{ - close(); -} - -blargg_err_t Zip7_Extractor::open_v() -{ - RETURN_ERR( init_7z() ); - - if ( !impl ) - { - impl = (Zip7_Extractor_Impl*) malloc( sizeof *impl ); - CHECK_ALLOC( impl ); - } - - impl->in = &arc(); - impl->block_index = (UInt32) -1; - impl->buf = NULL; - impl->buf_size = 0; - - LookToRead_CreateVTable( &impl->look, false ); - impl->ISeekInStream::Read = zip7_read_; - impl->ISeekInStream::Seek = zip7_seek_; - impl->look.realStream = impl; - LookToRead_Init( &impl->look ); - - SzArEx_Init( &impl->db ); - - impl->in_err = NULL; - RETURN_ERR( zip7_err( SzArEx_Open( &impl->db, &impl->look.s, - &zip7_alloc, &zip7_alloc_temp ) ) ); - - return seek_arc_v( 0 ); -} - -void Zip7_Extractor::close_v() -{ - if ( impl ) - { - if ( impl->in ) - { - impl->in = NULL; - SzArEx_Free( &impl->db, &zip7_alloc ); - } - IAlloc_Free( &zip7_alloc, impl->buf ); - free( impl ); - impl = NULL; - } -} - -blargg_err_t Zip7_Extractor::next_v() -{ - while ( ++index < (int) impl->db.db.NumFiles ) - { - CSzFileItem const& item = impl->db.db.Files [index]; - if ( !item.IsDir ) - { - // TODO: Support date. - // NTFS representation, stored as 64-bit value. - // Divide by 10000000 (ten million) to get seconds - //item.MTime.Low + (.High << 32) - // How to convert to DOS style? - - set_name( item.Name ); - set_info( item.Size, 0, (item.FileCRCDefined ? item.FileCRC : 0) ); - break; - } - } - - return blargg_ok; -} - -blargg_err_t Zip7_Extractor::rewind_v() -{ - return seek_arc_v( 0 ); -} - -fex_pos_t Zip7_Extractor::tell_arc_v() const -{ - return index; -} - -blargg_err_t Zip7_Extractor::seek_arc_v( fex_pos_t pos ) -{ - assert( 0 <= pos && pos <= (int) impl->db.db.NumFiles ); - - index = pos - 1; - return next_v(); -} - -blargg_err_t Zip7_Extractor::data_v( void const** out ) -{ - impl->in_err = NULL; - size_t offset = 0; - size_t count = 0; - RETURN_ERR( zip7_err( SzAr_Extract( &impl->db, &impl->look.s, index, - &impl->block_index, &impl->buf, &impl->buf_size, - &offset, &count, &zip7_alloc, &zip7_alloc_temp ) ) ); - assert( count == (size_t) size() ); - - *out = impl->buf + offset; - return blargg_ok; -} diff --git a/snesreader/fex/Zip7_Extractor.h b/snesreader/fex/Zip7_Extractor.h deleted file mode 100644 index f658ba04..00000000 --- a/snesreader/fex/Zip7_Extractor.h +++ /dev/null @@ -1,34 +0,0 @@ -// 7-zip archive extractor - -// File_Extractor 1.0.0 -#ifndef ZIP7_EXTRACTOR_H -#define ZIP7_EXTRACTOR_H - -#include "File_Extractor.h" - -struct Zip7_Extractor_Impl; - -class Zip7_Extractor : public File_Extractor { -public: - Zip7_Extractor(); - virtual ~Zip7_Extractor(); - -protected: - virtual blargg_err_t open_v(); - virtual void close_v(); - - virtual blargg_err_t next_v(); - virtual blargg_err_t rewind_v(); - virtual fex_pos_t tell_arc_v() const; - virtual blargg_err_t seek_arc_v( fex_pos_t ); - - virtual blargg_err_t data_v( void const** out ); - -private: - Zip7_Extractor_Impl* impl; - int index; - - blargg_err_t zip7_err( int err ); -}; - -#endif diff --git a/snesreader/fex/Zip_Extractor.cpp b/snesreader/fex/Zip_Extractor.cpp deleted file mode 100644 index 8bcc61c3..00000000 --- a/snesreader/fex/Zip_Extractor.cpp +++ /dev/null @@ -1,390 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "Zip_Extractor.h" - -#include "blargg_endian.h" - -/* Copyright (C) 2005-2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -/* To avoid copying filename string from catalog, I terminate it by modifying -catalog data. This potentially requires moving the first byte of the type -of the next entry elsewhere; I move it to the first byte of made_by. Kind -of hacky, but I'd rather not have to allocate memory for a copy of it. */ - -#include "blargg_source.h" - -/* Reads this much from end of file when first opening. Only this much is -searched for the end catalog entry. If whole catalog is within this data, -nothing more needs to be read on open. */ -int const end_read_size = 8 * 1024; - -/* Reads are are made using file offset that's a multiple of this, -increasing performance. */ -int const disk_block_size = 4 * 1024; - -// Read buffer used for extracting file data -int const read_buf_size = 16 * 1024; - -struct header_t -{ - char type [4]; - byte vers [2]; - byte flags [2]; - byte method [2]; - byte date [4]; - byte crc [4]; - byte raw_size [4]; - byte size [4]; - byte filename_len [2]; - byte extra_len [2]; - char filename [2]; // [filename_len] - //char extra [extra_len]; -}; -int const header_size = 30; - -struct entry_t -{ - char type [4]; - byte made_by [2]; - byte vers [2]; - byte flags [2]; - byte method [2]; - byte date [4]; - byte crc [4]; - byte raw_size [4]; - byte size [4]; - byte filename_len [2]; - byte extra_len [2]; - byte comment_len [2]; - byte disk [2]; - byte int_attrib [2]; - byte ext_attrib [4]; - byte file_offset [4]; - char filename [2]; // [filename_len] - //char extra [extra_len]; - //char comment [comment_len]; -}; -int const entry_size = 46; - -struct end_entry_t -{ - char type [4]; - byte disk [2]; - byte first_disk [2]; - byte disk_entry_count [2]; - byte entry_count [2]; - byte dir_size [4]; - byte dir_offset [4]; - byte comment_len [2]; - char comment [2]; // [comment_len] -}; -int const end_entry_size = 22; - -static blargg_err_t init_zip() -{ - get_crc_table(); // initialize zlib's CRC-32 tables - return blargg_ok; -} - -static File_Extractor* new_zip() -{ - return BLARGG_NEW Zip_Extractor; -} - -fex_type_t_ const fex_zip_type [1] = {{ - ".zip", - &new_zip, - "ZIP archive", - &init_zip -}}; - -Zip_Extractor::Zip_Extractor() : - File_Extractor( fex_zip_type ) -{ - Zip_Extractor::clear_file_v(); - - // If these fail, structures had extra padding inserted by compiler - assert( offsetof (header_t,filename) == header_size ); - assert( offsetof (entry_t,filename) == entry_size ); - assert( offsetof (end_entry_t,comment) == end_entry_size ); -} - -Zip_Extractor::~Zip_Extractor() -{ - close(); -} - -blargg_err_t Zip_Extractor::open_path_v() -{ - RETURN_ERR( open_arc_file( true ) ); - return File_Extractor::open_path_v(); -} - -inline -void Zip_Extractor::reorder_entry_header( int offset ) -{ - catalog [offset + 0] = 0; - catalog [offset + 4] = 'P'; -} - -blargg_err_t Zip_Extractor::open_v() -{ - if ( arc().size() < end_entry_size ) - return blargg_err_file_type; - - // Read final end_read_size bytes of file - int file_pos = max( 0, arc().size() - end_read_size ); - file_pos -= file_pos % disk_block_size; - RETURN_ERR( catalog.resize( arc().size() - file_pos ) ); - RETURN_ERR( arc().seek( file_pos ) ); - RETURN_ERR( arc().read( catalog.begin(), catalog.size() ) ); - - // Find end-of-catalog entry - int end_pos = catalog.size() - end_entry_size; - while ( end_pos >= 0 && memcmp( &catalog [end_pos], "PK\5\6", 4 ) ) - end_pos--; - if ( end_pos < 0 ) - return blargg_err_file_type; - end_entry_t const& end_entry = (end_entry_t&) catalog [end_pos]; - end_pos += file_pos; - - // some idiotic zip compressors add data to end of zip without setting comment len -// check( arc().size() == end_pos + end_entry_size + get_le16( end_entry.comment_len ) ); - - // Find file offset of beginning of catalog - catalog_begin = get_le32( end_entry.dir_offset ); - int catalog_size = end_pos - catalog_begin; - if ( catalog_size < 0 ) - return blargg_err_file_corrupt; - catalog_size += end_entry_size; - - // See if catalog is entirely contained in bytes already read - int begin_offset = catalog_begin - file_pos; - if ( begin_offset >= 0 ) - memmove( catalog.begin(), &catalog [begin_offset], catalog_size ); - - RETURN_ERR( catalog.resize( catalog_size ) ); - if ( begin_offset < 0 ) - { - // Catalog begins before bytes read, so it needs to be read - RETURN_ERR( arc().seek( catalog_begin ) ); - RETURN_ERR( arc().read( catalog.begin(), catalog.size() ) ); - } - - // First entry in catalog should be a file or end of archive - if ( memcmp( catalog.begin(), "PK\1\2", 4 ) && memcmp( catalog.begin(), "PK\5\6", 4 ) ) - return blargg_err_file_type; - - reorder_entry_header( 0 ); - return rewind_v(); -} - -void Zip_Extractor::close_v() -{ - catalog.clear(); -} - -// Scanning - -inline -static bool is_normal_file( entry_t const& e, unsigned len ) -{ - int last_char = (len ? e.filename [len - 1] : '/'); - bool is_dir = (last_char == '/' || last_char == '\\'); - if ( is_dir && get_le32( e.size ) == 0 ) - return false; - check( !is_dir ); - - // Mac OS X puts meta-information in separate files with normal extensions, - // so they must be filtered out or caller will mistake them for normal files. - if ( e.made_by[1] == 3 ) - { - const char* dir = strrchr( e.filename, '/' ); - if ( dir ) - dir++; - else - dir = e.filename; - - if ( *dir == '.' ) - return false; - - if ( !strcmp( dir, "Icon\x0D" ) ) - return false; - } - - return true; -} - -blargg_err_t Zip_Extractor::update_info( bool advance_first ) -{ - while ( 1 ) - { - entry_t& e = (entry_t&) catalog [catalog_pos]; - - if ( memcmp( e.type, "\0K\1\2P", 5 ) && memcmp( e.type, "PK\1\2", 4 ) ) - { - check( !memcmp( e.type, "\0K\5\6P", 5 ) ); - break; - } - - unsigned len = get_le16( e.filename_len ); - int next_offset = catalog_pos + entry_size + len + get_le16( e.extra_len ) + - get_le16( e.comment_len ); - if ( (unsigned) next_offset > catalog.size() - end_entry_size ) - return blargg_err_file_corrupt; - - if ( catalog [next_offset] == 'P' ) - reorder_entry_header( next_offset ); - - if ( !advance_first ) - { - e.filename [len] = 0; // terminate name - - if ( is_normal_file( e, len ) ) - { - set_name( e.filename ); - set_info( get_le32( e.size ), get_le32( e.date ), get_le32( e.crc ) ); - break; - } - } - - catalog_pos = next_offset; - advance_first = false; - } - - return blargg_ok; -} - -blargg_err_t Zip_Extractor::next_v() -{ - return update_info( true ); -} - -blargg_err_t Zip_Extractor::rewind_v() -{ - return seek_arc_v( 0 ); -} - -fex_pos_t Zip_Extractor::tell_arc_v() const -{ - return catalog_pos; -} - -blargg_err_t Zip_Extractor::seek_arc_v( fex_pos_t pos ) -{ - assert( 0 <= pos && (size_t) pos <= catalog.size() - end_entry_size ); - - catalog_pos = pos; - return update_info( false ); -} - -// Reading - -void Zip_Extractor::clear_file_v() -{ - buf.end(); -} - -blargg_err_t Zip_Extractor::inflater_read( void* data, void* out, int* count ) -{ - Zip_Extractor& self = *STATIC_CAST(Zip_Extractor*,data); - - if ( *count > self.raw_remain ) - *count = self.raw_remain; - - self.raw_remain -= *count; - - return self.arc().read( out, *count ); -} - -blargg_err_t Zip_Extractor::fill_buf( int offset, int buf_size, int initial_read ) -{ - raw_remain = arc().size() - offset; - RETURN_ERR( arc().seek( offset ) ); - return buf.begin( inflater_read, this, buf_size, initial_read ); -} - -blargg_err_t Zip_Extractor::first_read( int count ) -{ - entry_t const& e = (entry_t&) catalog [catalog_pos]; - - // Determine compression - { - int method = get_le16( e.method ); - if ( (method && method != Z_DEFLATED) || get_le16( e.vers ) > 20 ) - return BLARGG_ERR( BLARGG_ERR_FILE_FEATURE, "compression method" ); - file_deflated = (method != 0); - } - - int raw_size = get_le32( e.raw_size ); - - int file_offset = get_le32( e.file_offset ); - int align = file_offset % disk_block_size; - { - // read header - int buf_size = 3 * disk_block_size - 1 + raw_size; // space for all raw data - buf_size -= buf_size % disk_block_size; - int initial_read = buf_size; - if ( !file_deflated || count < size() ) - { - buf_size = read_buf_size; - initial_read = disk_block_size * 2; - } - // TODO: avoid re-reading if buffer already has data we want? - RETURN_ERR( fill_buf( file_offset - align, buf_size, initial_read ) ); - } - header_t const& h = (header_t&) buf.data() [align]; - if ( buf.filled() < align + header_size || memcmp( h.type, "PK\3\4", 4 ) ) - return blargg_err_file_corrupt; - - // CRCs of header and file data - correct_crc = get_le32( h.crc ); - if ( !correct_crc ) - correct_crc = get_le32( e.crc ); - check( correct_crc == get_le32( e.crc ) ); // catalog CRC should match - crc = ::crc32( 0, NULL, 0 ); - - // Data offset - int data_offset = file_offset + header_size + - get_le16( h.filename_len ) + get_le16( h.extra_len ); - if ( data_offset + raw_size > catalog_begin ) - return blargg_err_file_corrupt; - - // Refill buffer if there's lots of extra data after header - int buf_offset = data_offset - file_offset + align; - if ( buf_offset > buf.filled() ) - { - // TODO: this will almost never occur, making it a good place for bugs - buf_offset = data_offset % disk_block_size; - RETURN_ERR( fill_buf( data_offset - buf_offset, read_buf_size, disk_block_size ) ); - } - - raw_remain = raw_size - (buf.filled() - buf_offset); - return buf.set_mode( (file_deflated ? buf.mode_raw_deflate : buf.mode_copy), buf_offset ); -} - -blargg_err_t Zip_Extractor::extract_v( void* out, int count ) -{ - if ( tell() == 0 ) - RETURN_ERR( first_read( count ) ); - - int actual = count; - RETURN_ERR( buf.read( out, &actual ) ); - if ( actual < count ) - return blargg_err_file_corrupt; - - crc = ::crc32( crc, (byte const*) out, count ); - if ( count == reader().remain() && crc != correct_crc ) - return blargg_err_file_corrupt; - - return blargg_ok; -} diff --git a/snesreader/fex/Zip_Extractor.h b/snesreader/fex/Zip_Extractor.h deleted file mode 100644 index 9742df99..00000000 --- a/snesreader/fex/Zip_Extractor.h +++ /dev/null @@ -1,45 +0,0 @@ -// ZIP archive extractor. Only supports deflation and store (no compression). - -// File_Extractor 1.0.0 -#ifndef ZIP_EXTRACTOR_H -#define ZIP_EXTRACTOR_H - -#include "File_Extractor.h" -#include "Zlib_Inflater.h" - -class Zip_Extractor : public File_Extractor { -public: - Zip_Extractor(); - virtual ~Zip_Extractor(); - -protected: - virtual blargg_err_t open_path_v(); - virtual blargg_err_t open_v(); - virtual void close_v(); - - virtual void clear_file_v(); - virtual blargg_err_t next_v(); - virtual blargg_err_t rewind_v(); - virtual fex_pos_t tell_arc_v() const; - virtual blargg_err_t seek_arc_v( fex_pos_t ); - - virtual blargg_err_t extract_v( void*, int ); - -private: - blargg_vector catalog; - int catalog_begin; // offset of first catalog entry in file (to detect corruption) - int catalog_pos; // position of current entry in catalog - int raw_remain; // bytes remaining to be read from zip file for current file - unsigned crc; // ongoing CRC of extracted bytes - unsigned correct_crc; - bool file_deflated; - Zlib_Inflater buf; - - blargg_err_t fill_buf( int offset, int buf_size, int initial_read ); - blargg_err_t update_info( bool advance_first ); - blargg_err_t first_read( int count ); - void reorder_entry_header( int offset ); - static blargg_err_t inflater_read( void* data, void* out, int* count ); -}; - -#endif diff --git a/snesreader/fex/Zlib_Inflater.cpp b/snesreader/fex/Zlib_Inflater.cpp deleted file mode 100644 index 8d31b514..00000000 --- a/snesreader/fex/Zlib_Inflater.cpp +++ /dev/null @@ -1,257 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "Zlib_Inflater.h" - -/* Copyright (C) 2006-2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - -int const block_size = 4096; - -static const char* get_zlib_err( int code ) -{ - assert( code != Z_OK ); - switch ( code ) - { - case Z_MEM_ERROR: return blargg_err_memory; - case Z_DATA_ERROR: return blargg_err_file_corrupt; - // TODO: handle more error codes - } - - const char* str = zError( code ); - if ( !str ) - str = BLARGG_ERR( BLARGG_ERR_GENERIC, "problem unzipping data" ); - - return str; -} - -void Zlib_Inflater::end() -{ - if ( deflated_ ) - { - deflated_ = false; - if ( inflateEnd( &zbuf ) ) - check( false ); - } - buf.clear(); - - static z_stream const empty = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - memcpy( &zbuf, &empty, sizeof zbuf ); -} - -Zlib_Inflater::Zlib_Inflater() -{ - deflated_ = false; - end(); // initialize things -} - -Zlib_Inflater::~Zlib_Inflater() -{ - end(); -} - -blargg_err_t Zlib_Inflater::fill_buf( int count ) -{ - byte* out = buf.end() - count; - RETURN_ERR( callback( user_data, out, &count ) ); - zbuf.avail_in = count; - zbuf.next_in = out; - return blargg_ok; -} - -blargg_err_t Zlib_Inflater::begin( callback_t new_callback, void* new_user_data, - int new_buf_size, int initial_read ) -{ - callback = new_callback; - user_data = new_user_data; - - end(); - - // TODO: decide whether using different size on alloc failure is a good idea - //RETURN_ERR( buf.resize( new_buf_size ? new_buf_size : 4 * block_size ) ); - if ( new_buf_size && buf.resize( new_buf_size ) ) - { - ACK_FAILURE(); - new_buf_size = 0; - } - - if ( !new_buf_size ) - { - RETURN_ERR( buf.resize( 4 * block_size ) ); - initial_read = 0; - } - - // Fill buffer with some data, less than normal buffer size since caller might - // just be examining beginning of file. - return fill_buf( initial_read ? initial_read : block_size ); -} - -blargg_err_t Zlib_Inflater::set_mode( mode_t mode, int data_offset ) -{ - zbuf.next_in += data_offset; - zbuf.avail_in -= data_offset; - - if ( mode == mode_auto ) - { - // examine buffer for gzip header - mode = mode_copy; - unsigned const min_gzip_size = 2 + 8 + 8; - if ( zbuf.avail_in >= min_gzip_size && - zbuf.next_in [0] == 0x1F && zbuf.next_in [1] == 0x8B ) - mode = mode_ungz; - } - - if ( mode != mode_copy ) - { - int wb = MAX_WBITS + 16; // have zlib handle gzip header - if ( mode == mode_raw_deflate ) - wb = -MAX_WBITS; - - int zerr = inflateInit2( &zbuf, wb ); - if ( zerr ) - { - zbuf.next_in = NULL; - return get_zlib_err( zerr ); - } - - deflated_ = true; - } - return blargg_ok; -} - -/* -// Reads/inflates entire stream. All input must be in buffer, and count must be total -// of all output. -blargg_err_t read_all( void* out, int count ); - - -// zlib automatically applies this optimization (uses inflateFast) -// TODO: remove -blargg_err_t Zlib_Inflater::read_all( void* out, int count ) -{ - if ( deflated_ ) - { - zbuf.next_out = (Bytef*) out; - zbuf.avail_out = count; - - int err = inflate( &zbuf, Z_FINISH ); - - if ( zbuf.avail_out || err != Z_STREAM_END ) - return blargg_err_file_corrupt; - } - else - { - if ( zbuf.avail_in < count ) - return blargg_err_file_corrupt; - - memcpy( out, zbuf.next_in, count ); - - zbuf.next_in += count; - zbuf.avail_in -= count; - } - - return blargg_ok; -} -*/ - -blargg_err_t Zlib_Inflater::read( void* out, int* count_io ) -{ - int remain = *count_io; - if ( remain && zbuf.next_in ) - { - if ( deflated_ ) - { - zbuf.next_out = (Bytef*) out; - zbuf.avail_out = remain; - - while ( 1 ) - { - uInt old_avail_in = zbuf.avail_in; - int err = inflate( &zbuf, Z_NO_FLUSH ); - if ( err == Z_STREAM_END ) - { - remain = zbuf.avail_out; - end(); - break; // no more data to inflate - } - - if ( err && (err != Z_BUF_ERROR || old_avail_in) ) - return get_zlib_err( err ); - - if ( !zbuf.avail_out ) - { - remain = 0; - break; // requested number of bytes inflated - } - - if ( zbuf.avail_in ) - { - // inflate() should never leave input if there's still space for output - check( false ); - return blargg_err_file_corrupt; - } - - RETURN_ERR( fill_buf( buf.size() ) ); - if ( !zbuf.avail_in ) - return blargg_err_file_corrupt; // stream didn't end but there's no more data - } - } - else - { - while ( 1 ) - { - // copy buffered data - if ( zbuf.avail_in ) - { - long count = zbuf.avail_in; - if ( count > remain ) - count = remain; - memcpy( out, zbuf.next_in, count ); - zbuf.total_out += count; - out = (char*) out + count; - remain -= count; - zbuf.next_in += count; - zbuf.avail_in -= count; - } - - if ( !zbuf.avail_in && zbuf.next_in < buf.end() ) - { - end(); - break; - } - - // read large request directly - if ( remain + zbuf.total_out % block_size >= buf.size() ) - { - int count = remain; - RETURN_ERR( callback( user_data, out, &count ) ); - zbuf.total_out += count; - out = (char*) out + count; - remain -= count; - - if ( remain ) - { - end(); - break; - } - } - - if ( !remain ) - break; - - RETURN_ERR( fill_buf( buf.size() - zbuf.total_out % block_size ) ); - } - } - } - *count_io -= remain; - return blargg_ok; -} diff --git a/snesreader/fex/Zlib_Inflater.h b/snesreader/fex/Zlib_Inflater.h deleted file mode 100644 index 8a49ff52..00000000 --- a/snesreader/fex/Zlib_Inflater.h +++ /dev/null @@ -1,70 +0,0 @@ -// Simplifies use of zlib for inflating data - -// File_Extractor 1.0.0 -#ifndef ZLIB_INFLATER_H -#define ZLIB_INFLATER_H - -#include "blargg_common.h" -#include "Data_Reader.h" -#include "zlib/zlib.h" - -class Zlib_Inflater { -public: - - // Reads at most min(*count,bytes_until_eof()) bytes into *out and set *count - // to that number, or returns error if that many can't be read. - typedef blargg_err_t (*callback_t)( void* user_data, void* out, int* count ); - - // Begins by setting callback and filling buffer. Default buffer is 16K and - // filled to 4K, or specify buf_size and initial_read for custom buffer size - // and how much to read initially. - blargg_err_t begin( callback_t, void* user_data, - int buf_size = 0, int initial_read = 0 ); - - // Data read into buffer by begin() - const unsigned char* data() const { return zbuf.next_in; } - int filled() const { return zbuf.avail_in; } - - // Begins inflation using specified mode. Using mode_auto selects between - // mode_copy and mode_ungz by examining first two bytes of buffer. Use - // buf_offset to specify where data begins in buffer, in case there is - // header data that should be skipped. - enum mode_t { mode_copy, mode_ungz, mode_raw_deflate, mode_auto }; - blargg_err_t set_mode( mode_t, int buf_offset = 0 ); - - // True if set_mode() has been called with mode_ungz or mode_raw_deflate - bool deflated() const { return deflated_; } - - // Reads/inflates at most *count_io bytes into *out and sets *count_io to actual - // number of bytes read (less than requested if end of data was reached). - // Buffers source data internally, even in copy mode, so input file can be - // unbuffered without sacrificing performance. - blargg_err_t read( void* out, int* count_io ); - - // Total number of bytes read since begin() - int tell() const { return zbuf.total_out; } - - // Ends inflation and frees memory - void end(); - -private: - // noncopyable - Zlib_Inflater( const Zlib_Inflater& ); - Zlib_Inflater& operator = ( const Zlib_Inflater& ); - -// Implementation -public: - Zlib_Inflater(); - ~Zlib_Inflater(); - -private: - z_stream_s zbuf; - blargg_vector buf; - bool deflated_; - callback_t callback; - void* user_data; - - blargg_err_t fill_buf( int count ); -}; - -#endif diff --git a/snesreader/fex/blargg_common.cpp b/snesreader/fex/blargg_common.cpp deleted file mode 100644 index 9f3e9ebd..00000000 --- a/snesreader/fex/blargg_common.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "blargg_common.h" - -/* Copyright (C) 2008-2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - -void blargg_vector_::init() -{ - begin_ = NULL; - size_ = 0; -} - -void blargg_vector_::clear() -{ - void* p = begin_; - begin_ = NULL; - size_ = 0; - free( p ); -} - -blargg_err_t blargg_vector_::resize_( size_t n, size_t elem_size ) -{ - if ( n != size_ ) - { - if ( n == 0 ) - { - // Simpler to handle explicitly. Realloc will handle a size of 0, - // but then we have to avoid raising an error for a NULL return. - clear(); - } - else - { - void* p = realloc( begin_, n * elem_size ); - CHECK_ALLOC( p ); - begin_ = p; - size_ = n; - } - } - return blargg_ok; -} diff --git a/snesreader/fex/blargg_common.h b/snesreader/fex/blargg_common.h deleted file mode 100644 index a11579fd..00000000 --- a/snesreader/fex/blargg_common.h +++ /dev/null @@ -1,206 +0,0 @@ -// Sets up common environment for Shay Green's libraries. -// To change configuration options, modify blargg_config.h, not this file. - -// File_Extractor 1.0.0 -#ifndef BLARGG_COMMON_H -#define BLARGG_COMMON_H - -#include -#include -#include - -typedef const char* blargg_err_t; // 0 on success, otherwise error string - -// Success; no error -int const blargg_ok = 0; - -// BLARGG_RESTRICT: equivalent to C99's restrict, where supported -#if __GNUC__ >= 3 || _MSC_VER >= 1100 - #define BLARGG_RESTRICT __restrict -#else - #define BLARGG_RESTRICT -#endif - -#if __cplusplus >= 199711 - #define BLARGG_MUTABLE mutable -#else - #define BLARGG_MUTABLE -#endif - -/* BLARGG_4CHAR('a','b','c','d') = 'abcd' (four character integer constant). -I don't just use 'abcd' because that's implementation-dependent. */ -#define BLARGG_4CHAR( a, b, c, d ) \ - ((a&0xFF)*0x1000000 + (b&0xFF)*0x10000 + (c&0xFF)*0x100 + (d&0xFF)) - -/* BLARGG_STATIC_ASSERT( expr ): Generates compile error if expr is 0. -Can be used at file, function, or class scope. */ -#ifdef _MSC_VER - // MSVC6 (_MSC_VER < 1300) __LINE__ fails when /Zl is specified - #define BLARGG_STATIC_ASSERT( expr ) \ - void blargg_failed_( int (*arg) [2 / (int) !!(expr) - 1] ) -#else - // Others fail when declaring same function multiple times in class, - // so differentiate them by line - #define BLARGG_STATIC_ASSERT( expr ) \ - void blargg_failed_( int (*arg) [2 / !!(expr) - 1] [__LINE__] ) -#endif - -/* Pure virtual functions cause a vtable entry to a "called pure virtual" -error handler, requiring linkage to the C++ runtime library. This macro is -used in place of the "= 0", and simply expands to its argument. During -development, it expands to "= 0", allowing detection of missing overrides. */ -#define BLARGG_PURE( def ) def - -/* My code depends on ASCII anywhere a character or string constant is -compared with data read from a file, and anywhere file data is read and -treated as a string. */ -#if '\n'!=0x0A || ' '!=0x20 || '0'!=0x30 || 'A'!=0x41 || 'a'!=0x61 - #error "ASCII character set required" -#endif - -/* My code depends on int being at least 32 bits. Almost everything these days -uses at least 32-bit ints, so it's hard to even find a system with 16-bit ints -to test with. The issue can't be gotten around by using a suitable blargg_int -everywhere either, because int is often converted to implicitly when doing -arithmetic on smaller types. */ -#if UINT_MAX < 0xFFFFFFFF - #error "int must be at least 32 bits" -#endif - -// In case compiler doesn't support these properly. Used rarely. -#define STATIC_CAST(T,expr) static_cast (expr) -#define CONST_CAST( T,expr) const_cast (expr) - -// User configuration can override the above macros if necessary -#include "blargg_config.h" - -/* BLARGG_DEPRECATED [_TEXT] for any declarations/text to be removed in a -future version. In GCC, we can let the compiler warn. In other compilers, -we strip it out unless BLARGG_LEGACY is true. */ -#if BLARGG_LEGACY - // Allow old client code to work without warnings - #define BLARGG_DEPRECATED_TEXT( text ) text - #define BLARGG_DEPRECATED( text ) text -#elif __GNUC__ >= 4 - // In GCC, we can mark declarations and let the compiler warn - #define BLARGG_DEPRECATED_TEXT( text ) text - #define BLARGG_DEPRECATED( text ) __attribute__ ((deprecated)) text -#else - // By default, deprecated items are removed, to avoid use in new code - #define BLARGG_DEPRECATED_TEXT( text ) - #define BLARGG_DEPRECATED( text ) -#endif - -/* BOOST::int8_t, BOOST::int32_t, etc. -I used BOOST since I originally was going to allow use of the boost library -for prividing the definitions. If I'm defining them, they must be scoped or -else they could conflict with the standard ones at global scope. Even if -HAVE_STDINT_H isn't defined, I can't assume the typedefs won't exist at -global scope already. */ -#if defined (HAVE_STDINT_H) || \ - UCHAR_MAX != 0xFF || USHRT_MAX != 0xFFFF || UINT_MAX != 0xFFFFFFFF - #include - #define BOOST -#else - struct BOOST - { - typedef signed char int8_t; - typedef unsigned char uint8_t; - typedef short int16_t; - typedef unsigned short uint16_t; - typedef int int32_t; - typedef unsigned int uint32_t; - }; -#endif - -/* My code is not written with exceptions in mind, so either uses new (nothrow) -OR overrides operator new in my classes. The former is best since clients -creating objects will get standard exceptions on failure, but that causes it -to require the standard C++ library. So, when the client is using the C -interface, I override operator new to use malloc. */ - -// BLARGG_DISABLE_NOTHROW is put inside classes -#ifndef BLARGG_DISABLE_NOTHROW - // throw spec mandatory in ISO C++ if NULL can be returned - #if __cplusplus >= 199711 || __GNUC__ >= 3 || _MSC_VER >= 1300 - #define BLARGG_THROWS_NOTHING throw () - #else - #define BLARGG_THROWS_NOTHING - #endif - - #define BLARGG_DISABLE_NOTHROW \ - void* operator new ( size_t s ) BLARGG_THROWS_NOTHING { return malloc( s ); }\ - void operator delete( void* p ) BLARGG_THROWS_NOTHING { free( p ); } - - #define BLARGG_NEW new -#else - // BLARGG_NEW is used in place of new in library code - #include - #define BLARGG_NEW new (std::nothrow) -#endif - - class blargg_vector_ { - protected: - void* begin_; - size_t size_; - void init(); - blargg_err_t resize_( size_t n, size_t elem_size ); - public: - size_t size() const { return size_; } - void clear(); - }; - -// Very lightweight vector for POD types (no constructor/destructor) -template -class blargg_vector : public blargg_vector_ { - union T_must_be_pod { T t; }; // fails if T is not POD -public: - blargg_vector() { init(); } - ~blargg_vector() { clear(); } - - blargg_err_t resize( size_t n ) { return resize_( n, sizeof (T) ); } - - T* begin() { return static_cast (begin_); } - const T* begin() const { return static_cast (begin_); } - - T* end() { return static_cast (begin_) + size_; } - const T* end() const { return static_cast (begin_) + size_; } - - T& operator [] ( size_t n ) - { - assert( n < size_ ); - return static_cast (begin_) [n]; - } - - const T& operator [] ( size_t n ) const - { - assert( n < size_ ); - return static_cast (begin_) [n]; - } -}; - -// Callback function with user data. -// blargg_callback set_callback; // for user, this acts like... -// void set_callback( T func, void* user_data = NULL ); // ...this -// To call function, do set_callback.f( .. set_callback.data ... ); -template -struct blargg_callback -{ - T f; - void* data; - blargg_callback() { f = NULL; } - void operator () ( T callback, void* user_data = NULL ) { f = callback; data = user_data; } -}; - -#ifndef _WIN32 - // Not supported on any other platforms - #undef BLARGG_UTF8_PATHS -#endif - -BLARGG_DEPRECATED( typedef signed int blargg_long; ) -BLARGG_DEPRECATED( typedef unsigned int blargg_ulong; ) -#if BLARGG_LEGACY - #define BOOST_STATIC_ASSERT BLARGG_STATIC_ASSERT -#endif - -#endif diff --git a/snesreader/fex/blargg_config.h b/snesreader/fex/blargg_config.h deleted file mode 100644 index eb862609..00000000 --- a/snesreader/fex/blargg_config.h +++ /dev/null @@ -1,34 +0,0 @@ -// Library configuration. Modify this file as necessary. - -// File_Extractor 1.0.0 -#ifndef BLARGG_CONFIG_H -#define BLARGG_CONFIG_H - -// Uncomment a #define line below to have effect described. - -// Enable RAR archive support. Doing so adds extra licensing restrictions -// to this library (see unrar/readme.txt for more information). -#define FEX_ENABLE_RAR 1 - -// Accept file paths encoded as UTF-8. Currently only affects Windows, -// as Unix/Linux/Mac OS X already use UTF-8 paths. -#define BLARGG_UTF8_PATHS 1 - -// Enable support for as building DLL on Windows. -//#define BLARGG_BUILD_DLL 1 - -// Support only the listed archive types. Remove any you don't need. -/* -#define FEX_TYPE_LIST \ - fex_7z_type,\ - fex_gz_type,\ - fex_rar_type,\ - fex_zip_type, -*/ - -// Use standard config.h if present -#ifdef HAVE_CONFIG_H - #include "config.h" -#endif - -#endif diff --git a/snesreader/fex/blargg_endian.h b/snesreader/fex/blargg_endian.h deleted file mode 100644 index c32c12f5..00000000 --- a/snesreader/fex/blargg_endian.h +++ /dev/null @@ -1,185 +0,0 @@ -// CPU Byte Order Utilities - -// File_Extractor 1.0.0 -#ifndef BLARGG_ENDIAN_H -#define BLARGG_ENDIAN_H - -#include "blargg_common.h" - -// BLARGG_CPU_CISC: Defined if CPU has very few general-purpose registers (< 16) -#if defined (__i386__) || defined (__x86_64__) || defined (_M_IX86) || defined (_M_X64) - #define BLARGG_CPU_X86 1 - #define BLARGG_CPU_CISC 1 -#endif - -#if defined (__powerpc__) || defined (__ppc__) || defined (__ppc64__) || \ - defined (__POWERPC__) || defined (__powerc) - #define BLARGG_CPU_POWERPC 1 - #define BLARGG_CPU_RISC 1 -#endif - -// BLARGG_BIG_ENDIAN, BLARGG_LITTLE_ENDIAN: Determined automatically, otherwise only -// one may be #defined to 1. Only needed if something actually depends on byte order. -#if !defined (BLARGG_BIG_ENDIAN) && !defined (BLARGG_LITTLE_ENDIAN) -#ifdef __GLIBC__ - // GCC handles this for us - #include - #if __BYTE_ORDER == __LITTLE_ENDIAN - #define BLARGG_LITTLE_ENDIAN 1 - #elif __BYTE_ORDER == __BIG_ENDIAN - #define BLARGG_BIG_ENDIAN 1 - #endif -#else - -#if defined (LSB_FIRST) || defined (__LITTLE_ENDIAN__) || BLARGG_CPU_X86 || \ - (defined (LITTLE_ENDIAN) && LITTLE_ENDIAN+0 != 1234) - #define BLARGG_LITTLE_ENDIAN 1 -#endif - -#if defined (MSB_FIRST) || defined (__BIG_ENDIAN__) || defined (WORDS_BIGENDIAN) || \ - defined (__sparc__) || BLARGG_CPU_POWERPC || \ - (defined (BIG_ENDIAN) && BIG_ENDIAN+0 != 4321) - #define BLARGG_BIG_ENDIAN 1 -#elif !defined (__mips__) - // No endian specified; assume little-endian, since it's most common - #define BLARGG_LITTLE_ENDIAN 1 -#endif -#endif -#endif - -#if BLARGG_LITTLE_ENDIAN && BLARGG_BIG_ENDIAN - #undef BLARGG_LITTLE_ENDIAN - #undef BLARGG_BIG_ENDIAN -#endif - -inline void blargg_verify_byte_order() -{ - #ifndef NDEBUG - #if BLARGG_BIG_ENDIAN - volatile int i = 1; - assert( *(volatile char*) &i == 0 ); - #elif BLARGG_LITTLE_ENDIAN - volatile int i = 1; - assert( *(volatile char*) &i != 0 ); - #endif - #endif -} - -inline unsigned get_le16( void const* p ) -{ - return (unsigned) ((unsigned char const*) p) [1] << 8 | - (unsigned) ((unsigned char const*) p) [0]; -} - -inline unsigned get_be16( void const* p ) -{ - return (unsigned) ((unsigned char const*) p) [0] << 8 | - (unsigned) ((unsigned char const*) p) [1]; -} - -inline unsigned get_le32( void const* p ) -{ - return (unsigned) ((unsigned char const*) p) [3] << 24 | - (unsigned) ((unsigned char const*) p) [2] << 16 | - (unsigned) ((unsigned char const*) p) [1] << 8 | - (unsigned) ((unsigned char const*) p) [0]; -} - -inline unsigned get_be32( void const* p ) -{ - return (unsigned) ((unsigned char const*) p) [0] << 24 | - (unsigned) ((unsigned char const*) p) [1] << 16 | - (unsigned) ((unsigned char const*) p) [2] << 8 | - (unsigned) ((unsigned char const*) p) [3]; -} - -inline void set_le16( void* p, unsigned n ) -{ - ((unsigned char*) p) [1] = (unsigned char) (n >> 8); - ((unsigned char*) p) [0] = (unsigned char) n; -} - -inline void set_be16( void* p, unsigned n ) -{ - ((unsigned char*) p) [0] = (unsigned char) (n >> 8); - ((unsigned char*) p) [1] = (unsigned char) n; -} - -inline void set_le32( void* p, unsigned n ) -{ - ((unsigned char*) p) [0] = (unsigned char) n; - ((unsigned char*) p) [1] = (unsigned char) (n >> 8); - ((unsigned char*) p) [2] = (unsigned char) (n >> 16); - ((unsigned char*) p) [3] = (unsigned char) (n >> 24); -} - -inline void set_be32( void* p, unsigned n ) -{ - ((unsigned char*) p) [3] = (unsigned char) n; - ((unsigned char*) p) [2] = (unsigned char) (n >> 8); - ((unsigned char*) p) [1] = (unsigned char) (n >> 16); - ((unsigned char*) p) [0] = (unsigned char) (n >> 24); -} - -#if BLARGG_NONPORTABLE - // Optimized implementation if byte order is known - #if BLARGG_LITTLE_ENDIAN - #define GET_LE16( addr ) (*(BOOST::uint16_t const*) (addr)) - #define GET_LE32( addr ) (*(BOOST::uint32_t const*) (addr)) - #define SET_LE16( addr, data ) (void) (*(BOOST::uint16_t*) (addr) = (data)) - #define SET_LE32( addr, data ) (void) (*(BOOST::uint32_t*) (addr) = (data)) - #elif BLARGG_BIG_ENDIAN - #define GET_BE16( addr ) (*(BOOST::uint16_t const*) (addr)) - #define GET_BE32( addr ) (*(BOOST::uint32_t const*) (addr)) - #define SET_BE16( addr, data ) (void) (*(BOOST::uint16_t*) (addr) = (data)) - #define SET_BE32( addr, data ) (void) (*(BOOST::uint32_t*) (addr) = (data)) - - #if BLARGG_CPU_POWERPC - // PowerPC has special byte-reversed instructions - #if defined (__MWERKS__) - #define GET_LE16( addr ) (__lhbrx( addr, 0 )) - #define GET_LE32( addr ) (__lwbrx( addr, 0 )) - #define SET_LE16( addr, in ) (__sthbrx( in, addr, 0 )) - #define SET_LE32( addr, in ) (__stwbrx( in, addr, 0 )) - #elif defined (__GNUC__) - #define GET_LE16( addr ) ({unsigned short ppc_lhbrx_; __asm__ volatile( "lhbrx %0,0,%1" : "=r" (ppc_lhbrx_) : "r" (addr) : "memory" ); ppc_lhbrx_;}) - #define GET_LE32( addr ) ({unsigned short ppc_lwbrx_; __asm__ volatile( "lwbrx %0,0,%1" : "=r" (ppc_lwbrx_) : "r" (addr) : "memory" ); ppc_lwbrx_;}) - #define SET_LE16( addr, in ) ({__asm__ volatile( "sthbrx %0,0,%1" : : "r" (in), "r" (addr) : "memory" );}) - #define SET_LE32( addr, in ) ({__asm__ volatile( "stwbrx %0,0,%1" : : "r" (in), "r" (addr) : "memory" );}) - #endif - #endif - #endif -#endif - -#ifndef GET_LE16 - #define GET_LE16( addr ) get_le16( addr ) - #define SET_LE16( addr, data ) set_le16( addr, data ) -#endif - -#ifndef GET_LE32 - #define GET_LE32( addr ) get_le32( addr ) - #define SET_LE32( addr, data ) set_le32( addr, data ) -#endif - -#ifndef GET_BE16 - #define GET_BE16( addr ) get_be16( addr ) - #define SET_BE16( addr, data ) set_be16( addr, data ) -#endif - -#ifndef GET_BE32 - #define GET_BE32( addr ) get_be32( addr ) - #define SET_BE32( addr, data ) set_be32( addr, data ) -#endif - -// auto-selecting versions - -inline void set_le( BOOST::uint16_t* p, unsigned n ) { SET_LE16( p, n ); } -inline void set_le( BOOST::uint32_t* p, unsigned n ) { SET_LE32( p, n ); } -inline void set_be( BOOST::uint16_t* p, unsigned n ) { SET_BE16( p, n ); } -inline void set_be( BOOST::uint32_t* p, unsigned n ) { SET_BE32( p, n ); } -inline unsigned get_le( BOOST::uint16_t const* p ) { return GET_LE16( p ); } -inline unsigned get_le( BOOST::uint32_t const* p ) { return GET_LE32( p ); } -inline unsigned get_be( BOOST::uint16_t const* p ) { return GET_BE16( p ); } -inline unsigned get_be( BOOST::uint32_t const* p ) { return GET_BE32( p ); } - -#endif diff --git a/snesreader/fex/blargg_errors.cpp b/snesreader/fex/blargg_errors.cpp deleted file mode 100644 index 14076cdb..00000000 --- a/snesreader/fex/blargg_errors.cpp +++ /dev/null @@ -1,113 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "blargg_errors.h" - -/* Copyright (C) 2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - -blargg_err_def_t blargg_err_generic = BLARGG_ERR_GENERIC; -blargg_err_def_t blargg_err_memory = BLARGG_ERR_MEMORY; -blargg_err_def_t blargg_err_caller = BLARGG_ERR_CALLER; -blargg_err_def_t blargg_err_internal = BLARGG_ERR_INTERNAL; -blargg_err_def_t blargg_err_limitation = BLARGG_ERR_LIMITATION; - -blargg_err_def_t blargg_err_file_missing = BLARGG_ERR_FILE_MISSING; -blargg_err_def_t blargg_err_file_read = BLARGG_ERR_FILE_READ; -blargg_err_def_t blargg_err_file_write = BLARGG_ERR_FILE_WRITE; -blargg_err_def_t blargg_err_file_io = BLARGG_ERR_FILE_IO; -blargg_err_def_t blargg_err_file_full = BLARGG_ERR_FILE_FULL; -blargg_err_def_t blargg_err_file_eof = BLARGG_ERR_FILE_EOF; - -blargg_err_def_t blargg_err_file_type = BLARGG_ERR_FILE_TYPE; -blargg_err_def_t blargg_err_file_feature = BLARGG_ERR_FILE_FEATURE; -blargg_err_def_t blargg_err_file_corrupt = BLARGG_ERR_FILE_CORRUPT; - -const char* blargg_err_str( blargg_err_t err ) -{ - if ( !err ) - return ""; - - if ( *err == BLARGG_ERR_TYPE("")[0] ) - return err + 1; - - return err; -} - -bool blargg_is_err_type( blargg_err_t err, const char type [] ) -{ - if ( err ) - { - // True if first strlen(type) characters of err match type - char const* p = err; - while ( *type && *type == *p ) - { - type++; - p++; - } - - if ( !*type ) - return true; - } - - return false; -} - -const char* blargg_err_details( blargg_err_t err ) -{ - const char* p = err; - if ( !p ) - { - p = ""; - } - else if ( *p == BLARGG_ERR_TYPE("")[0] ) - { - while ( *p && *p != ';' ) - p++; - - // Skip ; and space after it - if ( *p ) - { - p++; - - check( *p == ' ' ); - if ( *p ) - p++; - } - } - return p; -} - -int blargg_err_to_code( blargg_err_t err, blargg_err_to_code_t const codes [] ) -{ - if ( !err ) - return 0; - - while ( codes->str && !blargg_is_err_type( err, codes->str ) ) - codes++; - - return codes->code; -} - -blargg_err_t blargg_code_to_err( int code, blargg_err_to_code_t const codes [] ) -{ - if ( !code ) - return blargg_ok; - - while ( codes->str && codes->code != code ) - codes++; - - if ( !codes->str ) - return blargg_err_generic; - - return codes->str; -} diff --git a/snesreader/fex/blargg_errors.h b/snesreader/fex/blargg_errors.h deleted file mode 100644 index 9c5206d5..00000000 --- a/snesreader/fex/blargg_errors.h +++ /dev/null @@ -1,80 +0,0 @@ -// Error strings and conversion functions - -// File_Extractor 1.0.0 -#ifndef BLARGG_ERRORS_H -#define BLARGG_ERRORS_H - -#ifndef BLARGG_COMMON_H - #include "blargg_common.h" -#endif - -typedef const char blargg_err_def_t []; - -// Basic errors -extern blargg_err_def_t blargg_err_generic; -extern blargg_err_def_t blargg_err_memory; -extern blargg_err_def_t blargg_err_caller; -extern blargg_err_def_t blargg_err_internal; -extern blargg_err_def_t blargg_err_limitation; - -// File low-level -extern blargg_err_def_t blargg_err_file_missing; // not found -extern blargg_err_def_t blargg_err_file_read; -extern blargg_err_def_t blargg_err_file_write; -extern blargg_err_def_t blargg_err_file_io; -extern blargg_err_def_t blargg_err_file_full; -extern blargg_err_def_t blargg_err_file_eof; - -// File high-level -extern blargg_err_def_t blargg_err_file_type; // wrong file type -extern blargg_err_def_t blargg_err_file_feature; -extern blargg_err_def_t blargg_err_file_corrupt; - -// C string describing error, or "" if err == NULL -const char* blargg_err_str( blargg_err_t err ); - -// True iff error is of given type, or false if err == NULL -bool blargg_is_err_type( blargg_err_t, const char type [] ); - -// Details of error without describing main cause, or "" if err == NULL -const char* blargg_err_details( blargg_err_t err ); - -// Converts error string to integer code using mapping table. Calls blargg_is_err_type() -// for each str and returns code on first match. Returns 0 if err == NULL. -struct blargg_err_to_code_t { - const char* str; - int code; -}; -int blargg_err_to_code( blargg_err_t err, blargg_err_to_code_t const [] ); - -// Converts error code back to string. If code == 0, returns NULL. If not in table, -// returns blargg_err_generic. -blargg_err_t blargg_code_to_err( int code, blargg_err_to_code_t const [] ); - -// Generates error string literal with details of cause -#define BLARGG_ERR( type, str ) (type "; " str) - -// Extra space to make it clear when blargg_err_str() isn't called to get -// printable version of error. At some point, I might prefix error strings -// with a code, to speed conversion to a code. -#define BLARGG_ERR_TYPE( str ) " " str - -// Error types to pass to BLARGG_ERR macro -#define BLARGG_ERR_GENERIC BLARGG_ERR_TYPE( "operation failed" ) -#define BLARGG_ERR_MEMORY BLARGG_ERR_TYPE( "out of memory" ) -#define BLARGG_ERR_CALLER BLARGG_ERR_TYPE( "internal usage bug" ) -#define BLARGG_ERR_INTERNAL BLARGG_ERR_TYPE( "internal bug" ) -#define BLARGG_ERR_LIMITATION BLARGG_ERR_TYPE( "exceeded limitation" ) - -#define BLARGG_ERR_FILE_MISSING BLARGG_ERR_TYPE( "file not found" ) -#define BLARGG_ERR_FILE_READ BLARGG_ERR_TYPE( "couldn't open file" ) -#define BLARGG_ERR_FILE_WRITE BLARGG_ERR_TYPE( "couldn't modify file" ) -#define BLARGG_ERR_FILE_IO BLARGG_ERR_TYPE( "read/write error" ) -#define BLARGG_ERR_FILE_FULL BLARGG_ERR_TYPE( "disk full" ) -#define BLARGG_ERR_FILE_EOF BLARGG_ERR_TYPE( "truncated file" ) - -#define BLARGG_ERR_FILE_TYPE BLARGG_ERR_TYPE( "wrong file type" ) -#define BLARGG_ERR_FILE_FEATURE BLARGG_ERR_TYPE( "unsupported file feature" ) -#define BLARGG_ERR_FILE_CORRUPT BLARGG_ERR_TYPE( "corrupt file" ) - -#endif diff --git a/snesreader/fex/blargg_source.h b/snesreader/fex/blargg_source.h deleted file mode 100644 index 659f34c5..00000000 --- a/snesreader/fex/blargg_source.h +++ /dev/null @@ -1,125 +0,0 @@ -/* Included at the beginning of library source files, AFTER all other #include -lines. Sets up helpful macros and services used in my source code. Since this -is only "active" in my source code, I don't have to worry about polluting the -global namespace with unprefixed names. */ - -// File_Extractor 1.0.0 -#ifndef BLARGG_SOURCE_H -#define BLARGG_SOURCE_H - -#ifndef BLARGG_COMMON_H // optimization only - #include "blargg_common.h" -#endif -#include "blargg_errors.h" - -#include /* memcpy(), memset(), memmove() */ -#include /* offsetof() */ - -/* The following four macros are for debugging only. Some or all might be -defined to do nothing, depending on the circumstances. Described is what -happens when a particular macro is defined to do something. When defined to -do nothing, the macros do NOT evaluate their argument(s). */ - -/* If expr is false, prints file and line number, then aborts program. Meant -for checking internal state and consistency. A failed assertion indicates a bug -in MY code. - -void assert( bool expr ); */ -#include - -/* If expr is false, prints file and line number, then aborts program. Meant -for checking caller-supplied parameters and operations that are outside the -control of the module. A failed requirement probably indicates a bug in YOUR -code. - -void require( bool expr ); */ -#undef require -#define require( expr ) assert( expr ) - -/* Like printf() except output goes to debugging console/file. - -void dprintf( const char format [], ... ); */ -static inline void blargg_dprintf_( const char [], ... ) { } -#undef dprintf -#define dprintf (1) ? (void) 0 : blargg_dprintf_ - -/* If expr is false, prints file and line number to debug console/log, then -continues execution normally. Meant for flagging potential problems or things -that should be looked into, but that aren't serious problems. - -void check( bool expr ); */ -#undef check -#define check( expr ) ((void) 0) - -/* If expr yields non-NULL error string, returns it from current function, -otherwise continues normally. */ -#undef RETURN_ERR -#define RETURN_ERR( expr ) \ - do {\ - blargg_err_t blargg_return_err_ = (expr);\ - if ( blargg_return_err_ )\ - return blargg_return_err_;\ - } while ( 0 ) - -/* If ptr is NULL, returns out-of-memory error, otherwise continues normally. */ -#undef CHECK_ALLOC -#define CHECK_ALLOC( ptr ) \ - do {\ - if ( !(ptr) )\ - return blargg_err_memory;\ - } while ( 0 ) - -/* The usual min/max functions for built-in types. - -template T min( T x, T y ) { return x < y ? x : y; } -template T max( T x, T y ) { return x > y ? x : y; } */ -#define BLARGG_DEF_MIN_MAX( type ) \ - static inline type blargg_min( type x, type y ) { if ( y < x ) x = y; return x; }\ - static inline type blargg_max( type x, type y ) { if ( x < y ) x = y; return x; } - -BLARGG_DEF_MIN_MAX( int ) -BLARGG_DEF_MIN_MAX( unsigned ) -BLARGG_DEF_MIN_MAX( long ) -BLARGG_DEF_MIN_MAX( unsigned long ) -BLARGG_DEF_MIN_MAX( float ) -BLARGG_DEF_MIN_MAX( double ) - -#undef min -#define min blargg_min - -#undef max -#define max blargg_max - -// typedef unsigned char byte; -typedef unsigned char blargg_byte; -#undef byte -#define byte blargg_byte - -#ifndef BLARGG_EXPORT - #if defined (_WIN32) && BLARGG_BUILD_DLL - #define BLARGG_EXPORT __declspec(dllexport) - #elif defined (__GNUC__) - // can always set visibility, even when not building DLL - #define BLARGG_EXPORT __attribute__ ((visibility ("default"))) - #else - #define BLARGG_EXPORT - #endif -#endif - -#if BLARGG_LEGACY - #define BLARGG_CHECK_ALLOC CHECK_ALLOC - #define BLARGG_RETURN_ERR RETURN_ERR -#endif - -// Called after failed operation when overall operation may still complete OK. -// Only used by unit testing framework. -#undef ACK_FAILURE -#define ACK_FAILURE() ((void)0) - -/* BLARGG_SOURCE_BEGIN: If defined, #included, allowing redefition of dprintf etc. -and check */ -#ifdef BLARGG_SOURCE_BEGIN - #include BLARGG_SOURCE_BEGIN -#endif - -#endif diff --git a/snesreader/fex/fex.cpp b/snesreader/fex/fex.cpp deleted file mode 100644 index d0946dd9..00000000 --- a/snesreader/fex/fex.cpp +++ /dev/null @@ -1,323 +0,0 @@ -// File_Extractor 1.0.0. http://www.slack.net/~ant/ - -#include "fex.h" - -#include "File_Extractor.h" -#include "blargg_endian.h" -#include -#include - -/* Copyright (C) 2005-2009 Shay Green. This module is free software; you -can redistribute it and/or modify it under the terms of the GNU Lesser -General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. This -module is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. You should have received a copy of the GNU Lesser General Public -License along with this module; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - -#include "blargg_source.h" - - -//// Types - -BLARGG_EXPORT const fex_type_t* fex_type_list( void ) -{ - static fex_type_t const fex_type_list_ [] = - { - #ifdef FEX_TYPE_LIST - FEX_TYPE_LIST - #else - // Modify blargg_config.h to change type list, NOT this file - fex_7z_type, - fex_gz_type, - #if FEX_ENABLE_RAR - fex_rar_type, - #endif - fex_zip_type, - #endif - fex_bin_type, - NULL - }; - - return fex_type_list_; -} - -BLARGG_EXPORT fex_err_t fex_init( void ) -{ - static bool inited; - if ( !inited ) - { - for ( fex_type_t const* t = fex_type_list(); *t != NULL; ++t ) - { - if ( (*t)->init ) - RETURN_ERR( (*t)->init() ); - } - inited = true; - } - return blargg_ok; -} - -BLARGG_EXPORT const char* fex_identify_header( void const* header ) -{ - unsigned four = get_be32( header ); - switch ( four ) - { - case 0x52457E5E: - case 0x52617221: return ".rar"; - - case 0x377ABCAF: return ".7z"; - - case 0x504B0304: - case 0x504B0506: return ".zip"; - - case 0x53495421: return ".sit"; - case 0x41724301: return ".arc"; - case 0x4D534346: return ".cab"; - case 0x5A4F4F20: return ".zoo"; - } - - unsigned three = four >> 8; - switch ( three ) - { - case 0x425A68: return ".bz2"; - } - - unsigned two = four >> 16; - switch ( two ) - { - case 0x1F8B: return ".gz"; - case 0x60EA: return ".arj"; - } - - unsigned skip_first_two = four & 0xFFFF; - if ( skip_first_two == 0x2D6C ) - return ".lha"; - - return ""; -} - -static int fex_has_extension_( const char str [], const char suffix [], size_t str_len ) -{ - size_t suffix_len = strlen( suffix ); - if ( str_len >= suffix_len ) - { - str += str_len - suffix_len; - while ( *str && tolower( (unsigned char) *str ) == *suffix ) - { - str++; - suffix++; - } - } - return *suffix == 0; -} - -BLARGG_EXPORT int fex_has_extension( const char str [], const char suffix [] ) -{ - return fex_has_extension_( str, suffix, strlen( str ) ); -} - -static int is_archive_extension( const char str [] ) -{ - static const char exts [] [6] = { - ".7z", - ".arc", - ".arj", - ".bz2", - ".cab", - ".dmg", - ".gz", - ".lha", - ".lz", - ".lzh", - ".lzma", - ".lzo", - ".lzx", - ".pea", - ".rar", - ".sit", - ".sitx", - ".tgz", - ".tlz", - ".z", - ".zip", - ".zoo", - "" - }; - - size_t str_len = strlen( str ); - const char (*ext) [6] = exts; - for ( ; **ext; ext++ ) - { - if ( fex_has_extension_( str, *ext, str_len ) ) - return 1; - } - return 0; -} - -BLARGG_EXPORT fex_type_t fex_identify_extension( const char str [] ) -{ - size_t str_len = strlen( str ); - for ( fex_type_t const* types = fex_type_list(); *types; types++ ) - { - if ( fex_has_extension_( str, (*types)->extension, str_len ) ) - { - // Avoid treating known archive type as binary - if ( *(*types)->extension || !is_archive_extension( str ) ) - return *types; - } - } - return NULL; -} - -BLARGG_EXPORT fex_err_t fex_identify_file( fex_type_t* type_out, const char path [] ) -{ - *type_out = NULL; - - fex_type_t type = fex_identify_extension( path ); - - // Unsupported extension? - if ( !type ) - return blargg_ok; // reject - - // Unknown/no extension? - if ( !*(type->extension) ) - { - // Examine header - FEX_FILE_READER in; - RETURN_ERR( in.open( path ) ); - if ( in.remain() >= fex_identify_header_size ) - { - char h [fex_identify_header_size]; - RETURN_ERR( in.read( h, sizeof h ) ); - - type = fex_identify_extension( fex_identify_header( h ) ); - } - } - - *type_out = type; - return blargg_ok; -} - -BLARGG_EXPORT fex_err_t fex_open_type( fex_t** fe_out, const char path [], fex_type_t type ) -{ - *fe_out = NULL; - - if ( !type ) - return blargg_err_file_type; - - fex_t* fe = type->new_fex(); - CHECK_ALLOC( fe ); - - fex_err_t err = fe->open( path ); - if ( err ) - { - delete fe; - return err; - } - - *fe_out = fe; - return blargg_ok; -} - -BLARGG_EXPORT fex_err_t fex_open( fex_t** fe_out, const char path [] ) -{ - *fe_out = NULL; - - fex_type_t type; - RETURN_ERR( fex_identify_file( &type, path ) ); - - return fex_open_type( fe_out, path, type ); -} - - -//// Wide paths - -#if BLARGG_UTF8_PATHS -char* fex_wide_to_path( const wchar_t* wide ) -{ - return blargg_to_utf8( wide ); -} - -void fex_free_path( char* path ) -{ - free( path ); -} -#endif - - -//// Errors - -#define ENTRY( name ) { blargg_err_##name, fex_err_##name } -static blargg_err_to_code_t const fex_codes [] = -{ - ENTRY( generic ), - ENTRY( memory ), - ENTRY( caller ), - ENTRY( internal ), - ENTRY( limitation ), - - ENTRY( file_missing ), - ENTRY( file_read ), - ENTRY( file_io ), - ENTRY( file_eof ), - - ENTRY( file_type ), - ENTRY( file_feature ), - ENTRY( file_corrupt ), - - { 0, -1 } -}; -#undef ENTRY - -static int err_code( fex_err_t err ) -{ - return blargg_err_to_code( err, fex_codes ); -} - -BLARGG_EXPORT int fex_err_code( fex_err_t err ) -{ - int code = err_code( err ); - return (code >= 0 ? code : fex_err_generic); -} - -BLARGG_EXPORT fex_err_t fex_code_to_err( int code ) -{ - return blargg_code_to_err( code, fex_codes ); -} - -BLARGG_EXPORT const char* fex_err_details( fex_err_t err ) -{ - // If we don't have error code assigned, return entire string - return (err_code( err ) >= 0 ? blargg_err_details( err ) : blargg_err_str( err )); -} - - -//// Wrappers - -BLARGG_EXPORT fex_err_t fex_read( fex_t* fe, void* out, int count ) -{ - RETURN_ERR( fe->stat() ); - return fe->reader().read( out, count ); -} - -BLARGG_EXPORT void fex_close ( fex_t* fe ) { delete fe; } -BLARGG_EXPORT fex_type_t fex_type ( const fex_t* fe ) { return fe->type(); } -BLARGG_EXPORT int fex_done ( const fex_t* fe ) { return fe->done(); } -BLARGG_EXPORT const char* fex_name ( const fex_t* fe ) { return fe->name(); } -BLARGG_EXPORT const wchar_t* fex_wname ( const fex_t* fe ) { return fe->wname(); } -BLARGG_EXPORT int fex_size ( const fex_t* fe ) { return fe->size(); } -BLARGG_EXPORT unsigned fex_dos_date ( const fex_t* fe ) { return fe->dos_date(); } -BLARGG_EXPORT unsigned fex_crc32 ( const fex_t* fe ) { return fe->crc32(); } -BLARGG_EXPORT fex_err_t fex_stat ( fex_t* fe ) { return fe->stat(); } -BLARGG_EXPORT fex_err_t fex_next ( fex_t* fe ) { return fe->next(); } -BLARGG_EXPORT fex_err_t fex_rewind ( fex_t* fe ) { return fe->rewind(); } -BLARGG_EXPORT int fex_tell ( const fex_t* fe ) { return fe->tell(); } -BLARGG_EXPORT fex_pos_t fex_tell_arc ( const fex_t* fe ) { return fe->tell_arc(); } -BLARGG_EXPORT fex_err_t fex_seek_arc ( fex_t* fe, fex_pos_t pos ) { return fe->seek_arc( pos ); } -BLARGG_EXPORT const char* fex_type_extension ( fex_type_t t ) { return t->extension; } -BLARGG_EXPORT const char* fex_type_name ( fex_type_t t ) { return t->name; } -BLARGG_EXPORT fex_err_t fex_data ( fex_t* fe, const void** data_out ) { return fe->data( data_out ); } -BLARGG_EXPORT const char* fex_err_str ( fex_err_t err ) { return blargg_err_str( err ); } diff --git a/snesreader/fex/fex.h b/snesreader/fex/fex.h deleted file mode 100644 index f9452771..00000000 --- a/snesreader/fex/fex.h +++ /dev/null @@ -1,206 +0,0 @@ -/** Uniform access to zip, gzip, 7-zip, and RAR compressed archives \file */ - -/* File_Extractor 1.0.0 */ -#ifndef FEX_H -#define FEX_H - -#include - -#ifdef __cplusplus - extern "C" { -#endif - - -/** First parameter of most functions is fex_t*, or const fex_t* if nothing is -changed. Once one of these functions returns an error, the archive should not -be used any further, other than to close it. One exception is -fex_error_file_eof; the archive may still be used after this. */ -typedef struct fex_t fex_t; - -/** Pointer to error, or NULL if function was successful. See error functions -below. */ -#ifndef fex_err_t /* (#ifndef allows better testing of library) */ - typedef const char* fex_err_t; -#endif - - -/**** File types ****/ - -/** Archive file type identifier. Can also hold NULL. */ -typedef const struct fex_type_t_* fex_type_t; - -/** Array of supported types, with NULL at end */ -const fex_type_t* fex_type_list( void ); - -/** Name of this archive type, e.g. "ZIP archive", "file" */ -const char* fex_type_name( fex_type_t ); - -/** Usual file extension for type, e.g. ".zip", ".7z". For binary file type, -returns "", since it can open any file. */ -const char* fex_type_extension( fex_type_t ); - - -/**** Wide-character file paths (Windows only) ****/ - -/** Converts wide-character path to form suitable for use with fex functions. -Only supported when BLARGG_UTF8_PATHS is defined and building on Windows. */ -char* fex_wide_to_path( const wchar_t* wide ); - -/** Frees converted path. OK to pass NULL. Only supported when BLARGG_UTF8_PATHS -is defined and building on Windows */ -void fex_free_path( char* ); - - -/**** Identification ****/ - -/** True if str ends in extension. If extension is "", always returns true. -Converts str to lowercase before comparison, so extension should ALREADY be -lowercase (i.e. pass ".zip", NOT ".ZIP"). */ -int fex_has_extension( const char str [], const char extension [] ); - -/** Determines type based on first fex_identify_header_size bytes of file. -Returns usual file extension this should have (e.g. ".zip", ".gz", etc.). -Returns "" if file header is not recognized. */ -const char* fex_identify_header( const void* header ); -enum { fex_identify_header_size = 16 }; - -/** Determines type based on extension of a file path, or just a lone extension -(must include '.', e.g. ".zip", NOT just "zip"). Returns NULL if extension is -for an unsupported type (e.g. ".lzh"). */ -fex_type_t fex_identify_extension( const char path_or_extension [] ); - -/** Determines type based on filename extension and/or file header. Sets *out -to determined type, or NULL if type is not supported. */ -fex_err_t fex_identify_file( fex_type_t* out, const char path [] ); - -/** Type of an already-opened archive */ -fex_type_t fex_type( const fex_t* ); - - -/**** Open/close ****/ - -/** Initializes static tables used by library. Automatically called by -fex_open(). OK to call more than once. */ -fex_err_t fex_init( void ); - -/** Opens archive and points *out at it. If error, sets *out to NULL. */ -fex_err_t fex_open( fex_t** out, const char path [] ); - -/** Opens archive of specified type and sets *out. Returns error if file is not -of that archive type. If error, sets *out to NULL. */ -fex_err_t fex_open_type( fex_t** out, const char path [], fex_type_t ); - -/** Closes archive and frees memory. OK to pass NULL. */ -void fex_close( fex_t* ); - - -/**** Scanning ****/ - -/** True if at end of archive. Must be called after fex_open() or fex_rewind(), -as an archive might contain no files. */ -int fex_done( const fex_t* ); - -/** Goes to next file in archive. If there are no more files, fex_done() will -now return true. */ -fex_err_t fex_next( fex_t* ); - -/** Goes back to first file in archive, as if it were just opened with -fex_open() */ -fex_err_t fex_rewind( fex_t* ); - -/** Saved position in archive. Can also store zero. */ -typedef int fex_pos_t; - -/** Position of current file in archive. Never returns zero. */ -fex_pos_t fex_tell_arc( const fex_t* ); - -/** Returns to file at previously-saved position */ -fex_err_t fex_seek_arc( fex_t*, fex_pos_t ); - - -/**** Info ****/ - -/** Name of current file */ -const char* fex_name( const fex_t* ); - -/** Wide-character name of current file, or NULL if unavailable */ -const wchar_t* fex_wname( const fex_t* ); - -/** Makes further information available for file */ -fex_err_t fex_stat( fex_t* ); - -/** Size of current file. fex_stat() or fex_data() must have been called. */ -int fex_size( const fex_t* ); - -/** Modification date of current file (MS-DOS format), or 0 if unavailable. -fex_stat() must have been called. */ -unsigned int fex_dos_date( const fex_t* ); - -/** CRC-32 checksum of current file's contents, or 0 if unavailable. Doesn't -require calculation; simply gets it from file's header. fex_stat() must have -been called. */ -unsigned int fex_crc32( const fex_t* ); - - -/**** Extraction ****/ - -/** Reads n bytes from current file. Reading past end of file results in -fex_err_file_eof. */ -fex_err_t fex_read( fex_t*, void* out, int n ); - -/** Number of bytes read from current file */ -int fex_tell( const fex_t* ); - -/** Points *out at current file's data in memory. Pointer is valid until -fex_next(), fex_rewind(), fex_seek_arc(), or fex_close() is called. Pointer -must NOT be freed(); library frees it automatically. If error, sets *out to -NULL. */ -fex_err_t fex_data( fex_t*, const void** out ); - - -/**** Errors ****/ - -/** Error string associated with err. Returns "" if err is NULL. Returns err -unchanged if it isn't a fex_err_t returned by library. */ -const char* fex_err_str( fex_err_t err ); - -/** Details of error beyond main cause, or "" if none or err is NULL. Returns -err unchanged if it isn't a fex_err_t returned by library. */ -const char* fex_err_details( fex_err_t err ); - -/** Numeric code corresponding to err. Returns fex_ok if err is NULL. Returns -fex_err_generic if err isn't a fex_err_t returned by library. */ -int fex_err_code( fex_err_t err ); - -enum { - fex_ok = 0,/**< Successful call. Guaranteed to be zero. */ - fex_err_generic = 0x01,/**< Error of unspecified type */ - fex_err_memory = 0x02,/**< Out of memory */ - fex_err_caller = 0x03,/**< Caller called function with bad args */ - fex_err_internal = 0x04,/**< Internal problem, bug, etc. */ - fex_err_limitation = 0x05,/**< Exceeded program limit */ - - fex_err_file_missing = 0x20,/**< File not found at specified path */ - fex_err_file_read = 0x21,/**< Couldn't open file for reading */ - fex_err_file_io = 0x23,/**< Read/write error */ - fex_err_file_eof = 0x25,/**< Tried to read past end of file */ - - fex_err_file_type = 0x30,/**< File is of wrong type */ - fex_err_file_feature = 0x32,/**< File requires unsupported feature */ - fex_err_file_corrupt = 0x33 /**< File is corrupt */ -}; - -/** fex_err_t corresponding to numeric code. Note that this might not recover -the original fex_err_t before it was converted to a numeric code; in -particular, fex_err_details(fex_code_to_err(code)) will be "" in most cases. */ -fex_err_t fex_code_to_err( int code ); - - -/* Deprecated */ -typedef fex_t File_Extractor; - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/snesreader/filechooser.cpp b/snesreader/filechooser.cpp deleted file mode 100644 index e1f9d8b0..00000000 --- a/snesreader/filechooser.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include "filechooser.moc.hpp" -#include "filechooser.moc" - -//FileChooser is implemented as a modal QWidget instead of a QDialog -//due to a bug in Qt 4.6.0 (QTBUG-7188); which causes the FileChooser -//to not refresh when a QTimer is active from the main application. -string FileChooser::exec() { - if(list.size() == 0) return ""; - if(list.size() == 1) return list[0]; - - listWidget->clear(); - for(unsigned i = 0; i < list.size(); i++) { - listWidget->addItem(list[i]); - } - listWidget->sortItems(Qt::AscendingOrder); - listWidget->setCurrentRow(0); - listWidget->setFocus(); - - name = ""; - setWindowModality(Qt::ApplicationModal); - show(); - while(isVisible()) QApplication::processEvents(); - setWindowModality(Qt::NonModal); - return name; -} - -void FileChooser::load() { - QListWidgetItem *item = listWidget->currentItem(); - if(item) name = item->text().toUtf8().constData(); - close(); -} - -FileChooser::FileChooser() { - setWindowTitle("Select Cartridge To Load"); - setMinimumWidth(480); - setMinimumHeight(320); - - layout = new QVBoxLayout; - setLayout(layout); - - listWidget = new QListWidget; - layout->addWidget(listWidget); - - controlLayout = new QHBoxLayout; - controlLayout->setAlignment(Qt::AlignRight); - layout->addLayout(controlLayout); - - okButton = new QPushButton("Ok"); - controlLayout->addWidget(okButton); - - cancelButton = new QPushButton("Cancel"); - controlLayout->addWidget(cancelButton); - - connect(listWidget, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(load())); - connect(okButton, SIGNAL(released()), this, SLOT(load())); - connect(cancelButton, SIGNAL(released()), this, SLOT(close())); -} diff --git a/snesreader/filechooser.moc.hpp b/snesreader/filechooser.moc.hpp deleted file mode 100644 index e024cab0..00000000 --- a/snesreader/filechooser.moc.hpp +++ /dev/null @@ -1,20 +0,0 @@ -class FileChooser : public QWidget { - Q_OBJECT - -public: - lstring list; - string name; - string exec(); - - FileChooser(); - -private slots: - void load(); - -private: - QVBoxLayout *layout; - QListWidget *listWidget; - QHBoxLayout *controlLayout; - QPushButton *okButton; - QPushButton *cancelButton; -} *fileChooser; diff --git a/snesreader/libjma/7z.h b/snesreader/libjma/7z.h deleted file mode 100644 index 50e1f242..00000000 --- a/snesreader/libjma/7z.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright (C) 2005-2007 NSRT Team ( http://nsrt.edgeemu.com ) -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __7Z_H -#define __7Z_H - -#include "iiostrm.h" - -bool decompress_lzma_7z(ISequentialInStream& in, unsigned in_size, ISequentialOutStream& out, unsigned out_size) throw (); -bool decompress_lzma_7z(const unsigned char* in_data, unsigned in_size, unsigned char* out_data, unsigned out_size) throw (); - -#endif - diff --git a/snesreader/libjma/7zlzma.cpp b/snesreader/libjma/7zlzma.cpp deleted file mode 100644 index b849d8df..00000000 --- a/snesreader/libjma/7zlzma.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright (C) 2005-2007 NSRT Team ( http://nsrt.edgeemu.com ) -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "7z.h" - -#include "lzmadec.h" - -bool decompress_lzma_7z(ISequentialInStream& in, unsigned in_size, ISequentialOutStream& out, unsigned out_size) throw () -{ - try - { - NCompress::NLZMA::CDecoder cc; - - UINT64 in_size_l = in_size; - UINT64 out_size_l = out_size; - - if (cc.ReadCoderProperties(&in) != S_OK) { return(false); } - if (cc.Code(&in, &out, &in_size_l, &out_size_l) != S_OK) { return(false); } - if (out.size_get() != out_size || out.overflow_get()) { return(false); } - - return(true); - } - catch (...) - { - return(false); - } -} - -bool decompress_lzma_7z(const unsigned char* in_data, unsigned int in_size, unsigned char* out_data, unsigned int out_size) throw () -{ - ISequentialInStream_Array in(reinterpret_cast(in_data), in_size); - ISequentialOutStream_Array out(reinterpret_cast(out_data), out_size); - - return(decompress_lzma_7z(in, in_size, out, out_size)); -} diff --git a/snesreader/libjma/aribitcd.h b/snesreader/libjma/aribitcd.h deleted file mode 100644 index 1fb421ba..00000000 --- a/snesreader/libjma/aribitcd.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef __COMPRESSION_BITCODER_H -#define __COMPRESSION_BITCODER_H - -#include "rngcoder.h" - -namespace NCompression { -namespace NArithmetic { - -const int kNumBitModelTotalBits = 11; -const UINT32 kBitModelTotal = (1 << kNumBitModelTotalBits); - -const int kNumMoveReducingBits = 2; - -///////////////////////////// -// CBitModel - -template -class CBitModel -{ -public: - UINT32 m_Probability; - void UpdateModel(UINT32 aSymbol) - { - /* - m_Probability -= (m_Probability + ((aSymbol - 1) & ((1 << aNumMoveBits) - 1))) >> aNumMoveBits; - m_Probability += (1 - aSymbol) << (kNumBitModelTotalBits - aNumMoveBits); - */ - if (aSymbol == 0) - m_Probability += (kBitModelTotal - m_Probability) >> aNumMoveBits; - else - m_Probability -= (m_Probability) >> aNumMoveBits; - } -public: - void Init() { m_Probability = kBitModelTotal / 2; } -}; - -template -class CBitDecoder: public CBitModel -{ -public: - UINT32 Decode(CRangeDecoder *aRangeDecoder) - { - UINT32 aNewBound = (aRangeDecoder->m_Range >> kNumBitModelTotalBits) * CBitModel::m_Probability; - if (aRangeDecoder->m_Code < aNewBound) - { - aRangeDecoder->m_Range = aNewBound; - CBitModel::m_Probability += (kBitModelTotal - CBitModel::m_Probability) >> aNumMoveBits; - if (aRangeDecoder->m_Range < kTopValue) - { - aRangeDecoder->m_Code = (aRangeDecoder->m_Code << 8) | aRangeDecoder->m_Stream.ReadByte(); - aRangeDecoder->m_Range <<= 8; - } - return 0; - } - else - { - aRangeDecoder->m_Range -= aNewBound; - aRangeDecoder->m_Code -= aNewBound; - CBitModel::m_Probability -= (CBitModel::m_Probability) >> aNumMoveBits; - if (aRangeDecoder->m_Range < kTopValue) - { - aRangeDecoder->m_Code = (aRangeDecoder->m_Code << 8) | aRangeDecoder->m_Stream.ReadByte(); - aRangeDecoder->m_Range <<= 8; - } - return 1; - } - } -}; - -}} - - -#endif diff --git a/snesreader/libjma/ariconst.h b/snesreader/libjma/ariconst.h deleted file mode 100644 index 751b2b7c..00000000 --- a/snesreader/libjma/ariconst.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __ARICONST_H -#define __ARICONST_H - -#include "aribitcd.h" - - -typedef NCompression::NArithmetic::CRangeDecoder CMyRangeDecoder; -template class CMyBitDecoder: - public NCompression::NArithmetic::CBitDecoder {}; - -#endif diff --git a/snesreader/libjma/ariprice.h b/snesreader/libjma/ariprice.h deleted file mode 100644 index ccc398e1..00000000 --- a/snesreader/libjma/ariprice.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __COMPRESSION_ARIPRICE_H -#define __COMPRESSION_ARIPRICE_H - -namespace NCompression { -namespace NArithmetic { - -const UINT32 kNumBitPriceShiftBits = 6; -const UINT32 kBitPrice = 1 << kNumBitPriceShiftBits; - -}} - -#endif diff --git a/snesreader/libjma/btreecd.h b/snesreader/libjma/btreecd.h deleted file mode 100644 index acce3664..00000000 --- a/snesreader/libjma/btreecd.h +++ /dev/null @@ -1,126 +0,0 @@ -/* -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __BITTREECODER_H -#define __BITTREECODER_H - -#include "aribitcd.h" -#include "rcdefs.h" - - -////////////////////////// -// CBitTreeDecoder - -template -class CBitTreeDecoder -{ - CMyBitDecoder m_Models[1 << m_NumBitLevels]; -public: - void Init() - { - for(UINT32 i = 1; i < (1 << m_NumBitLevels); i++) - m_Models[i].Init(); - } - UINT32 Decode(CMyRangeDecoder *aRangeDecoder) - { - UINT32 aModelIndex = 1; - RC_INIT_VAR - for(UINT32 aBitIndex = m_NumBitLevels; aBitIndex > 0; aBitIndex--) - { - // aModelIndex = (aModelIndex << 1) + m_Models[aModelIndex].Decode(aRangeDecoder); - RC_GETBIT(aNumMoveBits, m_Models[aModelIndex].m_Probability, aModelIndex) - } - RC_FLUSH_VAR - return aModelIndex - (1 << m_NumBitLevels); - }; -}; - -//////////////////////////////// -// CReverseBitTreeDecoder - -template -class CReverseBitTreeDecoder2 -{ - CMyBitDecoder *m_Models; - UINT32 m_NumBitLevels; -public: - CReverseBitTreeDecoder2(): m_Models(0) { } - ~CReverseBitTreeDecoder2() { delete []m_Models; } - bool Create(UINT32 aNumBitLevels) - { - m_NumBitLevels = aNumBitLevels; - m_Models = new CMyBitDecoder[1 << aNumBitLevels]; - return (m_Models != 0); - } - void Init() - { - UINT32 aNumModels = 1 << m_NumBitLevels; - for(UINT32 i = 1; i < aNumModels; i++) - m_Models[i].Init(); - } - UINT32 Decode(CMyRangeDecoder *aRangeDecoder) - { - UINT32 aModelIndex = 1; - UINT32 aSymbol = 0; - RC_INIT_VAR - for(UINT32 aBitIndex = 0; aBitIndex < m_NumBitLevels; aBitIndex++) - { - // UINT32 aBit = m_Models[aModelIndex].Decode(aRangeDecoder); - // aModelIndex <<= 1; - // aModelIndex += aBit; - // aSymbol |= (aBit << aBitIndex); - RC_GETBIT2(aNumMoveBits, m_Models[aModelIndex].m_Probability, aModelIndex, ; , aSymbol |= (1 << aBitIndex)) - } - RC_FLUSH_VAR - return aSymbol; - }; -}; -//////////////////////////// -// CReverseBitTreeDecoder2 - -template -class CReverseBitTreeDecoder -{ - CMyBitDecoder m_Models[1 << m_NumBitLevels]; -public: - void Init() - { - for(UINT32 i = 1; i < (1 << m_NumBitLevels); i++) - m_Models[i].Init(); - } - UINT32 Decode(CMyRangeDecoder *aRangeDecoder) - { - UINT32 aModelIndex = 1; - UINT32 aSymbol = 0; - RC_INIT_VAR - for(UINT32 aBitIndex = 0; aBitIndex < m_NumBitLevels; aBitIndex++) - { - // UINT32 aBit = m_Models[aModelIndex].Decode(aRangeDecoder); - // aModelIndex <<= 1; - // aModelIndex += aBit; - // aSymbol |= (aBit << aBitIndex); - RC_GETBIT2(aNumMoveBits, m_Models[aModelIndex].m_Probability, aModelIndex, ; , aSymbol |= (1 << aBitIndex)) - } - RC_FLUSH_VAR - return aSymbol; - } -}; - - - -#endif diff --git a/snesreader/libjma/crc32.h b/snesreader/libjma/crc32.h deleted file mode 100644 index 876a7d3d..00000000 --- a/snesreader/libjma/crc32.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright (C) 2004-2007 NSRT Team ( http://nsrt.edgeemu.com ) - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -version 2 as published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef CRC32_H -#define CRC32_H - -namespace CRC32lib -{ - unsigned int CRC32(const unsigned char *, size_t, register unsigned int crc32 = 0xFFFFFFFF); -} - -#endif diff --git a/snesreader/libjma/iiostrm.cpp b/snesreader/libjma/iiostrm.cpp deleted file mode 100644 index f2719969..00000000 --- a/snesreader/libjma/iiostrm.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/* -Copyright (C) 2005-2007 NSRT Team ( http://nsrt.edgeemu.com ) -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "portable.h" -#include "iiostrm.h" -#include "crc32.h" - -HRESULT ISequentialInStream_Array::Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - if (aSize > size) - { - aSize = size; - } - - *aProcessedSize = aSize; - memcpy(aData, data, aSize); - size -= aSize; - data += aSize; - return(S_OK); -} - -HRESULT ISequentialOutStream_Array::Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - if (aSize > size) - { - overflow = true; - aSize = size; - } - - *aProcessedSize = aSize; - memcpy(data, aData, aSize); - size -= aSize; - data += aSize; - total += aSize; - return(S_OK); -} - -HRESULT ISequentialInStream_String::Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - if (aSize > data.size()) - { - aSize = data.size(); - } - - *aProcessedSize = aSize; - memcpy(aData, data.c_str(), aSize); - data.erase(0, aSize); - return(S_OK); -} - -HRESULT ISequentialOutStream_String::Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - *aProcessedSize = aSize; - data.append((const char *)aData, aSize); - total += aSize; - return(S_OK); -} - -HRESULT ISequentialInStream_Istream::Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - data.read((char *)aData, aSize); - *aProcessedSize = data.gcount(); - return(S_OK); -} - -HRESULT ISequentialOutStream_Ostream::Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - *aProcessedSize = aSize; - data.write((char *)aData, aSize); - total += aSize; - return(S_OK); -} - - - -HRESULT ISequentialInStreamCRC32_Array::Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - ISequentialInStream_Array::Read(aData, aSize, aProcessedSize); - crc32 = CRC32lib::CRC32((const unsigned char *)aData, *aProcessedSize, ~crc32); - return(S_OK); -} - -HRESULT ISequentialOutStreamCRC32_Array::Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - ISequentialOutStream_Array::Write(aData, aSize, aProcessedSize); - crc32 = CRC32lib::CRC32((const unsigned char *)aData, *aProcessedSize, ~crc32); - return(S_OK); -} - -HRESULT ISequentialInStreamCRC32_String::Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - ISequentialInStream_String::Read(aData, aSize, aProcessedSize); - crc32 = CRC32lib::CRC32((const unsigned char *)aData, *aProcessedSize, ~crc32); - return(S_OK); -} - -HRESULT ISequentialOutStreamCRC32_String::Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - ISequentialOutStream_String::Write(aData, aSize, aProcessedSize); - crc32 = CRC32lib::CRC32((const unsigned char *)aData, *aProcessedSize, ~crc32); - return(S_OK); -} - -HRESULT ISequentialInStreamCRC32_Istream::Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - ISequentialInStream_Istream::Read(aData, aSize, aProcessedSize); - crc32 = CRC32lib::CRC32((const unsigned char *)aData, *aProcessedSize, ~crc32); - return(S_OK); -} - -HRESULT ISequentialOutStreamCRC32_Ostream::Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize) -{ - ISequentialOutStream_Ostream::Write(aData, aSize, aProcessedSize); - crc32 = CRC32lib::CRC32((const unsigned char *)aData, *aProcessedSize, ~crc32); - return(S_OK); -} diff --git a/snesreader/libjma/iiostrm.h b/snesreader/libjma/iiostrm.h deleted file mode 100644 index a5b2ab20..00000000 --- a/snesreader/libjma/iiostrm.h +++ /dev/null @@ -1,210 +0,0 @@ -/* -Copyright (C) 2005-2007 NSRT Team ( http://nsrt.edgeemu.com ) -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __IINOUTSTREAMS_H -#define __IINOUTSTREAMS_H - -#include -#include - -#include "portable.h" - - -class ISequentialInStream -{ -public: - virtual HRESULT Read(void *, UINT32, UINT32 *) = 0; - - virtual ~ISequentialInStream() {} -}; - - -class ISequentialInStream_Array : public ISequentialInStream -{ - const char *data; - unsigned int size; -public: - ISequentialInStream_Array(const char *Adata, unsigned Asize) : data(Adata), size(Asize) { } - - HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialInStream_Array() {} -}; - -class ISequentialInStream_String : public ISequentialInStream -{ - std::string& data; -public: - ISequentialInStream_String(std::string& Adata) : data(Adata) { } - - HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialInStream_String() {} -}; - -class ISequentialInStream_Istream : public ISequentialInStream -{ - std::istream& data; -public: - ISequentialInStream_Istream(std::istream& Adata) : data(Adata) { } - - HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialInStream_Istream() {} -}; - - - -class ISequentialOutStream -{ -public: - virtual bool overflow_get() const = 0; - virtual unsigned int size_get() const = 0; - - virtual HRESULT Write(const void *, UINT32, UINT32 *) = 0; - - virtual ~ISequentialOutStream() {} -}; - - -class ISequentialOutStream_Array : public ISequentialOutStream -{ - char *data; - unsigned int size; - bool overflow; - unsigned int total; -public: - ISequentialOutStream_Array(char *Adata, unsigned Asize) : data(Adata), size(Asize), overflow(false), total(0) { } - - bool overflow_get() const { return(overflow); } - unsigned int size_get() const { return(total); } - - HRESULT Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialOutStream_Array() {} -}; - -class ISequentialOutStream_String : public ISequentialOutStream -{ - std::string& data; - unsigned int total; -public: - ISequentialOutStream_String(std::string& Adata) : data(Adata), total(0) { } - - bool overflow_get() const { return(false); } - unsigned int size_get() const { return(total); } - - HRESULT Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialOutStream_String() {} -}; - - -class ISequentialOutStream_Ostream : public ISequentialOutStream -{ - std::ostream& data; - unsigned int total; -public: - ISequentialOutStream_Ostream(std::ostream& Adata) : data(Adata), total(0) { } - - bool overflow_get() const { return(false); } - unsigned int size_get() const { return(total); } - - HRESULT Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialOutStream_Ostream() {} -}; - - - -class ISequentialStreamCRC32 -{ -protected: - unsigned int crc32; -public: - ISequentialStreamCRC32() : crc32(0) {} - unsigned int crc32_get() const { return(crc32); } - - virtual ~ISequentialStreamCRC32() {} -}; - - -class ISequentialInStreamCRC32_Array : public ISequentialInStream_Array, public ISequentialStreamCRC32 -{ -public: - ISequentialInStreamCRC32_Array(const char *Adata, unsigned Asize) : ISequentialInStream_Array(Adata, Asize) { } - - HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialInStreamCRC32_Array() {} -}; - -class ISequentialInStreamCRC32_String : public ISequentialInStream_String, public ISequentialStreamCRC32 -{ -public: - ISequentialInStreamCRC32_String(std::string& Adata) : ISequentialInStream_String(Adata) { } - - HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialInStreamCRC32_String() {} -}; - -class ISequentialInStreamCRC32_Istream : public ISequentialInStream_Istream, public ISequentialStreamCRC32 -{ -public: - ISequentialInStreamCRC32_Istream(std::istream& Adata) : ISequentialInStream_Istream(Adata) { } - - HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialInStreamCRC32_Istream() {} -}; - - -class ISequentialOutStreamCRC32_Array : public ISequentialOutStream_Array, public ISequentialStreamCRC32 -{ -public: - ISequentialOutStreamCRC32_Array(char *Adata, unsigned Asize) : ISequentialOutStream_Array(Adata, Asize) { } - - HRESULT Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialOutStreamCRC32_Array() {} -}; - -class ISequentialOutStreamCRC32_String : public ISequentialOutStream_String, public ISequentialStreamCRC32 -{ -public: - ISequentialOutStreamCRC32_String(std::string& Adata) : ISequentialOutStream_String(Adata) { } - - HRESULT Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialOutStreamCRC32_String() {} -}; - - -class ISequentialOutStreamCRC32_Ostream : public ISequentialOutStream_Ostream, public ISequentialStreamCRC32 -{ -public: - ISequentialOutStreamCRC32_Ostream(std::ostream& Adata) : ISequentialOutStream_Ostream(Adata) { } - - HRESULT Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize); - - virtual ~ISequentialOutStreamCRC32_Ostream() {} -}; - -#endif diff --git a/snesreader/libjma/inbyte.cpp b/snesreader/libjma/inbyte.cpp deleted file mode 100644 index c727a4b2..00000000 --- a/snesreader/libjma/inbyte.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright (C) 2005-2007 NSRT Team ( http://nsrt.edgeemu.com ) -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "inbyte.h" - -namespace NStream{ - -CInByte::CInByte(UINT32 aBufferSize): - m_BufferBase(0), - m_BufferSize(aBufferSize) -{ - m_BufferBase = new BYTE[m_BufferSize]; -} - -CInByte::~CInByte() -{ - delete []m_BufferBase; -} - -void CInByte::Init(ISequentialInStream *aStream) -{ - m_Stream = aStream; - m_ProcessedSize = 0; - m_Buffer = m_BufferBase; - m_BufferLimit = m_Buffer; - m_StreamWasExhausted = false; -} - -bool CInByte::ReadBlock() -{ - if (m_StreamWasExhausted) - return false; - m_ProcessedSize += (m_Buffer - m_BufferBase); - UINT32 aNumProcessedBytes; - HRESULT aResult = m_Stream->Read(m_BufferBase, m_BufferSize, &aNumProcessedBytes); - if (aResult != S_OK) - throw aResult; - m_Buffer = m_BufferBase; - m_BufferLimit = m_Buffer + aNumProcessedBytes; - m_StreamWasExhausted = (aNumProcessedBytes == 0); - return (!m_StreamWasExhausted); -} - -} diff --git a/snesreader/libjma/inbyte.h b/snesreader/libjma/inbyte.h deleted file mode 100644 index 53afa171..00000000 --- a/snesreader/libjma/inbyte.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __STREAM_INBYTE_H -#define __STREAM_INBYTE_H - -#include "iiostrm.h" - -namespace NStream { - -class CInByte -{ - UINT64 m_ProcessedSize; - BYTE *m_BufferBase; - UINT32 m_BufferSize; - BYTE *m_Buffer; - BYTE *m_BufferLimit; - ISequentialInStream* m_Stream; - bool m_StreamWasExhausted; - - bool ReadBlock(); - -public: - CInByte(UINT32 aBufferSize = 0x100000); - ~CInByte(); - - void Init(ISequentialInStream *aStream); - - bool ReadByte(BYTE &aByte) - { - if(m_Buffer >= m_BufferLimit) - if(!ReadBlock()) - return false; - aByte = *m_Buffer++; - return true; - } - BYTE ReadByte() - { - if(m_Buffer >= m_BufferLimit) - if(!ReadBlock()) - return 0x0; - return *m_Buffer++; - } - void ReadBytes(void *aData, UINT32 aSize, UINT32 &aProcessedSize) - { - for(aProcessedSize = 0; aProcessedSize < aSize; aProcessedSize++) - if (!ReadByte(((BYTE *)aData)[aProcessedSize])) - return; - } - bool ReadBytes(void *aData, UINT32 aSize) - { - UINT32 aProcessedSize; - ReadBytes(aData, aSize, aProcessedSize); - return (aProcessedSize == aSize); - } - UINT64 GetProcessedSize() const { return m_ProcessedSize + (m_Buffer - m_BufferBase); } -}; - -} - -#endif diff --git a/snesreader/libjma/jcrc32.cpp b/snesreader/libjma/jcrc32.cpp deleted file mode 100644 index e3377d58..00000000 --- a/snesreader/libjma/jcrc32.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* -Copyright (C) 2004-2007 NSRT Team ( http://nsrt.edgeemu.com ) - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -version 2 as published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include - -namespace CRC32lib -{ - //Don't ask questions, this is the PKZip CRC32 table - const unsigned int crc32Table[256] = { - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, - 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, - 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, - 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, - 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, - 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, - 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, - 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, - 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, - 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, - 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, - 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, - 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, - 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, - 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, - 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, - 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, - 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, - 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, - 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, - 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, - 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, - 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, - 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, - 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, - 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, - 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, - 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, - 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, - 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, - 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, - 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, - 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, - 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, - 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, - 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, - 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, - 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, - 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, - 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, - 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, - 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d }; - - - //CRC32 for char arrays - unsigned int CRC32(const unsigned char *array, size_t size, register unsigned int crc32) - { - const unsigned char *end_p = array+size; - for (register const unsigned char *p = array; p < end_p; p++) - { - crc32 = ((crc32 >> 8) & 0x00FFFFFF) ^ crc32Table[(crc32 ^ *p) & 0xFF]; - } - - return(~crc32); - } -} diff --git a/snesreader/libjma/jma.cpp b/snesreader/libjma/jma.cpp deleted file mode 100644 index 87e03228..00000000 --- a/snesreader/libjma/jma.cpp +++ /dev/null @@ -1,550 +0,0 @@ -/* -Copyright (C) 2005-2007 NSRT Team ( http://nsrt.edgeemu.com ) - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -version 2 as published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include -#include "jma.h" -using namespace std; - -#include "portable.h" -#include "7z.h" -#include "crc32.h" - -namespace JMA -{ - const char jma_magic[] = { 'J', 'M', 'A', 0, 'N' }; - const unsigned int jma_header_length = 5; - const unsigned char jma_version = 1; - const unsigned int jma_version_length = 1; - const unsigned int jma_total_header_length = jma_header_length + jma_version_length + UINT_SIZE; - - //Convert DOS/zip/JMA integer time to to time_t - time_t uint_to_time(unsigned short date, unsigned short time) - { - tm formatted_time; - - formatted_time.tm_mday = date & 0x1F; - formatted_time.tm_mon = ((date >> 5) & 0xF) - 1; - formatted_time.tm_year = ((date >> 9) & 0x7f) + 80; - formatted_time.tm_sec = (time & 0x1F) * 2; - formatted_time.tm_min = (time >> 5) & 0x3F; - formatted_time.tm_hour = (time >> 11) & 0x1F; - - return(mktime(&formatted_time)); - } - - - //Retreive the file block, what else? - void jma_open::retrieve_file_block() throw(jma_errors) - { - unsigned char uint_buffer[UINT_SIZE]; - unsigned char ushort_buffer[USHORT_SIZE]; - - //File block size is the last UINT in the file - stream.seekg(-UINT_SIZE,ios::end); - stream.read((char *)uint_buffer, UINT_SIZE); - size_t file_block_size = charp_to_uint(uint_buffer); - - //Currently at the end of the file, so that's the file size - size_t jma_file_size = stream.tellg(); - - //The file block can't be larger than the JMA file without it's header. - //This if can probably be improved - if (file_block_size >= jma_file_size-jma_total_header_length) - { - throw(JMA_BAD_FILE); - } - - //Seek to before file block so we can read the file block - stream.seekg(-((int)file_block_size+UINT_SIZE),ios::end); - - //This is needed if the file block is compressed - stringstream decompressed_file_block; - //Pointer to where to read file block from (file or decompressed buffer) - istream *file_block_stream; - - //Setup file info buffer and byte to read with - jma_file_info file_info; - char byte; - - stream.get(byte); - if (!byte) //If file block is compressed - { - //Compressed size isn't counting the byte we just read or the UINT for compressed size - size_t compressed_size = file_block_size - (1+UINT_SIZE); - - //Read decompressed size / true file block size - stream.read((char *)uint_buffer, UINT_SIZE); - file_block_size = charp_to_uint(uint_buffer); - - //Setup access methods for decompression - ISequentialInStream_Istream compressed_data(stream); - ISequentialOutStream_Ostream decompressed_data(decompressed_file_block); - - //Decompress the data - if (!decompress_lzma_7z(compressed_data, compressed_size, decompressed_data, file_block_size)) - { - throw(JMA_DECOMPRESS_FAILED); - } - - //Go to beginning, setup pointer to buffer - decompressed_file_block.seekg(0, ios::beg); - file_block_stream = &decompressed_file_block; - } - else - { - stream.putback(byte); //Putback byte, byte is part of filename, not compressed indicator - file_block_stream = &stream; - } - - - //Minimum file name length is 2 bytes, a char and a null - //Minimum comment length is 1 byte, a null - //There are currently 2 UINTs and 2 USHORTs per file - while (file_block_size >= 2+1+UINT_SIZE*2+USHORT_SIZE*2) //This does allow for a gap, but that's okay - { - //First stored in the file block is the file name null terminated - file_info.name = ""; - - file_block_stream->get(byte); - while (byte) - { - file_info.name += byte; - file_block_stream->get(byte); - } - - //There must be a file name or the file is bad - if (!file_info.name.length()) - { - throw(JMA_BAD_FILE); - } - - //Same trick as above for the comment - file_info.comment = ""; - - file_block_stream->get(byte); - while (byte) - { - file_info.comment += byte; - file_block_stream->get(byte); - } - - //Next is a UINT representing the file's size - file_block_stream->read((char *)uint_buffer, UINT_SIZE); - file_info.size = charp_to_uint(uint_buffer); - - //Followed by CRC32 - file_block_stream->read((char *)uint_buffer, UINT_SIZE); - file_info.crc32 = charp_to_uint(uint_buffer); - - //Special USHORT representation of file's date - file_block_stream->read((char *)ushort_buffer, USHORT_SIZE); - file_info.date = charp_to_ushort(ushort_buffer); - - //Special USHORT representation of file's time - file_block_stream->read((char *)ushort_buffer, USHORT_SIZE); - file_info.time = charp_to_ushort(ushort_buffer); - - file_info.buffer = 0; //Pointing to null till we decompress files - - files.push_back(file_info); //Put file info into our structure - - //Subtract size of the file info we just read - file_block_size -= file_info.name.length()+file_info.comment.length()+2+UINT_SIZE*2+USHORT_SIZE*2; - } - } - - //Constructor for opening JMA files for reading - jma_open::jma_open(const char *compressed_file_name) throw (jma_errors) - { - decompressed_buffer = 0; - compressed_buffer = 0; - - stream.open(compressed_file_name, ios::in | ios::binary); - if (!stream.is_open()) - { - throw(JMA_NO_OPEN); - } - - //Header is "JMA\0N" - unsigned char header[jma_header_length]; - stream.read((char *)header, jma_header_length); - if (memcmp(jma_magic, header, jma_header_length)) - { - throw(JMA_BAD_FILE); - } - - //Not the cleanest code but logical - stream.read((char *)header, 5); - if (*header <= jma_version) - { - chunk_size = charp_to_uint(header+1); //Chunk size is a UINT that follows version # - retrieve_file_block(); - } - else - { - throw(JMA_UNSUPPORTED_VERSION); - } - } - - //Destructor only has to close the stream if neccesary - jma_open::~jma_open() - { - if (stream.is_open()) - { - stream.close(); - } - } - - //Return a vector containing useful info about the files in the JMA - vector jma_open::get_files_info() - { - vector file_info_vector; - jma_public_file_info file_info; - - for (vector::iterator i = files.begin(); i != files.end(); i++) - { - file_info.name = i->name; - file_info.comment = i->comment; - file_info.size = i->size; - file_info.datetime = uint_to_time(i->date, i->time); - file_info.crc32 = i->crc32; - file_info_vector.push_back(file_info); - } - - return(file_info_vector); - } - - //Skip forward a given number of chunks - void jma_open::chunk_seek(unsigned int chunk_num) throw(jma_errors) - { - //Check the stream is open - if (!stream.is_open()) - { - throw(JMA_NO_OPEN); - } - - //Clear possible errors so the seek will work - stream.clear(); - - //Move forward over header - stream.seekg(jma_total_header_length, ios::beg); - - unsigned char int4_buffer[UINT_SIZE]; - - while (chunk_num--) - { - //Read in size of chunk - stream.read((char *)int4_buffer, UINT_SIZE); - - //Skip chunk plus it's CRC32 - stream.seekg(charp_to_uint(int4_buffer)+UINT_SIZE, ios::cur); - } - } - - //Return a vector of pointers to each file in the JMA, the buffer to hold all the files - //must be initilized outside. - vector jma_open::get_all_files(unsigned char *buffer) throw(jma_errors) - { - //If there's no stream we can't read from it, so exit - if (!stream.is_open()) - { - throw(JMA_NO_OPEN); - } - - //Seek to the first chunk - chunk_seek(0); - - //Set the buffer that decompressed data goes to - decompressed_buffer = buffer; - - //If the JMA is not solid - if (chunk_size) - { - unsigned char int4_buffer[UINT_SIZE]; - size_t size = get_total_size(files); - - //For each chunk in the file... - for (size_t remaining_size = size; remaining_size; remaining_size -= chunk_size) - { - //Read the compressed size - stream.read((char *)int4_buffer, UINT_SIZE); - size_t compressed_size = charp_to_uint(int4_buffer); - - //Allocate memory of the correct size to hold the compressed data in the JMA - //Throw error on failure as that is unrecoverable from - try - { - compressed_buffer = new unsigned char[compressed_size]; - } - catch (bad_alloc xa) - { - throw(JMA_NO_MEM_ALLOC); - } - - //Read all the compressed data in - stream.read((char *)compressed_buffer, compressed_size); - - //Read the expected CRC of compressed data from the file - stream.read((char *)int4_buffer, UINT_SIZE); - - //If it doesn't match, throw error and cleanup memory - if (CRC32lib::CRC32(compressed_buffer, compressed_size) != charp_to_uint(int4_buffer)) - { - delete[] compressed_buffer; - throw(JMA_BAD_FILE); - } - - //Decompress the data, cleanup memory on failure - if (!decompress_lzma_7z(compressed_buffer, compressed_size, - decompressed_buffer+size-remaining_size, - (remaining_size > chunk_size) ? chunk_size : remaining_size)) - { - delete[] compressed_buffer; - throw(JMA_DECOMPRESS_FAILED); - } - delete[] compressed_buffer; - - if (remaining_size <= chunk_size) //If we just decompressed the remainder - { - break; - } - } - } - else //Solidly compressed JMA - { - unsigned char int4_buffer[UINT_SIZE]; - - //Read the size of the compressed data - stream.read((char *)int4_buffer, UINT_SIZE); - size_t compressed_size = charp_to_uint(int4_buffer); - - //Get decompressed size - size_t size = get_total_size(files); - - //Setup access methods for decompression - ISequentialInStream_Istream compressed_data(stream); - ISequentialOutStream_Array decompressed_data(reinterpret_cast(decompressed_buffer), size); - - //Decompress the data - if (!decompress_lzma_7z(compressed_data, compressed_size, decompressed_data, size)) - { - throw(JMA_DECOMPRESS_FAILED); - } - - /* - //Allocate memory of the right size to hold the compressed data in the JMA - try - { - compressed_buffer = new unsigned char[compressed_size]; - } - catch (bad_alloc xa) - { - throw(JMA_NO_MEM_ALLOC); - } - - //Copy the compressed data into memory - stream.read((char *)compressed_buffer, compressed_size); - size_t size = get_total_size(files); - - //Read the CRC of the compressed data - stream.read((char *)int4_buffer, UINT_SIZE); - - //If it doesn't match, complain - if (CRC32lib::CRC32(compressed_buffer, compressed_size) != charp_to_uint(int4_buffer)) - { - delete[] compressed_buffer; - throw(JMA_BAD_FILE); - } - - //Decompress the data - if (!decompress_lzma_7z(compressed_buffer, compressed_size, decompressed_buffer, size)) - { - delete[] compressed_buffer; - throw(JMA_DECOMPRESS_FAILED); - } - delete[] compressed_buffer; - */ - } - - vector file_pointers; - size_t size = 0; - - //For each file, add it's pointer to the vector, size is pointer offset in the buffer - for (vector::iterator i = files.begin(); i != files.end(); i++) - { - i->buffer = decompressed_buffer+size; - file_pointers.push_back(decompressed_buffer+size); - size += i->size; - } - - //Return the vector of pointers - return(file_pointers); - } - - //Extracts the file with a given name found in the archive to the given buffer - void jma_open::extract_file(string& name, unsigned char *buffer) throw(jma_errors) - { - if (!stream.is_open()) - { - throw(JMA_NO_OPEN); - } - - size_t size_to_skip = 0; - size_t our_file_size = 0; - - //Search through the vector of file information - for (vector::iterator i = files.begin(); i != files.end(); i++) - { - if (i->name == name) - { - //Set the variable so we can tell we found it - our_file_size = i->size; - break; - } - - //Keep a running total of size - size_to_skip += i->size; - } - - if (!our_file_size) //File with the specified name was not found in the archive - { - throw(JMA_FILE_NOT_FOUND); - } - - //If the JMA only contains one file, we can skip a lot of overhead - if (files.size() == 1) - { - get_all_files(buffer); - return; - } - - if (chunk_size) //we are using non-solid archive.. - { - unsigned int chunks_to_skip = size_to_skip / chunk_size; - - //skip over requisite number of chunks - chunk_seek(chunks_to_skip); - - //Allocate memory for compressed and decompressed data - unsigned char *comp_buffer = 0, *decomp_buffer = 0; - try - { - //Compressed data size is <= non compressed size - unsigned char *combined_buffer = new unsigned char[chunk_size*2]; - comp_buffer = combined_buffer; - decomp_buffer = combined_buffer+chunk_size; - } - catch (bad_alloc xa) - { - throw(JMA_NO_MEM_ALLOC); - } - - size_t first_chunk_offset = size_to_skip % chunk_size; - unsigned char int4_buffer[UINT_SIZE]; - for (size_t i = 0; i < our_file_size;) - { - //Get size - stream.read((char *)int4_buffer, UINT_SIZE); - size_t compressed_size = charp_to_uint(int4_buffer); - - //Read all the compressed data in - stream.read((char *)comp_buffer, compressed_size); - - //Read the CRC of the compressed data - stream.read((char *)int4_buffer, UINT_SIZE); - - //If it doesn't match, complain - if (CRC32lib::CRC32(comp_buffer, compressed_size) != charp_to_uint(int4_buffer)) - { - delete[] comp_buffer; - throw(JMA_BAD_FILE); - } - - //Decompress chunk - if (!decompress_lzma_7z(comp_buffer, compressed_size, decomp_buffer, chunk_size)) - { - delete[] comp_buffer; - throw(JMA_DECOMPRESS_FAILED); - } - - size_t copy_amount = our_file_size-i > chunk_size-first_chunk_offset ? chunk_size-first_chunk_offset : our_file_size-i; - - memcpy(buffer+i, decomp_buffer+first_chunk_offset, copy_amount); - first_chunk_offset = 0; //Set to zero since this is only for the first iteration - i += copy_amount; - } - delete[] comp_buffer; - } - else //Solid JMA - { - unsigned char *decomp_buffer = 0; - try - { - decomp_buffer = new unsigned char[get_total_size(files)]; - } - catch (bad_alloc xa) - { - throw(JMA_NO_MEM_ALLOC); - } - - get_all_files(decomp_buffer); - - memcpy(buffer, decomp_buffer+size_to_skip, our_file_size); - - delete[] decomp_buffer; - } - } - - bool jma_open::is_solid() - { - return(chunk_size ? false : true); - } - - const char *jma_error_text(jma_errors error) - { - switch (error) - { - case JMA_NO_CREATE: - return("JMA could not be created"); - - case JMA_NO_MEM_ALLOC: - return("Memory for JMA could be allocated"); - - case JMA_NO_OPEN: - return("JMA could not be opened"); - - case JMA_BAD_FILE: - return("Invalid/Corrupt JMA"); - - case JMA_UNSUPPORTED_VERSION: - return("JMA version not supported"); - - case JMA_COMPRESS_FAILED: - return("JMA compression failed"); - - case JMA_DECOMPRESS_FAILED: - return("JMA decompression failed"); - - case JMA_FILE_NOT_FOUND: - return("File not found in JMA"); - } - return("Unknown error"); - } - -} - - diff --git a/snesreader/libjma/jma.h b/snesreader/libjma/jma.h deleted file mode 100644 index 2aaa5ca1..00000000 --- a/snesreader/libjma/jma.h +++ /dev/null @@ -1,88 +0,0 @@ -/* -Copyright (C) 2005-2007 NSRT Team ( http://nsrt.edgeemu.com ) - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -version 2 as published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef JMA_H -#define JMA_H - -#include -#include -#include -#include - -namespace JMA -{ - enum jma_errors { JMA_NO_CREATE, JMA_NO_MEM_ALLOC, JMA_NO_OPEN, JMA_BAD_FILE, - JMA_UNSUPPORTED_VERSION, JMA_COMPRESS_FAILED, JMA_DECOMPRESS_FAILED, - JMA_FILE_NOT_FOUND }; - - struct jma_file_info_base - { - std::string name; - std::string comment; - size_t size; - unsigned int crc32; - }; - - struct jma_public_file_info : jma_file_info_base - { - time_t datetime; - }; - - struct jma_file_info : jma_file_info_base - { - unsigned short date; - unsigned short time; - const unsigned char *buffer; - }; - - template - inline size_t get_total_size(std::vector& files) - { - size_t size = 0; - for (typename std::vector::iterator i = files.begin(); i != files.end(); i++) - { - size += i->size; //We do have a problem if this wraps around - } - - return(size); - } - - class jma_open - { - public: - jma_open(const char *) throw(jma_errors); - ~jma_open(); - - std::vector get_files_info(); - std::vector get_all_files(unsigned char *) throw(jma_errors); - void extract_file(std::string& name, unsigned char *) throw(jma_errors); - bool is_solid(); - - private: - std::ifstream stream; - std::vector files; - size_t chunk_size; - unsigned char *decompressed_buffer; - unsigned char *compressed_buffer; - - void chunk_seek(unsigned int) throw(jma_errors); - void retrieve_file_block() throw(jma_errors); - }; - - const char *jma_error_text(jma_errors); -} -#endif diff --git a/snesreader/libjma/lencoder.h b/snesreader/libjma/lencoder.h deleted file mode 100644 index 6f30e478..00000000 --- a/snesreader/libjma/lencoder.h +++ /dev/null @@ -1,93 +0,0 @@ -/* -Copyright (C) 2005-2007 NSRT Team ( http://nsrt.edgeemu.com ) -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __LENCODER_H -#define __LENCODER_H - -#include "btreecd.h" - -namespace NLength { - -const UINT32 kNumPosStatesBitsMax = 4; -const int kNumPosStatesMax = (1 << kNumPosStatesBitsMax); - - -const int kNumPosStatesBitsEncodingMax = 4; -const int kNumPosStatesEncodingMax = (1 << kNumPosStatesBitsEncodingMax); - - -const int kNumMoveBits = 5; - -const int kNumLenBits = 3; -const int kNumLowSymbols = 1 << kNumLenBits; -const int kNumMidBits = 3; -const int kNumMidSymbols = 1 << kNumMidBits; - -const int kNumHighBits = 8; - -const int kNumSymbolsTotal = kNumLowSymbols + kNumMidSymbols + (1 << kNumHighBits); - -const int kNumSpecSymbols = kNumLowSymbols + kNumMidSymbols; - -class CDecoder -{ - CMyBitDecoder m_Choice; - CBitTreeDecoder m_LowCoder[kNumPosStatesMax]; - CMyBitDecoder m_Choice2; - CBitTreeDecoder m_MidCoder[kNumPosStatesMax]; - CBitTreeDecoder m_HighCoder; - UINT32 m_NumPosStates; -public: - void Create(UINT32 aNumPosStates) - { m_NumPosStates = aNumPosStates; } - void Init() - { - m_Choice.Init(); - for (UINT32 aPosState = 0; aPosState < m_NumPosStates; aPosState++) - { - m_LowCoder[aPosState].Init(); - m_MidCoder[aPosState].Init(); - } - m_Choice2.Init(); - m_HighCoder.Init(); - } - UINT32 Decode(CMyRangeDecoder *aRangeDecoder, UINT32 aPosState) - { - if(m_Choice.Decode(aRangeDecoder) == 0) - return m_LowCoder[aPosState].Decode(aRangeDecoder); - else - { - UINT32 aSymbol = kNumLowSymbols; - if(m_Choice2.Decode(aRangeDecoder) == 0) - aSymbol += m_MidCoder[aPosState].Decode(aRangeDecoder); - else - { - aSymbol += kNumMidSymbols; - aSymbol += m_HighCoder.Decode(aRangeDecoder); - } - return aSymbol; - } - } - -}; - -} - - -#endif diff --git a/snesreader/libjma/litcoder.h b/snesreader/libjma/litcoder.h deleted file mode 100644 index 639d6c55..00000000 --- a/snesreader/libjma/litcoder.h +++ /dev/null @@ -1,122 +0,0 @@ -/* -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __LITERALCODER_H -#define __LITERALCODER_H - -#include "aribitcd.h" -#include "rcdefs.h" - -namespace NLiteral { - -const int kNumMoveBits = 5; - -class CDecoder2 -{ - CMyBitDecoder m_Decoders[3][1 << 8]; -public: - void Init() - { - for (int i = 0; i < 3; i++) - for (int j = 1; j < (1 << 8); j++) - m_Decoders[i][j].Init(); - } - - BYTE DecodeNormal(CMyRangeDecoder *aRangeDecoder) - { - UINT32 aSymbol = 1; - RC_INIT_VAR - do - { - // aSymbol = (aSymbol << 1) | m_Decoders[0][aSymbol].Decode(aRangeDecoder); - RC_GETBIT(kNumMoveBits, m_Decoders[0][aSymbol].m_Probability, aSymbol) - } - while (aSymbol < 0x100); - RC_FLUSH_VAR - return aSymbol; - } - - BYTE DecodeWithMatchByte(CMyRangeDecoder *aRangeDecoder, BYTE aMatchByte) - { - UINT32 aSymbol = 1; - RC_INIT_VAR - do - { - UINT32 aMatchBit = (aMatchByte >> 7) & 1; - aMatchByte <<= 1; - // UINT32 aBit = m_Decoders[1 + aMatchBit][aSymbol].Decode(aRangeDecoder); - // aSymbol = (aSymbol << 1) | aBit; - UINT32 aBit; - RC_GETBIT2(kNumMoveBits, m_Decoders[1 + aMatchBit][aSymbol].m_Probability, aSymbol, - aBit = 0, aBit = 1) - if (aMatchBit != aBit) - { - while (aSymbol < 0x100) - { - // aSymbol = (aSymbol << 1) | m_Decoders[0][aSymbol].Decode(aRangeDecoder); - RC_GETBIT(kNumMoveBits, m_Decoders[0][aSymbol].m_Probability, aSymbol) - } - break; - } - } - while (aSymbol < 0x100); - RC_FLUSH_VAR - return aSymbol; - } -}; - -class CDecoder -{ - CDecoder2 *m_Coders; - UINT32 m_NumPrevBits; - UINT32 m_NumPosBits; - UINT32 m_PosMask; -public: - CDecoder(): m_Coders(0) {} - ~CDecoder() { Free(); } - void Free() - { - delete []m_Coders; - m_Coders = 0; - } - void Create(UINT32 aNumPosBits, UINT32 aNumPrevBits) - { - Free(); - m_NumPosBits = aNumPosBits; - m_PosMask = (1 << aNumPosBits) - 1; - m_NumPrevBits = aNumPrevBits; - UINT32 aNumStates = 1 << (m_NumPrevBits + m_NumPosBits); - m_Coders = new CDecoder2[aNumStates]; - } - void Init() - { - UINT32 aNumStates = 1 << (m_NumPrevBits + m_NumPosBits); - for (UINT32 i = 0; i < aNumStates; i++) - m_Coders[i].Init(); - } - UINT32 GetState(UINT32 aPos, BYTE aPrevByte) const - { return ((aPos & m_PosMask) << m_NumPrevBits) + (aPrevByte >> (8 - m_NumPrevBits)); } - BYTE DecodeNormal(CMyRangeDecoder *aRangeDecoder, UINT32 aPos, BYTE aPrevByte) - { return m_Coders[GetState(aPos, aPrevByte)].DecodeNormal(aRangeDecoder); } - BYTE DecodeWithMatchByte(CMyRangeDecoder *aRangeDecoder, UINT32 aPos, BYTE aPrevByte, BYTE aMatchByte) - { return m_Coders[GetState(aPos, aPrevByte)].DecodeWithMatchByte(aRangeDecoder, aMatchByte); } -}; - -} - -#endif diff --git a/snesreader/libjma/lzma.cpp b/snesreader/libjma/lzma.cpp deleted file mode 100644 index d020ed27..00000000 --- a/snesreader/libjma/lzma.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/* -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "lzma.h" - -namespace NCompress { -namespace NLZMA { - -UINT32 kDistStart[kDistTableSizeMax]; - -static class CConstInit -{ -public: - CConstInit() - { - UINT32 aStartValue = 0; - int i; - for (i = 0; i < kDistTableSizeMax; i++) - { - kDistStart[i] = aStartValue; - aStartValue += (1 << kDistDirectBits[i]); - } - } -} g_ConstInit; - -}} diff --git a/snesreader/libjma/lzma.h b/snesreader/libjma/lzma.h deleted file mode 100644 index 949b70b3..00000000 --- a/snesreader/libjma/lzma.h +++ /dev/null @@ -1,124 +0,0 @@ -/* -Copyright (C) 2005-2007 NSRT Team ( http://nsrt.edgeemu.com ) -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "lencoder.h" - -#ifndef __LZMA_H -#define __LZMA_H - -namespace NCompress { -namespace NLZMA { - -const UINT32 kNumRepDistances = 4; - -const BYTE kNumStates = 12; - -const BYTE kLiteralNextStates[kNumStates] = {0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5}; -const BYTE kMatchNextStates[kNumStates] = {7, 7, 7, 7, 7, 7, 7, 10, 10, 10, 10, 10}; -const BYTE kRepNextStates[kNumStates] = {8, 8, 8, 8, 8, 8, 8, 11, 11, 11, 11, 11}; -const BYTE kShortRepNextStates[kNumStates]= {9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11}; - -class CState -{ -public: - BYTE m_Index; - void Init() - { m_Index = 0; } - void UpdateChar() - { m_Index = kLiteralNextStates[m_Index]; } - void UpdateMatch() - { m_Index = kMatchNextStates[m_Index]; } - void UpdateRep() - { m_Index = kRepNextStates[m_Index]; } - void UpdateShortRep() - { m_Index = kShortRepNextStates[m_Index]; } -}; - -class CBaseCoder -{ -protected: - CState m_State; - BYTE m_PreviousByte; - bool m_PeviousIsMatch; - UINT32 m_RepDistances[kNumRepDistances]; - void Init() - { - m_State.Init(); - m_PreviousByte = 0; - m_PeviousIsMatch = false; - for(UINT32 i = 0 ; i < kNumRepDistances; i++) - m_RepDistances[i] = 0; - } -}; - -const int kNumPosSlotBits = 6; -const int kDicLogSizeMax = 28; -const int kDistTableSizeMax = kDicLogSizeMax * 2; - -extern UINT32 kDistStart[kDistTableSizeMax]; -const BYTE kDistDirectBits[kDistTableSizeMax] = -{ - 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, - 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, - 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26 -}; - -const UINT32 kNumLenToPosStates = 4; -inline UINT32 GetLenToPosState(UINT32 aLen) -{ - aLen -= 2; - if (aLen < kNumLenToPosStates) - return aLen; - return kNumLenToPosStates - 1; -} - -const int kMatchMinLen = 2; - -const int kMatchMaxLen = kMatchMinLen + NLength::kNumSymbolsTotal - 1; - -const int kNumAlignBits = 4; -const int kAlignTableSize = 1 << kNumAlignBits; -const UINT32 kAlignMask = (kAlignTableSize - 1); - -const int kStartPosModelIndex = 4; -const int kEndPosModelIndex = 14; -const int kNumPosModels = kEndPosModelIndex - kStartPosModelIndex; - -const int kNumFullDistances = 1 << (kEndPosModelIndex / 2); - - -const int kMainChoiceLiteralIndex = 0; -const int kMainChoiceMatchIndex = 1; - -const int kMatchChoiceDistanceIndex= 0; -const int kMatchChoiceRepetitionIndex = 1; - -const int kNumMoveBitsForMainChoice = 5; -const int kNumMoveBitsForPosCoders = 5; - -const int kNumMoveBitsForAlignCoders = 5; - -const int kNumMoveBitsForPosSlotCoder = 5; - -const int kNumLitPosStatesBitsEncodingMax = 4; -const int kNumLitContextBitsMax = 8; - -}} - -#endif diff --git a/snesreader/libjma/lzmadec.h b/snesreader/libjma/lzmadec.h deleted file mode 100644 index bb91912e..00000000 --- a/snesreader/libjma/lzmadec.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __LZARITHMETIC_DECODER_H -#define __LZARITHMETIC_DECODER_H - -#include "winout.h" -#include "lzma.h" -#include "lencoder.h" -#include "litcoder.h" - -namespace NCompress { -namespace NLZMA { - -typedef CMyBitDecoder CMyBitDecoder2; - -class CDecoder -{ - NStream::NWindow::COut m_OutWindowStream; - CMyRangeDecoder m_RangeDecoder; - - CMyBitDecoder2 m_MainChoiceDecoders[kNumStates][NLength::kNumPosStatesMax]; - CMyBitDecoder2 m_MatchChoiceDecoders[kNumStates]; - CMyBitDecoder2 m_MatchRepChoiceDecoders[kNumStates]; - CMyBitDecoder2 m_MatchRep1ChoiceDecoders[kNumStates]; - CMyBitDecoder2 m_MatchRep2ChoiceDecoders[kNumStates]; - CMyBitDecoder2 m_MatchRepShortChoiceDecoders[kNumStates][NLength::kNumPosStatesMax]; - - CBitTreeDecoder m_PosSlotDecoder[kNumLenToPosStates]; - - CReverseBitTreeDecoder2 m_PosDecoders[kNumPosModels]; - CReverseBitTreeDecoder m_PosAlignDecoder; - // CBitTreeDecoder2 m_PosDecoders[kNumPosModels]; - // CBitTreeDecoder m_PosAlignDecoder; - - NLength::CDecoder m_LenDecoder; - NLength::CDecoder m_RepMatchLenDecoder; - - NLiteral::CDecoder m_LiteralDecoder; - - UINT32 m_DictionarySize; - - UINT32 m_PosStateMask; - - HRESULT Create(); - - HRESULT Init(ISequentialInStream *anInStream, ISequentialOutStream *anOutStream); - - HRESULT Flush() { return m_OutWindowStream.Flush(); } - - HRESULT CodeReal(ISequentialInStream *anInStream, ISequentialOutStream *anOutStream, const UINT64 *anInSize, const UINT64 *anOutSize); - -public: - - CDecoder(); - - HRESULT Code(ISequentialInStream *anInStream, ISequentialOutStream *anOutStream, const UINT64 *anInSize, const UINT64 *anOutSize); - HRESULT ReadCoderProperties(ISequentialInStream *anInStream); - - HRESULT SetDictionarySize(UINT32 aDictionarySize); - HRESULT SetLiteralProperties(UINT32 aLiteralPosStateBits, UINT32 aLiteralContextBits); - HRESULT SetPosBitsProperties(UINT32 aNumPosStateBits); -}; - -}} - -#endif diff --git a/snesreader/libjma/lzmadecode.cpp b/snesreader/libjma/lzmadecode.cpp deleted file mode 100644 index ad6b5709..00000000 --- a/snesreader/libjma/lzmadecode.cpp +++ /dev/null @@ -1,298 +0,0 @@ -/* -Copyright (C) 2005-2007 NSRT Team ( http://nsrt.edgeemu.com ) -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "portable.h" -#include "lzmadec.h" - -#define RETURN_E_OUTOFMEMORY_IF_FALSE(x) { if (!(x)) return E_OUTOFMEMORY; } - -namespace NCompress { -namespace NLZMA { - -HRESULT CDecoder::SetDictionarySize(UINT32 aDictionarySize) -{ - if (aDictionarySize > (1 << kDicLogSizeMax)) - return E_INVALIDARG; - - UINT32 aWindowReservSize = MyMax(aDictionarySize, UINT32(1 << 21)); - - if (m_DictionarySize != aDictionarySize) - { - m_OutWindowStream.Create(aDictionarySize, kMatchMaxLen, aWindowReservSize); - m_DictionarySize = aDictionarySize; - } - return S_OK; -} - -HRESULT CDecoder::SetLiteralProperties( - UINT32 aLiteralPosStateBits, UINT32 aLiteralContextBits) -{ - if (aLiteralPosStateBits > 8) - return E_INVALIDARG; - if (aLiteralContextBits > 8) - return E_INVALIDARG; - m_LiteralDecoder.Create(aLiteralPosStateBits, aLiteralContextBits); - return S_OK; -} - -HRESULT CDecoder::SetPosBitsProperties(UINT32 aNumPosStateBits) -{ - if (aNumPosStateBits > NLength::kNumPosStatesBitsMax) - return E_INVALIDARG; - UINT32 aNumPosStates = 1 << aNumPosStateBits; - m_LenDecoder.Create(aNumPosStates); - m_RepMatchLenDecoder.Create(aNumPosStates); - m_PosStateMask = aNumPosStates - 1; - return S_OK; -} - -CDecoder::CDecoder(): - m_DictionarySize((UINT32)-1) -{ - Create(); -} - -HRESULT CDecoder::Create() -{ - for(int i = 0; i < kNumPosModels; i++) - { - RETURN_E_OUTOFMEMORY_IF_FALSE( - m_PosDecoders[i].Create(kDistDirectBits[kStartPosModelIndex + i])); - } - return S_OK; -} - - -HRESULT CDecoder::Init(ISequentialInStream *anInStream, - ISequentialOutStream *anOutStream) -{ - m_RangeDecoder.Init(anInStream); - - m_OutWindowStream.Init(anOutStream); - - int i; - for(i = 0; i < kNumStates; i++) - { - for (UINT32 j = 0; j <= m_PosStateMask; j++) - { - m_MainChoiceDecoders[i][j].Init(); - m_MatchRepShortChoiceDecoders[i][j].Init(); - } - m_MatchChoiceDecoders[i].Init(); - m_MatchRepChoiceDecoders[i].Init(); - m_MatchRep1ChoiceDecoders[i].Init(); - m_MatchRep2ChoiceDecoders[i].Init(); - } - - m_LiteralDecoder.Init(); - - // m_RepMatchLenDecoder.Init(); - - for (i = 0; (UINT32) i < kNumLenToPosStates; i++) - m_PosSlotDecoder[i].Init(); - - for(i = 0; i < kNumPosModels; i++) - m_PosDecoders[i].Init(); - - m_LenDecoder.Init(); - m_RepMatchLenDecoder.Init(); - - m_PosAlignDecoder.Init(); - return S_OK; - -} - -HRESULT CDecoder::CodeReal(ISequentialInStream *anInStream, - ISequentialOutStream *anOutStream, - const UINT64 *anInSize, const UINT64 *anOutSize) -{ - if (anOutSize == NULL) - return E_INVALIDARG; - - Init(anInStream, anOutStream); - - CState aState; - aState.Init(); - bool aPeviousIsMatch = false; - BYTE aPreviousByte = 0; - UINT32 aRepDistances[kNumRepDistances]; - for(UINT32 i = 0 ; i < kNumRepDistances; i++) - aRepDistances[i] = 0; - - UINT64 aNowPos64 = 0; - UINT64 aSize = *anOutSize; - while(aNowPos64 < aSize) - { - UINT64 aNext = MyMin(aNowPos64 + (1 << 18), aSize); - while(aNowPos64 < aNext) - { - UINT32 aPosState = UINT32(aNowPos64) & m_PosStateMask; - if (m_MainChoiceDecoders[aState.m_Index][aPosState].Decode(&m_RangeDecoder) == (UINT32) kMainChoiceLiteralIndex) - { - // aCounts[0]++; - aState.UpdateChar(); - if(aPeviousIsMatch) - { - BYTE aMatchByte = m_OutWindowStream.GetOneByte(0 - aRepDistances[0] - 1); - aPreviousByte = m_LiteralDecoder.DecodeWithMatchByte(&m_RangeDecoder, - UINT32(aNowPos64), aPreviousByte, aMatchByte); - aPeviousIsMatch = false; - } - else - aPreviousByte = m_LiteralDecoder.DecodeNormal(&m_RangeDecoder, - UINT32(aNowPos64), aPreviousByte); - m_OutWindowStream.PutOneByte(aPreviousByte); - aNowPos64++; - } - else - { - aPeviousIsMatch = true; - UINT32 aDistance, aLen; - if(m_MatchChoiceDecoders[aState.m_Index].Decode(&m_RangeDecoder) == - (UINT32) kMatchChoiceRepetitionIndex) - { - if(m_MatchRepChoiceDecoders[aState.m_Index].Decode(&m_RangeDecoder) == 0) - { - if(m_MatchRepShortChoiceDecoders[aState.m_Index][aPosState].Decode(&m_RangeDecoder) == 0) - { - aState.UpdateShortRep(); - aPreviousByte = m_OutWindowStream.GetOneByte(0 - aRepDistances[0] - 1); - m_OutWindowStream.PutOneByte(aPreviousByte); - aNowPos64++; - // aCounts[3 + 4]++; - continue; - } - // aCounts[3 + 0]++; - aDistance = aRepDistances[0]; - } - else - { - if(m_MatchRep1ChoiceDecoders[aState.m_Index].Decode(&m_RangeDecoder) == 0) - { - aDistance = aRepDistances[1]; - aRepDistances[1] = aRepDistances[0]; - // aCounts[3 + 1]++; - } - else - { - if (m_MatchRep2ChoiceDecoders[aState.m_Index].Decode(&m_RangeDecoder) == 0) - { - // aCounts[3 + 2]++; - aDistance = aRepDistances[2]; - } - else - { - // aCounts[3 + 3]++; - aDistance = aRepDistances[3]; - aRepDistances[3] = aRepDistances[2]; - } - aRepDistances[2] = aRepDistances[1]; - aRepDistances[1] = aRepDistances[0]; - } - aRepDistances[0] = aDistance; - } - aLen = m_RepMatchLenDecoder.Decode(&m_RangeDecoder, aPosState) + kMatchMinLen; - // aCounts[aLen]++; - aState.UpdateRep(); - } - else - { - aLen = kMatchMinLen + m_LenDecoder.Decode(&m_RangeDecoder, aPosState); - aState.UpdateMatch(); - UINT32 aPosSlot = m_PosSlotDecoder[GetLenToPosState(aLen)].Decode(&m_RangeDecoder); - // aCounts[aPosSlot]++; - if (aPosSlot >= (UINT32) kStartPosModelIndex) - { - aDistance = kDistStart[aPosSlot]; - if (aPosSlot < (UINT32) kEndPosModelIndex) - aDistance += m_PosDecoders[aPosSlot - kStartPosModelIndex].Decode(&m_RangeDecoder); - else - { - aDistance += (m_RangeDecoder.DecodeDirectBits(kDistDirectBits[aPosSlot] - - kNumAlignBits) << kNumAlignBits); - aDistance += m_PosAlignDecoder.Decode(&m_RangeDecoder); - } - } - else - aDistance = aPosSlot; - - - aRepDistances[3] = aRepDistances[2]; - aRepDistances[2] = aRepDistances[1]; - aRepDistances[1] = aRepDistances[0]; - - aRepDistances[0] = aDistance; - // UpdateStat(aLen, aPosSlot); - } - if (aDistance >= aNowPos64) - throw E_INVALIDDATA; - m_OutWindowStream.CopyBackBlock(aDistance, aLen); - aNowPos64 += aLen; - aPreviousByte = m_OutWindowStream.GetOneByte(0 - 1); - } - } - } - return Flush(); -} - -HRESULT CDecoder::Code(ISequentialInStream *anInStream, ISequentialOutStream *anOutStream, const UINT64 *anInSize, const UINT64 *anOutSize) -{ - try { - return CodeReal(anInStream, anOutStream, anInSize, anOutSize); - } catch (HRESULT& e) { - return e; - } catch (...) { - return E_FAIL; - } -} - -HRESULT CDecoder::ReadCoderProperties(ISequentialInStream *anInStream) -{ - UINT32 aNumPosStateBits; - UINT32 aLiteralPosStateBits; - UINT32 aLiteralContextBits; - UINT32 aDictionarySize; - - UINT32 aProcessesedSize; - - BYTE aByte; - RETURN_IF_NOT_S_OK(anInStream->Read(&aByte, sizeof(aByte), &aProcessesedSize)); - if (aProcessesedSize != sizeof(aByte)) - return E_INVALIDARG; - - aLiteralContextBits = aByte % 9; - BYTE aRemainder = aByte / 9; - aLiteralPosStateBits = aRemainder % 5; - aNumPosStateBits = aRemainder / 5; - - UINT8 uint_buffer[UINT_SIZE]; - RETURN_IF_NOT_S_OK(anInStream->Read(uint_buffer, sizeof(aDictionarySize), &aProcessesedSize)); - aDictionarySize = charp_to_uint(uint_buffer); - - if (aProcessesedSize != sizeof(aDictionarySize)) - return E_INVALIDARG; - - RETURN_IF_NOT_S_OK(SetDictionarySize(aDictionarySize)); - RETURN_IF_NOT_S_OK(SetLiteralProperties(aLiteralPosStateBits, aLiteralContextBits)); - RETURN_IF_NOT_S_OK(SetPosBitsProperties(aNumPosStateBits)); - - return S_OK; -} - -}} diff --git a/snesreader/libjma/portable.h b/snesreader/libjma/portable.h deleted file mode 100644 index 12416c7f..00000000 --- a/snesreader/libjma/portable.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -Copyright (C) 2004-2007 NSRT Team ( http://nsrt.edgeemu.com ) -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -version 2 as published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef __PORTABLE_H -#define __PORTABLE_H - -#include - -typedef signed char INT8; -typedef unsigned char UINT8; -typedef short INT16; -typedef unsigned short UINT16; -typedef long INT32; -typedef unsigned long UINT32; -typedef long long INT64; -typedef unsigned long long UINT64; - -typedef UINT8 BYTE; -typedef UINT16 WORD; -typedef UINT32 DWORD; - -typedef unsigned UINT_PTR; - -typedef int BOOL; -#define FALSE 0 -#define TRUE 1 - -#define HRESULT int -#define S_OK 0 -#define E_INVALIDARG -1 -#define E_OUTOFMEMORY -2 -#define E_FAIL -3 -#define E_INTERNAL_ERROR -4 -#define E_INVALIDDATA -5 - -template inline T MyMin(T a, T b) { - return a < b ? a : b; -} - -template inline T MyMax(T a, T b) { - return a > b ? a : b; -} - -#define RETURN_IF_NOT_S_OK(x) { HRESULT __aResult_ = (x); if(__aResult_ != S_OK) return __aResult_; } - - -#define UINT_SIZE (4) -#define USHORT_SIZE (2) - -//Convert an array of 4 bytes back into an integer -inline unsigned int charp_to_uint(const unsigned char buffer[UINT_SIZE]) -{ - unsigned int num = (unsigned int)buffer[3]; - num |= ((unsigned int)buffer[2]) << 8; - num |= ((unsigned int)buffer[1]) << 16; - num |= ((unsigned int)buffer[0]) << 24; - return(num); -} - -//Convert an array of 2 bytes back into a short integer -inline unsigned short charp_to_ushort(const unsigned char buffer[USHORT_SIZE]) -{ - unsigned short num = (unsigned short)buffer[1]; - num |= ((unsigned short)buffer[0]) << 8; - return(num); -} - -#endif diff --git a/snesreader/libjma/rcdefs.h b/snesreader/libjma/rcdefs.h deleted file mode 100644 index 6106b57a..00000000 --- a/snesreader/libjma/rcdefs.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __RCDEFS_H -#define __RCDEFS_H - -#include "aribitcd.h" -#include "ariconst.h" - -#define RC_INIT_VAR \ - UINT32 aRange = aRangeDecoder->m_Range; \ - UINT32 aCode = aRangeDecoder->m_Code; - -#define RC_FLUSH_VAR \ - aRangeDecoder->m_Range = aRange; \ - aRangeDecoder->m_Code = aCode; - -#define RC_NORMALIZE \ - if (aRange < NCompression::NArithmetic::kTopValue) \ - { \ - aCode = (aCode << 8) | aRangeDecoder->m_Stream.ReadByte(); \ - aRange <<= 8; } - -#define RC_GETBIT2(aNumMoveBits, aProb, aModelIndex, Action0, Action1) \ - {UINT32 aNewBound = (aRange >> NCompression::NArithmetic::kNumBitModelTotalBits) * aProb; \ - if (aCode < aNewBound) \ - { \ - Action0; \ - aRange = aNewBound; \ - aProb += (NCompression::NArithmetic::kBitModelTotal - aProb) >> aNumMoveBits; \ - aModelIndex <<= 1; \ - } \ - else \ - { \ - Action1; \ - aRange -= aNewBound; \ - aCode -= aNewBound; \ - aProb -= (aProb) >> aNumMoveBits; \ - aModelIndex = (aModelIndex << 1) + 1; \ - }} \ - RC_NORMALIZE - -#define RC_GETBIT(aNumMoveBits, aProb, aModelIndex) RC_GETBIT2(aNumMoveBits, aProb, aModelIndex, ; , ;) - -#endif diff --git a/snesreader/libjma/rngcoder.h b/snesreader/libjma/rngcoder.h deleted file mode 100644 index 711c2de8..00000000 --- a/snesreader/libjma/rngcoder.h +++ /dev/null @@ -1,143 +0,0 @@ -/* -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __COMPRESSION_RANGECODER_H -#define __COMPRESSION_RANGECODER_H - -#include "inbyte.h" - -namespace NCompression { -namespace NArithmetic { - -const UINT32 kNumTopBits = 24; -const UINT32 kTopValue = (1 << kNumTopBits); - -class CRangeDecoder -{ -public: - NStream::CInByte m_Stream; - UINT32 m_Range; - UINT32 m_Code; - UINT32 m_Word; - void Normalize() - { - while (m_Range < kTopValue) - { - m_Code = (m_Code << 8) | m_Stream.ReadByte(); - m_Range <<= 8; - } - } - - void Init(ISequentialInStream *aStream) - { - m_Stream.Init(aStream); - m_Code = 0; - m_Range = UINT32(-1); - for(int i = 0; i < 5; i++) - m_Code = (m_Code << 8) | m_Stream.ReadByte(); - } - - UINT32 GetThreshold(UINT32 aTotal) - { - return (m_Code) / ( m_Range /= aTotal); - } - - void Decode(UINT32 aStart, UINT32 aSize, UINT32 aTotal) - { - m_Code -= aStart * m_Range; - m_Range *= aSize; - Normalize(); - } - - /* - UINT32 DecodeDirectBitsDiv(UINT32 aNumTotalBits) - { - m_Range >>= aNumTotalBits; - UINT32 aThreshold = m_Code / m_Range; - m_Code -= aThreshold * m_Range; - - Normalize(); - return aThreshold; - } - - UINT32 DecodeDirectBitsDiv2(UINT32 aNumTotalBits) - { - if (aNumTotalBits <= kNumBottomBits) - return DecodeDirectBitsDiv(aNumTotalBits); - UINT32 aResult = DecodeDirectBitsDiv(aNumTotalBits - kNumBottomBits) << kNumBottomBits; - return (aResult | DecodeDirectBitsDiv(kNumBottomBits)); - } - */ - - UINT32 DecodeDirectBits(UINT32 aNumTotalBits) - { - UINT32 aRange = m_Range; - UINT32 aCode = m_Code; - UINT32 aResult = 0; - for (UINT32 i = aNumTotalBits; i > 0; i--) - { - aRange >>= 1; - /* - aResult <<= 1; - if (aCode >= aRange) - { - aCode -= aRange; - aResult |= 1; - } - */ - UINT32 t = (aCode - aRange) >> 31; - aCode -= aRange & (t - 1); - // aRange = aRangeTmp + ((aRange & 1) & (1 - t)); - aResult = (aResult << 1) | (1 - t); - - if (aRange < kTopValue) - { - aCode = (aCode << 8) | m_Stream.ReadByte(); - aRange <<= 8; - } - } - m_Range = aRange; - m_Code = aCode; - return aResult; - } - - UINT32 DecodeBit(UINT32 aSize0, UINT32 aNumTotalBits) - { - UINT32 aNewBound = (m_Range >> aNumTotalBits) * aSize0; - UINT32 aSymbol; - if (m_Code < aNewBound) - { - aSymbol = 0; - m_Range = aNewBound; - } - else - { - aSymbol = 1; - m_Code -= aNewBound; - m_Range -= aNewBound; - } - Normalize(); - return aSymbol; - } - - UINT64 GetProcessedSize() {return m_Stream.GetProcessedSize(); } -}; - -}} - -#endif diff --git a/snesreader/libjma/winout.cpp b/snesreader/libjma/winout.cpp deleted file mode 100644 index 1f33885c..00000000 --- a/snesreader/libjma/winout.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "winout.h" - -namespace NStream { -namespace NWindow { - -void COut::Create(UINT32 aKeepSizeBefore, UINT32 aKeepSizeAfter, UINT32 aKeepSizeReserv) -{ - m_Pos = 0; - m_PosLimit = aKeepSizeReserv + aKeepSizeBefore; - m_KeepSizeBefore = aKeepSizeBefore; - m_KeepSizeAfter = aKeepSizeAfter; - m_KeepSizeReserv = aKeepSizeReserv; - m_StreamPos = 0; - m_MoveFrom = m_KeepSizeReserv; - m_WindowSize = aKeepSizeBefore; - UINT32 aBlockSize = m_KeepSizeBefore + m_KeepSizeAfter + m_KeepSizeReserv; - delete []m_Buffer; - m_Buffer = new BYTE[aBlockSize]; -} - -COut::~COut() -{ - delete []m_Buffer; -} - -void COut::SetWindowSize(UINT32 aWindowSize) -{ - m_WindowSize = aWindowSize; - m_MoveFrom = m_KeepSizeReserv + m_KeepSizeBefore - aWindowSize; -} - -void COut::Init(ISequentialOutStream *aStream, bool aSolid) -{ - m_Stream = aStream; - - if(aSolid) - m_StreamPos = m_Pos; - else - { - m_Pos = 0; - m_PosLimit = m_KeepSizeReserv + m_KeepSizeBefore; - m_StreamPos = 0; - } -} - -HRESULT COut::Flush() -{ - UINT32 aSize = m_Pos - m_StreamPos; - if(aSize == 0) - return S_OK; - UINT32 aProcessedSize; - HRESULT aResult = m_Stream->Write(m_Buffer + m_StreamPos, aSize, &aProcessedSize); - if (aResult != S_OK) - return aResult; - if (aSize != aProcessedSize) - return E_FAIL; - m_StreamPos = m_Pos; - return S_OK; -} - -void COut::MoveBlockBackward() -{ - HRESULT aResult = Flush(); - if (aResult != S_OK) - throw aResult; - memmove(m_Buffer, m_Buffer + m_MoveFrom, m_WindowSize + m_KeepSizeAfter); - m_Pos -= m_MoveFrom; - m_StreamPos -= m_MoveFrom; -} - -}} diff --git a/snesreader/libjma/winout.h b/snesreader/libjma/winout.h deleted file mode 100644 index 38e06bdf..00000000 --- a/snesreader/libjma/winout.h +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright (C) 2002 Andrea Mazzoleni ( http://advancemame.sf.net ) -Copyright (C) 2001-4 Igor Pavlov ( http://www.7-zip.org ) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License version 2.1 as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __STREAM_WINDOWOUT_H -#define __STREAM_WINDOWOUT_H - -#include "iiostrm.h" - -namespace NStream { -namespace NWindow { - -// m_KeepSizeBefore: how mach BYTEs must be in buffer before m_Pos; -// m_KeepSizeAfter: how mach BYTEs must be in buffer after m_Pos; -// m_KeepSizeReserv: how mach BYTEs must be in buffer for Moving Reserv; -// must be >= aKeepSizeAfter; // test it - -class COut -{ - BYTE *m_Buffer; - UINT32 m_Pos; - UINT32 m_PosLimit; - UINT32 m_KeepSizeBefore; - UINT32 m_KeepSizeAfter; - UINT32 m_KeepSizeReserv; - UINT32 m_StreamPos; - - UINT32 m_WindowSize; - UINT32 m_MoveFrom; - - ISequentialOutStream *m_Stream; - - virtual void MoveBlockBackward(); -public: - COut(): m_Buffer(0), m_Stream(0) {} - virtual ~COut(); - void Create(UINT32 aKeepSizeBefore, - UINT32 aKeepSizeAfter, UINT32 aKeepSizeReserv = (1<<17)); - void SetWindowSize(UINT32 aWindowSize); - - void Init(ISequentialOutStream *aStream, bool aSolid = false); - HRESULT Flush(); - - UINT32 GetCurPos() const { return m_Pos; } - const BYTE *GetPointerToCurrentPos() const { return m_Buffer + m_Pos;}; - - void CopyBackBlock(UINT32 aDistance, UINT32 aLen) - { - if (m_Pos >= m_PosLimit) - MoveBlockBackward(); - BYTE *p = m_Buffer + m_Pos; - aDistance++; - for(UINT32 i = 0; i < aLen; i++) - p[i] = p[i - aDistance]; - m_Pos += aLen; - } - - void PutOneByte(BYTE aByte) - { - if (m_Pos >= m_PosLimit) - MoveBlockBackward(); - m_Buffer[m_Pos++] = aByte; - } - - BYTE GetOneByte(UINT32 anIndex) const - { - return m_Buffer[m_Pos + anIndex]; - } - - BYTE *GetBuffer() const { return m_Buffer; } -}; - -}} - -#endif diff --git a/snesreader/micro-bunzip/micro-bunzip.c b/snesreader/micro-bunzip/micro-bunzip.c deleted file mode 100644 index e7f6f7dc..00000000 --- a/snesreader/micro-bunzip/micro-bunzip.c +++ /dev/null @@ -1,515 +0,0 @@ -/* vi: set sw=4 ts=4: */ -/* micro-bunzip, a small, simple bzip2 decompression implementation. - Copyright 2003 by Rob Landley (rob@landley.net). - - Based on bzip2 decompression code by Julian R Seward (jseward@acm.org), - which also acknowledges contributions by Mike Burrows, David Wheeler, - Peter Fenwick, Alistair Moffat, Radford Neal, Ian H. Witten, - Robert Sedgewick, and Jon L. Bentley. - - I hereby release this code under the GNU Library General Public License - (LGPL) version 2, available at http://www.gnu.org/copyleft/lgpl.html -*/ - -#include -#include -#include -#include -#include - -/* Constants for huffman coding */ -#define MAX_GROUPS 6 -#define GROUP_SIZE 50 /* 64 would have been more efficient */ -#define MAX_HUFCODE_BITS 20 /* Longest huffman code allowed */ -#define MAX_SYMBOLS 258 /* 256 literals + RUNA + RUNB */ -#define SYMBOL_RUNA 0 -#define SYMBOL_RUNB 1 - -/* Status return values */ -#define RETVAL_OK 0 -#define RETVAL_LAST_BLOCK (-1) -#define RETVAL_NOT_BZIP_DATA (-2) -#define RETVAL_UNEXPECTED_INPUT_EOF (-3) -#define RETVAL_UNEXPECTED_OUTPUT_EOF (-4) -#define RETVAL_DATA_ERROR (-5) -#define RETVAL_OUT_OF_MEMORY (-6) -#define RETVAL_OBSOLETE_INPUT (-7) - -/* Other housekeeping constants */ -#define IOBUF_SIZE 4096 - -char *bunzip_errors[]={NULL,"Bad file checksum","Not bzip data", - "Unexpected input EOF","Unexpected output EOF","Data error", - "Out of memory","Obsolete (pre 0.9.5) bzip format not supported."}; - -/* This is what we know about each huffman coding group */ -struct group_data { - int limit[MAX_HUFCODE_BITS],base[MAX_HUFCODE_BITS],permute[MAX_SYMBOLS]; - char minLen, maxLen; -}; - -/* Structure holding all the housekeeping data, including IO buffers and - memory that persists between calls to bunzip */ -typedef struct { - /* For I/O error handling */ - jmp_buf jmpbuf; - /* Input stream, input buffer, input bit buffer */ - int in_fd,inbufCount,inbufPos; - unsigned char *inbuf; - unsigned int inbufBitCount, inbufBits; - /* Output buffer */ - char outbuf[IOBUF_SIZE]; - int outbufPos; - /* The CRC values stored in the block header and calculated from the data */ - unsigned int crc32Table[256],headerCRC, dataCRC, totalCRC; - /* Intermediate buffer and its size (in bytes) */ - unsigned int *dbuf, dbufSize; - /* State for interrupting output loop */ - int writePos,writeRun,writeCount,writeCurrent; - - /* These things are a bit too big to go on the stack */ - unsigned char selectors[32768]; /* nSelectors=15 bits */ - struct group_data groups[MAX_GROUPS]; /* huffman coding tables */ -} bunzip_data; - -/* Return the next nnn bits of input. All reads from the compressed input - are done through this function. All reads are big endian */ -static unsigned int get_bits(bunzip_data *bd, char bits_wanted) -{ - unsigned int bits=0; - - /* If we need to get more data from the byte buffer, do so. (Loop getting - one byte at a time to enforce endianness and avoid unaligned access.) */ - while (bd->inbufBitCountinbufPos==bd->inbufCount) { - if(!(bd->inbufCount = read(bd->in_fd, bd->inbuf, IOBUF_SIZE))) - longjmp(bd->jmpbuf,RETVAL_UNEXPECTED_INPUT_EOF); - bd->inbufPos=0; - } - /* Avoid 32-bit overflow (dump bit buffer to top of output) */ - if(bd->inbufBitCount>=24) { - bits=bd->inbufBits&((1<inbufBitCount)-1); - bits_wanted-=bd->inbufBitCount; - bits<<=bits_wanted; - bd->inbufBitCount=0; - } - /* Grab next 8 bits of input from buffer. */ - bd->inbufBits=(bd->inbufBits<<8)|bd->inbuf[bd->inbufPos++]; - bd->inbufBitCount+=8; - } - /* Calculate result */ - bd->inbufBitCount-=bits_wanted; - bits|=(bd->inbufBits>>bd->inbufBitCount)&((1<headerCRC=get_bits(bd,32); - /* Is this the last block (with CRC for file)? */ - if(!strcmp(mtfSymbol,"\x17\x72\x45\x38\x50\x90")) - return RETVAL_LAST_BLOCK; - /* If it's not a valid data block, barf. */ - if(strcmp(mtfSymbol,"\x31\x41\x59\x26\x53\x59")) - return RETVAL_NOT_BZIP_DATA; - - dbuf=bd->dbuf; - dbufSize=bd->dbufSize; - selectors=bd->selectors; - /* We can add support for blockRandomised if anybody complains. There was - some code for this in busybox 1.0.0-pre3, but nobody ever noticed that - it didn't actually work. */ - if(get_bits(bd,1)) return RETVAL_OBSOLETE_INPUT; - if((origPtr=get_bits(bd,24)) > dbufSize) return RETVAL_DATA_ERROR; - /* mapping table: if some byte values are never used (encoding things - like ascii text), the compression code removes the gaps to have fewer - symbols to deal with, and writes a sparse bitfield indicating which - values were present. We make a translation table to convert the symbols - back to the corresponding bytes. */ - t=get_bits(bd, 16); - memset(symToByte,0,256); - symTotal=0; - for (i=0;i<16;i++) { - if(t&(1<<(15-i))) { - k=get_bits(bd,16); - for(j=0;j<16;j++) - if(k&(1<<(15-j))) symToByte[symTotal++]=(16*i)+j; - } - } - /* How many different huffman coding groups does this block use? */ - groupCount=get_bits(bd,3); - if (groupCount<2 || groupCount>MAX_GROUPS) return RETVAL_DATA_ERROR; - /* nSelectors: Every GROUP_SIZE many symbols we select a new huffman coding - group. Read in the group selector list, which is stored as MTF encoded - bit runs. */ - if(!(nSelectors=get_bits(bd, 15))) return RETVAL_DATA_ERROR; - for(i=0; i=groupCount) return RETVAL_DATA_ERROR; - /* Decode MTF to get the next selector */ - uc = mtfSymbol[j]; - memmove(mtfSymbol+1,mtfSymbol,j); - mtfSymbol[0]=selectors[i]=uc; - } - /* Read the huffman coding tables for each group, which code for symTotal - literal symbols, plus two run symbols (RUNA, RUNB) */ - symCount=symTotal+2; - for (j=0; j MAX_HUFCODE_BITS) return RETVAL_DATA_ERROR; - if(!get_bits(bd, 1)) break; - if(!get_bits(bd, 1)) t++; - else t--; - } - length[i] = t; - } - /* Find largest and smallest lengths in this group */ - minLen=maxLen=length[0]; - for(i = 1; i < symCount; i++) { - if(length[i] > maxLen) maxLen = length[i]; - else if(length[i] < minLen) minLen = length[i]; - } - /* Calculate permute[], base[], and limit[] tables from length[]. - * - * permute[] is the lookup table for converting huffman coded symbols - * into decoded symbols. base[] is the amount to subtract from the - * value of a huffman symbol of a given length when using permute[]. - * - * limit[] indicates the largest numerical value a symbol with a given - * number of bits can have. It lets us know when to stop reading. - * - * To use these, keep reading bits until value<=limit[bitcount] or - * you've read over 20 bits (error). Then the decoded symbol - * equals permute[hufcode_value-base[hufcode_bitcount]]. - */ - hufGroup=bd->groups+j; - hufGroup->minLen = minLen; - hufGroup->maxLen = maxLen; - /* Note that minLen can't be smaller than 1, so we adjust the base - and limit array pointers so we're not always wasting the first - entry. We do this again when using them (during symbol decoding).*/ - base=hufGroup->base-1; - limit=hufGroup->limit-1; - /* Calculate permute[] */ - pp = 0; - for(i=minLen;i<=maxLen;i++) - for(t=0;tpermute[pp++] = t; - /* Count cumulative symbols coded for at each bit length */ - for (i=minLen;i<=maxLen;i++) temp[i]=limit[i]=0; - for (i=0;i=nSelectors) return RETVAL_DATA_ERROR; - hufGroup=bd->groups+selectors[selector++]; - base=hufGroup->base-1; - limit=hufGroup->limit-1; - } - /* Read next huffman-coded symbol */ - i = hufGroup->minLen; - j=get_bits(bd, i); - for(;;) { - if (i > hufGroup->maxLen) return RETVAL_DATA_ERROR; - if (j <= limit[i]) break; - i++; - - j = (j << 1) | get_bits(bd,1); - } - /* Huffman decode nextSym (with bounds checking) */ - j-=base[i]; - if (j < 0 || j >= MAX_SYMBOLS) return RETVAL_DATA_ERROR; - nextSym = hufGroup->permute[j]; - /* If this is a repeated run, loop collecting data */ - if (nextSym == SYMBOL_RUNA || nextSym == SYMBOL_RUNB) { - /* If this is the start of a new run, zero out counter */ - if(!runPos) { - runPos = 1; - t = 0; - } - /* Neat trick that saves 1 symbol: instead of or-ing 0 or 1 at - each bit position, add 1 or 2 instead. For example, - 1011 is 1<<0 + 1<<1 + 2<<2. 1010 is 2<<0 + 2<<1 + 1<<2. - You can make any bit pattern that way using 1 less symbol than - the basic or 0/1 method (except all bits 0, which would use no - symbols, but a run of length 0 doesn't mean anything in this - context). Thus space is saved. */ - if (nextSym == SYMBOL_RUNA) t += runPos; - else t += 2*runPos; - runPos <<= 1; - continue; - } - /* When we hit the first non-run symbol after a run, we now know - how many times to repeat the last literal, so append that many - copies to our buffer of decoded symbols (dbuf) now. (The last - literal used is the one at the head of the mtfSymbol array.) */ - if(runPos) { - runPos=0; - if(dbufCount+t>=dbufSize) return RETVAL_DATA_ERROR; - - uc = symToByte[mtfSymbol[0]]; - byteCount[uc] += t; - while(t--) dbuf[dbufCount++]=uc; - } - /* Is this the terminating symbol? */ - if(nextSym>symTotal) break; - /* At this point, the symbol we just decoded indicates a new literal - character. Subtract one to get the position in the MTF array - at which this literal is currently to be found. (Note that the - result can't be -1 or 0, because 0 and 1 are RUNA and RUNB. - Another instance of the first symbol in the mtf array, position 0, - would have been handled as part of a run.) */ - if(dbufCount>=dbufSize) return RETVAL_DATA_ERROR; - i = nextSym - 1; - uc = mtfSymbol[i]; - memmove(mtfSymbol+1,mtfSymbol,i); - mtfSymbol[0] = uc; - uc=symToByte[uc]; - /* We have our literal byte. Save it into dbuf. */ - byteCount[uc]++; - dbuf[dbufCount++] = (unsigned int)uc; - } - /* At this point, we've finished reading huffman-coded symbols and - compressed runs from the input stream. There are dbufCount many of - them in dbuf[]. Now undo the Burrows-Wheeler transform on dbuf. - See http://dogma.net/markn/articles/bwt/bwt.htm - */ - - /* Now we know what dbufCount is, do a better sanity check on origPtr. */ - if (origPtr<0 || origPtr>=dbufCount) return RETVAL_DATA_ERROR; - /* Turn byteCount into cumulative occurrence counts of 0 to n-1. */ - j=0; - for(i=0;i<256;i++) { - k=j+byteCount[i]; - byteCount[i] = j; - j=k; - } - /* Figure out what order dbuf would be in if we sorted it. */ - for (i=0;idataCRC = 0xffffffffL; - /* Decode first byte by hand to initialize "previous" byte. Note that it - doesn't get output, and if the first three characters are identical - it doesn't qualify as a run (hence uc=255, which will either wrap - to 1 or get reset). */ - if(dbufCount) { - bd->writePos=dbuf[origPtr]; - bd->writeCurrent=(unsigned char)(bd->writePos&0xff); - bd->writePos>>=8; - bd->writeRun=-1; - } - bd->writeCount=dbufCount; - - return RETVAL_OK; -} - -/* Flush output buffer to disk */ -extern void flush_bunzip_outbuf(bunzip_data *bd, int out_fd) -{ - if(bd->outbufPos) { - if(write(out_fd, bd->outbuf, bd->outbufPos) != bd->outbufPos) - longjmp(bd->jmpbuf,RETVAL_UNEXPECTED_OUTPUT_EOF); - bd->outbufPos=0; - } -} - - -/* Undo burrows-wheeler transform on intermediate buffer to produce output. - If !len, write up to len bytes of data to buf. Otherwise write to out_fd. - Returns len ? bytes written : RETVAL_OK. Notice all errors negative #'s. */ -extern int write_bunzip_data(bunzip_data *bd, int out_fd, char *outbuf, int len) -{ - unsigned int *dbuf=bd->dbuf; - int count,pos,current, run,copies,outbyte,previous,gotcount=0; - - for(;;) { - /* If last read was short due to end of file, return last block now */ - if(bd->writeCount<0) return bd->writeCount; - /* If we need to refill dbuf, do it. */ - if(!bd->writeCount) { - int i=read_bunzip_data(bd); - if(i) { - if(i==RETVAL_LAST_BLOCK) { - bd->writeCount=i; - return gotcount; - } else return i; - } - } - /* Loop generating output */ - count=bd->writeCount; - pos=bd->writePos; - current=bd->writeCurrent; - run=bd->writeRun; - while(count) { - /* If somebody (like busybox tar) wants a certain number of bytes of - data from memory instead of written to a file, humor them */ - if(len && bd->outbufPos>=len) goto dataus_interruptus; - count--; - /* Follow sequence vector to undo Burrows-Wheeler transform */ - previous=current; - pos=dbuf[pos]; - current=pos&0xff; - pos>>=8; - /* Whenever we see 3 consecutive copies of the same byte, - the 4th is a repeat count */ - if(run++==3) { - copies=current; - outbyte=previous; - current=-1; - } else { - copies=1; - outbyte=current; - } - /* Output bytes to buffer, flushing to file if necessary */ - while(copies--) { - if(bd->outbufPos == IOBUF_SIZE) flush_bunzip_outbuf(bd,out_fd); - bd->outbuf[bd->outbufPos++] = outbyte; - bd->dataCRC = (bd->dataCRC << 8) - ^ bd->crc32Table[(bd->dataCRC >> 24) ^ outbyte]; - } - if(current!=previous) run=0; - } - /* Decompression of this block completed successfully */ - bd->dataCRC=~(bd->dataCRC); - bd->totalCRC=((bd->totalCRC << 1) | (bd->totalCRC >> 31)) ^ bd->dataCRC; - /* If this block had a CRC error, force file level CRC error. */ - if(bd->dataCRC!=bd->headerCRC) { - bd->totalCRC=bd->headerCRC+1; - return RETVAL_LAST_BLOCK; - } -dataus_interruptus: - bd->writeCount=count; - if(len) { - gotcount+=bd->outbufPos; - memcpy(outbuf,bd->outbuf,len); - /* If we got enough data, checkpoint loop state and return */ - if((len-=bd->outbufPos)<1) { - bd->outbufPos-=len; - if(bd->outbufPos) - memmove(bd->outbuf,bd->outbuf+len,bd->outbufPos); - bd->writePos=pos; - bd->writeCurrent=current; - bd->writeRun=run; - return gotcount; - } - } - } -} - -/* Allocate the structure, read file header. If !len, src_fd contains - filehandle to read from. Else inbuf contains data. */ -extern int start_bunzip(bunzip_data **bdp, int src_fd, char *inbuf, int len) -{ - bunzip_data *bd; - unsigned int i,j,c; - - /* Figure out how much data to allocate */ - i=sizeof(bunzip_data); - if(!len) i+=IOBUF_SIZE; - /* Allocate bunzip_data. Most fields initialize to zero. */ - if(!(bd=*bdp=malloc(i))) return RETVAL_OUT_OF_MEMORY; - memset(bd,0,sizeof(bunzip_data)); - if(len) { - bd->inbuf=inbuf; - bd->inbufCount=len; - bd->in_fd=-1; - } else { - bd->inbuf=(char *)(bd+1); - bd->in_fd=src_fd; - } - /* Init the CRC32 table (big endian) */ - for(i=0;i<256;i++) { - c=i<<24; - for(j=8;j;j--) - c=c&0x80000000 ? (c<<1)^0x04c11db7 : (c<<1); - bd->crc32Table[i]=c; - } - /* Setup for I/O error handling via longjmp */ - i=setjmp(bd->jmpbuf); - if(i) return i; - /* Ensure that file starts with "BZh" */ - for(i=0;i<3;i++) if(get_bits(bd,8)!="BZh"[i]) return RETVAL_NOT_BZIP_DATA; - /* Next byte ascii '1'-'9', indicates block size in units of 100k of - uncompressed data. Allocate intermediate buffer for block. */ - i=get_bits(bd,8); - if (i<'1' || i>'9') return RETVAL_NOT_BZIP_DATA; - bd->dbufSize=100000*(i-'0'); - if(!(bd->dbuf=malloc(bd->dbufSize * sizeof(int)))) - return RETVAL_OUT_OF_MEMORY; - return RETVAL_OK; -} - -/* Example usage: decompress src_fd to dst_fd. (Stops at end of bzip data, - not end of file.) */ -extern char *uncompressStream(int src_fd, int dst_fd) -{ - bunzip_data *bd; - int i; - - if(!(i=start_bunzip(&bd,src_fd,0,0))) { - i=write_bunzip_data(bd,dst_fd,0,0); - if(i==RETVAL_LAST_BLOCK && bd->headerCRC==bd->totalCRC) i=RETVAL_OK; - } - flush_bunzip_outbuf(bd,dst_fd); - if(bd->dbuf) free(bd->dbuf); - free(bd); - return bunzip_errors[-i]; -} - -/* Dumb little test thing, decompress stdin to stdout */ -/*int main(int argc, char *argv[]) -{ - char *c=uncompressStream(0,1); - fprintf(stderr,"\n%s\n", c ? c : "Completed OK"); -}*/ diff --git a/snesreader/nall/Makefile b/snesreader/nall/Makefile deleted file mode 100644 index 8149bf15..00000000 --- a/snesreader/nall/Makefile +++ /dev/null @@ -1,107 +0,0 @@ -# Makefile -# author: byuu -# license: public domain - -[A-Z] = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z -[a-z] = a b c d e f g h i j k l m n o p q r s t u v w x y z -[0-9] = 0 1 2 3 4 5 6 7 8 9 -[markup] = ` ~ ! @ \# $$ % ^ & * ( ) - _ = + [ { ] } \ | ; : ' " , < . > / ? -[all] = $([A-Z]) $([a-z]) $([0-9]) $([markup]) -[space] := -[space] += - -##### -# platform detection -##### - -ifeq ($(platform),) - uname := $(shell uname -a) - ifeq ($(uname),) - platform := win - delete = del $(subst /,\,$1) - else ifneq ($(findstring Darwin,$(uname)),) - platform := osx - delete = rm -f $1 - else - platform := x - delete = rm -f $1 - endif -endif - -ifeq ($(compiler),) - ifeq ($(platform),osx) - compiler := gcc-4.2 - else - compiler := gcc - endif -endif - -ifeq ($(prefix),) - prefix := /usr/local -endif - -##### -# function rwildcard(directory, pattern) -##### -rwildcard = \ - $(strip \ - $(filter $(if $2,$2,%), \ - $(foreach f, \ - $(wildcard $1*), \ - $(eval t = $(call rwildcard,$f/)) \ - $(if $t,$t,$f) \ - ) \ - ) \ - ) - -##### -# function strtr(source, from, to) -##### -strtr = \ - $(eval __temp := $1) \ - $(strip \ - $(foreach c, \ - $(join $(addsuffix :,$2),$3), \ - $(eval __temp := \ - $(subst $(word 1,$(subst :, ,$c)),$(word 2,$(subst :, ,$c)),$(__temp)) \ - ) \ - ) \ - $(__temp) \ - ) - -##### -# function strupper(source) -##### -strupper = $(call strtr,$1,$([a-z]),$([A-Z])) - -##### -# function strlower(source) -##### -strlower = $(call strtr,$1,$([A-Z]),$([a-z])) - -##### -# function strlen(source) -##### -strlen = \ - $(eval __temp := $(subst $([space]),_,$1)) \ - $(words \ - $(strip \ - $(foreach c, \ - $([all]), \ - $(eval __temp := \ - $(subst $c,$c ,$(__temp)) \ - ) \ - ) \ - $(__temp) \ - ) \ - ) - -##### -# function streq(source) -##### -streq = $(if $(filter-out xx,x$(subst $1,,$2)$(subst $2,,$1)x),,1) - -##### -# function strne(source) -##### -strne = $(if $(filter-out xx,x$(subst $1,,$2)$(subst $2,,$1)x),1,) diff --git a/snesreader/nall/algorithm.hpp b/snesreader/nall/algorithm.hpp deleted file mode 100644 index cdc48dcf..00000000 --- a/snesreader/nall/algorithm.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef NALL_ALGORITHM_HPP -#define NALL_ALGORITHM_HPP - -#undef min -#undef max - -namespace nall { - template T min(const T &t, const U &u) { - return t < u ? t : u; - } - - template T max(const T &t, const U &u) { - return t > u ? t : u; - } - - //pseudo-random number generator - inline unsigned prng() { - static unsigned n = 0; - return n = (n >> 1) ^ (((n & 1) - 1) & 0xedb88320); - } -} - -#endif diff --git a/snesreader/nall/any.hpp b/snesreader/nall/any.hpp deleted file mode 100644 index 9689af13..00000000 --- a/snesreader/nall/any.hpp +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef NALL_ANY_HPP -#define NALL_ANY_HPP - -#include -#include -#include - -namespace nall { - class any { - public: - bool empty() const { return container; } - const std::type_info& type() const { return container ? container->type() : typeid(void); } - - template any& operator=(const T& value_) { - typedef typename static_if< - is_array::value, - typename remove_extent::type>::type*, - T - >::type auto_t; - - if(type() == typeid(auto_t)) { - static_cast*>(container)->value = (auto_t)value_; - } else { - if(container) delete container; - container = new holder((auto_t)value_); - } - - return *this; - } - - any() : container(0) {} - template any(const T& value_) : container(0) { operator=(value_); } - - private: - struct placeholder { - virtual const std::type_info& type() const = 0; - } *container; - - template struct holder : placeholder { - T value; - const std::type_info& type() const { return typeid(T); } - holder(const T& value_) : value(value_) {} - }; - - template friend T any_cast(any&); - template friend T any_cast(const any&); - template friend T* any_cast(any*); - template friend const T* any_cast(const any*); - }; - - template T any_cast(any &value) { - typedef typename remove_reference::type nonref; - if(value.type() != typeid(nonref)) throw; - return static_cast*>(value.container)->value; - } - - template T any_cast(const any &value) { - typedef const typename remove_reference::type nonref; - if(value.type() != typeid(nonref)) throw; - return static_cast*>(value.container)->value; - } - - template T* any_cast(any *value) { - if(!value || value->type() != typeid(T)) return 0; - return &static_cast*>(value->container)->value; - } - - template const T* any_cast(const any *value) { - if(!value || value->type() != typeid(T)) return 0; - return &static_cast*>(value->container)->value; - } -} - -#endif diff --git a/snesreader/nall/array.hpp b/snesreader/nall/array.hpp deleted file mode 100644 index 392b5bc0..00000000 --- a/snesreader/nall/array.hpp +++ /dev/null @@ -1,118 +0,0 @@ -#ifndef NALL_ARRAY_HPP -#define NALL_ARRAY_HPP - -#include -#include -#include -#include -#include -#include - -namespace nall { - //dynamic vector array - //neither constructor nor destructor is ever invoked; - //thus, this should only be used for POD objects. - template class array { - protected: - T *pool; - unsigned poolsize, buffersize; - - public: - unsigned size() const { return buffersize; } - unsigned capacity() const { return poolsize; } - - void reset() { - if(pool) free(pool); - pool = 0; - poolsize = 0; - buffersize = 0; - } - - void reserve(unsigned newsize) { - if(newsize == poolsize) return; - - pool = (T*)realloc(pool, newsize * sizeof(T)); - poolsize = newsize; - buffersize = min(buffersize, newsize); - } - - void resize(unsigned newsize) { - if(newsize > poolsize) reserve(bit::round(newsize)); //round reserve size up to power of 2 - buffersize = newsize; - } - - T* get(unsigned minsize = 0) { - if(minsize > buffersize) resize(minsize); - if(minsize > buffersize) throw "array[] out of bounds"; - return pool; - } - - void add(const T data) { - operator[](buffersize) = data; - } - - signed find(const T data) { - for(unsigned i = 0; i < size(); i++) if(pool[i] == data) return i; - return -1; //not found - } - - void clear() { - memset(pool, 0, buffersize * sizeof(T)); - } - - array() : pool(0), poolsize(0), buffersize(0) { - } - - array(std::initializer_list list) : pool(0), poolsize(0), buffersize(0) { - for(const T *p = list.begin(); p != list.end(); ++p) add(*p); - } - - ~array() { - reset(); - } - - //copy - array& operator=(const array &source) { - if(pool) free(pool); - buffersize = source.buffersize; - poolsize = source.poolsize; - pool = (T*)malloc(sizeof(T) * poolsize); //allocate entire pool size, - memcpy(pool, source.pool, sizeof(T) * buffersize); //... but only copy used pool objects - return *this; - } - - array(const array &source) : pool(0) { - operator=(source); - } - - //move - array& operator=(array &&source) { - if(pool) free(pool); - pool = source.pool; - poolsize = source.poolsize; - buffersize = source.buffersize; - source.pool = 0; - return *this; - } - - array(array &&source) { - operator=(move(source)); - } - - //index - inline T& operator[](unsigned index) { - if(index >= buffersize) resize(index + 1); - if(index >= buffersize) throw "array[] out of bounds"; - return pool[index]; - } - - inline const T& operator[](unsigned index) const { - if(index >= buffersize) throw "array[] out of bounds"; - return pool[index]; - } - }; - - template struct has_size> { enum { value = true }; }; -} - -#endif diff --git a/snesreader/nall/base64.hpp b/snesreader/nall/base64.hpp deleted file mode 100644 index e41c87b7..00000000 --- a/snesreader/nall/base64.hpp +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef NALL_BASE64_HPP -#define NALL_BASE64_HPP - -#include -#include - -namespace nall { - class base64 { - public: - static bool encode(char *&output, const uint8_t* input, unsigned inlength) { - output = new char[inlength * 8 / 6 + 6](); - - unsigned i = 0, o = 0; - while(i < inlength) { - switch(i % 3) { - case 0: { - output[o++] = enc(input[i] >> 2); - output[o] = enc((input[i] & 3) << 4); - } break; - - case 1: { - uint8_t prev = dec(output[o]); - output[o++] = enc(prev + (input[i] >> 4)); - output[o] = enc((input[i] & 15) << 2); - } break; - - case 2: { - uint8_t prev = dec(output[o]); - output[o++] = enc(prev + (input[i] >> 6)); - output[o++] = enc(input[i] & 63); - } break; - } - - i++; - } - - return true; - } - - static bool decode(uint8_t *&output, unsigned &outlength, const char *input) { - unsigned inlength = strlen(input), infix = 0; - output = new uint8_t[inlength](); - - unsigned i = 0, o = 0; - while(i < inlength) { - uint8_t x = dec(input[i]); - - switch(i++ & 3) { - case 0: { - output[o] = x << 2; - } break; - - case 1: { - output[o++] |= x >> 4; - output[o] = (x & 15) << 4; - } break; - - case 2: { - output[o++] |= x >> 2; - output[o] = (x & 3) << 6; - } break; - - case 3: { - output[o++] |= x; - } break; - } - } - - outlength = o; - return true; - } - - private: - static char enc(uint8_t n) { - static char lookup_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; - return lookup_table[n & 63]; - } - - static uint8_t dec(char n) { - if(n >= 'A' && n <= 'Z') return n - 'A'; - if(n >= 'a' && n <= 'z') return n - 'a' + 26; - if(n >= '0' && n <= '9') return n - '0' + 52; - if(n == '-') return 62; - if(n == '_') return 63; - return 0; - } - }; -} - -#endif diff --git a/snesreader/nall/bit.hpp b/snesreader/nall/bit.hpp deleted file mode 100644 index 169fc144..00000000 --- a/snesreader/nall/bit.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef NALL_BIT_HPP -#define NALL_BIT_HPP - -namespace nall { - template inline unsigned uclamp(const unsigned x) { - enum { y = (1U << bits) - 1 }; - return y + ((x - y) & -(x < y)); //min(x, y); - } - - template inline unsigned uclip(const unsigned x) { - enum { m = (1U << bits) - 1 }; - return (x & m); - } - - template inline signed sclamp(const signed x) { - enum { b = 1U << (bits - 1), m = (1U << (bits - 1)) - 1 }; - return (x > m) ? m : (x < -b) ? -b : x; - } - - template inline signed sclip(const signed x) { - enum { b = 1U << (bits - 1), m = (1U << bits) - 1 }; - return ((x & m) ^ b) - b; - } - - namespace bit { - //lowest(0b1110) == 0b0010 - template inline T lowest(const T x) { - return x & -x; - } - - //clear_lowest(0b1110) == 0b1100 - template inline T clear_lowest(const T x) { - return x & (x - 1); - } - - //set_lowest(0b0101) == 0b0111 - template inline T set_lowest(const T x) { - return x | (x + 1); - } - - //round up to next highest single bit: - //round(15) == 16, round(16) == 16, round(17) == 32 - inline unsigned round(unsigned x) { - if((x & (x - 1)) == 0) return x; - while(x & (x - 1)) x &= x - 1; - return x << 1; - } - } -} - -#endif diff --git a/snesreader/nall/concept.hpp b/snesreader/nall/concept.hpp deleted file mode 100644 index 2949cd5e..00000000 --- a/snesreader/nall/concept.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef NALL_CONCEPT_HPP -#define NALL_CONCEPT_HPP - -namespace nall { - //unsigned count() const; - template struct has_count { enum { value = false }; }; - - //unsigned length() const; - template struct has_length { enum { value = false }; }; - - //unsigned size() const; - template struct has_size { enum { value = false }; }; -} - -#endif diff --git a/snesreader/nall/config.hpp b/snesreader/nall/config.hpp deleted file mode 100644 index 31ae4e00..00000000 --- a/snesreader/nall/config.hpp +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef NALL_CONFIG_HPP -#define NALL_CONFIG_HPP - -#include -#include -#include - -namespace nall { - namespace configuration_traits { - template struct is_boolean { enum { value = false }; }; - template<> struct is_boolean { enum { value = true }; }; - - template struct is_signed { enum { value = false }; }; - template<> struct is_signed { enum { value = true }; }; - - template struct is_unsigned { enum { value = false }; }; - template<> struct is_unsigned { enum { value = true }; }; - - template struct is_double { enum { value = false }; }; - template<> struct is_double { enum { value = true }; }; - - template struct is_string { enum { value = false }; }; - template<> struct is_string { enum { value = true }; }; - } - - class configuration { - public: - enum type_t { boolean_t, signed_t, unsigned_t, double_t, string_t, unknown_t }; - struct item_t { - uintptr_t data; - string name; - string desc; - type_t type; - - string get() const { - switch(type) { - case boolean_t: return string() << *(bool*)data; - case signed_t: return string() << *(signed*)data; - case unsigned_t: return string() << *(unsigned*)data; - case double_t: return string() << *(double*)data; - case string_t: return string() << "\"" << *(string*)data << "\""; - } - return "???"; - } - - void set(string s) { - switch(type) { - case boolean_t: *(bool*)data = (s == "true"); break; - case signed_t: *(signed*)data = strsigned(s); break; - case unsigned_t: *(unsigned*)data = strunsigned(s); break; - case double_t: *(double*)data = strdouble(s); break; - case string_t: trim(s, "\""); *(string*)data = s; break; - } - } - }; - linear_vector list; - - template - void attach(T &data, const char *name, const char *desc = "") { - unsigned n = list.size(); - list[n].data = (uintptr_t)&data; - list[n].name = name; - list[n].desc = desc; - - if(configuration_traits::is_boolean::value) list[n].type = boolean_t; - else if(configuration_traits::is_signed::value) list[n].type = signed_t; - else if(configuration_traits::is_unsigned::value) list[n].type = unsigned_t; - else if(configuration_traits::is_double::value) list[n].type = double_t; - else if(configuration_traits::is_string::value) list[n].type = string_t; - else list[n].type = unknown_t; - } - - virtual bool load(const char *filename) { - string data; - if(data.readfile(filename) == true) { - data.replace("\r", ""); - lstring line; - line.split("\n", data); - - for(unsigned i = 0; i < line.size(); i++) { - int position = qstrpos(line[i], "#"); - if(position >= 0) line[i][position] = 0; - if(qstrpos(line[i], " = ") < 0) continue; - - lstring part; - part.qsplit(" = ", line[i]); - trim(part[0]); - trim(part[1]); - - for(unsigned n = 0; n < list.size(); n++) { - if(part[0] == list[n].name) { - list[n].set(part[1]); - break; - } - } - } - - return true; - } else { - return false; - } - } - - virtual bool save(const char *filename) const { - file fp; - if(fp.open(filename, file::mode_write)) { - for(unsigned i = 0; i < list.size(); i++) { - string output; - output << list[i].name << " = " << list[i].get(); - if(list[i].desc != "") output << " # " << list[i].desc; - output << "\r\n"; - fp.print(output); - } - - fp.close(); - return true; - } else { - return false; - } - } - }; -} - -#endif diff --git a/snesreader/nall/crc32.hpp b/snesreader/nall/crc32.hpp deleted file mode 100644 index ad36fbf6..00000000 --- a/snesreader/nall/crc32.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef NALL_CRC32_HPP -#define NALL_CRC32_HPP - -#include - -namespace nall { - const uint32_t crc32_table[256] = { - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, - 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, - 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, - 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, - 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, - 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, - 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, - 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, - 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, - 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, - 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, - 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, - 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, - 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, - 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, - 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, - 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, - 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, - 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, - 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, - 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, - 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, - 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, - 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, - 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, - 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, - 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, - 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, - 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, - 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, - 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, - 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, - 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, - 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, - 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, - 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, - 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, - 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, - 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, - 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, - 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, - 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d - }; - - inline uint32_t crc32_adjust(uint32_t crc32, uint8_t input) { - return ((crc32 >> 8) & 0x00ffffff) ^ crc32_table[(crc32 ^ input) & 0xff]; - } - - inline uint32_t crc32_calculate(const uint8_t *data, unsigned length) { - uint32_t crc32 = ~0; - for(unsigned i = 0; i < length; i++) { - crc32 = crc32_adjust(crc32, data[i]); - } - return ~crc32; - } -} - -#endif diff --git a/snesreader/nall/detect.hpp b/snesreader/nall/detect.hpp deleted file mode 100644 index b4991aaf..00000000 --- a/snesreader/nall/detect.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef NALL_DETECT_HPP -#define NALL_DETECT_HPP - -/* Compiler detection */ - -#if defined(__GNUC__) - #define COMPILER_GCC -#elif defined(_MSC_VER) - #define COMPILER_VISUALC -#endif - -/* Platform detection */ - -#if defined(_WIN32) - #define PLATFORM_WIN -#elif defined(__APPLE__) - #define PLATFORM_OSX -#elif defined(linux) || defined(__sun__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) - #define PLATFORM_X -#endif - -/* Endian detection */ - -#if defined(__i386__) || defined(__amd64__) || defined(_M_IX86) || defined(_M_AMD64) - #define ARCH_LSB -#elif defined(__powerpc__) || defined(_M_PPC) || defined(__BIG_ENDIAN__) - #define ARCH_MSB -#endif - -#endif diff --git a/snesreader/nall/dictionary.hpp b/snesreader/nall/dictionary.hpp deleted file mode 100644 index f14e2095..00000000 --- a/snesreader/nall/dictionary.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef NALL_DICTIONARY_HPP -#define NALL_DICTIONARY_HPP - -#include -#include -#include - -namespace nall { - class dictionary { - public: - string operator[](const char *input) { - for(unsigned i = 0; i < index_input.size(); i++) { - if(index_input[i] == input) return index_output[i]; - } - - //no match, use input; remove input identifier, if one exists - if(strbegin(input, "{{")) { - int pos = strpos(input, "}}"); - if(pos >= 0) { - string temp = substr(input, pos + 2); - return temp; - } - } - - return input; - } - - bool import(const char *filename) { - string data; - if(data.readfile(filename) == false) return false; - ltrim_once(data, "\xef\xbb\xbf"); //remove UTF-8 marker, if it exists - data.replace("\r", ""); - - lstring line; - line.split("\n", data); - for(unsigned i = 0; i < line.size(); i++) { - lstring part; - //format: "Input" = "Output" - part.qsplit("=", line[i]); - if(part.size() != 2) continue; - - //remove whitespace - trim(part[0]); - trim(part[1]); - - //remove quotes - trim_once(part[0], "\""); - trim_once(part[1], "\""); - - unsigned n = index_input.size(); - index_input[n] = part[0]; - index_output[n] = part[1]; - } - - return true; - } - - void reset() { - index_input.reset(); - index_output.reset(); - } - - ~dictionary() { - reset(); - } - - dictionary& operator=(const dictionary&) = delete; - dictionary(const dictionary&) = delete; - - protected: - lstring index_input; - lstring index_output; - }; -} - -#endif diff --git a/snesreader/nall/dl.hpp b/snesreader/nall/dl.hpp deleted file mode 100644 index 22acf51f..00000000 --- a/snesreader/nall/dl.hpp +++ /dev/null @@ -1,119 +0,0 @@ -#ifndef NALL_DL_HPP -#define NALL_DL_HPP - -//dynamic linking support - -#include -#include -#include -#include - -#if defined(PLATFORM_X) || defined(PLATFORM_OSX) - #include -#elif defined(PLATFORM_WIN) - #include - #include -#endif - -namespace nall { - struct library { - bool opened() const { return handle; } - bool open(const char*); - void* sym(const char*); - void close(); - - library() : handle(0) {} - ~library() { close(); } - - library& operator=(const library&) = delete; - library(const library&) = delete; - - private: - uintptr_t handle; - }; - - #if defined(PLATFORM_X) - inline bool library::open(const char *name) { - if(handle) close(); - char *t = new char[strlen(name) + 256]; - strcpy(t, "lib"); - strcat(t, name); - strcat(t, ".so"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - if(!handle) { - strcpy(t, "/usr/local/lib/lib"); - strcat(t, name); - strcat(t, ".so"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - } - delete[] t; - return handle; - } - - inline void* library::sym(const char *name) { - if(!handle) return 0; - return dlsym((void*)handle, name); - } - - inline void library::close() { - if(!handle) return; - dlclose((void*)handle); - handle = 0; - } - #elif defined(PLATFORM_OSX) - inline bool library::open(const char *name) { - if(handle) close(); - char *t = new char[strlen(name) + 256]; - strcpy(t, "lib"); - strcat(t, name); - strcat(t, ".dylib"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - if(!handle) { - strcpy(t, "/usr/local/lib/lib"); - strcat(t, name); - strcat(t, ".dylib"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - } - delete[] t; - return handle; - } - - inline void* library::sym(const char *name) { - if(!handle) return 0; - return dlsym((void*)handle, name); - } - - inline void library::close() { - if(!handle) return; - dlclose((void*)handle); - handle = 0; - } - #elif defined(PLATFORM_WIN) - inline bool library::open(const char *name) { - if(handle) close(); - char *t = new char[strlen(name) + 8]; - strcpy(t, name); - strcat(t, ".dll"); - handle = (uintptr_t)LoadLibraryW(utf16_t(t)); - delete[] t; - return handle; - } - - inline void* library::sym(const char *name) { - if(!handle) return 0; - return (void*)GetProcAddress((HMODULE)handle, name); - } - - inline void library::close() { - if(!handle) return; - FreeLibrary((HMODULE)handle); - handle = 0; - } - #else - inline bool library::open(const char*) { return false; } - inline void* library::sym(const char*) { return 0; } - inline void library::close() {} - #endif -}; - -#endif diff --git a/snesreader/nall/endian.hpp b/snesreader/nall/endian.hpp deleted file mode 100644 index 40d15633..00000000 --- a/snesreader/nall/endian.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef NALL_ENDIAN_HPP -#define NALL_ENDIAN_HPP - -#if !defined(ARCH_MSB) - //little-endian: uint8_t[] { 0x01, 0x02, 0x03, 0x04 } == 0x04030201 - #define order_lsb2(a,b) a,b - #define order_lsb3(a,b,c) a,b,c - #define order_lsb4(a,b,c,d) a,b,c,d - #define order_lsb5(a,b,c,d,e) a,b,c,d,e - #define order_lsb6(a,b,c,d,e,f) a,b,c,d,e,f - #define order_lsb7(a,b,c,d,e,f,g) a,b,c,d,e,f,g - #define order_lsb8(a,b,c,d,e,f,g,h) a,b,c,d,e,f,g,h - #define order_msb2(a,b) b,a - #define order_msb3(a,b,c) c,b,a - #define order_msb4(a,b,c,d) d,c,b,a - #define order_msb5(a,b,c,d,e) e,d,c,b,a - #define order_msb6(a,b,c,d,e,f) f,e,d,c,b,a - #define order_msb7(a,b,c,d,e,f,g) g,f,e,d,c,b,a - #define order_msb8(a,b,c,d,e,f,g,h) h,g,f,e,d,c,b,a -#else - //big-endian: uint8_t[] { 0x01, 0x02, 0x03, 0x04 } == 0x01020304 - #define order_lsb2(a,b) b,a - #define order_lsb3(a,b,c) c,b,a - #define order_lsb4(a,b,c,d) d,c,b,a - #define order_lsb5(a,b,c,d,e) e,d,c,b,a - #define order_lsb6(a,b,c,d,e,f) f,e,d,c,b,a - #define order_lsb7(a,b,c,d,e,f,g) g,f,e,d,c,b,a - #define order_lsb8(a,b,c,d,e,f,g,h) h,g,f,e,d,c,b,a - #define order_msb2(a,b) a,b - #define order_msb3(a,b,c) a,b,c - #define order_msb4(a,b,c,d) a,b,c,d - #define order_msb5(a,b,c,d,e) a,b,c,d,e - #define order_msb6(a,b,c,d,e,f) a,b,c,d,e,f - #define order_msb7(a,b,c,d,e,f,g) a,b,c,d,e,f,g - #define order_msb8(a,b,c,d,e,f,g,h) a,b,c,d,e,f,g,h -#endif - -#endif diff --git a/snesreader/nall/file.hpp b/snesreader/nall/file.hpp deleted file mode 100644 index 4c8ca8ee..00000000 --- a/snesreader/nall/file.hpp +++ /dev/null @@ -1,259 +0,0 @@ -#ifndef NALL_FILE_HPP -#define NALL_FILE_HPP - -#include -#include - -#if !defined(_WIN32) - #include -#else - #include -#endif - -#include -#include -#include - -namespace nall { - inline FILE* fopen_utf8(const char *utf8_filename, const char *mode) { - #if !defined(_WIN32) - return fopen(utf8_filename, mode); - #else - return _wfopen(utf16_t(utf8_filename), utf16_t(mode)); - #endif - } - - class file { - public: - enum FileMode { mode_read, mode_write, mode_readwrite, mode_writeread }; - enum SeekMode { seek_absolute, seek_relative }; - - uint8_t read() { - if(!fp) return 0xff; //file not open - if(file_mode == mode_write) return 0xff; //reads not permitted - if(file_offset >= file_size) return 0xff; //cannot read past end of file - buffer_sync(); - return buffer[(file_offset++) & buffer_mask]; - } - - uintmax_t readl(unsigned length = 1) { - uintmax_t data = 0; - for(int i = 0; i < length; i++) { - data |= (uintmax_t)read() << (i << 3); - } - return data; - } - - uintmax_t readm(unsigned length = 1) { - uintmax_t data = 0; - while(length--) { - data <<= 8; - data |= read(); - } - return data; - } - - void read(uint8_t *buffer, unsigned length) { - while(length--) *buffer++ = read(); - } - - void write(uint8_t data) { - if(!fp) return; //file not open - if(file_mode == mode_read) return; //writes not permitted - buffer_sync(); - buffer[(file_offset++) & buffer_mask] = data; - buffer_dirty = true; - if(file_offset > file_size) file_size = file_offset; - } - - void writel(uintmax_t data, unsigned length = 1) { - while(length--) { - write(data); - data >>= 8; - } - } - - void writem(uintmax_t data, unsigned length = 1) { - for(int i = length - 1; i >= 0; i--) { - write(data >> (i << 3)); - } - } - - void write(const uint8_t *buffer, unsigned length) { - while(length--) write(*buffer++); - } - - void print(const char *string) { - if(!string) return; - while(*string) write(*string++); - } - - void flush() { - buffer_flush(); - fflush(fp); - } - - void seek(int offset, SeekMode mode = seek_absolute) { - if(!fp) return; //file not open - buffer_flush(); - - uintmax_t req_offset = file_offset; - switch(mode) { - case seek_absolute: req_offset = offset; break; - case seek_relative: req_offset += offset; break; - } - - if(req_offset < 0) req_offset = 0; //cannot seek before start of file - if(req_offset > file_size) { - if(file_mode == mode_read) { //cannot seek past end of file - req_offset = file_size; - } else { //pad file to requested location - file_offset = file_size; - while(file_size < req_offset) write(0x00); - } - } - - file_offset = req_offset; - } - - int offset() { - if(!fp) return -1; //file not open - return file_offset; - } - - int size() { - if(!fp) return -1; //file not open - return file_size; - } - - bool truncate(unsigned size) { - if(!fp) return false; //file not open - #if !defined(_WIN32) - return ftruncate(fileno(fp), size) == 0; - #else - return _chsize(fileno(fp), size) == 0; - #endif - } - - bool end() { - if(!fp) return true; //file not open - return file_offset >= file_size; - } - - static bool exists(const char *fn) { - #if !defined(_WIN32) - FILE *fp = fopen(fn, "rb"); - #else - FILE *fp = _wfopen(utf16_t(fn), L"rb"); - #endif - if(fp) { - fclose(fp); - return true; - } - return false; - } - - static unsigned size(const char *fn) { - #if !defined(_WIN32) - FILE *fp = fopen(fn, "rb"); - #else - FILE *fp = _wfopen(utf16_t(fn), L"rb"); - #endif - unsigned filesize = 0; - if(fp) { - fseek(fp, 0, SEEK_END); - filesize = ftell(fp); - fclose(fp); - } - return filesize; - } - - bool open() { - return fp; - } - - bool open(const char *fn, FileMode mode) { - if(fp) return false; - - switch(file_mode = mode) { - #if !defined(_WIN32) - case mode_read: fp = fopen(fn, "rb"); break; - case mode_write: fp = fopen(fn, "wb+"); break; //need read permission for buffering - case mode_readwrite: fp = fopen(fn, "rb+"); break; - case mode_writeread: fp = fopen(fn, "wb+"); break; - #else - case mode_read: fp = _wfopen(utf16_t(fn), L"rb"); break; - case mode_write: fp = _wfopen(utf16_t(fn), L"wb+"); break; - case mode_readwrite: fp = _wfopen(utf16_t(fn), L"rb+"); break; - case mode_writeread: fp = _wfopen(utf16_t(fn), L"wb+"); break; - #endif - } - if(!fp) return false; - buffer_offset = -1; //invalidate buffer - file_offset = 0; - fseek(fp, 0, SEEK_END); - file_size = ftell(fp); - fseek(fp, 0, SEEK_SET); - return true; - } - - void close() { - if(!fp) return; - buffer_flush(); - fclose(fp); - fp = 0; - } - - file() { - memset(buffer, 0, sizeof buffer); - buffer_offset = -1; - buffer_dirty = false; - fp = 0; - file_offset = 0; - file_size = 0; - file_mode = mode_read; - } - - ~file() { - close(); - } - - file& operator=(const file&) = delete; - file(const file&) = delete; - - private: - enum { buffer_size = 1 << 12, buffer_mask = buffer_size - 1 }; - char buffer[buffer_size]; - int buffer_offset; - bool buffer_dirty; - FILE *fp; - unsigned file_offset; - unsigned file_size; - FileMode file_mode; - - void buffer_sync() { - if(!fp) return; //file not open - if(buffer_offset != (file_offset & ~buffer_mask)) { - buffer_flush(); - buffer_offset = file_offset & ~buffer_mask; - fseek(fp, buffer_offset, SEEK_SET); - unsigned length = (buffer_offset + buffer_size) <= file_size ? buffer_size : (file_size & buffer_mask); - if(length) unsigned unused = fread(buffer, 1, length, fp); - } - } - - void buffer_flush() { - if(!fp) return; //file not open - if(file_mode == mode_read) return; //buffer cannot be written to - if(buffer_offset < 0) return; //buffer unused - if(buffer_dirty == false) return; //buffer unmodified since read - fseek(fp, buffer_offset, SEEK_SET); - unsigned length = (buffer_offset + buffer_size) <= file_size ? buffer_size : (file_size & buffer_mask); - if(length) unsigned unused = fwrite(buffer, 1, length, fp); - buffer_offset = -1; //invalidate buffer - buffer_dirty = false; - } - }; -} - -#endif diff --git a/snesreader/nall/filemap.hpp b/snesreader/nall/filemap.hpp deleted file mode 100644 index a05f0eb7..00000000 --- a/snesreader/nall/filemap.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef NALL_FILEMAP_HPP -#define NALL_FILEMAP_HPP - -#include -#include - -#include -#include -#if defined(_WIN32) - #include -#else - #include - #include - #include - #include - #include -#endif - -namespace nall { - class filemap { - public: - enum filemode { mode_read, mode_write, mode_readwrite, mode_writeread }; - - bool open(const char *filename, filemode mode) { return p_open(filename, mode); } - void close() { return p_close(); } - unsigned size() const { return p_size; } - uint8_t* handle() { return p_handle; } - const uint8_t* handle() const { return p_handle; } - filemap() : p_size(0), p_handle(0) { p_ctor(); } - ~filemap() { p_dtor(); } - - private: - unsigned p_size; - uint8_t *p_handle; - - #if defined(_WIN32) - //============= - //MapViewOfFile - //============= - - HANDLE p_filehandle, p_maphandle; - - bool p_open(const char *filename, filemode mode) { - int desired_access, creation_disposition, flprotect, map_access; - - switch(mode) { - default: return false; - case mode_read: - desired_access = GENERIC_READ; - creation_disposition = OPEN_EXISTING; - flprotect = PAGE_READONLY; - map_access = FILE_MAP_READ; - break; - case mode_write: - //write access requires read access - desired_access = GENERIC_WRITE; - creation_disposition = CREATE_ALWAYS; - flprotect = PAGE_READWRITE; - map_access = FILE_MAP_ALL_ACCESS; - break; - case mode_readwrite: - desired_access = GENERIC_READ | GENERIC_WRITE; - creation_disposition = OPEN_EXISTING; - flprotect = PAGE_READWRITE; - map_access = FILE_MAP_ALL_ACCESS; - break; - case mode_writeread: - desired_access = GENERIC_READ | GENERIC_WRITE; - creation_disposition = CREATE_NEW; - flprotect = PAGE_READWRITE; - map_access = FILE_MAP_ALL_ACCESS; - break; - } - - p_filehandle = CreateFileW(utf16_t(filename), desired_access, FILE_SHARE_READ, NULL, - creation_disposition, FILE_ATTRIBUTE_NORMAL, NULL); - if(p_filehandle == INVALID_HANDLE_VALUE) return false; - - p_size = GetFileSize(p_filehandle, NULL); - - p_maphandle = CreateFileMapping(p_filehandle, NULL, flprotect, 0, p_size, NULL); - if(p_maphandle == INVALID_HANDLE_VALUE) { - CloseHandle(p_filehandle); - p_filehandle = INVALID_HANDLE_VALUE; - return false; - } - - p_handle = (uint8_t*)MapViewOfFile(p_maphandle, map_access, 0, 0, p_size); - return p_handle; - } - - void p_close() { - if(p_handle) { - UnmapViewOfFile(p_handle); - p_handle = 0; - } - - if(p_maphandle != INVALID_HANDLE_VALUE) { - CloseHandle(p_maphandle); - p_maphandle = INVALID_HANDLE_VALUE; - } - - if(p_filehandle != INVALID_HANDLE_VALUE) { - CloseHandle(p_filehandle); - p_filehandle = INVALID_HANDLE_VALUE; - } - } - - void p_ctor() { - p_filehandle = INVALID_HANDLE_VALUE; - p_maphandle = INVALID_HANDLE_VALUE; - } - - void p_dtor() { - close(); - } - - #else - //==== - //mmap - //==== - - int p_fd; - - bool p_open(const char *filename, filemode mode) { - int open_flags, mmap_flags; - - switch(mode) { - default: return false; - case mode_read: - open_flags = O_RDONLY; - mmap_flags = PROT_READ; - break; - case mode_write: - open_flags = O_RDWR | O_CREAT; //mmap() requires read access - mmap_flags = PROT_WRITE; - break; - case mode_readwrite: - open_flags = O_RDWR; - mmap_flags = PROT_READ | PROT_WRITE; - break; - case mode_writeread: - open_flags = O_RDWR | O_CREAT; - mmap_flags = PROT_READ | PROT_WRITE; - break; - } - - p_fd = ::open(filename, open_flags); - if(p_fd < 0) return false; - - struct stat p_stat; - fstat(p_fd, &p_stat); - p_size = p_stat.st_size; - - p_handle = (uint8_t*)mmap(0, p_size, mmap_flags, MAP_SHARED, p_fd, 0); - if(p_handle == MAP_FAILED) { - p_handle = 0; - ::close(p_fd); - p_fd = -1; - return false; - } - - return p_handle; - } - - void p_close() { - if(p_handle) { - munmap(p_handle, p_size); - p_handle = 0; - } - - if(p_fd >= 0) { - ::close(p_fd); - p_fd = -1; - } - } - - void p_ctor() { - p_fd = -1; - } - - void p_dtor() { - p_close(); - } - - #endif - }; -} - -#endif diff --git a/snesreader/nall/foreach.hpp b/snesreader/nall/foreach.hpp deleted file mode 100644 index 39ca7f5f..00000000 --- a/snesreader/nall/foreach.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef NALL_FOREACH_HPP -#define NALL_FOREACH_HPP - -#undef foreach -#define foreach(iter, object) \ - for(unsigned foreach_counter = 0, foreach_limit = foreach_size(object), foreach_once = 0, foreach_broken = 0; foreach_counter < foreach_limit && foreach_broken == 0; foreach_counter++, foreach_once = 0) \ - for(auto &iter = object[foreach_counter]; foreach_once == 0 && (foreach_broken = 1); foreach_once++, foreach_broken = 0) - -#include -#include -#include - -namespace nall { - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return object.count(); - } - - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return object.length(); - } - - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return object.size(); - } - - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return sizeof(T) / sizeof(typename remove_extent::type); - } -} - -#endif diff --git a/snesreader/nall/function.hpp b/snesreader/nall/function.hpp deleted file mode 100644 index 58fe349f..00000000 --- a/snesreader/nall/function.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef NALL_FUNCTION_HPP -#define NALL_FUNCTION_HPP - -#include - -//prologue - -#define TN typename - -namespace nall { - template class function; -} - -//parameters = 0 - -#define cat(n) n -#define TL typename R -#define PL -#define CL - -#include "function.hpp" - -//parameters = 1 - -#define cat(n) , n -#define TL TN R, TN P1 -#define PL P1 p1 -#define CL p1 - -#include "function.hpp" - -//parameters = 2 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2 -#define PL P1 p1, P2 p2 -#define CL p1, p2 - -#include "function.hpp" - -//parameters = 3 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3 -#define PL P1 p1, P2 p2, P3 p3 -#define CL p1, p2, p3 - -#include "function.hpp" - -//parameters = 4 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4 -#define PL P1 p1, P2 p2, P3 p3, P4 p4 -#define CL p1, p2, p3, p4 - -#include "function.hpp" - -//parameters = 5 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5 -#define CL p1, p2, p3, p4, p5 - -#include "function.hpp" - -//parameters = 6 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5, TN P6 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6 -#define CL p1, p2, p3, p4, p5, p6 - -#include "function.hpp" - -//parameters = 7 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5, TN P6, TN P7 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7 -#define CL p1, p2, p3, p4, p5, p6, p7 - -#include "function.hpp" - -//parameters = 8 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5, TN P6, TN P7, TN P8 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8 -#define CL p1, p2, p3, p4, p5, p6, p7, p8 - -#include "function.hpp" - -//epilogue - -#undef TN -#define NALL_FUNCTION_T - -#elif !defined(NALL_FUNCTION_T) - -//function implementation template class - -namespace nall { - template - class function { - private: - struct base1 { virtual void func1(PL) {} }; - struct base2 { virtual void func2(PL) {} }; - struct derived : base1, virtual base2 {}; - - struct data_t { - R (*fn_call)(const data_t& cat(PL)); - union { - R (*fn_global)(PL); - struct { - R (derived::*fn_member)(PL); - void *object; - }; - }; - } data; - - static R fn_call_global(const data_t &d cat(PL)) { - return d.fn_global(CL); - } - - template - static R fn_call_member(const data_t &d cat(PL)) { - return (((C*)d.object)->*((R (C::*&)(PL))d.fn_member))(CL); - } - - public: - R operator()(PL) const { return data.fn_call(data cat(CL)); } - operator bool() const { return data.fn_call; } - - function() { data.fn_call = 0; } - - function(void *fn) { - data.fn_call = fn ? &fn_call_global : 0; - data.fn_global = (R (*)(PL))fn; - } - - function(R (*fn)(PL)) { - data.fn_call = &fn_call_global; - data.fn_global = fn; - } - - template - function(R (C::*fn)(PL), C *obj) { - data.fn_call = &fn_call_member; - (R (C::*&)(PL))data.fn_member = fn; - assert(sizeof data.fn_member >= sizeof fn); - data.object = obj; - } - - template - function(R (C::*fn)(PL) const, C *obj) { - data.fn_call = &fn_call_member; - (R (C::*&)(PL))data.fn_member = (R (C::*&)(PL))fn; - assert(sizeof data.fn_member >= sizeof fn); - data.object = obj; - } - - function& operator=(void *fn) { return operator=(function(fn)); } - function& operator=(const function &source) { memcpy(&data, &source.data, sizeof(data_t)); return *this; } - function(const function &source) { memcpy(&data, &source.data, sizeof(data_t)); } - }; - - template - function bind(R (*fn)(PL)) { - return function(fn); - } - - template - function bind(R (C::*fn)(PL), C *obj) { - return function(fn, obj); - } - - template - function bind(R (C::*fn)(PL) const, C *obj) { - return function(fn, obj); - } -} - -#undef cat -#undef TL -#undef PL -#undef CL - -#endif diff --git a/snesreader/nall/input.hpp b/snesreader/nall/input.hpp deleted file mode 100644 index b3ce9ebf..00000000 --- a/snesreader/nall/input.hpp +++ /dev/null @@ -1,386 +0,0 @@ -#ifndef NALL_INPUT_HPP -#define NALL_INPUT_HPP - -#include -#include -#include - -#include -#include - -namespace nall { - -struct Keyboard; -Keyboard& keyboard(unsigned = 0); - -static const char KeyboardScancodeName[][64] = { - "Escape", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", - "PrintScreen", "ScrollLock", "Pause", "Tilde", - "Num1", "Num2", "Num3", "Num4", "Num5", "Num6", "Num7", "Num8", "Num9", "Num0", - "Dash", "Equal", "Backspace", - "Insert", "Delete", "Home", "End", "PageUp", "PageDown", - "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", - "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", - "LeftBracket", "RightBracket", "Backslash", "Semicolon", "Apostrophe", "Comma", "Period", "Slash", - "Keypad1", "Keypad2", "Keypad3", "Keypad4", "Keypad5", "Keypad6", "Keypad7", "Keypad8", "Keypad9", "Keypad0", - "Point", "Enter", "Add", "Subtract", "Multiply", "Divide", - "NumLock", "CapsLock", - "Up", "Down", "Left", "Right", - "Tab", "Return", "Spacebar", "Menu", - "Shift", "Control", "Alt", "Super", -}; - -struct Keyboard { - const unsigned ID; - enum { Base = 1 }; - enum { Count = 8, Size = 128 }; - - enum Scancode { - Escape, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, - PrintScreen, ScrollLock, Pause, Tilde, - Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9, Num0, - Dash, Equal, Backspace, - Insert, Delete, Home, End, PageUp, PageDown, - A, B, C, D, E, F, G, H, I, J, K, L, M, - N, O, P, Q, R, S, T, U, V, W, X, Y, Z, - LeftBracket, RightBracket, Backslash, Semicolon, Apostrophe, Comma, Period, Slash, - Keypad1, Keypad2, Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9, Keypad0, - Point, Enter, Add, Subtract, Multiply, Divide, - NumLock, CapsLock, - Up, Down, Left, Right, - Tab, Return, Spacebar, Menu, - Shift, Control, Alt, Super, - Limit, - }; - - static signed numberDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).belongsTo(scancode)) return i; - } - return -1; - } - - static signed keyDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isKey(scancode)) return scancode - keyboard(i).key(Escape); - } - return -1; - } - - static signed modifierDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isModifier(scancode)) return scancode - keyboard(i).key(Shift); - } - return -1; - } - - static bool isAnyKey(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isKey(scancode)) return true; - } - return false; - } - - static bool isAnyModifier(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isModifier(scancode)) return true; - } - return false; - } - - static uint16_t decode(const char *name) { - string s(name); - if(!strbegin(name, "KB")) return 0; - ltrim(s, "KB"); - unsigned id = strunsigned(s); - int pos = strpos(s, "::"); - if(pos < 0) return 0; - s = substr(s, pos + 2); - for(unsigned i = 0; i < Limit; i++) { - if(s == KeyboardScancodeName[i]) return Base + Size * id + i; - } - return 0; - } - - string encode(uint16_t code) const { - unsigned index = 0; - for(unsigned i = 0; i < Count; i++) { - if(code >= Base + Size * i && code < Base + Size * (i + 1)) { - index = code - (Base + Size * i); - break; - } - } - return string() << "KB" << ID << "::" << KeyboardScancodeName[index]; - } - - uint16_t operator[](Scancode code) const { return Base + ID * Size + code; } - uint16_t key(unsigned id) const { return Base + Size * ID + id; } - bool isKey(unsigned id) const { return id >= key(Escape) && id <= key(Menu); } - bool isModifier(unsigned id) const { return id >= key(Shift) && id <= key(Super); } - bool belongsTo(uint16_t scancode) const { return isKey(scancode) || isModifier(scancode); } - - Keyboard(unsigned ID_) : ID(ID_) {} -}; - -inline Keyboard& keyboard(unsigned id) { - static Keyboard kb0(0), kb1(1), kb2(2), kb3(3), kb4(4), kb5(5), kb6(6), kb7(7); - switch(id) { default: - case 0: return kb0; case 1: return kb1; case 2: return kb2; case 3: return kb3; - case 4: return kb4; case 5: return kb5; case 6: return kb6; case 7: return kb7; - } -} - -static const char MouseScancodeName[][64] = { - "Xaxis", "Yaxis", "Zaxis", - "Button0", "Button1", "Button2", "Button3", "Button4", "Button5", "Button6", "Button7", -}; - -struct Mouse; -Mouse& mouse(unsigned = 0); - -struct Mouse { - const unsigned ID; - enum { Base = Keyboard::Base + Keyboard::Size * Keyboard::Count }; - enum { Count = 8, Size = 16 }; - enum { Axes = 3, Buttons = 8 }; - - enum Scancode { - Xaxis, Yaxis, Zaxis, - Button0, Button1, Button2, Button3, Button4, Button5, Button6, Button7, - Limit, - }; - - static signed numberDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).belongsTo(scancode)) return i; - } - return -1; - } - - static signed axisDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isAxis(scancode)) return scancode - mouse(i).axis(0); - } - return -1; - } - - static signed buttonDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isButton(scancode)) return scancode - mouse(i).button(0); - } - return -1; - } - - static bool isAnyAxis(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isAxis(scancode)) return true; - } - return false; - } - - static bool isAnyButton(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isButton(scancode)) return true; - } - return false; - } - - static uint16_t decode(const char *name) { - string s(name); - if(!strbegin(name, "MS")) return 0; - ltrim(s, "MS"); - unsigned id = strunsigned(s); - int pos = strpos(s, "::"); - if(pos < 0) return 0; - s = substr(s, pos + 2); - for(unsigned i = 0; i < Limit; i++) { - if(s == MouseScancodeName[i]) return Base + Size * id + i; - } - return 0; - } - - string encode(uint16_t code) const { - unsigned index = 0; - for(unsigned i = 0; i < Count; i++) { - if(code >= Base + Size * i && code < Base + Size * (i + 1)) { - index = code - (Base + Size * i); - break; - } - } - return string() << "MS" << ID << "::" << MouseScancodeName[index]; - } - - uint16_t operator[](Scancode code) const { return Base + ID * Size + code; } - uint16_t axis(unsigned id) const { return Base + Size * ID + Xaxis + id; } - uint16_t button(unsigned id) const { return Base + Size * ID + Button0 + id; } - bool isAxis(unsigned id) const { return id >= axis(0) && id <= axis(2); } - bool isButton(unsigned id) const { return id >= button(0) && id <= button(7); } - bool belongsTo(uint16_t scancode) const { return isAxis(scancode) || isButton(scancode); } - - Mouse(unsigned ID_) : ID(ID_) {} -}; - -inline Mouse& mouse(unsigned id) { - static Mouse ms0(0), ms1(1), ms2(2), ms3(3), ms4(4), ms5(5), ms6(6), ms7(7); - switch(id) { default: - case 0: return ms0; case 1: return ms1; case 2: return ms2; case 3: return ms3; - case 4: return ms4; case 5: return ms5; case 6: return ms6; case 7: return ms7; - } -} - -static const char JoypadScancodeName[][64] = { - "Hat0", "Hat1", "Hat2", "Hat3", "Hat4", "Hat5", "Hat6", "Hat7", - "Axis0", "Axis1", "Axis2", "Axis3", "Axis4", "Axis5", "Axis6", "Axis7", - "Axis8", "Axis9", "Axis10", "Axis11", "Axis12", "Axis13", "Axis14", "Axis15", - "Button0", "Button1", "Button2", "Button3", "Button4", "Button5", "Button6", "Button7", - "Button8", "Button9", "Button10", "Button11", "Button12", "Button13", "Button14", "Button15", - "Button16", "Button17", "Button18", "Button19", "Button20", "Button21", "Button22", "Button23", - "Button24", "Button25", "Button26", "Button27", "Button28", "Button29", "Button30", "Button31", -}; - -struct Joypad; -Joypad& joypad(unsigned = 0); - -struct Joypad { - const unsigned ID; - enum { Base = Mouse::Base + Mouse::Size * Mouse::Count }; - enum { Count = 8, Size = 64 }; - enum { Hats = 8, Axes = 16, Buttons = 32 }; - - enum Scancode { - Hat0, Hat1, Hat2, Hat3, Hat4, Hat5, Hat6, Hat7, - Axis0, Axis1, Axis2, Axis3, Axis4, Axis5, Axis6, Axis7, - Axis8, Axis9, Axis10, Axis11, Axis12, Axis13, Axis14, Axis15, - Button0, Button1, Button2, Button3, Button4, Button5, Button6, Button7, - Button8, Button9, Button10, Button11, Button12, Button13, Button14, Button15, - Button16, Button17, Button18, Button19, Button20, Button21, Button22, Button23, - Button24, Button25, Button26, Button27, Button28, Button29, Button30, Button31, - Limit, - }; - - enum Hat { HatCenter = 0, HatUp = 1, HatRight = 2, HatDown = 4, HatLeft = 8 }; - - static signed numberDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).belongsTo(scancode)) return i; - } - return -1; - } - - static signed hatDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isHat(scancode)) return scancode - joypad(i).hat(0); - } - return -1; - } - - static signed axisDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isAxis(scancode)) return scancode - joypad(i).axis(0); - } - return -1; - } - - static signed buttonDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isButton(scancode)) return scancode - joypad(i).button(0); - } - return -1; - } - - static bool isAnyHat(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isHat(scancode)) return true; - } - return false; - } - - static bool isAnyAxis(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isAxis(scancode)) return true; - } - return false; - } - - static bool isAnyButton(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isButton(scancode)) return true; - } - return false; - } - - static uint16_t decode(const char *name) { - string s(name); - if(!strbegin(name, "JP")) return 0; - ltrim(s, "JP"); - unsigned id = strunsigned(s); - int pos = strpos(s, "::"); - if(pos < 0) return 0; - s = substr(s, pos + 2); - for(unsigned i = 0; i < Limit; i++) { - if(s == JoypadScancodeName[i]) return Base + Size * id + i; - } - return 0; - } - - string encode(uint16_t code) const { - unsigned index = 0; - for(unsigned i = 0; i < Count; i++) { - if(code >= Base + Size * i && code < Base + Size * (i + 1)) { - index = code - (Base + Size * i); - } - } - return string() << "JP" << ID << "::" << JoypadScancodeName[index]; - } - - uint16_t operator[](Scancode code) const { return Base + ID * Size + code; } - uint16_t hat(unsigned id) const { return Base + Size * ID + Hat0 + id; } - uint16_t axis(unsigned id) const { return Base + Size * ID + Axis0 + id; } - uint16_t button(unsigned id) const { return Base + Size * ID + Button0 + id; } - bool isHat(unsigned id) const { return id >= hat(0) && id <= hat(7); } - bool isAxis(unsigned id) const { return id >= axis(0) && id <= axis(15); } - bool isButton(unsigned id) const { return id >= button(0) && id <= button(31); } - bool belongsTo(uint16_t scancode) const { return isHat(scancode) || isAxis(scancode) || isButton(scancode); } - - Joypad(unsigned ID_) : ID(ID_) {} -}; - -inline Joypad& joypad(unsigned id) { - static Joypad jp0(0), jp1(1), jp2(2), jp3(3), jp4(4), jp5(5), jp6(6), jp7(7); - switch(id) { default: - case 0: return jp0; case 1: return jp1; case 2: return jp2; case 3: return jp3; - case 4: return jp4; case 5: return jp5; case 6: return jp6; case 7: return jp7; - } -} - -struct Scancode { - enum { None = 0, Limit = Joypad::Base + Joypad::Size * Joypad::Count }; - - static uint16_t decode(const char *name) { - uint16_t code; - code = Keyboard::decode(name); - if(code) return code; - code = Mouse::decode(name); - if(code) return code; - code = Joypad::decode(name); - if(code) return code; - return None; - } - - static string encode(uint16_t code) { - for(unsigned i = 0; i < Keyboard::Count; i++) { - if(keyboard(i).belongsTo(code)) return keyboard(i).encode(code); - } - for(unsigned i = 0; i < Mouse::Count; i++) { - if(mouse(i).belongsTo(code)) return mouse(i).encode(code); - } - for(unsigned i = 0; i < Joypad::Count; i++) { - if(joypad(i).belongsTo(code)) return joypad(i).encode(code); - } - return "None"; - } -}; - -} - -#endif diff --git a/snesreader/nall/lzss.hpp b/snesreader/nall/lzss.hpp deleted file mode 100644 index 202bc814..00000000 --- a/snesreader/nall/lzss.hpp +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef NALL_LZSS_HPP -#define NALL_LZSS_HPP - -#include -#include -#include - -namespace nall { - class lzss { - public: - static bool encode(uint8_t *&output, unsigned &outlength, const uint8_t *input, unsigned inlength) { - output = new(zeromemory) uint8_t[inlength * 9 / 8 + 9]; - - unsigned i = 0, o = 0; - while(i < inlength) { - unsigned flagoffset = o++; - uint8_t flag = 0x00; - - for(unsigned b = 0; b < 8 && i < inlength; b++) { - unsigned longest = 0, pointer; - for(unsigned index = 1; index < 4096; index++) { - unsigned count = 0; - while(true) { - if(count >= 15 + 3) break; //verify pattern match is not longer than max length - if(i + count >= inlength) break; //verify pattern match does not read past end of input - if(i + count < index) break; //verify read is not before start of input - if(input[i + count] != input[i + count - index]) break; //verify pattern still matches - count++; - } - - if(count > longest) { - longest = count; - pointer = index; - } - } - - if(longest < 3) output[o++] = input[i++]; - else { - flag |= 1 << b; - uint16_t x = ((longest - 3) << 12) + pointer; - output[o++] = x; - output[o++] = x >> 8; - i += longest; - } - } - - output[flagoffset] = flag; - } - - outlength = o; - return true; - } - - static bool decode(uint8_t *&output, const uint8_t *input, unsigned length) { - output = new(zeromemory) uint8_t[length]; - - unsigned i = 0, o = 0; - while(o < length) { - uint8_t flag = input[i++]; - - for(unsigned b = 0; b < 8 && o < length; b++) { - if(!(flag & (1 << b))) output[o++] = input[i++]; - else { - uint16_t offset = input[i++]; - offset += input[i++] << 8; - uint16_t lookuplength = (offset >> 12) + 3; - offset &= 4095; - for(unsigned index = 0; index < lookuplength && o + index < length; index++) { - output[o + index] = output[o + index - offset]; - } - o += lookuplength; - } - } - } - - return true; - } - }; -} - -#endif diff --git a/snesreader/nall/moduloarray.hpp b/snesreader/nall/moduloarray.hpp deleted file mode 100644 index be549ae9..00000000 --- a/snesreader/nall/moduloarray.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef NALL_MODULO_HPP -#define NALL_MODULO_HPP - -#include - -namespace nall { - template class modulo_array { - public: - inline T operator[](int index) const { - return buffer[size + index]; - } - - inline T read(int index) const { - return buffer[size + index]; - } - - inline void write(unsigned index, const T value) { - buffer[index] = - buffer[index + size] = - buffer[index + size + size] = value; - } - - void serialize(serializer &s) { - s.array(buffer, size * 3); - } - - modulo_array() { - buffer = new T[size * 3](); - } - - ~modulo_array() { - delete[] buffer; - } - - private: - T *buffer; - }; -} - -#endif diff --git a/snesreader/nall/platform.hpp b/snesreader/nall/platform.hpp deleted file mode 100644 index 68ed37ce..00000000 --- a/snesreader/nall/platform.hpp +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef NALL_PLATFORM_HPP -#define NALL_PLATFORM_HPP - -#include - -//========================= -//standard platform headers -//========================= - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(_WIN32) - #include - #include - #include - #undef interface -#else - #include - #include - #include -#endif - -//================== -//warning supression -//================== - -//Visual C++ -#if defined(_MSC_VER) - //disable libc "deprecation" warnings - #pragma warning(disable:4996) -#endif - -//================ -//POSIX compliance -//================ - -#if defined(_MSC_VER) - #define PATH_MAX _MAX_PATH - #define va_copy(dest, src) ((dest) = (src)) -#endif - -#if defined(_WIN32) - #define getcwd _getcwd - #define ftruncate _chsize - #define putenv _putenv - #define mkdir(n, m) _wmkdir(nall::utf16_t(n)) - #define rmdir _rmdir - #define vsnprintf _vsnprintf - #define usleep(n) Sleep(n / 1000) -#endif - -//================ -//inline expansion -//================ - -#if defined(__GNUC__) - #define noinline __attribute__((noinline)) - #define inline inline - #define alwaysinline inline __attribute__((always_inline)) -#elif defined(_MSC_VER) - #define noinline __declspec(noinline) - #define inline inline - #define alwaysinline inline __forceinline -#else - #define noinline - #define inline inline - #define alwaysinline inline -#endif - -#endif - diff --git a/snesreader/nall/priorityqueue.hpp b/snesreader/nall/priorityqueue.hpp deleted file mode 100644 index 7104e791..00000000 --- a/snesreader/nall/priorityqueue.hpp +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef NALL_PRIORITYQUEUE_HPP -#define NALL_PRIORITYQUEUE_HPP - -#include -#include -#include -#include - -namespace nall { - template void priority_queue_nocallback(type_t) {} - - //priority queue implementation using binary min-heap array; - //does not require normalize() function. - //O(1) find (tick) - //O(log n) insert (enqueue) - //O(log n) remove (dequeue) - template class priority_queue { - public: - inline void tick(unsigned ticks) { - basecounter += ticks; - while(heapsize && gte(basecounter, heap[0].counter)) callback(dequeue()); - } - - //counter is relative to current time (eg enqueue(64, ...) fires in 64 ticks); - //counter cannot exceed std::numeric_limits::max() >> 1. - void enqueue(unsigned counter, type_t event) { - unsigned child = heapsize++; - counter += basecounter; - - while(child) { - unsigned parent = (child - 1) >> 1; - if(gte(counter, heap[parent].counter)) break; - - heap[child].counter = heap[parent].counter; - heap[child].event = heap[parent].event; - child = parent; - } - - heap[child].counter = counter; - heap[child].event = event; - } - - type_t dequeue() { - type_t event(heap[0].event); - unsigned parent = 0; - unsigned counter = heap[--heapsize].counter; - - while(true) { - unsigned child = (parent << 1) + 1; - if(child >= heapsize) break; - if(child + 1 < heapsize && gte(heap[child].counter, heap[child + 1].counter)) child++; - if(gte(heap[child].counter, counter)) break; - - heap[parent].counter = heap[child].counter; - heap[parent].event = heap[child].event; - parent = child; - } - - heap[parent].counter = counter; - heap[parent].event = heap[heapsize].event; - return event; - } - - void reset() { - basecounter = 0; - heapsize = 0; - } - - void serialize(serializer &s) { - s.integer(basecounter); - s.integer(heapsize); - for(unsigned n = 0; n < heapcapacity; n++) { - s.integer(heap[n].counter); - s.integer(heap[n].event); - } - } - - priority_queue(unsigned size, function callback_ = &priority_queue_nocallback) - : callback(callback_) { - heap = new heap_t[size]; - heapcapacity = size; - reset(); - } - - ~priority_queue() { - delete[] heap; - } - - priority_queue& operator=(const priority_queue&) = delete; - priority_queue(const priority_queue&) = delete; - - private: - function callback; - unsigned basecounter; - unsigned heapsize; - unsigned heapcapacity; - struct heap_t { - unsigned counter; - type_t event; - } *heap; - - //return true if x is greater than or equal to y - inline bool gte(unsigned x, unsigned y) { - return x - y < (std::numeric_limits::max() >> 1); - } - }; -} - -#endif diff --git a/snesreader/nall/property.hpp b/snesreader/nall/property.hpp deleted file mode 100644 index 6fd33acd..00000000 --- a/snesreader/nall/property.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef NALL_PROPERTY_HPP -#define NALL_PROPERTY_HPP - -//nall::property implements ownership semantics into container classes -//example: property::readonly implies that only owner has full -//access to type; and all other code has readonly access. -// -//this code relies on extended friend semantics from C++0x to work, as it -//declares a friend class via a template paramter. it also exploits a bug in -//G++ 4.x to work even in C++98 mode. -// -//if compiling elsewhere, simply remove the friend class and private semantics - -//property can be used either of two ways: -//struct foo { -// property::readonly x; -// property::readwrite y; -//}; -//-or- -//struct foo : property { -// readonly x; -// readwrite y; -//}; - -//return types are const T& (byref) instead fo T (byval) to avoid major speed -//penalties for objects with expensive copy constructors - -//operator-> provides access to underlying object type: -//readonly foo; -//foo->bar(); -//... will call Object::bar(); - -//operator='s reference is constant so as to avoid leaking a reference handle -//that could bypass access restrictions - -//both constant and non-constant operators are provided, though it may be -//necessary to cast first, for instance: -//struct foo : property { readonly bar; } object; -//int main() { int value = const_cast(object); } - -//writeonly is useful for objects that have non-const reads, but const writes. -//however, to avoid leaking handles, the interface is very restricted. the only -//way to write is via operator=, which requires conversion via eg copy -//constructor. example: -//struct foo { -// foo(bool value) { ... } -//}; -//writeonly bar; -//bar = true; - -namespace nall { - template struct property { - template struct traits { typedef T type; }; - - template struct readonly { - const T* operator->() const { return &value; } - const T& operator()() const { return value; } - operator const T&() const { return value; } - private: - T* operator->() { return &value; } - operator T&() { return value; } - const T& operator=(const T& value_) { return value = value_; } - T value; - friend class traits::type; - }; - - template struct writeonly { - void operator=(const T& value_) { value = value_; } - private: - const T* operator->() const { return &value; } - const T& operator()() const { return value; } - operator const T&() const { return value; } - T* operator->() { return &value; } - operator T&() { return value; } - T value; - friend class traits::type; - }; - - template struct readwrite { - const T* operator->() const { return &value; } - const T& operator()() const { return value; } - operator const T&() const { return value; } - T* operator->() { return &value; } - operator T&() { return value; } - const T& operator=(const T& value_) { return value = value_; } - T value; - }; - }; -} - -#endif diff --git a/snesreader/nall/qt/Makefile b/snesreader/nall/qt/Makefile deleted file mode 100644 index 69e84960..00000000 --- a/snesreader/nall/qt/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -# requires nall/Makefile - -# imports: -# $(qtlibs) -- list of Qt components to link against - -# exports the following symbols: -# $(moc) -- meta-object compiler -# $(rcc) -- resource compiler -# $(qtinc) -- includes for compiling -# $(qtlib) -- libraries for linking - -ifeq ($(moc),) -moc := moc -endif - -ifeq ($(rcc),) -rcc := rcc -endif - -ifeq ($(platform),x) - qtinc := `pkg-config --cflags $(qtlibs)` - qtlib := `pkg-config --libs $(qtlibs)` -else ifeq ($(platform),osx) - qtinc := $(foreach lib,$(qtlibs),-I/Library/Frameworks/$(lib).framework/Versions/4/Headers) - - qtlib := -L/Library/Frameworks - qtlib += $(foreach lib,$(qtlibs),-framework $(lib)) - qtlib += -framework Carbon - qtlib += -framework Cocoa - qtlib += -framework OpenGL - qtlib += -framework AppKit - qtlib += -framework ApplicationServices -else ifeq ($(platform),win) - ifeq ($(qtpath),) - # find Qt install directory from PATH environment variable - qtpath := $(foreach path,$(subst ;, ,$(PATH)),$(if $(wildcard $(path)/$(moc).exe),$(path))) - qtpath := $(strip $(qtpath)) - qtpath := $(subst \,/,$(qtpath)) - qtpath := $(patsubst %/bin,%,$(qtpath)) - endif - - qtinc := -I$(qtpath)/include - qtinc += $(foreach lib,$(qtlibs),-I$(qtpath)/include/$(lib)) - - qtlib := -L$(qtpath)/lib - qtlib += -L$(qtpath)/plugins/imageformats - - qtlib += $(foreach lib,$(qtlibs),-l$(lib)4) - qtlib += -lmingw32 -lqtmain -lcomdlg32 -loleaut32 -limm32 -lwinmm - qtlib += -lwinspool -lmsimg32 -lole32 -ladvapi32 -lws2_32 -luuid -lgdi32 - qtlib += $(foreach lib,$(qtlibs),-l$(lib)4) - - # optional image-file support: - # qtlib += -lqjpeg -lqmng -endif diff --git a/snesreader/nall/qt/check-action.moc.hpp b/snesreader/nall/qt/check-action.moc.hpp deleted file mode 100644 index db378fe9..00000000 --- a/snesreader/nall/qt/check-action.moc.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef NALL_QT_CHECKACTION_HPP -#define NALL_QT_CHECKACTION_HPP - -namespace nall { - -class CheckAction : public QAction { - Q_OBJECT - -public: - bool isChecked() const; - void setChecked(bool); - void toggleChecked(); - CheckAction(const QString&, QObject*); - -protected slots: - -protected: - bool checked; -}; - -inline bool CheckAction::isChecked() const { - return checked; -} - -inline void CheckAction::setChecked(bool checked_) { - checked = checked_; - if(checked) setIcon(QIcon(":/16x16/item-check-on.png")); - else setIcon(QIcon(":/16x16/item-check-off.png")); -} - -inline void CheckAction::toggleChecked() { - setChecked(!isChecked()); -} - -inline CheckAction::CheckAction(const QString &text, QObject *parent) : QAction(text, parent) { - setChecked(false); -} - -} - -#endif diff --git a/snesreader/nall/qt/concept.hpp b/snesreader/nall/qt/concept.hpp deleted file mode 100644 index 51cacef4..00000000 --- a/snesreader/nall/qt/concept.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef NALL_QT_CONCEPT_HPP -#define NALL_QT_CONCEPT_HPP - -#include - -namespace nall { - template struct has_count> { enum { value = true }; }; -} - -#endif diff --git a/snesreader/nall/qt/file-dialog.moc.hpp b/snesreader/nall/qt/file-dialog.moc.hpp deleted file mode 100644 index bcccfaf5..00000000 --- a/snesreader/nall/qt/file-dialog.moc.hpp +++ /dev/null @@ -1,392 +0,0 @@ -#ifndef NALL_QT_FILEDIALOG_HPP -#define NALL_QT_FILEDIALOG_HPP - -#include -#include -#include - -namespace nall { - -class FileDialog; - -class NewFolderDialog : public Window { - Q_OBJECT - -public: - void show(); - NewFolderDialog(FileDialog*); - -protected slots: - void createFolderAction(); - -protected: - FileDialog *parent; - QVBoxLayout *layout; - QLineEdit *folderNameEdit; - QHBoxLayout *controlLayout; - QPushButton *okButton; - QPushButton *cancelButton; -}; - -class FileView : public QListView { - Q_OBJECT - -protected: - void keyPressEvent(QKeyEvent*); - -signals: - void changed(const QModelIndex&); - void browseUp(); - -protected slots: - void currentChanged(const QModelIndex&, const QModelIndex&); -}; - -class FileDialog : public Window { - Q_OBJECT - -public: - void showLoad(); - void showSave(); - void showFolder(); - - void setPath(string path); - void setNameFilters(const string &filters); - FileDialog(); - -signals: - void changed(const string&); - void activated(const string&); - void accepted(const string&); - void rejected(); - -protected slots: - void fileViewChange(const QModelIndex&); - void fileViewActivate(const QModelIndex&); - void pathBoxChanged(); - void filterBoxChanged(); - void createNewFolder(); - void browseUp(); - void acceptAction(); - void rejectAction(); - -protected: - NewFolderDialog *newFolderDialog; - QVBoxLayout *layout; - QHBoxLayout *navigationLayout; - QComboBox *pathBox; - QPushButton *newFolderButton; - QPushButton *upFolderButton; - QHBoxLayout *browseLayout; - QFileSystemModel *fileSystemModel; - FileView *fileView; - QGroupBox *previewFrame; - QLineEdit *fileNameEdit; - QHBoxLayout *controlLayout; - QComboBox *filterBox; - QPushButton *optionsButton; - QPushButton *acceptButton; - QPushButton *rejectButton; - bool lock; - void createFolderAction(const string &name); - void closeEvent(QCloseEvent*); - - friend class NewFolderDialog; -}; - -inline void NewFolderDialog::show() { - folderNameEdit->setText(""); - Window::show(); - folderNameEdit->setFocus(); -} - -inline void NewFolderDialog::createFolderAction() { - string name = folderNameEdit->text().toUtf8().constData(); - if(name == "") { - folderNameEdit->setFocus(); - } else { - parent->createFolderAction(name); - close(); - } -} - -inline NewFolderDialog::NewFolderDialog(FileDialog *fileDialog) : parent(fileDialog) { - setMinimumWidth(240); - setWindowTitle("Create New Folder"); - - layout = new QVBoxLayout; - layout->setAlignment(Qt::AlignTop); - layout->setMargin(5); - layout->setSpacing(5); - setLayout(layout); - - folderNameEdit = new QLineEdit; - layout->addWidget(folderNameEdit); - - controlLayout = new QHBoxLayout; - controlLayout->setAlignment(Qt::AlignRight); - layout->addLayout(controlLayout); - - okButton = new QPushButton("Ok"); - controlLayout->addWidget(okButton); - - cancelButton = new QPushButton("Cancel"); - controlLayout->addWidget(cancelButton); - - connect(folderNameEdit, SIGNAL(returnPressed()), this, SLOT(createFolderAction())); - connect(okButton, SIGNAL(released()), this, SLOT(createFolderAction())); - connect(cancelButton, SIGNAL(released()), this, SLOT(close())); -} - -inline void FileView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous) { - QAbstractItemView::currentChanged(current, previous); - emit changed(current); -} - -inline void FileView::keyPressEvent(QKeyEvent *event) { - //enhance consistency: force OS X to act like Windows and Linux; enter = activate item - if(event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) { - emit activated(currentIndex()); - return; - } - - //simulate popular file manager behavior; backspace = go up one directory - if(event->key() == Qt::Key_Backspace) { - emit browseUp(); - return; - } - - //fallback: unrecognized keypresses get handled by the widget itself - QListView::keyPressEvent(event); -} - -inline void FileDialog::showLoad() { - acceptButton->setText("Load"); - fileNameEdit->hide(); - filterBox->show(); - show(); -} - -inline void FileDialog::showSave() { - acceptButton->setText("Save"); - fileNameEdit->show(); - filterBox->show(); - show(); -} - -inline void FileDialog::showFolder() { - acceptButton->setText("Choose"); - fileNameEdit->hide(); - filterBox->hide(); - setNameFilters("Folders ()"); - show(); -} - -inline void FileDialog::fileViewChange(const QModelIndex &index) { - string path = fileSystemModel->filePath(index).toUtf8().constData(); - if(path == fileSystemModel->rootPath().toUtf8().constData()) path = ""; - fileNameEdit->setText(notdir(path)); - emit changed(path); -} - -inline void FileDialog::fileViewActivate(const QModelIndex &index) { - string path = fileSystemModel->filePath(index).toUtf8().constData(); - if(fileSystemModel->isDir(index)) { - emit activated(path); - setPath(path); - } else { - emit activated(path); - close(); - } -} - -inline void FileDialog::pathBoxChanged() { - if(lock) return; - setPath(pathBox->currentText().toUtf8().constData()); -} - -inline void FileDialog::filterBoxChanged() { - if(lock) return; - string filters = filterBox->currentText().toUtf8().constData(); - if(filters.length() == 0) { - fileSystemModel->setNameFilters(QStringList() << "*"); - } else { - filters = substr(filters, strpos(filters, "(")); - ltrim(filters, "("); - rtrim(filters, ")"); - lstring part; - part.split(" ", filters); - QStringList list; - for(unsigned i = 0; i < part.size(); i++) list << part[i]; - fileSystemModel->setNameFilters(list); - } -} - -inline void FileDialog::createNewFolder() { - newFolderDialog->show(); -} - -inline void FileDialog::browseUp() { - if(pathBox->count() > 1) pathBox->setCurrentIndex(1); -} - -inline void FileDialog::setPath(string path) { - lock = true; - newFolderDialog->close(); - - if(QDir(path).exists()) { - newFolderButton->setEnabled(true); - } else { - newFolderButton->setEnabled(false); - path = ""; - } - - fileSystemModel->setRootPath(path); - fileView->setRootIndex(fileSystemModel->index(path)); - fileView->setCurrentIndex(fileView->rootIndex()); - fileView->setFocus(); - - pathBox->clear(); - if(path.length() > 0) { - QDir directory(path); - while(true) { - pathBox->addItem(directory.absolutePath()); - if(directory.isRoot()) break; - directory.cdUp(); - } - } - pathBox->addItem(""); - fileNameEdit->setText(""); - - lock = false; -} - -inline void FileDialog::setNameFilters(const string &filters) { - lock = true; - - lstring list; - list.split("\n", filters); - - filterBox->clear(); - for(unsigned i = 0; i < list.size(); i++) { - filterBox->addItem(list[i]); - } - - lock = false; - filterBoxChanged(); -} - -inline void FileDialog::acceptAction() { - string path = fileSystemModel->rootPath().toUtf8().constData(); - path << "/" << notdir(fileNameEdit->text().toUtf8().constData()); - rtrim(path, "/"); - if(QDir(path).exists()) { - emit accepted(path); - setPath(path); - } else { - emit accepted(path); - close(); - } -} - -inline void FileDialog::rejectAction() { - emit rejected(); - close(); -} - -inline void FileDialog::createFolderAction(const string &name) { - string path = fileSystemModel->rootPath().toUtf8().constData(); - path << "/" << notdir(name); - mkdir(path, 0755); -} - -inline void FileDialog::closeEvent(QCloseEvent *event) { - newFolderDialog->close(); - Window::closeEvent(event); -} - -inline FileDialog::FileDialog() { - newFolderDialog = new NewFolderDialog(this); - resize(640, 360); - - layout = new QVBoxLayout; - layout->setMargin(5); - layout->setSpacing(5); - setLayout(layout); - - navigationLayout = new QHBoxLayout; - layout->addLayout(navigationLayout); - - pathBox = new QComboBox; - pathBox->setEditable(true); - pathBox->setMinimumContentsLength(16); - pathBox->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); - pathBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - navigationLayout->addWidget(pathBox); - - newFolderButton = new QPushButton; - newFolderButton->setIconSize(QSize(16, 16)); - newFolderButton->setIcon(QIcon(":/16x16/folder-new.png")); - navigationLayout->addWidget(newFolderButton); - - upFolderButton = new QPushButton; - upFolderButton->setIconSize(QSize(16, 16)); - upFolderButton->setIcon(QIcon(":/16x16/go-up.png")); - navigationLayout->addWidget(upFolderButton); - - browseLayout = new QHBoxLayout; - layout->addLayout(browseLayout); - - fileSystemModel = new QFileSystemModel; - fileSystemModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); - fileSystemModel->setNameFilterDisables(false); - - fileView = new FileView; - fileView->setMinimumWidth(320); - fileView->setModel(fileSystemModel); - fileView->setIconSize(QSize(16, 16)); - browseLayout->addWidget(fileView); - - previewFrame = new QGroupBox; - previewFrame->hide(); - browseLayout->addWidget(previewFrame); - - fileNameEdit = new QLineEdit; - layout->addWidget(fileNameEdit); - - controlLayout = new QHBoxLayout; - controlLayout->setAlignment(Qt::AlignRight); - layout->addLayout(controlLayout); - - filterBox = new QComboBox; - filterBox->setMinimumContentsLength(16); - filterBox->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); - filterBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - controlLayout->addWidget(filterBox); - - optionsButton = new QPushButton("Options"); - optionsButton->hide(); - controlLayout->addWidget(optionsButton); - - acceptButton = new QPushButton("Ok"); - controlLayout->addWidget(acceptButton); - - rejectButton = new QPushButton("Cancel"); - controlLayout->addWidget(rejectButton); - - lock = false; - connect(pathBox, SIGNAL(currentIndexChanged(int)), this, SLOT(pathBoxChanged())); - connect(newFolderButton, SIGNAL(released()), this, SLOT(createNewFolder())); - connect(upFolderButton, SIGNAL(released()), this, SLOT(browseUp())); - connect(fileView, SIGNAL(changed(const QModelIndex&)), this, SLOT(fileViewChange(const QModelIndex&))); - connect(fileView, SIGNAL(activated(const QModelIndex&)), this, SLOT(fileViewActivate(const QModelIndex&))); - connect(fileView, SIGNAL(browseUp()), this, SLOT(browseUp())); - connect(fileNameEdit, SIGNAL(returnPressed()), this, SLOT(acceptAction())); - connect(filterBox, SIGNAL(currentIndexChanged(int)), this, SLOT(filterBoxChanged())); - connect(acceptButton, SIGNAL(released()), this, SLOT(acceptAction())); - connect(rejectButton, SIGNAL(released()), this, SLOT(rejectAction())); -} - -} - -#endif diff --git a/snesreader/nall/qt/hex-editor.moc.hpp b/snesreader/nall/qt/hex-editor.moc.hpp deleted file mode 100644 index d59f4be9..00000000 --- a/snesreader/nall/qt/hex-editor.moc.hpp +++ /dev/null @@ -1,173 +0,0 @@ -#ifndef NALL_QT_HEXEDITOR_HPP -#define NALL_QT_HEXEDITOR_HPP - -#include -#include -#include - -namespace nall { - -class HexEditor : public QTextEdit { - Q_OBJECT - -public: - function reader; - function writer; - - void setColumns(unsigned columns); - void setRows(unsigned rows); - void setOffset(unsigned offset); - void setSize(unsigned size); - unsigned lineWidth() const; - void refresh(); - - HexEditor(); - -protected slots: - void scrolled(); - -protected: - QHBoxLayout *layout; - QScrollBar *scrollBar; - unsigned editorColumns; - unsigned editorRows; - unsigned editorOffset; - unsigned editorSize; - bool lock; - - void keyPressEvent(QKeyEvent*); -}; - -inline void HexEditor::keyPressEvent(QKeyEvent *event) { - QTextCursor cursor = textCursor(); - unsigned x = cursor.position() % lineWidth(); - unsigned y = cursor.position() / lineWidth(); - - int hexCode = -1; - switch(event->key()) { - case Qt::Key_0: hexCode = 0; break; - case Qt::Key_1: hexCode = 1; break; - case Qt::Key_2: hexCode = 2; break; - case Qt::Key_3: hexCode = 3; break; - case Qt::Key_4: hexCode = 4; break; - case Qt::Key_5: hexCode = 5; break; - case Qt::Key_6: hexCode = 6; break; - case Qt::Key_7: hexCode = 7; break; - case Qt::Key_8: hexCode = 8; break; - case Qt::Key_9: hexCode = 9; break; - case Qt::Key_A: hexCode = 10; break; - case Qt::Key_B: hexCode = 11; break; - case Qt::Key_C: hexCode = 12; break; - case Qt::Key_D: hexCode = 13; break; - case Qt::Key_E: hexCode = 14; break; - case Qt::Key_F: hexCode = 15; break; - } - - if(cursor.hasSelection() == false && hexCode != -1) { - bool cursorOffsetValid = (x >= 11 && ((x - 11) % 3) != 2); - if(cursorOffsetValid) { - bool nibble = (x - 11) % 3; //0 = top nibble, 1 = bottom nibble - unsigned cursorOffset = y * editorColumns + ((x - 11) / 3); - unsigned effectiveOffset = editorOffset + cursorOffset; - if(effectiveOffset >= editorSize) effectiveOffset %= editorSize; - - uint8_t data = reader ? reader(effectiveOffset) : 0x00; - data &= (nibble == 0 ? 0x0f : 0xf0); - data |= (nibble == 0 ? (hexCode << 4) : (hexCode << 0)); - if(writer) writer(effectiveOffset, data); - refresh(); - - cursor.setPosition(y * lineWidth() + x + 1); //advance cursor - setTextCursor(cursor); - } - } else { - //allow navigation keys to move cursor, but block text input - setTextInteractionFlags(Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse); - QTextEdit::keyPressEvent(event); - setTextInteractionFlags(Qt::TextEditorInteraction); - } -} - -inline void HexEditor::setColumns(unsigned columns) { - editorColumns = columns; -} - -inline void HexEditor::setRows(unsigned rows) { - editorRows = rows; - scrollBar->setPageStep(editorRows); -} - -inline void HexEditor::setOffset(unsigned offset) { - lock = true; - editorOffset = offset; - scrollBar->setSliderPosition(editorOffset / editorColumns); - lock = false; -} - -inline void HexEditor::setSize(unsigned size) { - editorSize = size; - bool indivisible = (editorSize % editorColumns) != 0; //add one for incomplete row - scrollBar->setRange(0, editorSize / editorColumns + indivisible - editorRows); -} - -inline unsigned HexEditor::lineWidth() const { - return 11 + 3 * editorColumns; -} - -inline void HexEditor::refresh() { - string output; - char temp[256]; - unsigned offset = editorOffset; - - for(unsigned y = 0; y < editorRows; y++) { - if(offset >= editorSize) break; - sprintf(temp, "%.4x:%.4x", (offset >> 16) & 0xffff, (offset >> 0) & 0xffff); - output << "" << temp << "  "; - - for(unsigned x = 0; x < editorColumns; x++) { - if(offset >= editorSize) break; - sprintf(temp, "%.2x", reader ? reader(offset) : 0x00); - offset++; - output << "" << temp << ""; - if(x != (editorColumns - 1)) output << " "; - } - - if(y != (editorRows - 1)) output << "
"; - } - - setHtml(output); -} - -inline void HexEditor::scrolled() { - if(lock) return; - unsigned offset = scrollBar->sliderPosition(); - editorOffset = offset * editorColumns; - refresh(); -} - -inline HexEditor::HexEditor() { - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - - layout = new QHBoxLayout; - layout->setAlignment(Qt::AlignRight); - layout->setMargin(0); - layout->setSpacing(0); - setLayout(layout); - - scrollBar = new QScrollBar(Qt::Vertical); - scrollBar->setSingleStep(1); - layout->addWidget(scrollBar); - - lock = false; - connect(scrollBar, SIGNAL(actionTriggered(int)), this, SLOT(scrolled())); - - setColumns(16); - setRows(16); - setSize(0); - setOffset(0); -} - -} - -#endif diff --git a/snesreader/nall/qt/radio-action.moc.hpp b/snesreader/nall/qt/radio-action.moc.hpp deleted file mode 100644 index a2bbca48..00000000 --- a/snesreader/nall/qt/radio-action.moc.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef NALL_QT_RADIOACTION_HPP -#define NALL_QT_RADIOACTION_HPP - -namespace nall { - -class RadioAction : public QAction { - Q_OBJECT - -public: - bool isChecked() const; - void setChecked(bool); - void toggleChecked(); - RadioAction(const QString&, QObject*); - -protected slots: - -protected: - bool checked; -}; - -inline bool RadioAction::isChecked() const { - return checked; -} - -inline void RadioAction::setChecked(bool checked_) { - checked = checked_; - if(checked) setIcon(QIcon(":/16x16/item-radio-on.png")); - else setIcon(QIcon(":/16x16/item-radio-off.png")); -} - -inline void RadioAction::toggleChecked() { - setChecked(!isChecked()); -} - -inline RadioAction::RadioAction(const QString &text, QObject *parent) : QAction(text, parent) { - setChecked(false); -} - -} - -#endif diff --git a/snesreader/nall/qt/window.moc.hpp b/snesreader/nall/qt/window.moc.hpp deleted file mode 100644 index 0d3bf390..00000000 --- a/snesreader/nall/qt/window.moc.hpp +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef NALL_QT_WINDOW_HPP -#define NALL_QT_WINDOW_HPP - -#include -#include - -namespace nall { - -class Window : public QWidget { - Q_OBJECT - -public: - void setGeometryString(string *geometryString); - void setCloseOnEscape(bool); - void show(); - void hide(); - void shrink(); - - Window(); - -protected slots: - -protected: - string *geometryString; - bool closeOnEscape; - void keyReleaseEvent(QKeyEvent *event); - void closeEvent(QCloseEvent *event); -}; - -inline void Window::setGeometryString(string *geometryString_) { - geometryString = geometryString_; - if(geometryString && isVisible() == false) { - uint8_t *data; - unsigned length; - base64::decode(data, length, *geometryString); - QByteArray array((const char*)data, length); - delete[] data; - restoreGeometry(array); - } -} - -inline void Window::setCloseOnEscape(bool value) { - closeOnEscape = value; -} - -inline void Window::show() { - if(geometryString && isVisible() == false) { - uint8_t *data; - unsigned length; - base64::decode(data, length, *geometryString); - QByteArray array((const char*)data, length); - delete[] data; - restoreGeometry(array); - } - QWidget::show(); - QApplication::processEvents(); - activateWindow(); - raise(); -} - -inline void Window::hide() { - if(geometryString && isVisible() == true) { - char *data; - QByteArray geometry = saveGeometry(); - base64::encode(data, (const uint8_t*)geometry.data(), geometry.length()); - *geometryString = data; - delete[] data; - } - QWidget::hide(); -} - -inline void Window::shrink() { - if(isFullScreen()) return; - - for(unsigned i = 0; i < 2; i++) { - resize(0, 0); - usleep(2000); - QApplication::processEvents(); - } -} - -inline void Window::keyReleaseEvent(QKeyEvent *event) { - if(closeOnEscape && (event->key() == Qt::Key_Escape)) close(); - QWidget::keyReleaseEvent(event); -} - -inline void Window::closeEvent(QCloseEvent *event) { - if(geometryString) { - char *data; - QByteArray geometry = saveGeometry(); - base64::encode(data, (const uint8_t*)geometry.data(), geometry.length()); - *geometryString = data; - delete[] data; - } - QWidget::closeEvent(event); -} - -inline Window::Window() { - geometryString = 0; - closeOnEscape = true; -} - -} - -#endif diff --git a/snesreader/nall/serial.hpp b/snesreader/nall/serial.hpp deleted file mode 100644 index 6f5cf6d6..00000000 --- a/snesreader/nall/serial.hpp +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef NALL_SERIAL_HPP -#define NALL_SERIAL_HPP - -#include -#include -#include -#include - -#include - -namespace nall { - class serial { - public: - //-1 on error, otherwise return bytes read - int read(uint8_t *data, unsigned length) { - if(port_open == false) return -1; - return ::read(port, (void*)data, length); - } - - //-1 on error, otherwise return bytes written - int write(const uint8_t *data, unsigned length) { - if(port_open == false) return -1; - return ::write(port, (void*)data, length); - } - - bool open(const char *portname, unsigned rate) { - close(); - - port = ::open(portname, O_RDWR | O_NOCTTY | O_NDELAY | O_NONBLOCK); - if(port == -1) return false; - - if(ioctl(port, TIOCEXCL) == -1) { close(); return false; } - if(fcntl(port, F_SETFL, 0) == -1) { close(); return false; } - if(tcgetattr(port, &original_attr) == -1) { close(); return false; } - - termios attr = original_attr; - cfmakeraw(&attr); - cfsetspeed(&attr, rate); - - attr.c_lflag &=~ (ECHO | ECHONL | ISIG | ICANON | IEXTEN); - attr.c_iflag &=~ (BRKINT | PARMRK | INPCK | ISTRIP | INLCR | IGNCR | ICRNL | IXON | IXOFF | IXANY); - attr.c_iflag |= (IGNBRK | IGNPAR); - attr.c_oflag &=~ (OPOST); - attr.c_cflag &=~ (CSIZE | CSTOPB | PARENB); - attr.c_cflag |= (CS8 | CREAD | CLOCAL); - attr.c_cc[VTIME] = attr.c_cc[VMIN] = 0; - - if(tcsetattr(port, TCSANOW, &attr) == -1) { close(); return false; } - return port_open = true; - } - - void close() { - if(port != -1) { - tcdrain(port); - if(port_open == true) { - tcsetattr(port, TCSANOW, &original_attr); - port_open = false; - } - ::close(port); - port = -1; - } - } - - serial() { - port = -1; - port_open = false; - } - - ~serial() { - close(); - } - - private: - int port; - bool port_open; - termios original_attr; - }; -} - -#endif diff --git a/snesreader/nall/serializer.hpp b/snesreader/nall/serializer.hpp deleted file mode 100644 index 49b0964e..00000000 --- a/snesreader/nall/serializer.hpp +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef NALL_SERIALIZER_HPP -#define NALL_SERIALIZER_HPP - -#include -#include -#include - -namespace nall { - //serializer: a class designed to save and restore the state of classes. - // - //benefits: - //- data() will be portable in size (it is not necessary to specify type sizes.) - //- data() will be portable in endianness (always stored internally as little-endian.) - //- one serialize function can both save and restore class states. - // - //caveats: - //- only plain-old-data can be stored. complex classes must provide serialize(serializer&); - //- floating-point usage is not portable across platforms - class serializer { - public: - enum mode_t { Load, Save, Size }; - - mode_t mode() const { - return imode; - } - - const uint8_t* data() const { - return idata; - } - - unsigned size() const { - return isize; - } - - unsigned capacity() const { - return icapacity; - } - - template void floatingpoint(T &value) { - enum { size = sizeof(T) }; - //this is rather dangerous, and not cross-platform safe; - //but there is no standardized way to export FP-values - uint8_t *p = (uint8_t*)&value; - if(imode == Save) { - for(unsigned n = 0; n < size; n++) idata[isize++] = p[n]; - } else if(imode == Load) { - for(unsigned n = 0; n < size; n++) p[n] = idata[isize++]; - } else { - isize += size; - } - } - - template void integer(T &value) { - enum { size = is_bool::value ? 1 : sizeof(T) }; - if(imode == Save) { - for(unsigned n = 0; n < size; n++) idata[isize++] = value >> (n << 3); - } else if(imode == Load) { - value = 0; - for(unsigned n = 0; n < size; n++) value |= idata[isize++] << (n << 3); - } else if(imode == Size) { - isize += size; - } - } - - template void array(T &array) { - enum { size = sizeof(T) / sizeof(typename remove_extent::type) }; - for(unsigned n = 0; n < size; n++) integer(array[n]); - } - - template void array(T array, unsigned size) { - for(unsigned n = 0; n < size; n++) integer(array[n]); - } - - //copy - serializer& operator=(const serializer &s) { - if(idata) delete[] idata; - - imode = s.imode; - idata = new uint8_t[s.icapacity]; - isize = s.isize; - icapacity = s.icapacity; - - memcpy(idata, s.idata, s.icapacity); - return *this; - } - - serializer(const serializer &s) : idata(0) { - operator=(s); - } - - //move - serializer& operator=(serializer &&s) { - if(idata) delete[] idata; - - imode = s.imode; - idata = s.idata; - isize = s.isize; - icapacity = s.icapacity; - - s.idata = 0; - return *this; - } - - serializer(serializer &&s) { - operator=(move(s)); - } - - //construction - serializer() { - imode = Size; - idata = 0; - isize = 0; - } - - serializer(unsigned capacity) { - imode = Save; - idata = new uint8_t[capacity](); - isize = 0; - icapacity = capacity; - } - - serializer(const uint8_t *data, unsigned capacity) { - imode = Load; - idata = new uint8_t[capacity]; - isize = 0; - icapacity = capacity; - memcpy(idata, data, capacity); - } - - ~serializer() { - if(idata) delete[] idata; - } - - private: - mode_t imode; - uint8_t *idata; - unsigned isize; - unsigned icapacity; - }; - -}; - -#endif diff --git a/snesreader/nall/sha256.hpp b/snesreader/nall/sha256.hpp deleted file mode 100644 index 7f41f04e..00000000 --- a/snesreader/nall/sha256.hpp +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef NALL_SHA256_HPP -#define NALL_SHA256_HPP - -//author: vladitx - -namespace nall { - #define PTR(t, a) ((t*)(a)) - - #define SWAP32(x) ((uint32_t)( \ - (((uint32_t)(x) & 0x000000ff) << 24) | \ - (((uint32_t)(x) & 0x0000ff00) << 8) | \ - (((uint32_t)(x) & 0x00ff0000) >> 8) | \ - (((uint32_t)(x) & 0xff000000) >> 24) \ - )) - - #define ST32(a, d) *PTR(uint32_t, a) = (d) - #define ST32BE(a, d) ST32(a, SWAP32(d)) - - #define LD32(a) *PTR(uint32_t, a) - #define LD32BE(a) SWAP32(LD32(a)) - - #define LSL32(x, n) ((uint32_t)(x) << (n)) - #define LSR32(x, n) ((uint32_t)(x) >> (n)) - #define ROR32(x, n) (LSR32(x, n) | LSL32(x, 32 - (n))) - - //first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19 - static const uint32_t T_H[8] = { - 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, - }; - - //first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311 - static const uint32_t T_K[64] = { - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, - }; - - struct sha256_ctx { - uint8_t in[64]; - unsigned inlen; - - uint32_t w[64]; - uint32_t h[8]; - uint64_t len; - }; - - void sha256_init(sha256_ctx *p) { - memset(p, 0, sizeof(sha256_ctx)); - memcpy(p->h, T_H, sizeof(T_H)); - } - - static void sha256_block(sha256_ctx *p) { - unsigned i; - uint32_t s0, s1; - uint32_t a, b, c, d, e, f, g, h; - uint32_t t1, t2, maj, ch; - - for(i = 0; i < 16; i++) p->w[i] = LD32BE(p->in + i * 4); - - for(i = 16; i < 64; i++) { - s0 = ROR32(p->w[i - 15], 7) ^ ROR32(p->w[i - 15], 18) ^ LSR32(p->w[i - 15], 3); - s1 = ROR32(p->w[i - 2], 17) ^ ROR32(p->w[i - 2], 19) ^ LSR32(p->w[i - 2], 10); - p->w[i] = p->w[i - 16] + s0 + p->w[i - 7] + s1; - } - - a = p->h[0]; b = p->h[1]; c = p->h[2]; d = p->h[3]; - e = p->h[4]; f = p->h[5]; g = p->h[6]; h = p->h[7]; - - for(i = 0; i < 64; i++) { - s0 = ROR32(a, 2) ^ ROR32(a, 13) ^ ROR32(a, 22); - maj = (a & b) ^ (a & c) ^ (b & c); - t2 = s0 + maj; - s1 = ROR32(e, 6) ^ ROR32(e, 11) ^ ROR32(e, 25); - ch = (e & f) ^ (~e & g); - t1 = h + s1 + ch + T_K[i] + p->w[i]; - - h = g; g = f; f = e; e = d + t1; - d = c; c = b; b = a; a = t1 + t2; - } - - p->h[0] += a; p->h[1] += b; p->h[2] += c; p->h[3] += d; - p->h[4] += e; p->h[5] += f; p->h[6] += g; p->h[7] += h; - - //next block - p->inlen = 0; - } - - void sha256_chunk(sha256_ctx *p, const uint8_t *s, unsigned len) { - unsigned l; - p->len += len; - - while(len) { - l = 64 - p->inlen; - l = (len < l) ? len : l; - - memcpy(p->in + p->inlen, s, l); - s += l; - p->inlen += l; - len -= l; - - if(p->inlen == 64) sha256_block(p); - } - } - - void sha256_final(sha256_ctx *p) { - uint64_t len; - p->in[p->inlen++] = 0x80; - - if(p->inlen > 56) { - memset(p->in + p->inlen, 0, 64 - p->inlen); - sha256_block(p); - } - - memset(p->in + p->inlen, 0, 56 - p->inlen); - - len = p->len << 3; - ST32BE(p->in + 56, len >> 32); - ST32BE(p->in + 60, len); - sha256_block(p); - } - - void sha256_hash(sha256_ctx *p, uint8_t *s) { - uint32_t *t = (uint32_t*)s; - for(unsigned i = 0; i < 8; i++) ST32BE(t++, p->h[i]); - } - - #undef PTR - #undef SWAP32 - #undef ST32 - #undef ST32BE - #undef LD32 - #undef LD32BE - #undef LSL32 - #undef LSR32 - #undef ROR32 -} - -#endif diff --git a/snesreader/nall/sort.hpp b/snesreader/nall/sort.hpp deleted file mode 100644 index 23c317a5..00000000 --- a/snesreader/nall/sort.hpp +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef NALL_SORT_HPP -#define NALL_SORT_HPP - -#include - -//class: merge sort -//average: O(n log n) -//worst: O(n log n) -//memory: O(n) -//stack: O(log n) -//stable?: yes - -//notes: -//there are two primary reasons for choosing merge sort -//over the (usually) faster quick sort*: -//1: it is a stable sort. -//2: it lacks O(n^2) worst-case overhead. -//(* which is also O(n log n) in the average case.) - -namespace nall { - template - void sort(T list[], unsigned length) { - if(length <= 1) return; //nothing to sort - - //use insertion sort to quickly sort smaller blocks - if(length < 64) { - for(unsigned i = 0; i < length; i++) { - unsigned min = i; - for(unsigned j = i + 1; j < length; j++) { - if(list[j] < list[min]) min = j; - } - if(min != i) swap(list[i], list[min]); - } - return; - } - - //split list in half and recursively sort both - unsigned middle = length / 2; - sort(list, middle); - sort(list + middle, length - middle); - - //left and right are sorted here; perform merge sort - T *buffer = new T[length]; - unsigned offset = 0; - unsigned left = 0; - unsigned right = middle; - while(left < middle && right < length) { - if(list[left] < list[right]) { - buffer[offset++] = list[left++]; - } else { - buffer[offset++] = list[right++]; - } - } - while(left < middle) buffer[offset++] = list[left++]; - while(right < length) buffer[offset++] = list[right++]; - - for(unsigned i = 0; i < length; i++) list[i] = buffer[i]; - delete[] buffer; - } -} - -#endif diff --git a/snesreader/nall/static.hpp b/snesreader/nall/static.hpp deleted file mode 100644 index 4acb9fd0..00000000 --- a/snesreader/nall/static.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef NALL_STATIC_HPP -#define NALL_STATIC_HPP - -namespace nall { - template struct static_if { typedef T type; }; - template struct static_if { typedef F type; }; - template struct mp_static_if { typedef typename static_if::type type; }; - - template struct static_and { enum { value = false }; }; - template<> struct static_and { enum { value = true }; }; - template struct mp_static_and { enum { value = static_and::value }; }; - - template struct static_or { enum { value = false }; }; - template<> struct static_or { enum { value = true }; }; - template<> struct static_or { enum { value = true }; }; - template<> struct static_or { enum { value = true }; }; - template struct mp_static_or { enum { value = static_or::value }; }; -} - -#endif diff --git a/snesreader/nall/stdint.hpp b/snesreader/nall/stdint.hpp deleted file mode 100644 index d8b6c788..00000000 --- a/snesreader/nall/stdint.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef NALL_STDINT_HPP -#define NALL_STDINT_HPP - -#include - -#if defined(_MSC_VER) - typedef signed char int8_t; - typedef signed short int16_t; - typedef signed int int32_t; - typedef signed long long int64_t; - typedef int64_t intmax_t; - #if defined(_WIN64) - typedef int64_t intptr_t; - #else - typedef int32_t intptr_t; - #endif - - typedef unsigned char uint8_t; - typedef unsigned short uint16_t; - typedef unsigned int uint32_t; - typedef unsigned long long uint64_t; - typedef uint64_t uintmax_t; - #if defined(_WIN64) - typedef uint64_t uintptr_t; - #else - typedef uint32_t uintptr_t; - #endif -#else - #include -#endif - -namespace nall { - static_assert(sizeof(int8_t) == 1, "int8_t is not of the correct size" ); - static_assert(sizeof(int16_t) == 2, "int16_t is not of the correct size"); - static_assert(sizeof(int32_t) == 4, "int32_t is not of the correct size"); - static_assert(sizeof(int64_t) == 8, "int64_t is not of the correct size"); - - static_assert(sizeof(uint8_t) == 1, "int8_t is not of the correct size" ); - static_assert(sizeof(uint16_t) == 2, "int16_t is not of the correct size"); - static_assert(sizeof(uint32_t) == 4, "int32_t is not of the correct size"); - static_assert(sizeof(uint64_t) == 8, "int64_t is not of the correct size"); -} - -#endif diff --git a/snesreader/nall/string.hpp b/snesreader/nall/string.hpp deleted file mode 100644 index 65a4a4b8..00000000 --- a/snesreader/nall/string.hpp +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef NALL_STRING_HPP -#define NALL_STRING_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace nall { - template<> struct has_length { enum { value = true }; }; - template<> struct has_size { enum { value = true }; }; -} - -#endif diff --git a/snesreader/nall/string/base.hpp b/snesreader/nall/string/base.hpp deleted file mode 100644 index b9230fe4..00000000 --- a/snesreader/nall/string/base.hpp +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef NALL_STRING_BASE_HPP -#define NALL_STRING_BASE_HPP - -#include -#include -#include -#include -#include -#include -#include -#include - -inline char chrlower(char c); -inline char chrupper(char c); -inline int stricmp(const char *dest, const char *src); -inline int strpos (const char *str, const char *key); -inline int qstrpos(const char *str, const char *key); -inline bool strbegin (const char *str, const char *key); -inline bool stribegin(const char *str, const char *key); -inline bool strend (const char *str, const char *key); -inline bool striend(const char *str, const char *key); -inline char* strlower(char *str); -inline char* strupper(char *str); -inline char* strtr(char *dest, const char *before, const char *after); -inline uintmax_t strhex (const char *str); -inline intmax_t strsigned (const char *str); -inline uintmax_t strunsigned(const char *str); -inline uintmax_t strbin (const char *str); -inline double strdouble (const char *str); -inline bool match(const char *pattern, const char *str); -inline bool strint (const char *str, int &result); -inline bool strmath(const char *str, int &result); -inline size_t strlcpy(char *dest, const char *src, size_t length); -inline size_t strlcat(char *dest, const char *src, size_t length); -inline char* ltrim(char *str, const char *key = " "); -inline char* rtrim(char *str, const char *key = " "); -inline char* trim (char *str, const char *key = " "); -inline char* ltrim_once(char *str, const char *key = " "); -inline char* rtrim_once(char *str, const char *key = " "); -inline char* trim_once (char *str, const char *key = " "); - -namespace nall { - class string; - template inline string to_string(T); - - class string { - public: - inline void reserve(size_t); - inline unsigned length() const; - - inline string& assign(const char*); - inline string& append(const char*); - template inline string& operator= (T value); - template inline string& operator<<(T value); - - inline operator const char*() const; - inline char* operator()(); - inline char& operator[](int); - - inline bool operator==(const char*) const; - inline bool operator!=(const char*) const; - inline bool operator< (const char*) const; - inline bool operator<=(const char*) const; - inline bool operator> (const char*) const; - inline bool operator>=(const char*) const; - - inline string(); - inline string(const char*); - inline string(const string&); - inline string(string&&); - inline string& operator=(const string&); - inline string& operator=(string&&); - inline ~string(); - - inline bool readfile(const char*); - inline string& replace (const char*, const char*); - inline string& qreplace(const char*, const char*); - - protected: - char *data; - size_t size; - - #if defined(QT_CORE_LIB) - public: - inline operator QString() const; - #endif - }; - - class lstring : public linear_vector { - public: - template inline lstring& operator<<(T value); - - inline int find(const char*); - inline void split (const char*, const char*, unsigned = 0); - inline void qsplit(const char*, const char*, unsigned = 0); - - lstring(); - lstring(std::initializer_list); - }; - - template inline string sprint(const char *s, Args... args); - template inline void print(const char *s, Args... args); -}; - -inline size_t strlcpy(nall::string &dest, const char *src, size_t length); -inline size_t strlcat(nall::string &dest, const char *src, size_t length); - -inline nall::string& strlower(nall::string &str); -inline nall::string& strupper(nall::string &str); -inline nall::string& strtr(nall::string &dest, const char *before, const char *after); -inline nall::string& ltrim(nall::string &str, const char *key = " "); -inline nall::string& rtrim(nall::string &str, const char *key = " "); -inline nall::string& trim (nall::string &str, const char *key = " "); -inline nall::string& ltrim_once(nall::string &str, const char *key = " "); -inline nall::string& rtrim_once(nall::string &str, const char *key = " "); -inline nall::string& trim_once (nall::string &str, const char *key = " "); - -inline nall::string substr(const char *src, size_t start = 0, size_t length = 0); -template inline nall::string strhex(uintmax_t value); -template inline nall::string strsigned(intmax_t value); -template inline nall::string strunsigned(uintmax_t value); -template inline nall::string strbin(uintmax_t value); -inline size_t strdouble(char *str, double value); -inline nall::string strdouble(double value); - -#endif diff --git a/snesreader/nall/string/cast.hpp b/snesreader/nall/string/cast.hpp deleted file mode 100644 index 7433073d..00000000 --- a/snesreader/nall/string/cast.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef NALL_STRING_CAST_HPP -#define NALL_STRING_CAST_HPP - -namespace nall { - //this is needed, as C++0x does not support explicit template specialization inside classes - template<> inline string to_string (bool v) { return v ? "true" : "false"; } - template<> inline string to_string (signed int v) { return strsigned(v); } - template<> inline string to_string (unsigned int v) { return strunsigned(v); } - template<> inline string to_string (double v) { return strdouble(v); } - template<> inline string to_string (char *v) { return v; } - template<> inline string to_string (const char *v) { return v; } - template<> inline string to_string (string v) { return v; } - template<> inline string to_string(const string &v) { return v; } - - template string& string::operator= (T value) { return assign(to_string(value)); } - template string& string::operator<<(T value) { return append(to_string(value)); } - - template lstring& lstring::operator<<(T value) { - operator[](size()).assign(to_string(value)); - return *this; - } - - #if defined(QT_CORE_LIB) - template<> inline string to_string(const QString &v) { return v.toUtf8().constData(); } - string::operator QString() const { return QString::fromUtf8(*this); } - #endif -} - -#endif diff --git a/snesreader/nall/string/compare.hpp b/snesreader/nall/string/compare.hpp deleted file mode 100644 index 23d2ee39..00000000 --- a/snesreader/nall/string/compare.hpp +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef NALL_STRING_COMPARE_HPP -#define NALL_STRING_COMPARE_HPP - -char chrlower(char c) { - return (c >= 'A' && c <= 'Z') ? c + ('a' - 'A') : c; -} - -char chrupper(char c) { - return (c >= 'a' && c <= 'z') ? c - ('a' - 'A') : c; -} - -int stricmp(const char *dest, const char *src) { - while(*dest) { - if(chrlower(*dest) != chrlower(*src)) break; - dest++; - src++; - } - - return (int)chrlower(*dest) - (int)chrlower(*src); -} - -int strpos(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return -1; - for(int i = 0; i <= ssl - ksl; i++) { - if(!memcmp(str + i, key, ksl)) { - return i; - } - } - return -1; -} - -int qstrpos(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return -1; - for(int i = 0; i <= ssl - ksl;) { - uint8_t x = str[i]; - if(x == '\"' || x == '\'') { - uint8_t z = i++; - while(str[i] != x && i < ssl) i++; - if(i >= ssl) i = z; - } - if(!memcmp(str + i, key, ksl)) { - return i; - } else { - i++; - } - } - return -1; -} - -bool strbegin(const char *str, const char *key) { - int i, ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - return (!memcmp(str, key, ksl)); -} - -bool stribegin(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - for(int i = 0; i < ksl; i++) { - if(str[i] >= 'A' && str[i] <= 'Z') { - if(str[i] != key[i] && str[i]+0x20 != key[i])return false; - } else if(str[i] >= 'a' && str[i] <= 'z') { - if(str[i] != key[i] && str[i]-0x20 != key[i])return false; - } else { - if(str[i] != key[i])return false; - } - } - return true; -} - -bool strend(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - return (!memcmp(str + ssl - ksl, key, ksl)); -} - -bool striend(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - for(int i = ssl - ksl, z = 0; i < ssl; i++, z++) { - if(str[i] >= 'A' && str[i] <= 'Z') { - if(str[i] != key[z] && str[i]+0x20 != key[z])return false; - } else if(str[i] >= 'a' && str[i] <= 'z') { - if(str[i] != key[z] && str[i]-0x20 != key[z])return false; - } else { - if(str[i] != key[z])return false; - } - } - return true; -} - -#endif diff --git a/snesreader/nall/string/convert.hpp b/snesreader/nall/string/convert.hpp deleted file mode 100644 index a34c3f14..00000000 --- a/snesreader/nall/string/convert.hpp +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef NALL_STRING_CONVERT_HPP -#define NALL_STRING_CONVERT_HPP - -char* strlower(char *str) { - if(!str) return 0; - int i = 0; - while(str[i]) { - str[i] = chrlower(str[i]); - i++; - } - return str; -} - -char* strupper(char *str) { - if(!str) return 0; - int i = 0; - while(str[i]) { - str[i] = chrupper(str[i]); - i++; - } - return str; -} - -char* strtr(char *dest, const char *before, const char *after) { - if(!dest || !before || !after) return dest; - int sl = strlen(dest), bsl = strlen(before), asl = strlen(after); - - if(bsl != asl || bsl == 0) return dest; //patterns must be the same length for 1:1 replace - for(unsigned i = 0; i < sl; i++) { - for(unsigned l = 0; l < bsl; l++) { - if(dest[i] == before[l]) { - dest[i] = after[l]; - break; - } - } - } - - return dest; -} - -uintmax_t strhex(const char *str) { - if(!str) return 0; - uintmax_t result = 0; - - //skip hex identifiers 0x and $, if present - if(*str == '0' && (*(str + 1) == 'X' || *(str + 1) == 'x')) str += 2; - else if(*str == '$') str++; - - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else if(x >= 'A' && x <= 'F') x -= 'A' - 10; - else if(x >= 'a' && x <= 'f') x -= 'a' - 10; - else break; //stop at first invalid character - result = result * 16 + x; - } - - return result; -} - -intmax_t strsigned(const char *str) { - if(!str) return 0; - intmax_t result = 0; - bool negate = false; - - //check for negation - if(*str == '-') { - negate = true; - str++; - } - - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else break; //stop at first invalid character - result = result * 10 + x; - } - - return !negate ? result : -result; -} - -uintmax_t strunsigned(const char *str) { - if(!str) return 0; - uintmax_t result = 0; - - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else break; //stop at first invalid character - result = result * 10 + x; - } - - return result; -} - -uintmax_t strbin(const char *str) { - if(!str) return 0; - uintmax_t result = 0; - - //skip bin identifiers 0b and %, if present - if(*str == '0' && (*(str + 1) == 'B' || *(str + 1) == 'b')) str += 2; - else if(*str == '%') str++; - - while(*str) { - uint8_t x = *str++; - if(x == '0' || x == '1') x -= '0'; - else break; //stop at first invalid character - result = result * 2 + x; - } - - return result; -} - -double strdouble(const char *str) { - if(!str) return 0.0; - bool negate = false; - - //check for negation - if(*str == '-') { - negate = true; - str++; - } - - intmax_t result_integral = 0; - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else if(x == '.') break; //break loop and read fractional part - else return (double)result_integral; //invalid value, assume no fractional part - result_integral = result_integral * 10 + x; - } - - intmax_t result_fractional = 0; - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else break; //stop at first invalid character - result_fractional = result_fractional * 10 + x; - } - - //calculate fractional portion - double result = (double)result_fractional; - while((uintmax_t)result > 0) result /= 10.0; - result += (double)result_integral; - - return !negate ? result : -result; -} - -#endif diff --git a/snesreader/nall/string/core.hpp b/snesreader/nall/string/core.hpp deleted file mode 100644 index 5881018b..00000000 --- a/snesreader/nall/string/core.hpp +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef NALL_STRING_CORE_HPP -#define NALL_STRING_CORE_HPP - -namespace nall { - -void string::reserve(size_t size_) { - if(size_ > size) { - size = size_; - data = (char*)realloc(data, size + 1); - data[size] = 0; - } -} - -unsigned string::length() const { - return strlen(data); -} - -string& string::assign(const char *s) { - unsigned length = strlen(s); - reserve(length); - strcpy(data, s); - return *this; -} - -string& string::append(const char *s) { - unsigned length = strlen(data) + strlen(s); - reserve(length); - strcat(data, s); - return *this; -} - -string::operator const char*() const { - return data; -} - -char* string::operator()() { - return data; -} - -char& string::operator[](int index) { - reserve(index); - return data[index]; -} - -bool string::operator==(const char *str) const { return strcmp(data, str) == 0; } -bool string::operator!=(const char *str) const { return strcmp(data, str) != 0; } -bool string::operator< (const char *str) const { return strcmp(data, str) < 0; } -bool string::operator<=(const char *str) const { return strcmp(data, str) <= 0; } -bool string::operator> (const char *str) const { return strcmp(data, str) > 0; } -bool string::operator>=(const char *str) const { return strcmp(data, str) >= 0; } - -string::string() { - size = 64; - data = (char*)malloc(size + 1); - *data = 0; -} - -string::string(const char *value) { - size = strlen(value); - data = strdup(value); -} - -string::string(const string &value) { - size = strlen(value); - data = strdup(value); -} - -string::string(string &&source) { - size = source.size; - data = source.data; - source.data = 0; -} - -string& string::operator=(const string &value) { - assign(value); - return *this; -} - -string& string::operator=(string &&source) { - if(data) free(data); - size = source.size; - data = source.data; - source.data = 0; - return *this; -} - -string::~string() { - free(data); -} - -bool string::readfile(const char *filename) { - assign(""); - - #if !defined(_WIN32) - FILE *fp = fopen(filename, "rb"); - #else - FILE *fp = _wfopen(nall::utf16_t(filename), L"rb"); - #endif - if(!fp) return false; - - fseek(fp, 0, SEEK_END); - size_t size = ftell(fp); - rewind(fp); - char *fdata = new char[size + 1]; - unsigned unused = fread(fdata, 1, size, fp); - fclose(fp); - fdata[size] = 0; - assign(fdata); - delete[] fdata; - - return true; -} - -int lstring::find(const char *key) { - for(unsigned i = 0; i < size(); i++) { - if(operator[](i) == key) return i; - } - return -1; -} - -inline lstring::lstring() { -} - -inline lstring::lstring(std::initializer_list list) { - for(const string *s = list.begin(); s != list.end(); ++s) { - operator<<(*s); - } -} - -} - -#endif diff --git a/snesreader/nall/string/filename.hpp b/snesreader/nall/string/filename.hpp deleted file mode 100644 index e26493c9..00000000 --- a/snesreader/nall/string/filename.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef NALL_FILENAME_HPP -#define NALL_FILENAME_HPP - -namespace nall { - // "foo/bar.c" -> "foo/", "bar.c" -> "./" - inline string dir(char const *name) { - string result = name; - for(signed i = strlen(result); i >= 0; i--) { - if(result[i] == '/' || result[i] == '\\') { - result[i + 1] = 0; - break; - } - if(i == 0) result = "./"; - } - return result; - } - - // "foo/bar.c" -> "bar.c" - inline string notdir(char const *name) { - for(signed i = strlen(name); i >= 0; i--) { - if(name[i] == '/' || name[i] == '\\') { - name += i + 1; - break; - } - } - string result = name; - return result; - } - - // "foo/bar.c" -> "foo/bar" - inline string basename(char const *name) { - string result = name; - for(signed i = strlen(result); i >= 0; i--) { - if(result[i] == '/' || result[i] == '\\') { - //file has no extension - break; - } - - if(result[i] == '.') { - result[i] = 0; - break; - } - } - return result; - } - - // "foo/bar.c" -> "c" - inline string extension(char const *name) { - for(signed i = strlen(name); i >= 0; i--) { - if(name[i] == '.') { - name += i + 1; - break; - } - } - string result = name; - return result; - } -} - -#endif diff --git a/snesreader/nall/string/match.hpp b/snesreader/nall/string/match.hpp deleted file mode 100644 index 70184fec..00000000 --- a/snesreader/nall/string/match.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef NALL_STRING_MATCH_HPP -#define NALL_STRING_MATCH_HPP - -bool match(const char *p, const char *s) { - const char *p_ = 0, *s_ = 0; - - for(;;) { - if(!*s) { - while(*p == '*') p++; - return !*p; - } - - //wildcard match - if(*p == '*') { - p_ = p++, s_ = s; - continue; - } - - //any match - if(*p == '?') { - p++, s++; - continue; - } - - //ranged match - if(*p == '{') { - #define pattern(name_, rule_) \ - if(strbegin(p, name_)) { \ - if(rule_) { \ - p += sizeof(name_) - 1, s++; \ - continue; \ - } \ - goto failure; \ - } - - pattern("{alpha}", (*s >= 'A' && *s <= 'Z') || (*s >= 'a' && *s <= 'z')) - pattern("{alphanumeric}", (*s >= 'A' && *s <= 'Z') || (*s >= 'a' && *s <= 'z') || (*s >= '0' && *s <= '9')) - pattern("{binary}", (*s == '0' || *s == '1')) - pattern("{hex}", (*s >= '0' && *s <= '9') || (*s >= 'A' && *s <= 'F') || (*s >= 'a' && *s <= 'f')) - pattern("{lowercase}", (*s >= 'a' && *s <= 'z')) - pattern("{numeric}", (*s >= '0' && *s <= '9')) - pattern("{uppercase}", (*s >= 'A' && *s <= 'Z')) - pattern("{whitespace}", (*s == ' ' || *s == '\t')) - - #undef pattern - goto failure; - } - - //reserved character match - if(*p == '\\') { - p++; - //fallthrough - } - - //literal match - if(*p == *s) { - p++, *s++; - continue; - } - - //attempt wildcard rematch - failure: - if(p_) { - p = p_, s = s_ + 1; - continue; - } - - return false; - } -} - -#endif diff --git a/snesreader/nall/string/math.hpp b/snesreader/nall/string/math.hpp deleted file mode 100644 index 604b083e..00000000 --- a/snesreader/nall/string/math.hpp +++ /dev/null @@ -1,160 +0,0 @@ -#ifndef NALL_STRING_MATH_HPP -#define NALL_STRING_MATH_HPP - -static int eval_integer(const char *&s) { - if(!*s) throw "unrecognized_integer"; - int value = 0, x = *s, y = *(s + 1); - - //hexadecimal - if(x == '0' && (y == 'X' || y == 'x')) { - s += 2; - while(true) { - if(*s >= '0' && *s <= '9') { value = value * 16 + (*s++ - '0'); continue; } - if(*s >= 'A' && *s <= 'F') { value = value * 16 + (*s++ - 'A' + 10); continue; } - if(*s >= 'a' && *s <= 'f') { value = value * 16 + (*s++ - 'a' + 10); continue; } - return value; - } - } - - //binary - if(x == '0' && (y == 'B' || y == 'b')) { - s += 2; - while(true) { - if(*s == '0' || *s == '1') { value = value * 2 + (*s++ - '0'); continue; } - return value; - } - } - - //octal (or decimal '0') - if(x == '0') { - s += 1; - while(true) { - if(*s >= '0' && *s <= '7') { value = value * 8 + (*s++ - '0'); continue; } - return value; - } - } - - //decimal - if(x >= '0' && x <= '9') { - while(true) { - if(*s >= '0' && *s <= '9') { value = value * 10 + (*s++ - '0'); continue; } - return value; - } - } - - //char - if(x == '\'' && y != '\'') { - s += 1; - while(true) { - value = value * 256 + *s++; - if(*s == '\'') { s += 1; return value; } - if(!*s) throw "mismatched_char"; - } - } - - throw "unrecognized_integer"; -} - -static int eval(const char *&s, int depth = 0) { - while(*s == ' ' || *s == '\t') s++; //trim whitespace - if(!*s) throw "unrecognized_token"; - int value = 0, x = *s, y = *(s + 1); - - if(*s == '(') { - value = eval(++s, 1); - if(*s++ != ')') throw "mismatched_group"; - } - - else if(x == '!') value = !eval(++s, 13); - else if(x == '~') value = ~eval(++s, 13); - else if(x == '+') value = +eval(++s, 13); - else if(x == '-') value = -eval(++s, 13); - - else if((x >= '0' && x <= '9') || x == '\'') value = eval_integer(s); - - else throw "unrecognized_token"; - - while(true) { - while(*s == ' ' || *s == '\t') s++; //trim whitespace - if(!*s) break; - x = *s, y = *(s + 1); - - if(depth >= 13) break; - if(x == '*') { value *= eval(++s, 13); continue; } - if(x == '/') { value /= eval(++s, 13); continue; } - if(x == '%') { value %= eval(++s, 13); continue; } - - if(depth >= 12) break; - if(x == '+') { value += eval(++s, 12); continue; } - if(x == '-') { value -= eval(++s, 12); continue; } - - if(depth >= 11) break; - if(x == '<' && y == '<') { value <<= eval(++++s, 11); continue; } - if(x == '>' && y == '>') { value >>= eval(++++s, 11); continue; } - - if(depth >= 10) break; - if(x == '<' && y == '=') { value = value <= eval(++++s, 10); continue; } - if(x == '>' && y == '=') { value = value >= eval(++++s, 10); continue; } - if(x == '<') { value = value < eval(++s, 10); continue; } - if(x == '>') { value = value > eval(++s, 10); continue; } - - if(depth >= 9) break; - if(x == '=' && y == '=') { value = value == eval(++++s, 9); continue; } - if(x == '!' && y == '=') { value = value != eval(++++s, 9); continue; } - - if(depth >= 8) break; - if(x == '&' && y != '&') { value = value & eval(++s, 8); continue; } - - if(depth >= 7) break; - if(x == '^' && y != '^') { value = value ^ eval(++s, 7); continue; } - - if(depth >= 6) break; - if(x == '|' && y != '|') { value = value | eval(++s, 6); continue; } - - if(depth >= 5) break; - if(x == '&' && y == '&') { value = eval(++++s, 5) && value; continue; } - - if(depth >= 4) break; - if(x == '^' && y == '^') { value = (!eval(++++s, 4) != !value); continue; } - - if(depth >= 3) break; - if(x == '|' && y == '|') { value = eval(++++s, 3) || value; continue; } - - if(x == '?') { - int lhs = eval(++s, 2); - if(*s != ':') throw "mismatched_ternary"; - int rhs = eval(++s, 2); - value = value ? lhs : rhs; - continue; - } - if(depth >= 2) break; - - if(depth > 0 && x == ')') break; - - throw "unrecognized_token"; - } - - return value; -} - -bool strint(const char *s, int &result) { - try { - result = eval_integer(s); - return true; - } catch(const char*) { - result = 0; - return false; - } -} - -bool strmath(const char *s, int &result) { - try { - result = eval(s); - return true; - } catch(const char*) { - result = 0; - return false; - } -} - -#endif diff --git a/snesreader/nall/string/replace.hpp b/snesreader/nall/string/replace.hpp deleted file mode 100644 index db405a9b..00000000 --- a/snesreader/nall/string/replace.hpp +++ /dev/null @@ -1,103 +0,0 @@ -#ifndef NALL_STRING_REPLACE_HPP -#define NALL_STRING_REPLACE_HPP - -namespace nall { - -string& string::replace(const char *key, const char *token) { - int i, z, ksl = strlen(key), tsl = strlen(token), ssl = length(); - unsigned int replace_count = 0, size = ssl; - char *buffer; - - if(ksl <= ssl) { - if(tsl > ksl) { //the new string may be longer than the old string... - for(i = 0; i <= ssl - ksl;) { //so let's find out how big of a string we'll need... - if(!memcmp(data + i, key, ksl)) { - replace_count++; - i += ksl; - } else i++; - } - size = ssl + ((tsl - ksl) * replace_count); - reserve(size); - } - - buffer = new char[size + 1]; - for(i = z = 0; i < ssl;) { - if(i <= ssl - ksl) { - if(!memcmp(data + i, key, ksl)) { - memcpy(buffer + z, token, tsl); - z += tsl; - i += ksl; - } else buffer[z++] = data[i++]; - } else buffer[z++] = data[i++]; - } - buffer[z] = 0; - - assign(buffer); - delete[] buffer; - } - - return *this; -} - -string& string::qreplace(const char *key, const char *token) { - int i, l, z, ksl = strlen(key), tsl = strlen(token), ssl = length(); - unsigned int replace_count = 0, size = ssl; - uint8_t x; - char *buffer; - - if(ksl <= ssl) { - if(tsl > ksl) { - for(i = 0; i <= ssl - ksl;) { - x = data[i]; - if(x == '\"' || x == '\'') { - l = i; - i++; - while(data[i++] != x) { - if(i == ssl) { - i = l; - break; - } - } - } - if(!memcmp(data + i, key, ksl)) { - replace_count++; - i += ksl; - } else i++; - } - size = ssl + ((tsl - ksl) * replace_count); - reserve(size); - } - - buffer = new char[size + 1]; - for(i = z = 0; i < ssl;) { - x = data[i]; - if(x == '\"' || x == '\'') { - l = i++; - while(data[i] != x && i < ssl)i++; - if(i >= ssl)i = l; - else { - memcpy(buffer + z, data + l, i - l); - z += i - l; - } - } - if(i <= ssl - ksl) { - if(!memcmp(data + i, key, ksl)) { - memcpy(buffer + z, token, tsl); - z += tsl; - i += ksl; - replace_count++; - } else buffer[z++] = data[i++]; - } else buffer[z++] = data[i++]; - } - buffer[z] = 0; - - assign(buffer); - delete[] buffer; - } - - return *this; -} - -}; - -#endif diff --git a/snesreader/nall/string/split.hpp b/snesreader/nall/string/split.hpp deleted file mode 100644 index bb77dfcd..00000000 --- a/snesreader/nall/string/split.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef NALL_STRING_SPLIT_HPP -#define NALL_STRING_SPLIT_HPP - -namespace nall { - -void lstring::split(const char *key, const char *src, unsigned limit) { - reset(); - - int ssl = strlen(src), ksl = strlen(key); - int lp = 0, split_count = 0; - - for(int i = 0; i <= ssl - ksl;) { - if(!memcmp(src + i, key, ksl)) { - strlcpy(operator[](split_count++), src + lp, i - lp + 1); - i += ksl; - lp = i; - if(!--limit) break; - } else i++; - } - - operator[](split_count++) = src + lp; -} - -void lstring::qsplit(const char *key, const char *src, unsigned limit) { - reset(); - - int ssl = strlen(src), ksl = strlen(key); - int lp = 0, split_count = 0; - - for(int i = 0; i <= ssl - ksl;) { - uint8_t x = src[i]; - - if(x == '\"' || x == '\'') { - int z = i++; //skip opening quote - while(i < ssl && src[i] != x) i++; - if(i >= ssl) i = z; //failed match, rewind i - else { - i++; //skip closing quote - continue; //restart in case next char is also a quote - } - } - - if(!memcmp(src + i, key, ksl)) { - strlcpy(operator[](split_count++), src + lp, i - lp + 1); - i += ksl; - lp = i; - if(!--limit) break; - } else i++; - } - - operator[](split_count++) = src + lp; -} - -}; - -#endif diff --git a/snesreader/nall/string/strl.hpp b/snesreader/nall/string/strl.hpp deleted file mode 100644 index 329e8520..00000000 --- a/snesreader/nall/string/strl.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef NALL_STRING_STRL_HPP -#define NALL_STRING_STRL_HPP - -//strlcpy, strlcat based on OpenBSD implementation by Todd C. Miller - -//return = strlen(src) -size_t strlcpy(char *dest, const char *src, size_t length) { - char *d = dest; - const char *s = src; - size_t n = length; - - if(n) { - while(--n && (*d++ = *s++)); //copy as many bytes as possible, or until null terminator reached - } - - if(!n) { - if(length) *d = 0; - while(*s++); //traverse rest of s, so that s - src == strlen(src) - } - - return (s - src - 1); //return length of copied string, sans null terminator -} - -//return = strlen(src) + min(length, strlen(dest)) -size_t strlcat(char *dest, const char *src, size_t length) { - char *d = dest; - const char *s = src; - size_t n = length; - - while(n-- && *d) d++; //find end of dest - size_t dlength = d - dest; - n = length - dlength; //subtract length of dest from maximum string length - - if(!n) return dlength + strlen(s); - - while(*s) { - if(n != 1) { - *d++ = *s; - n--; - } - s++; - } - *d = 0; - - return dlength + (s - src); //return length of resulting string, sans null terminator -} - -#endif diff --git a/snesreader/nall/string/trim.hpp b/snesreader/nall/string/trim.hpp deleted file mode 100644 index 8f218c54..00000000 --- a/snesreader/nall/string/trim.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef NALL_STRING_TRIM_HPP -#define NALL_STRING_TRIM_HPP - -char* ltrim(char *str, const char *key) { - if(!key || !*key) return str; - while(strbegin(str, key)) { - char *dest = str, *src = str + strlen(key); - while(true) { - *dest = *src++; - if(!*dest) break; - dest++; - } - } - return str; -} - -char* rtrim(char *str, const char *key) { - if(!key || !*key) return str; - while(strend(str, key)) str[strlen(str) - strlen(key)] = 0; - return str; -} - -char* trim(char *str, const char *key) { - return ltrim(rtrim(str, key), key); -} - -char* ltrim_once(char *str, const char *key) { - if(!key || !*key) return str; - if(strbegin(str, key)) { - char *dest = str, *src = str + strlen(key); - while(true) { - *dest = *src++; - if(!*dest) break; - dest++; - } - } - return str; -} - -char* rtrim_once(char *str, const char *key) { - if(!key || !*key) return str; - if(strend(str, key)) str[strlen(str) - strlen(key)] = 0; - return str; -} - -char* trim_once(char *str, const char *key) { - return ltrim_once(rtrim_once(str, key), key); -} - -#endif diff --git a/snesreader/nall/string/utility.hpp b/snesreader/nall/string/utility.hpp deleted file mode 100644 index c050446b..00000000 --- a/snesreader/nall/string/utility.hpp +++ /dev/null @@ -1,165 +0,0 @@ -#ifndef NALL_STRING_UTILITY_HPP -#define NALL_STRING_UTILITY_HPP - -size_t strlcpy(nall::string &dest, const char *src, size_t length) { - dest.reserve(length); - return strlcpy(dest(), src, length); -} - -size_t strlcat(nall::string &dest, const char *src, size_t length) { - dest.reserve(length); - return strlcat(dest(), src, length); -} - -nall::string substr(const char *src, size_t start, size_t length) { - nall::string dest; - if(length == 0) { - //copy entire string - dest = src + start; - } else { - //copy partial string - strlcpy(dest, src + start, length + 1); - } - return dest; -} - -/* very simplistic wrappers to return nall::string& instead of char* type */ - -nall::string& strlower(nall::string &str) { strlower(str()); return str; } -nall::string& strupper(nall::string &str) { strupper(str()); return str; } -nall::string& strtr(nall::string &dest, const char *before, const char *after) { strtr(dest(), before, after); return dest; } -nall::string& ltrim(nall::string &str, const char *key) { ltrim(str(), key); return str; } -nall::string& rtrim(nall::string &str, const char *key) { rtrim(str(), key); return str; } -nall::string& trim (nall::string &str, const char *key) { trim (str(), key); return str; } -nall::string& ltrim_once(nall::string &str, const char *key) { ltrim_once(str(), key); return str; } -nall::string& rtrim_once(nall::string &str, const char *key) { rtrim_once(str(), key); return str; } -nall::string& trim_once (nall::string &str, const char *key) { trim_once (str(), key); return str; } - -/* arithmetic <> string */ - -template nall::string strhex(uintmax_t value) { - nall::string output; - unsigned offset = 0; - - //render string backwards, as we do not know its length yet - do { - unsigned n = value & 15; - output[offset++] = n < 10 ? '0' + n : 'a' + n - 10; - value >>= 4; - } while(value); - - while(offset < length) output[offset++] = padding; - output[offset--] = 0; - - //reverse the string in-place - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -template nall::string strsigned(intmax_t value) { - nall::string output; - unsigned offset = 0; - - bool negative = value < 0; - if(negative) value = abs(value); - - do { - unsigned n = value % 10; - output[offset++] = '0' + n; - value /= 10; - } while(value); - - while(offset < length) output[offset++] = padding; - if(negative) output[offset++] = '-'; - output[offset--] = 0; - - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -template nall::string strunsigned(uintmax_t value) { - nall::string output; - unsigned offset = 0; - - do { - unsigned n = value % 10; - output[offset++] = '0' + n; - value /= 10; - } while(value); - - while(offset < length) output[offset++] = padding; - output[offset--] = 0; - - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -template nall::string strbin(uintmax_t value) { - nall::string output; - unsigned offset = 0; - - do { - unsigned n = value & 1; - output[offset++] = '0' + n; - value >>= 1; - } while(value); - - while(offset < length) output[offset++] = padding; - output[offset--] = 0; - - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -//using sprintf is certainly not the most ideal method to convert -//a double to a string ... but attempting to parse a double by -//hand, digit-by-digit, results in subtle rounding errors. -size_t strdouble(char *str, double value) { - char buffer[256]; - sprintf(buffer, "%f", value); - - //remove excess 0's in fraction (2.500000 -> 2.5) - for(char *p = buffer; *p; p++) { - if(*p == '.') { - char *p = buffer + strlen(buffer) - 1; - while(*p == '0') { - if(*(p - 1) != '.') *p = 0; //... but not for eg 1.0 -> 1. - p--; - } - break; - } - } - - unsigned length = strlen(buffer); - if(str) strcpy(str, buffer); - return length + 1; -} - -nall::string strdouble(double value) { - nall::string temp; - temp.reserve(strdouble(0, value)); - strdouble(temp(), value); - return temp; -} - -#endif diff --git a/snesreader/nall/string/variadic.hpp b/snesreader/nall/string/variadic.hpp deleted file mode 100644 index e707b487..00000000 --- a/snesreader/nall/string/variadic.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef NALL_STRING_VARIADIC_HPP -#define NALL_STRING_VARIADIC_HPP - -namespace nall { - static void sprint(string &output, unsigned &offset, const char *&s) { - while(*s) output[offset++] = *s++; - } - - template - static void sprint(string &output, unsigned &offset, const char *&s, T value, Args... args) { - while(*s) { - if(*s == '$') { - string data = to_string(value); - unsigned i = 0; - while(data[i]) output[offset++] = data[i++]; - sprint(output, offset, ++s, args...); - return; - } else { - output[offset++] = *s++; - } - } - } - - template inline string sprint(const char *s, Args... args) { - string output; - unsigned offset = 0; - sprint(output, offset, s, args...); - output[offset] = 0; - return output; - } - - template inline void print(const char *s, Args... args) { - printf("%s", (const char*)sprint(s, args...)); - } -} - -#endif diff --git a/snesreader/nall/string/xml.hpp b/snesreader/nall/string/xml.hpp deleted file mode 100644 index 30d6bae6..00000000 --- a/snesreader/nall/string/xml.hpp +++ /dev/null @@ -1,268 +0,0 @@ -#ifndef NALL_STRING_XML_HPP -#define NALL_STRING_XML_HPP - -//XML subset parser -//version 0.04 - -#include - -namespace nall { - -struct xml_attribute { - string name; - string content; - virtual string parse() const; -}; - -struct xml_element : xml_attribute { - string parse() const; - array attribute; - array element; - ~xml_element(); - -protected: - void parse_doctype(const char *&data); - bool parse_head(string data); - bool parse_body(const char *&data); - friend xml_element *xml_parse(const char *data); -}; - -inline string xml_attribute::parse() const { - string data; - unsigned offset = 0; - - const char *source = content; - while(*source) { - if(*source == '&') { - if(strbegin(source, "<")) { data[offset++] = '<'; source += 4; continue; } - if(strbegin(source, ">")) { data[offset++] = '>'; source += 4; continue; } - if(strbegin(source, "&")) { data[offset++] = '&'; source += 5; continue; } - if(strbegin(source, "'")) { data[offset++] = '\''; source += 6; continue; } - if(strbegin(source, """)) { data[offset++] = '"'; source += 6; continue; } - } - - //reject illegal characters - if(*source == '&') return ""; - if(*source == '<') return ""; - if(*source == '>') return ""; - - data[offset++] = *source++; - } - - data[offset] = 0; - return data; -} - -inline string xml_element::parse() const { - string data; - unsigned offset = 0; - - const char *source = content; - while(*source) { - if(*source == '&') { - if(strbegin(source, "<")) { data[offset++] = '<'; source += 4; continue; } - if(strbegin(source, ">")) { data[offset++] = '>'; source += 4; continue; } - if(strbegin(source, "&")) { data[offset++] = '&'; source += 5; continue; } - if(strbegin(source, "'")) { data[offset++] = '\''; source += 6; continue; } - if(strbegin(source, """)) { data[offset++] = '"'; source += 6; continue; } - } - - if(strbegin(source, ""); - if(pos == -1) return ""; - source += pos + 3; - continue; - } - - if(strbegin(source, ""); - if(pos == -1) return ""; - string cdata = substr(source, 9, pos - 9); - data << cdata; - offset += strlen(cdata); - - source += offset + 3; - continue; - } - - //reject illegal characters - if(*source == '&') return ""; - if(*source == '<') return ""; - if(*source == '>') return ""; - - data[offset++] = *source++; - } - - data[offset] = 0; - return data; -} - -inline void xml_element::parse_doctype(const char *&data) { - name = "!DOCTYPE"; - const char *content_begin = data; - - signed counter = 0; - while(*data) { - char value = *data++; - if(value == '<') counter++; - if(value == '>') counter--; - if(counter < 0) { - content = substr(content_begin, 0, data - content_begin - 1); - return; - } - } - throw "..."; -} - -inline bool xml_element::parse_head(string data) { - data.qreplace("\t", " "); - data.qreplace("\r", " "); - data.qreplace("\n", " "); - while(qstrpos(data, " ") >= 0) data.qreplace(" ", " "); - data.qreplace(" =", "="); - data.qreplace("= ", "="); - rtrim(data); - - lstring part; - part.qsplit(" ", data); - - name = part[0]; - if(name == "") throw "..."; - - for(unsigned i = 1; i < part.size(); i++) { - lstring side; - side.qsplit("=", part[i]); - if(side.size() != 2) throw "..."; - - xml_attribute *attr = new xml_attribute; - attr->name = side[0]; - attr->content = side[1]; - if(strbegin(attr->content, "\"") && strend(attr->content, "\"")) trim_once(attr->content, "\""); - else if(strbegin(attr->content, "'") && strend(attr->content, "'")) trim_once(attr->content, "'"); - else throw "..."; - attribute.add(attr); - } -} - -inline bool xml_element::parse_body(const char *&data) { - while(true) { - if(!*data) return false; - if(*data++ != '<') continue; - if(*data == '/') return false; - - if(strbegin(data, "!DOCTYPE") == true) { - parse_doctype(data); - return true; - } - - if(strbegin(data, "!--")) { - signed offset = strpos(data, "-->"); - if(offset == -1) throw "..."; - data += offset + 3; - continue; - } - - if(strbegin(data, "![CDATA[")) { - signed offset = strpos(data, "]]>"); - if(offset == -1) throw "..."; - data += offset + 3; - continue; - } - - signed offset = strpos(data, ">"); - if(offset == -1) throw "..."; - - string tag = substr(data, 0, offset); - data += offset + 1; - const char *content_begin = data; - - bool self_terminating = false; - - if(strend(tag, "?") == true) { - self_terminating = true; - rtrim_once(tag, "?"); - } else if(strend(tag, "/") == true) { - self_terminating = true; - rtrim_once(tag, "/"); - } - - parse_head(tag); - if(self_terminating) return true; - - while(*data) { - unsigned index = element.size(); - xml_element *elem = new xml_element; - if(elem->parse_body(data) == false) { - delete elem; - - if(*data == '/') { - signed length = data - content_begin - 1; - if(length > 0) content = substr(content_begin, 0, length); - - data++; - offset = strpos(data, ">"); - if(offset == -1) throw "..."; - - tag = substr(data, 0, offset); - data += offset + 1; - - tag.replace("\t", " "); - tag.replace("\r", " "); - tag.replace("\n", " "); - while(strpos(tag, " ") >= 0) tag.replace(" ", " "); - rtrim(tag); - - if(name != tag) throw "..."; - return true; - } - } else { - element.add(elem); - } - } - } -} - -inline xml_element::~xml_element() { - for(unsigned i = 0; i < attribute.size(); i++) delete attribute[i]; - for(unsigned i = 0; i < element.size(); i++) delete element[i]; -} - -//ensure there is only one root element -inline bool xml_validate(xml_element *document) { - unsigned root_counter = 0; - - for(unsigned i = 0; i < document->element.size(); i++) { - string &name = document->element[i]->name; - if(strbegin(name, "?")) continue; - if(strbegin(name, "!")) continue; - if(++root_counter > 1) return false; - } - - return true; -} - -inline xml_element* xml_parse(const char *data) { - xml_element *self = new xml_element; - - try { - while(*data) { - xml_element *elem = new xml_element; - if(elem->parse_body(data) == false) { - delete elem; - break; - } else { - self->element.add(elem); - } - } - - if(xml_validate(self) == false) throw "..."; - return self; - } catch(const char*) { - delete self; - return 0; - } -} - -} - -#endif diff --git a/snesreader/nall/traits.hpp b/snesreader/nall/traits.hpp deleted file mode 100644 index 0e7e0db3..00000000 --- a/snesreader/nall/traits.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef NALL_TRAITS_HPP -#define NALL_TRAITS_HPP - -namespace nall { - //== - //is - //== - - template struct is_integral { enum { value = false }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - - template struct is_floating_point { enum { value = false }; }; - template<> struct is_floating_point { enum { value = true }; }; - template<> struct is_floating_point { enum { value = true }; }; - template<> struct is_floating_point { enum { value = true }; }; - - template struct is_bool { enum { value = false }; }; - template<> struct is_bool { enum { value = true }; }; - - template struct is_void { enum { value = false }; }; - template<> struct is_void { enum { value = true }; }; - - template struct is_arithmetic { - enum { value = is_integral::value || is_floating_point::value }; - }; - - template struct is_fundamental { - enum { value = is_integral::value || is_floating_point::value || is_void::value }; - }; - - template struct is_compound { - enum { value = !is_fundamental::value }; - }; - - template struct is_array { enum { value = false }; }; - template struct is_array { enum { value = true }; }; - template struct is_array { enum { value = true }; }; - - template struct is_const { enum { value = false }; }; - template struct is_const { enum { value = true }; }; - template struct is_const { enum { value = true }; }; - - template struct is_pointer { enum { value = false }; }; - template struct is_pointer { enum { value = true }; }; - - template struct is_reference { enum { value = false }; }; - template struct is_reference { enum { value = true }; }; - - template struct is_same { enum { value = false }; }; - template struct is_same { enum { value = true }; }; - - //=== - //add - //=== - - template struct add_const { typedef const T type; }; - template struct add_const { typedef const T type; }; - template struct add_const { typedef const T& type; }; - - template struct add_pointer { typedef T* type; }; - template struct add_pointer { typedef T** type; }; - - template struct add_reference { typedef T& type; }; - template struct add_reference { typedef T& type; }; - - //====== - //remove - //====== - - template struct remove_const { typedef T type; }; - template struct remove_const { typedef T type; }; - template struct remove_const { typedef T type; }; - - template struct remove_extent { typedef T type; }; - template struct remove_extent { typedef T type; }; - template struct remove_extent { typedef T type; }; - - template struct remove_pointer { typedef T type; }; - template struct remove_pointer { typedef T type; }; - - template struct remove_reference { typedef T type; }; - template struct remove_reference { typedef T type; }; -} - -#endif diff --git a/snesreader/nall/ups.hpp b/snesreader/nall/ups.hpp deleted file mode 100644 index f255ecb3..00000000 --- a/snesreader/nall/ups.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef NALL_UPS_HPP -#define NALL_UPS_HPP - -#include - -#include -#include -#include -#include - -namespace nall { - class ups { - public: - enum result { - ok, - patch_unreadable, - patch_unwritable, - patch_invalid, - input_invalid, - output_invalid, - patch_crc32_invalid, - input_crc32_invalid, - output_crc32_invalid, - }; - - ups::result create(const char *patch_fn, const uint8_t *x_data, unsigned x_size, const uint8_t *y_data, unsigned y_size) { - if(!fp.open(patch_fn, file::mode_write)) return patch_unwritable; - - crc32 = ~0; - uint32_t x_crc32 = crc32_calculate(x_data, x_size); - uint32_t y_crc32 = crc32_calculate(y_data, y_size); - - //header - write('U'); - write('P'); - write('S'); - write('1'); - encptr(x_size); - encptr(y_size); - - //body - unsigned max_size = max(x_size, y_size); - unsigned relative = 0; - for(unsigned i = 0; i < max_size;) { - uint8_t x = i < x_size ? x_data[i] : 0x00; - uint8_t y = i < y_size ? y_data[i] : 0x00; - - if(x == y) { - i++; - continue; - } - - encptr(i++ - relative); - write(x ^ y); - - while(true) { - if(i >= max_size) { - write(0x00); - break; - } - - x = i < x_size ? x_data[i] : 0x00; - y = i < y_size ? y_data[i] : 0x00; - i++; - write(x ^ y); - if(x == y) break; - } - - relative = i; - } - - //footer - for(unsigned i = 0; i < 4; i++) write(x_crc32 >> (i << 3)); - for(unsigned i = 0; i < 4; i++) write(y_crc32 >> (i << 3)); - uint32_t p_crc32 = ~crc32; - for(unsigned i = 0; i < 4; i++) write(p_crc32 >> (i << 3)); - - fp.close(); - return ok; - } - - ups::result apply(const uint8_t *p_data, unsigned p_size, const uint8_t *x_data, unsigned x_size, uint8_t *&y_data, unsigned &y_size) { - if(p_size < 18) return patch_invalid; - p_buffer = p_data; - - crc32 = ~0; - - //header - if(read() != 'U') return patch_invalid; - if(read() != 'P') return patch_invalid; - if(read() != 'S') return patch_invalid; - if(read() != '1') return patch_invalid; - - unsigned px_size = decptr(); - unsigned py_size = decptr(); - - //mirror - if(x_size != px_size && x_size != py_size) return input_invalid; - y_size = (x_size == px_size) ? py_size : px_size; - y_data = new uint8_t[y_size](); - - for(unsigned i = 0; i < x_size && i < y_size; i++) y_data[i] = x_data[i]; - for(unsigned i = x_size; i < y_size; i++) y_data[i] = 0x00; - - //body - unsigned relative = 0; - while(p_buffer < p_data + p_size - 12) { - relative += decptr(); - - while(true) { - uint8_t x = read(); - if(x && relative < y_size) { - uint8_t y = relative < x_size ? x_data[relative] : 0x00; - y_data[relative] = x ^ y; - } - relative++; - if(!x) break; - } - } - - //footer - unsigned px_crc32 = 0, py_crc32 = 0, pp_crc32 = 0; - for(unsigned i = 0; i < 4; i++) px_crc32 |= read() << (i << 3); - for(unsigned i = 0; i < 4; i++) py_crc32 |= read() << (i << 3); - uint32_t p_crc32 = ~crc32; - for(unsigned i = 0; i < 4; i++) pp_crc32 |= read() << (i << 3); - - uint32_t x_crc32 = crc32_calculate(x_data, x_size); - uint32_t y_crc32 = crc32_calculate(y_data, y_size); - - if(px_size != py_size) { - if(x_size == px_size && x_crc32 != px_crc32) return input_crc32_invalid; - if(x_size == py_size && x_crc32 != py_crc32) return input_crc32_invalid; - if(y_size == px_size && y_crc32 != px_crc32) return output_crc32_invalid; - if(y_size == py_size && y_crc32 != py_crc32) return output_crc32_invalid; - } else { - if(x_crc32 != px_crc32 && x_crc32 != py_crc32) return input_crc32_invalid; - if(y_crc32 != px_crc32 && y_crc32 != py_crc32) return output_crc32_invalid; - if(x_crc32 == y_crc32 && px_crc32 != py_crc32) return output_crc32_invalid; - if(x_crc32 != y_crc32 && px_crc32 == py_crc32) return output_crc32_invalid; - } - - if(p_crc32 != pp_crc32) return patch_crc32_invalid; - return ok; - } - - private: - file fp; - uint32_t crc32; - const uint8_t *p_buffer; - - uint8_t read() { - uint8_t n = *p_buffer++; - crc32 = crc32_adjust(crc32, n); - return n; - } - - void write(uint8_t n) { - fp.write(n); - crc32 = crc32_adjust(crc32, n); - } - - void encptr(uint64_t offset) { - while(true) { - uint64_t x = offset & 0x7f; - offset >>= 7; - if(offset == 0) { - write(0x80 | x); - break; - } - write(x); - offset--; - } - } - - uint64_t decptr() { - uint64_t offset = 0, shift = 1; - while(true) { - uint8_t x = read(); - offset += (x & 0x7f) * shift; - if(x & 0x80) break; - shift <<= 7; - offset += shift; - } - return offset; - } - }; -} - -#endif diff --git a/snesreader/nall/utf8.hpp b/snesreader/nall/utf8.hpp deleted file mode 100644 index c66c341a..00000000 --- a/snesreader/nall/utf8.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef NALL_UTF8_HPP -#define NALL_UTF8_HPP - -//UTF-8 <> UTF-16 conversion -//used only for Win32; Linux, etc use UTF-8 internally - -#if defined(_WIN32) - -#undef _WIN32_WINNT -#define _WIN32_WINNT 0x0501 -#undef NOMINMAX -#define NOMINMAX -#include -#undef interface - -namespace nall { - //UTF-8 to UTF-16 - class utf16_t { - public: - operator wchar_t*() { - return buffer; - } - - operator const wchar_t*() const { - return buffer; - } - - utf16_t(const char *s = "") { - if(!s) s = ""; - unsigned length = MultiByteToWideChar(CP_UTF8, 0, s, -1, 0, 0); - buffer = new wchar_t[length + 1](); - MultiByteToWideChar(CP_UTF8, 0, s, -1, buffer, length); - } - - ~utf16_t() { - delete[] buffer; - } - - private: - wchar_t *buffer; - }; - - //UTF-16 to UTF-8 - class utf8_t { - public: - operator char*() { - return buffer; - } - - operator const char*() const { - return buffer; - } - - utf8_t(const wchar_t *s = L"") { - if(!s) s = L""; - unsigned length = WideCharToMultiByte(CP_UTF8, 0, s, -1, 0, 0, (const char*)0, (BOOL*)0); - buffer = new char[length + 1](); - WideCharToMultiByte(CP_UTF8, 0, s, -1, buffer, length, (const char*)0, (BOOL*)0); - } - - ~utf8_t() { - delete[] buffer; - } - - private: - char *buffer; - }; -} - -#endif //if defined(_WIN32) - -#endif diff --git a/snesreader/nall/utility.hpp b/snesreader/nall/utility.hpp deleted file mode 100644 index c15945e1..00000000 --- a/snesreader/nall/utility.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef NALL_UTILITY_HPP -#define NALL_UTILITY_HPP - -#include - -namespace nall { - template struct identity { - typedef T type; - }; - - template typename remove_reference::type&& move(T &&value) { - return value; - } - - template T&& forward(typename identity::type &&value) { - return value; - } - - template struct enable_if { typedef T type; }; - template struct enable_if {}; - template struct mp_enable_if : enable_if {}; - - template inline void swap(T &x, T &y) { - T temp(move(x)); - x = move(y); - y = move(temp); - } - - template struct base_from_member { - T value; - base_from_member(T value_) : value(value_) {} - }; - - template inline T* allocate(size_t size, const T &value) { - T *array = new T[size]; - for(size_t i = 0; i < size; i++) array[i] = value; - return array; - } -} - -#endif diff --git a/snesreader/nall/varint.hpp b/snesreader/nall/varint.hpp deleted file mode 100644 index cc3bb17c..00000000 --- a/snesreader/nall/varint.hpp +++ /dev/null @@ -1,92 +0,0 @@ -#ifndef NALL_VARINT_HPP -#define NALL_VARINT_HPP - -#include -#include -#include - -namespace nall { - template class uint_t { - private: - enum { bytes = (bits + 7) >> 3 }; //minimum number of bytes needed to store value - typedef typename static_if< - sizeof(int) >= bytes, - unsigned int, - typename static_if< - sizeof(long) >= bytes, - unsigned long, - typename static_if< - sizeof(long long) >= bytes, - unsigned long long, - void - >::type - >::type - >::type T; - static_assert::value> uint_assert; - T data; - - public: - inline operator T() const { return data; } - inline T operator ++(int) { T r = data; data = uclip(data + 1); return r; } - inline T operator --(int) { T r = data; data = uclip(data - 1); return r; } - inline T operator ++() { return data = uclip(data + 1); } - inline T operator --() { return data = uclip(data - 1); } - inline T operator =(const T i) { return data = uclip(i); } - inline T operator |=(const T i) { return data = uclip(data | i); } - inline T operator ^=(const T i) { return data = uclip(data ^ i); } - inline T operator &=(const T i) { return data = uclip(data & i); } - inline T operator<<=(const T i) { return data = uclip(data << i); } - inline T operator>>=(const T i) { return data = uclip(data >> i); } - inline T operator +=(const T i) { return data = uclip(data + i); } - inline T operator -=(const T i) { return data = uclip(data - i); } - inline T operator *=(const T i) { return data = uclip(data * i); } - inline T operator /=(const T i) { return data = uclip(data / i); } - inline T operator %=(const T i) { return data = uclip(data % i); } - - inline uint_t() : data(0) {} - inline uint_t(const T i) : data(uclip(i)) {} - }; - - template class int_t { - private: - enum { bytes = (bits + 7) >> 3 }; //minimum number of bytes needed to store value - typedef typename static_if< - sizeof(int) >= bytes, - signed int, - typename static_if< - sizeof(long) >= bytes, - signed long, - typename static_if< - sizeof(long long) >= bytes, - signed long long, - void - >::type - >::type - >::type T; - static_assert::value> int_assert; - T data; - - public: - inline operator T() const { return data; } - inline T operator ++(int) { T r = data; data = sclip(data + 1); return r; } - inline T operator --(int) { T r = data; data = sclip(data - 1); return r; } - inline T operator ++() { return data = sclip(data + 1); } - inline T operator --() { return data = sclip(data - 1); } - inline T operator =(const T i) { return data = sclip(i); } - inline T operator |=(const T i) { return data = sclip(data | i); } - inline T operator ^=(const T i) { return data = sclip(data ^ i); } - inline T operator &=(const T i) { return data = sclip(data & i); } - inline T operator<<=(const T i) { return data = sclip(data << i); } - inline T operator>>=(const T i) { return data = sclip(data >> i); } - inline T operator +=(const T i) { return data = sclip(data + i); } - inline T operator -=(const T i) { return data = sclip(data - i); } - inline T operator *=(const T i) { return data = sclip(data * i); } - inline T operator /=(const T i) { return data = sclip(data / i); } - inline T operator %=(const T i) { return data = sclip(data % i); } - - inline int_t() : data(0) {} - inline int_t(const T i) : data(sclip(i)) {} - }; -} - -#endif diff --git a/snesreader/nall/vector.hpp b/snesreader/nall/vector.hpp deleted file mode 100644 index 8885f93d..00000000 --- a/snesreader/nall/vector.hpp +++ /dev/null @@ -1,235 +0,0 @@ -#ifndef NALL_VECTOR_HPP -#define NALL_VECTOR_HPP - -#include -#include -#include -#include -#include -#include -#include - -namespace nall { - //linear_vector - //memory: O(capacity * 2) - // - //linear_vector uses placement new + manual destructor calls to create a - //contiguous block of memory for all objects. accessing individual elements - //is fast, though resizing the array incurs significant overhead. - //reserve() overhead is reduced from quadratic time to amortized constant time - //by resizing twice as much as requested. - // - //if objects hold memory address references to themselves (introspection), a - //valid copy constructor will be needed to keep pointers valid. - - template class linear_vector { - protected: - T *pool; - unsigned poolsize, objectsize; - - public: - unsigned size() const { return objectsize; } - unsigned capacity() const { return poolsize; } - - void reset() { - if(pool) { - for(unsigned i = 0; i < objectsize; i++) pool[i].~T(); - free(pool); - } - pool = 0; - poolsize = 0; - objectsize = 0; - } - - void reserve(unsigned newsize) { - newsize = bit::round(newsize); //round to nearest power of two (for amortized growth) - - T *poolcopy = (T*)malloc(newsize * sizeof(T)); - for(unsigned i = 0; i < min(objectsize, newsize); i++) new(poolcopy + i) T(pool[i]); - for(unsigned i = 0; i < objectsize; i++) pool[i].~T(); - free(pool); - pool = poolcopy; - poolsize = newsize; - objectsize = min(objectsize, newsize); - } - - void resize(unsigned newsize) { - if(newsize > poolsize) reserve(newsize); - - if(newsize < objectsize) { - //vector is shrinking; destroy excess objects - for(unsigned i = newsize; i < objectsize; i++) pool[i].~T(); - } else if(newsize > objectsize) { - //vector is expanding; allocate new objects - for(unsigned i = objectsize; i < newsize; i++) new(pool + i) T; - } - - objectsize = newsize; - } - - void add(const T data) { - if(objectsize + 1 > poolsize) reserve(objectsize + 1); - new(pool + objectsize++) T(data); - } - - inline T& operator[](unsigned index) { - if(index >= objectsize) resize(index + 1); - return pool[index]; - } - - inline const T& operator[](unsigned index) const { - if(index >= objectsize) throw "vector[] out of bounds"; - return pool[index]; - } - - //copy - inline linear_vector& operator=(const linear_vector &source) { - reset(); - reserve(source.capacity()); - for(unsigned i = 0; i < source.size(); i++) add(source[i]); - return *this; - } - - linear_vector(const linear_vector &source) { - operator=(source); - } - - //move - inline linear_vector& operator=(linear_vector &&source) { - reset(); - pool = source.pool; - poolsize = source.poolsize; - objectsize = source.objectsize; - source.pool = 0; - return *this; - } - - linear_vector(linear_vector &&source) { - operator=(move(source)); - } - - //construction - linear_vector() : pool(0), poolsize(0), objectsize(0) { - } - - linear_vector(std::initializer_list list) : pool(0), poolsize(0), objectsize(0) { - for(const T *p = list.begin(); p != list.end(); ++p) add(*p); - } - - ~linear_vector() { - reset(); - } - }; - - //pointer_vector - //memory: O(1) - // - //pointer_vector keeps an array of pointers to each vector object. this adds - //significant overhead to individual accesses, but allows for optimal memory - //utilization. - // - //by guaranteeing that the base memory address of each objects never changes, - //this avoids the need for an object to have a valid copy constructor. - - template class pointer_vector { - protected: - T **pool; - unsigned poolsize, objectsize; - - public: - unsigned size() const { return objectsize; } - unsigned capacity() const { return poolsize; } - - void reset() { - if(pool) { - for(unsigned i = 0; i < objectsize; i++) { if(pool[i]) delete pool[i]; } - free(pool); - } - pool = 0; - poolsize = 0; - objectsize = 0; - } - - void reserve(unsigned newsize) { - newsize = bit::round(newsize); //round to nearest power of two (for amortized growth) - - for(unsigned i = newsize; i < objectsize; i++) { - if(pool[i]) { delete pool[i]; pool[i] = 0; } - } - - pool = (T**)realloc(pool, newsize * sizeof(T*)); - for(unsigned i = poolsize; i < newsize; i++) pool[i] = 0; - poolsize = newsize; - objectsize = min(objectsize, newsize); - } - - void resize(unsigned newsize) { - if(newsize > poolsize) reserve(newsize); - - for(unsigned i = newsize; i < objectsize; i++) { - if(pool[i]) { delete pool[i]; pool[i] = 0; } - } - - objectsize = newsize; - } - - void add(const T data) { - if(objectsize + 1 > poolsize) reserve(objectsize + 1); - pool[objectsize++] = new T(data); - } - - inline T& operator[](unsigned index) { - if(index >= objectsize) resize(index + 1); - if(!pool[index]) pool[index] = new T; - return *pool[index]; - } - - inline const T& operator[](unsigned index) const { - if(index >= objectsize || !pool[index]) throw "vector[] out of bounds"; - return *pool[index]; - } - - //copy - inline pointer_vector& operator=(const pointer_vector &source) { - reset(); - reserve(source.capacity()); - for(unsigned i = 0; i < source.size(); i++) add(source[i]); - return *this; - } - - pointer_vector(const pointer_vector &source) { - operator=(source); - } - - //move - inline pointer_vector& operator=(pointer_vector &&source) { - reset(); - pool = source.pool; - poolsize = source.poolsize; - objectsize = source.objectsize; - source.pool = 0; - return *this; - } - - pointer_vector(pointer_vector &&source) { - operator=(move(source)); - } - - //construction - pointer_vector() : pool(0), poolsize(0), objectsize(0) { - } - - pointer_vector(std::initializer_list list) : pool(0), poolsize(0), objectsize(0) { - for(const T *p = list.begin(); p != list.end(); ++p) add(*p); - } - - ~pointer_vector() { - reset(); - } - }; - - template struct has_size> { enum { value = true }; }; - template struct has_size> { enum { value = true }; }; -} - -#endif diff --git a/snesreader/snesreader.cpp b/snesreader/snesreader.cpp deleted file mode 100644 index ed996fd3..00000000 --- a/snesreader/snesreader.cpp +++ /dev/null @@ -1,236 +0,0 @@ -#include "snesreader.hpp" - -#if defined(_WIN32) - #define dllexport __declspec(dllexport) -#else - #define dllexport -#endif - -#include "fex/fex.h" -#include "libjma/jma.h" -extern "C" char* uncompressStream(int, int); //micro-bunzip - -#define QT_CORE_LIB -#include - -#include -#include -using namespace nall; - -#include "xml.cpp" - -dllexport const char* snesreader_supported() { - //libjma does not work on 64-bit architectures - #if !defined(__amd64) && !defined(_M_X64) - return "*.zip *.z *.7z *.rar *.gz *.bz2 *.jma"; - #else - return "*.zip *.z *.7z *.rar *.gz *.bz2"; - #endif -} - -void snesreader_apply_ips(const char *filename, uint8_t *&data, unsigned &size) { - file fp; - if(fp.open(filename, file::mode_read) == false) return; - - unsigned psize = fp.size(); - uint8_t *pdata = new uint8_t[psize]; - fp.read(pdata, psize); - fp.close(); - - if(psize < 8 || pdata[0] != 'P' || pdata[1] != 'A' || pdata[2] != 'T' || pdata[3] != 'C' || pdata[4] != 'H') { delete[] pdata; return; } - - unsigned outsize = 0; - uint8_t *outdata = new uint8_t[16 * 1024 * 1024]; - memset(outdata, 0, 16 * 1024 * 1024); - memcpy(outdata, data, size); - - unsigned offset = 5; - while(offset < psize - 3) { - unsigned addr; - addr = pdata[offset++] << 16; - addr |= pdata[offset++] << 8; - addr |= pdata[offset++] << 0; - - unsigned size; - size = pdata[offset++] << 8; - size |= pdata[offset++] << 0; - - if(size == 0) { - //RLE - size = pdata[offset++] << 8; - size |= pdata[offset++] << 0; - - for(unsigned n = addr; n < addr + size;) { - outdata[n++] = pdata[offset]; - if(n > outsize) outsize = n; - } - offset++; - } else { - //uncompressed - for(unsigned n = addr; n < addr + size;) { - outdata[n++] = pdata[offset++]; - if(n > outsize) outsize = n; - } - } - } - - delete[] pdata; - delete[] data; - data = outdata; - size = max(size, outsize); -} - -bool snesreader_load_normal(const char *filename, uint8_t *&data, unsigned &size) { - file fp; - if(fp.open(filename, file::mode_read) == false) return false; - size = fp.size(); - data = new uint8_t[size]; - fp.read(data, size); - fp.close(); - return true; -} - -#include "filechooser.cpp" - -bool snesreader_load_fex(string &filename, uint8_t *&data, unsigned &size) { - fex_t *fex; - fex_open(&fex, filename); - if(fex_done(fex)) { fex_close(fex); return false; } - - if(!fileChooser) fileChooser = new FileChooser; - fileChooser->list.reset(); - - while(fex_done(fex) == false) { - fex_stat(fex); - const char *name = fex_name(fex); - //only add valid ROM extensions to list (ignore text files, save RAM files, etc) - if(striend(name, ".sfc") || striend(name, ".smc") - || striend(name, ".swc") || striend(name, ".fig") - || striend(name, ".bs") || striend(name, ".st") - || striend(name, ".gb") || striend(name, ".sgb") || striend(name, ".gbc") - || striend(filename, ".gz") //GZip files only contain a single file - ) { - fileChooser->list[fileChooser->list.size()] = name; - } - fex_next(fex); - } - - string name = fileChooser->exec(); - if(name == "") { fex_close(fex); return false; } - - fex_rewind(fex); - while(fex_done(fex) == false) { - fex_stat(fex); - if(name == fex_name(fex)) { - size = fex_size(fex); - data = new uint8_t[size]; - fex_read(fex, data, size); - fex_close(fex); - - if(fileChooser->list.size() > 1) { - strtr(name, "\\", "/"); - strtr(filename, "\\", "/"); - - //retain only path from filename, "/foo/bar.7z" -> "/foo/" - for(signed i = filename.length() - 1; i >= 0; i--) { - if(filename[i] == '/') { - filename[i + 1] = 0; - break; - } - } - - //append only filename from archive, "foo/bar.sfc" -> "bar.sfc" - lstring part; - part.split("/", name); - filename = string() << filename << part[part.size() - 1]; - } - - return true; - } - fex_next(fex); - } - - fex_close(fex); - return false; -} - -bool snesreader_load_bz2(const char *filename, uint8_t *&data, unsigned &size) { - //TODO: need a way to get the size of a bzip2 file, so we can pre-allocate - //a buffer to decompress into memory. for now, use a temporary file. - - string name = "/tmp/.bz2_temporary_decompression_object"; - FILE *wr; - wr = fopen_utf8(name, "wb"); - if(!wr) { - //try the local directory - name = ".bz2_temporary_decompression_object"; - wr = fopen_utf8(name, "wb"); - //can't get write access, so give up - if(!wr) return false; - } - - FILE *fp = fopen_utf8(filename, "rb"); - uncompressStream(fileno(fp), fileno(wr)); - fclose(fp); - fclose(wr); - - bool success = snesreader_load_normal(name, data, size); - unlink(name); - return success; -} - -bool snesreader_load_jma(const char *filename, uint8_t *&data, unsigned &size) { - try { - JMA::jma_open JMAFile(filename); - std::string name; - - std::vector file_info = JMAFile.get_files_info(); - for(std::vector::iterator i = file_info.begin(); i != file_info.end(); i++) { - name = i->name; - size = i->size; - break; - } - - data = new uint8_t[size]; - JMAFile.extract_file(name, data); - return true; - } catch(JMA::jma_errors) { - return false; - } -} - -dllexport bool snesreader_load(string &filename, string &xmldata, uint8_t *&data, unsigned &size) { - if(file::exists(filename) == false) return false; - xmldata = ""; - - bool success = false; - if(striend(filename, ".zip") - || striend(filename, ".z") - || striend(filename, ".7z") - || striend(filename, ".rar") - || striend(filename, ".gz")) { - success = snesreader_load_fex(filename, data, size); - } else if(striend(filename, ".bz2")) { - success = snesreader_load_bz2(filename, data, size); - } else if(striend(filename, ".jma")) { - success = snesreader_load_jma(filename, data, size); - } else { - success = snesreader_load_normal(filename, data, size); - } - - if(success == false) return false; - - //apply IPS patch, if it exists - string patchname = filename; - for(int i = patchname.length() - 1; i >= 0; i--) { - if(patchname[i] == '.') { patchname[i] = 0; break; } - } - patchname << ".ips"; - if(file::exists(patchname)) snesreader_apply_ips(patchname, data, size); - - //remove copier header, if it exists - if((size & 0x7fff) == 512) memmove(data, data + 512, size -= 512); - - xml.generate(xmldata, data, size); - return true; -} diff --git a/snesreader/snesreader.hpp b/snesreader/snesreader.hpp deleted file mode 100644 index e3c31078..00000000 --- a/snesreader/snesreader.hpp +++ /dev/null @@ -1,7 +0,0 @@ -#include -namespace nall { class string; } - -extern "C" { - const char* snesreader_supported(); - bool snesreader_load(nall::string &filename, nall::string &xml, uint8_t *&data, unsigned &size); -} diff --git a/snesreader/sync.sh b/snesreader/sync.sh deleted file mode 100644 index 4bbaf34f..00000000 --- a/snesreader/sync.sh +++ /dev/null @@ -1,2 +0,0 @@ -rm -r nall -cp -r ../nall ./nall diff --git a/snesreader/unrar/archive.cpp b/snesreader/unrar/archive.cpp deleted file mode 100644 index 338a0eb7..00000000 --- a/snesreader/unrar/archive.cpp +++ /dev/null @@ -1,97 +0,0 @@ -#include -#include "rar.hpp" - -#include "unrar.h" - -Archive::Archive() : Raw( this ) -{ - OldFormat=false; - Solid=false; - - CurBlockPos=0; - NextBlockPos=0; - - memset(&NewMhd,0,sizeof(NewMhd)); - NewMhd.HeadType=MAIN_HEAD; - NewMhd.HeadSize=SIZEOF_NEWMHD; - HeaderCRC=0; -} - -bool Archive::IsSignature(byte *D) -{ - bool Valid=false; - if (D[0]==0x52) -#ifndef SFX_MODULE - if (D[1]==0x45 && D[2]==0x7e && D[3]==0x5e) - { - OldFormat=true; - Valid=true; - } - else -#endif - if (D[1]==0x61 && D[2]==0x72 && D[3]==0x21 && D[4]==0x1a && D[5]==0x07 && D[6]==0x00) - { - OldFormat=false; - Valid=true; - } - return(Valid); -} - - -unrar_err_t Archive::IsArchive() -{ - if (Read(MarkHead.Mark,SIZEOF_MARKHEAD)!=SIZEOF_MARKHEAD) - return unrar_err_not_arc; - - if (IsSignature(MarkHead.Mark)) - { - if (OldFormat) - Seek(0,SEEK_SET); - } - else - { - if (SFXSize==0) - return unrar_err_not_arc; - } - - unrar_err_t error = - ReadHeader(); - // (no need to seek to next) - if ( error != unrar_ok ) - return error; - -#ifndef SFX_MODULE - if (OldFormat) - { - NewMhd.Flags=OldMhd.Flags & 0x3f; - NewMhd.HeadSize=OldMhd.HeadSize; - } - else -#endif - { - if (HeaderCRC!=NewMhd.HeadCRC) - { - return unrar_err_corrupt; - } - } - bool - Volume=(NewMhd.Flags & MHD_VOLUME); - Solid=(NewMhd.Flags & MHD_SOLID)!=0; - bool - Encrypted=(NewMhd.Flags & MHD_PASSWORD)!=0; - - // (removed decryption and volume handling) - - if ( Encrypted ) - return unrar_err_encrypted; - - if ( Volume ) - return unrar_err_segmented; - - return unrar_ok; -} - -void Archive::SeekToNext() -{ - Seek(NextBlockPos,SEEK_SET); -} diff --git a/snesreader/unrar/archive.hpp b/snesreader/unrar/archive.hpp deleted file mode 100644 index 0106e6fd..00000000 --- a/snesreader/unrar/archive.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef _RAR_ARCHIVE_ -#define _RAR_ARCHIVE_ - -typedef ComprDataIO File; -#include "rawread.hpp" - -class Archive:public File -{ -private: - bool IsSignature(byte *D); - void ConvertUnknownHeader(); - int ReadOldHeader(); - - RawRead Raw; - - MarkHeader MarkHead; - OldMainHeader OldMhd; - - int CurHeaderType; - -public: - Archive(); - unrar_err_t IsArchive(); - unrar_err_t ReadHeader(); - void SeekToNext(); - bool IsArcDir(); - bool IsArcLabel(); - int GetHeaderType() {return(CurHeaderType);}; - - BaseBlock ShortBlock; - MainHeader NewMhd; - FileHeader NewLhd; - SubBlockHeader SubBlockHead; - FileHeader SubHead; - ProtectHeader ProtectHead; - - Int64 CurBlockPos; - Int64 NextBlockPos; - - bool Solid; - enum { SFXSize = 0 }; // self-extracting not supported - ushort HeaderCRC; -}; - -#endif diff --git a/snesreader/unrar/arcread.cpp b/snesreader/unrar/arcread.cpp deleted file mode 100644 index 3a9f711c..00000000 --- a/snesreader/unrar/arcread.cpp +++ /dev/null @@ -1,314 +0,0 @@ -#include "rar.hpp" - -#include "unrar.h" -#include "unicode.hpp" -#include "encname.hpp" - -// arcread.cpp -unrar_err_t Archive::ReadHeader() -{ - CurBlockPos=Tell(); - -#ifndef SFX_MODULE - if (OldFormat) - { - ReadOldHeader(); - - if ( Raw.Size() == 0 ) - return unrar_err_arc_eof; // right at end of file - - if ( Raw.PaddedSize() > 0 ) // added check - return unrar_err_corrupt; // missing data - - return unrar_ok; - } -#endif - - Raw.Reset(); - - // (removed decryption) - - Raw.Read(SIZEOF_SHORTBLOCKHEAD); - if (Raw.Size()==0) - { - return unrar_err_arc_eof; // right at end of file - } - - Raw.Get(ShortBlock.HeadCRC); - byte HeadType; - Raw.Get(HeadType); - ShortBlock.HeadType=(HEADER_TYPE)HeadType; - Raw.Get(ShortBlock.Flags); - Raw.Get(ShortBlock.HeadSize); - if (ShortBlock.HeadSize 0 ) // fewer than requested bytes read above? - return unrar_err_corrupt; // missing data - - NextBlockPos=CurBlockPos+ShortBlock.HeadSize; - - switch(ShortBlock.HeadType) - { - case MAIN_HEAD: - *(BaseBlock *)&NewMhd=ShortBlock; - Raw.Get(NewMhd.HighPosAV); - Raw.Get(NewMhd.PosAV); - check( Raw.ReadPos == Raw.DataSize ); // we should have read all fields - break; - case FILE_HEAD: - case NEWSUB_HEAD: - { - FileHeader *hd=ShortBlock.HeadType==FILE_HEAD ? &NewLhd:&SubHead; - *(BaseBlock *)hd=ShortBlock; - Raw.Get(hd->PackSize); - Raw.Get(hd->UnpSize); - Raw.Get(hd->HostOS); - Raw.Get(hd->FileCRC); - Raw.Get(hd->FileTime); - Raw.Get(hd->UnpVer); - Raw.Get(hd->Method); - Raw.Get(hd->NameSize); - Raw.Get(hd->FileAttr); - if (hd->Flags & LHD_LARGE) - { - Raw.Get(hd->HighPackSize); - Raw.Get(hd->HighUnpSize); - } - else - { - hd->HighPackSize=hd->HighUnpSize=0; - if (hd->UnpSize==0xffffffff) - { - // TODO: what the heck is this for anyway? - hd->UnpSize=0; - hd->HighUnpSize=0x7fffffff; - } - } - hd->FullPackSize=int32to64(hd->HighPackSize,hd->PackSize); - hd->FullUnpSize=int32to64(hd->HighUnpSize,hd->UnpSize); - - if ( int32to64( 1, 0 ) == 0 && (hd->HighPackSize || hd->HighUnpSize) ) - return unrar_err_huge; - - char (&FileName) [sizeof hd->FileName] = hd->FileName; // eliminated local buffer - int NameSize=Min(hd->NameSize,sizeof(FileName)-1); - Raw.Get((byte *)FileName,NameSize); - FileName[NameSize]=0; - - if (hd->HeadType==NEWSUB_HEAD) - { - // have to adjust this, even through we're ignoring this block - NextBlockPos+=hd->FullPackSize; - break; - } - else - if (hd->HeadType==FILE_HEAD) - { - if (hd->Flags & LHD_UNICODE) - { - EncodeFileName NameCoder; - int Length=strlen(FileName); - if (Length==hd->NameSize) - { - UtfToWide(FileName,hd->FileNameW,sizeof(hd->FileNameW)/sizeof(hd->FileNameW[0])-1); - WideToChar(hd->FileNameW,hd->FileName,sizeof(hd->FileName)/sizeof(hd->FileName[0])-1); - ExtToInt(hd->FileName,hd->FileName); - } - else - { - Length++; - NameCoder.Decode(FileName,(byte *)FileName+Length, - hd->NameSize-Length,hd->FileNameW, - sizeof(hd->FileNameW)/sizeof(hd->FileNameW[0])); - } - if (*hd->FileNameW==0) - hd->Flags &= ~LHD_UNICODE; - } - else - *hd->FileNameW=0; - - ConvertUnknownHeader(); - } - if (hd->Flags & LHD_SALT) - Raw.Get(hd->Salt,SALT_SIZE); - hd->mtime.SetDos(hd->FileTime); - if (hd->Flags & LHD_EXTTIME) - { - ushort Flags; - Raw.Get(Flags); - // Ignore additional time information - for (int I=0;I<4;I++) - { - uint rmode=Flags>>(3-I)*4; - if ((rmode & 8)==0) - continue; - if (I!=0) - { - uint DosTime; - Raw.Get(DosTime); - } - - // skip time info - int count=rmode&3; - for (int J=0;JFullPackSize; - bool CRCProcessedOnly=(hd->Flags & LHD_COMMENT)!=0; - HeaderCRC=~Raw.GetCRC(CRCProcessedOnly)&0xffff; - if (hd->HeadCRC!=HeaderCRC) - return unrar_err_corrupt; - check( CRCProcessedOnly == false ); // I need to test on archives where this doesn't hold - check( Raw.ReadPos == Raw.DataSize ); // we should have read all fields - } - break; -#ifndef SFX_MODULE - // Handle these block types just so we can adjust NextBlockPos properly - case PROTECT_HEAD: - Raw.Get(ProtectHead.DataSize); - NextBlockPos+=ProtectHead.DataSize; - break; - case SUB_HEAD: - Raw.Get(SubBlockHead.DataSize); - NextBlockPos+=SubBlockHead.DataSize; - break; -#endif - default: - if (ShortBlock.Flags & LONG_BLOCK) - { - uint DataSize; - Raw.Get(DataSize); - NextBlockPos+=DataSize; - } - break; - } - HeaderCRC=~Raw.GetCRC(false)&0xffff; - CurHeaderType=ShortBlock.HeadType; - // (removed decryption) - - if (NextBlockPosCurBlockPos ? Raw.Size():0); -} -#endif - -// (removed name case and attribute conversion) - -bool Archive::IsArcDir() -{ - return((NewLhd.Flags & LHD_WINDOWMASK)==LHD_DIRECTORY); -} - - -bool Archive::IsArcLabel() -{ - return(NewLhd.HostOS<=HOST_WIN32 && (NewLhd.FileAttr & 8)); -} - -// TODO: use '\\' on Windows? -char const CPATHDIVIDER = '/'; -#define charnext(s) ((s)+1) - -void Archive::ConvertUnknownHeader() -{ - if (NewLhd.UnpVer<20 && (NewLhd.FileAttr & 0x10)) - NewLhd.Flags|=LHD_DIRECTORY; - if (NewLhd.HostOS>=HOST_MAX) - { - if ((NewLhd.Flags & LHD_WINDOWMASK)==LHD_DIRECTORY) - NewLhd.FileAttr=0x10; - else - NewLhd.FileAttr=0x20; - } - { - for (char *s=NewLhd.FileName;*s!=0;s=charnext(s)) - { - if (*s=='/' || *s=='\\') - *s=CPATHDIVIDER; - } - } - // (removed Apple Unicode handling) - for (wchar *s=NewLhd.FileNameW;*s!=0;s++) - { - if (*s=='/' || *s=='\\') - *s=CPATHDIVIDER; - } -} diff --git a/snesreader/unrar/array.hpp b/snesreader/unrar/array.hpp deleted file mode 100644 index 1f2d4e8c..00000000 --- a/snesreader/unrar/array.hpp +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef _RAR_ARRAY_ -#define _RAR_ARRAY_ - -template class Array -{ -private: - T *Buffer; - int BufSize; - int AllocSize; -public: - Rar_Error_Handler& ErrHandler; - Array(Rar_Error_Handler*); - Array(int Size,Rar_Error_Handler*); - ~Array(); - inline void CleanData(); - inline T& operator [](int Item); - inline int Size(); - void Add(int Items); - void Alloc(int Items); - void Reset(); - void operator = (Array &Src); - void Push(T Item); - T* Addr() {return(Buffer);} -}; - -template void Array::CleanData() -{ - Buffer=NULL; - BufSize=0; - AllocSize=0; -} - - -template Array::Array(Rar_Error_Handler* eh) : ErrHandler( *eh ) -{ - CleanData(); -} - - -template Array::Array(int Size, Rar_Error_Handler* eh) : ErrHandler( *eh ) -{ - Buffer=(T *)rarmalloc(sizeof(T)*Size); - if (Buffer==NULL && Size!=0) - ErrHandler.MemoryError(); - - AllocSize=BufSize=Size; -} - - -template Array::~Array() -{ - if (Buffer!=NULL) - rarfree(Buffer); -} - - -template inline T& Array::operator [](int Item) -{ - return(Buffer[Item]); -} - - -template inline int Array::Size() -{ - return(BufSize); -} - - -template void Array::Add(int Items) -{ - int BufSize = this->BufSize; // don't change actual vars until alloc succeeds - T* Buffer = this->Buffer; - - BufSize+=Items; - if (BufSize>AllocSize) - { - int Suggested=AllocSize+AllocSize/4+32; - int NewSize=Max(BufSize,Suggested); - - Buffer=(T *)rarrealloc(Buffer,NewSize*sizeof(T)); - if (Buffer==NULL) - ErrHandler.MemoryError(); - AllocSize=NewSize; - } - - this->Buffer = Buffer; - this->BufSize = BufSize; -} - - -template void Array::Alloc(int Items) -{ - if (Items>AllocSize) - Add(Items-BufSize); - else - BufSize=Items; -} - - -template void Array::Reset() -{ - // Keep memory allocated if it's small - // Eliminates constant reallocation when scanning archive - if ( AllocSize < 1024/sizeof(T) ) - { - BufSize = 0; - return; - } - - if (Buffer!=NULL) - { - rarfree(Buffer); - Buffer=NULL; - } - BufSize=0; - AllocSize=0; -} - - -template void Array::operator =(Array &Src) -{ - Reset(); - Alloc(Src.BufSize); - if (Src.BufSize!=0) - memcpy((void *)Buffer,(void *)Src.Buffer,Src.BufSize*sizeof(T)); -} - - -template void Array::Push(T Item) -{ - Add(1); - (*this)[Size()-1]=Item; -} - -#endif diff --git a/snesreader/unrar/changes.txt b/snesreader/unrar/changes.txt deleted file mode 100644 index 35345fd5..00000000 --- a/snesreader/unrar/changes.txt +++ /dev/null @@ -1,141 +0,0 @@ -unrar_core source code changes ------------------------------- -Unrar_core is based on UnRAR (unrarsrc-3.8.5.tar.gz) by Alexander L. -Roshal. The original sources have been HEAVILY modified, trimmed down, -and purged of all OS-specific calls for file access and other -unnecessary operations. Support for encryption, recovery records, and -segmentation has been REMOVED. See license.txt for licensing. In -particular, this code cannot be used to re-create the RAR compression -algorithm, which is proprietary. - -If you obtained this code as a part of my File_Extractor library and -want to use it on its own, get my unrar_core library, which includes -examples and documentation. - -The source is as close as possible to the original, to make it simple to -update when a new version of UnRAR comes out. In many places the -original names and object nesting are kept, even though it's a bit -harder to follow. See rar.hpp for the main "glue". - -Website: http://www.slack.net/~ant/ -E-mail : Shay Green - - -Contents --------- -* Diff-friendly changes -* Removal of features -* Error reporting changes -* Minor tweaks -* Unrar findings - - -Diff-friendly changes ---------------------- -To make my source code changes more easily visible with a line-based -file diff, I've tried to make changes by inserting or deleting lines, -rather than modifying them. So if the original declared a static array - - static int array [4] = { 1, 2, 3, 4 }; - -and I want to make it const, I add the const on a line before - - const // added - static int array [4] = { 1, 2, 3, 4 }; - -rather than on the same line - - static const int array [4] = { 1, 2, 3, 4 }; - -This way a diff will simply show an added line, making it clear what was -added. If I simply inserted const on the same line, it wouldn't be as -clear what all I had changed. - -I've also made use of several macros rather than changing the source -text. For example, since a class name like Unpack might easily conflict, -I've renamed it to Rar_Unpack by using #define Unpack Rar_Unpack rather -than changing the source text. These macros are only defined when -compiling the library sources; the user-visible unrar.h is very clean. - - -Removal of features -------------------- -This library is meant for simple access to common archives without -having to extract them first. Encryption, segmentation, huge files, and -self-extracting archives aren't common for things that need to be -accessed in this manner, so I've removed support for them. Also, -encryption adds complexity to the code that must be maintained. -Segmentation would require a way to specify the other segments. - - -Error reporting changes ------------------------ -The original used C++ exceptions to report errors. I've eliminated use -of these through a combination of error codes and longjmp. This allows -use of the library from C or some other language which doesn't easily -support exceptions. - -I tried to make as few changes as possible in the conversion. Due to the -number of places file reads occur, propagating an error code via return -statements would have required too many code changes. Instead, I perform -the read, save the error code, and return 0 bytes read in case of an -error. I also ensure that the calling code interprets this zero in an -acceptable way. I then check this saved error code after the operation -completes, and have it take priority over the error the RAR code -returned. I do a similar thing for write errors. - - -Minor tweaks ------------- -- Eliminated as many GCC warnings as reasonably possible. - -- Non-class array allocations now use malloc(), allowing the code to be -linked without the standard C++ library (particularly, operator new). -Class object allocations use a class-specific allocator that just calls -malloc(), also avoiding calls to operator new. - -- Made all unchanging static data const. Several pieces of static data -in the original code weren't marked const where they could be. - -- Initialization of some static tables was done on an as-needed basis, -creating a problem when extracting from archives in multiple threads. -This initialization can now be done by the user before any archives are -opened. - -- Tweaked CopyString, the major bottleneck during compression. I inlined -it, cached some variables in locals in case the compiler couldn't easily -see that the memory accesses don't modify them, and made them use -memcpy() where possible. This improved performance by at least 20% on -x86. Perhaps it won't work as well on files with lots of smaller string -matches. - -- Some .cpp files are #included by others. I've added guards to these so -that you can simply compile all .cpp files and not get any redefinition -errors. - -- The current solid extraction position is kept track of, allowing the -user to randomly extract files without regard to proper extraction -order. The library optimizes solid extraction and only restarts it if -the user is extracting a file earlier in the archive than the last -solid-extracted one. - -- Most of the time a solid file's data is already contiguously in the -internal Unpack::Window, which unrar_extract_mem() takes advantage of. -This avoids extra allocation in many cases. - -- Allocation of Unpack is delayed until the first extraction, rather -than being allocated immediately on opening the archive. This allows -scanning with minimal memory usage. - - -Unrar findings --------------- -- Apparently the LHD_SOLID flag indicates that file depends on previous -files, rather than that later files depend on the current file's -contents. Thus this flag can't be used to intelligently decide which -files need to be internally extracted when skipping them, making it -necessary to internally extract every file before the one to be -extracted, if the archive is solid. - --- -Shay Green diff --git a/snesreader/unrar/coder.cpp b/snesreader/unrar/coder.cpp deleted file mode 100644 index c3f3aac6..00000000 --- a/snesreader/unrar/coder.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// #included by unpack.cpp -#ifdef RAR_COMMON_HPP - -inline unsigned int RangeCoder::GetChar() -{ - return(UnpackRead->GetChar()); -} - - -void RangeCoder::InitDecoder(Unpack *UnpackRead) -{ - RangeCoder::UnpackRead=UnpackRead; - - low=code=0; - range=uint(-1); - for (int i=0;i < 4;i++) - code=(code << 8) | GetChar(); -} - - -#define ARI_DEC_NORMALIZE(code,low,range,read) \ -{ \ - while ((low^(low+range))GetChar(); \ - range <<= 8; \ - low <<= 8; \ - } \ -} - - -inline int RangeCoder::GetCurrentCount() -{ - return (code-low)/(range /= SubRange.scale); -} - - -inline uint RangeCoder::GetCurrentShiftCount(uint SHIFT) -{ - return (code-low)/(range >>= SHIFT); -} - - -inline void RangeCoder::Decode() -{ - low += range*SubRange.LowCount; - range *= SubRange.HighCount-SubRange.LowCount; -} -#endif diff --git a/snesreader/unrar/coder.hpp b/snesreader/unrar/coder.hpp deleted file mode 100644 index 8384cdc6..00000000 --- a/snesreader/unrar/coder.hpp +++ /dev/null @@ -1,24 +0,0 @@ -/**************************************************************************** - * Contents: 'Carryless rangecoder' by Dmitry Subbotin * - ****************************************************************************/ - -const uint TOP=1 << 24, BOT=1 << 15; - -class RangeCoder -{ -public: - void InitDecoder(Unpack *UnpackRead); - inline int GetCurrentCount(); - inline uint GetCurrentShiftCount(uint SHIFT); - inline void Decode(); - inline void PutChar(unsigned int c); - inline unsigned int GetChar(); - - uint low, code, range; - struct SUBRANGE - { - uint LowCount, HighCount, scale; - } SubRange; - - Unpack *UnpackRead; -}; diff --git a/snesreader/unrar/compress.hpp b/snesreader/unrar/compress.hpp deleted file mode 100644 index 3181e45d..00000000 --- a/snesreader/unrar/compress.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef _RAR_COMPRESS_ -#define _RAR_COMPRESS_ - -class ComprDataIO; -class PackingFileTable; - -#define CODEBUFSIZE 0x4000 -#define MAXWINSIZE 0x400000 -#define MAXWINMASK (MAXWINSIZE-1) - -#define LOW_DIST_REP_COUNT 16 - -#define NC 299 /* alphabet = {0, 1, 2, ..., NC - 1} */ -#define DC 60 -#define LDC 17 -#define RC 28 -#define HUFF_TABLE_SIZE (NC+DC+RC+LDC) -#define BC 20 - -#define NC20 298 /* alphabet = {0, 1, 2, ..., NC - 1} */ -#define DC20 48 -#define RC20 28 -#define BC20 19 -#define MC20 257 - -enum {CODE_HUFFMAN,CODE_LZ,CODE_LZ2,CODE_REPEATLZ,CODE_CACHELZ, - CODE_STARTFILE,CODE_ENDFILE,CODE_VM,CODE_VMDATA}; - - -enum FilterType { - FILTER_NONE, FILTER_PPM /*dummy*/, FILTER_E8, FILTER_E8E9, - FILTER_UPCASETOLOW, FILTER_AUDIO, FILTER_RGB, FILTER_DELTA, - FILTER_ITANIUM, FILTER_E8E9V2 -}; - -#endif diff --git a/snesreader/unrar/crc.cpp b/snesreader/unrar/crc.cpp deleted file mode 100644 index bc23b5a9..00000000 --- a/snesreader/unrar/crc.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#include "rar.hpp" - -uint CRCTab[256]; - -void InitCRC() -{ - for (int I=0;I<256;I++) - { - uint C=I; - for (int J=0;J<8;J++) - C=(C & 1) ? (C>>1)^0xEDB88320L : (C>>1); - CRCTab[I]=C; - } -} - - -uint CRC(uint StartCRC,const void *Addr,size_t Size) -{ - // Always initialized ahead of time, and this func call makes it a non-leaf func. - if (false) - if (CRCTab[1]==0) - InitCRC(); - byte *Data=(byte *)Addr; -#if defined(LITTLE_ENDIAN) && defined(PRESENT_INT32) && defined(ALLOW_NOT_ALIGNED_INT) - -#ifdef _MSC_VER - // avoid a warning about 'Data' pointer truncation in 64 bit mode - #pragma warning( disable : 4311 ) -#endif - - while (Size>0 && ((long)Data & 7)) - { - StartCRC=CRCTab[(byte)(StartCRC^Data[0])]^(StartCRC>>8); - Size--; - Data++; - } - while (Size>=8) - { - StartCRC^=*(uint32 *)Data; - StartCRC=CRCTab[(byte)StartCRC]^(StartCRC>>8); - StartCRC=CRCTab[(byte)StartCRC]^(StartCRC>>8); - StartCRC=CRCTab[(byte)StartCRC]^(StartCRC>>8); - StartCRC=CRCTab[(byte)StartCRC]^(StartCRC>>8); - StartCRC^=*(uint32 *)(Data+4); - StartCRC=CRCTab[(byte)StartCRC]^(StartCRC>>8); - StartCRC=CRCTab[(byte)StartCRC]^(StartCRC>>8); - StartCRC=CRCTab[(byte)StartCRC]^(StartCRC>>8); - StartCRC=CRCTab[(byte)StartCRC]^(StartCRC>>8); - Data+=8; - Size-=8; - } -#endif - for (size_t I=0;I>8); - return(StartCRC); -} - -#ifndef SFX_MODULE -ushort OldCRC(ushort StartCRC,const void *Addr,size_t Size) -{ - byte *Data=(byte *)Addr; - for (size_t I=0;I>15))&0xffff; - } - return(StartCRC); -} -#endif diff --git a/snesreader/unrar/encname.cpp b/snesreader/unrar/encname.cpp deleted file mode 100644 index 6f57cd91..00000000 --- a/snesreader/unrar/encname.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include "rar.hpp" - -EncodeFileName::EncodeFileName() -{ - Flags=0; - FlagBits=0; - FlagsPos=0; - DestSize=0; -} - - - - -void EncodeFileName::Decode(char *Name,byte *EncName,int EncSize,wchar *NameW, - int MaxDecSize) -{ - int EncPos=0,DecPos=0; - byte HighByte=EncName[EncPos++]; - while (EncPos>6) - { - case 0: - NameW[DecPos++]=EncName[EncPos++]; - break; - case 1: - NameW[DecPos++]=EncName[EncPos++]+(HighByte<<8); - break; - case 2: - NameW[DecPos++]=EncName[EncPos]+(EncName[EncPos+1]<<8); - EncPos+=2; - break; - case 3: - { - int Length=EncName[EncPos++]; - if (Length & 0x80) - { - byte Correction=EncName[EncPos++]; - for (Length=(Length&0x7f)+2;Length>0 && DecPos0 && DecPos -#include "rar.hpp" - -#include "unrar.h" - -#define DataIO Arc - -unrar_err_t CmdExtract::ExtractCurrentFile( bool SkipSolid, bool check_compatibility_only ) -{ - check( Arc.GetHeaderType() == FILE_HEAD ); - - if ( Arc.NewLhd.Flags & (LHD_SPLIT_AFTER | LHD_SPLIT_BEFORE) ) - return unrar_err_segmented; - - if ( Arc.NewLhd.Flags & LHD_PASSWORD ) - return unrar_err_encrypted; - - if ( !check_compatibility_only ) - { - check( Arc.NextBlockPos-Arc.NewLhd.FullPackSize == Arc.Tell() ); - Arc.Seek(Arc.NextBlockPos-Arc.NewLhd.FullPackSize,SEEK_SET); - } - - // (removed lots of command-line handling) - -#ifdef SFX_MODULE - if ((Arc.NewLhd.UnpVer!=UNP_VER && Arc.NewLhd.UnpVer!=29) && - Arc.NewLhd.Method!=0x30) -#else - if (Arc.NewLhd.UnpVer<13 || Arc.NewLhd.UnpVer>UNP_VER) -#endif - { - if (Arc.NewLhd.UnpVer>UNP_VER) - return unrar_err_new_algo; - return unrar_err_old_algo; - } - - if ( check_compatibility_only ) - return unrar_ok; - - // (removed lots of command-line/encryption/volume handling) - - update_first_file_pos(); - FileCount++; - DataIO.UnpFileCRC=Arc.OldFormat ? 0 : 0xffffffff; - // (removed decryption) - DataIO.SetPackedSizeToRead(Arc.NewLhd.FullPackSize); - // (removed command-line handling) - DataIO.SetSkipUnpCRC(SkipSolid); - - if (Arc.NewLhd.Method==0x30) - UnstoreFile(Arc.NewLhd.FullUnpSize); - else - { - // Defer creation of Unpack until first extraction - if ( !Unp ) - { - Unp = new Unpack( &Arc ); - if ( !Unp ) - return unrar_err_memory; - - Unp->Init( NULL ); - } - - Unp->SetDestSize(Arc.NewLhd.FullUnpSize); -#ifndef SFX_MODULE - if (Arc.NewLhd.UnpVer<=15) - Unp->DoUnpack(15,FileCount>1 && Arc.Solid); - else -#endif - Unp->DoUnpack(Arc.NewLhd.UnpVer,Arc.NewLhd.Flags & LHD_SOLID); - } - - // (no need to seek to next file) - - if (!SkipSolid) - { - if (Arc.OldFormat && UINT32(DataIO.UnpFileCRC)==UINT32(Arc.NewLhd.FileCRC) || - !Arc.OldFormat && UINT32(DataIO.UnpFileCRC)==UINT32(Arc.NewLhd.FileCRC^0xffffffff)) - { - // CRC is correct - } - else - { - return unrar_err_corrupt; - } - } - - // (removed broken file handling) - // (removed command-line handling) - - return unrar_ok; -} - - -void CmdExtract::UnstoreFile(Int64 DestUnpSize) -{ - Buffer.Alloc(Min(DestUnpSize,0x10000)); - while (1) - { - unsigned int Code=DataIO.UnpRead(&Buffer[0],Buffer.Size()); - if (Code==0 || (int)Code==-1) - break; - Code=Code=0) - DestUnpSize-=Code; - } - Buffer.Reset(); -} diff --git a/snesreader/unrar/getbits.cpp b/snesreader/unrar/getbits.cpp deleted file mode 100644 index 559bdd03..00000000 --- a/snesreader/unrar/getbits.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include "rar.hpp" - -BitInput::BitInput() -{ - InBuf = (byte*) rarmalloc( MAX_SIZE ); - - // Otherwise getbits() reads uninitialized memory - // TODO: instead of clearing entire block, just clear last two - // bytes after reading from file - if ( InBuf ) - memset( InBuf, 0, MAX_SIZE ); -} - -BitInput::~BitInput() -{ - rarfree( InBuf ); -} - -void BitInput::handle_mem_error( Rar_Error_Handler& ErrHandler ) -{ - if ( !InBuf ) - ErrHandler.MemoryError(); -} - -void BitInput::faddbits(int Bits) -{ - addbits(Bits); -} - - -unsigned int BitInput::fgetbits() -{ - return(getbits()); -} diff --git a/snesreader/unrar/getbits.hpp b/snesreader/unrar/getbits.hpp deleted file mode 100644 index 5a4cb4a3..00000000 --- a/snesreader/unrar/getbits.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef _RAR_GETBITS_ -#define _RAR_GETBITS_ - -class BitInput - : public Rar_Allocator -{ -public: - enum BufferSize {MAX_SIZE=0x8000}; -protected: - int InAddr,InBit; -public: - BitInput(); - ~BitInput(); - void handle_mem_error( Rar_Error_Handler& ); - - byte *InBuf; - - void InitBitInput() - { - InAddr=InBit=0; - } - void addbits(int Bits) - { - Bits+=InBit; - InAddr+=Bits>>3; - InBit=Bits&7; - } - unsigned int getbits() - { - unsigned int BitField=(uint)InBuf[InAddr] << 16; - BitField|=(uint)InBuf[InAddr+1] << 8; - BitField|=(uint)InBuf[InAddr+2]; - BitField >>= (8-InBit); - return(BitField & 0xffff); - } - void faddbits(int Bits); - unsigned int fgetbits(); - bool Overflow(int IncPtr) {return(InAddr+IncPtr>=MAX_SIZE);} -}; -#endif diff --git a/snesreader/unrar/headers.hpp b/snesreader/unrar/headers.hpp deleted file mode 100644 index abe1c66a..00000000 --- a/snesreader/unrar/headers.hpp +++ /dev/null @@ -1,145 +0,0 @@ -#ifndef _RAR_HEADERS_ -#define _RAR_HEADERS_ - -#define SIZEOF_MARKHEAD 7 -#define SIZEOF_OLDMHD 7 -#define SIZEOF_NEWMHD 13 -#define SIZEOF_OLDLHD 21 -#define SIZEOF_NEWLHD 32 -#define SIZEOF_SHORTBLOCKHEAD 7 -#define SIZEOF_SUBBLOCKHEAD 14 -#define SIZEOF_COMMHEAD 13 - -#define UNP_VER 36 - -#define MHD_VOLUME 0x0001 -#define MHD_COMMENT 0x0002 -#define MHD_SOLID 0x0008 -#define MHD_PASSWORD 0x0080 - -#define LHD_SPLIT_BEFORE 0x0001 -#define LHD_SPLIT_AFTER 0x0002 -#define LHD_PASSWORD 0x0004 -#define LHD_COMMENT 0x0008 -#define LHD_SOLID 0x0010 - -#define LHD_WINDOWMASK 0x00e0 -#define LHD_DIRECTORY 0x00e0 - -#define LHD_LARGE 0x0100 -#define LHD_UNICODE 0x0200 -#define LHD_SALT 0x0400 -#define LHD_EXTTIME 0x1000 - -#define LONG_BLOCK 0x8000 - -enum HEADER_TYPE { - MARK_HEAD=0x72,MAIN_HEAD=0x73,FILE_HEAD=0x74,COMM_HEAD=0x75,AV_HEAD=0x76, - SUB_HEAD=0x77,PROTECT_HEAD=0x78,SIGN_HEAD=0x79,NEWSUB_HEAD=0x7a, - ENDARC_HEAD=0x7b -}; - -enum HOST_SYSTEM { - HOST_MSDOS=0,HOST_OS2=1,HOST_WIN32=2,HOST_UNIX=3,HOST_MACOS=4, - HOST_BEOS=5,HOST_MAX -}; - -struct OldMainHeader -{ - byte Mark[4]; - ushort HeadSize; - byte Flags; -}; - - -struct OldFileHeader -{ - uint PackSize; - uint UnpSize; - ushort FileCRC; - ushort HeadSize; - uint FileTime; - byte FileAttr; - byte Flags; - byte UnpVer; - byte NameSize; - byte Method; -}; - - -struct MarkHeader -{ - byte Mark[7]; -}; - - -struct BaseBlock -{ - ushort HeadCRC; - HEADER_TYPE HeadType;//byte - ushort Flags; - ushort HeadSize; -}; - -struct BlockHeader:BaseBlock -{ - union { - uint DataSize; - uint PackSize; - }; -}; - - -struct MainHeader:BaseBlock -{ - ushort HighPosAV; - uint PosAV; -}; - -#define SALT_SIZE 8 - -struct FileHeader:BlockHeader -{ - uint UnpSize; - byte HostOS; - uint FileCRC; - uint FileTime; - byte UnpVer; - byte Method; - ushort NameSize; - union { - uint FileAttr; - uint SubFlags; - }; -/* optional */ - uint HighPackSize; - uint HighUnpSize; -/* names */ - char FileName[NM*4]; // *4 to avoid using lots of stack in arcread - wchar FileNameW[NM]; -/* optional */ - byte Salt[SALT_SIZE]; - - RarTime mtime; -/* dummy */ - Int64 FullPackSize; - Int64 FullUnpSize; -}; - -// SubBlockHeader and its successors were used in RAR 2.x format. -// RAR 3.x uses FileHeader with NEWSUB_HEAD HeadType for subblocks. -struct SubBlockHeader:BlockHeader -{ - ushort SubType; - byte Level; -}; - -struct ProtectHeader:BlockHeader -{ - byte Version; - ushort RecSectors; - uint TotalBlocks; - byte Mark[8]; -}; - -#endif diff --git a/snesreader/unrar/license.txt b/snesreader/unrar/license.txt deleted file mode 100644 index 2aa475c7..00000000 --- a/snesreader/unrar/license.txt +++ /dev/null @@ -1,40 +0,0 @@ - ****** ***** ****** UnRAR - free utility for RAR archives - ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ****** ******* ****** License for use and distribution of - ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ** ** ** ** ** ** FREE portable version - ~~~~~~~~~~~~~~~~~~~~~ - - The source code of UnRAR utility is freeware. This means: - - 1. All copyrights to RAR and the utility UnRAR are exclusively - owned by the author - Alexander Roshal. - - 2. The UnRAR sources may be used in any software to handle RAR - archives without limitations free of charge, but cannot be used - to re-create the RAR compression algorithm, which is proprietary. - Distribution of modified UnRAR sources in separate form or as a - part of other software is permitted, provided that it is clearly - stated in the documentation and source comments that the code may - not be used to develop a RAR (WinRAR) compatible archiver. - - 3. The UnRAR utility may be freely distributed. It is allowed - to distribute UnRAR inside of other software packages. - - 4. THE RAR ARCHIVER AND THE UnRAR UTILITY ARE DISTRIBUTED "AS IS". - NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT - YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, - DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING - OR MISUSING THIS SOFTWARE. - - 5. Installing and using the UnRAR utility signifies acceptance of - these terms and conditions of the license. - - 6. If you don't agree with terms of the license you must remove - UnRAR files from your storage devices and cease to use the - utility. - - Thank you for your interest in RAR and UnRAR. - - - Alexander L. Roshal \ No newline at end of file diff --git a/snesreader/unrar/model.cpp b/snesreader/unrar/model.cpp deleted file mode 100644 index 68e1a4f1..00000000 --- a/snesreader/unrar/model.cpp +++ /dev/null @@ -1,612 +0,0 @@ -// #included by unpack.cpp -#ifdef RAR_COMMON_HPP -/**************************************************************************** - * This file is part of PPMd project * - * Written and distributed to public domain by Dmitry Shkarin 1997, * - * 1999-2000 * - * Contents: model description and encoding/decoding routines * - ****************************************************************************/ - -inline PPM_CONTEXT* PPM_CONTEXT::createChild(ModelPPM *Model,STATE* pStats, - STATE& FirstState) -{ - PPM_CONTEXT* pc = (PPM_CONTEXT*) Model->SubAlloc.AllocContext(); - if ( pc ) - { - pc->NumStats=1; - pc->OneState=FirstState; - pc->Suffix=this; - pStats->Successor=pc; - } - return pc; -} - - -ModelPPM::ModelPPM() -{ - MinContext=NULL; - MaxContext=NULL; - MedContext=NULL; -} - - -void ModelPPM::RestartModelRare() -{ - int i, k, m; - memset(CharMask,0,sizeof(CharMask)); - SubAlloc.InitSubAllocator(); - InitRL=-(MaxOrder < 12 ? MaxOrder:12)-1; - MinContext = MaxContext = (PPM_CONTEXT*) SubAlloc.AllocContext(); - MinContext->Suffix=NULL; - OrderFall=MaxOrder; - MinContext->U.SummFreq=(MinContext->NumStats=256)+1; - FoundState=MinContext->U.Stats=(STATE*)SubAlloc.AllocUnits(256/2); - for (RunLength=InitRL, PrevSuccess=i=0;i < 256;i++) - { - MinContext->U.Stats[i].Symbol=i; - MinContext->U.Stats[i].Freq=1; - MinContext->U.Stats[i].Successor=NULL; - } - - static const ushort InitBinEsc[]={ - 0x3CDD,0x1F3F,0x59BF,0x48F3,0x64A1,0x5ABC,0x6632,0x6051 - }; - - for (i=0;i < 128;i++) - for (k=0;k < 8;k++) - for (m=0;m < 64;m += 8) - BinSumm[i][k+m]=BIN_SCALE-InitBinEsc[k]/(i+2); - for (i=0;i < 25;i++) - for (k=0;k < 16;k++) - SEE2Cont[i][k].init(5*i+10); -} - - -void ModelPPM::StartModelRare(int MaxOrder) -{ - int i, k, m ,Step; - EscCount=1; -/* - if (MaxOrder < 2) - { - memset(CharMask,0,sizeof(CharMask)); - OrderFall=ModelPPM::MaxOrder; - MinContext=MaxContext; - while (MinContext->Suffix != NULL) - { - MinContext=MinContext->Suffix; - OrderFall--; - } - FoundState=MinContext->U.Stats; - MinContext=MaxContext; - } - else -*/ - { - ModelPPM::MaxOrder=MaxOrder; - RestartModelRare(); - NS2BSIndx[0]=2*0; - NS2BSIndx[1]=2*1; - memset(NS2BSIndx+2,2*2,9); - memset(NS2BSIndx+11,2*3,256-11); - for (i=0;i < 3;i++) - NS2Indx[i]=i; - for (m=i, k=Step=1;i < 256;i++) - { - NS2Indx[i]=m; - if ( !--k ) - { - k = ++Step; - m++; - } - } - memset(HB2Flag,0,0x40); - memset(HB2Flag+0x40,0x08,0x100-0x40); - DummySEE2Cont.Shift=PERIOD_BITS; - } -} - - -void PPM_CONTEXT::rescale(ModelPPM *Model) -{ - int OldNS=NumStats, i=NumStats-1, Adder, EscFreq; - STATE* p1, * p; - for (p=Model->FoundState;p != U.Stats;p--) - _PPMD_SWAP(p[0],p[-1]); - U.Stats->Freq += 4; - U.SummFreq += 4; - EscFreq=U.SummFreq-p->Freq; - Adder=(Model->OrderFall != 0); - U.SummFreq = (p->Freq=(p->Freq+Adder) >> 1); - do - { - EscFreq -= (++p)->Freq; - U.SummFreq += (p->Freq=(p->Freq+Adder) >> 1); - if (p[0].Freq > p[-1].Freq) - { - STATE tmp=*(p1=p); - do - { - p1[0]=p1[-1]; - } while (--p1 != U.Stats && tmp.Freq > p1[-1].Freq); - *p1=tmp; - } - } while ( --i ); - if (p->Freq == 0) - { - do - { - i++; - } while ((--p)->Freq == 0); - EscFreq += i; - if ((NumStats -= i) == 1) - { - STATE tmp=*U.Stats; - do - { - tmp.Freq-=(tmp.Freq >> 1); - EscFreq>>=1; - } while (EscFreq > 1); - Model->SubAlloc.FreeUnits(U.Stats,(OldNS+1) >> 1); - *(Model->FoundState=&OneState)=tmp; return; - } - } - U.SummFreq += (EscFreq -= (EscFreq >> 1)); - int n0=(OldNS+1) >> 1, n1=(NumStats+1) >> 1; - if (n0 != n1) - U.Stats = (STATE*) Model->SubAlloc.ShrinkUnits(U.Stats,n0,n1); - Model->FoundState=U.Stats; -} - - -inline PPM_CONTEXT* ModelPPM::CreateSuccessors(bool Skip,STATE* p1) -{ - // (removed conditional static) - STATE UpState; - PPM_CONTEXT* pc=MinContext, * UpBranch=FoundState->Successor; - STATE * p, * ps[MAX_O], ** pps=ps; - if ( !Skip ) - { - *pps++ = FoundState; - if ( !pc->Suffix ) - goto NO_LOOP; - } - if ( p1 ) - { - p=p1; - pc=pc->Suffix; - goto LOOP_ENTRY; - } - do - { - pc=pc->Suffix; - if (pc->NumStats != 1) - { - if ((p=pc->U.Stats)->Symbol != FoundState->Symbol) - do - { - p++; - } while (p->Symbol != FoundState->Symbol); - } - else - p=&(pc->OneState); -LOOP_ENTRY: - if (p->Successor != UpBranch) - { - pc=p->Successor; - break; - } - *pps++ = p; - } while ( pc->Suffix ); -NO_LOOP: - if (pps == ps) - return pc; - UpState.Symbol=*(byte*) UpBranch; - UpState.Successor=(PPM_CONTEXT*) (((byte*) UpBranch)+1); - if (pc->NumStats != 1) - { - if ((byte*) pc <= SubAlloc.pText) - return(NULL); - if ((p=pc->U.Stats)->Symbol != UpState.Symbol) - do - { - p++; - } while (p->Symbol != UpState.Symbol); - uint cf=p->Freq-1; - uint s0=pc->U.SummFreq-pc->NumStats-cf; - UpState.Freq=1+((2*cf <= s0)?(5*cf > s0):((2*cf+3*s0-1)/(2*s0))); - } - else - UpState.Freq=pc->OneState.Freq; - do - { - pc = pc->createChild(this,*--pps,UpState); - if ( !pc ) - return NULL; - } while (pps != ps); - return pc; -} - - -inline void ModelPPM::UpdateModel() -{ - STATE fs = *FoundState, *p = NULL; - PPM_CONTEXT *pc, *Successor; - uint ns1, ns, cf, sf, s0; - if (fs.Freq < MAX_FREQ/4 && (pc=MinContext->Suffix) != NULL) - { - if (pc->NumStats != 1) - { - if ((p=pc->U.Stats)->Symbol != fs.Symbol) - { - do - { - p++; - } while (p->Symbol != fs.Symbol); - if (p[0].Freq >= p[-1].Freq) - { - _PPMD_SWAP(p[0],p[-1]); - p--; - } - } - if (p->Freq < MAX_FREQ-9) - { - p->Freq += 2; - pc->U.SummFreq += 2; - } - } - else - { - p=&(pc->OneState); - p->Freq += (p->Freq < 32); - } - } - if ( !OrderFall ) - { - MinContext=MaxContext=FoundState->Successor=CreateSuccessors(true,p); - if ( !MinContext ) - goto RESTART_MODEL; - return; - } - *SubAlloc.pText++ = fs.Symbol; - Successor = (PPM_CONTEXT*) SubAlloc.pText; - if (SubAlloc.pText >= SubAlloc.FakeUnitsStart) - goto RESTART_MODEL; - if ( fs.Successor ) - { - if ((byte*) fs.Successor <= SubAlloc.pText && - (fs.Successor=CreateSuccessors(false,p)) == NULL) - goto RESTART_MODEL; - if ( !--OrderFall ) - { - Successor=fs.Successor; - SubAlloc.pText -= (MaxContext != MinContext); - } - } - else - { - FoundState->Successor=Successor; - fs.Successor=MinContext; - } - s0=MinContext->U.SummFreq-(ns=MinContext->NumStats)-(fs.Freq-1); - for (pc=MaxContext;pc != MinContext;pc=pc->Suffix) - { - if ((ns1=pc->NumStats) != 1) - { - if ((ns1 & 1) == 0) - { - pc->U.Stats=(STATE*) SubAlloc.ExpandUnits(pc->U.Stats,ns1 >> 1); - if ( !pc->U.Stats ) - goto RESTART_MODEL; - } - pc->U.SummFreq += (2*ns1 < ns)+2*((4*ns1 <= ns) & (pc->U.SummFreq <= 8*ns1)); - } - else - { - p=(STATE*) SubAlloc.AllocUnits(1); - if ( !p ) - goto RESTART_MODEL; - *p=pc->OneState; - pc->U.Stats=p; - if (p->Freq < MAX_FREQ/4-1) - p->Freq += p->Freq; - else - p->Freq = MAX_FREQ-4; - pc->U.SummFreq=p->Freq+InitEsc+(ns > 3); - } - cf=2*fs.Freq*(pc->U.SummFreq+6); - sf=s0+pc->U.SummFreq; - if (cf < 6*sf) - { - cf=1+(cf > sf)+(cf >= 4*sf); - pc->U.SummFreq += 3; - } - else - { - cf=4+(cf >= 9*sf)+(cf >= 12*sf)+(cf >= 15*sf); - pc->U.SummFreq += cf; - } - p=pc->U.Stats+ns1; - p->Successor=Successor; - p->Symbol = fs.Symbol; - p->Freq = cf; - pc->NumStats=++ns1; - } - MaxContext=MinContext=fs.Successor; - return; -RESTART_MODEL: - RestartModelRare(); - EscCount=0; -} - - -// Tabulated escapes for exponential symbol distribution -static const byte ExpEscape[16]={ 25,14, 9, 7, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2 }; -#define GET_MEAN(SUMM,SHIFT,ROUND) ((SUMM+(1 << (SHIFT-ROUND))) >> (SHIFT)) - - - -inline void PPM_CONTEXT::decodeBinSymbol(ModelPPM *Model) -{ - STATE& rs=OneState; - Model->HiBitsFlag=Model->HB2Flag[Model->FoundState->Symbol]; - ushort& bs=Model->BinSumm[rs.Freq-1][Model->PrevSuccess+ - Model->NS2BSIndx[Suffix->NumStats-1]+ - Model->HiBitsFlag+2*Model->HB2Flag[rs.Symbol]+ - ((Model->RunLength >> 26) & 0x20)]; - if (Model->Coder.GetCurrentShiftCount(TOT_BITS) < bs) - { - Model->FoundState=&rs; - rs.Freq += (rs.Freq < 128); - Model->Coder.SubRange.LowCount=0; - Model->Coder.SubRange.HighCount=bs; - bs = SHORT16(bs+INTERVAL-GET_MEAN(bs,PERIOD_BITS,2)); - Model->PrevSuccess=1; - Model->RunLength++; - } - else - { - Model->Coder.SubRange.LowCount=bs; - bs = SHORT16(bs-GET_MEAN(bs,PERIOD_BITS,2)); - Model->Coder.SubRange.HighCount=BIN_SCALE; - Model->InitEsc=ExpEscape[bs >> 10]; - Model->NumMasked=1; - Model->CharMask[rs.Symbol]=Model->EscCount; - Model->PrevSuccess=0; - Model->FoundState=NULL; - } -} - - -inline void PPM_CONTEXT::update1(ModelPPM *Model,STATE* p) -{ - (Model->FoundState=p)->Freq += 4; - U.SummFreq += 4; - if (p[0].Freq > p[-1].Freq) - { - _PPMD_SWAP(p[0],p[-1]); - Model->FoundState=--p; - if (p->Freq > MAX_FREQ) - rescale(Model); - } -} - - - - -inline bool PPM_CONTEXT::decodeSymbol1(ModelPPM *Model) -{ - Model->Coder.SubRange.scale=U.SummFreq; - STATE* p=U.Stats; - int i, HiCnt; - int count=Model->Coder.GetCurrentCount(); - if (count>=Model->Coder.SubRange.scale) - return(false); - if (count < (HiCnt=p->Freq)) - { - Model->PrevSuccess=(2*(Model->Coder.SubRange.HighCount=HiCnt) > Model->Coder.SubRange.scale); - Model->RunLength += Model->PrevSuccess; - (Model->FoundState=p)->Freq=(HiCnt += 4); - U.SummFreq += 4; - if (HiCnt > MAX_FREQ) - rescale(Model); - Model->Coder.SubRange.LowCount=0; - return(true); - } - else - if (Model->FoundState==NULL) - return(false); - Model->PrevSuccess=0; - i=NumStats-1; - while ((HiCnt += (++p)->Freq) <= count) - if (--i == 0) - { - Model->HiBitsFlag=Model->HB2Flag[Model->FoundState->Symbol]; - Model->Coder.SubRange.LowCount=HiCnt; - Model->CharMask[p->Symbol]=Model->EscCount; - i=(Model->NumMasked=NumStats)-1; - Model->FoundState=NULL; - do - { - Model->CharMask[(--p)->Symbol]=Model->EscCount; - } while ( --i ); - Model->Coder.SubRange.HighCount=Model->Coder.SubRange.scale; - return(true); - } - Model->Coder.SubRange.LowCount=(Model->Coder.SubRange.HighCount=HiCnt)-p->Freq; - update1(Model,p); - return(true); -} - - -inline void PPM_CONTEXT::update2(ModelPPM *Model,STATE* p) -{ - (Model->FoundState=p)->Freq += 4; - U.SummFreq += 4; - if (p->Freq > MAX_FREQ) - rescale(Model); - Model->EscCount++; - Model->RunLength=Model->InitRL; -} - - -inline SEE2_CONTEXT* PPM_CONTEXT::makeEscFreq2(ModelPPM *Model,int Diff) -{ - SEE2_CONTEXT* psee2c; - if (NumStats != 256) - { - psee2c=Model->SEE2Cont[Model->NS2Indx[Diff-1]]+ - (Diff < Suffix->NumStats-NumStats)+ - 2*(U.SummFreq < 11*NumStats)+4*(Model->NumMasked > Diff)+ - Model->HiBitsFlag; - Model->Coder.SubRange.scale=psee2c->getMean(); - } - else - { - psee2c=&Model->DummySEE2Cont; - Model->Coder.SubRange.scale=1; - } - return psee2c; -} - - - - -inline bool PPM_CONTEXT::decodeSymbol2(ModelPPM *Model) -{ - int count, HiCnt, i=NumStats-Model->NumMasked; - SEE2_CONTEXT* psee2c=makeEscFreq2(Model,i); - STATE* ps[256], ** pps=ps, * p=U.Stats-1; - HiCnt=0; - do - { - do - { - p++; - } while (Model->CharMask[p->Symbol] == Model->EscCount); - HiCnt += p->Freq; - *pps++ = p; - } while ( --i ); - Model->Coder.SubRange.scale += HiCnt; - count=Model->Coder.GetCurrentCount(); - if (count>=Model->Coder.SubRange.scale) - return(false); - p=*(pps=ps); - if (count < HiCnt) - { - HiCnt=0; - while ((HiCnt += p->Freq) <= count) - p=*++pps; - Model->Coder.SubRange.LowCount = (Model->Coder.SubRange.HighCount=HiCnt)-p->Freq; - psee2c->update(); - update2(Model,p); - } - else - { - Model->Coder.SubRange.LowCount=HiCnt; - Model->Coder.SubRange.HighCount=Model->Coder.SubRange.scale; - i=NumStats-Model->NumMasked; - pps--; - do - { - Model->CharMask[(*++pps)->Symbol]=Model->EscCount; - } while ( --i ); - psee2c->Summ += Model->Coder.SubRange.scale; - Model->NumMasked = NumStats; - } - return(true); -} - - -inline void ModelPPM::ClearMask() -{ - EscCount=1; - memset(CharMask,0,sizeof(CharMask)); -} - - - - -// reset PPM variables after data error allowing safe resuming -// of further data processing -void ModelPPM::CleanUp() -{ - SubAlloc.StopSubAllocator(); - SubAlloc.StartSubAllocator(1); - StartModelRare(2); -} - - -bool ModelPPM::DecodeInit(Unpack *UnpackRead,int &EscChar) -{ - int MaxOrder=UnpackRead->GetChar(); - bool Reset=MaxOrder & 0x20; - - int MaxMB; - MaxMB = 0; // avoids warning of being uninitialized - if (Reset) - MaxMB=UnpackRead->GetChar(); - else - if (SubAlloc.GetAllocatedMemory()==0) - return(false); - if (MaxOrder & 0x40) - EscChar=UnpackRead->GetChar(); - Coder.InitDecoder(UnpackRead); - if (Reset) - { - MaxOrder=(MaxOrder & 0x1f)+1; - if (MaxOrder>16) - MaxOrder=16+(MaxOrder-16)*3; - if (MaxOrder==1) - { - SubAlloc.StopSubAllocator(); - return(false); - } - SubAlloc.StartSubAllocator(MaxMB+1); - StartModelRare(MaxOrder); - } - return(MinContext!=NULL); -} - - -int ModelPPM::DecodeChar() -{ - if ((byte*)MinContext <= SubAlloc.pText || (byte*)MinContext>SubAlloc.HeapEnd) - return(-1); - if (MinContext->NumStats != 1) - { - if ((byte*)MinContext->U.Stats <= SubAlloc.pText || (byte*)MinContext->U.Stats>SubAlloc.HeapEnd) - return(-1); - if (!MinContext->decodeSymbol1(this)) - return(-1); - } - else - MinContext->decodeBinSymbol(this); - Coder.Decode(); - while ( !FoundState ) - { - ARI_DEC_NORMALIZE(Coder.code,Coder.low,Coder.range,Coder.UnpackRead); - do - { - OrderFall++; - MinContext=MinContext->Suffix; - if ((byte*)MinContext <= SubAlloc.pText || (byte*)MinContext>SubAlloc.HeapEnd) - return(-1); - } while (MinContext->NumStats == NumMasked); - if (!MinContext->decodeSymbol2(this)) - return(-1); - Coder.Decode(); - } - int Symbol=FoundState->Symbol; - if (!OrderFall && (byte*) FoundState->Successor > SubAlloc.pText) - MinContext=MaxContext=FoundState->Successor; - else - { - UpdateModel(); - if (EscCount == 0) - ClearMask(); - } - ARI_DEC_NORMALIZE(Coder.code,Coder.low,Coder.range,Coder.UnpackRead); - return(Symbol); -} -#endif diff --git a/snesreader/unrar/model.hpp b/snesreader/unrar/model.hpp deleted file mode 100644 index 1ccf2f1d..00000000 --- a/snesreader/unrar/model.hpp +++ /dev/null @@ -1,133 +0,0 @@ -#ifndef _RAR_PPMMODEL_ -#define _RAR_PPMMODEL_ - -#include "coder.hpp" -#include "suballoc.hpp" - -const int MAX_O=64; /* maximum allowed model order */ - -const int INT_BITS=7, PERIOD_BITS=7, TOT_BITS=INT_BITS+PERIOD_BITS, - INTERVAL=1 << INT_BITS, BIN_SCALE=1 << TOT_BITS, MAX_FREQ=124; - -#ifndef STRICT_ALIGNMENT_REQUIRED -#pragma pack(1) -#endif - -struct SEE2_CONTEXT -{ // SEE-contexts for PPM-contexts with masked symbols - ushort Summ; - byte Shift, Count; - void init(int InitVal) - { - Summ=InitVal << (Shift=PERIOD_BITS-4); - Count=4; - } - uint getMean() - { - uint RetVal=SHORT16(Summ) >> Shift; - Summ -= RetVal; - return RetVal+(RetVal == 0); - } - void update() - { - if (Shift < PERIOD_BITS && --Count == 0) - { - Summ += Summ; - Count=3 << Shift++; - } - } -}; - - -class ModelPPM; -struct PPM_CONTEXT; - -struct STATE -{ - byte Symbol; - byte Freq; - PPM_CONTEXT* Successor; -}; - -struct FreqData -{ - ushort SummFreq; - STATE _PACK_ATTR * Stats; -}; - -struct PPM_CONTEXT -{ - ushort NumStats; - union - { - FreqData U; - STATE OneState; - }; - - PPM_CONTEXT* Suffix; - inline void encodeBinSymbol(ModelPPM *Model,int symbol); // MaxOrder: - inline void encodeSymbol1(ModelPPM *Model,int symbol); // ABCD context - inline void encodeSymbol2(ModelPPM *Model,int symbol); // BCD suffix - inline void decodeBinSymbol(ModelPPM *Model); // BCDE successor - inline bool decodeSymbol1(ModelPPM *Model); // other orders: - inline bool decodeSymbol2(ModelPPM *Model); // BCD context - inline void update1(ModelPPM *Model,STATE* p); // CD suffix - inline void update2(ModelPPM *Model,STATE* p); // BCDE successor - void rescale(ModelPPM *Model); - inline PPM_CONTEXT* createChild(ModelPPM *Model,STATE* pStats,STATE& FirstState); - inline SEE2_CONTEXT* makeEscFreq2(ModelPPM *Model,int Diff); -}; - -#ifndef STRICT_ALIGNMENT_REQUIRED -#ifdef _AIX -#pragma pack(pop) -#else -#pragma pack() -#endif -#endif - -const uint UNIT_SIZE=Max(sizeof(PPM_CONTEXT),sizeof(RAR_MEM_BLK)); -const uint FIXED_UNIT_SIZE=12; - -/* -inline PPM_CONTEXT::PPM_CONTEXT(STATE* pStats,PPM_CONTEXT* ShorterContext): - NumStats(1), Suffix(ShorterContext) { pStats->Successor=this; } -inline PPM_CONTEXT::PPM_CONTEXT(): NumStats(0) {} -*/ - -template -inline void _PPMD_SWAP(T& t1,T& t2) { T tmp=t1; t1=t2; t2=tmp; } - - -class ModelPPM -{ - private: - friend struct PPM_CONTEXT; - - /*_PACK_ATTR*/ SEE2_CONTEXT SEE2Cont[25][16], DummySEE2Cont; - - struct PPM_CONTEXT *MinContext, *MedContext, *MaxContext; - STATE* FoundState; // found next state transition - int NumMasked, InitEsc, OrderFall, MaxOrder, RunLength, InitRL; - byte CharMask[256], NS2Indx[256], NS2BSIndx[256], HB2Flag[256]; - byte EscCount, PrevSuccess, HiBitsFlag; - ushort BinSumm[128][64]; // binary SEE-contexts - - RangeCoder Coder; - SubAllocator SubAlloc; - - void RestartModelRare(); - void StartModelRare(int MaxOrder); - inline PPM_CONTEXT* CreateSuccessors(bool Skip,STATE* p1); - - inline void UpdateModel(); - inline void ClearMask(); - friend class Unpack; - public: - ModelPPM(); - void CleanUp(); // reset PPM variables after data error - bool DecodeInit(Unpack *UnpackRead,int &EscChar); - int DecodeChar(); -}; - -#endif diff --git a/snesreader/unrar/rar.hpp b/snesreader/unrar/rar.hpp deleted file mode 100644 index 3302b2b2..00000000 --- a/snesreader/unrar/rar.hpp +++ /dev/null @@ -1,209 +0,0 @@ -// This source code is a heavily modified version based on the unrar package. -// It may NOT be used to develop a RAR (WinRAR) compatible archiver. -// See license.txt for copyright and licensing. - -// unrar_core 3.8.5 -#ifndef RAR_COMMON_HPP -#define RAR_COMMON_HPP - -#include "unrar.h" - -#include -#include -#include -#include - -//// Glue - -// One goal is to keep source code as close to original as possible, so -// that changes to the original can be found and merged more easily. - -// These names are too generic and might clash (or have already, hmpf) -#define Array Rar_Array -#define uint32 rar_uint32 -#define sint32 rar_sint32 -#define Unpack Rar_Unpack -#define Archive Rar_Archive -#define RawRead Rar_RawRead -#define BitInput Rar_BitInput -#define ModelPPM Rar_ModelPPM -#define RangeCoder Rar_RangeCoder -#define SubAllocator Rar_SubAllocator -#define UnpackFilter Rar_UnpackFilter -#define VM_PreparedProgram Rar_VM_PreparedProgram -#define CRCTab Rar_CRCTab - -// original source used rar* names for these as well -#define rarmalloc malloc -#define rarrealloc realloc -#define rarfree free - -// Internal flags, possibly set later -#undef SFX_MODULE -#undef VM_OPTIMIZE -#undef VM_STANDARDFILTERS -#undef NORARVM - -// During debugging if expr is false, prints message then continues execution -#ifndef check - #define check( expr ) ((void) 0) -#endif - -struct Rar_Error_Handler -{ - jmp_buf jmp_env; - - void MemoryError(); - void ReportError( unrar_err_t ); -}; - -// throw spec is mandatory in ISO C++ if operator new can return NULL -#if __cplusplus >= 199711 || __GNUC__ >= 3 - #define UNRAR_NOTHROW throw () -#else - #define UNRAR_NOTHROW -#endif - -struct Rar_Allocator -{ - // provides allocator that doesn't throw an exception on failure - static void operator delete ( void* p ) { free( p ); } - static void* operator new ( size_t s ) UNRAR_NOTHROW { return malloc( s ); } - static void* operator new ( size_t, void* p ) UNRAR_NOTHROW { return p; } -}; - -//// os.hpp -#undef STRICT_ALIGNMENT_REQUIRED -#undef LITTLE_ENDIAN -#define NM 1024 - -#if defined (__i386__) || defined (__x86_64__) || defined (_M_IX86) || defined (_M_X64) - // Optimizations mostly only apply to x86 - #define LITTLE_ENDIAN - #define ALLOW_NOT_ALIGNED_INT -#endif - -#if defined(__sparc) || defined(sparc) || defined(__sparcv9) -/* prohibit not aligned access to data structures in text comression - algorithm, increases memory requirements */ - #define STRICT_ALIGNMENT_REQUIRED -#endif - -//// rartypes.hpp -#if INT_MAX == 0x7FFFFFFF && UINT_MAX == 0xFFFFFFFF - typedef unsigned int uint32; //32 bits exactly - typedef int sint32; //signed 32 bits exactly - #define PRESENT_INT32 -#endif - -typedef unsigned char byte; //8 bits -typedef unsigned short ushort; //preferably 16 bits, but can be more -typedef unsigned int uint; //32 bits or more - -typedef wchar_t wchar; - -#define SHORT16(x) (sizeof(ushort)==2 ? (ushort)(x):((x)&0xffff)) -#define UINT32(x) (sizeof(uint )==4 ? (uint )(x):((x)&0xffffffff)) - -//// rardefs.hpp -#define Min(x,y) (((x)<(y)) ? (x):(y)) -#define Max(x,y) (((x)>(y)) ? (x):(y)) - -//// int64.hpp -typedef unrar_long_long Int64; - -#define int64to32(x) ((uint)(x)) -#define int32to64(high,low) ((((Int64)(high))<<31<<1)+(low)) -#define is64plus(x) (x>=0) - -#define INT64MAX int32to64(0x7fffffff,0) - -//// crc.hpp -extern uint CRCTab[256]; -void InitCRC(); -uint CRC(uint StartCRC,const void *Addr,size_t Size); -ushort OldCRC(ushort StartCRC,const void *Addr,size_t Size); - -//// rartime.hpp -struct RarTime -{ - unsigned time; - void SetDos(uint DosTime) { time = DosTime; } -}; - -//// rdwrfn.hpp -class ComprDataIO - : public Rar_Error_Handler -{ -public: - unrar_read_func user_read; - unrar_write_func user_write; - void* user_read_data; - void* user_write_data; - unrar_err_t write_error; // once write error occurs, no more writes are made - Int64 Tell_; - bool OldFormat; - -private: - Int64 UnpPackedSize; - bool SkipUnpCRC; - -public: - int UnpRead(byte *Addr,uint Count); - void UnpWrite(byte *Addr,uint Count); - void SetSkipUnpCRC( bool b ) { SkipUnpCRC = b; } - void SetPackedSizeToRead( Int64 n ) { UnpPackedSize = n; } - - uint UnpFileCRC; - - void Seek(Int64 Offset, int Method = 0 ) { (void)Method; Tell_ = Offset; } - Int64 Tell() { return Tell_; } - int Read( void* p, int n ); -}; - -//// rar.hpp -class Unpack; -#include "array.hpp" -#include "headers.hpp" -#include "getbits.hpp" -#include "archive.hpp" -#include "rawread.hpp" -#include "encname.hpp" -#include "compress.hpp" -#include "rarvm.hpp" -#include "model.hpp" -#include "unpack.hpp" - -//// extract.hpp -/** RAR archive */ -struct unrar_t - : public Rar_Allocator -{ - unrar_info_t info; - unrar_pos_t begin_pos; - unrar_pos_t solid_pos; - unrar_pos_t first_file_pos; - void const* data_; - void* own_data_; - void (*close_file)( void* ); // func ptr to avoid linking fclose() in unnecessarily - bool done; - long FileCount; - Unpack* Unp; - Array Buffer; - // large items last - Archive Arc; - - unrar_t(); - ~unrar_t(); - void UnstoreFile( Int64 ); - unrar_err_t ExtractCurrentFile( bool SkipSolid = false, bool check_compatibility_only = false ); - void update_first_file_pos() - { - if ( FileCount == 0 ) - first_file_pos = Arc.CurBlockPos; - } -}; - -typedef unrar_t CmdExtract; - -#endif diff --git a/snesreader/unrar/rarvm.cpp b/snesreader/unrar/rarvm.cpp deleted file mode 100644 index d13e6264..00000000 --- a/snesreader/unrar/rarvm.cpp +++ /dev/null @@ -1,1158 +0,0 @@ -#include "rar.hpp" - -#include "rarvmtbl.cpp" - -// avoids warning of enumeration and non-enumeration in ?: expressions -#define VM_FC ((unsigned) VM_FC) -#define VM_FZ ((unsigned) VM_FZ) -#define VM_FS ((unsigned) VM_FS) - -RarVM::RarVM() -{ - Mem=NULL; -} - - -RarVM::~RarVM() -{ - rarfree( Mem ); -} - - -void RarVM::Init() -{ - if (Mem==NULL) - Mem = (byte*) rarmalloc( VM_MEMSIZE+4 ); -} - -void RarVM::handle_mem_error( Rar_Error_Handler& ErrHandler ) -{ - BitInput::handle_mem_error( ErrHandler ); - if ( !Mem ) - ErrHandler.MemoryError(); -} - -/********************************************************************* - IS_VM_MEM macro checks if address belongs to VM memory pool (Mem). - Only Mem data are always low endian regardless of machine architecture, - so we need to convert them to native format when reading or writing. - VM registers have endianness of host machine. -**********************************************************************/ -#define IS_VM_MEM(a) (((byte*)a)>=Mem && ((byte*)a)>8); - ((byte *)Addr)[2]=(byte)(Value>>16); - ((byte *)Addr)[3]=(byte)(Value>>24); - } - else - *(uint *)Addr=Value; -#else - *(uint32 *)Addr=Value; -#endif - } -} - -#if defined(BIG_ENDIAN) || !defined(ALLOW_NOT_ALIGNED_INT) || !defined(PRESENT_INT32) -#define SET_VALUE(ByteMode,Addr,Value) SetValue(ByteMode,(uint *)Addr,Value) -#else - #define SET_VALUE(ByteMode,Addr,Value) ((ByteMode) ? (*(byte *)(Addr)=(Value)):(*(uint32 *)(Addr)=((uint32)(Value)))) -#endif - - -void RarVM::SetLowEndianValue(uint *Addr,uint Value) -{ -#if defined(BIG_ENDIAN) || !defined(ALLOW_NOT_ALIGNED_INT) || !defined(PRESENT_INT32) - ((byte *)Addr)[0]=(byte)Value; - ((byte *)Addr)[1]=(byte)(Value>>8); - ((byte *)Addr)[2]=(byte)(Value>>16); - ((byte *)Addr)[3]=(byte)(Value>>24); -#else - *(uint32 *)Addr=Value; -#endif -} - - -inline uint* RarVM::GetOperand(VM_PreparedOperand *CmdOp) -{ - if (CmdOp->Type==VM_OPREGMEM) - return((uint *)&Mem[(*CmdOp->Addr+CmdOp->Base)&VM_MEMMASK]); - else - return(CmdOp->Addr); -} - - -void RarVM::Execute(VM_PreparedProgram *Prg) -{ - memcpy(R,Prg->InitR,sizeof(Prg->InitR)); - unsigned int GlobalSize=Min(Prg->GlobalData.Size(),VM_GLOBALMEMSIZE); - if (GlobalSize) - memcpy(Mem+VM_GLOBALMEMADDR,&Prg->GlobalData[0],GlobalSize); - unsigned int StaticSize=Min(Prg->StaticData.Size(),VM_GLOBALMEMSIZE-GlobalSize); - if (StaticSize) - memcpy(Mem+VM_GLOBALMEMADDR+GlobalSize,&Prg->StaticData[0],StaticSize); - - R[7]=VM_MEMSIZE; - Flags=0; - - VM_PreparedCommand *PreparedCode=Prg->AltCmd ? Prg->AltCmd:&Prg->Cmd[0]; - if (!ExecuteCode(PreparedCode,Prg->CmdCount)) - PreparedCode[0].OpCode=VM_RET; - uint NewBlockPos=GET_VALUE(false,&Mem[VM_GLOBALMEMADDR+0x20])&VM_MEMMASK; - uint NewBlockSize=GET_VALUE(false,&Mem[VM_GLOBALMEMADDR+0x1c])&VM_MEMMASK; - if (NewBlockPos+NewBlockSize>=VM_MEMSIZE) - NewBlockPos=NewBlockSize=0; - Prg->FilteredData=Mem+NewBlockPos; - Prg->FilteredDataSize=NewBlockSize; - - Prg->GlobalData.Reset(); - - uint DataSize=Min(GET_VALUE(false,(uint*)&Mem[VM_GLOBALMEMADDR+0x30]),VM_GLOBALMEMSIZE-VM_FIXEDGLOBALSIZE); - if (DataSize!=0) - { - Prg->GlobalData.Add(DataSize+VM_FIXEDGLOBALSIZE); - memcpy(&Prg->GlobalData[0],&Mem[VM_GLOBALMEMADDR],DataSize+VM_FIXEDGLOBALSIZE); - } -} - - -/* -Note: - Due to performance considerations RAR VM may set VM_FS, VM_FC, VM_FZ - incorrectly for byte operands. These flags are always valid only - for 32-bit operands. Check implementation of concrete VM command - to see if it sets flags right. -*/ - -#define SET_IP(IP) \ - if ((IP)>=CodeSize) \ - return(true); \ - if (--MaxOpCount<=0) \ - return(false); \ - Cmd=PreparedCode+(IP); - -bool RarVM::ExecuteCode(VM_PreparedCommand *PreparedCode,int CodeSize) -{ - int MaxOpCount=25000000; - VM_PreparedCommand *Cmd=PreparedCode; - while (1) - { -#ifndef NORARVM - // Get addresses to quickly access operands. - uint *Op1=GetOperand(&Cmd->Op1); - uint *Op2=GetOperand(&Cmd->Op2); -#endif - switch(Cmd->OpCode) - { -#ifndef NORARVM - case VM_MOV: - SET_VALUE(Cmd->ByteMode,Op1,GET_VALUE(Cmd->ByteMode,Op2)); - break; -#ifdef VM_OPTIMIZE - case VM_MOVB: - SET_VALUE(true,Op1,GET_VALUE(true,Op2)); - break; - case VM_MOVD: - SET_VALUE(false,Op1,GET_VALUE(false,Op2)); - break; -#endif - case VM_CMP: - { - uint Value1=GET_VALUE(Cmd->ByteMode,Op1); - uint Result=UINT32(Value1-GET_VALUE(Cmd->ByteMode,Op2)); - Flags=Result==0 ? VM_FZ:(Result>Value1)|(Result&VM_FS); - } - break; -#ifdef VM_OPTIMIZE - case VM_CMPB: - { - uint Value1=GET_VALUE(true,Op1); - uint Result=UINT32(Value1-GET_VALUE(true,Op2)); - Flags=Result==0 ? VM_FZ:(Result>Value1)|(Result&VM_FS); - } - break; - case VM_CMPD: - { - uint Value1=GET_VALUE(false,Op1); - uint Result=UINT32(Value1-GET_VALUE(false,Op2)); - Flags=Result==0 ? VM_FZ:(Result>Value1)|(Result&VM_FS); - } - break; -#endif - case VM_ADD: - { - uint Value1=GET_VALUE(Cmd->ByteMode,Op1); - uint Result=UINT32(Value1+GET_VALUE(Cmd->ByteMode,Op2)); - if (Cmd->ByteMode) - { - Result&=0xff; - Flags=(ResultByteMode,Op1,Result); - } - break; -#ifdef VM_OPTIMIZE - case VM_ADDB: - SET_VALUE(true,Op1,GET_VALUE(true,Op1)+GET_VALUE(true,Op2)); - break; - case VM_ADDD: - SET_VALUE(false,Op1,GET_VALUE(false,Op1)+GET_VALUE(false,Op2)); - break; -#endif - case VM_SUB: - { - uint Value1=GET_VALUE(Cmd->ByteMode,Op1); - uint Result=UINT32(Value1-GET_VALUE(Cmd->ByteMode,Op2)); - Flags=Result==0 ? VM_FZ:(Result>Value1)|(Result&VM_FS); - SET_VALUE(Cmd->ByteMode,Op1,Result); - } - break; -#ifdef VM_OPTIMIZE - case VM_SUBB: - SET_VALUE(true,Op1,GET_VALUE(true,Op1)-GET_VALUE(true,Op2)); - break; - case VM_SUBD: - SET_VALUE(false,Op1,GET_VALUE(false,Op1)-GET_VALUE(false,Op2)); - break; -#endif - case VM_JZ: - if ((Flags & VM_FZ)!=0) - { - SET_IP(GET_VALUE(false,Op1)); - continue; - } - break; - case VM_JNZ: - if ((Flags & VM_FZ)==0) - { - SET_IP(GET_VALUE(false,Op1)); - continue; - } - break; - case VM_INC: - { - uint Result=UINT32(GET_VALUE(Cmd->ByteMode,Op1)+1); - if (Cmd->ByteMode) - Result&=0xff; - SET_VALUE(Cmd->ByteMode,Op1,Result); - Flags=Result==0 ? VM_FZ:Result&VM_FS; - } - break; -#ifdef VM_OPTIMIZE - case VM_INCB: - SET_VALUE(true,Op1,GET_VALUE(true,Op1)+1); - break; - case VM_INCD: - SET_VALUE(false,Op1,GET_VALUE(false,Op1)+1); - break; -#endif - case VM_DEC: - { - uint Result=UINT32(GET_VALUE(Cmd->ByteMode,Op1)-1); - SET_VALUE(Cmd->ByteMode,Op1,Result); - Flags=Result==0 ? VM_FZ:Result&VM_FS; - } - break; -#ifdef VM_OPTIMIZE - case VM_DECB: - SET_VALUE(true,Op1,GET_VALUE(true,Op1)-1); - break; - case VM_DECD: - SET_VALUE(false,Op1,GET_VALUE(false,Op1)-1); - break; -#endif - case VM_JMP: - SET_IP(GET_VALUE(false,Op1)); - continue; - case VM_XOR: - { - uint Result=UINT32(GET_VALUE(Cmd->ByteMode,Op1)^GET_VALUE(Cmd->ByteMode,Op2)); - Flags=Result==0 ? VM_FZ:Result&VM_FS; - SET_VALUE(Cmd->ByteMode,Op1,Result); - } - break; - case VM_AND: - { - uint Result=UINT32(GET_VALUE(Cmd->ByteMode,Op1)&GET_VALUE(Cmd->ByteMode,Op2)); - Flags=Result==0 ? VM_FZ:Result&VM_FS; - SET_VALUE(Cmd->ByteMode,Op1,Result); - } - break; - case VM_OR: - { - uint Result=UINT32(GET_VALUE(Cmd->ByteMode,Op1)|GET_VALUE(Cmd->ByteMode,Op2)); - Flags=Result==0 ? VM_FZ:Result&VM_FS; - SET_VALUE(Cmd->ByteMode,Op1,Result); - } - break; - case VM_TEST: - { - uint Result=UINT32(GET_VALUE(Cmd->ByteMode,Op1)&GET_VALUE(Cmd->ByteMode,Op2)); - Flags=Result==0 ? VM_FZ:Result&VM_FS; - } - break; - case VM_JS: - if ((Flags & VM_FS)!=0) - { - SET_IP(GET_VALUE(false,Op1)); - continue; - } - break; - case VM_JNS: - if ((Flags & VM_FS)==0) - { - SET_IP(GET_VALUE(false,Op1)); - continue; - } - break; - case VM_JB: - if ((Flags & VM_FC)!=0) - { - SET_IP(GET_VALUE(false,Op1)); - continue; - } - break; - case VM_JBE: - if ((Flags & (VM_FC|VM_FZ))!=0) - { - SET_IP(GET_VALUE(false,Op1)); - continue; - } - break; - case VM_JA: - if ((Flags & (VM_FC|VM_FZ))==0) - { - SET_IP(GET_VALUE(false,Op1)); - continue; - } - break; - case VM_JAE: - if ((Flags & VM_FC)==0) - { - SET_IP(GET_VALUE(false,Op1)); - continue; - } - break; - case VM_PUSH: - R[7]-=4; - SET_VALUE(false,(uint *)&Mem[R[7]&VM_MEMMASK],GET_VALUE(false,Op1)); - break; - case VM_POP: - SET_VALUE(false,Op1,GET_VALUE(false,(uint *)&Mem[R[7] & VM_MEMMASK])); - R[7]+=4; - break; - case VM_CALL: - R[7]-=4; - SET_VALUE(false,(uint *)&Mem[R[7]&VM_MEMMASK],Cmd-PreparedCode+1); - SET_IP(GET_VALUE(false,Op1)); - continue; - case VM_NOT: - SET_VALUE(Cmd->ByteMode,Op1,~GET_VALUE(Cmd->ByteMode,Op1)); - break; - case VM_SHL: - { - uint Value1=GET_VALUE(Cmd->ByteMode,Op1); - uint Value2=GET_VALUE(Cmd->ByteMode,Op2); - uint Result=UINT32(Value1<ByteMode,Op1,Result); - } - break; - case VM_SHR: - { - uint Value1=GET_VALUE(Cmd->ByteMode,Op1); - uint Value2=GET_VALUE(Cmd->ByteMode,Op2); - uint Result=UINT32(Value1>>Value2); - Flags=(Result==0 ? VM_FZ:(Result&VM_FS))|((Value1>>(Value2-1))&VM_FC); - SET_VALUE(Cmd->ByteMode,Op1,Result); - } - break; - case VM_SAR: - { - uint Value1=GET_VALUE(Cmd->ByteMode,Op1); - uint Value2=GET_VALUE(Cmd->ByteMode,Op2); - uint Result=UINT32(((int)Value1)>>Value2); - Flags=(Result==0 ? VM_FZ:(Result&VM_FS))|((Value1>>(Value2-1))&VM_FC); - SET_VALUE(Cmd->ByteMode,Op1,Result); - } - break; - case VM_NEG: - { - uint Result=UINT32(-GET_VALUE(Cmd->ByteMode,Op1)); - Flags=Result==0 ? VM_FZ:VM_FC|(Result&VM_FS); - SET_VALUE(Cmd->ByteMode,Op1,Result); - } - break; -#ifdef VM_OPTIMIZE - case VM_NEGB: - SET_VALUE(true,Op1,-GET_VALUE(true,Op1)); - break; - case VM_NEGD: - SET_VALUE(false,Op1,-GET_VALUE(false,Op1)); - break; -#endif - case VM_PUSHA: - { - const int RegCount=sizeof(R)/sizeof(R[0]); - for (int I=0,SP=R[7]-4;IByteMode,Op1); - SET_VALUE(Cmd->ByteMode,Op1,GET_VALUE(Cmd->ByteMode,Op2)); - SET_VALUE(Cmd->ByteMode,Op2,Value1); - } - break; - case VM_MUL: - { - uint Result=GET_VALUE(Cmd->ByteMode,Op1)*GET_VALUE(Cmd->ByteMode,Op2); - SET_VALUE(Cmd->ByteMode,Op1,Result); - } - break; - case VM_DIV: - { - uint Divider=GET_VALUE(Cmd->ByteMode,Op2); - if (Divider!=0) - { - uint Result=GET_VALUE(Cmd->ByteMode,Op1)/Divider; - SET_VALUE(Cmd->ByteMode,Op1,Result); - } - } - break; - case VM_ADC: - { - uint Value1=GET_VALUE(Cmd->ByteMode,Op1); - uint FC=(Flags&VM_FC); - uint Result=UINT32(Value1+GET_VALUE(Cmd->ByteMode,Op2)+FC); - if (Cmd->ByteMode) - Result&=0xff; - Flags=(ResultByteMode,Op1,Result); - } - break; - case VM_SBB: - { - uint Value1=GET_VALUE(Cmd->ByteMode,Op1); - uint FC=(Flags&VM_FC); - uint Result=UINT32(Value1-GET_VALUE(Cmd->ByteMode,Op2)-FC); - if (Cmd->ByteMode) - Result&=0xff; - Flags=(Result>Value1 || Result==Value1 && FC)|(Result==0 ? VM_FZ:(Result&VM_FS)); - SET_VALUE(Cmd->ByteMode,Op1,Result); - } - break; -#endif // for #ifndef NORARVM - case VM_RET: - if (R[7]>=VM_MEMSIZE) - return(true); - SET_IP(GET_VALUE(false,(uint *)&Mem[R[7] & VM_MEMMASK])); - R[7]+=4; - continue; -#ifdef VM_STANDARDFILTERS - case VM_STANDARD: - ExecuteStandardFilter((VM_StandardFilters)Cmd->Op1.Data); - break; -#endif - case VM_PRINT: - break; - } - Cmd++; - --MaxOpCount; - } -} - - - - -void RarVM::Prepare(byte *Code,int CodeSize,VM_PreparedProgram *Prg) -{ - InitBitInput(); - memcpy(InBuf,Code,Min(CodeSize,BitInput::MAX_SIZE)); - - // Calculate the single byte XOR checksum to check validity of VM code. - byte XorSum=0; - { - for (int I=1;ICmdCount=0; - if (XorSum==Code[0]) // VM code is valid if equal. - { -#ifdef VM_STANDARDFILTERS - VM_StandardFilters FilterType=IsStandardFilter(Code,CodeSize); - if (FilterType!=VMSF_NONE) - { - // VM code is found among standard filters. - Prg->Cmd.Add(1); - VM_PreparedCommand *CurCmd=&Prg->Cmd[Prg->CmdCount++]; - CurCmd->OpCode=VM_STANDARD; - CurCmd->Op1.Data=FilterType; - CurCmd->Op1.Addr=&CurCmd->Op1.Data; - CurCmd->Op2.Addr=&CurCmd->Op2.Data; - CurCmd->Op1.Type=CurCmd->Op2.Type=VM_OPNONE; - CodeSize=0; - } -#endif - uint DataFlag=fgetbits(); - faddbits(1); - - // Read static data contained in DB operators. This data cannot be - // changed, it is a part of VM code, not a filter parameter. - - if (DataFlag&0x8000) - { - int DataSize=ReadData(*this)+1; - for (int I=0;InAddrStaticData.Add(1); - Prg->StaticData[I]=fgetbits()>>8; - faddbits(8); - } - } - - while (InAddrCmd.Add(1); - VM_PreparedCommand *CurCmd=&Prg->Cmd[Prg->CmdCount]; - uint Data=fgetbits(); - if ((Data&0x8000)==0) - { - CurCmd->OpCode=(VM_Commands)(Data>>12); - faddbits(4); - } - else - { - CurCmd->OpCode=(VM_Commands)((Data>>10)-24); - faddbits(6); - } - if (VM_CmdFlags[CurCmd->OpCode] & VMCF_BYTEMODE) - { - CurCmd->ByteMode=fgetbits()>>15; - faddbits(1); - } - else - CurCmd->ByteMode=0; - CurCmd->Op1.Type=CurCmd->Op2.Type=VM_OPNONE; - int OpNum=(VM_CmdFlags[CurCmd->OpCode] & VMCF_OPMASK); - CurCmd->Op1.Addr=CurCmd->Op2.Addr=NULL; - if (OpNum>0) - { - DecodeArg(CurCmd->Op1,CurCmd->ByteMode); // reading the first operand - if (OpNum==2) - DecodeArg(CurCmd->Op2,CurCmd->ByteMode); // reading the second operand - else - { - if (CurCmd->Op1.Type==VM_OPINT && (VM_CmdFlags[CurCmd->OpCode]&(VMCF_JUMP|VMCF_PROC))) - { - // Calculating jump distance. - int Distance=CurCmd->Op1.Data; - if (Distance>=256) - Distance-=256; - else - { - if (Distance>=136) - Distance-=264; - else - if (Distance>=16) - Distance-=8; - else - if (Distance>=8) - Distance-=16; - Distance+=Prg->CmdCount; - } - CurCmd->Op1.Data=Distance; - } - } - } - Prg->CmdCount++; - } - } - - // Adding RET command at the end of program. - Prg->Cmd.Add(1); - VM_PreparedCommand *CurCmd=&Prg->Cmd[Prg->CmdCount++]; - CurCmd->OpCode=VM_RET; - CurCmd->Op1.Addr=&CurCmd->Op1.Data; - CurCmd->Op2.Addr=&CurCmd->Op2.Data; - CurCmd->Op1.Type=CurCmd->Op2.Type=VM_OPNONE; - - // If operand 'Addr' field has not been set by DecodeArg calls above, - // let's set it to point to operand 'Data' field. It is necessary for - // VM_OPINT type operands (usual integers) or maybe if something was - // not set properly for other operands. 'Addr' field is required - // for quicker addressing of operand data. - for (int I=0;ICmdCount;I++) - { - VM_PreparedCommand *Cmd=&Prg->Cmd[I]; - if (Cmd->Op1.Addr==NULL) - Cmd->Op1.Addr=&Cmd->Op1.Data; - if (Cmd->Op2.Addr==NULL) - Cmd->Op2.Addr=&Cmd->Op2.Data; - } - -#ifdef VM_OPTIMIZE - if (CodeSize!=0) - Optimize(Prg); -#endif -} - - -void RarVM::DecodeArg(VM_PreparedOperand &Op,bool ByteMode) -{ - uint Data=fgetbits(); - if (Data & 0x8000) - { - Op.Type=VM_OPREG; // Operand is register (R[0]..R[7]) - Op.Data=(Data>>12)&7; // Register number - Op.Addr=&R[Op.Data]; // Register address - faddbits(4); // 1 flag bit and 3 register number bits - } - else - if ((Data & 0xc000)==0) - { - Op.Type=VM_OPINT; // Operand is integer - if (ByteMode) - { - Op.Data=(Data>>6) & 0xff; // Byte integer. - faddbits(10); - } - else - { - faddbits(2); - Op.Data=ReadData(*this); // 32 bit integer. - } - } - else - { - // Operand is data addressed by register data, base address or both. - Op.Type=VM_OPREGMEM; - if ((Data & 0x2000)==0) - { - // Base address is zero, just use the address from register. - Op.Data=(Data>>10)&7; - Op.Addr=&R[Op.Data]; - Op.Base=0; - faddbits(6); - } - else - { - if ((Data & 0x1000)==0) - { - // Use both register and base address. - Op.Data=(Data>>9)&7; - Op.Addr=&R[Op.Data]; - faddbits(7); - } - else - { - // Use base address only. Access memory by fixed address. - Op.Data=0; - faddbits(4); - } - Op.Base=ReadData(*this); // Read base address. - } - } -} - - -uint RarVM::ReadData(BitInput &Inp) -{ - uint Data=Inp.fgetbits(); - switch(Data&0xc000) - { - case 0: - Inp.faddbits(6); - return((Data>>10)&0xf); - case 0x4000: - if ((Data&0x3c00)==0) - { - Data=0xffffff00|((Data>>2)&0xff); - Inp.faddbits(14); - } - else - { - Data=(Data>>6)&0xff; - Inp.faddbits(10); - } - return(Data); - case 0x8000: - Inp.faddbits(2); - Data=Inp.fgetbits(); - Inp.faddbits(16); - return(Data); - default: - Inp.faddbits(2); - Data=(Inp.fgetbits()<<16); - Inp.faddbits(16); - Data|=Inp.fgetbits(); - Inp.faddbits(16); - return(Data); - } -} - - -void RarVM::SetMemory(unsigned int Pos,byte *Data,unsigned int DataSize) -{ - if (PosCmd[0]; - int CodeSize=Prg->CmdCount; - - for (int I=0;IOpCode) - { - case VM_MOV: - Cmd->OpCode=Cmd->ByteMode ? VM_MOVB:VM_MOVD; - continue; - case VM_CMP: - Cmd->OpCode=Cmd->ByteMode ? VM_CMPB:VM_CMPD; - continue; - } - if ((VM_CmdFlags[Cmd->OpCode] & VMCF_CHFLAGS)==0) - continue; - - // If we do not have jump commands between the current operation - // and next command which will modify processor flags, we can replace - // the current command with faster version which does not need to - // modify flags. - bool FlagsRequired=false; - for (int J=I+1;JOpCode) - { - case VM_ADD: - Cmd->OpCode=Cmd->ByteMode ? VM_ADDB:VM_ADDD; - continue; - case VM_SUB: - Cmd->OpCode=Cmd->ByteMode ? VM_SUBB:VM_SUBD; - continue; - case VM_INC: - Cmd->OpCode=Cmd->ByteMode ? VM_INCB:VM_INCD; - continue; - case VM_DEC: - Cmd->OpCode=Cmd->ByteMode ? VM_DECB:VM_DECD; - continue; - case VM_NEG: - Cmd->OpCode=Cmd->ByteMode ? VM_NEGB:VM_NEGD; - continue; - } - } -} -#endif - - -#ifdef VM_STANDARDFILTERS -VM_StandardFilters RarVM::IsStandardFilter(byte *Code,int CodeSize) -{ - static const - struct StandardFilterSignature - { - int Length; - uint CRC; - VM_StandardFilters Type; - } StdList[]={ - { - 53, 0xad576887, VMSF_E8, - },{ - 57, 0x3cd7e57e, VMSF_E8E9, - },{ - 120, 0x3769893f, VMSF_ITANIUM, - },{ - 29, 0x0e06077d, VMSF_DELTA, - },{ - 149, 0x1c2c5dc8, VMSF_RGB, - },{ - 216, 0xbc85e701, VMSF_AUDIO, - },{ - 40, 0x46b9c560, VMSF_UPCASE - } - }; - uint CodeCRC=CRC(0xffffffff,Code,CodeSize)^0xffffffff; - for (int I=0;I=VM_GLOBALMEMADDR || DataSize<4) - break; - - const int FileSize=0x1000000; - byte CmpByte2=FilterType==VMSF_E8E9 ? 0xe9:0xe8; - for (int CurPos=0;CurPos=0) - SET_VALUE(false,Data,Addr+FileSize); - } - else - if (Addr=VM_GLOBALMEMADDR || DataSize<21) - break; - - int CurPos=0; - - FileOffset>>=4; - - while (CurPos=0) - { - const - static byte Masks[16]={4,4,6,6,0,0,7,7,4,4,0,0,4,4,0,0}; - byte CmdMask=Masks[Byte]; - if (CmdMask!=0) - for (int I=0;I<=2;I++) - if (CmdMask & (1<=VM_GLOBALMEMADDR/2) - break; - - // Bytes from same channels are grouped to continual data blocks, - // so we need to place them back to their interleaving positions. - for (int CurChannel=0;CurChannel=VM_GLOBALMEMADDR/2 || PosR<0) - break; - for (int CurChannel=0;CurChannel=3) - { - byte *UpperData=DestData+UpperPos; - unsigned int UpperByte=*UpperData; - unsigned int UpperLeftByte=*(UpperData-3); - Predicted=PrevByte+UpperByte-UpperLeftByte; - int pa=abs((int)(Predicted-PrevByte)); - int pb=abs((int)(Predicted-UpperByte)); - int pc=abs((int)(Predicted-UpperLeftByte)); - if (pa<=pb && pa<=pc) - Predicted=PrevByte; - else - if (pb<=pc) - Predicted=UpperByte; - else - Predicted=UpperLeftByte; - } - else - Predicted=PrevByte; - DestData[I]=PrevByte=(byte)(Predicted-*(SrcData++)); - } - } - for (int I=PosR,Border=DataSize-2;I=VM_GLOBALMEMADDR/2) - break; - for (int CurChannel=0;CurChannel>3) & 0xff; - - unsigned int CurByte=*(SrcData++); - - Predicted-=CurByte; - DestData[I]=Predicted; - PrevDelta=(signed char)(Predicted-PrevByte); - PrevByte=Predicted; - - int D=((signed char)CurByte)<<3; - - Dif[0]+=abs(D); - Dif[1]+=abs(D-D1); - Dif[2]+=abs(D+D1); - Dif[3]+=abs(D-D2); - Dif[4]+=abs(D+D2); - Dif[5]+=abs(D-D3); - Dif[6]+=abs(D+D3); - - if ((ByteCount & 0x1f)==0) - { - unsigned int MinDif=Dif[0],NumMinDif=0; - Dif[0]=0; - for (int J=1;J=-16) K1--; break; - case 2: if (K1 < 16) K1++; break; - case 3: if (K2>=-16) K2--; break; - case 4: if (K2 < 16) K2++; break; - case 5: if (K3>=-16) K3--; break; - case 6: if (K3 < 16) K3++; break; - } - } - } - } - } - break; - case VMSF_UPCASE: - { - int DataSize=R[4],SrcPos=0,DestPos=DataSize; - if (DataSize>=VM_GLOBALMEMADDR/2) - break; - while (SrcPos>= InBit; - return(BitField & (0xffffffff>>(32-BitCount))); -} - - -void RarVM::FilterItanium_SetBits(byte *Data,unsigned int BitField,int BitPos, - int BitCount) -{ - int InAddr=BitPos/8; - int InBit=BitPos&7; - unsigned int AndMask=0xffffffff>>(32-BitCount); - AndMask=~(AndMask<>8)|0xff000000; - BitField>>=8; - } -} -#endif diff --git a/snesreader/unrar/rarvm.hpp b/snesreader/unrar/rarvm.hpp deleted file mode 100644 index 835e5299..00000000 --- a/snesreader/unrar/rarvm.hpp +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef _RAR_VM_ -#define _RAR_VM_ - -#define VM_STANDARDFILTERS - -#ifndef SFX_MODULE -#define VM_OPTIMIZE -#endif - - -#define VM_MEMSIZE 0x40000 -#define VM_MEMMASK (VM_MEMSIZE-1) -#define VM_GLOBALMEMADDR 0x3C000 -#define VM_GLOBALMEMSIZE 0x2000 -#define VM_FIXEDGLOBALSIZE 64 - -enum VM_Commands -{ - VM_MOV, VM_CMP, VM_ADD, VM_SUB, VM_JZ, VM_JNZ, VM_INC, VM_DEC, - VM_JMP, VM_XOR, VM_AND, VM_OR, VM_TEST, VM_JS, VM_JNS, VM_JB, - VM_JBE, VM_JA, VM_JAE, VM_PUSH, VM_POP, VM_CALL, VM_RET, VM_NOT, - VM_SHL, VM_SHR, VM_SAR, VM_NEG, VM_PUSHA,VM_POPA, VM_PUSHF,VM_POPF, - VM_MOVZX,VM_MOVSX,VM_XCHG, VM_MUL, VM_DIV, VM_ADC, VM_SBB, VM_PRINT, - -#ifdef VM_OPTIMIZE - VM_MOVB, VM_MOVD, VM_CMPB, VM_CMPD, - - VM_ADDB, VM_ADDD, VM_SUBB, VM_SUBD, VM_INCB, VM_INCD, VM_DECB, VM_DECD, - VM_NEGB, VM_NEGD, -#endif - - VM_STANDARD -}; - -enum VM_StandardFilters { - VMSF_NONE, VMSF_E8, VMSF_E8E9, VMSF_ITANIUM, VMSF_RGB, VMSF_AUDIO, - VMSF_DELTA, VMSF_UPCASE -}; - -enum VM_Flags {VM_FC=1,VM_FZ=2,VM_FS=0x80000000}; - -enum VM_OpType {VM_OPREG,VM_OPINT,VM_OPREGMEM,VM_OPNONE}; - -struct VM_PreparedOperand -{ - VM_OpType Type; - uint Data; - uint Base; - uint *Addr; -}; - -struct VM_PreparedCommand -{ - VM_Commands OpCode; - bool ByteMode; - VM_PreparedOperand Op1,Op2; -}; - - -struct VM_PreparedProgram -{ - VM_PreparedProgram( Rar_Error_Handler* eh ) : Cmd( eh ), GlobalData( eh ), StaticData( eh ) - {AltCmd=NULL;} - - Array Cmd; - VM_PreparedCommand *AltCmd; - int CmdCount; - - Array GlobalData; - Array StaticData; // static data contained in DB operators - uint InitR[7]; - - byte *FilteredData; - unsigned int FilteredDataSize; -}; - -class RarVM:private BitInput -{ - private: - inline uint GetValue(bool ByteMode,uint *Addr); - inline void SetValue(bool ByteMode,uint *Addr,uint Value); - inline uint* GetOperand(VM_PreparedOperand *CmdOp); - void DecodeArg(VM_PreparedOperand &Op,bool ByteMode); -#ifdef VM_OPTIMIZE - void Optimize(VM_PreparedProgram *Prg); -#endif - bool ExecuteCode(VM_PreparedCommand *PreparedCode,int CodeSize); -#ifdef VM_STANDARDFILTERS - VM_StandardFilters IsStandardFilter(byte *Code,int CodeSize); - void ExecuteStandardFilter(VM_StandardFilters FilterType); - unsigned int FilterItanium_GetBits(byte *Data,int BitPos,int BitCount); - void FilterItanium_SetBits(byte *Data,unsigned int BitField,int BitPos, - int BitCount); -#endif - - byte *Mem; - uint R[8]; - uint Flags; - public: - RarVM(); - ~RarVM(); - void Init(); - void handle_mem_error( Rar_Error_Handler& ); - friend class Unpack; - void Prepare(byte *Code,int CodeSize,VM_PreparedProgram *Prg); - void Execute(VM_PreparedProgram *Prg); - void SetLowEndianValue(uint *Addr,uint Value); - void SetMemory(unsigned int Pos,byte *Data,unsigned int DataSize); - static uint ReadData(BitInput &Inp); -}; - -#endif diff --git a/snesreader/unrar/rarvmtbl.cpp b/snesreader/unrar/rarvmtbl.cpp deleted file mode 100644 index abfdbeeb..00000000 --- a/snesreader/unrar/rarvmtbl.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// #included by rarvm.cpp -#ifdef RAR_COMMON_HPP -#define VMCF_OP0 0 -#define VMCF_OP1 1 -#define VMCF_OP2 2 -#define VMCF_OPMASK 3 -#define VMCF_BYTEMODE 4 -#define VMCF_JUMP 8 -#define VMCF_PROC 16 -#define VMCF_USEFLAGS 32 -#define VMCF_CHFLAGS 64 - -const -static byte VM_CmdFlags[]= -{ - /* VM_MOV */ VMCF_OP2 | VMCF_BYTEMODE , - /* VM_CMP */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_ADD */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_SUB */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_JZ */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS , - /* VM_JNZ */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS , - /* VM_INC */ VMCF_OP1 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_DEC */ VMCF_OP1 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_JMP */ VMCF_OP1 | VMCF_JUMP , - /* VM_XOR */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_AND */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_OR */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_TEST */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_JS */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS , - /* VM_JNS */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS , - /* VM_JB */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS , - /* VM_JBE */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS , - /* VM_JA */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS , - /* VM_JAE */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS , - /* VM_PUSH */ VMCF_OP1 , - /* VM_POP */ VMCF_OP1 , - /* VM_CALL */ VMCF_OP1 | VMCF_PROC , - /* VM_RET */ VMCF_OP0 | VMCF_PROC , - /* VM_NOT */ VMCF_OP1 | VMCF_BYTEMODE , - /* VM_SHL */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_SHR */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_SAR */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_NEG */ VMCF_OP1 | VMCF_BYTEMODE | VMCF_CHFLAGS , - /* VM_PUSHA */ VMCF_OP0 , - /* VM_POPA */ VMCF_OP0 , - /* VM_PUSHF */ VMCF_OP0 | VMCF_USEFLAGS , - /* VM_POPF */ VMCF_OP0 | VMCF_CHFLAGS , - /* VM_MOVZX */ VMCF_OP2 , - /* VM_MOVSX */ VMCF_OP2 , - /* VM_XCHG */ VMCF_OP2 | VMCF_BYTEMODE , - /* VM_MUL */ VMCF_OP2 | VMCF_BYTEMODE , - /* VM_DIV */ VMCF_OP2 | VMCF_BYTEMODE , - /* VM_ADC */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_USEFLAGS | VMCF_CHFLAGS , - /* VM_SBB */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_USEFLAGS | VMCF_CHFLAGS , - /* VM_PRINT */ VMCF_OP0 -}; -#endif diff --git a/snesreader/unrar/rawread.cpp b/snesreader/unrar/rawread.cpp deleted file mode 100644 index afe6b06f..00000000 --- a/snesreader/unrar/rawread.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include "rar.hpp" - -RawRead::RawRead(ComprDataIO *SrcFile) : Data( SrcFile ) -{ - RawRead::SrcFile=SrcFile; - ReadPos=0; - DataSize=0; -} - -void RawRead::Reset() -{ - ReadPos=0; - DataSize=0; - Data.Reset(); -} - -void RawRead::Read(int Size) -{ - // (removed decryption) - if (Size!=0) - { - Data.Add(Size); - DataSize+=SrcFile->Read(&Data[DataSize],Size); - } -} - - - - -void RawRead::Get(byte &Field) -{ - if (ReadPos2 ? CRC(0xffffffff,&Data[2],(ProcessedOnly ? ReadPos:DataSize)-2):0xffffffff); -} diff --git a/snesreader/unrar/rawread.hpp b/snesreader/unrar/rawread.hpp deleted file mode 100644 index dc37c304..00000000 --- a/snesreader/unrar/rawread.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _RAR_RAWREAD_ -#define _RAR_RAWREAD_ - -class RawRead -{ -private: - Array Data; - File *SrcFile; - int DataSize; - int ReadPos; - friend class Archive; -public: - RawRead(File *SrcFile); - void Reset(); - void Read(int Size); - void Get(byte &Field); - void Get(ushort &Field); - void Get(uint &Field); - void Get(byte *Field,int Size); - uint GetCRC(bool ProcessedOnly); - int Size() {return DataSize;} - int PaddedSize() {return Data.Size()-DataSize;} -}; - -#endif diff --git a/snesreader/unrar/readme.txt b/snesreader/unrar/readme.txt deleted file mode 100644 index 20e70c77..00000000 --- a/snesreader/unrar/readme.txt +++ /dev/null @@ -1,63 +0,0 @@ - - Portable UnRAR version - - - 1. General - - This package includes freeware Unrar C++ source and a few makefiles - (makefile.bcc, makefile.msc+msc.dep, makefile.unix). Unrar source - is subset of RAR and generated from RAR source automatically, - by a small program removing blocks like '#ifndef UNRAR ... #endif'. - Such method is not perfect and you may find some RAR related - stuff unnecessary in Unrar, especially in header files. - - If you wish to port Unrar to a new platform, you may need to edit - '#define LITTLE_ENDIAN' in os.hpp and data type definitions - in rartypes.hpp. - - if computer architecture does not allow not aligned data access, - you need to undefine ALLOW_NOT_ALIGNED_INT and define - STRICT_ALIGNMENT_REQUIRED in os.h. Note that it will increase memory - requirements. - - If you use Borland C++ makefile (makefile.bcc), you need to define - BASEPATHCC environment (or makefile) variable containing - the path to Borland C++ installation. - - Makefile.unix contains numerous compiler option sets. - GCC Linux is selected by default. If you need to compile Unrar - for other platforms, uncomment corresponding lines. - - - 2. Unrar binaries - - If you compiled Unrar for OS, which is not present in "Downloads" - and "RAR extras" on www.rarlab.com, we will appreciate if you send - us the compiled executable to place it to our site. - - - 3. Acknowledgements - - This source includes parts of code written by the following authors: - - Dmitry Shkarin PPMII v.H text compression - Dmitry Subbotin Carryless rangecoder - Szymon Stefanek AES encryption - Brian Gladman AES encryption - Steve Reid SHA-1 hash function - Marcus Herbert makefile.unix file - Tomasz Klim fixes for libunrar.so - Robert Riebisch makefile.dj and patches for DJGPP - - - 4. Legal stuff - - Unrar source may be used in any software to handle RAR archives - without limitations free of charge, but cannot be used to re-create - the RAR compression algorithm, which is proprietary. Distribution - of modified Unrar source in separate form or as a part of other - software is permitted, provided that it is clearly stated in - the documentation and source comments that the code may not be used - to develop a RAR (WinRAR) compatible archiver. - - More detailed license text is available in license.txt. diff --git a/snesreader/unrar/suballoc.cpp b/snesreader/unrar/suballoc.cpp deleted file mode 100644 index 66d49d55..00000000 --- a/snesreader/unrar/suballoc.cpp +++ /dev/null @@ -1,261 +0,0 @@ -/**************************************************************************** - * This file is part of PPMd project * - * Written and distributed to public domain by Dmitry Shkarin 1997, * - * 1999-2000 * - * Contents: memory allocation routines * - ****************************************************************************/ - -// #included by unpack.cpp -#ifdef RAR_COMMON_HPP -SubAllocator::SubAllocator() -{ - Clean(); -} - - -void SubAllocator::Clean() -{ - SubAllocatorSize=0; -} - - -inline void SubAllocator::InsertNode(void* p,int indx) -{ - ((RAR_NODE*) p)->next=FreeList[indx].next; - FreeList[indx].next=(RAR_NODE*) p; -} - - -inline void* SubAllocator::RemoveNode(int indx) -{ - RAR_NODE* RetVal=FreeList[indx].next; - FreeList[indx].next=RetVal->next; - return RetVal; -} - - -inline uint SubAllocator::U2B(int NU) -{ - return /*8*NU+4*NU*/UNIT_SIZE*NU; -} - - -/* - calculate RAR_MEM_BLK + Items address. Real RAR_MEM_BLK size must be - equal to UNIT_SIZE, so we cannot just add Items to RAR_MEM_BLK address -*/ -inline RAR_MEM_BLK* SubAllocator::MBPtr(RAR_MEM_BLK *BasePtr,int Items) -{ - return((RAR_MEM_BLK*)( ((byte *)(BasePtr))+U2B(Items) )); -} - - -inline void SubAllocator::SplitBlock(void* pv,int OldIndx,int NewIndx) -{ - int i, UDiff=Indx2Units[OldIndx]-Indx2Units[NewIndx]; - byte* p=((byte*) pv)+U2B(Indx2Units[NewIndx]); - if (Indx2Units[i=Units2Indx[UDiff-1]] != UDiff) - { - InsertNode(p,--i); - p += U2B(i=Indx2Units[i]); - UDiff -= i; - } - InsertNode(p,Units2Indx[UDiff-1]); -} - - - - -void SubAllocator::StopSubAllocator() -{ - if ( SubAllocatorSize ) - { - SubAllocatorSize=0; - rarfree(HeapStart); - } -} - - -bool SubAllocator::StartSubAllocator(int SASize) -{ - uint t=SASize << 20; - if (SubAllocatorSize == t) - return true; - StopSubAllocator(); - uint AllocSize=t/FIXED_UNIT_SIZE*UNIT_SIZE+UNIT_SIZE; -#ifdef STRICT_ALIGNMENT_REQUIRED - AllocSize+=UNIT_SIZE; -#endif - if ((HeapStart=(byte *)rarmalloc(AllocSize)) == NULL) - { - ErrHandler->MemoryError(); - return false; - } - HeapEnd=HeapStart+AllocSize-UNIT_SIZE; - SubAllocatorSize=t; - return true; -} - - -void SubAllocator::InitSubAllocator() -{ - int i, k; - memset(FreeList,0,sizeof(FreeList)); - pText=HeapStart; - uint Size2=FIXED_UNIT_SIZE*(SubAllocatorSize/8/FIXED_UNIT_SIZE*7); - uint RealSize2=Size2/FIXED_UNIT_SIZE*UNIT_SIZE; - uint Size1=SubAllocatorSize-Size2; - uint RealSize1=Size1/FIXED_UNIT_SIZE*UNIT_SIZE+Size1%FIXED_UNIT_SIZE; -#ifdef STRICT_ALIGNMENT_REQUIRED - if (Size1%FIXED_UNIT_SIZE!=0) - RealSize1+=UNIT_SIZE-Size1%FIXED_UNIT_SIZE; -#endif - HiUnit=HeapStart+SubAllocatorSize; - LoUnit=UnitsStart=HeapStart+RealSize1; - FakeUnitsStart=HeapStart+Size1; - HiUnit=LoUnit+RealSize2; - for (i=0,k=1;i < N1 ;i++,k += 1) - Indx2Units[i]=k; - for (k++;i < N1+N2 ;i++,k += 2) - Indx2Units[i]=k; - for (k++;i < N1+N2+N3 ;i++,k += 3) - Indx2Units[i]=k; - for (k++;i < N1+N2+N3+N4;i++,k += 4) - Indx2Units[i]=k; - for (GlueCount=k=i=0;k < 128;k++) - { - i += (Indx2Units[i] < k+1); - Units2Indx[k]=i; - } -} - - -inline void SubAllocator::GlueFreeBlocks() -{ - RAR_MEM_BLK s0, * p, * p1; - int i, k, sz; - if (LoUnit != HiUnit) - *LoUnit=0; - for (i=0, s0.next=s0.prev=&s0;i < N_INDEXES;i++) - while ( FreeList[i].next ) - { - p=(RAR_MEM_BLK*)RemoveNode(i); - p->insertAt(&s0); - p->Stamp=0xFFFF; - p->NU=Indx2Units[i]; - } - for (p=s0.next;p != &s0;p=p->next) - while ((p1=MBPtr(p,p->NU))->Stamp == 0xFFFF && int(p->NU)+p1->NU < 0x10000) - { - p1->remove(); - p->NU += p1->NU; - } - while ((p=s0.next) != &s0) - { - for (p->remove(), sz=p->NU;sz > 128;sz -= 128, p=MBPtr(p,128)) - InsertNode(p,N_INDEXES-1); - if (Indx2Units[i=Units2Indx[sz-1]] != sz) - { - k=sz-Indx2Units[--i]; - InsertNode(MBPtr(p,sz-k),k-1); - } - InsertNode(p,i); - } -} - -void* SubAllocator::AllocUnitsRare(int indx) -{ - if ( !GlueCount ) - { - GlueCount = 255; - GlueFreeBlocks(); - if ( FreeList[indx].next ) - return RemoveNode(indx); - } - int i=indx; - do - { - if (++i == N_INDEXES) - { - GlueCount--; - i=U2B(Indx2Units[indx]); - int j=FIXED_UNIT_SIZE*Indx2Units[indx]; - if (FakeUnitsStart-pText > j) - { - FakeUnitsStart-=j; - UnitsStart -= i; - return(UnitsStart); - } - return(NULL); - } - } while ( !FreeList[i].next ); - void* RetVal=RemoveNode(i); - SplitBlock(RetVal,i,indx); - return RetVal; -} - - -inline void* SubAllocator::AllocUnits(int NU) -{ - int indx=Units2Indx[NU-1]; - if ( FreeList[indx].next ) - return RemoveNode(indx); - void* RetVal=LoUnit; - LoUnit += U2B(Indx2Units[indx]); - if (LoUnit <= HiUnit) - return RetVal; - LoUnit -= U2B(Indx2Units[indx]); - return AllocUnitsRare(indx); -} - - -void* SubAllocator::AllocContext() -{ - if (HiUnit != LoUnit) - return (HiUnit -= UNIT_SIZE); - if ( FreeList->next ) - return RemoveNode(0); - return AllocUnitsRare(0); -} - - -void* SubAllocator::ExpandUnits(void* OldPtr,int OldNU) -{ - int i0=Units2Indx[OldNU-1], i1=Units2Indx[OldNU-1+1]; - if (i0 == i1) - return OldPtr; - void* ptr=AllocUnits(OldNU+1); - if ( ptr ) - { - memcpy(ptr,OldPtr,U2B(OldNU)); - InsertNode(OldPtr,i0); - } - return ptr; -} - - -void* SubAllocator::ShrinkUnits(void* OldPtr,int OldNU,int NewNU) -{ - int i0=Units2Indx[OldNU-1], i1=Units2Indx[NewNU-1]; - if (i0 == i1) - return OldPtr; - if ( FreeList[i1].next ) - { - void* ptr=RemoveNode(i1); - memcpy(ptr,OldPtr,U2B(NewNU)); - InsertNode(OldPtr,i0); - return ptr; - } - else - { - SplitBlock(OldPtr,i0,i1); - return OldPtr; - } -} - - -void SubAllocator::FreeUnits(void* ptr,int OldNU) -{ - InsertNode(ptr,Units2Indx[OldNU-1]); -} -#endif diff --git a/snesreader/unrar/suballoc.hpp b/snesreader/unrar/suballoc.hpp deleted file mode 100644 index 1ea9f217..00000000 --- a/snesreader/unrar/suballoc.hpp +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** - * This file is part of PPMd project * - * Written and distributed to public domain by Dmitry Shkarin 1997, * - * 1999-2000 * - * Contents: interface to memory allocation routines * - ****************************************************************************/ -#if !defined(_SUBALLOC_H_) -#define _SUBALLOC_H_ - -const int N1=4, N2=4, N3=4, N4=(128+3-1*N1-2*N2-3*N3)/4; -const int N_INDEXES=N1+N2+N3+N4; - -#if defined(__GNUC__) && !defined(STRICT_ALIGNMENT_REQUIRED) -#define _PACK_ATTR __attribute__ ((packed)) -#else -#define _PACK_ATTR -#endif /* defined(__GNUC__) */ - -#ifndef STRICT_ALIGNMENT_REQUIRED -#pragma pack(1) -#endif - -struct RAR_MEM_BLK -{ - ushort Stamp, NU; - RAR_MEM_BLK* next, * prev; - void insertAt(RAR_MEM_BLK* p) - { - next=(prev=p)->next; - p->next=next->prev=this; - } - void remove() - { - prev->next=next; - next->prev=prev; - } -} _PACK_ATTR; - -#ifndef STRICT_ALIGNMENT_REQUIRED -#ifdef _AIX -#pragma pack(pop) -#else -#pragma pack() -#endif -#endif - - -struct RAR_NODE -{ - RAR_NODE* next; -}; - -class SubAllocator -{ - private: - inline void InsertNode(void* p,int indx); - inline void* RemoveNode(int indx); - inline uint U2B(int NU); - inline void SplitBlock(void* pv,int OldIndx,int NewIndx); - uint GetUsedMemory(); - inline void GlueFreeBlocks(); - void* AllocUnitsRare(int indx); - inline RAR_MEM_BLK* MBPtr(RAR_MEM_BLK *BasePtr,int Items); - - long SubAllocatorSize; - byte Indx2Units[N_INDEXES], Units2Indx[128], GlueCount; - byte *HeapStart,*LoUnit, *HiUnit; - struct RAR_NODE FreeList[N_INDEXES]; - public: - Rar_Error_Handler* ErrHandler; - SubAllocator(); - ~SubAllocator() {StopSubAllocator();} - void Clean(); - bool StartSubAllocator(int SASize); - void StopSubAllocator(); - void InitSubAllocator(); - inline void* AllocContext(); - inline void* AllocUnits(int NU); - inline void* ExpandUnits(void* ptr,int OldNU); - inline void* ShrinkUnits(void* ptr,int OldNU,int NewNU); - inline void FreeUnits(void* ptr,int OldNU); - long GetAllocatedMemory() {return(SubAllocatorSize);}; - - byte *pText, *UnitsStart,*HeapEnd,*FakeUnitsStart; -}; - - -#endif /* !defined(_SUBALLOC_H_) */ diff --git a/snesreader/unrar/technote.txt b/snesreader/unrar/technote.txt deleted file mode 100644 index 15e57593..00000000 --- a/snesreader/unrar/technote.txt +++ /dev/null @@ -1,275 +0,0 @@ - - RAR version 3.80 - Technical information - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - THE ARCHIVE FORMAT DESCRIBED BELOW IS ONLY VALID FOR VERSIONS SINCE 1.50 - - ========================================================================== - RAR archive file format - ========================================================================== - - Archive file consists of variable length blocks. The order of these -blocks may vary, but the first block must be a marker block followed by -an archive header block. - - Each block begins with the following fields: - -HEAD_CRC 2 bytes CRC of total block or block part -HEAD_TYPE 1 byte Block type -HEAD_FLAGS 2 bytes Block flags -HEAD_SIZE 2 bytes Block size -ADD_SIZE 4 bytes Optional field - added block size - - Field ADD_SIZE present only if (HEAD_FLAGS & 0x8000) != 0 - - Total block size is HEAD_SIZE if (HEAD_FLAGS & 0x8000) == 0 -and HEAD_SIZE+ADD_SIZE if the field ADD_SIZE is present - when -(HEAD_FLAGS & 0x8000) != 0. - - In each block the followings bits in HEAD_FLAGS have the same meaning: - - 0x4000 - if set, older RAR versions will ignore the block - and remove it when the archive is updated. - if clear, the block is copied to the new archive - file when the archive is updated; - - 0x8000 - if set, ADD_SIZE field is present and the full block - size is HEAD_SIZE+ADD_SIZE. - - Declared block types: - -HEAD_TYPE=0x72 marker block -HEAD_TYPE=0x73 archive header -HEAD_TYPE=0x74 file header -HEAD_TYPE=0x75 old style comment header -HEAD_TYPE=0x76 old style authenticity information -HEAD_TYPE=0x77 old style subblock -HEAD_TYPE=0x78 old style recovery record -HEAD_TYPE=0x79 old style authenticity information -HEAD_TYPE=0x7a subblock - - Comment block is actually used only within other blocks and doesn't -exist separately. - - Archive processing is made in the following manner: - -1. Read and check marker block -2. Read archive header -3. Read or skip HEAD_SIZE-sizeof(MAIN_HEAD) bytes -4. If end of archive encountered then terminate archive processing, - else read 7 bytes into fields HEAD_CRC, HEAD_TYPE, HEAD_FLAGS, - HEAD_SIZE. -5. Check HEAD_TYPE. - if HEAD_TYPE==0x74 - read file header ( first 7 bytes already read ) - read or skip HEAD_SIZE-sizeof(FILE_HEAD) bytes - if (HEAD_FLAGS & 0x100) - read or skip HIGH_PACK_SIZE*0x100000000+PACK_SIZE bytes - else - read or skip PACK_SIZE bytes - else - read corresponding HEAD_TYPE block: - read HEAD_SIZE-7 bytes - if (HEAD_FLAGS & 0x8000) - read ADD_SIZE bytes -6. go to 4. - - - ========================================================================== - Block Formats - ========================================================================== - - - Marker block ( MARK_HEAD ) - - -HEAD_CRC Always 0x6152 -2 bytes - -HEAD_TYPE Header type: 0x72 -1 byte - -HEAD_FLAGS Always 0x1a21 -2 bytes - -HEAD_SIZE Block size = 0x0007 -2 bytes - - The marker block is actually considered as a fixed byte -sequence: 0x52 0x61 0x72 0x21 0x1a 0x07 0x00 - - - - Archive header ( MAIN_HEAD ) - - -HEAD_CRC CRC of fields HEAD_TYPE to RESERVED2 -2 bytes - -HEAD_TYPE Header type: 0x73 -1 byte - -HEAD_FLAGS Bit flags: -2 bytes - 0x0001 - Volume attribute (archive volume) - 0x0002 - Archive comment present - RAR 3.x uses the separate comment block - and does not set this flag. - - 0x0004 - Archive lock attribute - 0x0008 - Solid attribute (solid archive) - 0x0010 - New volume naming scheme ('volname.partN.rar') - 0x0020 - Authenticity information present - RAR 3.x does not set this flag. - - 0x0040 - Recovery record present - 0x0080 - Block headers are encrypted - 0x0100 - First volume (set only by RAR 3.0 and later) - - other bits in HEAD_FLAGS are reserved for - internal use - -HEAD_SIZE Archive header total size including archive comments -2 bytes - -RESERVED1 Reserved -2 bytes - -RESERVED2 Reserved -4 bytes - - - - File header (File in archive) - - -HEAD_CRC CRC of fields from HEAD_TYPE to FILEATTR -2 bytes and file name - -HEAD_TYPE Header type: 0x74 -1 byte - -HEAD_FLAGS Bit flags: -2 bytes - 0x01 - file continued from previous volume - 0x02 - file continued in next volume - 0x04 - file encrypted with password - - 0x08 - file comment present - RAR 3.x uses the separate comment block - and does not set this flag. - - 0x10 - information from previous files is used (solid flag) - (for RAR 2.0 and later) - - bits 7 6 5 (for RAR 2.0 and later) - - 0 0 0 - dictionary size 64 KB - 0 0 1 - dictionary size 128 KB - 0 1 0 - dictionary size 256 KB - 0 1 1 - dictionary size 512 KB - 1 0 0 - dictionary size 1024 KB - 1 0 1 - dictionary size 2048 KB - 1 1 0 - dictionary size 4096 KB - 1 1 1 - file is directory - - 0x100 - HIGH_PACK_SIZE and HIGH_UNP_SIZE fields - are present. These fields are used to archive - only very large files (larger than 2Gb), - for smaller files these fields are absent. - - 0x200 - FILE_NAME contains both usual and encoded - Unicode name separated by zero. In this case - NAME_SIZE field is equal to the length - of usual name plus encoded Unicode name plus 1. - - If this flag is present, but FILE_NAME does not - contain zero bytes, it means that file name - is encoded using UTF-8. - - 0x400 - the header contains additional 8 bytes - after the file name, which are required to - increase encryption security (so called 'salt'). - - 0x800 - Version flag. It is an old file version, - a version number is appended to file name as ';n'. - - 0x1000 - Extended time field present. - - 0x8000 - this bit always is set, so the complete - block size is HEAD_SIZE + PACK_SIZE - (and plus HIGH_PACK_SIZE, if bit 0x100 is set) - -HEAD_SIZE File header full size including file name and comments -2 bytes - -PACK_SIZE Compressed file size -4 bytes - -UNP_SIZE Uncompressed file size -4 bytes - -HOST_OS Operating system used for archiving -1 byte 0 - MS DOS - 1 - OS/2 - 2 - Win32 - 3 - Unix - 4 - Mac OS - 5 - BeOS - -FILE_CRC File CRC -4 bytes - -FTIME Date and time in standard MS DOS format -4 bytes - -UNP_VER RAR version needed to extract file -1 byte - Version number is encoded as - 10 * Major version + minor version. - -METHOD Packing method -1 byte - 0x30 - storing - 0x31 - fastest compression - 0x32 - fast compression - 0x33 - normal compression - 0x34 - good compression - 0x35 - best compression - -NAME_SIZE File name size -2 bytes - -ATTR File attributes -4 bytes - -HIGH_PACK_SIZE High 4 bytes of 64 bit value of compressed file size. -4 bytes Optional value, presents only if bit 0x100 in HEAD_FLAGS - is set. - -HIGH_UNP_SIZE High 4 bytes of 64 bit value of uncompressed file size. -4 bytes Optional value, presents only if bit 0x100 in HEAD_FLAGS - is set. - -FILE_NAME File name - string of NAME_SIZE bytes size - -SALT present if (HEAD_FLAGS & 0x400) != 0 -8 bytes - -EXT_TIME present if (HEAD_FLAGS & 0x1000) != 0 -variable size - -other new fields may appear here. - - - ========================================================================== - Application notes - ========================================================================== - - 1. To process an SFX archive you need to skip the SFX module searching -for the marker block in the archive. There is no marker block sequence (0x52 -0x61 0x72 0x21 0x1a 0x07 0x00) in the SFX module itself. - - 2. The CRC is calculated using the standard polynomial 0xEDB88320. In -case the size of the CRC is less than 4 bytes, only the low order bytes -are used. diff --git a/snesreader/unrar/unicode.cpp b/snesreader/unrar/unicode.cpp deleted file mode 100644 index 3853752c..00000000 --- a/snesreader/unrar/unicode.cpp +++ /dev/null @@ -1,106 +0,0 @@ -#include "rar.hpp" - -#include "unicode.hpp" - -bool WideToChar(const wchar *Src,char *Dest,int DestSize) -{ - bool RetCode=true; -#ifdef _WIN_32 - if (WideCharToMultiByte(CP_ACP,0,Src,-1,Dest,DestSize,NULL,NULL)==0) - RetCode=false; -#else -#ifdef _APPLE - WideToUtf(Src,Dest,DestSize); -#else -#ifdef MBFUNCTIONS - - size_t ResultingSize=wcstombs(Dest,Src,DestSize); - if (ResultingSize==(size_t)-1) - RetCode=false; - if (ResultingSize==0 && *Src!=0) - RetCode=false; - - if ((!RetCode || *Dest==0 && *Src!=0) && DestSize>NM && strlenw(Src)>5)==6) - { - if ((*Src&0xc0)!=0x80) - break; - d=((c&0x1f)<<6)|(*Src&0x3f); - Src++; - } - else - if ((c>>4)==14) - { - if ((Src[0]&0xc0)!=0x80 || (Src[1]&0xc0)!=0x80) - break; - d=((c&0xf)<<12)|((Src[0]&0x3f)<<6)|(Src[1]&0x3f); - Src+=2; - } - else - if ((c>>3)==30) - { - if ((Src[0]&0xc0)!=0x80 || (Src[1]&0xc0)!=0x80 || (Src[2]&0xc0)!=0x80) - break; - d=((c&7)<<18)|((Src[0]&0x3f)<<12)|((Src[1]&0x3f)<<6)|(Src[2]&0x3f); - Src+=3; - } - else - break; - if (--DestSize<0) - break; - if (d>0xffff) - { - if (--DestSize<0 || d>0x10ffff) - break; - *(Dest++)=((d-0x10000)>>10)+0xd800; - *(Dest++)=(d&0x3ff)+0xdc00; - } - else - *(Dest++)=d; - } - *Dest=0; -} - - -// strfn.cpp -void ExtToInt(const char *Src,char *Dest) -{ -#if defined(_WIN_32) - CharToOem(Src,Dest); -#else - if (Dest!=Src) - strcpy(Dest,Src); -#endif -} diff --git a/snesreader/unrar/unicode.hpp b/snesreader/unrar/unicode.hpp deleted file mode 100644 index 2ed90e6a..00000000 --- a/snesreader/unrar/unicode.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _RAR_UNICODE_ -#define _RAR_UNICODE_ - -bool WideToChar(const wchar *Src,char *Dest,int DestSize=0x1000000); -void UtfToWide(const char *Src,wchar *Dest,int DestSize); - -// strfn.cpp -void ExtToInt(const char *Src,char *Dest); - -#endif diff --git a/snesreader/unrar/unpack.cpp b/snesreader/unrar/unpack.cpp deleted file mode 100644 index 3d9bcf84..00000000 --- a/snesreader/unrar/unpack.cpp +++ /dev/null @@ -1,1065 +0,0 @@ -#include "rar.hpp" - -#include "coder.cpp" -#include "suballoc.cpp" -#include "model.cpp" -#ifndef SFX_MODULE -#include "unpack15.cpp" -#include "unpack20.cpp" -#endif - -Unpack::Unpack(ComprDataIO *DataIO) - : VMCode( DataIO ), Filters( DataIO ), PrgStack( DataIO ), OldFilterLengths( DataIO ), ErrHandler( *DataIO ) -{ - PPM.SubAlloc.ErrHandler = DataIO; - LastStackFilter = NULL; - UnpIO=DataIO; - Window=NULL; - ExternalWindow=false; - UnpAllBuf=false; - UnpSomeRead=false; -} - - -Unpack::~Unpack() -{ - if (Window!=NULL && !ExternalWindow) - rarfree( Window ); - InitFilters(); -} - - -void Unpack::Init(byte *Window) -{ - if (Window==NULL) - { - Unpack::Window = (byte*) rarmalloc( MAXWINSIZE ); - if (Unpack::Window==NULL) - ErrHandler.MemoryError(); - } - else - { - Unpack::Window=Window; - ExternalWindow=true; - } - UnpInitData(false); - BitInput::handle_mem_error( ErrHandler ); - Inp.handle_mem_error( ErrHandler ); - - // Only check BitInput, as VM's memory isn't allocated yet - VM.BitInput::handle_mem_error( ErrHandler ); - -#ifndef SFX_MODULE - // RAR 1.5 decompression initialization - OldUnpInitData(false); - InitHuff(); -#endif -} - - -void Unpack::DoUnpack(int Method,bool Solid) -{ - switch(Method) - { -#ifndef SFX_MODULE - case 15: // rar 1.5 compression - Unpack15(Solid); - break; - case 20: // rar 2.x compression - case 26: // files larger than 2GB - Unpack20(Solid); - break; -#endif - case 29: // rar 3.x compression - case 36: // alternative hash - Unpack29(Solid); - break; - } -} - - -inline void Unpack::InsertOldDist(unsigned int Distance) -{ - OldDist[3]=OldDist[2]; - OldDist[2]=OldDist[1]; - OldDist[1]=OldDist[0]; - OldDist[0]=Distance; -} - - -inline void Unpack::InsertLastMatch(unsigned int Length,unsigned int Distance) -{ - LastDist=Distance; - LastLength=Length; -} - - -// These optimizations give 22% speedup on x86, 44% speedup on PowerPC -void Unpack::CopyString(unsigned int Length,unsigned int Distance) -{ - unsigned UnpPtr = this->UnpPtr; // cache in register - byte* const Window = this->Window; // cache in register - - unsigned int DestPtr=UnpPtr-Distance; - if (UnpPtrUnpPtr += Length; - if ( Distance < Length ) // can't use memcpy when source and dest overlap - { - // Length always >= 1 - do - { - Window[UnpPtr++]=Window[DestPtr++]; - } - while (--Length>0) - ; - } - else - { - memcpy( &Window[UnpPtr], &Window[DestPtr], Length ); - } - } - else - { - while (Length--) - { - Window[UnpPtr]=Window[DestPtr++ & MAXWINMASK]; - UnpPtr=(UnpPtr+1) & MAXWINMASK; - } - - this->UnpPtr = UnpPtr; - } -} - - -int Unpack::DecodeNumber(struct Decode *Dec) -{ - unsigned int Bits; - unsigned int BitField=getbits() & 0xfffe; - if (BitFieldDecodeLen[8]) - if (BitFieldDecodeLen[4]) - if (BitFieldDecodeLen[2]) - if (BitFieldDecodeLen[1]) - Bits=1; - else - Bits=2; - else - if (BitFieldDecodeLen[3]) - Bits=3; - else - Bits=4; - else - if (BitFieldDecodeLen[6]) - if (BitFieldDecodeLen[5]) - Bits=5; - else - Bits=6; - else - if (BitFieldDecodeLen[7]) - Bits=7; - else - Bits=8; - else - if (BitFieldDecodeLen[12]) - if (BitFieldDecodeLen[10]) - if (BitFieldDecodeLen[9]) - Bits=9; - else - Bits=10; - else - if (BitFieldDecodeLen[11]) - Bits=11; - else - Bits=12; - else - if (BitFieldDecodeLen[14]) - if (BitFieldDecodeLen[13]) - Bits=13; - else - Bits=14; - else - Bits=15; - - unsigned int N=Dec->DecodePos[Bits]+((BitField-Dec->DecodeLen[Bits-1])>>(16-Bits)); - if (N>=Dec->MaxNum) - N=0; - // do after reading values, to allow better instruction scheduling - addbits(Bits); - return(Dec->DecodeNum[N]); -} - -const -static unsigned char LDecode[]={0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224}; -const -static unsigned char LBits[]= {0,0,0,0,0,0,0,0,1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5}; -static int DDecode[DC]; -static byte DBits[DC]; -const -static int DBitLengthCounts[]= {4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,14,0,12}; -const -static unsigned char SDDecode[]={0,4,8,16,32,64,128,192}; -const -static unsigned char SDBits[]= {2,2,3, 4, 5, 6, 6, 6}; - -void Unpack::init_tables() -{ - if (DDecode[1]==0) - { - int Dist=0,BitLength=0,Slot=0; - for (int I=0;IReadBorder) - { - if (!UnpReadBuf()) - break; - } - if (((WrPtr-UnpPtr) & MAXWINMASK)<260 && WrPtr!=UnpPtr) - { - UnpWriteBuf(); - if (WrittenFileSize>DestUnpSize) - return; - if (Suspended) - { - FileExtracted=false; - return; - } - } - if (UnpBlockType==BLOCK_PPM) - { - int Ch=PPM.DecodeChar(); - if (Ch==-1) - { - PPM.CleanUp(); - - // turn off PPM compression mode in case of error, so UnRAR will - // call PPM.DecodeInit in case it needs to turn it on back later. - UnpBlockType=BLOCK_LZ; - break; - } - if (Ch==PPMEscChar) - { - int NextCh=PPM.DecodeChar(); - if (NextCh==0) - { - if (!ReadTables()) - break; - continue; - } - if (NextCh==2 || NextCh==-1) - break; - if (NextCh==3) - { - if (!ReadVMCodePPM()) - break; - continue; - } - if (NextCh==4) - { - unsigned int Distance=0,Length; - Length = 0; // avoids warning - bool Failed=false; - for (int I=0;I<4 && !Failed;I++) - { - int Ch=PPM.DecodeChar(); - if (Ch==-1) - Failed=true; - else - if (I==3) - Length=(byte)Ch; - else - Distance=(Distance<<8)+(byte)Ch; - } - if (Failed) - break; - -#ifdef _MSC_VER - // avoid a warning about uninitialized 'Length' variable - #pragma warning( disable : 4701 ) -#endif - CopyString(Length+32,Distance+2); - continue; - } - if (NextCh==5) - { - int Length=PPM.DecodeChar(); - if (Length==-1) - break; - CopyString(Length+4,1); - continue; - } - } - Window[UnpPtr++]=Ch; - continue; - } - - int Number=DecodeNumber((struct Decode *)&LD); - if (Number<256) - { - Window[UnpPtr++]=(byte)Number; - continue; - } - if (Number>=271) - { - int Length=LDecode[Number-=271]+3; - if ((Bits=LBits[Number])>0) - { - Length+=getbits()>>(16-Bits); - addbits(Bits); - } - - int DistNumber=DecodeNumber((struct Decode *)&DD); - unsigned int Distance=DDecode[DistNumber]+1; - if ((Bits=DBits[DistNumber])>0) - { - if (DistNumber>9) - { - if (Bits>4) - { - Distance+=((getbits()>>(20-Bits))<<4); - addbits(Bits-4); - } - if (LowDistRepCount>0) - { - LowDistRepCount--; - Distance+=PrevLowDist; - } - else - { - int LowDist=DecodeNumber((struct Decode *)&LDD); - if (LowDist==16) - { - LowDistRepCount=LOW_DIST_REP_COUNT-1; - Distance+=PrevLowDist; - } - else - { - Distance+=LowDist; - PrevLowDist=LowDist; - } - } - } - else - { - Distance+=getbits()>>(16-Bits); - addbits(Bits); - } - } - - if (Distance>=0x2000) - { - Length++; - if (Distance>=0x40000L) - Length++; - } - - InsertOldDist(Distance); - InsertLastMatch(Length,Distance); - CopyString(Length,Distance); - continue; - } - if (Number==256) - { - if (!ReadEndOfBlock()) - break; - continue; - } - if (Number==257) - { - if (!ReadVMCode()) - break; - continue; - } - if (Number==258) - { - if (LastLength!=0) - CopyString(LastLength,LastDist); - continue; - } - if (Number<263) - { - int DistNum=Number-259; - unsigned int Distance=OldDist[DistNum]; - for (int I=DistNum;I>0;I--) - OldDist[I]=OldDist[I-1]; - OldDist[0]=Distance; - - int LengthNumber=DecodeNumber((struct Decode *)&RD); - int Length=LDecode[LengthNumber]+2; - if ((Bits=LBits[LengthNumber])>0) - { - Length+=getbits()>>(16-Bits); - addbits(Bits); - } - InsertLastMatch(Length,Distance); - CopyString(Length,Distance); - continue; - } - if (Number<272) - { - unsigned int Distance=SDDecode[Number-=263]+1; - if ((Bits=SDBits[Number])>0) - { - Distance+=getbits()>>(16-Bits); - addbits(Bits); - } - InsertOldDist(Distance); - InsertLastMatch(2,Distance); - CopyString(2,Distance); - continue; - } - } - UnpWriteBuf(); -} - - -bool Unpack::ReadEndOfBlock() -{ - unsigned int BitField=getbits(); - bool NewTable,NewFile=false; - if (BitField & 0x8000) - { - NewTable=true; - addbits(1); - } - else - { - NewFile=true; - NewTable=(BitField & 0x4000); - addbits(2); - } - TablesRead=!NewTable; - return !(NewFile || NewTable && !ReadTables()); -} - - -bool Unpack::ReadVMCode() -{ - unsigned int FirstByte=getbits()>>8; - addbits(8); - int Length=(FirstByte & 7)+1; - if (Length==7) - { - Length=(getbits()>>8)+7; - addbits(8); - } - else - if (Length==8) - { - Length=getbits(); - addbits(16); - } - VMCode.Alloc( Length ); - for (int I=0;I=ReadTop-1 && !UnpReadBuf() && I>8; - addbits(8); - } - return(AddVMCode(FirstByte,&VMCode[0],Length)); -} - - -bool Unpack::ReadVMCodePPM() -{ - unsigned int FirstByte=PPM.DecodeChar(); - if ((int)FirstByte==-1) - return(false); - int Length=(FirstByte & 7)+1; - if (Length==7) - { - int B1=PPM.DecodeChar(); - if (B1==-1) - return(false); - Length=B1+7; - } - else - if (Length==8) - { - int B1=PPM.DecodeChar(); - if (B1==-1) - return(false); - int B2=PPM.DecodeChar(); - if (B2==-1) - return(false); - Length=B1*256+B2; - } - VMCode.Alloc( Length ); - for (int I=0;IFilters.Size() || FiltPos>OldFilterLengths.Size()) - return(false); - LastFilter=FiltPos; - bool NewFilter=(FiltPos==Filters.Size()); - - delete LastStackFilter; - LastStackFilter = NULL; - UnpackFilter *StackFilter=new UnpackFilter(&ErrHandler); - LastStackFilter = StackFilter; - if ( !StackFilter ) - ErrHandler.MemoryError(); - - UnpackFilter *Filter; - if (NewFilter) // new filter code, never used before since VM reset - { - // too many different filters, corrupt archive - if (FiltPos>1024) - return(false); - - Filters.Add(1); - Filters[Filters.Size()-1]=Filter=new UnpackFilter(&ErrHandler); - if ( !Filter ) - ErrHandler.MemoryError(); - StackFilter->ParentFilter=Filters.Size()-1; - OldFilterLengths.Add(1); - Filter->ExecCount=0; - } - else // filter was used in the past - { - Filter=Filters[FiltPos]; - StackFilter->ParentFilter=FiltPos; - Filter->ExecCount++; - } - - int EmptyCount=0; - { - for (int I=0;I0) - PrgStack[I]=NULL; - } - } - if (EmptyCount==0) - { - PrgStack.Add(1); - EmptyCount=1; - } - int StackPos=PrgStack.Size()-EmptyCount; - PrgStack[StackPos]=StackFilter; - LastStackFilter = NULL; - StackFilter->ExecCount=Filter->ExecCount; - - uint BlockStart=RarVM::ReadData(Inp); - if (FirstByte & 0x40) - BlockStart+=258; - StackFilter->BlockStart=(BlockStart+UnpPtr)&MAXWINMASK; - if (FirstByte & 0x20) - StackFilter->BlockLength=RarVM::ReadData(Inp); - else - StackFilter->BlockLength=FiltPosNextWindow=WrPtr!=UnpPtr && ((WrPtr-UnpPtr)&MAXWINMASK)<=BlockStart; - -// DebugLog("\nNextWindow: UnpPtr=%08x WrPtr=%08x BlockStart=%08x",UnpPtr,WrPtr,BlockStart); - - OldFilterLengths[FiltPos]=StackFilter->BlockLength; - - memset(StackFilter->Prg.InitR,0,sizeof(StackFilter->Prg.InitR)); - StackFilter->Prg.InitR[3]=VM_GLOBALMEMADDR; - StackFilter->Prg.InitR[4]=StackFilter->BlockLength; - StackFilter->Prg.InitR[5]=StackFilter->ExecCount; - - if (FirstByte & 0x10) // set registers to optional parameters if any - { - unsigned int InitMask=Inp.fgetbits()>>9; - Inp.faddbits(7); - for (int I=0;I<7;I++) - if (InitMask & (1<Prg.InitR[I]=RarVM::ReadData(Inp); - } - - if (NewFilter) - { - uint VMCodeSize=RarVM::ReadData(Inp); - if (VMCodeSize>=0x10000 || VMCodeSize==0) - return(false); - VMCode.Alloc( VMCodeSize ); - for (int I=0;I>8; - Inp.faddbits(8); - } - VM.Prepare(&VMCode[0],VMCodeSize,&Filter->Prg); - VMCode.Reset(); - } - StackFilter->Prg.AltCmd=&Filter->Prg.Cmd[0]; - StackFilter->Prg.CmdCount=Filter->Prg.CmdCount; - - int StaticDataSize=Filter->Prg.StaticData.Size(); - if (StaticDataSize>0 && StaticDataSizePrg.StaticData.Add(StaticDataSize); - memcpy(&StackFilter->Prg.StaticData[0],&Filter->Prg.StaticData[0],StaticDataSize); - } - - if (StackFilter->Prg.GlobalData.Size()Prg.GlobalData.Reset(); - StackFilter->Prg.GlobalData.Add(VM_FIXEDGLOBALSIZE); - } - byte *GlobalData=&StackFilter->Prg.GlobalData[0]; - for (int I=0;I<7;I++) - VM.SetLowEndianValue((uint *)&GlobalData[I*4],StackFilter->Prg.InitR[I]); - VM.SetLowEndianValue((uint *)&GlobalData[0x1c],StackFilter->BlockLength); - VM.SetLowEndianValue((uint *)&GlobalData[0x20],0); - VM.SetLowEndianValue((uint *)&GlobalData[0x2c],StackFilter->ExecCount); - memset(&GlobalData[0x30],0,16); - - if (FirstByte & 8) // put data block passed as parameter if any - { - if (Inp.Overflow(3)) - return(false); - uint DataSize=RarVM::ReadData(Inp); - if (DataSize>VM_GLOBALMEMSIZE-VM_FIXEDGLOBALSIZE) - return(false); - unsigned int CurSize=StackFilter->Prg.GlobalData.Size(); - if (CurSizePrg.GlobalData.Add(DataSize+VM_FIXEDGLOBALSIZE-CurSize); - byte *GlobalData=&StackFilter->Prg.GlobalData[VM_FIXEDGLOBALSIZE]; - for (int I=0;I>8; - Inp.faddbits(8); - } - } - Inp.InitBitInput(); - return(true); -} - - -bool Unpack::UnpReadBuf() -{ - int DataSize=ReadTop-InAddr; - if (DataSize<0) - return(false); - if (InAddr>BitInput::MAX_SIZE/2) - { - if (DataSize>0) - memmove(InBuf,InBuf+InAddr,DataSize); - InAddr=0; - ReadTop=DataSize; - } - else - DataSize=ReadTop; - int ReadCode=UnpIO->UnpRead(InBuf+DataSize,(BitInput::MAX_SIZE-DataSize)&~0xf); - if (ReadCode>0) - ReadTop+=ReadCode; - ReadBorder=ReadTop-30; - return(ReadCode!=-1); -} - - -void Unpack::UnpWriteBuf() -{ - unsigned int WrittenBorder=WrPtr; - unsigned int WriteSize=(UnpPtr-WrittenBorder)&MAXWINMASK; - for (int I=0;INextWindow) - { - flt->NextWindow=false; - continue; - } - unsigned int BlockStart=flt->BlockStart; - unsigned int BlockLength=flt->BlockLength; - if (((BlockStart-WrittenBorder)&MAXWINMASK)ParentFilter]->Prg; - VM_PreparedProgram *Prg=&flt->Prg; - - if (ParentPrg->GlobalData.Size()>VM_FIXEDGLOBALSIZE) - { - // copy global data from previous script execution if any - Prg->GlobalData.Alloc(ParentPrg->GlobalData.Size()); - memcpy(&Prg->GlobalData[VM_FIXEDGLOBALSIZE],&ParentPrg->GlobalData[VM_FIXEDGLOBALSIZE],ParentPrg->GlobalData.Size()-VM_FIXEDGLOBALSIZE); - } - - ExecuteCode(Prg); - - if (Prg->GlobalData.Size()>VM_FIXEDGLOBALSIZE) - { - // save global data for next script execution - if (ParentPrg->GlobalData.Size()GlobalData.Size()) - ParentPrg->GlobalData.Alloc(Prg->GlobalData.Size()); - memcpy(&ParentPrg->GlobalData[VM_FIXEDGLOBALSIZE],&Prg->GlobalData[VM_FIXEDGLOBALSIZE],Prg->GlobalData.Size()-VM_FIXEDGLOBALSIZE); - } - else - ParentPrg->GlobalData.Reset(); - - byte *FilteredData=Prg->FilteredData; - unsigned int FilteredDataSize=Prg->FilteredDataSize; - - delete PrgStack[I]; - PrgStack[I]=NULL; - while (I+1BlockStart!=BlockStart || - NextFilter->BlockLength!=FilteredDataSize || NextFilter->NextWindow) - break; - - // apply several filters to same data block - - VM.SetMemory(0,FilteredData,FilteredDataSize); - - VM_PreparedProgram *ParentPrg=&Filters[NextFilter->ParentFilter]->Prg; - VM_PreparedProgram *NextPrg=&NextFilter->Prg; - - if (ParentPrg->GlobalData.Size()>VM_FIXEDGLOBALSIZE) - { - // copy global data from previous script execution if any - NextPrg->GlobalData.Alloc(ParentPrg->GlobalData.Size()); - memcpy(&NextPrg->GlobalData[VM_FIXEDGLOBALSIZE],&ParentPrg->GlobalData[VM_FIXEDGLOBALSIZE],ParentPrg->GlobalData.Size()-VM_FIXEDGLOBALSIZE); - } - - ExecuteCode(NextPrg); - - if (NextPrg->GlobalData.Size()>VM_FIXEDGLOBALSIZE) - { - // save global data for next script execution - if (ParentPrg->GlobalData.Size()GlobalData.Size()) - ParentPrg->GlobalData.Alloc(NextPrg->GlobalData.Size()); - memcpy(&ParentPrg->GlobalData[VM_FIXEDGLOBALSIZE],&NextPrg->GlobalData[VM_FIXEDGLOBALSIZE],NextPrg->GlobalData.Size()-VM_FIXEDGLOBALSIZE); - } - else - ParentPrg->GlobalData.Reset(); - - FilteredData=NextPrg->FilteredData; - FilteredDataSize=NextPrg->FilteredDataSize; - I++; - delete PrgStack[I]; - PrgStack[I]=NULL; - } - UnpIO->UnpWrite(FilteredData,FilteredDataSize); - UnpSomeRead=true; - WrittenFileSize+=FilteredDataSize; - WrittenBorder=BlockEnd; - WriteSize=(UnpPtr-WrittenBorder)&MAXWINMASK; - } - else - { - for (int J=I;JNextWindow) - flt->NextWindow=false; - } - WrPtr=WrittenBorder; - return; - } - } - } - - UnpWriteArea(WrittenBorder,UnpPtr); - WrPtr=UnpPtr; -} - - -void Unpack::ExecuteCode(VM_PreparedProgram *Prg) -{ - if (Prg->GlobalData.Size()>0) - { - Prg->InitR[6]=int64to32(WrittenFileSize); - VM.SetLowEndianValue((uint *)&Prg->GlobalData[0x24],int64to32(WrittenFileSize)); - VM.SetLowEndianValue((uint *)&Prg->GlobalData[0x28],int64to32(WrittenFileSize>>31>>1)); - VM.Execute(Prg); - } -} - - -void Unpack::UnpWriteArea(unsigned int StartPtr,unsigned int EndPtr) -{ - if (EndPtr!=StartPtr) - UnpSomeRead=true; - if (EndPtr=DestUnpSize) - return; - int WriteSize=Size; - Int64 LeftToWrite=DestUnpSize-WrittenFileSize; - if (WriteSize>LeftToWrite) - WriteSize=int64to32(LeftToWrite); - UnpIO->UnpWrite(Data,WriteSize); - WrittenFileSize+=Size; -} - - -bool Unpack::ReadTables() -{ - byte BitLength[BC]; - unsigned char Table[HUFF_TABLE_SIZE]; - if (InAddr>ReadTop-25) - if (!UnpReadBuf()) - return(false); - faddbits((8-InBit)&7); - unsigned int BitField=fgetbits(); - if (BitField & 0x8000) - { - UnpBlockType=BLOCK_PPM; - return(PPM.DecodeInit(this,PPMEscChar)); - } - UnpBlockType=BLOCK_LZ; - - PrevLowDist=0; - LowDistRepCount=0; - - if (!(BitField & 0x4000)) - memset(UnpOldTable,0,sizeof(UnpOldTable)); - faddbits(2); - { - for (int I=0;I> 12); - faddbits(4); - if (Length==15) - { - int ZeroCount=(byte)(fgetbits() >> 12); - faddbits(4); - if (ZeroCount==0) - BitLength[I]=15; - else - { - ZeroCount+=2; - while (ZeroCount-- > 0 && IReadTop-5) - if (!UnpReadBuf()) - return(false); - int Number=DecodeNumber((struct Decode *)&BD); - if (Number<16) - { - Table[I]=(Number+UnpOldTable[I]) & 0xf; - I++; - } - else - if (Number<18) - { - int N; - if (Number==16) - { - N=(fgetbits() >> 13)+3; - faddbits(3); - } - else - { - N=(fgetbits() >> 9)+11; - faddbits(7); - } - while (N-- > 0 && I> 13)+3; - faddbits(3); - } - else - { - N=(fgetbits() >> 9)+11; - faddbits(7); - } - while (N-- > 0 && IReadTop) - return(false); - MakeDecodeTables(&Table[0],(struct Decode *)&LD,NC); - MakeDecodeTables(&Table[NC],(struct Decode *)&DD,DC); - MakeDecodeTables(&Table[NC+DC],(struct Decode *)&LDD,LDC); - MakeDecodeTables(&Table[NC+DC+LDC],(struct Decode *)&RD,RC); - memcpy(UnpOldTable,Table,sizeof(UnpOldTable)); - return(true); -} - - -void Unpack::UnpInitData(int Solid) -{ - if (!Solid) - { - TablesRead=false; - memset(OldDist,0,sizeof(OldDist)); - OldDistPtr=0; - LastDist=LastLength=0; -// memset(Window,0,MAXWINSIZE); - memset(UnpOldTable,0,sizeof(UnpOldTable)); - memset(&LD,0,sizeof(LD)); - memset(&DD,0,sizeof(DD)); - memset(&LDD,0,sizeof(LDD)); - memset(&RD,0,sizeof(RD)); - memset(&BD,0,sizeof(BD)); - UnpPtr=WrPtr=0; - PPMEscChar=2; - UnpBlockType=BLOCK_LZ; - - InitFilters(); - } - InitBitInput(); - WrittenFileSize=0; - ReadTop=0; - ReadBorder=0; -#ifndef SFX_MODULE - UnpInitData20(Solid); -#endif -} - - -void Unpack::InitFilters() -{ - delete LastStackFilter; - LastStackFilter = NULL; - - OldFilterLengths.Reset(); - LastFilter=0; - { - for (int I=0;IDecodeNum,0,Size*sizeof(*Dec->DecodeNum)); - for (I=0;IDecodePos[0]=Dec->DecodeLen[0]=0,N=0,I=1;I<16;I++) - { - N=2*(N+LenCount[I]); - M=N<<(15-I); - if (M>0xFFFF) - M=0xFFFF; - Dec->DecodeLen[I]=(unsigned int)M; - TmpPos[I]=Dec->DecodePos[I]=Dec->DecodePos[I-1]+LenCount[I-1]; - } - - for (I=0;IDecodeNum[TmpPos[LenTab[I] & 0xF]++]=I; - Dec->MaxNum=Size; -} diff --git a/snesreader/unrar/unpack.hpp b/snesreader/unrar/unpack.hpp deleted file mode 100644 index 918fdb6c..00000000 --- a/snesreader/unrar/unpack.hpp +++ /dev/null @@ -1,227 +0,0 @@ -#ifndef _RAR_UNPACK_ -#define _RAR_UNPACK_ - -enum BLOCK_TYPES {BLOCK_LZ,BLOCK_PPM}; - -struct Decode -{ - unsigned int MaxNum; - unsigned int DecodeLen[16]; - unsigned int DecodePos[16]; - unsigned int DecodeNum[2]; -}; - -struct LitDecode -{ - unsigned int MaxNum; - unsigned int DecodeLen[16]; - unsigned int DecodePos[16]; - unsigned int DecodeNum[NC]; -}; - -struct DistDecode -{ - unsigned int MaxNum; - unsigned int DecodeLen[16]; - unsigned int DecodePos[16]; - unsigned int DecodeNum[DC]; -}; - -struct LowDistDecode -{ - unsigned int MaxNum; - unsigned int DecodeLen[16]; - unsigned int DecodePos[16]; - unsigned int DecodeNum[LDC]; -}; - -struct RepDecode -{ - unsigned int MaxNum; - unsigned int DecodeLen[16]; - unsigned int DecodePos[16]; - unsigned int DecodeNum[RC]; -}; - -struct BitDecode -{ - unsigned int MaxNum; - unsigned int DecodeLen[16]; - unsigned int DecodePos[16]; - unsigned int DecodeNum[BC]; -}; - -struct UnpackFilter - : Rar_Allocator -{ - unsigned int BlockStart; - unsigned int BlockLength; - unsigned int ExecCount; - bool NextWindow; - - // position of parent filter in Filters array used as prototype for filter - // in PrgStack array. Not defined for filters in Filters array. - unsigned int ParentFilter; - - VM_PreparedProgram Prg; - UnpackFilter( Rar_Error_Handler* eh ) : Prg( eh ) { } -}; - -/***************************** Unpack v 2.0 *********************************/ -struct MultDecode -{ - unsigned int MaxNum; - unsigned int DecodeLen[16]; - unsigned int DecodePos[16]; - unsigned int DecodeNum[MC20]; -}; - -struct AudioVariables -{ - int K1,K2,K3,K4,K5; - int D1,D2,D3,D4; - int LastDelta; - unsigned int Dif[11]; - unsigned int ByteCount; - int LastChar; -}; -/***************************** Unpack v 2.0 *********************************/ - - -// public so operator new/delete will be accessible, argh -class Unpack:public BitInput -{ -private: - friend class Pack; - - void Unpack29(bool Solid); - bool UnpReadBuf(); - void UnpWriteBuf(); - void ExecuteCode(VM_PreparedProgram *Prg); - void UnpWriteArea(unsigned int StartPtr,unsigned int EndPtr); - void UnpWriteData(byte *Data,int Size); - bool ReadTables(); - void MakeDecodeTables(unsigned char *LenTab,struct Decode *Dec,int Size); - int DecodeNumber(struct Decode *Dec); - void CopyString(); - inline void InsertOldDist(unsigned int Distance); - inline void InsertLastMatch(unsigned int Length,unsigned int Distance); - void UnpInitData(int Solid); - void CopyString(unsigned int Length,unsigned int Distance); - bool ReadEndOfBlock(); - bool ReadVMCode(); - bool ReadVMCodePPM(); - bool AddVMCode(unsigned int FirstByte,byte *Code,int CodeSize); - void InitFilters(); - - ComprDataIO *UnpIO; - ModelPPM PPM; - int PPMEscChar; - - Array VMCode; // here to avoid leaks - BitInput Inp; // here to avoid leaks - - RarVM VM; - - UnpackFilter* LastStackFilter; // avoids leak for stack-based filter - - /* Filters code, one entry per filter */ - Array Filters; - - /* Filters stack, several entrances of same filter are possible */ - Array PrgStack; - - /* lengths of preceding blocks, one length per filter. Used to reduce - size required to write block length if lengths are repeating */ - Array OldFilterLengths; - - int LastFilter; - - bool TablesRead; - struct LitDecode LD; - struct DistDecode DD; - struct LowDistDecode LDD; - struct RepDecode RD; - struct BitDecode BD; - - unsigned int OldDist[4],OldDistPtr; - unsigned int LastDist,LastLength; - - unsigned int UnpPtr,WrPtr; - - int ReadTop; - int ReadBorder; - - unsigned char UnpOldTable[HUFF_TABLE_SIZE]; - - int UnpBlockType; - - byte *Window; - bool ExternalWindow; - - - Int64 DestUnpSize; - - enum { Suspended = false }; // original source could never set to true - bool UnpAllBuf; - bool UnpSomeRead; - Int64 WrittenFileSize; - bool FileExtracted; - - int PrevLowDist,LowDistRepCount; - - /***************************** Unpack v 1.5 *********************************/ - void Unpack15(bool Solid); - void ShortLZ(); - void LongLZ(); - void HuffDecode(); - void GetFlagsBuf(); - void OldUnpInitData(int Solid); - void InitHuff(); - void CorrHuff(unsigned int *CharSet,unsigned int *NumToPlace); - void OldCopyString(unsigned int Distance,unsigned int Length); - unsigned int DecodeNum(int Num,unsigned int StartPos, - const unsigned int *DecTab,const unsigned int *PosTab); - void OldUnpWriteBuf(); - - unsigned int ChSet[256],ChSetA[256],ChSetB[256],ChSetC[256]; - unsigned int Place[256],PlaceA[256],PlaceB[256],PlaceC[256]; - unsigned int NToPl[256],NToPlB[256],NToPlC[256]; - unsigned int FlagBuf,AvrPlc,AvrPlcB,AvrLn1,AvrLn2,AvrLn3; - int Buf60,NumHuf,StMode,LCount,FlagsCnt; - unsigned int Nhfb,Nlzb,MaxDist3; - /***************************** Unpack v 1.5 *********************************/ - - /***************************** Unpack v 2.0 *********************************/ - void Unpack20(bool Solid); - struct MultDecode MD[4]; - unsigned char UnpOldTable20[MC20*4]; - int UnpAudioBlock,UnpChannels,UnpCurChannel,UnpChannelDelta; - void CopyString20(unsigned int Length,unsigned int Distance); - bool ReadTables20(); - void UnpInitData20(int Solid); - void ReadLastTables(); - byte DecodeAudio(int Delta); - struct AudioVariables AudV[4]; - /***************************** Unpack v 2.0 *********************************/ - -public: - Rar_Error_Handler& ErrHandler; - byte const* window_wrptr() const { return &Window [WrPtr & MAXWINMASK]; } - - static void init_tables(); - Unpack(ComprDataIO *DataIO); - ~Unpack(); - void Init(byte *Window=NULL); - void DoUnpack(int Method,bool Solid); - void SetDestSize(Int64 DestSize) {DestUnpSize=DestSize;FileExtracted=false;} - - unsigned int GetChar() - { - if (InAddr>BitInput::MAX_SIZE-30) - UnpReadBuf(); - return(InBuf[InAddr++]); - } -}; - -#endif diff --git a/snesreader/unrar/unpack15.cpp b/snesreader/unrar/unpack15.cpp deleted file mode 100644 index b2a63c05..00000000 --- a/snesreader/unrar/unpack15.cpp +++ /dev/null @@ -1,532 +0,0 @@ -// #included by unpack.cpp -#ifdef RAR_COMMON_HPP -#define STARTL1 2 -const -static unsigned int DecL1[]={0x8000,0xa000,0xc000,0xd000,0xe000,0xea00, - 0xee00,0xf000,0xf200,0xf200,0xffff}; -const -static unsigned int PosL1[]={0,0,0,2,3,5,7,11,16,20,24,32,32}; - -#define STARTL2 3 -const -static unsigned int DecL2[]={0xa000,0xc000,0xd000,0xe000,0xea00,0xee00, - 0xf000,0xf200,0xf240,0xffff}; -const -static unsigned int PosL2[]={0,0,0,0,5,7,9,13,18,22,26,34,36}; - -#define STARTHF0 4 -const -static unsigned int DecHf0[]={0x8000,0xc000,0xe000,0xf200,0xf200,0xf200, - 0xf200,0xf200,0xffff}; -const -static unsigned int PosHf0[]={0,0,0,0,0,8,16,24,33,33,33,33,33}; - - -#define STARTHF1 5 -const -static unsigned int DecHf1[]={0x2000,0xc000,0xe000,0xf000,0xf200,0xf200, - 0xf7e0,0xffff}; -const -static unsigned int PosHf1[]={0,0,0,0,0,0,4,44,60,76,80,80,127}; - - -#define STARTHF2 5 -const -static unsigned int DecHf2[]={0x1000,0x2400,0x8000,0xc000,0xfa00,0xffff, - 0xffff,0xffff}; -const -static unsigned int PosHf2[]={0,0,0,0,0,0,2,7,53,117,233,0,0}; - - -#define STARTHF3 6 -const -static unsigned int DecHf3[]={0x800,0x2400,0xee00,0xfe80,0xffff,0xffff, - 0xffff}; -const -static unsigned int PosHf3[]={0,0,0,0,0,0,0,2,16,218,251,0,0}; - - -#define STARTHF4 8 -const -static unsigned int DecHf4[]={0xff00,0xffff,0xffff,0xffff,0xffff,0xffff}; -const -static unsigned int PosHf4[]={0,0,0,0,0,0,0,0,0,255,0,0,0}; - - -void Unpack::Unpack15(bool Solid) -{ - if (Suspended) - UnpPtr=WrPtr; - else - { - UnpInitData(Solid); - OldUnpInitData(Solid); - UnpReadBuf(); - if (!Solid) - { - InitHuff(); - UnpPtr=0; - } - else - UnpPtr=WrPtr; - --DestUnpSize; - } - if (DestUnpSize>=0) - { - GetFlagsBuf(); - FlagsCnt=8; - } - - while (DestUnpSize>=0) - { - UnpPtr&=MAXWINMASK; - - if (InAddr>ReadTop-30 && !UnpReadBuf()) - break; - if (((WrPtr-UnpPtr) & MAXWINMASK)<270 && WrPtr!=UnpPtr) - { - OldUnpWriteBuf(); - if (Suspended) - return; - } - if (StMode) - { - HuffDecode(); - continue; - } - - if (--FlagsCnt < 0) - { - GetFlagsBuf(); - FlagsCnt=7; - } - - if (FlagBuf & 0x80) - { - FlagBuf<<=1; - if (Nlzb > Nhfb) - LongLZ(); - else - HuffDecode(); - } - else - { - FlagBuf<<=1; - if (--FlagsCnt < 0) - { - GetFlagsBuf(); - FlagsCnt=7; - } - if (FlagBuf & 0x80) - { - FlagBuf<<=1; - if (Nlzb > Nhfb) - HuffDecode(); - else - LongLZ(); - } - else - { - FlagBuf<<=1; - ShortLZ(); - } - } - } - OldUnpWriteBuf(); -} - - -void Unpack::OldUnpWriteBuf() -{ - if (UnpPtr!=WrPtr) - UnpSomeRead=true; - if (UnpPtrUnpWrite(&Window[WrPtr],-WrPtr & MAXWINMASK); - UnpIO->UnpWrite(Window,UnpPtr); - UnpAllBuf=true; - } - else - UnpIO->UnpWrite(&Window[WrPtr],UnpPtr-WrPtr); - WrPtr=UnpPtr; -} - - -#define GetShortLen1(pos) ((pos)==1 ? Buf60+3:ShortLen1[pos]) -#define GetShortLen2(pos) ((pos)==3 ? Buf60+3:ShortLen2[pos]) - -void Unpack::ShortLZ() -{ - const - static unsigned int ShortLen1[]={1,3,4,4,5,6,7,8,8,4,4,5,6,6,4,0}; - const - static unsigned int ShortXor1[]={0,0xa0,0xd0,0xe0,0xf0,0xf8,0xfc,0xfe, - 0xff,0xc0,0x80,0x90,0x98,0x9c,0xb0}; - const - static unsigned int ShortLen2[]={2,3,3,3,4,4,5,6,6,4,4,5,6,6,4,0}; - const - static unsigned int ShortXor2[]={0,0x40,0x60,0xa0,0xd0,0xe0,0xf0,0xf8, - 0xfc,0xc0,0x80,0x90,0x98,0x9c,0xb0}; - - - unsigned int Length,SaveLength; - unsigned int LastDistance; - unsigned int Distance; - int DistancePlace; - NumHuf=0; - - unsigned int BitField=fgetbits(); - if (LCount==2) - { - faddbits(1); - if (BitField >= 0x8000) - { - OldCopyString((unsigned int)LastDist,LastLength); - return; - } - BitField <<= 1; - LCount=0; - } - - BitField>>=8; - -// not thread safe, replaced by GetShortLen1 and GetShortLen2 macro -// ShortLen1[1]=ShortLen2[3]=Buf60+3; - - if (AvrLn1<37) - { - for (Length=0;;Length++) - if (((BitField^ShortXor1[Length]) & (~(0xff>>GetShortLen1(Length))))==0) - break; - faddbits(GetShortLen1(Length)); - } - else - { - for (Length=0;;Length++) - if (((BitField^ShortXor2[Length]) & (~(0xff>>GetShortLen2(Length))))==0) - break; - faddbits(GetShortLen2(Length)); - } - - if (Length >= 9) - { - if (Length == 9) - { - LCount++; - OldCopyString((unsigned int)LastDist,LastLength); - return; - } - if (Length == 14) - { - LCount=0; - Length=DecodeNum(fgetbits(),STARTL2,DecL2,PosL2)+5; - Distance=(fgetbits()>>1) | 0x8000; - faddbits(15); - LastLength=Length; - LastDist=Distance; - OldCopyString(Distance,Length); - return; - } - - LCount=0; - SaveLength=Length; - Distance=OldDist[(OldDistPtr-(Length-9)) & 3]; - Length=DecodeNum(fgetbits(),STARTL1,DecL1,PosL1)+2; - if (Length==0x101 && SaveLength==10) - { - Buf60 ^= 1; - return; - } - if (Distance > 256) - Length++; - if (Distance >= MaxDist3) - Length++; - - OldDist[OldDistPtr++]=Distance; - OldDistPtr = OldDistPtr & 3; - LastLength=Length; - LastDist=Distance; - OldCopyString(Distance,Length); - return; - } - - LCount=0; - AvrLn1 += Length; - AvrLn1 -= AvrLn1 >> 4; - - DistancePlace=DecodeNum(fgetbits(),STARTHF2,DecHf2,PosHf2) & 0xff; - Distance=ChSetA[DistancePlace]; - if (--DistancePlace != -1) - { - PlaceA[Distance]--; - LastDistance=ChSetA[DistancePlace]; - PlaceA[LastDistance]++; - ChSetA[DistancePlace+1]=LastDistance; - ChSetA[DistancePlace]=Distance; - } - Length+=2; - OldDist[OldDistPtr++] = ++Distance; - OldDistPtr = OldDistPtr & 3; - LastLength=Length; - LastDist=Distance; - OldCopyString(Distance,Length); -} - - -void Unpack::LongLZ() -{ - unsigned int Length; - unsigned int Distance; - unsigned int DistancePlace,NewDistancePlace; - unsigned int OldAvr2,OldAvr3; - - NumHuf=0; - Nlzb+=16; - if (Nlzb > 0xff) - { - Nlzb=0x90; - Nhfb >>= 1; - } - OldAvr2=AvrLn2; - - unsigned int BitField=fgetbits(); - if (AvrLn2 >= 122) - Length=DecodeNum(BitField,STARTL2,DecL2,PosL2); - else - if (AvrLn2 >= 64) - Length=DecodeNum(BitField,STARTL1,DecL1,PosL1); - else - if (BitField < 0x100) - { - Length=BitField; - faddbits(16); - } - else - { - for (Length=0;((BitField<> 5; - - BitField=fgetbits(); - if (AvrPlcB > 0x28ff) - DistancePlace=DecodeNum(BitField,STARTHF2,DecHf2,PosHf2); - else - if (AvrPlcB > 0x6ff) - DistancePlace=DecodeNum(BitField,STARTHF1,DecHf1,PosHf1); - else - DistancePlace=DecodeNum(BitField,STARTHF0,DecHf0,PosHf0); - - AvrPlcB += DistancePlace; - AvrPlcB -= AvrPlcB >> 8; - while (1) - { - Distance = ChSetB[DistancePlace & 0xff]; - NewDistancePlace = NToPlB[Distance++ & 0xff]++; - if (!(Distance & 0xff)) - CorrHuff(ChSetB,NToPlB); - else - break; - } - - ChSetB[DistancePlace]=ChSetB[NewDistancePlace]; - ChSetB[NewDistancePlace]=Distance; - - Distance=((Distance & 0xff00) | (fgetbits() >> 8)) >> 1; - faddbits(7); - - OldAvr3=AvrLn3; - if (Length!=1 && Length!=4) - if (Length==0 && Distance <= MaxDist3) - { - AvrLn3++; - AvrLn3 -= AvrLn3 >> 8; - } - else - if (AvrLn3 > 0) - AvrLn3--; - Length+=3; - if (Distance >= MaxDist3) - Length++; - if (Distance <= 256) - Length+=8; - if (OldAvr3 > 0xb0 || AvrPlc >= 0x2a00 && OldAvr2 < 0x40) - MaxDist3=0x7f00; - else - MaxDist3=0x2001; - OldDist[OldDistPtr++]=Distance; - OldDistPtr = OldDistPtr & 3; - LastLength=Length; - LastDist=Distance; - OldCopyString(Distance,Length); -} - - -void Unpack::HuffDecode() -{ - unsigned int CurByte,NewBytePlace; - unsigned int Length; - unsigned int Distance; - int BytePlace; - - unsigned int BitField=fgetbits(); - - if (AvrPlc > 0x75ff) - BytePlace=DecodeNum(BitField,STARTHF4,DecHf4,PosHf4); - else - if (AvrPlc > 0x5dff) - BytePlace=DecodeNum(BitField,STARTHF3,DecHf3,PosHf3); - else - if (AvrPlc > 0x35ff) - BytePlace=DecodeNum(BitField,STARTHF2,DecHf2,PosHf2); - else - if (AvrPlc > 0x0dff) - BytePlace=DecodeNum(BitField,STARTHF1,DecHf1,PosHf1); - else - BytePlace=DecodeNum(BitField,STARTHF0,DecHf0,PosHf0); - BytePlace&=0xff; - if (StMode) - { - if (BytePlace==0 && BitField > 0xfff) - BytePlace=0x100; - if (--BytePlace==-1) - { - BitField=fgetbits(); - faddbits(1); - if (BitField & 0x8000) - { - NumHuf=StMode=0; - return; - } - else - { - Length = (BitField & 0x4000) ? 4 : 3; - faddbits(1); - Distance=DecodeNum(fgetbits(),STARTHF2,DecHf2,PosHf2); - Distance = (Distance << 5) | (fgetbits() >> 11); - faddbits(5); - OldCopyString(Distance,Length); - return; - } - } - } - else - if (NumHuf++ >= 16 && FlagsCnt==0) - StMode=1; - AvrPlc += BytePlace; - AvrPlc -= AvrPlc >> 8; - Nhfb+=16; - if (Nhfb > 0xff) - { - Nhfb=0x90; - Nlzb >>= 1; - } - - Window[UnpPtr++]=(byte)(ChSet[BytePlace]>>8); - --DestUnpSize; - - while (1) - { - CurByte=ChSet[BytePlace]; - NewBytePlace=NToPl[CurByte++ & 0xff]++; - if ((CurByte & 0xff) > 0xa1) - CorrHuff(ChSet,NToPl); - else - break; - } - - ChSet[BytePlace]=ChSet[NewBytePlace]; - ChSet[NewBytePlace]=CurByte; -} - - -void Unpack::GetFlagsBuf() -{ - unsigned int Flags,NewFlagsPlace; - unsigned int FlagsPlace=DecodeNum(fgetbits(),STARTHF2,DecHf2,PosHf2); - - while (1) - { - Flags=ChSetC[FlagsPlace]; - FlagBuf=Flags>>8; - NewFlagsPlace=NToPlC[Flags++ & 0xff]++; - if ((Flags & 0xff) != 0) - break; - CorrHuff(ChSetC,NToPlC); - } - - ChSetC[FlagsPlace]=ChSetC[NewFlagsPlace]; - ChSetC[NewFlagsPlace]=Flags; -} - - -void Unpack::OldUnpInitData(int Solid) -{ - if (!Solid) - { - AvrPlcB=AvrLn1=AvrLn2=AvrLn3=NumHuf=Buf60=0; - AvrPlc=0x3500; - MaxDist3=0x2001; - Nhfb=Nlzb=0x80; - } - FlagsCnt=0; - FlagBuf=0; - StMode=0; - LCount=0; - ReadTop=0; -} - - -void Unpack::InitHuff() -{ - for (unsigned int I=0;I<256;I++) - { - Place[I]=PlaceA[I]=PlaceB[I]=I; - PlaceC[I]=(~I+1) & 0xff; - ChSet[I]=ChSetB[I]=I<<8; - ChSetA[I]=I; - ChSetC[I]=((~I+1) & 0xff)<<8; - } - memset(NToPl,0,sizeof(NToPl)); - memset(NToPlB,0,sizeof(NToPlB)); - memset(NToPlC,0,sizeof(NToPlC)); - CorrHuff(ChSetB,NToPlB); -} - - -void Unpack::CorrHuff(unsigned int *CharSet,unsigned int *NumToPlace) -{ - int I,J; - for (I=7;I>=0;I--) - for (J=0;J<32;J++,CharSet++) - *CharSet=(*CharSet & ~0xff) | I; - memset(NumToPlace,0,sizeof(NToPl)); - for (I=6;I>=0;I--) - NumToPlace[I]=(7-I)*32; -} - - -void Unpack::OldCopyString(unsigned int Distance,unsigned int Length) -{ - DestUnpSize-=Length; - while (Length--) - { - Window[UnpPtr]=Window[(UnpPtr-Distance) & MAXWINMASK]; - UnpPtr=(UnpPtr+1) & MAXWINMASK; - } -} - - -unsigned int Unpack::DecodeNum(int Num,unsigned int StartPos, - const unsigned int *DecTab,const unsigned int *PosTab) -{ - int I; - for (Num&=0xfff0,I=0;DecTab[I]<=Num;I++) - StartPos++; - faddbits(StartPos); - return(((Num-(I ? DecTab[I-1]:0))>>(16-StartPos))+PosTab[StartPos]); -} -#endif diff --git a/snesreader/unrar/unpack20.cpp b/snesreader/unrar/unpack20.cpp deleted file mode 100644 index 0896d1ce..00000000 --- a/snesreader/unrar/unpack20.cpp +++ /dev/null @@ -1,394 +0,0 @@ -// #included by unpack.cpp -#ifdef RAR_COMMON_HPP -#include "rar.hpp" - -// Presumably these optimizations give similar speedup as those for CopyString in unpack.cpp -void Unpack::CopyString20(unsigned int Length,unsigned int Distance) -{ - LastDist=OldDist[OldDistPtr++ & 3]=Distance; - LastLength=Length; - DestUnpSize-=Length; - - unsigned UnpPtr = this->UnpPtr; // cache in register - byte* const Window = this->Window; // cache in register - - unsigned int DestPtr=UnpPtr-Distance; - if (UnpPtrUnpPtr += Length; - if ( Distance < Length ) // can't use memcpy when source and dest overlap - { - Window[UnpPtr++]=Window[DestPtr++]; - Window[UnpPtr++]=Window[DestPtr++]; - while (Length>2) - { - Length--; - Window[UnpPtr++]=Window[DestPtr++]; - } - } - else - { - memcpy( &Window[UnpPtr], &Window[DestPtr], Length ); - } - } - else - { - while (Length--) - { - Window[UnpPtr]=Window[DestPtr++ & MAXWINMASK]; - UnpPtr=(UnpPtr+1) & MAXWINMASK; - } - this->UnpPtr = UnpPtr; - } -} - - -void Unpack::Unpack20(bool Solid) -{ - const - static unsigned char LDecode[]={0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224}; - const - static unsigned char LBits[]= {0,0,0,0,0,0,0,0,1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5}; - const - static int DDecode[]={0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576,32768U,49152U,65536,98304,131072,196608,262144,327680,393216,458752,524288,589824,655360,720896,786432,851968,917504,983040}; - const - static unsigned char DBits[]= {0,0,0,0,1,1,2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}; - const - static unsigned char SDDecode[]={0,4,8,16,32,64,128,192}; - const - static unsigned char SDBits[]= {2,2,3, 4, 5, 6, 6, 6}; - unsigned int Bits; - - if (Suspended) - UnpPtr=WrPtr; - else - { - UnpInitData(Solid); - if (!UnpReadBuf()) - return; - if (!Solid) - if (!ReadTables20()) - return; - --DestUnpSize; - } - - while (is64plus(DestUnpSize)) - { - UnpPtr&=MAXWINMASK; - - if (InAddr>ReadTop-30) - if (!UnpReadBuf()) - break; - if (((WrPtr-UnpPtr) & MAXWINMASK)<270 && WrPtr!=UnpPtr) - { - OldUnpWriteBuf(); - if (Suspended) - return; - } - if (UnpAudioBlock) - { - int AudioNumber=DecodeNumber((struct Decode *)&MD[UnpCurChannel]); - - if (AudioNumber==256) - { - if (!ReadTables20()) - break; - continue; - } - Window[UnpPtr++]=DecodeAudio(AudioNumber); - if (++UnpCurChannel==UnpChannels) - UnpCurChannel=0; - --DestUnpSize; - continue; - } - - int Number=DecodeNumber((struct Decode *)&LD); - if (Number<256) - { - Window[UnpPtr++]=(byte)Number; - --DestUnpSize; - continue; - } - if (Number>269) - { - int Length=LDecode[Number-=270]+3; - if ((Bits=LBits[Number])>0) - { - Length+=getbits()>>(16-Bits); - addbits(Bits); - } - - int DistNumber=DecodeNumber((struct Decode *)&DD); - unsigned int Distance=DDecode[DistNumber]+1; - if ((Bits=DBits[DistNumber])>0) - { - Distance+=getbits()>>(16-Bits); - addbits(Bits); - } - - if (Distance>=0x2000) - { - Length++; - if (Distance>=0x40000L) - Length++; - } - - CopyString20(Length,Distance); - continue; - } - if (Number==269) - { - if (!ReadTables20()) - break; - continue; - } - if (Number==256) - { - CopyString20(LastLength,LastDist); - continue; - } - if (Number<261) - { - unsigned int Distance=OldDist[(OldDistPtr-(Number-256)) & 3]; - int LengthNumber=DecodeNumber((struct Decode *)&RD); - int Length=LDecode[LengthNumber]+2; - if ((Bits=LBits[LengthNumber])>0) - { - Length+=getbits()>>(16-Bits); - addbits(Bits); - } - if (Distance>=0x101) - { - Length++; - if (Distance>=0x2000) - { - Length++; - if (Distance>=0x40000) - Length++; - } - } - CopyString20(Length,Distance); - continue; - } - if (Number<270) - { - unsigned int Distance=SDDecode[Number-=261]+1; - if ((Bits=SDBits[Number])>0) - { - Distance+=getbits()>>(16-Bits); - addbits(Bits); - } - CopyString20(2,Distance); - continue; - } - } - ReadLastTables(); - OldUnpWriteBuf(); -} - - -bool Unpack::ReadTables20() -{ - byte BitLength[BC20]; - unsigned char Table[MC20*4]; - int TableSize,N,I; - if (InAddr>ReadTop-25) - if (!UnpReadBuf()) - return(false); - unsigned int BitField=getbits(); - UnpAudioBlock=(BitField & 0x8000); - - if (!(BitField & 0x4000)) - memset(UnpOldTable20,0,sizeof(UnpOldTable20)); - addbits(2); - - if (UnpAudioBlock) - { - UnpChannels=((BitField>>12) & 3)+1; - if (UnpCurChannel>=UnpChannels) - UnpCurChannel=0; - addbits(2); - TableSize=MC20*UnpChannels; - } - else - TableSize=NC20+DC20+RC20; - - for (I=0;I> 12); - addbits(4); - } - MakeDecodeTables(BitLength,(struct Decode *)&BD,BC20); - I=0; - while (IReadTop-5) - if (!UnpReadBuf()) - return(false); - int Number=DecodeNumber((struct Decode *)&BD); - if (Number<16) - { - Table[I]=(Number+UnpOldTable20[I]) & 0xf; - I++; - } - else - if (Number==16) - { - N=(getbits() >> 14)+3; - addbits(2); - while (N-- > 0 && I> 13)+3; - addbits(3); - } - else - { - N=(getbits() >> 9)+11; - addbits(7); - } - while (N-- > 0 && IReadTop) - return(true); - if (UnpAudioBlock) - for (I=0;I=InAddr+5) - if (UnpAudioBlock) - { - if (DecodeNumber((struct Decode *)&MD[UnpCurChannel])==256) - ReadTables20(); - } - else - if (DecodeNumber((struct Decode *)&LD)==269) - ReadTables20(); -} - - -void Unpack::UnpInitData20(int Solid) -{ - if (!Solid) - { - UnpAudioBlock=UnpChannelDelta=UnpCurChannel=0; - UnpChannels=1; - - memset(AudV,0,sizeof(AudV)); - memset(UnpOldTable20,0,sizeof(UnpOldTable20)); - memset(MD,0,sizeof(MD)); - } -} - - -byte Unpack::DecodeAudio(int Delta) -{ - struct AudioVariables *V=&AudV[UnpCurChannel]; - V->ByteCount++; - V->D4=V->D3; - V->D3=V->D2; - V->D2=V->LastDelta-V->D1; - V->D1=V->LastDelta; - int PCh=8*V->LastChar+V->K1*V->D1+V->K2*V->D2+V->K3*V->D3+V->K4*V->D4+V->K5*UnpChannelDelta; - PCh=(PCh>>3) & 0xFF; - - unsigned int Ch=PCh-Delta; - - int D=((signed char)Delta)<<3; - - V->Dif[0]+=abs(D); - V->Dif[1]+=abs(D-V->D1); - V->Dif[2]+=abs(D+V->D1); - V->Dif[3]+=abs(D-V->D2); - V->Dif[4]+=abs(D+V->D2); - V->Dif[5]+=abs(D-V->D3); - V->Dif[6]+=abs(D+V->D3); - V->Dif[7]+=abs(D-V->D4); - V->Dif[8]+=abs(D+V->D4); - V->Dif[9]+=abs(D-UnpChannelDelta); - V->Dif[10]+=abs(D+UnpChannelDelta); - - UnpChannelDelta=V->LastDelta=(signed char)(Ch-V->LastChar); - V->LastChar=Ch; - - if ((V->ByteCount & 0x1F)==0) - { - unsigned int MinDif=V->Dif[0],NumMinDif=0; - V->Dif[0]=0; - for (int I=1;IDif)/sizeof(V->Dif[0]);I++) - { - if (V->Dif[I]Dif[I]; - NumMinDif=I; - } - V->Dif[I]=0; - } - switch(NumMinDif) - { - case 1: - if (V->K1>=-16) - V->K1--; - break; - case 2: - if (V->K1<16) - V->K1++; - break; - case 3: - if (V->K2>=-16) - V->K2--; - break; - case 4: - if (V->K2<16) - V->K2++; - break; - case 5: - if (V->K3>=-16) - V->K3--; - break; - case 6: - if (V->K3<16) - V->K3++; - break; - case 7: - if (V->K4>=-16) - V->K4--; - break; - case 8: - if (V->K4<16) - V->K4++; - break; - case 9: - if (V->K5>=-16) - V->K5--; - break; - case 10: - if (V->K5<16) - V->K5++; - break; - } - } - return((byte)Ch); -} -#endif diff --git a/snesreader/unrar/unrar.cpp b/snesreader/unrar/unrar.cpp deleted file mode 100644 index 2c3baa7b..00000000 --- a/snesreader/unrar/unrar.cpp +++ /dev/null @@ -1,350 +0,0 @@ -// unrar_core 3.8.5. http://www.slack.net/~ant/ - -#include "unrar.h" - -#include "rar.hpp" -#include - -// This source code is a heavily modified version based on the unrar package. -// It may not be used to develop a RAR (WinRAR) compatible archiver. -// See unrar/license.txt for copyright and licensing. - -// Same as printf when debugging, otherwise 0 -#ifndef debug_printf - #define debug_printf 1 ? (void)0 : (void) -#endif - -// If expr != unrar_ok, returns its value -#define RETURN_ERR( expr ) \ - do {\ - unrar_err_t err_;\ - if ( (err_ = (expr)) != unrar_ok )\ - return err_;\ - } while ( 0 ) - - -// Receives errors reported from deep within library. -// MUST be macro. -#define NONLOCAL_ERROR( p ) \ - setjmp( p->Arc.jmp_env ) - -void Rar_Error_Handler::ReportError( unrar_err_t err ) -{ - if ( err ) - longjmp( jmp_env, err ); -} - -void Rar_Error_Handler::MemoryError() -{ - ReportError( unrar_err_memory ); -} - - -//// Internal - -unrar_t::unrar_t() : - Buffer( &Arc ) -{ - Arc.user_read = NULL; - Arc.user_write = NULL; - Arc.Tell_ = 0; - Arc.write_error = unrar_ok; - data_ = NULL; - own_data_ = NULL; - close_file = NULL; - FileCount = 0; - Unp = NULL; - - unrar_init(); -} - -unrar_t::~unrar_t() -{ - if ( Arc.write_error ) { } - - if ( close_file ) - close_file( Arc.user_read_data ); - - delete Unp; - - free( own_data_ ); -} - -// True if current file is compressed in way that affects solid extraction state -static inline bool solid_file( const unrar_t* p ) -{ - return p->Arc.Solid && - p->Arc.NewLhd.Method != 0x30 && - p->Arc.NewLhd.FullPackSize != 0; -} - -static void update_solid_pos( unrar_t* p ) -{ - if ( p->solid_pos == p->Arc.CurBlockPos ) - p->solid_pos = p->Arc.NextBlockPos; -} - -static unrar_err_t extract_( unrar_t* p, unrar_write_func user_write, void* user_data ) -{ - assert( !p->done ); - assert( !solid_file( p ) || p->solid_pos == p->Arc.CurBlockPos ); - - if ( p->Arc.write_error ) { } - p->Arc.write_error = unrar_ok; - p->Arc.user_write = user_write; - p->Arc.user_write_data = user_data; - RETURN_ERR( p->ExtractCurrentFile( user_write == NULL ) ); - p->Arc.user_write = NULL; - RETURN_ERR( p->Arc.write_error ); - - update_solid_pos( p ); - - return unrar_ok; -} - -static unrar_err_t skip_solid( unrar_t* p ) -{ - if ( !solid_file( p ) ) - { - update_solid_pos( p ); - return unrar_ok; - } - - return extract_( p, NULL, NULL ); -} - -static inline bool IsLink(uint Attr) -{ - return((Attr & 0xF000)==0xA000); -} - -static unrar_err_t next_( unrar_t* p, bool skipping_solid ) -{ - if ( p->done ) - return unrar_err_arc_eof; - - free( p->own_data_ ); - p->own_data_ = NULL; - p->data_ = NULL; - - for (;;) - { - p->Arc.SeekToNext(); - unrar_err_t const err = p->Arc.ReadHeader(); - if ( err != unrar_err_arc_eof ) - RETURN_ERR( err ); - //else - // debug_printf( "unrar: Didn't end with ENDARC_HEAD\n" ); // rar -en causes this - - HEADER_TYPE const type = (HEADER_TYPE) p->Arc.GetHeaderType(); - - if ( err != unrar_ok || type == ENDARC_HEAD ) - { - p->done = true; - break; - } - - if ( type != FILE_HEAD ) - { - // Skip non-files - if ( type != NEWSUB_HEAD && type != PROTECT_HEAD && type != SIGN_HEAD && type != SUB_HEAD ) - debug_printf( "unrar: Skipping unknown block type: %X\n", (unsigned) type ); - - update_solid_pos( p ); - } - else - { - // Update even for non-solid files, in case it's not extracted - if ( !solid_file( p ) ) - update_solid_pos( p ); - - if ( p->Arc.IsArcLabel() ) - { - // Ignore labels - } - else if ( IsLink( p->Arc.NewLhd.FileAttr ) ) - { - // Ignore links - - p->update_first_file_pos(); - p->FileCount++; // Links are treated as files - } - else if ( p->Arc.IsArcDir() ) - { - // Ignore directories - } - else - { - p->info.size = p->Arc.NewLhd.UnpSize; - p->info.name = p->Arc.NewLhd.FileName; - p->info.name_w = p->Arc.NewLhd.FileNameW; - p->info.is_unicode = (p->Arc.NewLhd.Flags & LHD_UNICODE) != 0; - p->info.dos_date = p->Arc.NewLhd.mtime.time; - p->info.crc = p->Arc.NewLhd.FileCRC; - p->info.is_crc32 = !p->Arc.OldFormat; - - // Stop for files - break; - } - - // Original code assumed that non-file items were never solid compressed - check( !solid_file( p ) ); - - // Skip non-file solid-compressed items (original code assumed there were none) - if ( skipping_solid ) - RETURN_ERR( skip_solid( p ) ); - } - } - - return unrar_ok; -} - -static unrar_err_t open_( unrar_t* p, unrar_read_func read, void* user_data ) -{ - p->Arc.user_read = read; - p->Arc.user_read_data = user_data; - - RETURN_ERR( p->Arc.IsArchive() ); - - p->begin_pos = p->Arc.NextBlockPos; - p->solid_pos = p->Arc.NextBlockPos; - p->first_file_pos = INT_MAX; - p->done = false; - - return unrar_ok; -} - - -//// Interface - - // Needed when user read throws exception - struct unrar_ptr { - unrar_t* p; - unrar_ptr() { p = NULL; } - ~unrar_ptr() { delete p; } - }; - -unrar_err_t unrar_open_custom( unrar_t** impl_out, unrar_read_func read, void* user_data ) -{ - *impl_out = NULL; - - unrar_ptr ptr; - ptr.p = new unrar_t; - if ( !ptr.p ) - return unrar_err_memory; - - RETURN_ERR( NONLOCAL_ERROR( ptr.p ) ); - RETURN_ERR( open_( ptr.p, read, user_data ) ); - RETURN_ERR( next_( ptr.p, false ) ); - - *impl_out = ptr.p; - ptr.p = NULL; - - //delete ptr.p; // done automatically at end of function - - return unrar_ok; -} - -void unrar_close( unrar_t* ar ) -{ - delete ar; -} - -unrar_bool unrar_done( const unrar_t* p ) -{ - return p->done; -} - -unrar_err_t unrar_next( unrar_t* p ) -{ - assert( !unrar_done( p ) ); - - RETURN_ERR( NONLOCAL_ERROR( p ) ); - return next_( p, false ); -} - -const unrar_info_t* unrar_info( unrar_t const* p ) -{ - assert( !unrar_done( p ) ); - - return &p->info; -} - -unrar_pos_t unrar_tell( const unrar_t* p ) -{ - return p->Arc.CurBlockPos; -} - -unrar_err_t unrar_seek( unrar_t* p, unrar_pos_t n ) -{ - p->Arc.NextBlockPos = n; - p->done = false; - p->FileCount = (n <= p->first_file_pos ? 0 : 1); - - return unrar_next( p ); -} - -unrar_err_t unrar_rewind( unrar_t* p ) -{ - return unrar_seek( p, p->begin_pos ); -} - -unrar_err_t unrar_try_extract( const unrar_t* p ) -{ - assert( !unrar_done( p ) ); - - return ((unrar_t*) p)->ExtractCurrentFile( true, true ); -} - - static unrar_err_t reopen( unrar_t* p ) - { - // Save and restore archive reader - unrar_read_func read = p->Arc.user_read; - void* user_data = p->Arc.user_read_data; - - void (*close_file)( void* ) = p->close_file; - p->close_file = NULL; - - p->~unrar_t(); - new (p) unrar_t; - - p->close_file = close_file; - - return open_( p, read, user_data ); - } - -unrar_err_t unrar_extract_custom( unrar_t* p, unrar_write_func user_write, void* user_data ) -{ - assert( !unrar_done( p ) ); - - RETURN_ERR( NONLOCAL_ERROR( p ) ); - - if ( solid_file( p ) ) - { - unrar_pos_t pos = p->Arc.CurBlockPos; - if ( p->solid_pos != pos ) - { - // Next file to solid extract isn't current one - - if ( p->solid_pos > pos ) - RETURN_ERR( reopen( p ) ); - else - p->Arc.NextBlockPos = p->solid_pos; - - RETURN_ERR( next_( p, true ) ); - - // Keep extracting until solid position is at desired file - while ( !p->done && p->solid_pos < pos ) - { - RETURN_ERR( skip_solid( p ) ); - RETURN_ERR( next_( p, true ) ); - } - - // Be sure we're at right file - if ( p->solid_pos != pos || p->Arc.CurBlockPos != pos ) - return unrar_err_corrupt; - } - } - - return extract_( p, user_write, user_data ); -} diff --git a/snesreader/unrar/unrar.h b/snesreader/unrar/unrar.h deleted file mode 100644 index 470bc146..00000000 --- a/snesreader/unrar/unrar.h +++ /dev/null @@ -1,164 +0,0 @@ -/** RAR archive scanning and extraction \file */ - -/* unrar_core 3.8.5 */ -#ifndef UNRAR_H -#define UNRAR_H - -#include -#include - -#if !defined (UNRAR_NO_LONG_LONG) && defined (LLONG_MAX) - typedef long long unrar_long_long; -#else - typedef long unrar_long_long; -#endif - -#ifdef __cplusplus - extern "C" { -#endif - - -/** Error code, or 0 if function was successful. See Errors for more. Except -where noted, once an operation returns an error, that archive should not be -used any further, other than with unrar_close(). */ -#ifndef unrar_err_t /* (#ifndef allows better testing of library) */ - typedef int unrar_err_t; -#endif - -/** First parameter of most functions is unrar_t*, or const unrar_t* if nothing -is changed. */ -typedef struct unrar_t unrar_t; - -/** File position */ -typedef unrar_long_long unrar_pos_t; - -/** Boolean, where 0 is false and 1 is true */ -typedef int unrar_bool; - - -/******** Open/close ********/ - -/** Initializes static tables used by library. Automatically called by -unrar_open(). OK to call more than once. */ -void unrar_init( void ); - -/** Opens archive and points *out at it. If error, sets *out to NULL. */ -unrar_err_t unrar_open( unrar_t** out, const char path [] ); - -/** User archive read callback. When called, user_data is a copy of that passed -to unrar_open_custom(). Callback must do the following: Read avail bytes from -file at offset pos and set *count to avail, where avail is the lesser of *count -and file_size-pos. Put read bytes into *out and return unrar_ok. If fewer than -avail bytes could be read successfully, return a non-zero error code. */ -typedef unrar_err_t (*unrar_read_func)( void* user_data, - void* out, int* count, unrar_pos_t pos ); - -/** Same as unrar_open(), except data is read using supplied function rather -than from file. */ -unrar_err_t unrar_open_custom( unrar_t** unrar_out, - unrar_read_func, void* user_data ); - -/** Closes archive and frees memory. OK to pass NULL. */ -void unrar_close( unrar_t* ); - - -/******** Scanning ********/ - -/** True if at end of archive. Must be called after unrar_open() or -unrar_rewind(), as an archive might contain no files. */ -unrar_bool unrar_done( const unrar_t* ); - -/** Goes to next file in archive. If there are no more files, unrar_done() will -now return true. */ -unrar_err_t unrar_next( unrar_t* ); - -/** Goes back to first file in archive, as if it were just opened with -unrar_open(). */ -unrar_err_t unrar_rewind( unrar_t* ); - -/** Position of current file in archive. Will never return zero. */ -unrar_pos_t unrar_tell( const unrar_t* ); - -/** Returns to file at previously-saved position. */ -unrar_err_t unrar_seek( unrar_t*, unrar_pos_t ); - - -/**** Info ****/ - -/** Information about current file */ -typedef struct unrar_info_t -{ - unrar_pos_t size; /**< Uncompressed size */ - const char* name; /**< Name, in Unicode if is_unicode is true */ - const wchar_t* name_w; /**< Name in Unicode, "" if unavailable */ - unrar_bool is_unicode; /**< True if name is Unicode (UTF-8) */ - unsigned int dos_date; /**< Date in DOS-style format, 0 if unavailable */ - unsigned int crc; /**< Checksum; algorithm depends on archive */ - unrar_bool is_crc32; /**< True if crc is CRC-32 */ -} unrar_info_t; - -/** Information about current file. Pointer is valid until unrar_next(), -unrar_rewind(), unrar_seek(), or unrar_close(). */ -const unrar_info_t* unrar_info( const unrar_t* ); - - -/**** Extraction ****/ - -/** Returns unrar_ok if current file can be extracted, otherwise error -indicating why it can't be extracted (too new/old compression algorithm, -encrypted, segmented). Archive is still usable if this returns error, -just the current file can't be extracted. */ -unrar_err_t unrar_try_extract( const unrar_t* ); - -/** Extracts at most size bytes from current file into out. If file is larger, -discards excess bytes. If file is smaller, only writes unrar_size() bytes. */ -unrar_err_t unrar_extract( unrar_t*, void* out, unrar_pos_t size ); - -/** Extracts data to memory and returns pointer to it in *out. Pointer is -valid until unrar_next(), unrar_rewind(), unrar_seek(), or unrar_close(). OK to -call more than once for same file. Optimized to avoid allocating memory when -entire file will already be kept in internal window. */ -unrar_err_t unrar_extract_mem( unrar_t* p, void const** out ); - -/** User extracted data write callback. When called, user_data is a copy of -that passed to unrar_extract_custom(). Callback must do the following: Write -count bytes from *in to wherever extracted data goes and return unrar_ok. If -data cannot be written successfully, return a non-zero error code. */ -typedef unrar_err_t (*unrar_write_func)( void* user_data, - const void* in, int count ); - -/** Extracts current file and writes data using supplied function. Any error -it returns will be returned by this function, and archive will still be -usable. */ -unrar_err_t unrar_extract_custom( unrar_t*, - unrar_write_func, void* user_data ); - - -/******** Errors ********/ - -/** Error string associated with unrar error code. Always returns valid -pointer to a C string; never returns NULL. Returns "" for unrar_ok. */ -const char* unrar_err_str( unrar_err_t ); - -enum { - unrar_ok = 0,/**< No error; success. Guaranteed to be zero. */ - unrar_err_memory = 1,/**< Out of memory */ - unrar_err_open = 2,/**< Couldn't open file (not found/permissions) */ - unrar_err_not_arc = 3,/**< Not a RAR archive */ - unrar_err_corrupt = 4,/**< Archive is corrupt */ - unrar_err_io = 5,/**< Read failed */ - unrar_err_arc_eof = 6,/**< At end of archive; no more files */ - unrar_err_encrypted = 7,/**< Encryption not supported */ - unrar_err_segmented = 8,/**< Segmentation not supported */ - unrar_err_huge = 9,/**< Huge (2GB+) archives not supported */ - unrar_err_old_algo = 10,/**< Compressed with unsupported old algorithm */ - unrar_err_new_algo = 11,/**< Compressed with unsupported new algorithm */ - unrar_next_err = 100/**< Errors range from 0 to unrar_next_err-1 */ -}; - - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/snesreader/unrar/unrar_misc.cpp b/snesreader/unrar/unrar_misc.cpp deleted file mode 100644 index a0a6551a..00000000 --- a/snesreader/unrar/unrar_misc.cpp +++ /dev/null @@ -1,170 +0,0 @@ -// Misc functions outside the core interface - -#include "unrar.h" - -#include "rar.hpp" -#include - -// This source code is a heavily modified version based on the unrar package. -// It may not be used to develop a RAR (WinRAR) compatible archiver. -// See unrar/license.txt for copyright and licensing. - -void unrar_init() -{ - if (CRCTab[1]==0) - InitCRC(); - - Unpack::init_tables(); -} - -struct unrar_extract_mem_t -{ - char* out; - char* end; -}; - -extern "C" { - static unrar_err_t extract_write( void* user_data, const void* in, int count ) - { - unrar_extract_mem_t* p = (unrar_extract_mem_t*) user_data; - - unrar_pos_t remain = p->end - p->out; - if ( remain > 0 ) - { - if ( count > remain ) - count = remain; - - memcpy( p->out, in, count ); - p->out += count; - } - - return unrar_ok; - } -} - -unrar_err_t unrar_extract( unrar_t* p, void* out, unrar_pos_t size ) -{ - assert( !unrar_done( p ) ); - - unrar_extract_mem_t m; - m.out = (char*) out; - m.end = m.out + size; - return unrar_extract_custom( p, &extract_write, &m ); -} - -inline -static bool is_entire_file( const unrar_t* p, const void* in, int count ) -{ - return (count == p->Arc.NewLhd.UnpSize && p->Unp && in == p->Unp->window_wrptr()); -} - -extern "C" { - static unrar_err_t extract_mem( void* data, void const* in, int count ) - { - unrar_t* p = (unrar_t*) data; - - // We might have pointer to entire file - if ( !p->data_ && is_entire_file( p, in, count ) ) - { - p->data_ = in; - return unrar_ok; - } - - // We don't have it, so allocate memory to read entire file into - if ( !p->own_data_ ) - { - assert( !p->data_ ); - - unrar_pos_t size = unrar_info( p )->size; - p->own_data_ = malloc( size ? size : 1 ); - if ( !p->own_data_ ) - return unrar_err_memory; - - p->data_ = p->own_data_; - } - - memcpy( (void*) p->data_, in, count ); - p->data_ = (char*) p->data_ + count; - - return unrar_ok; - } -} - -unrar_err_t unrar_extract_mem( unrar_t* p, void const** out ) -{ - assert( !unrar_done( p ) ); - - *out = NULL; - - if ( !p->data_ ) - { - unrar_err_t err = unrar_extract_custom( p, &extract_mem, p ); - if ( err ) - return err; - } - - *out = (p->own_data_ ? p->own_data_ : p->data_); - return unrar_ok; -} - -const char* unrar_err_str( unrar_err_t err ) -{ - switch ( err ) - { - case unrar_ok: return ""; - case unrar_err_memory: return "out of memory"; - case unrar_err_open: return "couldn't open RAR archive"; - case unrar_err_not_arc: return "not a RAR archive"; - case unrar_err_corrupt: return "RAR archive is corrupt"; - case unrar_err_io: return "couldn't read/write"; - case unrar_err_arc_eof: return "unexpected end of archive"; - case unrar_err_encrypted: return "encryption not supported"; - case unrar_err_segmented: return "segmentation not supported"; - case unrar_err_huge: return "huge (2GB+) archives are not supported"; - case unrar_err_old_algo: return "compressed using older algorithm than supported"; - case unrar_err_new_algo: return "compressed using newer algorithm than supported"; - } - - assert( false ); - return "problem with RAR"; -} - -int ComprDataIO::Read( void* p, int n ) -{ - unrar_err_t err = user_read( user_read_data, p, &n, Tell_ ); - if ( err ) - ReportError( err ); - - Tell_ += n; - if ( Tell_ < 0 ) - ReportError( unrar_err_huge ); - - return n; -} - -void ComprDataIO::UnpWrite( byte* out, uint count ) -{ - if ( !SkipUnpCRC ) - { - if ( write_error == unrar_ok ) - write_error = user_write( user_write_data, out, count ); - - if ( OldFormat ) - UnpFileCRC = OldCRC( (ushort) UnpFileCRC, out, count ); - else - UnpFileCRC = CRC( UnpFileCRC, out, count ); - } -} - -int ComprDataIO::UnpRead( byte* out, uint count ) -{ - if ( count <= 0 ) - return 0; - - if ( count > (uint) UnpPackedSize ) - count = UnpPackedSize; - - int result = Read( out, count ); - UnpPackedSize -= result; - return result; -} diff --git a/snesreader/unrar/unrar_open.cpp b/snesreader/unrar/unrar_open.cpp deleted file mode 100644 index f9b0c40d..00000000 --- a/snesreader/unrar/unrar_open.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// Separate file to avoid linking to f* functions unless user calls unrar_open_file() - -#include "unrar.h" -#include "rar.hpp" -#include - -extern "C" { - static unrar_err_t unrar_read_file( void* user_data, void* out, int* count, unrar_pos_t pos ) - { - FILE* file = (FILE*) user_data; - - // most of the time, seeking won't be necessary - if ( pos != ftell( file ) && fseek( file, pos, SEEK_SET ) != 0 ) - return unrar_err_corrupt; - - *count = (int) fread( out, 1, *count, file ); - - if ( ferror( file ) != 0 ) - return unrar_err_io; - - return unrar_ok; - } -} - -static void unrar_close_file( void* user_data ) -{ - fclose( (FILE*) user_data ); -} - -unrar_err_t unrar_open( unrar_t** arc_out, const char path [] ) -{ - *arc_out = NULL; - - FILE* file = fopen( path, "rb" ); - if ( file == NULL ) - return unrar_err_open; - - unrar_err_t err = unrar_open_custom( arc_out, &unrar_read_file, file ); - if ( err != unrar_ok ) - fclose( file ); - else - (*arc_out)->close_file = &unrar_close_file; - - return err; -} diff --git a/snesreader/unrar/whatsnew.txt b/snesreader/unrar/whatsnew.txt deleted file mode 100644 index 38012e9a..00000000 --- a/snesreader/unrar/whatsnew.txt +++ /dev/null @@ -1,267 +0,0 @@ - - - WinRAR - What's new in the latest version - - - Version 3.80 - - 1. Added support for ZIP archives containing Unicode file names - in UTF-8 format. When creating ZIP archive, WinRAR stores - names in Unicode only if they cannot be stored correctly using - the current single byte character set. - - 2. Added decompression support for WinZip AES encrypted ZIP archives. - - 3. Improved Unicode support for RAR and ZIP archive names. - - 4. "Ask before overwrite" and "Skip existing files" update modes - are now available in archiving dialog. They allow to specify - WinRAR behavior when updating already existing files in archive. - Unlike already available "Fresh existing files only" and - "Add and update files", these new modes ignore file date - and compare only file names. - - Command line equivalents of these modes are: - - a) switch -o enables "Ask before overwrite" archiving mode; - - b) switch -o- enables "Skip existing files" archiving mode; - - c) switch -o+ enables "Overwrite all" mode (default for archiving). - - 5. New "Add to context menu" option in "Profile parameters" dialog. - If this option is on, the profile name will be displayed in Explorer - context menus allowing to activate a profile from context menu. - - 6. New -cp switch allows to select a compression profile - in command line mode. It is supported only by GUI WinRAR.exe, - not by rar.exe. - - 7. New "Options" page of archiving dialog contains the group of - settings modifying the behavior of "Delete files after archiving" - option from "General" page: - - a) Delete files. Delete files normally like in previous WinRAR - versions. - - b) Move files to Recycle Bin. Deleted files are placed to - Recycle Bin. - - Command line equivalent of this option is -dr switch. - - c) Wipe files. Before deleting file data are overwritten by - zero bytes to prevent recovery of deleted files. - - Command line equivalent of this option is -dw switch. - - All these options have an effect only if "Delete files - after archiving" is on. You can enable any of these options - in the default compression profile to change the default - behavior of "Delete files after archiving". - - 8. WinRAR "Extraction path and options" dialog is now resizable. - You can use the mouse to drag its border to the desired size - and provide more space for folder tree pane. WinRAR will store - new dimensions of this dialog. - - 9. New "Update" SFX script command and "Update mode" group - of options in "Update" page of "Advanced SFX options" dialog. - These command and options allow to check time and implement - file time based updating; - - 10. SFX script "Shortcut" command and "Add shortcut..." command - in "Advanced SFX options" dialog now allow to specify - an icon file containing an icon associated with shortcut. - - 11. New "Wipe temporary files" option in "Settings/Security" dialog - provides more secure, though slower, way to delete temporary - WinRAR files. - - 12. WinRAR and RAR display the total progress bar when unpacking - a multivolume RAR archive if all volumes are present - in the same folder. - - 13. WinRAR and RAR automatically expand names of environment - variables in list files. For example, a list file can contain - lines like: - - %windir%\*.exe - %USERPROFILE%\Desktop - - This feature is available only in Windows RAR version. - - 14. Added support of TAR archives with non-zero "extra field" data. - - 15. Added support of TAR archives, which does not contain - the end of archive entry consisting of 512 zero bytes. - - 16. Improved Unicode support when dragging files from WinRAR window. - - 17. Shift+Tab key combination can be used in main WinRAR window to - switch the input focus between interface elements (files, comment, - tree, address) in reverse order. In previous versions Shift+Tab - used the same order as Tab. - - 18. Corrected a possible WinRAR crash when opening truncated - UDF ISO files. - - - Version 3.71 - - 1. Archive names in rar.log error log file always include - the full path. - - 2. WinRAR tray icon is compatible with high DPI display modes. - - 3. If you modified a file in archive with encrypted names using - an external editor, WinRAR will not ask for archive password again - when prompting to update a file. It will use a password which - you entered when opening an archive, - - 4. Bugs fixed: - - a) switch -tl and "Set archive time to latest file time" option - could fail in previous version. Sometimes they set archive time - to current system time instead of latest file time; - - b) if -ag switch mask contained archive number, month and minute - characters, WinRAR placed 'I' character instead of minute value - into generated archive name for archive numbers exceeding 1; - - c) high ASCII names in ISO files using ISO 9660 format without - Joliet format extension were displayed incorrectly; - - d) WinRAR could crash when decompressing some of corrupt RAR archives; - - e) if "Turn PC off when done" option was set in "Convert archives" - command, WinRAR turned PC off after converting the first archive - in selected group instead of after converting the entire group; - - f) if user specified a non-existent destination path in SFX archive - in Vista, SFX could enter into infinite "create new SFX window" - loop; - - g) WinRAR could fail to unpack an individual file from subfolder - of ACE archive using the drag and drop. - - - Version 3.70 - - 1. Numerous Windows Vista compatibility changes: - - a) help format changed from old HLP to newer HTML based CHM; - - b) GUI self-extracting modules attempt to request for - administrator permissions if they cannot create destination - folder under current user account; - - c) Log file rar.log and WinRAR theme files are stored - in %APPDATA%\WinRAR folder instead of WinRAR program files folder. - - Exported settings file settings.reg is also stored - in %APPDATA%\WinRAR folder by default, but it is possible to - select another folder in "Save WinRAR settings" and "Load WinRAR - settings" dialogs. - - WinRAR searches for registration key and settings.reg - both in its program files folder and in %APPDATA%\WinRAR; - - It is possible to set the string value "AppData" in Registry key - HKEY_CURRENT_USER\Software\WinRAR\Paths to override the default - %appdata%\WinRAR path for WinRAR settings. - - For example, if you wish to store theme files in WinRAR folder, - set this value to "c:\Program Files\WinRAR". - - d) Vista compatibility changes in WinRAR shell integration; - - e) New "Request administrative access" option in "Advanced" page - of "Advanced SFX options" allows to create SFX archive, - which will request the administrative access when started - in Windows Vista. - - Command line equivalent of this option is -iadm switch. - - 2. Added support for ISO 13346 (UDF) file format. This format - is frequently used in ISO images of DVD disks. - - 3. Added Unicode support for ISO 9660 files, so WinRAR should - handle non-English file names in .iso files better. - - 4. Design changes in window displaying archiving and extraction - progress: - - a) it provides more space for file names, allowing lengthy names; - - b) it displays the current archive name in separate line, - allowing much longer archive names than before; - - c) when archiving, it displays the current compression ratio - in separate line; - - d) it can use both standard Windows and classic WinRAR progress bars. - Turn on "Windows progress bars" option in WinRAR "Settings/General" - dialog to use standard progress bars. By default this option is - on if some Windows visual style is active and off if Windows Classic - theme is selected. - - Windows progress bars are two color only, so they do not indicate - the current compression ratio. But now the ratio is displayed - in separate line; - - e) "Mode..." button moved to bottom of window. - - 5. GUI self-extracting modules support following command line - switches: - - -d set the destination path - -p specify a password - -s silent mode, hide all - -s1 same as -s - -s2 silent mode, hide start dialog - -sp specify parameters for setup program - - 6. GUI self-extracting modules do not pass the entire command line - to setup program like they did in previous versions. - If you need to get access to entire command line of SFX archive, - parse sfxcmd environment variable which contains this command line. - - 7. New switch -sc[objects] allowing to select character - sets for archive comments and list files. It replaces -fcu switch - introduced in RAR 3.60, which was removed from list of supported - switches. Now you need to specify -scuc instead of -fcu to use - Unicode comments. Unlike -fcu, -sc also supports OEM and ANSI charset. - - 8. New "Save archive copy as..." command in "File" menu. - This command may be useful if you opened an archive from Internet - directly in WinRAR and then decided to save it on local disk. - - 9. "Word wrap" command added to "View" menu of WinRAR internal viewer, - so you can change the wrapping mode of already opened viewer window. - - State of this option is not stored between viewing sessions. - If you need to change the default word wrap mode, use WinRAR - "Settings/Viewer" dialog. - - 10. Buttons "Up" and "Down" added to "Organize profiles" dialog. - Using these buttons you can change position of selected profile - in the list. - - 11. Operation progress is displayed when adding the recovery record. - - 12. If WinRAR is minimized to tray and mouse is over its icon, - WinRAR diplays a message about the current operation progress. - In previous versions it included only percent done, now it also - contains the time left information. - - 13. Console RAR displays "Calculating the control sum" message - when calculating CRC32 control sum for newly created RAR volume. - Previous versions also calculated the volume control sum, - but did it silently. - - 14. Archives history list in "File" menu allows Unicode names, - providing more reliable support for non-English archive names. - - 15. Stack overflow vulnerability has been corrected in password - processing module of console RAR and UnRAR. GUI WinRAR is not - affected. We are thankful to the iDEFENSE LABS for reporting this bug. diff --git a/snesreader/xml.cpp b/snesreader/xml.cpp deleted file mode 100644 index edd986c6..00000000 --- a/snesreader/xml.cpp +++ /dev/null @@ -1,750 +0,0 @@ -#include "xml.hpp" -XML xml; - -typedef uint8_t uint8; -typedef uint16_t uint16; -typedef uint32_t uint32; -typedef uint64_t uint64; - -void XML::generate(string &xml, const uint8_t *data, unsigned size) { - read_header(data, size); - - xml = "\n"; - - if(type == TypeBsx) { - xml << ""; - return; - } else if(type == TypeSufamiTurbo) { - xml << ""; - return; - } else if(type == TypeGameBoy) { - xml << "\n"; - if(gameboy_ram_size(data, size) > 0) { - xml << " \n"; - } - xml << "\n"; - return; - } - - xml << "\n"; - - if(type == TypeSuperGameBoy1Bios) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(type == TypeSuperGameBoy2Bios) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(has_sdd1) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - - if(ram_size > 0) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(has_spc7110) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - if(has_spc7110rtc) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(mapper == LoROM) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - - if(ram_size > 0) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - if((rom_size > 0x200000) || (ram_size > 32 * 1024)) { - xml << " \n"; - xml << " \n"; - } else { - xml << " \n"; - xml << " \n"; - } - xml << " \n"; - } - } else if(mapper == HiROM) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - - if(ram_size > 0) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - if((rom_size > 0x200000) || (ram_size > 32 * 1024)) { - xml << " \n"; - } else { - xml << " \n"; - } - xml << " \n"; - } - } else if(mapper == ExHiROM) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - - if(ram_size > 0) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - if((rom_size > 0x200000) || (ram_size > 32 * 1024)) { - xml << " \n"; - } else { - xml << " \n"; - } - xml << " \n"; - } - } else if(mapper == SuperFXROM) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(mapper == SA1ROM) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(mapper == BSCLoROM) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(mapper == BSCHiROM) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(mapper == BSXROM) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(mapper == STROM) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - if(has_srtc) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - if(has_cx4) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - if(has_dsp1) { - xml << " \n"; - if(dsp1_mapper == DSP1LoROM1MB) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(dsp1_mapper == DSP1LoROM2MB) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } else if(dsp1_mapper == DSP1HiROM) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - xml << " \n"; - } - - if(has_dsp2) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - if(has_dsp3) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - if(has_dsp4) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - if(has_obc1) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - if(has_st010) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - if(has_st011) { - //ST-0011 addresses not verified; chip is unsupported - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - if(has_st018) { - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - xml << " \n"; - } - - xml << "\n"; -} - -void XML::read_header(const uint8_t *data, unsigned size) { - type = TypeUnknown; - mapper = LoROM; - dsp1_mapper = DSP1Unmapped; - region = NTSC; - rom_size = size; - ram_size = 0; - - has_bsx_slot = false; - has_superfx = false; - has_sa1 = false; - has_srtc = false; - has_sdd1 = false; - has_spc7110 = false; - has_spc7110rtc = false; - has_cx4 = false; - has_dsp1 = false; - has_dsp2 = false; - has_dsp3 = false; - has_dsp4 = false; - has_obc1 = false; - has_st010 = false; - has_st011 = false; - has_st018 = false; - - //===================== - //detect Game Boy carts - //===================== - - if(size >= 0x0140) { - if(data[0x0104] == 0xce && data[0x0105] == 0xed && data[0x0106] == 0x66 && data[0x0107] == 0x66 - && data[0x0108] == 0xcc && data[0x0109] == 0x0d && data[0x010a] == 0x00 && data[0x010b] == 0x0b) { - type = TypeGameBoy; - return; - } - } - - const unsigned index = find_header(data, size); - const uint8 mapperid = data[index + Mapper]; - const uint8 rom_type = data[index + RomType]; - const uint8 rom_size = data[index + RomSize]; - const uint8 company = data[index + Company]; - const uint8 regionid = data[index + CartRegion] & 0x7f; - - ram_size = 1024 << (data[index + RamSize] & 7); - if(ram_size == 1024) ram_size = 0; //no RAM present - - //0, 1, 13 = NTSC; 2 - 12 = PAL - region = (regionid <= 1 || regionid >= 13) ? NTSC : PAL; - - //======================= - //detect BS-X flash carts - //======================= - - if(data[index + 0x13] == 0x00 || data[index + 0x13] == 0xff) { - if(data[index + 0x14] == 0x00) { - const uint8_t n15 = data[index + 0x15]; - if(n15 == 0x00 || n15 == 0x80 || n15 == 0x84 || n15 == 0x9c || n15 == 0xbc || n15 == 0xfc) { - if(data[index + 0x1a] == 0x33 || data[index + 0x1a] == 0xff) { - type = TypeBsx; - mapper = BSXROM; - region = NTSC; //BS-X only released in Japan - return; - } - } - } - } - - //========================= - //detect Sufami Turbo carts - //========================= - - if(!memcmp(data, "BANDAI SFC-ADX", 14)) { - if(!memcmp(data + 16, "SFC-ADX BACKUP", 14)) { - type = TypeSufamiTurboBios; - } else { - type = TypeSufamiTurbo; - } - mapper = STROM; - region = NTSC; //Sufami Turbo only released in Japan - return; //RAM size handled outside this routine - } - - //========================== - //detect Super Game Boy BIOS - //========================== - - if(!memcmp(data + index, "Super GAMEBOY2", 14)) { - type = TypeSuperGameBoy2Bios; - return; - } - - if(!memcmp(data + index, "Super GAMEBOY", 13)) { - type = TypeSuperGameBoy1Bios; - return; - } - - //===================== - //detect standard carts - //===================== - - //detect presence of BS-X flash cartridge connector (reads extended header information) - if(data[index - 14] == 'Z') { - if(data[index - 11] == 'J') { - uint8 n13 = data[index - 13]; - if((n13 >= 'A' && n13 <= 'Z') || (n13 >= '0' && n13 <= '9')) { - if(company == 0x33 || (data[index - 10] == 0x00 && data[index - 4] == 0x00)) { - has_bsx_slot = true; - } - } - } - } - - if(has_bsx_slot) { - if(!memcmp(data + index, "Satellaview BS-X ", 21)) { - //BS-X base cart - type = TypeBsxBios; - mapper = BSXROM; - region = NTSC; //BS-X only released in Japan - return; //RAM size handled internally by load_cart_bsx() -> BSXCart class - } else { - type = TypeBsxSlotted; - mapper = (index == 0x7fc0 ? BSCLoROM : BSCHiROM); - region = NTSC; //BS-X slotted cartridges only released in Japan - } - } else { - //standard cart - type = TypeNormal; - - if(index == 0x7fc0 && size >= 0x401000) { - mapper = ExLoROM; - } else if(index == 0x7fc0 && mapperid == 0x32) { - mapper = ExLoROM; - } else if(index == 0x7fc0) { - mapper = LoROM; - } else if(index == 0xffc0) { - mapper = HiROM; - } else { //index == 0x40ffc0 - mapper = ExHiROM; - } - } - - if(mapperid == 0x20 && (rom_type == 0x13 || rom_type == 0x14 || rom_type == 0x15 || rom_type == 0x1a)) { - has_superfx = true; - mapper = SuperFXROM; - ram_size = 1024 << (data[index - 3] & 7); - if(ram_size == 1024) ram_size = 0; - } - - if(mapperid == 0x23 && (rom_type == 0x32 || rom_type == 0x34 || rom_type == 0x35)) { - has_sa1 = true; - mapper = SA1ROM; - } - - if(mapperid == 0x35 && rom_type == 0x55) { - has_srtc = true; - } - - if(mapperid == 0x32 && (rom_type == 0x43 || rom_type == 0x45)) { - has_sdd1 = true; - } - - if(mapperid == 0x3a && (rom_type == 0xf5 || rom_type == 0xf9)) { - has_spc7110 = true; - has_spc7110rtc = (rom_type == 0xf9); - mapper = SPC7110ROM; - } - - if(mapperid == 0x20 && rom_type == 0xf3) { - has_cx4 = true; - } - - if((mapperid == 0x20 || mapperid == 0x21) && rom_type == 0x03) { - has_dsp1 = true; - } - - if(mapperid == 0x30 && rom_type == 0x05 && company != 0xb2) { - has_dsp1 = true; - } - - if(mapperid == 0x31 && (rom_type == 0x03 || rom_type == 0x05)) { - has_dsp1 = true; - } - - if(has_dsp1 == true) { - if((mapperid & 0x2f) == 0x20 && size <= 0x100000) { - dsp1_mapper = DSP1LoROM1MB; - } else if((mapperid & 0x2f) == 0x20) { - dsp1_mapper = DSP1LoROM2MB; - } else if((mapperid & 0x2f) == 0x21) { - dsp1_mapper = DSP1HiROM; - } - } - - if(mapperid == 0x20 && rom_type == 0x05) { - has_dsp2 = true; - } - - if(mapperid == 0x30 && rom_type == 0x05 && company == 0xb2) { - has_dsp3 = true; - } - - if(mapperid == 0x30 && rom_type == 0x03) { - has_dsp4 = true; - } - - if(mapperid == 0x30 && rom_type == 0x25) { - has_obc1 = true; - } - - if(mapperid == 0x30 && rom_type == 0xf6 && rom_size >= 10) { - has_st010 = true; - } - - if(mapperid == 0x30 && rom_type == 0xf6 && rom_size < 10) { - has_st011 = true; - } - - if(mapperid == 0x30 && rom_type == 0xf5) { - has_st018 = true; - } -} - -unsigned XML::find_header(const uint8_t *data, unsigned size) const { - unsigned score_lo = score_header(data, size, 0x007fc0); - unsigned score_hi = score_header(data, size, 0x00ffc0); - unsigned score_ex = score_header(data, size, 0x40ffc0); - if(score_ex) score_ex += 4; //favor ExHiROM on images > 32mbits - - if(score_lo >= score_hi && score_lo >= score_ex) { - return 0x007fc0; - } else if(score_hi >= score_ex) { - return 0x00ffc0; - } else { - return 0x40ffc0; - } -} - -unsigned XML::score_header(const uint8_t *data, unsigned size, unsigned addr) const { - if(size < addr + 64) return 0; //image too small to contain header at this location? - int score = 0; - - uint16 resetvector = data[addr + ResetVector] | (data[addr + ResetVector + 1] << 8); - uint16 checksum = data[addr + Checksum ] | (data[addr + Checksum + 1] << 8); - uint16 complement = data[addr + Complement ] | (data[addr + Complement + 1] << 8); - - uint8 resetop = data[(addr & ~0x7fff) | (resetvector & 0x7fff)]; //first opcode executed upon reset - uint8 mapper = data[addr + Mapper] & ~0x10; //mask off irrelevent FastROM-capable bit - - //$00:[000-7fff] contains uninitialized RAM and MMIO. - //reset vector must point to ROM at $00:[8000-ffff] to be considered valid. - if(resetvector < 0x8000) return 0; - - //some images duplicate the header in multiple locations, and others have completely - //invalid header information that cannot be relied upon. - //below code will analyze the first opcode executed at the specified reset vector to - //determine the probability that this is the correct header. - - //most likely opcodes - if(resetop == 0x78 //sei - || resetop == 0x18 //clc (clc; xce) - || resetop == 0x38 //sec (sec; xce) - || resetop == 0x9c //stz $nnnn (stz $4200) - || resetop == 0x4c //jmp $nnnn - || resetop == 0x5c //jml $nnnnnn - ) score += 8; - - //plausible opcodes - if(resetop == 0xc2 //rep #$nn - || resetop == 0xe2 //sep #$nn - || resetop == 0xad //lda $nnnn - || resetop == 0xae //ldx $nnnn - || resetop == 0xac //ldy $nnnn - || resetop == 0xaf //lda $nnnnnn - || resetop == 0xa9 //lda #$nn - || resetop == 0xa2 //ldx #$nn - || resetop == 0xa0 //ldy #$nn - || resetop == 0x20 //jsr $nnnn - || resetop == 0x22 //jsl $nnnnnn - ) score += 4; - - //implausible opcodes - if(resetop == 0x40 //rti - || resetop == 0x60 //rts - || resetop == 0x6b //rtl - || resetop == 0xcd //cmp $nnnn - || resetop == 0xec //cpx $nnnn - || resetop == 0xcc //cpy $nnnn - ) score -= 4; - - //least likely opcodes - if(resetop == 0x00 //brk #$nn - || resetop == 0x02 //cop #$nn - || resetop == 0xdb //stp - || resetop == 0x42 //wdm - || resetop == 0xff //sbc $nnnnnn,x - ) score -= 8; - - //at times, both the header and reset vector's first opcode will match ... - //fallback and rely on info validity in these cases to determine more likely header. - - //a valid checksum is the biggest indicator of a valid header. - if((checksum + complement) == 0xffff && (checksum != 0) && (complement != 0)) score += 4; - - if(addr == 0x007fc0 && mapper == 0x20) score += 2; //0x20 is usually LoROM - if(addr == 0x00ffc0 && mapper == 0x21) score += 2; //0x21 is usually HiROM - if(addr == 0x007fc0 && mapper == 0x22) score += 2; //0x22 is usually ExLoROM - if(addr == 0x40ffc0 && mapper == 0x25) score += 2; //0x25 is usually ExHiROM - - if(data[addr + Company] == 0x33) score += 2; //0x33 indicates extended header - if(data[addr + RomType] < 0x08) score++; - if(data[addr + RomSize] < 0x10) score++; - if(data[addr + RamSize] < 0x08) score++; - if(data[addr + CartRegion] < 14) score++; - - if(score < 0) score = 0; - return score; -} - -unsigned XML::gameboy_ram_size(const uint8_t *data, unsigned size) const { - if(size < 512) return 0; - switch(data[0x0149]) { - case 0x00: return 0 * 1024; - case 0x01: return 8 * 1024; - case 0x02: return 8 * 1024; - case 0x03: return 32 * 1024; - case 0x04: return 128 * 1024; - case 0x05: return 128 * 1024; - default: return 128 * 1024; - } -} - -bool XML::gameboy_has_rtc(const uint8_t *data, unsigned size) const { - if(size < 512) return false; - if(data[0x0147] == 0x0f ||data[0x0147] == 0x10) return true; - return false; -} diff --git a/snesreader/xml.hpp b/snesreader/xml.hpp deleted file mode 100644 index c75f8e11..00000000 --- a/snesreader/xml.hpp +++ /dev/null @@ -1,103 +0,0 @@ -class XML { -public: - void generate(nall::string &xml, const uint8_t *data, unsigned size); - -private: - void read_header(const uint8_t *data, unsigned size); - unsigned find_header(const uint8_t *data, unsigned size) const; - unsigned score_header(const uint8_t *data, unsigned size, unsigned addr) const; - - unsigned gameboy_ram_size(const uint8_t *data, unsigned size) const; - bool gameboy_has_rtc(const uint8_t *data, unsigned size) const; - - enum HeaderField { - CartName = 0x00, - Mapper = 0x15, - RomType = 0x16, - RomSize = 0x17, - RamSize = 0x18, - CartRegion = 0x19, - Company = 0x1a, - Version = 0x1b, - Complement = 0x1c, //inverse checksum - Checksum = 0x1e, - ResetVector = 0x3c, - }; - - enum Mode { - ModeNormal, - ModeBsxSlotted, - ModeBsx, - ModeSufamiTurbo, - ModeSuperGameBoy, - }; - - enum Type { - TypeNormal, - TypeBsxSlotted, - TypeBsxBios, - TypeBsx, - TypeSufamiTurboBios, - TypeSufamiTurbo, - TypeSuperGameBoy1Bios, - TypeSuperGameBoy2Bios, - TypeGameBoy, - TypeUnknown, - }; - - enum Region { - NTSC, - PAL, - }; - - enum MemoryMapper { - LoROM, - HiROM, - ExLoROM, - ExHiROM, - SuperFXROM, - SA1ROM, - SPC7110ROM, - BSCLoROM, - BSCHiROM, - BSXROM, - STROM, - }; - - enum DSP1MemoryMapper { - DSP1Unmapped, - DSP1LoROM1MB, - DSP1LoROM2MB, - DSP1HiROM, - }; - - bool loaded; //is a base cartridge inserted? - unsigned crc32; //crc32 of all cartridges (base+slot(s)) - unsigned rom_size; - unsigned ram_size; - - Mode mode; - Type type; - Region region; - MemoryMapper mapper; - DSP1MemoryMapper dsp1_mapper; - - bool has_bsx_slot; - bool has_superfx; - bool has_sa1; - bool has_srtc; - bool has_sdd1; - bool has_spc7110; - bool has_spc7110rtc; - bool has_cx4; - bool has_dsp1; - bool has_dsp2; - bool has_dsp3; - bool has_dsp4; - bool has_obc1; - bool has_st010; - bool has_st011; - bool has_st018; -}; - -extern XML xml; diff --git a/snesreader/zlib/adler32.c b/snesreader/zlib/adler32.c deleted file mode 100644 index 007ba262..00000000 --- a/snesreader/zlib/adler32.c +++ /dev/null @@ -1,149 +0,0 @@ -/* adler32.c -- compute the Adler-32 checksum of a data stream - * Copyright (C) 1995-2004 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#define ZLIB_INTERNAL -#include "zlib.h" - -#define BASE 65521UL /* largest prime smaller than 65536 */ -#define NMAX 5552 -/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ - -#define DO1(buf,i) {adler += (buf)[i]; sum2 += adler;} -#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1); -#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2); -#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); -#define DO16(buf) DO8(buf,0); DO8(buf,8); - -/* use NO_DIVIDE if your processor does not do division in hardware */ -#ifdef NO_DIVIDE -# define MOD(a) \ - do { \ - if (a >= (BASE << 16)) a -= (BASE << 16); \ - if (a >= (BASE << 15)) a -= (BASE << 15); \ - if (a >= (BASE << 14)) a -= (BASE << 14); \ - if (a >= (BASE << 13)) a -= (BASE << 13); \ - if (a >= (BASE << 12)) a -= (BASE << 12); \ - if (a >= (BASE << 11)) a -= (BASE << 11); \ - if (a >= (BASE << 10)) a -= (BASE << 10); \ - if (a >= (BASE << 9)) a -= (BASE << 9); \ - if (a >= (BASE << 8)) a -= (BASE << 8); \ - if (a >= (BASE << 7)) a -= (BASE << 7); \ - if (a >= (BASE << 6)) a -= (BASE << 6); \ - if (a >= (BASE << 5)) a -= (BASE << 5); \ - if (a >= (BASE << 4)) a -= (BASE << 4); \ - if (a >= (BASE << 3)) a -= (BASE << 3); \ - if (a >= (BASE << 2)) a -= (BASE << 2); \ - if (a >= (BASE << 1)) a -= (BASE << 1); \ - if (a >= BASE) a -= BASE; \ - } while (0) -# define MOD4(a) \ - do { \ - if (a >= (BASE << 4)) a -= (BASE << 4); \ - if (a >= (BASE << 3)) a -= (BASE << 3); \ - if (a >= (BASE << 2)) a -= (BASE << 2); \ - if (a >= (BASE << 1)) a -= (BASE << 1); \ - if (a >= BASE) a -= BASE; \ - } while (0) -#else -# define MOD(a) a %= BASE -# define MOD4(a) a %= BASE -#endif - -/* ========================================================================= */ -uLong ZEXPORT adler32(adler, buf, len) - uLong adler; - const Bytef *buf; - uInt len; -{ - unsigned long sum2; - unsigned n; - - /* split Adler-32 into component sums */ - sum2 = (adler >> 16) & 0xffff; - adler &= 0xffff; - - /* in case user likes doing a byte at a time, keep it fast */ - if (len == 1) { - adler += buf[0]; - if (adler >= BASE) - adler -= BASE; - sum2 += adler; - if (sum2 >= BASE) - sum2 -= BASE; - return adler | (sum2 << 16); - } - - /* initial Adler-32 value (deferred check for len == 1 speed) */ - if (buf == Z_NULL) - return 1L; - - /* in case short lengths are provided, keep it somewhat fast */ - if (len < 16) { - while (len--) { - adler += *buf++; - sum2 += adler; - } - if (adler >= BASE) - adler -= BASE; - MOD4(sum2); /* only added so many BASE's */ - return adler | (sum2 << 16); - } - - /* do length NMAX blocks -- requires just one modulo operation */ - while (len >= NMAX) { - len -= NMAX; - n = NMAX / 16; /* NMAX is divisible by 16 */ - do { - DO16(buf); /* 16 sums unrolled */ - buf += 16; - } while (--n); - MOD(adler); - MOD(sum2); - } - - /* do remaining bytes (less than NMAX, still just one modulo) */ - if (len) { /* avoid modulos if none remaining */ - while (len >= 16) { - len -= 16; - DO16(buf); - buf += 16; - } - while (len--) { - adler += *buf++; - sum2 += adler; - } - MOD(adler); - MOD(sum2); - } - - /* return recombined sums */ - return adler | (sum2 << 16); -} - -/* ========================================================================= */ -uLong ZEXPORT adler32_combine(adler1, adler2, len2) - uLong adler1; - uLong adler2; - z_off_t len2; -{ - unsigned long sum1; - unsigned long sum2; - unsigned rem; - - /* the derivation of this formula is left as an exercise for the reader */ - rem = (unsigned)(len2 % BASE); - sum1 = adler1 & 0xffff; - sum2 = rem * sum1; - MOD(sum2); - sum1 += (adler2 & 0xffff) + BASE - 1; - sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem; - if (sum1 > BASE) sum1 -= BASE; - if (sum1 > BASE) sum1 -= BASE; - if (sum2 > (BASE << 1)) sum2 -= (BASE << 1); - if (sum2 > BASE) sum2 -= BASE; - return sum1 | (sum2 << 16); -} diff --git a/snesreader/zlib/crc32.c b/snesreader/zlib/crc32.c deleted file mode 100644 index f658a9ef..00000000 --- a/snesreader/zlib/crc32.c +++ /dev/null @@ -1,423 +0,0 @@ -/* crc32.c -- compute the CRC-32 of a data stream - * Copyright (C) 1995-2005 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - * - * Thanks to Rodney Brown for his contribution of faster - * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing - * tables for updating the shift register in one step with three exclusive-ors - * instead of four steps with four exclusive-ors. This results in about a - * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. - */ - -/* @(#) $Id$ */ - -/* - Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore - protection on the static variables used to control the first-use generation - of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should - first call get_crc_table() to initialize the tables before allowing more than - one thread to use crc32(). - */ - -#ifdef MAKECRCH -# include -# ifndef DYNAMIC_CRC_TABLE -# define DYNAMIC_CRC_TABLE -# endif /* !DYNAMIC_CRC_TABLE */ -#endif /* MAKECRCH */ - -#include "zutil.h" /* for STDC and FAR definitions */ - -#define local static - -/* Find a four-byte integer type for crc32_little() and crc32_big(). */ -#ifndef NOBYFOUR -# ifdef STDC /* need ANSI C limits.h to determine sizes */ -# include -# define BYFOUR -# if (UINT_MAX == 0xffffffffUL) - typedef unsigned int u4; -# else -# if (ULONG_MAX == 0xffffffffUL) - typedef unsigned long u4; -# else -# if (USHRT_MAX == 0xffffffffUL) - typedef unsigned short u4; -# else -# undef BYFOUR /* can't find a four-byte integer type! */ -# endif -# endif -# endif -# endif /* STDC */ -#endif /* !NOBYFOUR */ - -/* Definitions for doing the crc four data bytes at a time. */ -#ifdef BYFOUR -# define REV(w) (((w)>>24)+(((w)>>8)&0xff00)+ \ - (((w)&0xff00)<<8)+(((w)&0xff)<<24)) - local unsigned long crc32_little OF((unsigned long, - const unsigned char FAR *, unsigned)); - local unsigned long crc32_big OF((unsigned long, - const unsigned char FAR *, unsigned)); -# define TBLS 8 -#else -# define TBLS 1 -#endif /* BYFOUR */ - -/* Local functions for crc concatenation */ -local unsigned long gf2_matrix_times OF((unsigned long *mat, - unsigned long vec)); -local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); - -#ifdef DYNAMIC_CRC_TABLE - -local volatile int crc_table_empty = 1; -local unsigned long FAR crc_table[TBLS][256]; -local void make_crc_table OF((void)); -#ifdef MAKECRCH - local void write_table OF((FILE *, const unsigned long FAR *)); -#endif /* MAKECRCH */ -/* - Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: - x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. - - Polynomials over GF(2) are represented in binary, one bit per coefficient, - with the lowest powers in the most significant bit. Then adding polynomials - is just exclusive-or, and multiplying a polynomial by x is a right shift by - one. If we call the above polynomial p, and represent a byte as the - polynomial q, also with the lowest power in the most significant bit (so the - byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, - where a mod b means the remainder after dividing a by b. - - This calculation is done using the shift-register method of multiplying and - taking the remainder. The register is initialized to zero, and for each - incoming bit, x^32 is added mod p to the register if the bit is a one (where - x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by - x (which is shifting right by one and adding x^32 mod p if the bit shifted - out is a one). We start with the highest power (least significant bit) of - q and repeat for all eight bits of q. - - The first table is simply the CRC of all possible eight bit values. This is - all the information needed to generate CRCs on data a byte at a time for all - combinations of CRC register values and incoming bytes. The remaining tables - allow for word-at-a-time CRC calculation for both big-endian and little- - endian machines, where a word is four bytes. -*/ -local void make_crc_table() -{ - unsigned long c; - int n, k; - unsigned long poly; /* polynomial exclusive-or pattern */ - /* terms of polynomial defining this crc (except x^32): */ - static volatile int first = 1; /* flag to limit concurrent making */ - static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; - - /* See if another task is already doing this (not thread-safe, but better - than nothing -- significantly reduces duration of vulnerability in - case the advice about DYNAMIC_CRC_TABLE is ignored) */ - if (first) { - first = 0; - - /* make exclusive-or pattern from polynomial (0xedb88320UL) */ - poly = 0UL; - for (n = 0; n < sizeof(p)/sizeof(unsigned char); n++) - poly |= 1UL << (31 - p[n]); - - /* generate a crc for every 8-bit value */ - for (n = 0; n < 256; n++) { - c = (unsigned long)n; - for (k = 0; k < 8; k++) - c = c & 1 ? poly ^ (c >> 1) : c >> 1; - crc_table[0][n] = c; - } - -#ifdef BYFOUR - /* generate crc for each value followed by one, two, and three zeros, - and then the byte reversal of those as well as the first table */ - for (n = 0; n < 256; n++) { - c = crc_table[0][n]; - crc_table[4][n] = REV(c); - for (k = 1; k < 4; k++) { - c = crc_table[0][c & 0xff] ^ (c >> 8); - crc_table[k][n] = c; - crc_table[k + 4][n] = REV(c); - } - } -#endif /* BYFOUR */ - - crc_table_empty = 0; - } - else { /* not first */ - /* wait for the other guy to finish (not efficient, but rare) */ - while (crc_table_empty) - ; - } - -#ifdef MAKECRCH - /* write out CRC tables to crc32.h */ - { - FILE *out; - - out = fopen("crc32.h", "w"); - if (out == NULL) return; - fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); - fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); - fprintf(out, "local const unsigned long FAR "); - fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); - write_table(out, crc_table[0]); -# ifdef BYFOUR - fprintf(out, "#ifdef BYFOUR\n"); - for (k = 1; k < 8; k++) { - fprintf(out, " },\n {\n"); - write_table(out, crc_table[k]); - } - fprintf(out, "#endif\n"); -# endif /* BYFOUR */ - fprintf(out, " }\n};\n"); - fclose(out); - } -#endif /* MAKECRCH */ -} - -#ifdef MAKECRCH -local void write_table(out, table) - FILE *out; - const unsigned long FAR *table; -{ - int n; - - for (n = 0; n < 256; n++) - fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", table[n], - n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); -} -#endif /* MAKECRCH */ - -#else /* !DYNAMIC_CRC_TABLE */ -/* ======================================================================== - * Tables of CRC-32s of all single-byte values, made by make_crc_table(). - */ -#include "crc32.h" -#endif /* DYNAMIC_CRC_TABLE */ - -/* ========================================================================= - * This function can be used by asm versions of crc32() - */ -const unsigned long FAR * ZEXPORT get_crc_table() -{ -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); -#endif /* DYNAMIC_CRC_TABLE */ - return (const unsigned long FAR *)crc_table; -} - -/* ========================================================================= */ -#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) -#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 - -/* ========================================================================= */ -unsigned long ZEXPORT crc32(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - unsigned len; -{ - if (buf == Z_NULL) return 0UL; - -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); -#endif /* DYNAMIC_CRC_TABLE */ - -#ifdef BYFOUR - if (sizeof(void *) == sizeof(ptrdiff_t)) { - u4 endian; - - endian = 1; - if (*((unsigned char *)(&endian))) - return crc32_little(crc, buf, len); - else - return crc32_big(crc, buf, len); - } -#endif /* BYFOUR */ - crc = crc ^ 0xffffffffUL; - while (len >= 8) { - DO8; - len -= 8; - } - if (len) do { - DO1; - } while (--len); - return crc ^ 0xffffffffUL; -} - -#ifdef BYFOUR - -/* ========================================================================= */ -#define DOLIT4 c ^= *buf4++; \ - c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \ - crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24] -#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4 - -/* ========================================================================= */ -local unsigned long crc32_little(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - unsigned len; -{ - register u4 c; - register const u4 FAR *buf4; - - c = (u4)crc; - c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { - c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); - len--; - } - - buf4 = (const u4 FAR *)(const void FAR *)buf; - while (len >= 32) { - DOLIT32; - len -= 32; - } - while (len >= 4) { - DOLIT4; - len -= 4; - } - buf = (const unsigned char FAR *)buf4; - - if (len) do { - c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); - } while (--len); - c = ~c; - return (unsigned long)c; -} - -/* ========================================================================= */ -#define DOBIG4 c ^= *++buf4; \ - c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ - crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] -#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 - -/* ========================================================================= */ -local unsigned long crc32_big(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - unsigned len; -{ - register u4 c; - register const u4 FAR *buf4; - - c = REV((u4)crc); - c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { - c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); - len--; - } - - buf4 = (const u4 FAR *)(const void FAR *)buf; - buf4--; - while (len >= 32) { - DOBIG32; - len -= 32; - } - while (len >= 4) { - DOBIG4; - len -= 4; - } - buf4++; - buf = (const unsigned char FAR *)buf4; - - if (len) do { - c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); - } while (--len); - c = ~c; - return (unsigned long)(REV(c)); -} - -#endif /* BYFOUR */ - -#define GF2_DIM 32 /* dimension of GF(2) vectors (length of CRC) */ - -/* ========================================================================= */ -local unsigned long gf2_matrix_times(mat, vec) - unsigned long *mat; - unsigned long vec; -{ - unsigned long sum; - - sum = 0; - while (vec) { - if (vec & 1) - sum ^= *mat; - vec >>= 1; - mat++; - } - return sum; -} - -/* ========================================================================= */ -local void gf2_matrix_square(square, mat) - unsigned long *square; - unsigned long *mat; -{ - int n; - - for (n = 0; n < GF2_DIM; n++) - square[n] = gf2_matrix_times(mat, mat[n]); -} - -/* ========================================================================= */ -uLong ZEXPORT crc32_combine(crc1, crc2, len2) - uLong crc1; - uLong crc2; - z_off_t len2; -{ - int n; - unsigned long row; - unsigned long even[GF2_DIM]; /* even-power-of-two zeros operator */ - unsigned long odd[GF2_DIM]; /* odd-power-of-two zeros operator */ - - /* degenerate case */ - if (len2 == 0) - return crc1; - - /* put operator for one zero bit in odd */ - odd[0] = 0xedb88320L; /* CRC-32 polynomial */ - row = 1; - for (n = 1; n < GF2_DIM; n++) { - odd[n] = row; - row <<= 1; - } - - /* put operator for two zero bits in even */ - gf2_matrix_square(even, odd); - - /* put operator for four zero bits in odd */ - gf2_matrix_square(odd, even); - - /* apply len2 zeros to crc1 (first square will put the operator for one - zero byte, eight zero bits, in even) */ - do { - /* apply zeros operator for this bit of len2 */ - gf2_matrix_square(even, odd); - if (len2 & 1) - crc1 = gf2_matrix_times(even, crc1); - len2 >>= 1; - - /* if no more bits set, then done */ - if (len2 == 0) - break; - - /* another iteration of the loop with odd and even swapped */ - gf2_matrix_square(odd, even); - if (len2 & 1) - crc1 = gf2_matrix_times(odd, crc1); - len2 >>= 1; - - /* if no more bits set, then done */ - } while (len2 != 0); - - /* return combined crc */ - crc1 ^= crc2; - return crc1; -} diff --git a/snesreader/zlib/crc32.h b/snesreader/zlib/crc32.h deleted file mode 100644 index 8053b611..00000000 --- a/snesreader/zlib/crc32.h +++ /dev/null @@ -1,441 +0,0 @@ -/* crc32.h -- tables for rapid CRC calculation - * Generated automatically by crc32.c - */ - -local const unsigned long FAR crc_table[TBLS][256] = -{ - { - 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, - 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL, - 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL, - 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL, - 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL, - 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL, - 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL, - 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL, - 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL, - 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL, - 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL, - 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL, - 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL, - 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL, - 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL, - 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL, - 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL, - 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL, - 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL, - 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL, - 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL, - 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL, - 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL, - 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL, - 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL, - 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL, - 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL, - 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL, - 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL, - 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL, - 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL, - 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL, - 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL, - 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL, - 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL, - 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL, - 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL, - 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL, - 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL, - 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL, - 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL, - 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL, - 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL, - 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL, - 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL, - 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL, - 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL, - 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL, - 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL, - 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL, - 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL, - 0x2d02ef8dUL -#ifdef BYFOUR - }, - { - 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL, - 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL, - 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL, - 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL, - 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL, - 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL, - 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL, - 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL, - 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL, - 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL, - 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL, - 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL, - 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL, - 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL, - 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL, - 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL, - 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL, - 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL, - 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL, - 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL, - 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL, - 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL, - 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL, - 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL, - 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL, - 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL, - 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL, - 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL, - 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL, - 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL, - 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL, - 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL, - 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL, - 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL, - 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL, - 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL, - 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL, - 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL, - 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL, - 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL, - 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL, - 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL, - 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL, - 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL, - 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL, - 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL, - 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL, - 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL, - 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL, - 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL, - 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL, - 0x9324fd72UL - }, - { - 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL, - 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL, - 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL, - 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL, - 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL, - 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL, - 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL, - 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL, - 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL, - 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL, - 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL, - 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL, - 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL, - 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL, - 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL, - 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL, - 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL, - 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL, - 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL, - 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL, - 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL, - 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL, - 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL, - 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL, - 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL, - 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL, - 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL, - 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL, - 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL, - 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL, - 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL, - 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL, - 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL, - 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL, - 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL, - 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL, - 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL, - 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL, - 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL, - 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL, - 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL, - 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL, - 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL, - 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL, - 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL, - 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL, - 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL, - 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL, - 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL, - 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL, - 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL, - 0xbe9834edUL - }, - { - 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL, - 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL, - 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL, - 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL, - 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL, - 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL, - 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL, - 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL, - 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL, - 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL, - 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL, - 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL, - 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL, - 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL, - 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL, - 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL, - 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL, - 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL, - 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL, - 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL, - 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL, - 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL, - 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL, - 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL, - 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL, - 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL, - 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL, - 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL, - 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL, - 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL, - 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL, - 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL, - 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL, - 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL, - 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL, - 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL, - 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL, - 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL, - 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL, - 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL, - 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL, - 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL, - 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL, - 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL, - 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL, - 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL, - 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL, - 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL, - 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL, - 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL, - 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL, - 0xde0506f1UL - }, - { - 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL, - 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL, - 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL, - 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL, - 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL, - 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL, - 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL, - 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL, - 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL, - 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL, - 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL, - 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL, - 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL, - 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL, - 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL, - 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL, - 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL, - 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL, - 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL, - 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL, - 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL, - 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL, - 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL, - 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL, - 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL, - 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL, - 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL, - 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL, - 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL, - 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL, - 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL, - 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL, - 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL, - 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL, - 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL, - 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL, - 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL, - 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL, - 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL, - 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL, - 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL, - 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL, - 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL, - 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL, - 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL, - 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL, - 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL, - 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL, - 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL, - 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL, - 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL, - 0x8def022dUL - }, - { - 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL, - 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL, - 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL, - 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL, - 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL, - 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL, - 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL, - 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL, - 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL, - 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL, - 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL, - 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL, - 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL, - 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL, - 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL, - 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL, - 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL, - 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL, - 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL, - 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL, - 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL, - 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL, - 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL, - 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL, - 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL, - 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL, - 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL, - 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL, - 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL, - 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL, - 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL, - 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL, - 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL, - 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL, - 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL, - 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL, - 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL, - 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL, - 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL, - 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL, - 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL, - 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL, - 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL, - 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL, - 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL, - 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL, - 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL, - 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL, - 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL, - 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL, - 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL, - 0x72fd2493UL - }, - { - 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL, - 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL, - 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL, - 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL, - 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL, - 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL, - 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL, - 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL, - 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL, - 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL, - 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL, - 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL, - 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL, - 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL, - 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL, - 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL, - 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL, - 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL, - 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL, - 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL, - 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL, - 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL, - 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL, - 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL, - 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL, - 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL, - 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL, - 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL, - 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL, - 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL, - 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL, - 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL, - 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL, - 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL, - 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL, - 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL, - 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL, - 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL, - 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL, - 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL, - 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL, - 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL, - 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL, - 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL, - 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL, - 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL, - 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL, - 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL, - 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL, - 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL, - 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL, - 0xed3498beUL - }, - { - 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL, - 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL, - 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL, - 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL, - 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL, - 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL, - 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL, - 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL, - 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL, - 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL, - 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL, - 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL, - 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL, - 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL, - 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL, - 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL, - 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL, - 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL, - 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL, - 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL, - 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL, - 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL, - 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL, - 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL, - 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL, - 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL, - 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL, - 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL, - 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL, - 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL, - 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL, - 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL, - 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL, - 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL, - 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL, - 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL, - 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL, - 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL, - 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL, - 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL, - 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL, - 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL, - 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL, - 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL, - 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL, - 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL, - 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL, - 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL, - 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL, - 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL, - 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL, - 0xf10605deUL -#endif - } -}; diff --git a/snesreader/zlib/inffast.c b/snesreader/zlib/inffast.c deleted file mode 100644 index 7a148eb7..00000000 --- a/snesreader/zlib/inffast.c +++ /dev/null @@ -1,318 +0,0 @@ -/* inffast.c -- fast decoding - * Copyright (C) 1995-2004 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -#ifndef ASMINF - -/* Allow machine dependent optimization for post-increment or pre-increment. - Based on testing to date, - Pre-increment preferred for: - - PowerPC G3 (Adler) - - MIPS R5000 (Randers-Pehrson) - Post-increment preferred for: - - none - No measurable difference: - - Pentium III (Anderson) - - M68060 (Nikl) - */ -#ifdef POSTINC -# define OFF 0 -# define PUP(a) *(a)++ -#else -# define OFF 1 -# define PUP(a) *++(a) -#endif - -/* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state->mode == LEN - strm->avail_in >= 6 - strm->avail_out >= 258 - start >= strm->avail_out - state->bits < 8 - - On return, state->mode is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if strm->avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires strm->avail_out >= 258 for each loop to avoid checking for - output space. - */ -void inflate_fast(strm, start) -z_streamp strm; -unsigned start; /* inflate()'s starting value for strm->avail_out */ -{ - struct inflate_state FAR *state; - unsigned char FAR *in; /* local strm->next_in */ - unsigned char FAR *last; /* while in < last, enough input available */ - unsigned char FAR *out; /* local strm->next_out */ - unsigned char FAR *beg; /* inflate()'s initial strm->next_out */ - unsigned char FAR *end; /* while out < end, enough space available */ -#ifdef INFLATE_STRICT - unsigned dmax; /* maximum distance from zlib header */ -#endif - unsigned wsize; /* window size or zero if not using window */ - unsigned whave; /* valid bytes in the window */ - unsigned write; /* window write index */ - unsigned char FAR *window; /* allocated sliding window, if wsize != 0 */ - unsigned long hold; /* local strm->hold */ - unsigned bits; /* local strm->bits */ - code const FAR *lcode; /* local strm->lencode */ - code const FAR *dcode; /* local strm->distcode */ - unsigned lmask; /* mask for first level of length codes */ - unsigned dmask; /* mask for first level of distance codes */ - code this; /* retrieved table entry */ - unsigned op; /* code bits, operation, extra bits, or */ - /* window position, window bytes to copy */ - unsigned len; /* match length, unused bytes */ - unsigned dist; /* match distance */ - unsigned char FAR *from; /* where to copy match from */ - - /* copy state to local variables */ - state = (struct inflate_state FAR *)strm->state; - in = strm->next_in - OFF; - last = in + (strm->avail_in - 5); - out = strm->next_out - OFF; - beg = out - (start - strm->avail_out); - end = out + (strm->avail_out - 257); -#ifdef INFLATE_STRICT - dmax = state->dmax; -#endif - wsize = state->wsize; - whave = state->whave; - write = state->write; - window = state->window; - hold = state->hold; - bits = state->bits; - lcode = state->lencode; - dcode = state->distcode; - lmask = (1U << state->lenbits) - 1; - dmask = (1U << state->distbits) - 1; - - /* decode literals and length/distances until end-of-block or not enough - input data or output space */ - do { - if (bits < 15) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - this = lcode[hold & lmask]; - dolen: - op = (unsigned)(this.bits); - hold >>= op; - bits -= op; - op = (unsigned)(this.op); - if (op == 0) { /* literal */ - Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", this.val)); - PUP(out) = (unsigned char)(this.val); - } - else if (op & 16) { /* length base */ - len = (unsigned)(this.val); - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - len += (unsigned)hold & ((1U << op) - 1); - hold >>= op; - bits -= op; - } - Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - this = dcode[hold & dmask]; - dodist: - op = (unsigned)(this.bits); - hold >>= op; - bits -= op; - op = (unsigned)(this.op); - if (op & 16) { /* distance base */ - dist = (unsigned)(this.val); - op &= 15; /* number of extra bits */ - if (bits < op) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - if (bits < op) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - } - dist += (unsigned)hold & ((1U << op) - 1); -#ifdef INFLATE_STRICT - if (dist > dmax) { - strm->msg = "invalid distance too far back"; - state->mode = BAD; - break; - } -#endif - hold >>= op; - bits -= op; - Tracevv((stderr, "inflate: distance %u\n", dist)); - op = (unsigned)(out - beg); /* max distance in output */ - if (dist > op) { /* see if copy from window */ - op = dist - op; /* distance back in window */ - if (op > whave) { - strm->msg = "invalid distance too far back"; - state->mode = BAD; - break; - } - from = window - OFF; - if (write == 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = out - dist; /* rest from output */ - } - } - else if (write < op) { /* wrap around window */ - from += wsize + write - op; - op -= write; - if (op < len) { /* some from end of window */ - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = window - OFF; - if (write < len) { /* some from start of window */ - op = write; - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = out - dist; /* rest from output */ - } - } - } - else { /* contiguous in window */ - from += write - op; - if (op < len) { /* some from window */ - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = out - dist; /* rest from output */ - } - } - while (len > 2) { - PUP(out) = PUP(from); - PUP(out) = PUP(from); - PUP(out) = PUP(from); - len -= 3; - } - if (len) { - PUP(out) = PUP(from); - if (len > 1) - PUP(out) = PUP(from); - } - } - else { - from = out - dist; /* copy direct from output */ - do { /* minimum length is three */ - PUP(out) = PUP(from); - PUP(out) = PUP(from); - PUP(out) = PUP(from); - len -= 3; - } while (len > 2); - if (len) { - PUP(out) = PUP(from); - if (len > 1) - PUP(out) = PUP(from); - } - } - } - else if ((op & 64) == 0) { /* 2nd level distance code */ - this = dcode[this.val + (hold & ((1U << op) - 1))]; - goto dodist; - } - else { - strm->msg = "invalid distance code"; - state->mode = BAD; - break; - } - } - else if ((op & 64) == 0) { /* 2nd level length code */ - this = lcode[this.val + (hold & ((1U << op) - 1))]; - goto dolen; - } - else if (op & 32) { /* end-of-block */ - Tracevv((stderr, "inflate: end of block\n")); - state->mode = TYPE; - break; - } - else { - strm->msg = "invalid literal/length code"; - state->mode = BAD; - break; - } - } while (in < last && out < end); - - /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ - len = bits >> 3; - in -= len; - bits -= len << 3; - hold &= (1U << bits) - 1; - - /* update state and return */ - strm->next_in = in + OFF; - strm->next_out = out + OFF; - strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); - strm->avail_out = (unsigned)(out < end ? - 257 + (end - out) : 257 - (out - end)); - state->hold = hold; - state->bits = bits; - return; -} - -/* - inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe): - - Using bit fields for code structure - - Different op definition to avoid & for extra bits (do & for table bits) - - Three separate decoding do-loops for direct, window, and write == 0 - - Special case for distance > 1 copies to do overlapped load and store copy - - Explicit branch predictions (based on measured branch probabilities) - - Deferring match copy and interspersed it with decoding subsequent codes - - Swapping literal/length else - - Swapping window/direct else - - Larger unrolled copy loops (three is about right) - - Moving len -= 3 statement into middle of loop - */ - -#endif /* !ASMINF */ diff --git a/snesreader/zlib/inffast.h b/snesreader/zlib/inffast.h deleted file mode 100644 index 1e88d2d9..00000000 --- a/snesreader/zlib/inffast.h +++ /dev/null @@ -1,11 +0,0 @@ -/* inffast.h -- header to use inffast.c - * Copyright (C) 1995-2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -void inflate_fast OF((z_streamp strm, unsigned start)); diff --git a/snesreader/zlib/inffixed.h b/snesreader/zlib/inffixed.h deleted file mode 100644 index 75ed4b59..00000000 --- a/snesreader/zlib/inffixed.h +++ /dev/null @@ -1,94 +0,0 @@ - /* inffixed.h -- table for decoding fixed codes - * Generated automatically by makefixed(). - */ - - /* WARNING: this file should *not* be used by applications. It - is part of the implementation of the compression library and - is subject to change. Applications should only use zlib.h. - */ - - static const code lenfix[512] = { - {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48}, - {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128}, - {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59}, - {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176}, - {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20}, - {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100}, - {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8}, - {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216}, - {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76}, - {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114}, - {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2}, - {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148}, - {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42}, - {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86}, - {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15}, - {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236}, - {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62}, - {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142}, - {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31}, - {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162}, - {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25}, - {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105}, - {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4}, - {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202}, - {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69}, - {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125}, - {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13}, - {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195}, - {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35}, - {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91}, - {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19}, - {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246}, - {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55}, - {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135}, - {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99}, - {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190}, - {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16}, - {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96}, - {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6}, - {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209}, - {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72}, - {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116}, - {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4}, - {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153}, - {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44}, - {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82}, - {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11}, - {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229}, - {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58}, - {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138}, - {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51}, - {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173}, - {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30}, - {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110}, - {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0}, - {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195}, - {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65}, - {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121}, - {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9}, - {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258}, - {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37}, - {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93}, - {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23}, - {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251}, - {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51}, - {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131}, - {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67}, - {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183}, - {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23}, - {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103}, - {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9}, - {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223}, - {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79}, - {0,9,255} - }; - - static const code distfix[32] = { - {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025}, - {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193}, - {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385}, - {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577}, - {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073}, - {22,5,193},{64,5,0} - }; diff --git a/snesreader/zlib/inflate.c b/snesreader/zlib/inflate.c deleted file mode 100644 index 37744b3e..00000000 --- a/snesreader/zlib/inflate.c +++ /dev/null @@ -1,1368 +0,0 @@ -/* inflate.c -- zlib decompression - * Copyright (C) 1995-2005 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - * Change history: - * - * 1.2.beta0 24 Nov 2002 - * - First version -- complete rewrite of inflate to simplify code, avoid - * creation of window when not needed, minimize use of window when it is - * needed, make inffast.c even faster, implement gzip decoding, and to - * improve code readability and style over the previous zlib inflate code - * - * 1.2.beta1 25 Nov 2002 - * - Use pointers for available input and output checking in inffast.c - * - Remove input and output counters in inffast.c - * - Change inffast.c entry and loop from avail_in >= 7 to >= 6 - * - Remove unnecessary second byte pull from length extra in inffast.c - * - Unroll direct copy to three copies per loop in inffast.c - * - * 1.2.beta2 4 Dec 2002 - * - Change external routine names to reduce potential conflicts - * - Correct filename to inffixed.h for fixed tables in inflate.c - * - Make hbuf[] unsigned char to match parameter type in inflate.c - * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset) - * to avoid negation problem on Alphas (64 bit) in inflate.c - * - * 1.2.beta3 22 Dec 2002 - * - Add comments on state->bits assertion in inffast.c - * - Add comments on op field in inftrees.h - * - Fix bug in reuse of allocated window after inflateReset() - * - Remove bit fields--back to byte structure for speed - * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths - * - Change post-increments to pre-increments in inflate_fast(), PPC biased? - * - Add compile time option, POSTINC, to use post-increments instead (Intel?) - * - Make MATCH copy in inflate() much faster for when inflate_fast() not used - * - Use local copies of stream next and avail values, as well as local bit - * buffer and bit count in inflate()--for speed when inflate_fast() not used - * - * 1.2.beta4 1 Jan 2003 - * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings - * - Move a comment on output buffer sizes from inffast.c to inflate.c - * - Add comments in inffast.c to introduce the inflate_fast() routine - * - Rearrange window copies in inflate_fast() for speed and simplification - * - Unroll last copy for window match in inflate_fast() - * - Use local copies of window variables in inflate_fast() for speed - * - Pull out common write == 0 case for speed in inflate_fast() - * - Make op and len in inflate_fast() unsigned for consistency - * - Add FAR to lcode and dcode declarations in inflate_fast() - * - Simplified bad distance check in inflate_fast() - * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new - * source file infback.c to provide a call-back interface to inflate for - * programs like gzip and unzip -- uses window as output buffer to avoid - * window copying - * - * 1.2.beta5 1 Jan 2003 - * - Improved inflateBack() interface to allow the caller to provide initial - * input in strm. - * - Fixed stored blocks bug in inflateBack() - * - * 1.2.beta6 4 Jan 2003 - * - Added comments in inffast.c on effectiveness of POSTINC - * - Typecasting all around to reduce compiler warnings - * - Changed loops from while (1) or do {} while (1) to for (;;), again to - * make compilers happy - * - Changed type of window in inflateBackInit() to unsigned char * - * - * 1.2.beta7 27 Jan 2003 - * - Changed many types to unsigned or unsigned short to avoid warnings - * - Added inflateCopy() function - * - * 1.2.0 9 Mar 2003 - * - Changed inflateBack() interface to provide separate opaque descriptors - * for the in() and out() functions - * - Changed inflateBack() argument and in_func typedef to swap the length - * and buffer address return values for the input function - * - Check next_in and next_out for Z_NULL on entry to inflate() - * - * The history for versions after 1.2.0 are in ChangeLog in zlib distribution. - */ - -#include "zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -#ifdef MAKEFIXED -# ifndef BUILDFIXED -# define BUILDFIXED -# endif -#endif - -/* function prototypes */ -local void fixedtables OF((struct inflate_state FAR *state)); -local int updatewindow OF((z_streamp strm, unsigned out)); -#ifdef BUILDFIXED - void makefixed OF((void)); -#endif -local unsigned syncsearch OF((unsigned FAR *have, unsigned char FAR *buf, - unsigned len)); - -int ZEXPORT inflateReset(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - strm->total_in = strm->total_out = state->total = 0; - strm->msg = Z_NULL; - strm->adler = 1; /* to support ill-conceived Java test suite */ - state->mode = HEAD; - state->last = 0; - state->havedict = 0; - state->dmax = 32768U; - state->head = Z_NULL; - state->wsize = 0; - state->whave = 0; - state->write = 0; - state->hold = 0; - state->bits = 0; - state->lencode = state->distcode = state->next = state->codes; - Tracev((stderr, "inflate: reset\n")); - return Z_OK; -} - -int ZEXPORT inflatePrime(strm, bits, value) -z_streamp strm; -int bits; -int value; -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR; - value &= (1L << bits) - 1; - state->hold += value << state->bits; - state->bits += bits; - return Z_OK; -} - -int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size) -z_streamp strm; -int windowBits; -const char *version; -int stream_size; -{ - struct inflate_state FAR *state; - - if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || - stream_size != (int)(sizeof(z_stream))) - return Z_VERSION_ERROR; - if (strm == Z_NULL) return Z_STREAM_ERROR; - strm->msg = Z_NULL; /* in case we return an error */ - if (strm->zalloc == (alloc_func)0) { - strm->zalloc = zcalloc; - strm->opaque = (voidpf)0; - } - if (strm->zfree == (free_func)0) strm->zfree = zcfree; - state = (struct inflate_state FAR *) - ZALLOC(strm, 1, sizeof(struct inflate_state)); - if (state == Z_NULL) return Z_MEM_ERROR; - Tracev((stderr, "inflate: allocated\n")); - strm->state = (struct internal_state FAR *)state; - if (windowBits < 0) { - state->wrap = 0; - windowBits = -windowBits; - } - else { - state->wrap = (windowBits >> 4) + 1; -#ifdef GUNZIP - if (windowBits < 48) windowBits &= 15; -#endif - } - if (windowBits < 8 || windowBits > 15) { - ZFREE(strm, state); - strm->state = Z_NULL; - return Z_STREAM_ERROR; - } - state->wbits = (unsigned)windowBits; - state->window = Z_NULL; - return inflateReset(strm); -} - -int ZEXPORT inflateInit_(strm, version, stream_size) -z_streamp strm; -const char *version; -int stream_size; -{ - return inflateInit2_(strm, DEF_WBITS, version, stream_size); -} - -/* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ -local void fixedtables(state) -struct inflate_state FAR *state; -{ -#ifdef BUILDFIXED - static int virgin = 1; - static code *lenfix, *distfix; - static code fixed[544]; - - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - unsigned sym, bits; - static code *next; - - /* literal/length table */ - sym = 0; - while (sym < 144) state->lens[sym++] = 8; - while (sym < 256) state->lens[sym++] = 9; - while (sym < 280) state->lens[sym++] = 7; - while (sym < 288) state->lens[sym++] = 8; - next = fixed; - lenfix = next; - bits = 9; - inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); - - /* distance table */ - sym = 0; - while (sym < 32) state->lens[sym++] = 5; - distfix = next; - bits = 5; - inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); - - /* do this just once */ - virgin = 0; - } -#else /* !BUILDFIXED */ -# include "inffixed.h" -#endif /* BUILDFIXED */ - state->lencode = lenfix; - state->lenbits = 9; - state->distcode = distfix; - state->distbits = 5; -} - -#ifdef MAKEFIXED -#include - -/* - Write out the inffixed.h that is #include'd above. Defining MAKEFIXED also - defines BUILDFIXED, so the tables are built on the fly. makefixed() writes - those tables to stdout, which would be piped to inffixed.h. A small program - can simply call makefixed to do this: - - void makefixed(void); - - int main(void) - { - makefixed(); - return 0; - } - - Then that can be linked with zlib built with MAKEFIXED defined and run: - - a.out > inffixed.h - */ -void makefixed() -{ - unsigned low, size; - struct inflate_state state; - - fixedtables(&state); - puts(" /* inffixed.h -- table for decoding fixed codes"); - puts(" * Generated automatically by makefixed()."); - puts(" */"); - puts(""); - puts(" /* WARNING: this file should *not* be used by applications."); - puts(" It is part of the implementation of this library and is"); - puts(" subject to change. Applications should only use zlib.h."); - puts(" */"); - puts(""); - size = 1U << 9; - printf(" static const code lenfix[%u] = {", size); - low = 0; - for (;;) { - if ((low % 7) == 0) printf("\n "); - printf("{%u,%u,%d}", state.lencode[low].op, state.lencode[low].bits, - state.lencode[low].val); - if (++low == size) break; - putchar(','); - } - puts("\n };"); - size = 1U << 5; - printf("\n static const code distfix[%u] = {", size); - low = 0; - for (;;) { - if ((low % 6) == 0) printf("\n "); - printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits, - state.distcode[low].val); - if (++low == size) break; - putchar(','); - } - puts("\n };"); -} -#endif /* MAKEFIXED */ - -/* - Update the window with the last wsize (normally 32K) bytes written before - returning. If window does not exist yet, create it. This is only called - when a window is already in use, or when output has been written during this - inflate call, but the end of the deflate stream has not been reached yet. - It is also called to create a window for dictionary data when a dictionary - is loaded. - - Providing output buffers larger than 32K to inflate() should provide a speed - advantage, since only the last 32K of output is copied to the sliding window - upon return from inflate(), and since all distances after the first 32K of - output will fall in the output data, making match copies simpler and faster. - The advantage may be dependent on the size of the processor's data caches. - */ -local int updatewindow(strm, out) -z_streamp strm; -unsigned out; -{ - struct inflate_state FAR *state; - unsigned copy, dist; - - state = (struct inflate_state FAR *)strm->state; - - /* if it hasn't been done already, allocate space for the window */ - if (state->window == Z_NULL) { - state->window = (unsigned char FAR *) - ZALLOC(strm, 1U << state->wbits, - sizeof(unsigned char)); - if (state->window == Z_NULL) return 1; - } - - /* if window not in use yet, initialize */ - if (state->wsize == 0) { - state->wsize = 1U << state->wbits; - state->write = 0; - state->whave = 0; - } - - /* copy state->wsize or less output bytes into the circular window */ - copy = out - strm->avail_out; - if (copy >= state->wsize) { - zmemcpy(state->window, strm->next_out - state->wsize, state->wsize); - state->write = 0; - state->whave = state->wsize; - } - else { - dist = state->wsize - state->write; - if (dist > copy) dist = copy; - zmemcpy(state->window + state->write, strm->next_out - copy, dist); - copy -= dist; - if (copy) { - zmemcpy(state->window, strm->next_out - copy, copy); - state->write = copy; - state->whave = state->wsize; - } - else { - state->write += dist; - if (state->write == state->wsize) state->write = 0; - if (state->whave < state->wsize) state->whave += dist; - } - } - return 0; -} - -/* Macros for inflate(): */ - -/* check function to use adler32() for zlib or crc32() for gzip */ -#ifdef GUNZIP -# define UPDATE(check, buf, len) \ - (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) -#else -# define UPDATE(check, buf, len) adler32(check, buf, len) -#endif - -/* check macros for header crc */ -#ifdef GUNZIP -# define CRC2(check, word) \ - do { \ - hbuf[0] = (unsigned char)(word); \ - hbuf[1] = (unsigned char)((word) >> 8); \ - check = crc32(check, hbuf, 2); \ - } while (0) - -# define CRC4(check, word) \ - do { \ - hbuf[0] = (unsigned char)(word); \ - hbuf[1] = (unsigned char)((word) >> 8); \ - hbuf[2] = (unsigned char)((word) >> 16); \ - hbuf[3] = (unsigned char)((word) >> 24); \ - check = crc32(check, hbuf, 4); \ - } while (0) -#endif - -/* Load registers with state in inflate() for speed */ -#define LOAD() \ - do { \ - put = strm->next_out; \ - left = strm->avail_out; \ - next = strm->next_in; \ - have = strm->avail_in; \ - hold = state->hold; \ - bits = state->bits; \ - } while (0) - -/* Restore state from registers in inflate() */ -#define RESTORE() \ - do { \ - strm->next_out = put; \ - strm->avail_out = left; \ - strm->next_in = next; \ - strm->avail_in = have; \ - state->hold = hold; \ - state->bits = bits; \ - } while (0) - -/* Clear the input bit accumulator */ -#define INITBITS() \ - do { \ - hold = 0; \ - bits = 0; \ - } while (0) - -/* Get a byte of input into the bit accumulator, or return from inflate() - if there is no input available. */ -#define PULLBYTE() \ - do { \ - if (have == 0) goto inf_leave; \ - have--; \ - hold += (unsigned long)(*next++) << bits; \ - bits += 8; \ - } while (0) - -/* Assure that there are at least n bits in the bit accumulator. If there is - not enough available input to do that, then return from inflate(). */ -#define NEEDBITS(n) \ - do { \ - while (bits < (unsigned)(n)) \ - PULLBYTE(); \ - } while (0) - -/* Return the low n bits of the bit accumulator (n < 16) */ -#define BITS(n) \ - ((unsigned)hold & ((1U << (n)) - 1)) - -/* Remove n bits from the bit accumulator */ -#define DROPBITS(n) \ - do { \ - hold >>= (n); \ - bits -= (unsigned)(n); \ - } while (0) - -/* Remove zero to seven bits as needed to go to a byte boundary */ -#define BYTEBITS() \ - do { \ - hold >>= bits & 7; \ - bits -= bits & 7; \ - } while (0) - -/* Reverse the bytes in a 32-bit value */ -#define REVERSE(q) \ - ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \ - (((q) & 0xff00) << 8) + (((q) & 0xff) << 24)) - -/* - inflate() uses a state machine to process as much input data and generate as - much output data as possible before returning. The state machine is - structured roughly as follows: - - for (;;) switch (state) { - ... - case STATEn: - if (not enough input data or output space to make progress) - return; - ... make progress ... - state = STATEm; - break; - ... - } - - so when inflate() is called again, the same case is attempted again, and - if the appropriate resources are provided, the machine proceeds to the - next state. The NEEDBITS() macro is usually the way the state evaluates - whether it can proceed or should return. NEEDBITS() does the return if - the requested bits are not available. The typical use of the BITS macros - is: - - NEEDBITS(n); - ... do something with BITS(n) ... - DROPBITS(n); - - where NEEDBITS(n) either returns from inflate() if there isn't enough - input left to load n bits into the accumulator, or it continues. BITS(n) - gives the low n bits in the accumulator. When done, DROPBITS(n) drops - the low n bits off the accumulator. INITBITS() clears the accumulator - and sets the number of available bits to zero. BYTEBITS() discards just - enough bits to put the accumulator on a byte boundary. After BYTEBITS() - and a NEEDBITS(8), then BITS(8) would return the next byte in the stream. - - NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return - if there is no input available. The decoding of variable length codes uses - PULLBYTE() directly in order to pull just enough bytes to decode the next - code, and no more. - - Some states loop until they get enough input, making sure that enough - state information is maintained to continue the loop where it left off - if NEEDBITS() returns in the loop. For example, want, need, and keep - would all have to actually be part of the saved state in case NEEDBITS() - returns: - - case STATEw: - while (want < need) { - NEEDBITS(n); - keep[want++] = BITS(n); - DROPBITS(n); - } - state = STATEx; - case STATEx: - - As shown above, if the next state is also the next case, then the break - is omitted. - - A state may also return if there is not enough output space available to - complete that state. Those states are copying stored data, writing a - literal byte, and copying a matching string. - - When returning, a "goto inf_leave" is used to update the total counters, - update the check value, and determine whether any progress has been made - during that inflate() call in order to return the proper return code. - Progress is defined as a change in either strm->avail_in or strm->avail_out. - When there is a window, goto inf_leave will update the window with the last - output written. If a goto inf_leave occurs in the middle of decompression - and there is no window currently, goto inf_leave will create one and copy - output to the window for the next call of inflate(). - - In this implementation, the flush parameter of inflate() only affects the - return code (per zlib.h). inflate() always writes as much as possible to - strm->next_out, given the space available and the provided input--the effect - documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers - the allocation of and copying into a sliding window until necessary, which - provides the effect documented in zlib.h for Z_FINISH when the entire input - stream available. So the only thing the flush parameter actually does is: - when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it - will return Z_BUF_ERROR if it has not reached the end of the stream. - */ - -int ZEXPORT inflate(strm, flush) -z_streamp strm; -int flush; -{ - struct inflate_state FAR *state; - unsigned char FAR *next; /* next input */ - unsigned char FAR *put; /* next output */ - unsigned have, left; /* available input and output */ - unsigned long hold; /* bit buffer */ - unsigned bits; /* bits in bit buffer */ - unsigned in, out; /* save starting available input and output */ - unsigned copy; /* number of stored or match bytes to copy */ - unsigned char FAR *from; /* where to copy match bytes from */ - code this; /* current decoding table entry */ - code last; /* parent table entry */ - unsigned len; /* length to copy for repeats, bits to drop */ - int ret; /* return code */ -#ifdef GUNZIP - unsigned char hbuf[4]; /* buffer for gzip header crc calculation */ -#endif - static const unsigned short order[19] = /* permutation of code lengths */ - {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; - - if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL || - (strm->next_in == Z_NULL && strm->avail_in != 0)) - return Z_STREAM_ERROR; - - state = (struct inflate_state FAR *)strm->state; - if (state->mode == TYPE) state->mode = TYPEDO; /* skip check */ - LOAD(); - in = have; - out = left; - ret = Z_OK; - for (;;) - switch (state->mode) { - case HEAD: - if (state->wrap == 0) { - state->mode = TYPEDO; - break; - } - NEEDBITS(16); -#ifdef GUNZIP - if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */ - state->check = crc32(0L, Z_NULL, 0); - CRC2(state->check, hold); - INITBITS(); - state->mode = FLAGS; - break; - } - state->flags = 0; /* expect zlib header */ - if (state->head != Z_NULL) - state->head->done = -1; - if (!(state->wrap & 1) || /* check if zlib header allowed */ -#else - if ( -#endif - ((BITS(8) << 8) + (hold >> 8)) % 31) { - strm->msg = "incorrect header check"; - state->mode = BAD; - break; - } - if (BITS(4) != Z_DEFLATED) { - strm->msg = "unknown compression method"; - state->mode = BAD; - break; - } - DROPBITS(4); - len = BITS(4) + 8; - if (len > state->wbits) { - strm->msg = "invalid window size"; - state->mode = BAD; - break; - } - state->dmax = 1U << len; - Tracev((stderr, "inflate: zlib header ok\n")); - strm->adler = state->check = adler32(0L, Z_NULL, 0); - state->mode = hold & 0x200 ? DICTID : TYPE; - INITBITS(); - break; -#ifdef GUNZIP - case FLAGS: - NEEDBITS(16); - state->flags = (int)(hold); - if ((state->flags & 0xff) != Z_DEFLATED) { - strm->msg = "unknown compression method"; - state->mode = BAD; - break; - } - if (state->flags & 0xe000) { - strm->msg = "unknown header flags set"; - state->mode = BAD; - break; - } - if (state->head != Z_NULL) - state->head->text = (int)((hold >> 8) & 1); - if (state->flags & 0x0200) CRC2(state->check, hold); - INITBITS(); - state->mode = TIME; - case TIME: - NEEDBITS(32); - if (state->head != Z_NULL) - state->head->time = hold; - if (state->flags & 0x0200) CRC4(state->check, hold); - INITBITS(); - state->mode = OS; - case OS: - NEEDBITS(16); - if (state->head != Z_NULL) { - state->head->xflags = (int)(hold & 0xff); - state->head->os = (int)(hold >> 8); - } - if (state->flags & 0x0200) CRC2(state->check, hold); - INITBITS(); - state->mode = EXLEN; - case EXLEN: - if (state->flags & 0x0400) { - NEEDBITS(16); - state->length = (unsigned)(hold); - if (state->head != Z_NULL) - state->head->extra_len = (unsigned)hold; - if (state->flags & 0x0200) CRC2(state->check, hold); - INITBITS(); - } - else if (state->head != Z_NULL) - state->head->extra = Z_NULL; - state->mode = EXTRA; - case EXTRA: - if (state->flags & 0x0400) { - copy = state->length; - if (copy > have) copy = have; - if (copy) { - if (state->head != Z_NULL && - state->head->extra != Z_NULL) { - len = state->head->extra_len - state->length; - zmemcpy(state->head->extra + len, next, - len + copy > state->head->extra_max ? - state->head->extra_max - len : copy); - } - if (state->flags & 0x0200) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - state->length -= copy; - } - if (state->length) goto inf_leave; - } - state->length = 0; - state->mode = NAME; - case NAME: - if (state->flags & 0x0800) { - if (have == 0) goto inf_leave; - copy = 0; - do { - len = (unsigned)(next[copy++]); - if (state->head != Z_NULL && - state->head->name != Z_NULL && - state->length < state->head->name_max) - state->head->name[state->length++] = len; - } while (len && copy < have); - if (state->flags & 0x0200) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - if (len) goto inf_leave; - } - else if (state->head != Z_NULL) - state->head->name = Z_NULL; - state->length = 0; - state->mode = COMMENT; - case COMMENT: - if (state->flags & 0x1000) { - if (have == 0) goto inf_leave; - copy = 0; - do { - len = (unsigned)(next[copy++]); - if (state->head != Z_NULL && - state->head->comment != Z_NULL && - state->length < state->head->comm_max) - state->head->comment[state->length++] = len; - } while (len && copy < have); - if (state->flags & 0x0200) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - if (len) goto inf_leave; - } - else if (state->head != Z_NULL) - state->head->comment = Z_NULL; - state->mode = HCRC; - case HCRC: - if (state->flags & 0x0200) { - NEEDBITS(16); - if (hold != (state->check & 0xffff)) { - strm->msg = "header crc mismatch"; - state->mode = BAD; - break; - } - INITBITS(); - } - if (state->head != Z_NULL) { - state->head->hcrc = (int)((state->flags >> 9) & 1); - state->head->done = 1; - } - strm->adler = state->check = crc32(0L, Z_NULL, 0); - state->mode = TYPE; - break; -#endif - case DICTID: - NEEDBITS(32); - strm->adler = state->check = REVERSE(hold); - INITBITS(); - state->mode = DICT; - case DICT: - if (state->havedict == 0) { - RESTORE(); - return Z_NEED_DICT; - } - strm->adler = state->check = adler32(0L, Z_NULL, 0); - state->mode = TYPE; - case TYPE: - if (flush == Z_BLOCK) goto inf_leave; - case TYPEDO: - if (state->last) { - BYTEBITS(); - state->mode = CHECK; - break; - } - NEEDBITS(3); - state->last = BITS(1); - DROPBITS(1); - switch (BITS(2)) { - case 0: /* stored block */ - Tracev((stderr, "inflate: stored block%s\n", - state->last ? " (last)" : "")); - state->mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - Tracev((stderr, "inflate: fixed codes block%s\n", - state->last ? " (last)" : "")); - state->mode = LEN; /* decode codes */ - break; - case 2: /* dynamic block */ - Tracev((stderr, "inflate: dynamic codes block%s\n", - state->last ? " (last)" : "")); - state->mode = TABLE; - break; - case 3: - strm->msg = "invalid block type"; - state->mode = BAD; - } - DROPBITS(2); - break; - case STORED: - BYTEBITS(); /* go to byte boundary */ - NEEDBITS(32); - if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { - strm->msg = "invalid stored block lengths"; - state->mode = BAD; - break; - } - state->length = (unsigned)hold & 0xffff; - Tracev((stderr, "inflate: stored length %u\n", - state->length)); - INITBITS(); - state->mode = COPY; - case COPY: - copy = state->length; - if (copy) { - if (copy > have) copy = have; - if (copy > left) copy = left; - if (copy == 0) goto inf_leave; - zmemcpy(put, next, copy); - have -= copy; - next += copy; - left -= copy; - put += copy; - state->length -= copy; - break; - } - Tracev((stderr, "inflate: stored end\n")); - state->mode = TYPE; - break; - case TABLE: - NEEDBITS(14); - state->nlen = BITS(5) + 257; - DROPBITS(5); - state->ndist = BITS(5) + 1; - DROPBITS(5); - state->ncode = BITS(4) + 4; - DROPBITS(4); -#ifndef PKZIP_BUG_WORKAROUND - if (state->nlen > 286 || state->ndist > 30) { - strm->msg = "too many length or distance symbols"; - state->mode = BAD; - break; - } -#endif - Tracev((stderr, "inflate: table sizes ok\n")); - state->have = 0; - state->mode = LENLENS; - case LENLENS: - while (state->have < state->ncode) { - NEEDBITS(3); - state->lens[order[state->have++]] = (unsigned short)BITS(3); - DROPBITS(3); - } - while (state->have < 19) - state->lens[order[state->have++]] = 0; - state->next = state->codes; - state->lencode = (code const FAR *)(state->next); - state->lenbits = 7; - ret = inflate_table(CODES, state->lens, 19, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = "invalid code lengths set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: code lengths ok\n")); - state->have = 0; - state->mode = CODELENS; - case CODELENS: - while (state->have < state->nlen + state->ndist) { - for (;;) { - this = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(this.bits) <= bits) break; - PULLBYTE(); - } - if (this.val < 16) { - NEEDBITS(this.bits); - DROPBITS(this.bits); - state->lens[state->have++] = this.val; - } - else { - if (this.val == 16) { - NEEDBITS(this.bits + 2); - DROPBITS(this.bits); - if (state->have == 0) { - strm->msg = "invalid bit length repeat"; - state->mode = BAD; - break; - } - len = state->lens[state->have - 1]; - copy = 3 + BITS(2); - DROPBITS(2); - } - else if (this.val == 17) { - NEEDBITS(this.bits + 3); - DROPBITS(this.bits); - len = 0; - copy = 3 + BITS(3); - DROPBITS(3); - } - else { - NEEDBITS(this.bits + 7); - DROPBITS(this.bits); - len = 0; - copy = 11 + BITS(7); - DROPBITS(7); - } - if (state->have + copy > state->nlen + state->ndist) { - strm->msg = "invalid bit length repeat"; - state->mode = BAD; - break; - } - while (copy--) - state->lens[state->have++] = (unsigned short)len; - } - } - - /* handle error breaks in while */ - if (state->mode == BAD) break; - - /* build code tables */ - state->next = state->codes; - state->lencode = (code const FAR *)(state->next); - state->lenbits = 9; - ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = "invalid literal/lengths set"; - state->mode = BAD; - break; - } - state->distcode = (code const FAR *)(state->next); - state->distbits = 6; - ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, - &(state->next), &(state->distbits), state->work); - if (ret) { - strm->msg = "invalid distances set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: codes ok\n")); - state->mode = LEN; - case LEN: - if (have >= 6 && left >= 258) { - RESTORE(); - inflate_fast(strm, out); - LOAD(); - break; - } - for (;;) { - this = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(this.bits) <= bits) break; - PULLBYTE(); - } - if (this.op && (this.op & 0xf0) == 0) { - last = this; - for (;;) { - this = state->lencode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + this.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - } - DROPBITS(this.bits); - state->length = (unsigned)this.val; - if ((int)(this.op) == 0) { - Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", this.val)); - state->mode = LIT; - break; - } - if (this.op & 32) { - Tracevv((stderr, "inflate: end of block\n")); - state->mode = TYPE; - break; - } - if (this.op & 64) { - strm->msg = "invalid literal/length code"; - state->mode = BAD; - break; - } - state->extra = (unsigned)(this.op) & 15; - state->mode = LENEXT; - case LENEXT: - if (state->extra) { - NEEDBITS(state->extra); - state->length += BITS(state->extra); - DROPBITS(state->extra); - } - Tracevv((stderr, "inflate: length %u\n", state->length)); - state->mode = DIST; - case DIST: - for (;;) { - this = state->distcode[BITS(state->distbits)]; - if ((unsigned)(this.bits) <= bits) break; - PULLBYTE(); - } - if ((this.op & 0xf0) == 0) { - last = this; - for (;;) { - this = state->distcode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + this.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - } - DROPBITS(this.bits); - if (this.op & 64) { - strm->msg = "invalid distance code"; - state->mode = BAD; - break; - } - state->offset = (unsigned)this.val; - state->extra = (unsigned)(this.op) & 15; - state->mode = DISTEXT; - case DISTEXT: - if (state->extra) { - NEEDBITS(state->extra); - state->offset += BITS(state->extra); - DROPBITS(state->extra); - } -#ifdef INFLATE_STRICT - if (state->offset > state->dmax) { - strm->msg = "invalid distance too far back"; - state->mode = BAD; - break; - } -#endif - if (state->offset > state->whave + out - left) { - strm->msg = "invalid distance too far back"; - state->mode = BAD; - break; - } - Tracevv((stderr, "inflate: distance %u\n", state->offset)); - state->mode = MATCH; - case MATCH: - if (left == 0) goto inf_leave; - copy = out - left; - if (state->offset > copy) { /* copy from window */ - copy = state->offset - copy; - if (copy > state->write) { - copy -= state->write; - from = state->window + (state->wsize - copy); - } - else - from = state->window + (state->write - copy); - if (copy > state->length) copy = state->length; - } - else { /* copy from output */ - from = put - state->offset; - copy = state->length; - } - if (copy > left) copy = left; - left -= copy; - state->length -= copy; - do { - *put++ = *from++; - } while (--copy); - if (state->length == 0) state->mode = LEN; - break; - case LIT: - if (left == 0) goto inf_leave; - *put++ = (unsigned char)(state->length); - left--; - state->mode = LEN; - break; - case CHECK: - if (state->wrap) { - NEEDBITS(32); - out -= left; - strm->total_out += out; - state->total += out; - if (out) - strm->adler = state->check = - UPDATE(state->check, put - out, out); - out = left; - if (( -#ifdef GUNZIP - state->flags ? hold : -#endif - REVERSE(hold)) != state->check) { - strm->msg = "incorrect data check"; - state->mode = BAD; - break; - } - INITBITS(); - Tracev((stderr, "inflate: check matches trailer\n")); - } -#ifdef GUNZIP - state->mode = LENGTH; - case LENGTH: - if (state->wrap && state->flags) { - NEEDBITS(32); - if (hold != (state->total & 0xffffffffUL)) { - strm->msg = "incorrect length check"; - state->mode = BAD; - break; - } - INITBITS(); - Tracev((stderr, "inflate: length matches trailer\n")); - } -#endif - state->mode = DONE; - case DONE: - ret = Z_STREAM_END; - goto inf_leave; - case BAD: - ret = Z_DATA_ERROR; - goto inf_leave; - case MEM: - return Z_MEM_ERROR; - case SYNC: - default: - return Z_STREAM_ERROR; - } - - /* - Return from inflate(), updating the total counts and the check value. - If there was no progress during the inflate() call, return a buffer - error. Call updatewindow() to create and/or update the window state. - Note: a memory error from inflate() is non-recoverable. - */ - inf_leave: - RESTORE(); - if (state->wsize || (state->mode < CHECK && out != strm->avail_out)) - if (updatewindow(strm, out)) { - state->mode = MEM; - return Z_MEM_ERROR; - } - in -= strm->avail_in; - out -= strm->avail_out; - strm->total_in += in; - strm->total_out += out; - state->total += out; - if (state->wrap && out) - strm->adler = state->check = - UPDATE(state->check, strm->next_out - out, out); - strm->data_type = state->bits + (state->last ? 64 : 0) + - (state->mode == TYPE ? 128 : 0); - if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK) - ret = Z_BUF_ERROR; - return ret; -} - -int ZEXPORT inflateEnd(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (state->window != Z_NULL) ZFREE(strm, state->window); - ZFREE(strm, strm->state); - strm->state = Z_NULL; - Tracev((stderr, "inflate: end\n")); - return Z_OK; -} - -int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength) -z_streamp strm; -const Bytef *dictionary; -uInt dictLength; -{ - struct inflate_state FAR *state; - unsigned long id; - - /* check state */ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (state->wrap != 0 && state->mode != DICT) - return Z_STREAM_ERROR; - - /* check for correct dictionary id */ - if (state->mode == DICT) { - id = adler32(0L, Z_NULL, 0); - id = adler32(id, dictionary, dictLength); - if (id != state->check) - return Z_DATA_ERROR; - } - - /* copy dictionary to window */ - if (updatewindow(strm, strm->avail_out)) { - state->mode = MEM; - return Z_MEM_ERROR; - } - if (dictLength > state->wsize) { - zmemcpy(state->window, dictionary + dictLength - state->wsize, - state->wsize); - state->whave = state->wsize; - } - else { - zmemcpy(state->window + state->wsize - dictLength, dictionary, - dictLength); - state->whave = dictLength; - } - state->havedict = 1; - Tracev((stderr, "inflate: dictionary set\n")); - return Z_OK; -} - -int ZEXPORT inflateGetHeader(strm, head) -z_streamp strm; -gz_headerp head; -{ - struct inflate_state FAR *state; - - /* check state */ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if ((state->wrap & 2) == 0) return Z_STREAM_ERROR; - - /* save header structure */ - state->head = head; - head->done = 0; - return Z_OK; -} - -/* - Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found - or when out of input. When called, *have is the number of pattern bytes - found in order so far, in 0..3. On return *have is updated to the new - state. If on return *have equals four, then the pattern was found and the - return value is how many bytes were read including the last byte of the - pattern. If *have is less than four, then the pattern has not been found - yet and the return value is len. In the latter case, syncsearch() can be - called again with more data and the *have state. *have is initialized to - zero for the first call. - */ -local unsigned syncsearch(have, buf, len) -unsigned FAR *have; -unsigned char FAR *buf; -unsigned len; -{ - unsigned got; - unsigned next; - - got = *have; - next = 0; - while (next < len && got < 4) { - if ((int)(buf[next]) == (got < 2 ? 0 : 0xff)) - got++; - else if (buf[next]) - got = 0; - else - got = 4 - got; - next++; - } - *have = got; - return next; -} - -int ZEXPORT inflateSync(strm) -z_streamp strm; -{ - unsigned len; /* number of bytes to look at or looked at */ - unsigned long in, out; /* temporary to save total_in and total_out */ - unsigned char buf[4]; /* to restore bit buffer to byte string */ - struct inflate_state FAR *state; - - /* check parameters */ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR; - - /* if first time, start search in bit buffer */ - if (state->mode != SYNC) { - state->mode = SYNC; - state->hold <<= state->bits & 7; - state->bits -= state->bits & 7; - len = 0; - while (state->bits >= 8) { - buf[len++] = (unsigned char)(state->hold); - state->hold >>= 8; - state->bits -= 8; - } - state->have = 0; - syncsearch(&(state->have), buf, len); - } - - /* search available input */ - len = syncsearch(&(state->have), strm->next_in, strm->avail_in); - strm->avail_in -= len; - strm->next_in += len; - strm->total_in += len; - - /* return no joy or set up to restart inflate() on a new block */ - if (state->have != 4) return Z_DATA_ERROR; - in = strm->total_in; out = strm->total_out; - inflateReset(strm); - strm->total_in = in; strm->total_out = out; - state->mode = TYPE; - return Z_OK; -} - -/* - Returns true if inflate is currently at the end of a block generated by - Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP - implementation to provide an additional safety check. PPP uses - Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored - block. When decompressing, PPP checks that at the end of input packet, - inflate is waiting for these length bytes. - */ -int ZEXPORT inflateSyncPoint(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - return state->mode == STORED && state->bits == 0; -} - -int ZEXPORT inflateCopy(dest, source) -z_streamp dest; -z_streamp source; -{ - struct inflate_state FAR *state; - struct inflate_state FAR *copy; - unsigned char FAR *window; - unsigned wsize; - - /* check input */ - if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL || - source->zalloc == (alloc_func)0 || source->zfree == (free_func)0) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)source->state; - - /* allocate space */ - copy = (struct inflate_state FAR *) - ZALLOC(source, 1, sizeof(struct inflate_state)); - if (copy == Z_NULL) return Z_MEM_ERROR; - window = Z_NULL; - if (state->window != Z_NULL) { - window = (unsigned char FAR *) - ZALLOC(source, 1U << state->wbits, sizeof(unsigned char)); - if (window == Z_NULL) { - ZFREE(source, copy); - return Z_MEM_ERROR; - } - } - - /* copy state */ - zmemcpy(dest, source, sizeof(z_stream)); - zmemcpy(copy, state, sizeof(struct inflate_state)); - if (state->lencode >= state->codes && - state->lencode <= state->codes + ENOUGH - 1) { - copy->lencode = copy->codes + (state->lencode - state->codes); - copy->distcode = copy->codes + (state->distcode - state->codes); - } - copy->next = copy->codes + (state->next - state->codes); - if (window != Z_NULL) { - wsize = 1U << state->wbits; - zmemcpy(window, state->window, wsize); - } - copy->window = window; - dest->state = (struct internal_state FAR *)copy; - return Z_OK; -} diff --git a/snesreader/zlib/inflate.h b/snesreader/zlib/inflate.h deleted file mode 100644 index 07bd3e78..00000000 --- a/snesreader/zlib/inflate.h +++ /dev/null @@ -1,115 +0,0 @@ -/* inflate.h -- internal inflate state definition - * Copyright (C) 1995-2004 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* define NO_GZIP when compiling if you want to disable gzip header and - trailer decoding by inflate(). NO_GZIP would be used to avoid linking in - the crc code when it is not needed. For shared libraries, gzip decoding - should be left enabled. */ -#ifndef NO_GZIP -# define GUNZIP -#endif - -/* Possible inflate modes between inflate() calls */ -typedef enum { - HEAD, /* i: waiting for magic header */ - FLAGS, /* i: waiting for method and flags (gzip) */ - TIME, /* i: waiting for modification time (gzip) */ - OS, /* i: waiting for extra flags and operating system (gzip) */ - EXLEN, /* i: waiting for extra length (gzip) */ - EXTRA, /* i: waiting for extra bytes (gzip) */ - NAME, /* i: waiting for end of file name (gzip) */ - COMMENT, /* i: waiting for end of comment (gzip) */ - HCRC, /* i: waiting for header crc (gzip) */ - DICTID, /* i: waiting for dictionary check value */ - DICT, /* waiting for inflateSetDictionary() call */ - TYPE, /* i: waiting for type bits, including last-flag bit */ - TYPEDO, /* i: same, but skip check to exit inflate on new block */ - STORED, /* i: waiting for stored size (length and complement) */ - COPY, /* i/o: waiting for input or output to copy stored block */ - TABLE, /* i: waiting for dynamic block table lengths */ - LENLENS, /* i: waiting for code length code lengths */ - CODELENS, /* i: waiting for length/lit and distance code lengths */ - LEN, /* i: waiting for length/lit code */ - LENEXT, /* i: waiting for length extra bits */ - DIST, /* i: waiting for distance code */ - DISTEXT, /* i: waiting for distance extra bits */ - MATCH, /* o: waiting for output space to copy string */ - LIT, /* o: waiting for output space to write literal */ - CHECK, /* i: waiting for 32-bit check value */ - LENGTH, /* i: waiting for 32-bit length (gzip) */ - DONE, /* finished check, done -- remain here until reset */ - BAD, /* got a data error -- remain here until reset */ - MEM, /* got an inflate() memory error -- remain here until reset */ - SYNC /* looking for synchronization bytes to restart inflate() */ -} inflate_mode; - -/* - State transitions between above modes - - - (most modes can go to the BAD or MEM mode -- not shown for clarity) - - Process header: - HEAD -> (gzip) or (zlib) - (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME - NAME -> COMMENT -> HCRC -> TYPE - (zlib) -> DICTID or TYPE - DICTID -> DICT -> TYPE - Read deflate blocks: - TYPE -> STORED or TABLE or LEN or CHECK - STORED -> COPY -> TYPE - TABLE -> LENLENS -> CODELENS -> LEN - Read deflate codes: - LEN -> LENEXT or LIT or TYPE - LENEXT -> DIST -> DISTEXT -> MATCH -> LEN - LIT -> LEN - Process trailer: - CHECK -> LENGTH -> DONE - */ - -/* state maintained between inflate() calls. Approximately 7K bytes. */ -struct inflate_state { - inflate_mode mode; /* current inflate mode */ - int last; /* true if processing last block */ - int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ - int havedict; /* true if dictionary provided */ - int flags; /* gzip header method and flags (0 if zlib) */ - unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */ - unsigned long check; /* protected copy of check value */ - unsigned long total; /* protected copy of output count */ - gz_headerp head; /* where to save gzip header information */ - /* sliding window */ - unsigned wbits; /* log base 2 of requested window size */ - unsigned wsize; /* window size or zero if not using window */ - unsigned whave; /* valid bytes in the window */ - unsigned write; /* window write index */ - unsigned char FAR *window; /* allocated sliding window, if needed */ - /* bit accumulator */ - unsigned long hold; /* input bit accumulator */ - unsigned bits; /* number of bits in "in" */ - /* for string and stored block copying */ - unsigned length; /* literal or length of data to copy */ - unsigned offset; /* distance back to copy string from */ - /* for table and code decoding */ - unsigned extra; /* extra bits needed */ - /* fixed and dynamic code tables */ - code const FAR *lencode; /* starting table for length/literal codes */ - code const FAR *distcode; /* starting table for distance codes */ - unsigned lenbits; /* index bits for lencode */ - unsigned distbits; /* index bits for distcode */ - /* dynamic table building */ - unsigned ncode; /* number of code length code lengths */ - unsigned nlen; /* number of length code lengths */ - unsigned ndist; /* number of distance code lengths */ - unsigned have; /* number of code lengths in lens[] */ - code FAR *next; /* next available space in codes[] */ - unsigned short lens[320]; /* temporary storage for code lengths */ - unsigned short work[288]; /* work area for code table building */ - code codes[ENOUGH]; /* space for code tables */ -}; diff --git a/snesreader/zlib/inftrees.c b/snesreader/zlib/inftrees.c deleted file mode 100644 index 8a9c13ff..00000000 --- a/snesreader/zlib/inftrees.c +++ /dev/null @@ -1,329 +0,0 @@ -/* inftrees.c -- generate Huffman trees for efficient decoding - * Copyright (C) 1995-2005 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "inftrees.h" - -#define MAXBITS 15 - -const char inflate_copyright[] = - " inflate 1.2.3 Copyright 1995-2005 Mark Adler "; -/* - If you use the zlib library in a product, an acknowledgment is welcome - in the documentation of your product. If for some reason you cannot - include such an acknowledgment, I would appreciate that you keep this - copyright string in the executable of your product. - */ - -/* - Build a set of tables to decode the provided canonical Huffman code. - The code lengths are lens[0..codes-1]. The result starts at *table, - whose indices are 0..2^bits-1. work is a writable array of at least - lens shorts, which is used as a work area. type is the type of code - to be generated, CODES, LENS, or DISTS. On return, zero is success, - -1 is an invalid code, and +1 means that ENOUGH isn't enough. table - on return points to the next available entry's address. bits is the - requested root table index bits, and on return it is the actual root - table index bits. It will differ if the request is greater than the - longest code or if it is less than the shortest code. - */ -int inflate_table(type, lens, codes, table, bits, work) -codetype type; -unsigned short FAR *lens; -unsigned codes; -code FAR * FAR *table; -unsigned FAR *bits; -unsigned short FAR *work; -{ - unsigned len; /* a code's length in bits */ - unsigned sym; /* index of code symbols */ - unsigned min, max; /* minimum and maximum code lengths */ - unsigned root; /* number of index bits for root table */ - unsigned curr; /* number of index bits for current table */ - unsigned drop; /* code bits to drop for sub-table */ - int left; /* number of prefix codes available */ - unsigned used; /* code entries in table used */ - unsigned huff; /* Huffman code */ - unsigned incr; /* for incrementing code, index */ - unsigned fill; /* index for replicating entries */ - unsigned low; /* low bits for current root entry */ - unsigned mask; /* mask for low root bits */ - code this; /* table entry for duplication */ - code FAR *next; /* next available space in table */ - const unsigned short FAR *base; /* base value table to use */ - const unsigned short FAR *extra; /* extra bits table to use */ - int end; /* use base and extra for symbol > end */ - unsigned short count[MAXBITS+1]; /* number of codes of each length */ - unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ - static const unsigned short lbase[31] = { /* Length codes 257..285 base */ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, - 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; - static const unsigned short lext[31] = { /* Length codes 257..285 extra */ - 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 201, 196}; - static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577, 0, 0}; - static const unsigned short dext[32] = { /* Distance codes 0..29 extra */ - 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, - 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, - 28, 28, 29, 29, 64, 64}; - - /* - Process a set of code lengths to create a canonical Huffman code. The - code lengths are lens[0..codes-1]. Each length corresponds to the - symbols 0..codes-1. The Huffman code is generated by first sorting the - symbols by length from short to long, and retaining the symbol order - for codes with equal lengths. Then the code starts with all zero bits - for the first code of the shortest length, and the codes are integer - increments for the same length, and zeros are appended as the length - increases. For the deflate format, these bits are stored backwards - from their more natural integer increment ordering, and so when the - decoding tables are built in the large loop below, the integer codes - are incremented backwards. - - This routine assumes, but does not check, that all of the entries in - lens[] are in the range 0..MAXBITS. The caller must assure this. - 1..MAXBITS is interpreted as that code length. zero means that that - symbol does not occur in this code. - - The codes are sorted by computing a count of codes for each length, - creating from that a table of starting indices for each length in the - sorted table, and then entering the symbols in order in the sorted - table. The sorted table is work[], with that space being provided by - the caller. - - The length counts are used for other purposes as well, i.e. finding - the minimum and maximum length codes, determining if there are any - codes at all, checking for a valid set of lengths, and looking ahead - at length counts to determine sub-table sizes when building the - decoding tables. - */ - - /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ - for (len = 0; len <= MAXBITS; len++) - count[len] = 0; - for (sym = 0; sym < codes; sym++) - count[lens[sym]]++; - - /* bound code lengths, force root to be within code lengths */ - root = *bits; - for (max = MAXBITS; max >= 1; max--) - if (count[max] != 0) break; - if (root > max) root = max; - if (max == 0) { /* no symbols to code at all */ - this.op = (unsigned char)64; /* invalid code marker */ - this.bits = (unsigned char)1; - this.val = (unsigned short)0; - *(*table)++ = this; /* make a table to force an error */ - *(*table)++ = this; - *bits = 1; - return 0; /* no symbols, but wait for decoding to report error */ - } - for (min = 1; min <= MAXBITS; min++) - if (count[min] != 0) break; - if (root < min) root = min; - - /* check for an over-subscribed or incomplete set of lengths */ - left = 1; - for (len = 1; len <= MAXBITS; len++) { - left <<= 1; - left -= count[len]; - if (left < 0) return -1; /* over-subscribed */ - } - if (left > 0 && (type == CODES || max != 1)) - return -1; /* incomplete set */ - - /* generate offsets into symbol table for each length for sorting */ - offs[1] = 0; - for (len = 1; len < MAXBITS; len++) - offs[len + 1] = offs[len] + count[len]; - - /* sort symbols by length, by symbol order within each length */ - for (sym = 0; sym < codes; sym++) - if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym; - - /* - Create and fill in decoding tables. In this loop, the table being - filled is at next and has curr index bits. The code being used is huff - with length len. That code is converted to an index by dropping drop - bits off of the bottom. For codes where len is less than drop + curr, - those top drop + curr - len bits are incremented through all values to - fill the table with replicated entries. - - root is the number of index bits for the root table. When len exceeds - root, sub-tables are created pointed to by the root entry with an index - of the low root bits of huff. This is saved in low to check for when a - new sub-table should be started. drop is zero when the root table is - being filled, and drop is root when sub-tables are being filled. - - When a new sub-table is needed, it is necessary to look ahead in the - code lengths to determine what size sub-table is needed. The length - counts are used for this, and so count[] is decremented as codes are - entered in the tables. - - used keeps track of how many table entries have been allocated from the - provided *table space. It is checked when a LENS table is being made - against the space in *table, ENOUGH, minus the maximum space needed by - the worst case distance code, MAXD. This should never happen, but the - sufficiency of ENOUGH has not been proven exhaustively, hence the check. - This assumes that when type == LENS, bits == 9. - - sym increments through all symbols, and the loop terminates when - all codes of length max, i.e. all codes, have been processed. This - routine permits incomplete codes, so another loop after this one fills - in the rest of the decoding tables with invalid code markers. - */ - - /* set up for code type */ - switch (type) { - case CODES: - base = extra = work; /* dummy value--not used */ - end = 19; - break; - case LENS: - base = lbase; - base -= 257; - extra = lext; - extra -= 257; - end = 256; - break; - default: /* DISTS */ - base = dbase; - extra = dext; - end = -1; - } - - /* initialize state for loop */ - huff = 0; /* starting code */ - sym = 0; /* starting code symbol */ - len = min; /* starting code length */ - next = *table; /* current table to fill in */ - curr = root; /* current table index bits */ - drop = 0; /* current bits to drop from code for index */ - low = (unsigned)(-1); /* trigger new sub-table when len > root */ - used = 1U << root; /* use root table entries */ - mask = used - 1; /* mask for comparing low */ - - /* check available table space */ - if (type == LENS && used >= ENOUGH - MAXD) - return 1; - - /* process all codes and make table entries */ - for (;;) { - /* create table entry */ - this.bits = (unsigned char)(len - drop); - if ((int)(work[sym]) < end) { - this.op = (unsigned char)0; - this.val = work[sym]; - } - else if ((int)(work[sym]) > end) { - this.op = (unsigned char)(extra[work[sym]]); - this.val = base[work[sym]]; - } - else { - this.op = (unsigned char)(32 + 64); /* end of block */ - this.val = 0; - } - - /* replicate for those indices with low len bits equal to huff */ - incr = 1U << (len - drop); - fill = 1U << curr; - min = fill; /* save offset to next table */ - do { - fill -= incr; - next[(huff >> drop) + fill] = this; - } while (fill != 0); - - /* backwards increment the len-bit code huff */ - incr = 1U << (len - 1); - while (huff & incr) - incr >>= 1; - if (incr != 0) { - huff &= incr - 1; - huff += incr; - } - else - huff = 0; - - /* go to next symbol, update count, len */ - sym++; - if (--(count[len]) == 0) { - if (len == max) break; - len = lens[work[sym]]; - } - - /* create new sub-table if needed */ - if (len > root && (huff & mask) != low) { - /* if first time, transition to sub-tables */ - if (drop == 0) - drop = root; - - /* increment past last table */ - next += min; /* here min is 1 << curr */ - - /* determine length of next table */ - curr = len - drop; - left = (int)(1 << curr); - while (curr + drop < max) { - left -= count[curr + drop]; - if (left <= 0) break; - curr++; - left <<= 1; - } - - /* check for enough space */ - used += 1U << curr; - if (type == LENS && used >= ENOUGH - MAXD) - return 1; - - /* point entry in root table to sub-table */ - low = huff & mask; - (*table)[low].op = (unsigned char)curr; - (*table)[low].bits = (unsigned char)root; - (*table)[low].val = (unsigned short)(next - *table); - } - } - - /* - Fill in rest of table for incomplete codes. This loop is similar to the - loop above in incrementing huff for table indices. It is assumed that - len is equal to curr + drop, so there is no loop needed to increment - through high index bits. When the current sub-table is filled, the loop - drops back to the root table to fill in any remaining entries there. - */ - this.op = (unsigned char)64; /* invalid code marker */ - this.bits = (unsigned char)(len - drop); - this.val = (unsigned short)0; - while (huff != 0) { - /* when done with sub-table, drop back to root table */ - if (drop != 0 && (huff & mask) != low) { - drop = 0; - len = root; - next = *table; - this.bits = (unsigned char)len; - } - - /* put invalid code marker in table */ - next[huff >> drop] = this; - - /* backwards increment the len-bit code huff */ - incr = 1U << (len - 1); - while (huff & incr) - incr >>= 1; - if (incr != 0) { - huff &= incr - 1; - huff += incr; - } - else - huff = 0; - } - - /* set return parameters */ - *table += used; - *bits = root; - return 0; -} diff --git a/snesreader/zlib/inftrees.h b/snesreader/zlib/inftrees.h deleted file mode 100644 index b1104c87..00000000 --- a/snesreader/zlib/inftrees.h +++ /dev/null @@ -1,55 +0,0 @@ -/* inftrees.h -- header to use inftrees.c - * Copyright (C) 1995-2005 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* Structure for decoding tables. Each entry provides either the - information needed to do the operation requested by the code that - indexed that table entry, or it provides a pointer to another - table that indexes more bits of the code. op indicates whether - the entry is a pointer to another table, a literal, a length or - distance, an end-of-block, or an invalid code. For a table - pointer, the low four bits of op is the number of index bits of - that table. For a length or distance, the low four bits of op - is the number of extra bits to get after the code. bits is - the number of bits in this code or part of the code to drop off - of the bit buffer. val is the actual byte to output in the case - of a literal, the base length or distance, or the offset from - the current table to the next table. Each entry is four bytes. */ -typedef struct { - unsigned char op; /* operation, extra bits, table bits */ - unsigned char bits; /* bits in this part of the code */ - unsigned short val; /* offset in table or code value */ -} code; - -/* op values as set by inflate_table(): - 00000000 - literal - 0000tttt - table link, tttt != 0 is the number of table index bits - 0001eeee - length or distance, eeee is the number of extra bits - 01100000 - end of block - 01000000 - invalid code - */ - -/* Maximum size of dynamic tree. The maximum found in a long but non- - exhaustive search was 1444 code structures (852 for length/literals - and 592 for distances, the latter actually the result of an - exhaustive search). The true maximum is not known, but the value - below is more than safe. */ -#define ENOUGH 2048 -#define MAXD 592 - -/* Type of code to build for inftable() */ -typedef enum { - CODES, - LENS, - DISTS -} codetype; - -extern int inflate_table OF((codetype type, unsigned short FAR *lens, - unsigned codes, code FAR * FAR *table, - unsigned FAR *bits, unsigned short FAR *work)); diff --git a/snesreader/zlib/readme.txt b/snesreader/zlib/readme.txt deleted file mode 100644 index d1331635..00000000 --- a/snesreader/zlib/readme.txt +++ /dev/null @@ -1,10 +0,0 @@ -This is NOT the complete zlib distribution; it is just a subset of the -source needed by the File_Extractor library. I've made some minor -changes: - -* Enabled DYNAMIC_CRC_TABLE in zconf.h, to reduce executable size -slightly. -* Made z_stream_s's msg const char* to eliminate many warnings. - -You can remove these sources and link to your own copy of zlib if -desired. diff --git a/snesreader/zlib/zconf.h b/snesreader/zlib/zconf.h deleted file mode 100644 index ee5a9181..00000000 --- a/snesreader/zlib/zconf.h +++ /dev/null @@ -1,335 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2005 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* added for file_extractor; OK to remove, just increases executable size */ -#define DYNAMIC_CRC_TABLE - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - */ -#ifdef Z_PREFIX -# define deflateInit_ z_deflateInit_ -# define deflate z_deflate -# define deflateEnd z_deflateEnd -# define inflateInit_ z_inflateInit_ -# define inflate z_inflate -# define inflateEnd z_inflateEnd -# define deflateInit2_ z_deflateInit2_ -# define deflateSetDictionary z_deflateSetDictionary -# define deflateCopy z_deflateCopy -# define deflateReset z_deflateReset -# define deflateParams z_deflateParams -# define deflateBound z_deflateBound -# define deflatePrime z_deflatePrime -# define inflateInit2_ z_inflateInit2_ -# define inflateSetDictionary z_inflateSetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateCopy z_inflateCopy -# define inflateReset z_inflateReset -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# define uncompress z_uncompress -# define adler32 z_adler32 -# define crc32 z_crc32 -# define get_crc_table z_get_crc_table -# define zError z_zError - -# define alloc_func z_alloc_func -# define free_func z_free_func -# define in_func z_in_func -# define out_func z_out_func -# define Byte z_Byte -# define uInt z_uInt -# define uLong z_uLong -# define Bytef z_Bytef -# define charf z_charf -# define intf z_intf -# define uIntf z_uIntf -# define uLongf z_uLongf -# define voidpf z_voidpf -# define voidp z_voidp -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -/* Some Mac compilers merge all .h files incorrectly: */ -#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) -# define NO_DUMMY_DECL -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus a few kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */ -# include /* for off_t */ -# include /* for SEEK_* and off_t */ -# ifdef VMS -# include /* for off_t */ -# endif -# define z_off_t off_t -#endif -#ifndef SEEK_SET -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif -#ifndef z_off_t -# define z_off_t long -#endif - -#if defined(__OS400__) -# define NO_vsnprintf -#endif - -#if defined(__MVS__) -# define NO_vsnprintf -# ifdef FAR -# undef FAR -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) -# pragma map(deflateInit_,"DEIN") -# pragma map(deflateInit2_,"DEIN2") -# pragma map(deflateEnd,"DEEND") -# pragma map(deflateBound,"DEBND") -# pragma map(inflateInit_,"ININ") -# pragma map(inflateInit2_,"ININ2") -# pragma map(inflateEnd,"INEND") -# pragma map(inflateSync,"INSY") -# pragma map(inflateSetDictionary,"INSEDI") -# pragma map(compressBound,"CMBND") -# pragma map(inflate_table,"INTABL") -# pragma map(inflate_fast,"INFA") -# pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/snesreader/zlib/zlib.h b/snesreader/zlib/zlib.h deleted file mode 100644 index e4768717..00000000 --- a/snesreader/zlib/zlib.h +++ /dev/null @@ -1,1357 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.3, July 18th, 2005 - - Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt - (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). -*/ - -#ifndef ZLIB_H -#define ZLIB_H - -#include "zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.2.3" -#define ZLIB_VERNUM 0x1230 - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed - data. This version of the library supports only one compression method - (deflation) but other algorithms will be added later and will have the same - stream interface. - - Compression can be done in a single step if the buffers are large - enough (for example if an input file is mmap'ed), or can be done by - repeated calls of the compression function. In the latter case, the - application must provide more input and/or consume the output - (providing more output space) before each call. - - The compressed data format used by default by the in-memory functions is - the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped - around a deflate stream, which is itself documented in RFC 1951. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio using the functions that start - with "gz". The gzip format is different from the zlib format. gzip is a - gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. - - This library can optionally read and write gzip streams in memory as well. - - The zlib format was designed to be compact and fast for use in memory - and on communications channels. The gzip format was designed for single- - file compression on file systems, has a larger header than zlib to maintain - directory information, and uses a different, slower check method than zlib. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never - crash even in case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total nb of input bytes read so far */ - - Bytef *next_out; /* next output byte should be put there */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total nb of bytes output so far */ - - const char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: binary or text */ - uLong adler; /* adler32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - gzip header information passed to and from zlib routines. See RFC 1952 - for more details on the meanings of these fields. -*/ -typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ -} gz_header; - -typedef gz_header FAR *gz_headerp; - -/* - The application must update next_in and avail_in when avail_in has - dropped to zero. It must update next_out and avail_out when avail_out - has dropped to zero. The application must initialize zalloc, zfree and - opaque before calling the init function. All other fields are set by the - compression library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this - if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, - pointers returned by zalloc for objects of exactly 65536 bytes *must* - have their offset normalized to zero. The default allocation function - provided by this library ensures this (see zutil.c). To reduce memory - requirements and avoid any allocation of 64K objects, at the expense of - compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or - progress reports. After compression, total_in holds the total size of - the uncompressed data and may be saved for use in the decompressor - (particularly if the decompressor wants to decompress everything in - a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */ -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -#define Z_BLOCK 5 -/* Allowed flush values; see deflate() and inflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative - * values are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_RLE 3 -#define Z_FIXED 4 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_TEXT 1 -#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ -#define Z_UNKNOWN 2 -/* Possible values of the data_type field (though see inflate()) */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - /* basic functions */ - -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is - not compatible with the zlib.h header file used by the application. - This check is automatically made by deflateInit and inflateInit. - */ - -/* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. - If zalloc and zfree are set to Z_NULL, deflateInit updates them to - use default allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at - all (the input data is simply copied a block at a time). - Z_DEFAULT_COMPRESSION requests a default compromise between speed and - compression (currently equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if level is not a valid compression level, - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). - msg is set to null if there is no error message. deflateInit does not - perform any compression: this will be done by deflate(). -*/ - - -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce some - output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary (in interactive applications). - Some output may be provided even if flush is not set. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming - more output, and updating avail_in or avail_out accordingly; avail_out - should never be zero before the call. The application can consume the - compressed output when it wants, for example when the output buffer is full - (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK - and with zero avail_out, it must be called again after making room in the - output buffer because there might be more output pending. - - Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to - decide how much data to accumualte before producing output, in order to - maximize compression. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In particular - avail_in is zero after the call if enough output space has been provided - before the call.) Flushing may degrade compression for some compression - algorithms and so it should be used only when necessary. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there - was enough output space; if deflate returns with Z_OK, this function must be - called again with Z_FINISH and more output space (updated avail_out) but no - more input data, until it returns with Z_STREAM_END or an error. After - deflate has returned Z_STREAM_END, the only possible operations on the - stream are deflateReset or deflateEnd. - - Z_FINISH can be used immediately after deflateInit if all the compression - is to be done in a single step. In this case, avail_out must be at least - the value returned by deflateBound (see below). If deflate does not return - Z_STREAM_END, then it must be called again as described above. - - deflate() sets strm->adler to the adler32 checksum of all input read - so far (that is, total_in bytes). - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered - binary. This field is only for information purposes and does not affect - the compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible - (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not - fatal, and deflate() can be called again with more input and more output - space to continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any - pending output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, - msg may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. If next_in is not Z_NULL and avail_in is large enough (the exact - value depends on the compression method), inflateInit determines the - compression method from the zlib header and allocates all data structures - accordingly; otherwise the allocation will be deferred to the first call of - inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to - use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller. msg is set to null if there is no error - message. inflateInit does not perform any decompression apart from reading - the zlib header if present: this will be done by inflate(). (So next_in and - avail_in may be modified, but next_out and avail_out are unchanged.) -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in is updated and processing - will resume at this point for the next call of inflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there - is no more input data or no more space in the output buffer (see below - about the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming - more output, and updating the next_* and avail_* values accordingly. - The application can consume the uncompressed output when it wants, for - example when the output buffer is full (avail_out == 0), or after each - call of inflate(). If inflate returns Z_OK and with zero avail_out, it - must be called again after making room in the output buffer because there - might be more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, - Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() stop - if and when it gets to the next deflate block boundary. When decoding the - zlib or gzip format, this will cause inflate() to return immediately after - the header and before the first block. When doing a raw inflate, inflate() - will go ahead and process the first block, and will return when it gets to - the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - Also to assist in this, on return inflate() will set strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 - if inflate() is currently decoding the last block in the deflate stream, - plus 128 if inflate() returned immediately after decoding an end-of-block - code or decoding the complete header up to just before the first byte of the - deflate stream. The end-of-block will not be indicated until all of the - uncompressed data from that block has been written to strm->next_out. The - number of unused bits may in general be greater than seven, except when - bit 7 of data_type is set, in which case the number of unused bits will be - less than eight. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step - (a single call of inflate), the parameter flush should be set to - Z_FINISH. In this case all pending input is processed and all pending - output is flushed; avail_out must be large enough to hold all the - uncompressed data. (The size of the uncompressed data may have been saved - by the compressor for this purpose.) The next operation on this stream must - be inflateEnd to deallocate the decompression state. The use of Z_FINISH - is never required, but can be used to inform inflate that a faster approach - may be used for the single inflate() call. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the only effect of the flush parameter in this implementation - is on the return value of inflate(), as noted below, or when it returns early - because Z_BLOCK is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the adler32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the adler32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed adler32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() will decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically. Any information - contained in the gzip header is not retained, so applications that need that - information should instead use raw inflate, see inflateInit2() below, or - inflateBack() and perform their own processing of the gzip header and - trailer. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value), Z_STREAM_ERROR if the stream structure was inconsistent (for example - if next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory, - Z_BUF_ERROR if no progress is possible or if there was not enough room in the - output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may then - call inflateSync() to look for a good compression block if a partial recovery - of the data is desired. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any - pending output. - - inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state - was inconsistent. In the error case, msg may be set but then points to a - static string (which must not be deallocated). -*/ - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by - the caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute an adler32 check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), - no header crc, and the operating system will be set to 255 (unknown). If a - gzip stream is being written, strm->adler is a crc32 instead of an adler32. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but - is slow and reduces compression ratio; memLevel=9 uses maximum memory - for optimal speed. The default value is 8. See zconf.h for total memory - usage as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as - Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy - parameter only affects the compression ratio but not the correctness of the - compressed output even if it is not set appropriately. Z_FIXED prevents the - use of dynamic Huffman codes, allowing for a simpler decoder for special - applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid - method). msg is set to null if there is no error message. deflateInit2 does - not perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. This function must be called - immediately after deflateInit, deflateInit2 or deflateReset, before any - call of deflate. The compressor and decompressor must use exactly the same - dictionary (see inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size in - deflate or deflate2. Thus the strings most likely to be useful should be - put at the end of the dictionary, not at the front. In addition, the - current implementation of deflate will use at most the window size minus - 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the adler32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The adler32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - adler32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (such as NULL dictionary) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if the compression method is bsort). deflateSetDictionary does not - perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and - can consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, - but does not free and reallocate all the internal compression state. - The stream will keep the same compression level and any other attributes - that may have been set by deflateInit2. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2. This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different - strategy. If the compression level is changed, the input available so far - is compressed with the old level (and may be flushed); the new level will - take effect only at the next call of deflate(). - - Before the call of deflateParams, the stream state must be set as for - a call of deflate(), since the currently available input may have to - be compressed and flushed. In particular, strm->avail_out must be non-zero. - - deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source - stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR - if strm->avail_out was zero. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() - or deflateInit2(). This would be used to allocate an output buffer - for deflation in a single pass, and so would be called before deflate(). -*/ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the - bits leftover from a previous deflate stream when appending to it. As such, - this function can only be used for raw deflate, and must be used before the - first deflate() call after a deflateInit2() or deflateReset(). bits must be - less than or equal to 16, and that many of the least significant bits of - value will be inserted in the output. - - deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an adler32 or a crc32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is - a crc32 instead of an adler32. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if a parameter is invalid (such as a null strm). msg - is set to null if there is no error message. inflateInit2 does not perform - any decompression apart from reading the zlib header if present: this will - be done by inflate(). (So next_in and avail_in may be modified, but next_out - and avail_out are unchanged.) -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the adler32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called - immediately after inflateInit2() or inflateReset() and before any call of - inflate() to set the dictionary. The application must insure that the - dictionary that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (such as NULL dictionary) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect adler32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a full flush point (see above the - description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR - if no more input was provided, Z_DATA_ERROR if no flush point has been found, - or Z_STREAM_ERROR if the stream structure was inconsistent. In the success - case, the application may save the current current value of total_in which - indicates where valid compressed data was found. In the error case, the - application may repeatedly call inflateSync, providing more input each time, - until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate all the internal decompression state. - The stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being NULL). -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK can be used to - force inflate() to return immediately after header processing is complete - and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When - any of extra, name, or comment are not Z_NULL and the respective field is - not present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the paramaters are invalid, Z_MEM_ERROR if the internal state could not - be allocated, or Z_VERSION_ERROR if the version of the library does not - match the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is more efficient than inflate() for - file i/o applications in that it avoids copying between the output and the - sliding window by simply making the window itself the output buffer. This - function trusts the application to not change the output buffer passed by - the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free - the allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects - only the raw deflate stream to decompress. This is different from the - normal behavior of inflate(), which expects either a zlib or gzip header and - trailer around the deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero--buf is ignored in that - case--and inflateBack() will return a buffer error. inflateBack() will call - out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() - should return zero on success, or non-zero on failure. If out() returns - non-zero, inflateBack() will return with an error. Neither in() nor out() - are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format - error in the deflate stream (in which case strm->msg is set to indicate the - nature of the error), or Z_STREAM_ERROR if the stream was not properly - initialized. In the case of Z_BUF_ERROR, an input or output error can be - distinguished using strm->next_in which will be Z_NULL only if in() returned - an error. If strm->next is not Z_NULL, then the Z_BUF_ERROR was due to - out() returning non-zero. (in() will always be called before out(), so - strm->next_in is assured to be defined if out() returns non-zero.) Note - that inflateBack() cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - - - /* utility functions */ - -/* - The following utility functions are implemented on top of the - basic stream-oriented functions. To simplify the interface, some - default options are assumed (compression level and memory usage, - standard memory allocation functions). The source code of these - utility functions can easily be modified if you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total - size of the destination buffer, which must be at least the value returned - by compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - This function can be used to compress a whole file at once if the - input file is mmap'ed. - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before - a compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total - size of the destination buffer, which must be large enough to hold the - entire uncompressed data. (The size of the uncompressed data must have - been saved previously by the compressor and transmitted to the decompressor - by some mechanism outside the scope of this compression library.) - Upon exit, destLen is the actual size of the compressed buffer. - This function can be used to decompress a whole file at once if the - input file is mmap'ed. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. -*/ - - -typedef voidp gzFile; - -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); -/* - Opens a gzip (.gz) file for reading or writing. The mode parameter - is as in fopen ("rb" or "wb") but can also include a compression level - ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for - Huffman only compression as in "wb1h", or 'R' for run-length encoding - as in "wb1R". (See the description of deflateInit2 for more information - about the strategy parameter.) - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. - - gzopen returns NULL if the file could not be opened or if there was - insufficient memory to allocate the (de)compression state; errno - can be checked to distinguish the two cases (if errno is zero, the - zlib error is Z_MEM_ERROR). */ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen() associates a gzFile with the file descriptor fd. File - descriptors are obtained from calls like open, dup, creat, pipe or - fileno (in the file has been previously opened with fopen). - The mode parameter is as in gzopen. - The next call of gzclose on the returned gzFile will also close the - file descriptor fd, just like fclose(fdopen(fd), mode) closes the file - descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). - gzdopen returns NULL if there was insufficient memory to allocate - the (de)compression state. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. - gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not - opened for writing. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. - If the input file was not in gzip format, gzread copies the given number - of bytes into the buffer. - gzread returns the number of uncompressed bytes actually read (0 for - end of file, -1 for error). */ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes actually written - (0 in case of error). -*/ - -ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the args to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written (0 in case of error). The number of - uncompressed bytes written is limited to 4095. The caller should assure that - this limit is not exceeded. If it is exceeded, then gzprintf() will return - return an error (0) with nothing written. In this case, there may also be a - buffer overflow with unpredictable consequences, which is possible only if - zlib was compiled with the insecure functions sprintf() or vsprintf() - because the secure snprintf() or vsnprintf() functions were not available. -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or - a newline character is read and transferred to buf, or an end-of-file - condition is encountered. The string is then terminated with a null - character. - gzgets returns buf, or Z_NULL in case of error. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. - gzputc returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte - or -1 in case of end of file or error. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read again later. - Only one character of push-back is allowed. gzungetc() returns the - character pushed, or -1 on failure. gzungetc() will fail if a - character has been pushed but not read yet, or if c is -1. The pushed - character will be discarded if the stream is repositioned with gzseek() - or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter - flush is as in the deflate() function. The return value is the zlib - error number (see function gzerror below). gzflush returns Z_OK if - the flush parameter is Z_FINISH and all output could be flushed. - gzflush should be called only when strictly necessary because it can - degrade compression. -*/ - -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); -/* - Sets the starting position for the next gzread or gzwrite on the - given compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); -/* - Returns the starting position for the next gzread or gzwrite on the - given compressed file. This position represents a number of bytes in the - uncompressed data stream. - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns 1 when EOF has previously been detected reading the given - input stream, otherwise zero. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns 1 if file is being read directly without decompression, otherwise - zero. -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file - and deallocates all the (de)compression state. The return value is the zlib - error number (see function gzerror below). -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the - given compressed file. errnum is set to zlib error number. If an - error occurred in the file system and not in the compression library, - errnum is set to Z_ERRNO and the application may consult errno - to get the exact error code. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the - compression library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is NULL, this function returns - the required initial value for the checksum. - An Adler-32 checksum is almost as reliable as a CRC32 but can be computed - much faster. Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); -/* - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is NULL, this function returns the required initial - value for the for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - -/* - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) -#define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) -#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, sizeof(z_stream)) -#define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) -#define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, sizeof(z_stream)) - - -#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) - struct internal_state {int dummy;}; /* hack for buggy compilers */ -#endif - -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z)); -ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/snesreader/zlib/zlib.txt b/snesreader/zlib/zlib.txt deleted file mode 100644 index 80f71ae8..00000000 --- a/snesreader/zlib/zlib.txt +++ /dev/null @@ -1,125 +0,0 @@ -ZLIB DATA COMPRESSION LIBRARY - -zlib 1.2.3 is a general purpose data compression library. All the code is -thread safe. The data format used by the zlib library is described by RFCs -(Request for Comments) 1950 to 1952 in the files -http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) -and rfc1952.txt (gzip format). These documents are also available in other -formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html - -All functions of the compression library are documented in the file zlib.h -(volunteer to write man pages welcome, contact zlib@gzip.org). A usage example -of the library is given in the file example.c which also tests that the library -is working correctly. Another example is given in the file minigzip.c. The -compression library itself is composed of all source files except example.c and -minigzip.c. - -To compile all files and run the test program, follow the instructions given at -the top of Makefile. In short "make test; make install" should work for most -machines. For Unix: "./configure; make test; make install". For MSDOS, use one -of the special makefiles such as Makefile.msc. For VMS, use make_vms.com. - -Questions about zlib should be sent to , or to Gilles Vollant - for the Windows DLL version. The zlib home page is -http://www.zlib.org or http://www.gzip.org/zlib/ Before reporting a problem, -please check this site to verify that you have the latest version of zlib; -otherwise get the latest version and check whether the problem still exists or -not. - -PLEASE read the zlib FAQ http://www.gzip.org/zlib/zlib_faq.html before asking -for help. - -Mark Nelson wrote an article about zlib for the Jan. 1997 -issue of Dr. Dobb's Journal; a copy of the article is available in -http://dogma.net/markn/articles/zlibtool/zlibtool.htm - -The changes made in version 1.2.3 are documented in the file ChangeLog. - -Unsupported third party contributions are provided in directory "contrib". - -A Java implementation of zlib is available in the Java Development Kit -http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/package-summary.html -See the zlib home page http://www.zlib.org for details. - -A Perl interface to zlib written by Paul Marquess is in the -CPAN (Comprehensive Perl Archive Network) sites -http://www.cpan.org/modules/by-module/Compress/ - -A Python interface to zlib written by A.M. Kuchling is -available in Python 1.5 and later versions, see -http://www.python.org/doc/lib/module-zlib.html - -A zlib binding for TCL written by Andreas Kupries is -availlable at http://www.oche.de/~akupries/soft/trf/trf_zip.html - -An experimental package to read and write files in .zip format, written on top -of zlib by Gilles Vollant , is available in the -contrib/minizip directory of zlib. - - -Notes for some targets: - -- For Windows DLL versions, please see win32/DLL_FAQ.txt - -- For 64-bit Irix, deflate.c must be compiled without any optimization. With - -O, one libpng test fails. The test works in 32 bit mode (with the -n32 - compiler flag). The compiler bug has been reported to SGI. - -- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works - when compiled with cc. - -- On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is - necessary to get gzprintf working correctly. This is done by configure. - -- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with - other compilers. Use "make test" to check your compiler. - -- gzdopen is not supported on RISCOS, BEOS and by some Mac compilers. - -- For PalmOs, see http://palmzlib.sourceforge.net/ - -- When building a shared, i.e. dynamic library on Mac OS X, the library must be - installed before testing (do "make install" before "make test"), since the - library location is specified in the library. - - -Acknowledgments: - - The deflate format used by zlib was defined by Phil Katz. The deflate - and zlib specifications were written by L. Peter Deutsch. Thanks to all the - people who reported problems and suggested various improvements in zlib; - they are too numerous to cite here. - -Copyright notice: - - (C) 1995-2004 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - -If you use the zlib library in a product, we would appreciate *not* -receiving lengthy legal documents to sign. The sources are provided -for free but without warranty of any kind. The library has been -entirely written by Jean-loup Gailly and Mark Adler; it does not -include third-party code. - -If you redistribute modified sources, we would appreciate that you include -in the file ChangeLog history information documenting your changes. Please -read the FAQ for more information on the distribution of modified source -versions. diff --git a/snesreader/zlib/zutil.c b/snesreader/zlib/zutil.c deleted file mode 100644 index d55f5948..00000000 --- a/snesreader/zlib/zutil.c +++ /dev/null @@ -1,318 +0,0 @@ -/* zutil.c -- target dependent utility functions for the compression library - * Copyright (C) 1995-2005 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#include "zutil.h" - -#ifndef NO_DUMMY_DECL -struct internal_state {int dummy;}; /* for buggy compilers */ -#endif - -const char * const z_errmsg[10] = { -"need dictionary", /* Z_NEED_DICT 2 */ -"stream end", /* Z_STREAM_END 1 */ -"", /* Z_OK 0 */ -"file error", /* Z_ERRNO (-1) */ -"stream error", /* Z_STREAM_ERROR (-2) */ -"data error", /* Z_DATA_ERROR (-3) */ -"insufficient memory", /* Z_MEM_ERROR (-4) */ -"buffer error", /* Z_BUF_ERROR (-5) */ -"incompatible version",/* Z_VERSION_ERROR (-6) */ -""}; - - -const char * ZEXPORT zlibVersion() -{ - return ZLIB_VERSION; -} - -uLong ZEXPORT zlibCompileFlags() -{ - uLong flags; - - flags = 0; - switch (sizeof(uInt)) { - case 2: break; - case 4: flags += 1; break; - case 8: flags += 2; break; - default: flags += 3; - } - switch (sizeof(uLong)) { - case 2: break; - case 4: flags += 1 << 2; break; - case 8: flags += 2 << 2; break; - default: flags += 3 << 2; - } - switch (sizeof(voidpf)) { - case 2: break; - case 4: flags += 1 << 4; break; - case 8: flags += 2 << 4; break; - default: flags += 3 << 4; - } - switch (sizeof(z_off_t)) { - case 2: break; - case 4: flags += 1 << 6; break; - case 8: flags += 2 << 6; break; - default: flags += 3 << 6; - } -#ifdef DEBUG - flags += 1 << 8; -#endif -#if defined(ASMV) || defined(ASMINF) - flags += 1 << 9; -#endif -#ifdef ZLIB_WINAPI - flags += 1 << 10; -#endif -#ifdef BUILDFIXED - flags += 1 << 12; -#endif -#ifdef DYNAMIC_CRC_TABLE - flags += 1 << 13; -#endif -#ifdef NO_GZCOMPRESS - flags += 1L << 16; -#endif -#ifdef NO_GZIP - flags += 1L << 17; -#endif -#ifdef PKZIP_BUG_WORKAROUND - flags += 1L << 20; -#endif -#ifdef FASTEST - flags += 1L << 21; -#endif -#ifdef STDC -# ifdef NO_vsnprintf - flags += 1L << 25; -# ifdef HAS_vsprintf_void - flags += 1L << 26; -# endif -# else -# ifdef HAS_vsnprintf_void - flags += 1L << 26; -# endif -# endif -#else - flags += 1L << 24; -# ifdef NO_snprintf - flags += 1L << 25; -# ifdef HAS_sprintf_void - flags += 1L << 26; -# endif -# else -# ifdef HAS_snprintf_void - flags += 1L << 26; -# endif -# endif -#endif - return flags; -} - -#ifdef DEBUG - -# ifndef verbose -# define verbose 0 -# endif -int z_verbose = verbose; - -void z_error (m) - char *m; -{ - fprintf(stderr, "%s\n", m); - exit(1); -} -#endif - -/* exported to allow conversion of error code to string for compress() and - * uncompress() - */ -const char * ZEXPORT zError(err) - int err; -{ - return ERR_MSG(err); -} - -#if defined(_WIN32_WCE) - /* The Microsoft C Run-Time Library for Windows CE doesn't have - * errno. We define it as a global variable to simplify porting. - * Its value is always 0 and should not be used. - */ - int errno = 0; -#endif - -#ifndef HAVE_MEMCPY - -void zmemcpy(dest, source, len) - Bytef* dest; - const Bytef* source; - uInt len; -{ - if (len == 0) return; - do { - *dest++ = *source++; /* ??? to be unrolled */ - } while (--len != 0); -} - -int zmemcmp(s1, s2, len) - const Bytef* s1; - const Bytef* s2; - uInt len; -{ - uInt j; - - for (j = 0; j < len; j++) { - if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1; - } - return 0; -} - -void zmemzero(dest, len) - Bytef* dest; - uInt len; -{ - if (len == 0) return; - do { - *dest++ = 0; /* ??? to be unrolled */ - } while (--len != 0); -} -#endif - - -#ifdef SYS16BIT - -#ifdef __TURBOC__ -/* Turbo C in 16-bit mode */ - -# define MY_ZCALLOC - -/* Turbo C malloc() does not allow dynamic allocation of 64K bytes - * and farmalloc(64K) returns a pointer with an offset of 8, so we - * must fix the pointer. Warning: the pointer must be put back to its - * original form in order to free it, use zcfree(). - */ - -#define MAX_PTR 10 -/* 10*64K = 640K */ - -local int next_ptr = 0; - -typedef struct ptr_table_s { - voidpf org_ptr; - voidpf new_ptr; -} ptr_table; - -local ptr_table table[MAX_PTR]; -/* This table is used to remember the original form of pointers - * to large buffers (64K). Such pointers are normalized with a zero offset. - * Since MSDOS is not a preemptive multitasking OS, this table is not - * protected from concurrent access. This hack doesn't work anyway on - * a protected system like OS/2. Use Microsoft C instead. - */ - -voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) -{ - voidpf buf = opaque; /* just to make some compilers happy */ - ulg bsize = (ulg)items*size; - - /* If we allocate less than 65520 bytes, we assume that farmalloc - * will return a usable pointer which doesn't have to be normalized. - */ - if (bsize < 65520L) { - buf = farmalloc(bsize); - if (*(ush*)&buf != 0) return buf; - } else { - buf = farmalloc(bsize + 16L); - } - if (buf == NULL || next_ptr >= MAX_PTR) return NULL; - table[next_ptr].org_ptr = buf; - - /* Normalize the pointer to seg:0 */ - *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4; - *(ush*)&buf = 0; - table[next_ptr++].new_ptr = buf; - return buf; -} - -void zcfree (voidpf opaque, voidpf ptr) -{ - int n; - if (*(ush*)&ptr != 0) { /* object < 64K */ - farfree(ptr); - return; - } - /* Find the original pointer */ - for (n = 0; n < next_ptr; n++) { - if (ptr != table[n].new_ptr) continue; - - farfree(table[n].org_ptr); - while (++n < next_ptr) { - table[n-1] = table[n]; - } - next_ptr--; - return; - } - ptr = opaque; /* just to make some compilers happy */ - Assert(0, "zcfree: ptr not found"); -} - -#endif /* __TURBOC__ */ - - -#ifdef M_I86 -/* Microsoft C in 16-bit mode */ - -# define MY_ZCALLOC - -#if (!defined(_MSC_VER) || (_MSC_VER <= 600)) -# define _halloc halloc -# define _hfree hfree -#endif - -voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) -{ - if (opaque) opaque = 0; /* to make compiler happy */ - return _halloc((long)items, size); -} - -void zcfree (voidpf opaque, voidpf ptr) -{ - if (opaque) opaque = 0; /* to make compiler happy */ - _hfree(ptr); -} - -#endif /* M_I86 */ - -#endif /* SYS16BIT */ - - -#ifndef MY_ZCALLOC /* Any system without a special alloc function */ - -#ifndef STDC -extern voidp malloc OF((uInt size)); -extern voidp calloc OF((uInt items, uInt size)); -extern void free OF((voidpf ptr)); -#endif - -voidpf zcalloc (opaque, items, size) - voidpf opaque; - unsigned items; - unsigned size; -{ - if (opaque) items += size - size; /* make compiler happy */ - return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) : - (voidpf)calloc(items, size); -} - -void zcfree (opaque, ptr) - voidpf opaque; - voidpf ptr; -{ - free(ptr); - if (opaque) return; /* make compiler happy */ -} - -#endif /* MY_ZCALLOC */ diff --git a/snesreader/zlib/zutil.h b/snesreader/zlib/zutil.h deleted file mode 100644 index b7d5eff8..00000000 --- a/snesreader/zlib/zutil.h +++ /dev/null @@ -1,269 +0,0 @@ -/* zutil.h -- internal interface and configuration of the compression library - * Copyright (C) 1995-2005 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* @(#) $Id$ */ - -#ifndef ZUTIL_H -#define ZUTIL_H - -#define ZLIB_INTERNAL -#include "zlib.h" - -#ifdef STDC -# ifndef _WIN32_WCE -# include -# endif -# include -# include -#endif -#ifdef NO_ERRNO_H -# ifdef _WIN32_WCE - /* The Microsoft C Run-Time Library for Windows CE doesn't have - * errno. We define it as a global variable to simplify porting. - * Its value is always 0 and should not be used. We rename it to - * avoid conflict with other libraries that use the same workaround. - */ -# define errno z_errno -# endif - extern int errno; -#else -# ifndef _WIN32_WCE -# include -# endif -#endif - -#ifndef local -# define local static -#endif -/* compile with -Dlocal if your debugger can't find static symbols */ - -typedef unsigned char uch; -typedef uch FAR uchf; -typedef unsigned short ush; -typedef ush FAR ushf; -typedef unsigned long ulg; - -extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ -/* (size given to avoid silly warnings with Visual C++) */ - -#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] - -#define ERR_RETURN(strm,err) \ - return (strm->msg = (char*)ERR_MSG(err), (err)) -/* To be used only when the state is known to be valid */ - - /* common constants */ - -#ifndef DEF_WBITS -# define DEF_WBITS MAX_WBITS -#endif -/* default windowBits for decompression. MAX_WBITS is for compression only */ - -#if MAX_MEM_LEVEL >= 8 -# define DEF_MEM_LEVEL 8 -#else -# define DEF_MEM_LEVEL MAX_MEM_LEVEL -#endif -/* default memLevel */ - -#define STORED_BLOCK 0 -#define STATIC_TREES 1 -#define DYN_TREES 2 -/* The three kinds of block type */ - -#define MIN_MATCH 3 -#define MAX_MATCH 258 -/* The minimum and maximum match lengths */ - -#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ - - /* target dependencies */ - -#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32)) -# define OS_CODE 0x00 -# if defined(__TURBOC__) || defined(__BORLANDC__) -# if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) - /* Allow compilation with ANSI keywords only enabled */ - void _Cdecl farfree( void *block ); - void *_Cdecl farmalloc( unsigned long nbytes ); -# else -# include -# endif -# else /* MSC or DJGPP */ -# include -# endif -#endif - -#ifdef AMIGA -# define OS_CODE 0x01 -#endif - -#if defined(VAXC) || defined(VMS) -# define OS_CODE 0x02 -# define F_OPEN(name, mode) \ - fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") -#endif - -#if defined(ATARI) || defined(atarist) -# define OS_CODE 0x05 -#endif - -#ifdef OS2 -# define OS_CODE 0x06 -# ifdef M_I86 - #include -# endif -#endif - -#if defined(MACOS) || defined(TARGET_OS_MAC) -# define OS_CODE 0x07 -# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os -# include /* for fdopen */ -# else -# ifndef fdopen -# define fdopen(fd,mode) NULL /* No fdopen() */ -# endif -# endif -#endif - -#ifdef TOPS20 -# define OS_CODE 0x0a -#endif - -#ifdef WIN32 -# ifndef __CYGWIN__ /* Cygwin is Unix, not Win32 */ -# define OS_CODE 0x0b -# endif -#endif - -#ifdef __50SERIES /* Prime/PRIMOS */ -# define OS_CODE 0x0f -#endif - -#if defined(_BEOS_) || defined(RISCOS) -# define fdopen(fd,mode) NULL /* No fdopen() */ -#endif - -#if (defined(_MSC_VER) && (_MSC_VER > 600)) -# if defined(_WIN32_WCE) -# define fdopen(fd,mode) NULL /* No fdopen() */ -# ifndef _PTRDIFF_T_DEFINED - typedef int ptrdiff_t; -# define _PTRDIFF_T_DEFINED -# endif -# else -# define fdopen(fd,type) _fdopen(fd,type) -# endif -#endif - - /* common defaults */ - -#ifndef OS_CODE -# define OS_CODE 0x03 /* assume Unix */ -#endif - -#ifndef F_OPEN -# define F_OPEN(name, mode) fopen((name), (mode)) -#endif - - /* functions */ - -#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550) -# ifndef HAVE_VSNPRINTF -# define HAVE_VSNPRINTF -# endif -#endif -#if defined(__CYGWIN__) -# ifndef HAVE_VSNPRINTF -# define HAVE_VSNPRINTF -# endif -#endif -#ifndef HAVE_VSNPRINTF -# ifdef MSDOS - /* vsnprintf may exist on some MS-DOS compilers (DJGPP?), - but for now we just assume it doesn't. */ -# define NO_vsnprintf -# endif -# ifdef __TURBOC__ -# define NO_vsnprintf -# endif -# ifdef WIN32 - /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */ -# if !defined(vsnprintf) && !defined(NO_vsnprintf) -# define vsnprintf _vsnprintf -# endif -# endif -# ifdef __SASC -# define NO_vsnprintf -# endif -#endif -#ifdef VMS -# define NO_vsnprintf -#endif - -#if defined(pyr) -# define NO_MEMCPY -#endif -#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__) - /* Use our own functions for small and medium model with MSC <= 5.0. - * You may have to use the same strategy for Borland C (untested). - * The __SC__ check is for Symantec. - */ -# define NO_MEMCPY -#endif -#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY) -# define HAVE_MEMCPY -#endif -#ifdef HAVE_MEMCPY -# ifdef SMALL_MEDIUM /* MSDOS small or medium model */ -# define zmemcpy _fmemcpy -# define zmemcmp _fmemcmp -# define zmemzero(dest, len) _fmemset(dest, 0, len) -# else -# define zmemcpy memcpy -# define zmemcmp memcmp -# define zmemzero(dest, len) memset(dest, 0, len) -# endif -#else - extern void zmemcpy OF((Bytef* dest, const Bytef* source, uInt len)); - extern int zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len)); - extern void zmemzero OF((Bytef* dest, uInt len)); -#endif - -/* Diagnostic functions */ -#ifdef DEBUG -# include - extern int z_verbose; - extern void z_error OF((char *m)); -# define Assert(cond,msg) {if(!(cond)) z_error(msg);} -# define Trace(x) {if (z_verbose>=0) fprintf x ;} -# define Tracev(x) {if (z_verbose>0) fprintf x ;} -# define Tracevv(x) {if (z_verbose>1) fprintf x ;} -# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} -# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} -#else -# define Assert(cond,msg) -# define Trace(x) -# define Tracev(x) -# define Tracevv(x) -# define Tracec(c,x) -# define Tracecv(c,x) -#endif - - -voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); -void zcfree OF((voidpf opaque, voidpf ptr)); - -#define ZALLOC(strm, items, size) \ - (*((strm)->zalloc))((strm)->opaque, (items), (size)) -#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) -#define TRY_FREE(s, p) {if (p) ZFREE(s, p);} - -#endif /* ZUTIL_H */ diff --git a/src/base.hpp b/src/base.hpp index 94d81e69..8dd0235e 100644 --- a/src/base.hpp +++ b/src/base.hpp @@ -1,6 +1,6 @@ -static const char bsnesVersion[] = "061.01"; +static const char bsnesVersion[] = "061.03"; static const char bsnesTitle[] = "bsnes"; -static const unsigned bsnesSerializerVersion = 5; +static const unsigned bsnesSerializerVersion = 6; //S-DSP can be encapsulated into a state machine using #define magic //this avoids ~2.048m co_switch() calls per second (~5% speedup) diff --git a/src/cpu/core/algorithms.cpp b/src/cpu/core/algorithms.cpp index 9eba837d..9b6ba032 100644 --- a/src/cpu/core/algorithms.cpp +++ b/src/cpu/core/algorithms.cpp @@ -1,71 +1,51 @@ #ifdef CPUCORE_CPP inline void CPUcore::op_adc_b() { - int r; - if(regs.p.d) { - uint8 n0 = (regs.a.l ) & 15; - uint8 n1 = (regs.a.l >> 4) & 15; - n0 += (rd.l & 15) + regs.p.c; - if(n0 > 9) { - n0 = (n0 - 10) & 15; - n1++; - } - n1 += ((rd.l >> 4) & 15); - if(n1 > 9) { - n1 = (n1 - 10) & 15; - regs.p.c = 1; - } else { - regs.p.c = 0; - } - r = (n1 << 4) | n0; + int result; + + if(!regs.p.d) { + result = regs.a.l + rd.l + regs.p.c; } else { - r = regs.a.l + rd.l + regs.p.c; - regs.p.c = r > 0xff; + result = (regs.a.l & 0x0f) + (rd.l & 0x0f) + (regs.p.c << 0); + if(result > 0x09) result += 0x06; + regs.p.c = result > 0x0f; + result = (regs.a.l & 0xf0) + (rd.l & 0xf0) + (regs.p.c << 4) + (result & 0x0f); } - regs.p.n = r & 0x80; - regs.p.v = ~(regs.a.l ^ rd.l) & (regs.a.l ^ r) & 0x80; - regs.p.z = (uint8)r == 0; - regs.a.l = r; + + regs.p.v = ~(regs.a.l ^ rd.l) & (regs.a.l ^ result) & 0x80; + if(regs.p.d && result > 0x9f) result += 0x60; + regs.p.c = result > 0xff; + regs.p.n = result & 0x80; + regs.p.z = (uint8_t)result == 0; + + regs.a.l = result; } inline void CPUcore::op_adc_w() { - int r; - if(regs.p.d) { - uint8 n0 = (regs.a.w ) & 15; - uint8 n1 = (regs.a.w >> 4) & 15; - uint8 n2 = (regs.a.w >> 8) & 15; - uint8 n3 = (regs.a.w >> 12) & 15; - n0 += (rd.w & 15) + regs.p.c; - if(n0 > 9) { - n0 = (n0 - 10) & 15; - n1++; - } - n1 += ((rd.w >> 4) & 15); - if(n1 > 9) { - n1 = (n1 - 10) & 15; - n2++; - } - n2 += ((rd.w >> 8) & 15); - if(n2 > 9) { - n2 = (n2 - 10) & 15; - n3++; - } - n3 += ((rd.w >> 12) & 15); - if(n3 > 9) { - n3 = (n3 - 10) & 15; - regs.p.c = 1; - } else { - regs.p.c = 0; - } - r = (n3 << 12) | (n2 << 8) | (n1 << 4) | n0; + int result; + + if(!regs.p.d) { + result = regs.a.w + rd.w + regs.p.c; } else { - r = regs.a.w + rd.w + regs.p.c; - regs.p.c = r > 0xffff; + result = (regs.a.w & 0x000f) + (rd.w & 0x000f) + (regs.p.c << 0); + if(result > 0x0009) result += 0x0006; + regs.p.c = result > 0x000f; + result = (regs.a.w & 0x00f0) + (rd.w & 0x00f0) + (regs.p.c << 4) + (result & 0x000f); + if(result > 0x009f) result += 0x0060; + regs.p.c = result > 0x00ff; + result = (regs.a.w & 0x0f00) + (rd.w & 0x0f00) + (regs.p.c << 8) + (result & 0x00ff); + if(result > 0x09ff) result += 0x0600; + regs.p.c = result > 0x0fff; + result = (regs.a.w & 0xf000) + (rd.w & 0xf000) + (regs.p.c << 12) + (result & 0x0fff); } - regs.p.n = r & 0x8000; - regs.p.v = ~(regs.a.w ^ rd.w) & (regs.a.w ^ r) & 0x8000; - regs.p.z = (uint16)r == 0; - regs.a.w = r; + + regs.p.v = ~(regs.a.w ^ rd.w) & (regs.a.w ^ result) & 0x8000; + if(regs.p.d && result > 0x9fff) result += 0x6000; + regs.p.c = result > 0xffff; + regs.p.n = result & 0x8000; + regs.p.z = (uint16_t)result == 0; + + regs.a.w = result; } inline void CPUcore::op_and_b() { @@ -195,71 +175,53 @@ inline void CPUcore::op_ora_w() { } inline void CPUcore::op_sbc_b() { - int r; - if(regs.p.d) { - uint8 n0 = (regs.a.l ) & 15; - uint8 n1 = (regs.a.l >> 4) & 15; - n0 -= ((rd.l ) & 15) + !regs.p.c; - n1 -= ((rd.l >> 4) & 15); - if(n0 > 9) { - n0 += 10; - n1--; - } - if(n1 > 9) { - n1 += 10; - regs.p.c = 0; - } else { - regs.p.c = 1; - } - r = (n1 << 4) | (n0); + int result; + rd.l ^= 0xff; + + if(!regs.p.d) { + result = regs.a.l + rd.l + regs.p.c; } else { - r = regs.a.l - rd.l - !regs.p.c; - regs.p.c = r >= 0; + result = (regs.a.l & 0x0f) + (rd.l & 0x0f) + (regs.p.c << 0); + if(result <= 0x0f) result -= 0x06; + regs.p.c = result > 0x0f; + result = (regs.a.l & 0xf0) + (rd.l & 0xf0) + (regs.p.c << 4) + (result & 0x0f); } - regs.p.n = r & 0x80; - regs.p.v = (regs.a.l ^ rd.l) & (regs.a.l ^ r) & 0x80; - regs.p.z = (uint8)r == 0; - regs.a.l = r; + + regs.p.v = ~(regs.a.l ^ rd.l) & (regs.a.l ^ result) & 0x80; + if(regs.p.d && result <= 0xff) result -= 0x60; + regs.p.c = result > 0xff; + regs.p.n = result & 0x80; + regs.p.z = (uint8_t)result == 0; + + regs.a.l = result; } inline void CPUcore::op_sbc_w() { - int r; - if(regs.p.d) { - uint8 n0 = (regs.a.w ) & 15; - uint8 n1 = (regs.a.w >> 4) & 15; - uint8 n2 = (regs.a.w >> 8) & 15; - uint8 n3 = (regs.a.w >> 12) & 15; - n0 -= ((rd.w ) & 15) + !regs.p.c; - n1 -= ((rd.w >> 4) & 15); - n2 -= ((rd.w >> 8) & 15); - n3 -= ((rd.w >> 12) & 15); - if(n0 > 9) { - n0 += 10; - n1--; - } - if(n1 > 9) { - n1 += 10; - n2--; - } - if(n2 > 9) { - n2 += 10; - n3--; - } - if(n3 > 9) { - n3 += 10; - regs.p.c = 0; - } else { - regs.p.c = 1; - } - r = (n3 << 12) | (n2 << 8) | (n1 << 4) | (n0); + int result; + rd.w ^= 0xffff; + + if(!regs.p.d) { + result = regs.a.w + rd.w + regs.p.c; } else { - r = regs.a.w - rd.w - !regs.p.c; - regs.p.c = r >= 0; + result = (regs.a.w & 0x000f) + (rd.w & 0x000f) + (regs.p.c << 0); + if(result <= 0x000f) result -= 0x0006; + regs.p.c = result > 0x000f; + result = (regs.a.w & 0x00f0) + (rd.w & 0x00f0) + (regs.p.c << 4) + (result & 0x000f); + if(result <= 0x00ff) result -= 0x0060; + regs.p.c = result > 0x00ff; + result = (regs.a.w & 0x0f00) + (rd.w & 0x0f00) + (regs.p.c << 8) + (result & 0x00ff); + if(result <= 0x0fff) result -= 0x0600; + regs.p.c = result > 0x0fff; + result = (regs.a.w & 0xf000) + (rd.w & 0xf000) + (regs.p.c << 12) + (result & 0x0fff); } - regs.p.n = r & 0x8000; - regs.p.v = (regs.a.w ^ rd.w) & (regs.a.w ^ r) & 0x8000; - regs.p.z = (uint16)r == 0; - regs.a.w = r; + + regs.p.v = ~(regs.a.w ^ rd.w) & (regs.a.w ^ result) & 0x8000; + if(regs.p.d && result <= 0xffff) result -= 0x6000; + regs.p.c = result > 0xffff; + regs.p.n = result & 0x8000; + regs.p.z = (uint16_t)result == 0; + + regs.a.w = result; } inline void CPUcore::op_inc_b() { diff --git a/src/cpu/scpu/mmio/mmio.cpp b/src/cpu/scpu/mmio/mmio.cpp index 046bebbb..0ddea2ce 100644 --- a/src/cpu/scpu/mmio/mmio.cpp +++ b/src/cpu/scpu/mmio/mmio.cpp @@ -84,36 +84,32 @@ void sCPU::mmio_w4201(uint8 data) { //WRMPYA void sCPU::mmio_w4202(uint8 data) { - status.mul_a = data; + status.wrmpya = data; } //WRMPYB void sCPU::mmio_w4203(uint8 data) { - status.mul_b = data; - status.r4216 = status.mul_a * status.mul_b; - - status.alu_lock = true; - event.enqueue(config.cpu.alu_mul_delay, EventAluLockRelease); + status.wrmpyb = data; + status.wrmpyctr = 9; + status.r4216 = 0; } //WRDIVL void sCPU::mmio_w4204(uint8 data) { - status.div_a = (status.div_a & 0xff00) | (data); + status.wrdiva = (status.wrdiva & 0xff00) | (data); } //WRDIVH void sCPU::mmio_w4205(uint8 data) { - status.div_a = (status.div_a & 0x00ff) | (data << 8); + status.wrdiva = (status.wrdiva & 0x00ff) | (data << 8); } //WRDIVB void sCPU::mmio_w4206(uint8 data) { - status.div_b = data; - status.r4214 = (status.div_b) ? status.div_a / status.div_b : 0xffff; - status.r4216 = (status.div_b) ? status.div_a % status.div_b : status.div_a; - - status.alu_lock = true; - event.enqueue(config.cpu.alu_div_delay, EventAluLockRelease); + status.wrdivb = data; + status.wrdivctr = 9; + status.r4214 = 0; + status.r4216 = 0; } //HTIMEL @@ -208,37 +204,33 @@ uint8 sCPU::mmio_r4213() { //RDDIVL uint8 sCPU::mmio_r4214() { - if(status.alu_lock) return 0; return status.r4214; } //RDDIVH uint8 sCPU::mmio_r4215() { - if(status.alu_lock) return 0; return status.r4214 >> 8; } //RDMPYL uint8 sCPU::mmio_r4216() { - if(status.alu_lock) return 0; return status.r4216; } //RDMPYH uint8 sCPU::mmio_r4217() { - if(status.alu_lock) return 0; return status.r4216 >> 8; } //TODO: handle reads during joypad polling (v=225-227) -uint8 sCPU::mmio_r4218() { return status.joy1l; } //JOY1L -uint8 sCPU::mmio_r4219() { return status.joy1h; } //JOY1H -uint8 sCPU::mmio_r421a() { return status.joy2l; } //JOY2L -uint8 sCPU::mmio_r421b() { return status.joy2h; } //JOY2H -uint8 sCPU::mmio_r421c() { return status.joy3l; } //JOY3L -uint8 sCPU::mmio_r421d() { return status.joy3h; } //JOY3H -uint8 sCPU::mmio_r421e() { return status.joy4l; } //JOY4L -uint8 sCPU::mmio_r421f() { return status.joy4h; } //JOY4H +uint8 sCPU::mmio_r4218() { return status.joy1l; } //JOY1L +uint8 sCPU::mmio_r4219() { return status.joy1h; } //JOY1H +uint8 sCPU::mmio_r421a() { return status.joy2l; } //JOY2L +uint8 sCPU::mmio_r421b() { return status.joy2h; } //JOY2H +uint8 sCPU::mmio_r421c() { return status.joy3l; } //JOY3L +uint8 sCPU::mmio_r421d() { return status.joy3h; } //JOY3H +uint8 sCPU::mmio_r421e() { return status.joy4l; } //JOY4L +uint8 sCPU::mmio_r421f() { return status.joy4h; } //JOY4H //DMAPx uint8 sCPU::mmio_r43x0(uint8 i) { @@ -391,12 +383,14 @@ void sCPU::mmio_reset() { status.pio = 0xff; //$4202-$4203 - status.mul_a = 0xff; - status.mul_b = 0xff; + status.wrmpya = 0xff; + status.wrmpyb = 0xff; + status.wrmpyctr = 0; //$4204-$4206 - status.div_a = 0xffff; - status.div_b = 0xff; + status.wrdiva = 0xffff; + status.wrdivb = 0xff; + status.wrdivctr = 0; //$4207-$420a status.hirq_pos = 0x01ff; diff --git a/src/cpu/scpu/scpu.hpp b/src/cpu/scpu/scpu.hpp index 687862e5..764df2d5 100644 --- a/src/cpu/scpu/scpu.hpp +++ b/src/cpu/scpu/scpu.hpp @@ -12,7 +12,7 @@ public: priority_queue event; - struct { + struct Status { bool interrupt_pending; uint16 interrupt_vector; @@ -21,7 +21,6 @@ public: //timing bool irq_lock; - bool alu_lock; unsigned dram_refresh_position; bool nmi_valid; @@ -65,11 +64,14 @@ public: uint8 pio; //$4202-$4203 - uint8 mul_a, mul_b; + uint8 wrmpya; + uint8 wrmpyb; + unsigned wrmpyctr; //$4204-$4206 - uint16 div_a; - uint8 div_b; + uint16 wrdiva; + uint8 wrdivb; + unsigned wrdivctr; //$4207-$420a uint16 hirq_pos, virq_pos; diff --git a/src/cpu/scpu/serialization.cpp b/src/cpu/scpu/serialization.cpp index c9e2582e..39e92ce5 100644 --- a/src/cpu/scpu/serialization.cpp +++ b/src/cpu/scpu/serialization.cpp @@ -13,7 +13,6 @@ void sCPU::serialize(serializer &s) { s.integer(status.line_clocks); s.integer(status.irq_lock); - s.integer(status.alu_lock); s.integer(status.dram_refresh_position); s.integer(status.nmi_valid); @@ -50,11 +49,13 @@ void sCPU::serialize(serializer &s) { s.integer(status.pio); - s.integer(status.mul_a); - s.integer(status.mul_b); + s.integer(status.wrmpya); + s.integer(status.wrmpyb); + s.integer(status.wrmpyctr); - s.integer(status.div_a); - s.integer(status.div_b); + s.integer(status.wrdiva); + s.integer(status.wrdivb); + s.integer(status.wrdivctr); s.integer(status.hirq_pos); s.integer(status.virq_pos); diff --git a/src/cpu/scpu/timing/event.cpp b/src/cpu/scpu/timing/event.cpp index 82de9247..dde115b4 100644 --- a/src/cpu/scpu/timing/event.cpp +++ b/src/cpu/scpu/timing/event.cpp @@ -7,13 +7,6 @@ void sCPU::queue_event(unsigned id) { status.irq_lock = false; } break; - //ALU multiplication / division results are not immediately calculated; - //the exact formula for the calculations are unknown, but this lock at least - //allows emulation to avoid returning to fully computed results too soon. - case EventAluLockRelease: { - status.alu_lock = false; - } break; - //S-CPU WRAM consists of two 64kbyte DRAM chips, which must be refreshed //once per scanline to avoid memory decay. case EventDramRefresh: { diff --git a/src/cpu/scpu/timing/timing.cpp b/src/cpu/scpu/timing/timing.cpp index cc6ba54f..1af5b463 100644 --- a/src/cpu/scpu/timing/timing.cpp +++ b/src/cpu/scpu/timing/timing.cpp @@ -52,8 +52,28 @@ void sCPU::scanline() { } } -//used to test for H/DMA, which can trigger on the edge of every opcode cycle. +//used to test for ALU and H/DMA, which can trigger on the edge of every opcode cycle void sCPU::cycle_edge() { + //ALU + if(status.wrmpyctr) { + //MUL performs eight iterations; but because cycle_edge() is called after $4203 write, + //a ninth iteration is added and ignored. counter is inverted to indicate shift position + if(--status.wrmpyctr < 8) { + unsigned shift = 7 - status.wrmpyctr; + if((status.wrmpya >> shift) & 1) status.r4216 += status.wrmpyb << shift; + } + } + + if(status.wrdivctr) { + //TODO: need to reverse engineer exact algorithm + //for now, simply emulate a delay before storing valid results + if(--status.wrdivctr == 0) { + status.r4214 = (status.wrdivb) ? status.wrdiva / status.wrdivb : 0xffff; + status.r4216 = (status.wrdivb) ? status.wrdiva % status.wrdivb : status.wrdiva; + } + } + + //HDMA while(cycle_edge_state) { switch(bit::lowest(cycle_edge_state)) { case EventFlagHdmaInit: { @@ -139,7 +159,6 @@ void sCPU::timing_reset() { status.line_clocks = lineclocks(); status.irq_lock = false; - status.alu_lock = false; status.dram_refresh_position = (cpu_version == 1 ? 530 : 538); event.enqueue(status.dram_refresh_position, EventDramRefresh); diff --git a/src/cpu/scpu/timing/timing.hpp b/src/cpu/scpu/timing/timing.hpp index 476d88e3..c591fb39 100644 --- a/src/cpu/scpu/timing/timing.hpp +++ b/src/cpu/scpu/timing/timing.hpp @@ -1,7 +1,6 @@ enum { EventNone, EventIrqLockRelease, - EventAluLockRelease, EventDramRefresh, EventHdmaInit, EventHdmaRun, diff --git a/src/system/config/config.cpp b/src/system/config/config.cpp index cd86a1a2..8e38e67d 100644 --- a/src/system/config/config.cpp +++ b/src/system/config/config.cpp @@ -11,8 +11,6 @@ Configuration::Configuration() { cpu.version = 2; cpu.ntsc_clock_rate = 21477272; cpu.pal_clock_rate = 21281370; - cpu.alu_mul_delay = 2; - cpu.alu_div_delay = 2; cpu.wram_init_value = 0x55; smp.ntsc_clock_rate = 24607104; //32040.5 * 768 diff --git a/src/system/config/config.hpp b/src/system/config/config.hpp index 54adbc3b..f72080d6 100644 --- a/src/system/config/config.hpp +++ b/src/system/config/config.hpp @@ -8,8 +8,6 @@ struct Configuration { unsigned version; unsigned ntsc_clock_rate; unsigned pal_clock_rate; - unsigned alu_mul_delay; - unsigned alu_div_delay; unsigned wram_init_value; } cpu; diff --git a/src/ui_qt/config.cpp b/src/ui_qt/config.cpp index 918a0996..f9afe4f3 100644 --- a/src/ui_qt/config.cpp +++ b/src/ui_qt/config.cpp @@ -23,8 +23,6 @@ Configuration::Configuration() { attach(SNES::config.cpu.version = 2, "cpu.version", "Valid version(s) are: 1, 2"); attach(SNES::config.cpu.ntsc_clock_rate = 21477272, "cpu.ntscClockRate"); attach(SNES::config.cpu.pal_clock_rate = 21281370, "cpu.palClockRate"); - attach(SNES::config.cpu.alu_mul_delay = 2, "cpu.aluMulDelay"); - attach(SNES::config.cpu.alu_div_delay = 2, "cpu.aluDivDelay"); attach(SNES::config.cpu.wram_init_value = 0x55, "cpu.wramInitValue"); attach(SNES::config.smp.ntsc_clock_rate = 24607104, "smp.ntscClockRate"); diff --git a/supergameboy.dll b/supergameboy.dll deleted file mode 100644 index 138c042dbf5192ee5968acad9c37cfb9942a905b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750254 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 z

1{>ErLn9c0X++wdIPt?*<1Osz@!&^94<%h8R9#a8)}qJLdgHXCu>=99?z4M^Jz&p=J|Qcu{}1 zS8>SvsgU7{#7ri1n11#p-gAMq-$ zM3ZY$aSwRo3aAdqAO93TfZ_8`5cz{84#0DX@3c6IUFyXSVG>VSv!8>M0I3L+d1+CD zARufzXq7+{TN`={LBbb?H?GIieI3^=o|<9fAQt;z)2jm7I(fIx2&p z&y|H*7(&7il9$~P zr3vusOLv4k;I0D*os2hT9Sc$A0Y51JF3TDsL(261x-A$>jn8+BDUOi7F~ z@Uhg@Gbs3CA9DJ!Iy~Elb{_vrJTTT1r}S&y0ns*bwokTQFuaVAfNW6*38bWlhA3GM zlEBYyq{6D=;#oIRQtcKYcEC-GbmlsA*ZT!8->HHNrWS=5o_qANJ06zI^FX%kf25M9Mi;W|y34f?=RIq-5PJ2rxK-6brkI3XW6xX2H3lGkKd2ZLW;{ zfGe_3HHpG3kjS#-EuD26cDwFYg3>9enUWDh&u}4l&r}FGhKuGBaZ$iRS{?L*MO3;R zjZ3Fo20CNwVpZ|UKyGZGn~DK{B?cGPqCI(^WeV1tT$J0Pi=|^-&#`tnUS8%r;Ybjj zk~)oPM{+BEeQ2_GxYM<3B$XY5jwB-+o_17`x|$8}Ym=(BV+kFP#E~?KJR)aS4H5BE za|Mb$Du0LRbMIOCRylURUYfoxmhvZ`3UMX(6@4)s<4D0nn#&e3V>v;C@kHSfuTwa`7eo9OoyOjOg**g;*{N3DGQ-XPtD@o~)F zN*XbNzUr8S5C$HP$g%F`WV`^~-xb-1a2=n>H=BMoktKg|jFcER*?Sie;~Jxqizq)J zd&+(kIj*h&n_w9#C4fxtmHU!-t2^$CqK#Q+(PFa2{^-HVz8|5AmOo>=c7^IfNFFLlqx;kaYe zR+UwbkKw}eIA8%SP4!%TtnsJpLHabBG}@9-)#fKeafseVXJguBYyK0{aUpkhV#}8a zNrZ`wquxgU8QXn*b#FT3Y5ke?fBN_)qtXYLVrOFqVgnowJ5AEksL4rT1~p{u!-IGd zol;4bZP<*md8s@*s;!h9!n-SMX{(6YU9UfGJQJd{OdPr;cb>8r&Qps>`7cz>Agmsx z3{LLFmAw=jH#V4unOcSVdbTc{vIrqxh#vIx_0X1^VdB_6s;(fVP~FQ_;SGtY3K8qb zB-wE5LQoPXiIkYLKsHaB32sd^aL7a``|DU{YLMWzr1$bct#Bi8WPPR*G=5zFDXhdObm{(&=3FnGg9AoLPaZO zfRxMH9Pt=`!3b;vzPPC;XGVhaPy@L&2&-WqJ!#B4d*wFjKilkH%aY5XgUzGev)?(P&T@y+MjF5R!Ht%<$@P zzD3eEEOL0Ui@|Vf@c>ag9q+IStpuHyVEd^))Xvawwc#8q?!Wf-E>(R1_IZOIGfCxr zG0NTXLOkuCo0Z<+_H~*ZuQ)dN!>Oq;I7yidG~n?P7i{85mw-Q9nlikyce|_}R>6(k ziAsC4ZeArh)}w1(-MU4;KGw4M+8rhkTNAm0980ZdT)#(cfU+K%}MPqhkv(vd# zDm2QI;GMWYIwA6XPv|H41A z{%F1rZ|^n>Pvt+~4a&v!>ra`;T~~4%(WF@f@8=dV-N5$jFGNn?X~Cw933Oumt ztg0=+R$;$*CMTYn?05h>uYZ%~&z&EEXVbV?{mRLywCy}t7nHNF(~PdAc|TynK^$l1 zP6Ww}kSqr7biI_Ph4kPp{MzYhF#D2^DI)E6YCa&3grSwz8BCQ752)RM6`6k3l(QR1 z;9qiOts3duRKgkx9PubP65;4;yEUW!RuC`GX(b3Q;hj1H>4 z<*SC>8A#XMN5_8!$qY(8yXaH}sG{Jk=5yXUUe6!so!uMRwLkq};AWN*3|G@a7%gD9 zWUL-is|Q#)Z<5XjhV=Y5>ZKKE8Y$>Gj5`owJ*Gd`8k!K`rPZPOk-q;~m-~(!RN7IM zg08APX)y}$@ONPvZvJ{w36s#Mx$dmVN6wOxDo&+Fj{Cc=Hl#`gf947gcQF3r2IUNV zMy!WF2VL;u90eECaeC18O`vPHmU!WXB-0|ec)>EWo77gtd(-D;_L)gMN2eoImFMSQ zIz%v1St>?qO4wSGjxtmsR=c0*?rz`=UR=)M1;$;~Y})#6wwuI^O!ab)>t+2mjG|Ru zgyFoNdVZSgriP|Y4KnPyX^&aOKO0SBm21rM2!XW^@YIO2)?)q3MY0l|W580SWHQ z(wHbm;}F-a)^ z07bB|FunV-Ky1u>X^+4~?pJpn9w>U4jjK5qBF(RYkPz(5U58TMqEj!aV*e zx#E!KAw^}n$uGG-@6uip4l5)u(}PnU^un11Qb+W3`U1ObmIXl!C~7?w1uHa2#%QcE70P*c{ner-&h7 z_d%$pf~nvo8&)!7k(uT*j=GJWPvbo0tLZ(k&Rp!9!)V0#ZbfRBG?vUt8B}tK9fP$e z#(p?&&mzFt6Q~{NQ^xtt+}x^%UnTlg+Tk74$XS~2AV<*9+0p=)YVXD~MUMe(#)|z69*`g4p)%4-;4uvQ@oKVz`?Tl-kNkCB8RtXgPR!=gFKuDY06$ym&F?9k< zoe%oh)+Pf01Qk{F2A)D>hwrb|C!fj{%AV+~6M?WRwu@rGmay>L9^(>YIQ-ZHEfqy#0!|B0-{kq6PraT99u`YE!z&^@>e(Os2o6B!sauFj$0%+ZW2I=eh6cq7=!qtsm|o z1=deW7S8QYgg>}rQ;*aZy)8|};VgVMa|ZwE>W`NyMNGZf_1%?m+Q+Q6YDbH-gY-f^>7* z7XdyArYLO&|2{SjeYkGHI{1Oox&TdS)*xNxebYeRZnkY*Wv2WO@~En%6puvsw53{- zkuCjO-3%81V9APyZ>4#$`)B9LChvc2bTmJhQ={?+ehm4lKbbyE$f2 zgq4dZy1qt66rCQdC?q;AQ5!DXRsGI*6+BkjehO_Hv-ww%83ag*3zwE4GG)$r?Y0X3 zi^07DxV=vK;`p2QtY=S4(-ndjh)j(U-I}${fUE+T*$AB< zMWpn7!1y^Vl8N(kQlD)1BtqTO3i z|Jt4BiZgTc%7Dj$^15-RMsnw?n+LO!ugQT^67)d z_fTypJvTLJCF-4^BFRGiHQY{gFvjg&d{vB$v*jdvpV04wrM5)1Twdo>Zh2tC`&zm4 zx_Egh$H3|WpVxNH{-VVd6{}%E=!Qh;qW!+?BJ5(|*y)^%$-_N)-d?JACH8sbL(Q>A zPWY=ZUg>r=GomR3k^pkz^k-Hgl6i$rKBuCFT6TZ)r1Nt%f$H*ID%%=(jzP(xe~PB18kSrv)8 z#Y}xHQt6PrL`q;z4$l|=g!&!ea3$q`nbSGIqA^1#0)lyf)Y(u`MV=@`5*n&VgVL1P(&C!O; z=@D5kk+&!esZiR~lfe<294!lSTK`gXn&g$r$WwDXthQu%jn>o8pCWaSLisFDuDj|@ zHA)0ts@AgGg5e&)8)Uk<=j}k%$Xav1yrg%Mz{X1{OE}d7=1c4iaF0`Pmy(G3lo2;*DbPeV)P-I{y{jX$j0 znE%v%&@YC*N|Eo_Txm?nng~=gUImG^5(fy;r%N&^7xSHOYlOWO-0@oEhlZszoJE}Oru*K1S6(DP}ru4P{|yHf+V(_9QJ zurS;t=y3~871(eXqAEx&Xw%<+`q*1kJVe}q8~1zI zqSleTHy>_8NfeH9WLlRpiOkGp3y#E-d4;~3sosI7_SJCQz^Q98D6a^_zLB^Uq7ayg ziprrB%IK`DD-g)%g-zN#30~?#USFO{W`K(k-gX0N$m_Og1vNS zw?-9~y5x zciCVO8~040f^YxRD;_=j0C2^N#}MK=vAps}N-N7RruHmH@rQQRhbw58_>VogEgl}H z7#c;pKO?LV-bOQTWw4+W6o6nEnid&vDdKt`lksFT*Wr~n@||j8^j&;I|M2vLk9nnJ zNnlpOLYdjMVG3nCk`oOn-e~L5AW*K;v?utO?4&#u7P4u&k+$*Shz5fkF_7-8OU4=L z+O!fi%)Q+V+W0NH&AAUWK2BBojVbPDwqZEW?e*JfD+$hO22931=OvcdSj*^e1JLl} zthP8uo^Z#J-ol$B9V%!%Xq>5@j4M@v5c2vYG94`wbkFspuA!)OYW_KVSCyM)yv~wZ ztQ_V+VX&&euYbexPH`^FlxLvsJx)<|=8h3oT(P@r{cVZVf%+S#8XRZ++e4}BFe3U~ z9p7uuvbleah(M>h800s$?za)xdkK_l*%wS?8Mi6aA%|%>S8G8uk;W;-*;@~}^;;-& zM3VZnfv&>J67Wy@g6uzZ76pPdVJod=1R3#a-;~41IC%6wLDg($< zRw(1c>R3!&8*ak4a#WsXqrG6N|CjcTbECpBfLjMu#6 zd#5@~R}k@=E>>1aGPRlgToVl&^&2Wp8iA}WPIuPFTB+}qxTcvYtOw8|8&Fo0eg_39 z9}|&Mj89hLX7<~0c{{!syfO^G$f-`OK(;4feJ-9#HBhkV8hDVb;Z#n!r*)**866~a zwYpv5BHgkH5ji zPjY5|%L*DduKV)sdnRGOU7q567E_;}VE;|+$E1%jKtf zVTq6FnceGk9NpMyIN*hMksfO=V>qjDBw?dCIPuAOCUbJ&1NIIv?{FT?B?fObHjpr6 ztayPQbH_qj_JF08fZ1Xcow$Ygzflxg)imnW0`8wk{CuG5Oln;8<2u{rt}s@NybXA( zRG32cT6=7`_+s&I+jC@Nzur<5zIGQzH1*PO8TiM7v?rz)>-C8Zd;h2n-Uz|C&*(pD za}=yMIu0nsVX&sHLDs_>1Rr|rQ^j{%53}Zfe_pD54tB{|p^G~^i4;BM=1S}W8u#T9 z!@%Pb;~hHU&)VWc31d8mzHTbO_6*+-+eFUbX)j;yD) zJFw3$nza`8SAm+Z>Gdr9jju-0xB%!VdgA;0(UhE>!90IBa0y?s52BL7FtVO@F|>Pt7W4U`wEcQ39U&6SiotXy6BOJ@5t z^!e6y#)<3o{iP*Aip8x(GO}Z_v3p@pQQc3Q`*3Gi`+fV1VAHlqXW)=n>WcIC&>GFF z*eG{lup-S^C3NqTG5lU^EMo^NKkL{(8l$VBg7d% zM<3I+*4dwN(!MeB`*b5;T>2}4H|Y#}*7YsdV@{}oo`ac~g&%p}&z|M)V2R%}4f#(h z(jTuw3mmDsIBWLWq3}5%kAyP97L5fA4;SzjzNEi^UXr*FK};BCPG3JwAI#0(pnJ;h zcf=e$@!+lhzLQfn9+%VubPp$Hc#XlB{aoMcpA!HV zIG}&^r0f!K-@M(FhOorXGGD!tfBgK$f2w+ar-8YUzZ%Qk$tEjM;sROUdq%wYmkaJz zYW01W;-$_^L4N=l_rHJ}xrB!3&wd=6?qA(0dfj1!&g#Ltm=uTOD&SYB3zuTzWc(F4`Dtn7)Zf3u z3+)f*g#v4n*g()`qtCd~yI)peUwR;_WsbJjVci9T?uQGtdylQ(6`T1scRV|ONNZoM zz z9^3L&lX{oNMAhc2FW#KQ^pxm@-dno0FY3Ryz*#C-;Klfd#hC7#tw-PX858d+@R&15 z_=8q)xa`n-n?FnPyjzvmV)4myP~|U@&3^>^_iZVPIp@wzc)?3+J&`!;s2;PugNQT*SVRC6c1#)6Mkmlc$dsBOR1WDtm8+mbkQ~9zAol{Uxf5$0w3b zAJ)D-mmnn1T@|ybJJ}S8TqcPnw>K0(n=uZHkL5hMzb5VG2Uz?zns!>5`~BM^C-s5& zr?a^I;O}|WpzG?~yz?oiuk(Munuo6|Ht|3qFcB6&yUR(9~SLLC?pebUYNl6och0@W~jPj+gk~wgu}@B6o2p-|Y$7$pU3t`Ci@Z_%`vs zhooo!_r)UocHW(6-IOcX8LYpcuheMxu7dWKl+yD@F17FeC+Ws8Md^H)>ho0jE71RT zkE9%5o5mh{WbwRtTdul`9z9w0bFbgY&sD4t;cZsXQp1wwC#fCy-`jTZm+*c@@e#59 zFMXcAmx!jOd|p8@D~YnDYUp@`eFm&n@H9O}nSOXFG&-4gMHj^EGD`L{_O$bjznO8rh-)J*wI6gxL8HH3);hdD%aoN zmF9t(hn!0_H)5hgyrRZ{D^Gedch4~Ta-D3@IZmTF_`KYE8Tb5u1N>vX{}4K`wt3qn zvyVad#Jr%?Cj-y69B6)cboTK>>2Gi3NgjqkeWH{iquCxPr^Pmn>&|eFgD0nV$c2X~ z2>vBUj6b%v4Dro#NY#|vqH_tZ!x&QD)R~EGqzPg2n16O66H9=tq1$~o06*M>a+oO* zhg6Jx{&zv+2(CWIxE0TK%i2Wqa{Adz=r)z;yC+a4(Za6}i({8R9(`jdIop@}!OZ}|@osaKE`Lhf@f+a*3o z>#w)Fjge9Q>xX2BSc`Z#xDoeI+odN+U7A!s;_rSmUzZOe|EVnU;F z!KQAXA*#1m#bfnl-HXRXZ@dPHIIQ;IE*+{SS??gCx9F8?YK??y;!QIe=mxO(3js)0 zu8QvgRyg|qe%lUwIcO{pMj8di?oUrHz8y8lDqrujb&T~LyHmlmGPH@XtA*7$C`Y=g)R-CZ=7HXN8e zzPh9t*MaGAnA*Mh`PKg7dHqf6qI#{bo0PcfcAc*`2GNng5Hp!v(BNsez%e(TMe$9J z2IZm|D6;nCAvc$?B2_i9?phJ&Zn`ZZADXa)F|36w%0*x<)sxM0g)GHv2(V^w*%&F1$VB|>xZ|Vippgssb!0o z*PHWKt}9!rC!6GD*oB%0ufzYlc)a#+a;5dI^tR-a0g*27$Z6_CQ4j1btfhoI9-IHE z=Nrn+4?6Q)6QRX9js4nxX{GyWz3lI}X>Uu0^cy$hZ8!NY#;3K_=49bAkAm!ROXm=m zubXKE`XSKL&0Cb&oKC*=c2-|=^YdK7)HBjFEb2l40r>>BR}Oxlt>Dg?n%-3rZd7JAQWGB*%yDnN+)+K(TRyT+$h81t5s)Vg7+cVNzvs$7JGf|A-R3xnw)+B-ux^e0=Y z@^OSDRlW$Bbhq269XLnYEREdp^ODN;0nZ7ohylVPb9#d=Qk zU$xD4@WqB2q$~2h;7{&N7@VxoM;HX8-wJR?D1m7v;GP>#%NHAxW$>5Gl_+nWUqhx7% zdGXGQ&^`&nPl~yyImY6)TZ`F3UG?~(3J^?Y<-e#mHf?c1nC2a?NpV(A-yw$VCuRqS zlD>kk$+0c&b+UfFSNF1spE+)i0r*-SwN3H?)X9`o#B_r!hwqOD5FQa+ZYqt*&n-<& zJGNbTAuF!hzF*h9*4u^`y~~y7bBeCDRsnyCnD|WF!KRFwRSB~Cc z9^l^F{xa+stUQFOAfLw3Qw4=C_gZgsr+DgDbq~vbcZtCp%03=MwQPH=4QRLRPX{f@ z%f{opnqy!5{Se2_zVG2?k!x!!Q~tnVkrvXu9GmZ$XV>^m0pcrAD)9P-I(owTU`W5I zCKo9tQ*@qj*fMo9Q?5C~M?GS2;JdXnY77x<3f=?ST)JU&;1RkuOQpX|RT0y_uXAZL zGov4Vfbrw_$1cZ+fNtwDrke3YyqWiJ#m|SL+0@Bv*vbCF4EY%KF^DzMJtE^nyF%KL zh3Fw2B9^KFjHSC|%8;Uy<8~e$kQw^u)msZ+=AW`8Hrh~XtSOX3L$o&t^~*HNXJ2(S zC_1rW;&Y%cf`Fkv`R5EIvaOM>^z=pmOs(O15)V)iNwkN6b= z8Wc%?j>G~;Md;hQ_e;tj5R^&xyumUaUt+Jgfb~I9fD_LMW+65!kNAOoVJ17db`9z& zBLHRjCJ8xoK}j(ZZ`gxVNC@3QQIEF-3Ir<>dqn?4A{zt(0UCqd>v9$TrqF#KvkoVJ zZx9qXD}@O$r+u)EILG?L%*t}F?vryN?xP2i-7O3@-0+51$)|NN%1b{(^`^4S)X|dQ z-lGq@HA$!CVJXKHv*wa!9E>ffC}UC!4B_kJ!jws?XkNZiC9#t~aKyY4a@0pVC3~}s za#O)bC#Wq%w8GyXi&~fng=34YZ*y-+^!-WngY-xzkywt1yL)U))Mwb@66{0Y4~QT3 z=DowoN}+Du{{-PBy|h)1yOQKI@?8QZ2)he-St1+sDBJzATqGM1+13kw@)?cG%5q7E z-Qt7Qly`^V)XA{6$z3*e;054up2sbA^{ zh>rEa5-UT15xvmy&6fHz3EkAy!JVs!Ys(WF%HUg>Kuel0rbVB&X1CF3P6z;j<|jlzE|`MDiXfgMv(`bVVM_ zh&Y=O0wbbd<51DE8L=6niR&O@zvyhlGpQ5`}A6Ze?Th z87o(5-i`KueRPXPN0ix!Mn{xNPff3lz9U9#eqZ{{C9XN+z5_?6szc0)-{Idf6>}GZ~HF_F9RgOD#3L zvQD`iz{?~~xB&L1;^OhBcm&-H+`|#e2!RNg0RlP+&b=RRV!}uAi}0(HT3d`kihqy= zR&vK~!E8>i$qjtS0uH$Kej;E7`3k~^*7`HcFMBZebh(B4{4n$who zZv1XXMa0yM0XEBRhY(cN@=9mXP_t}eDXef0#tw8b^}7nz8bj&|Q9(sOa0hiHg7^Q; zKG#GYfbM7)BWcW=?}JGh$tTqC|8)9;f<~6l4>#_ZzqG4ID$=2O(nztl8>LO;mU(W3 znEP=Qftou{+LkflmjDteMvdNhRwdOxlaL=OBr4 z?BF%tq0>r*l6j#lh08A37`^&@pad5yrR9Dru5nAt_*wQzzuTC@AHeXDe#n=Dnv~A0 zx(smg;r5F`8(q9*xUy>ud*3SA@QJC^%QI+w%c9I4(ATe^QI5{ zHroEOn?A;03g+oV)vi%JF#9;F;Q6>2J!@Q<!^Wb58bJ%*@%#G#4cx4N@gBZY=8~UrA4fyP zec|8g1`uRf3P4V6VDd0|TqP!ZkUwtJ@+$1hiJ<;1&@sb{=QQ3-n=LPhc>1iPeZ4S? zqey0NM6cD3Qt{3Ga0VF-Tqhxcw9Cfm=pjYJ3ZI?3E$xtzB6g>3UFFRM`bsWP+s7nW z4DOso2>tQJc_9gON@%sH(I{bWX3jYKCz-bQ7R2GIB&9a}6DZS5vfb#ml7h9EM?&Z4 zS>KSY>)_M8xu!BT7B-uG1NdGH7(M8Jjq_^57L?3d?|Us_bdPLdg^*#8#O=6|qB$&f ztCrjRVo8~JZ=NK#^yP|7msb%&@CmxaSytk>_e{OcH&HFFxro>?Holov`sZAanx0D~ zvF|i!4%l(|bZOBeE3SjYp;P~fh;Qe!V&5a3MSz=hKcngp)n?BCwrXG1mfa=z7xn4! zJq=$0u{Gc!2r#fxY`?J2!n)EJn3-Pr2OuM}m^F~&mLCdVpoO4f?E{Nqd#U)-l}lFj zPkzK_R^OR-leJp;z}b@Ctl@D_lO*_g#uHr`>i(y`jQasufn^qr_#1VHp5vQ*W3kjv z@=);Yen4JvL@xy^C|Av-tRv6opDX-k9_#o$vYlMb#LWB%tjRYZ$zj)$kN7I8yh4;K zN0O)^2d%OX>fh?ilIV8&_ft=8KR==JC`$q3qV zt@LR1Ed_3K`XlStoDF4?j*%_aXT=J>>hr_e4&Pjukel4R_Mc^6=96fss+bTg_AQXh z!ZLpPUHKYqOSrYLSK{Ni#$&5!t~5F`SLeLIY4TTHRBI$iT1eNuS8hvm6gZK?Hp_n! z^4^V(=r<}{oqhAPZdfB$JIqrp&f-lG813tow<8Irje?J)8sk?a^LAd(Z}zQWg)~5VU!xzFqNzic8`Xn@htCrwy;@A++BPaSu=}S`a#{ZN)^ajQnT;- zukmNI;qzUsho}SYbM-gdsCRZl=(ogU)1*`|ruG=?O7G(W^S`EL4DAg-Ew+SM3Fl}qsjH99ex04W4e^s?{&V_dzVW zW!auO*P10El7U(om{a0 z?8T-}37j)az)IGDO(q_{*K*fBa69)6_kb?vW|nWvse_#BWoc%l$X~{M52GxV%R`{T z@3M`fmkG39W=F&RM)6!z#RG@F+-q6w?>oSC!tlq|A?`TZsP$P%TywnU4yI@J)*3sV zqnBPreD3-jpOY6Df7-Y4_NPJxP2zB(M1VIim`YF}b@cC8Rp*hv)q3ft?*(as;Wiej zxFt2mNdx3YB_|$w=DCA1?xVr)pa4pZhM{v0k*S zCFU9ATYt5K7l zJaG%{#z=|!-91=ZSj zl5e|#&X7ENZ{yRYVFv2Iv+Z7aA!Q1?j3>*v+sxf9e!9F9-`}t?$#Ea22}2BoNZ_~j z53E5ONA#yMk9d^A$&%Uk9tD%ml~??w#l5v0=Yd#wsJ7!y>5V^IT@UqW$*v@nLyim&<`=dd&CN3|P+R zX|#I(wSXiXQJ~~N_JrPUHo^60p-wbit{CA}FNSA+K<0C%3EcX-3@U$mmMT} z2qy~?Ke#_@StMvV*8E19wm2NPS8RN zY*FlKpt0(1b|fcB1xy@i^fs+UJ_Xg<6g7|js5UcPu5NJV_gLW(!j&(jNS<2pfm-lde5tdSj+eqTCbxO# zflCzz?`kTy9doCpP911=cCS2{Z(M!LxG;0*Vu7u(eb}8|RMX5Q_YZ)rrLoR4UZ=hO zczXDnl%<)vQ#z!=%r9=ee372cir4hkCcy##jfg+XNU4AyLDAg|HvH z?ne)?h=Fi6xa~;4aQeUgYSa9j_pUZa`(whmU5*|8*Dcs1P7t~_bYB3IbJ}-ETCWxQ z;FTE3g5J78ocCmp9~LP`*aDw;(htf?eD8UXPp=`4d({L00rs0*pM6zoI>}EBIE!T` zFFp6lEJOaegbK(TBY!JJUwedIk_0x_hm||legH>8UdA!nO^Qzzx*zt_IQ)|@7VhVg zeKXfg)8!IW2klet)A<27yxoQ+;k|`kpq7#nY$`8ThRuafC;IPNE{s&u8`AymQ+Yy7 zcSaRLN!t6xoKIb+@+Ozhzg{jKuj%DV`YHwn@*V5*EU2N5U}Tf9wlYvR@!M1kMp zbRYuP!-=UJG#d=lTF|PCS#w4}HX=^@fpjiNgYaS$$AY~a`+{6V%{EX^;j=E;WDhIM zI)vhVH|>ov$YEL4-L?9Q3&JJP=E5J-qLaP4Y zac4Zvtqvuk%h`Sb^swm{gi{BZ1<_yHau`0hb;XSi)D>OPuc=(Rl9hI{2PkkUYm_R2 zx46-ycQh!hG%Sm!c3vIk-EYdd_6T6Wxc0lr^RHjd)n9lFHRmWNOJecH zAnk$zaZV;iq?Z}+o>Ndca>I3}PeH4Kt%FoN`Z=3eFFW40!)@V}0m0tod z#NS6$*JMXEcXDdJL=_}~oGNenpQ~^d^yxu-0~?+_tJRlmS-)lsiwN-K{;BD^iaPlv zAcv)Q7BNy&Q%B3ZpHo|kREz#pJ)_p$m`}<&Kjs*`V;rf5^d6qt;M#NxK0Z=tRfOfV z{o=%uu1K=LQs`KM?*_rsz3V@J5^4FRX_SeUcFMNz!J~0_0p1}wZp3S9dr3?(N4y6c z*A|y+8>1D4odE{=DRv#t`a71S*0`V64NX*jl9m4X9D>!(q}tEYOA)a5K8t_SUn{Ye zI9K_d)K7j%6U!g%L1)gKi6luQA^V#rrpw{4tN8m+zNx9vlQ{DI?87BKJ7%DYyXR8* z{4}k78)R2m!f$Y>r5OA>|14-6e^OjVb_-C^;v#K*80ZA@?~C5J;2>*)YrrDrV?d=3 zNh%wF(0dK;VHE$srB`*$09XkVofyd8~=CiurVi$)$qF#@h9V52d5S?}&Ew54HHssJ(d z2S)Z{u{IJ8F6wYGn}p0jtQ(^hsBd1{j2T(>fPcDYq5!4Yv(vfh0fSc-&P`@`%6wJ7 zu8gDm2V=g;?C#woF;mO-EV13NA$ftqsti*`0jgP?;w4(5_2O{2(JE3moFpNq?Gp|6 z%klq1i(Y0!U3ytYDVNp#zQ{PR?ci5Cq{Oc}2)Vkxiy?7)G?7Imy-^v}7_ivuP8_4uURNgE6P57)D9azH=6DKGD_-92nAwud&FJtIdJ823uJb8z@X0rahE0{ zg9G+v(^d;z?Ey>j^;r_0D;93wOSs z4gM~<9r^8q*}#v5hd1{;UVbaxUAy^ZmEW@GnjvucVI&6zxO7J5{M%Uxi@H5H{-5=? zEob*CN0y%^j(n?^DboxBov&0$d1bfWq8#`pVb}eY4a0pN2LdiU-sB@>HC3FqVT^CJ zBn9xcsM~k5#@XQ#;mcErnUZaorhA^EhZz5ZWsIry2Y0^@!M2uH)N>?1A?{p;U$VWR zvy*?YbA4jgZ9&pS0SWOv^*UUqzPikB_78zzjZ=)+KprG{QAr z?J5tO)$A(_HcPXyR9q}u$+rW8Rt7w_wV_l1K1$2gkA&Ou7_Afs;Hl_IWNS#3K zuDB&&NWv3pyzm-Ak+Y`Sj4BsZCEM{o1p=_J<|@jk>Z}k-Hh<49YzTx?fu$@HO3xf^ zGHC>6zSF4`%eEL>kriK7wAnhu=7|bPIbiBiei+2;b%}PNI&^^#QG0koW zWw+9+!g!TgV4npU212UuGuE=!lM)-XdT!@yvA0GV;?sl#!&hk2#WoK+OkBKXj40D} z26i8J_?g1H@`2PPHUDMyvP^dSktbGEgIpMe7#0fIu7n#>Z_0?ZKZe(ieOeA!r8-?T z$pwLI3l#UxK9eO=Wh(e#x4QK$KcWEgbUoWg$6GKlgvKQ63&7?r=}SQ-#&yAICp7Jq zot!d}kQ3IY8p5sMO6DPh6M#$hR=sh!D>Bi9xDQM2#}7h}oAJ+xpwYP?KOMnF7N4S|r75;_`;0OzqJUV~~4<~pJ73LYu(Vj0XDWSsZ4W+N2{ zD&{{;KHD_gCYcvUR#+NQ-7NycoW2_Kzq9y{LYnZM9I(w8r*F_FWbj&!4Gr?~>ACmT z1qTTdtYL$1wL2@T8{jDndJu-x|t#_eJ>M2YZ~)5+?R;y&-WW?&UITgzX8@ zOg~_;N4n|OC-F)%T)oNT;C9!ypxHy)9j+K`WPtiI6=jpCP2+GibxShsQczlTOsqBc z*yZ>+ursDF{rOC ze(aW%yxe&LgU}GqMds{$eCu=^Ryj4HnUUbV#!s|Gx%Xww!2Y63p z_VN3)@-BzqIQdtOhoTReOBH@EmCe=P8FYoV8SO?jIpx%UoN(+M)B2R;k)=#xjD*#x zW>gBWGgr1ifNh@k8-rf^v6PPO)-6+a&k*bY?HPa+3)J`P8~P=t-7aC;eqG0<^wh`>+!vmz^LrNGO>#Q}TLHD+GMgYn}ptL8ewxXXwt%z=dH(#ul#Xu3>hJ8K{wR>FM zfK7#V>nO8uPICpW!0`j+F-=YkW3(y9$hoLvDW5X(l+%EvpDM|e5`pO`mkA-wLf=%eP*-$g0 zW9hw_MG*QaTZzC~TapT_N4(iYIZmkLEv_x`IpDf2s7d+4J?)ysvxzEB63X6qnx(CA zsEjMl)3W-HQGnEy+)-9hF^*I$;wiEBvl zTLH~!NRb<#wNFDP6DySXvw7W+n9qrx&d-q$0`RX0Me4!`Y}_i5ByeIsnImwvse+)d zlZ(yBN*(HA+g0<2#vVdak$Ro$+9PNA7GlPcIJHgX{mB!FPCmvC#ml$_WC1+1M!O-q z%b&XQjD7}|w1jdIvPKOvndcSuCZI$sbAC$h7^cbshnC-dSkFoI<`T>x)MpojJ2u6K zLEbl$23<(nKFB2{Q2^(%b&ke9^p$evNmz5%s0pwAr7`P;0phMzoLBRd$%zD{o66k0 zwX<#4+!bltcSv?1s=ycPDL#vANLw`wx#GMx-7S&yWok7*hP7+Rl{GEzgr5$~xc(f! z_iR{kNbL6TGxx%g?3hb7!!m0F;u0F4F!o2q9&4BJs@1n7C-g&SsfuWN>LyJZgG)|w z^3(Qd&mEfvf!a*uK7~(3nzK%fELSLkkr*0#|4bq#cy)d++1nyXmJKOo&ny3m<6H|A zKhtrSV*WVy41pC_BmQ>ajWv*!C8ZEcc-}C0tZbFj(7?)(e0PH@^ZT8y#3ylh=I+Hi zlBH==5LwILQ>7IFQi`$am0I5v<4dv-KpEyCTSvXT7R}S#xV8^PwMUnL?)rq>ILMh_(Vh7fHwjHkyppU(KfCQdwuIHlN4kS_;3V1f%T z<(6%_aGivY$F^MsY-O~?7)KcO8IlI$ejsSdFEt{&OTXhLr$S@DNIf)vJf^YD=OR$a z{y|z|vG6r_#O(mFK9sv^Z)C!ao6WxCI#42?ZOfsnE4?7^;~c82Er%W9m~t_4bGozr zh`#MHS9c#D(lPe3GMv5kPhY}8m_?)PWA&Xs-+-d~H9s=4n|^9ruuK}~c$8;DQ8oA*-OlDVAiVP4|= zxa>^8C6%$J{mU0sCbTN^Lm4|$u4!$n0|-h#+LmbS)(}gPlhUnq=*U~T#&Iv}z&W<} z@k2Yl+dvV)bTa@=R{cM*S~yK+hyXb&^Zd{AO6Gn(8{vu3p#eKo!<9;;3VHae z^|g;Q2|c}zsK(t$TOCVMnKUW=D#n)Y3Zl6cNz*}L5F=P83OM76ds z@_=6{w&>F-l#q3ZBMYMnkv~kvT)ba9BBn;`ZX45@CaH|FNk^7=cppT`@|)ou#1Wtl z)ThGk_D+=EeHk3^MSg(2pyXUPhdpJ|622MU~O5?wh_qo_cMsl9amHa^XF-<5r~KoO8Ww3^FbT_vVuk`yj-LklFuw{HN3C zU&aqWB5s5+U?dACZTYs_TwGL6n%(f9zPx(@y*zi(ggXq;mD+*vUqGVWd)k}a<>k4F&vtrxHV9iAFINY0|M>t0cAMaZ=*})i9=7wwVe}mzz<(wh=GoPIpgD!UhqopW ziEi?#7j-zgc(g7)rj)@XLp@pz_*oBae!k{PRT$x0-_jK?Y-Q>bUc0HM@#Dp13%2ca zd{cR>Y^(Q1%V)w){~pJU1t?@!bV%)BmL9G(9`%OEea!Yr?*6+?w|lD~--SQP$3q8F zE`^%&q@z*1e8{CjQb({C1&(Rz%@M!0#kt4z-&_-(Etr2a&sYjcv@i;}kIVcJ*!KZ3 zEK(Can9!l2k4L3+gLR#a5LY`&qsEYa5?x(h04YVE?g;m_66iY}uFR!1G63UI_T%2& z3u4=N1b642khqx)r;&8tw`<2)^i zO}l)8{yum9Q7Gr&3t#y7&YPFtTpgnjl(ju98M_M%T#kI#up!J1-eGFyV`{QI#cl7; z(2LJK7ZU-u+pq9DDMC(@+2b7)KVwqKZBEyA8+7=^o_rK7sJpZQA=j#9=seoGI%_Br zO7oqE&}(~oqXX=2%1?yJvpC{T=Nzja*lpiss;vWZh`C97fOjFw7Y84*vGM{KxP$FP zYaoQ53bRh$eI;u&*9T?7lXAP^s8u#;GpTU;x_929;%FD}GzW~lAmM1l?v2l$^dl5Z zPyPZVDqh^&-j;?oG|+mBS|}H$q~gaT(0=FxR2A$NRhM;ZFS;z(iuSb{$-*SJyrA1V zBjJqYUYxv**}(=Q&Kb`MLET8mK{mPYLG?$YtmIXCa1zugQQewuv!~gKg>2pF!m$dc zsqhLjI&@fm=q)mY_{?P*7yT^Wb;?8M%`#4^nDHRz_D!R(!f4%>59>Y!Fzkl~YL}ko z_|?b&7YYRq6kMh*$tuQRa1opmD_nOsOi3w1Ajr!TmF#_eqeZ2NXfv}$ zQ3=*qSt%-Ul9S2gpH&j!`vVJ4$4Wo5mOWb9+izw>wLK8elsu{qeA$cyhg;V@!kVM^ z7vm1^I}&@D9TbnC1kt zxA~Isdz=ELZ-&>YDU^PS1j!WIAu3M@H0Rca0*ulS!9O*@UQo7h0)%!`=TrnBS`Ji| z0;}Yf5g;NIZxh0m$5Lt+F%D!cfbe>8%81o}rW8HZR`#R-j6dJMA#ZkB>^gSw-g|Bk zL=w=2`BqPr&Fi=NjKACiqoJOPMA%=no_fq~w(GF#oxFYHm8)#HmFIpMjDeiYV(}-Uu~+2Q8_@G ziSXf^R5^;Z?vdKCh&yltf&pa?7JKUkUmNan_By|qykTPx1{K~?k?Te3aPJ-5UFfpN zaz147``E_WsmN(fw(L-rO7$`{<%I?7)n_@4@6M5wAFmp-uK)`huAY|{2d)6ys9jcA zN(;k5cM1@H?ez_h*I--9L9`y-?|@BKa{FHrM&6sXElF;JdF?ndB85|dKqeX81mo=b z=%D~5PE)Yy&CTGKSA7mrr1Jxj#v_b$G$axrZ`qe-*wN0v_t}>@OCza&s?W%IiLmXq z#uWOgAXlW69MVf|Z@U&UA=Ti>?HVZ>BE?>3xWc9w@U)V(r9>Vaw} z(3l#8F^l7%kDQMoY3i^qu^exbZ-Y)$Pe__A?<|5xD+{_(ERE(#yz7q zu(v0_K)lz;JXryr0TRvhIe!BR(Xrm69KITKAR{<*K62~aducIyws+9v_%FsUV8#&J zElzWc;1*qbRSG=^2U&QpdAL~4y@;ZOOKv3?uj3*yP$zSZTU&oV@$frmzb*?=K31ll8_g1Rl_F8y>-LR|%Fe(bo_Hh&@3|z*5Q5rKLup7BtA@7MPCn>^tC) zB_b>^YjDQ3hVA=u+q==k)+D>JaYVGT-8T4_Rb!U>0SAzX65p}+V(Gy;amv=6z4`5= zq9y+jw6^q8hB^sWYwG>NhUINk=`%&T_6<}{p!(Z5PT*bp%@C z)4_nT#)L=!uj5mh&g-Gk!Q)3G6*LVbx9hJU2DcQRk+`FgGItT+NS3p;4))h=jE5#| zb$5*s-!RVfnASICBd#t6vJiVAQ5j3XK@ZfiY<}Er#GP!&gaX_FZRq&iH05|)ybYp^1W{hyu25( z@)NlaeF9N#NbilfR#7{AQ^G(eWuo!g9vlj|CUE0fjX+G6m$aOM;yXujMT6zl`#=NO z!;R4CH>`ql?g<|HE0#IqqMx9ECb*5Me%+M7+(#FBv&28D&A2_b5AZU{T$@kc z9QeG){!)D2!jmcON_(+2_~??2UGkgo_H>f0jGX?}th$}Mv`NZnDEv6ILK&(IEqT1Z zhAqE?V#Kx)y#?i9WYjqsX45bp(@Yc@jFk3`k%Nbs8w2-T9TZ zf$(sV+D)H&JEb~(r_12j#IZs2(yd>{$uy7UP(FThR-sgz&}4%Z1nTFQ3HT-FiV6+R=ZL zs0MmVGas~LItw?xlW4rxfr(>MX|Min@s$<#JQ|m%&rsBzTu1;YN1AS5s%?oQeE> zBLgY@%p_>w*lShsA`XD4xoB9nG9e1cLDnYV6Yv>f33d4QLbRc)W~>+1H*2$TEG(QX_;yL>je$K@J#Yc=?6(-wluLhRrUh*FX^FCGOk z>oSdxN@eRX@h^UVlg5pG(BnA#C0ngY$jst*y0#tLx(S@=RhhXuqujiy?S>=D3Z|nc zLwbaEvRk_#a~Sz}&?FhHX}CjL;w8Sc0+@4eZpsWE!R>Uzm7+3hW{sxcBP<{=V;6GO zNu2oFHzxQ=hMnc~Hd~U5Rhu$yLRFqeY z6SfR_34r6cv3??aPI$N%*+0{0sF8BOD!;;&{?5zUITKLK(URd*y!RN#Wr4YRx!euo z(6Zh|>-`ZD#-6;bC1r{LJdSHOT^ShlSZ{E?qp*9Z@~DLe#i~I}v^qoKh>w*E2tom9 zkYENPwCb3S?jz9lud{j+usmOo9GEqx1pxw&LDR+d?xiYw=K8tVrk2j;q^X61a zx9W0ma(fiqx9C5SCeOCglf=v=WzP5G#};DF)E#C5+QbUGE?xtvlvB~|yoalukAN|Lz^GyAbB)mRFQcdNKh$XAC!l)|XD}9_ zj4eoeEk#-8+!yIp+#VABlUcHKbiM>}0PI7WrM+%ken9_AeHv-S(8z(Q!v$BNXAsbt z{qQ4)ALIU`UFG)i#kMV%$b@;oA&<~Gd>dSONKb8w{Y(V`fk4`$zu8wuVSKST9l!U5 z1UJnP9eqUPh4(QRjHrYxv(gxmX<1L|wiVU9A0kgX&;Q#;S@K-<-6Xi(j0q6Yg~21f z5!}8ZMS2@1ZXzpgAJsA0V;K1#AuT|xB(gR|E|N*jQ;M;#&MTyp@()xX0;T)|6*P-L zDL+Jed-+53!Tb+Vq@5rCOIll7i?2e9HkB$Bk-b*6U9@Re>HfdHvx-n<@ju(9%B9M? zD)4`HWYv+X<5lthvlFXMRh_QN`k$R&b*8GS>Y|mjsGloUja4l;F`}TVz3Oh&5Ql*k zR*hCoSIr5mq~ojRtAte-g`(Y6OI0gXs{*`?QdQOFZ>~_CSPdZ0djf8JHWq?}N22tF zF4Qq4VH+}?(BAz{2|>r-g&y_X9U^vfuQP8C$vRv9wEPOQ-%!fU(qRPX2^$J&;5Rg5U__b=t8{obk_?nfH`Sx}Vl{m&Mk%20mF&t5O$? zKX2}sPBOCcWw_yF!zIl{$elOGmpjv_UDAK4H&j79;Ci;^OC<^5z|8BU?t#9mA)E^` zG_3qO?C!k;ZwneO!FO{R9)vO8-9D4(wDIaoRZ&B{rARpe_Ezb_y&sGr5OAQ&`6BmF zZi?u~m@+)e#QGkIiI-h;Om4HjCmo25L*RYAti!e`D3=t_i)31PamI~6q@Eq_rR`Gd zDA5a@7=AqAaN!*DILFhn(B*w{F0)!ZBi-%14*wWwaNDR=)JqG*sWGM6v5=j@j4^i( zA7anFYqR}<(dz0{uRRE!J^!2aiwNJxxG

GuH(cYF{U-yhlnb^dMsn{0y{=E`Ji9P!SZR{5#jV7gP7W?;4S0ECc}WLWJ?h9=q!1>JB5Ckcy@bS1{o+@zKLupH4#x|xB}TSVH@$Jr z(J7H^CZ)*w0RPakwv_tecZL?Pl=S=^$cD<~nxIJ5wk-Cbl67ObQeHFcW9dEp7Tb1& z8y&M}(P&)dH~ka>K-=Z5oKydUJ}=f~wwMRgO8jUaam&Akb4j_t>izP9_neDIs@d2) zI42`XMU{8NQTgs=siQ?XpFg$R6BFN?D4w1z=FKzER0w7H>BHqGckfT=B+Xuh<=;z` z*^NE*g9^$U$h-6*@s`!~#Q;2KP;$G$qQ#R0H{;n&z?B!L-iI-RgfKID^mnCI7_&}L4Tuq(E9xF(Me`GDUy?+tXr1|>w)UTIk zIJ~;Z?A}W>x$`)9>eA}IC>e;HK?>VWIGM!ZNr!FRa&$ELQlOXw9<)Hu1v3fY@mER9 zEEt=qveyAFyetJh#4IjgpPUC3beTErXVxN5Bx*;F{qkqFizPW2;EvjSnF*F7U93wP zerEhU0&?q^N=%TYGrR~voBL#HW9wOM@le^)ySD1i|8aER|5W&29Ki2#-Fsd4UVC%x z&6RoWy;pX~&WNO3qpZudZr2qVsbrK=pCpx#jEl@vLiV^ug=;4y@$K>b>HQC!_v1Vs z=W$-obI0^O0tt%g&@|dm07%3jG#-h*78Ms1QMxM1bCnwb;raK&%j;Z#!OJ>&F-! z^c>HiLs-NBI&m{Wv>nTgeyL1y%wZ`(G}qXnpp7m;m4-9ukVwm zyx%D%%TV;tEmHilkA-WOmJ<~{FZ!GymsX&NsBwhVdLFd|P_eM-R-~Q!$1D17+r&0j zH0>pO61~{UJ?)haF9ys(v9JnQ<32j`{(Z;fU!?2R*~cfDIU2ExPJ`_vcEv%dU*+Ee zK1o>K3vjR$tOfS{ea=udFiq%aGwp*NeMZ&{&njpy6AYvyoy$Iq>WoLjTPRG2?_$cF zo40{GJ`{XRD+Z&HI-C|98gJ8}t8HkwxOlW=WHA3k5b%gB#i$iLX@nF+kZxL4& zL3rfIq|G{D%)YdY4x8_39#@zZzj#gq;Nat>8H@># z!kG~mbp_T;+!phNWpO)gKO^TWk z!-V3GN4)fGvn0W3JLD&x-z+l(A~8YEF!iGeeojok#dYx&<#w=P0>;+yp=tzE1~hgrgrprIhGWz+h5~QP zq<^!F8sC^5GEOnggQZA&+y*{$4Um!ko=n7vlWkq4%@vK+vNaXnZAd*$h2TGvUD;rf zkm{FU;IyHjhy@zjRN_$%Ye!Xd81mm`GXaH3-2{pqPa=;CVUlDM2@>je9_@T#i;U&E zk~&&ZhVdio`qwCU7aMGpfF$Y8X#lPg*by>-Ys}nusDY{GF#&s48Qby_<21?;`17gl zCb*E-@zTaaMu!w=?>Yk)8KMA`e$HdG+6FTor+^qfQl`(zm(`b5`gKempj;||-$3j^ z5v!ss%*SV-mMhk@@BUyEFMNd8P$N@WR)zQ!bT4E`Jx0DlZLPuxJAq`jtqfoei*$b5 z*6rHNeT8s;{2h}h$0LhyzXfjx+eZ3sMr@zVCsPKJTTS8TdOViB8T#VZmu6|`U6s=& zguZMmfw%MlA*$>Mu1?N>v8x_s5&QzilSwE-*Lb5&^xGK7UUP^rMd)+Dth zYY=l$xWBO0yyrg>Q|8178rA(}!6EjH#3d}B$T(}us{R?aMyIeQV@O<{;b?muzqDj% zjm0eo@IzZMp}TVJ_OL&}CNSCC{0z$i8O6x{c!SVe@!=a#Eq1Cg%yRo8!Vh-3P@rIm zD~6+7_b8vXg(7%kMp@Yz1Do37QHkRlmWnkYZmIH^qkfM$T&*~_0|IHB9S4pbHrYfp z)5*L4%F0`+1ma?$cj?)fSB6x)#J4nEj%>94FPyun8JpHwp#U)tQ^t#fJK4KUeU{r& zOz}Kfyt=Gq@;nN#JqPcDP~N%Km~ZNq?V!9ydkI@?OPR`pj}X!ETv4>Uv?Vw8^IPqvr4FVHMdBhJ#?D1#B}HSI4=aHtTz1)Xx^J=(MFHb>>{hV zkp)ZaEx$RJlk-mbq^~JOm?j{>a@Ca&cqPGgyw#FiWKmc1mGZo2nZEZj^3GBXJ(U0h z4}KMG!mo0r4k1YJm#ryT{jzZk*$ymuWsp+U-^tYJ$Wyh$Y82SNjed#n&`iH?z9MqF zHktad%94DMz^p>My^#0iL4kR+(3Ie&NBlQmpwVxR2f}=XhIKBhdOwmbXJF1qem<)R ziN=XP^0^Js)25=%%PqMKYAjlW0P6!^|16@IP>Wf0+*Caa8Digq^Tr=C35ND zPLDxHaOK~6f{0FZp=o=&zkjryV-fp3>uG^Ba#7wpw^Mmb9p2bYWk)_`*nVfI@*}v) z4}Wx!=K+K;J0kdIzxeF=a($15?7(ogB$Z`#OM%l;9oOUAL%NWwtZnBPi9qeWj7>0ZMtQ%-frXG>q0( z+1$M1-+llax^>*l1fI2N-#nC-Jb%M(**b~dUhnw=tuLQ66ST(iVB`K%Pl)Dsa?H%# zk;T1a;-6T~Gb`|+5k|A)$ian~=5~Slwh+Q4*&e&60YqUjt~5@KWu7$@t6?>)!*ZaU2QZfQMeAVcNRA-*hR14>e9$0;Xa{Z8 zCXqh=6Vn%GjEI^SC-bPuby;Y`yqUYHpj^qjylBCu!26|~m;+#hT*jqV&-}x9XU-Yn z$R42!T29=ir;UQ#!dB1j6=DFZv_T|PY3)0Zs905DVeh__N^ijZ>=G0R#&dv%HeoTS z6b6SA|2~V>G2sVk4VZkr>t~j}%*FhGF!oWJ#-zkBdakq=SEb8~Cv5^X@`qCA{`l_D zF(lh2N+(7vSce| zRe+7@W5CeNm|tH0uZjxN%h`I^=L0KFsD_EG@sYCl1A?SyS4rI&sZ&@7a=MFUSL;KJ z)B|QH5-MYtx;ezFs#VR%44}l`dJ;`0em(&@8{hgP#z&JrQcO+yoJ?8)cEv*awPgGJ z&5%k=BKys}@itM+C6i{FTqH0`tgLMqKM~jD7riW{(yzv%279~h<2fY8DooXNxIciq z>v^&qJ(KK1U^($4picw?H=pv6Gl1IES5yPoB!)WtGVD^;OPF1KjClw^nTxwC$PsA> zH@Xq6Xb>@YATxS-1RAG#Dp6!gHwsSej58=5);HWguf`_Ru@>)itr;UKr=_6u#OwHO z!H|#b0C75E!?vqFa@?yu_~&T~tCCu90%nz6nN?1k(WRIf@)~%7mU_x4Gq~(E?IVPD zy+XaX(%^2)zURO*?3;<3sS}wnP;Nw;=L#L~96h_#Pv1`Y^O_q8Wj=x(avsl`mdLQ1 z`m!A=$32nB9aU#^QndG658vt*w0EfHb}VqFE`~g&=9j?g-y}?TG47QwIiM8MMbQv) zxzaMnuBf!bPiK{BOI@vv4{TT0k)^!v{-a&^KqsAcLQ_AqpSUr_c}$M=SUPDDQy2>s zk}`nxSp#jYi5H0{nYyW6#egNA6aajL(Q3dvR}rtvcqLL{7;sM;&%{|Z3rh1zNd&vZ zu$_1m*p63c^bfvAVeS#WD@f2~kWW0*rc5@Z(`n~Pjvk@vFE|DsaT0a&kem7nOK`(REOM9P5?T)J6R?W5LYyN6GZrj0dgk6 zdCIiShwBU3(93qJ)OMD0p-4l2uIt-Lv@SJ%9)%}}=KB)8Om!XvkRaAbuha^eExam0 zFS?KW{-22AP?zvD7q^Vp{P5!WP*?d9@8Gf+A+LF1j|xwW;1U1d2cZNATjhs+>th>5 z$-BG6=1p3!`T#lx?>ST%+-xO2#&AuY}?JDID0)hOw^%V)uR z4V%{;#T8U?;~u;6>T_;A{!)>5g+Zjeeq4pUUFarKQJ-7=jU}KLlvQ+gUSu~QbZs87 zBxs$@ij!fb;84a%QFblyV;(A}Q)c=GUeC4-lV+%t9;npUgnH5wh?@C@E2&^oJ#8VI~B9JFNskbEp#LbY`_D@fg0z zbxfCk)9Tdw6UBW3l|czAOE)#u!M4JFdkm|X@CDX)=<>`3Jg>GN<@-qyy9*bnCx^G2BWy5-tEEXoC= z_vxpEM~C;2;cSH<_QT}2dl3_caDPd|{rCEQ4^?0va*bheaysaCKNqV1R2%1+7%u^J zNvXuWx~Ak%GB`_{o)at>1k!yDP89e_npIM`_4*yEQCe`|?*s3UHba8UzzB)J0KM&M zkGLn3wN6lm>>ce5=&86F$ntd@IP+k$n!F#uE)O@-1V&P9{@H@iTUBL<)}&$7Wp)C#)uYd zbmj*nB~+8So#cY=N^+B(7&C|No1=>{8U(k76usAfG(+ol)1Kq!V>Z0sxRL7B!`=AQ zeyD`h4u7yjnltKRyBLMs>x;;9wl;B(5g?e4u81J@Dv0C6Ez3Uaik4?Oq>QykLviY! zzn|)L(zjQFXOeFNPDxAia7MPECcWVV9J5Y!Hz_Z899$I>>)eKly@V<=>`m2w-|RB^^TQ3|6eM;qW`&LAe+qLU@b2FYtDK$n8G`4Ct0VI)P)+g9jdZy?=V&exr-(9{!?USe>J+d zPGQh;JrFQ12Z$ev`33A!dkKR_Y*~EIqVwQ9!PZO`UdJ^H_7n$~4#)on2+&}e3!cPR z*8O*;WovB$29z!ay2C7!MJ%Rn37;P6aO)m2fiQ=|*DQO$im?nw{> zVh25Naz3v&3_oMRr&!m#gK5&(8m|b`Q)WtpNJ<-T#-`6nh@a}7h#b2Gulo%&Viz#(x{W1kP{i7tQ% z!US4@)4PVgJOJ-Njh$@dQZL)h1kou;#F$ai0yf)j8m(P>D6uU1{S(z*m&KC!`vP0z z20j_itBFv{wmE$!+2h;xd}w5CzXKaTNd7_^S&uA?8PrKnt|AKm5wCCrsVe^on3 zD}76BlN+!Vd!Ilu#s_nvGJ*=NM07Cl@5@`Kv0eZQv%tf4b!j1JLg2iZpAi9-R)f>B zI)a>jqFvcGD2DVZjH}h727-&+`QyC&O;PO;Cxzk&t z^1J-Mlca(oErVFs@4=ojG-4uqTA6rdw*zl(RGWcQ?qfD#q4yEXhJZP@Qff|L2y4d1 zRL-FsNXrO<@GoiyIp|c77zY?dv9$I6e5^(Mj?DPM{Tjnn z_7Ptkq>tFO|94#RRAOKfXt8A95=$2C3r~@g3nqA06vz~|hAbLFx*)yZ+$#E0{)2;x__=9^b4rbB`O z&TYU)bL76K)!R>I*ve7N+o~(Bk;C6Yh66pQhoqZHhph`#rI%)g5UF; z$;sYMId?!Y08@AFzAaz7B9SQl?{cXJd1}-I!g@h|$K(vEzR!%!?Tpb^@}w4Y5Od64 zl$Q4HT)J>PNTjStQszGA8IkcJAW9VCmG<(fv~FOO@YCUAsv3sk?ILpn@JXAu0ZWe< zqd(!LGL&YSE(pHH89x*4XL<;DzGvMo5TWLszszzWYtgr_%Z7cHD$h74!3Qe9F?0wV$kPOSAo4S2{4o@fi_rX`&d^c|uVg z-N`Q~CxSDh-~Fm#61az8onEqYLx6##b_5Fwc6r@zyoAS}fyy{edaW7yA@tixhnPfH z%Q|@uIPha%be}0G@ibNcVU^k#f18rL4+joqHA&(6{p~aG2$gvazXu$k zZNEN)zl=xjRl?gEoM(E5)LkxyIl&AP*+=h7b(Q|Ky~gv|P^@r|-?U8c^XC%MUzBC3 zoh>@kyqsfcub&5BP?`z7 zQb^AhSOCBzBQ?W*37&Z@F#ZOqnUD2O4%(Jl;aOUvL{(($C!^GJQo;L~u&bLd| zVn5jZv3v6_4Zb|h)}@JP)+Db$gzsjz0X6fV&%?ixd(kyp>qndL6FFKE{}&?n2`_DX ze4G4}w1iH+wMCK#+8JO~xm5+F>fy!kPu2BfB+^~{tvHTc)QP!96H0+{1u2VwLXUAh zP$jX+H;_vCO!)cpX+pIfQTLJ42JE9FmuN%4r)qXFZpq`m}2z@X7`bzOT!2WzK%P1RtrV^TNpV6_bR0}n#e z+al;U6VmE)?6HLhi7y?3t9ZVSGwN`bEE5tC!BdYg#$H8}WbuC*@`{G8=g|O>tvuFP zGxFc>IRC_)qFkSEC$VxGHg-|VZ7xbNqZ8rUcSTv{;tEZ+lIlo&1Z30;q>65+R$Z;M z@u{L?_6aPTeG-@eOU(n?i))<~S(yV!S6d~@>#WbiWH?cAD0EdP5J(d^+iJHKyUWy; zP~vx-E4!+4iWEXW5?c_scQEpOR_)Uu+YWG>?P$F@=`A{eYNjf|jDX#L%UW z$mJOO4n;wG`S2GiS4{;ymHek?y2meQ4!9D?*_n~IxpB$-SACRZfEq`W*1kP}afN(d zra7Mj#^QnT*_at!-(6}B=MrQ7l%*wV($A|RwF>u})f)YLW|i(3QeS-T{$#zqmYWwE zhcWujoP(3f8fYf~m~{q5HG^#Ru9-)pLL>f`7{-?~dz%i)M)Bi@;VFbfTfZ~eSHdRZ z`%+#2@hY7^q9t{*4<1vsV+fQ&a(s}A`BLkfjSq}szcSTioJn52txCW3mlJD;mNgIJ zk!P$=4qgGN>7M;4)y2C>@}=J>LSQC>hmrT8rFkvdV1;5Ydq=s`-OhIrGTA7faS=~Q zWvv&_dY?+tAFg0_UuV6qb-G>H3fj^Me|aql=S|d!ke2e;=!jvK3vQhu8CP+qwnE(P zY-Qv5-6yh^Ba~siYPD7v@5ixrJawfnffcsmXbSuF`W0ZH?s^V0MR#r!%`#x>ID{vI z-UP|o%s(S-fTV9{*jLQ!^BZyo)4gC;Ih*=pkH>7uhxt8_$nag>L89Pks^dNUQXEK| zo0<%1idQzm*wOsxCl|OSoZYJ2RiWJbX`%{Ai!F8g1F>MOL(Cf}D31UapjsBtUMNthO(SFJleiSoccS>bGX4+3=_vID)XHOg}0 ziR`xCihU%m5l30UI0(K_@P&*nO47p1C+UuKqDP{DN%DrIG+C@T>&g_K8XWh9?J(xklvHZn ziXr7M5*&8(>T{834Z3ND?$H!RbwfAdl1qbUbP!Chom1ye#i>~S@*epL$+^Op7 zw@Pr0MCKO1p4%O@0b=zmU2=V5l8`8hOvEe^t`pg5=>VU~I|+Q>PMOoQ$6>9L0}mdn zlh4^^t$u4u50)$}-ng0gVPB{s!@!k=fC%<`xxqbG06hNs?9OtQO32IfY-Nn0RE}lA zZ(;@*a&o?&rp`Hb${@<*70muOf5qVl5|p=<*Jhv$bjNyEwb|0E>@Pien_3t!23j{2 z+v92f3)q-4rXk`|beLp2zZA6nUTA`IUxoRW>tfktEr^CGUOP!s07K`OUIxe$q5n+-HSH4BkB=xx*{<85`{db`J&PD_$h77iQ+2I^aGlD+L(W*#e+f=BgL>y)i+_CR;9d#M|z3uhIJVSh>BocF&no~|7S`(ZxYYZQzx z{lYzMzahnRvpn^pnwd)ceV1=hw^BuS3eoNM^?nnLpS#l2)z_j$tsn>98a=E$?A@L1 zBVQye>IQDNSVG_pF#8hQwi|HP(7d3+54>qw&bEXCDZUf~7la%{-FlJpZJBLSo}**S3uoARA-gb~?TBMyhtgmG2d7)*0zYHADs)`-`h46uu*pq-}p19W%-j z_=?Z5=Z{k#eek!sjbc;T#e9s|1)Kv9d0bmNVNOmEoCQ$gBPhxghpycJdTt8Jt^lu- zaVk6Vf2Gj5I>CR{32HruCYccgGnfEDPxfh8We=(W(Pe9mXG(Dnvzd9sd9(;*_?)rr zzy9ufzZy9O=_4n%nks+qqB?dIz)QU7(O;}zxuC$ee^B`OPZ`!on{?cU$!M#$iU&+s zSSCd?_4yf(YMij3m9VDv)CnPPmHpnjzkYlT3yuKaEMpu0iE1_{Z=EbqM7ihx~^SiLY`-*ePFP?bYj{fQeJ#7CGDdsG;bNZ8!UPI(% z3zE=qfHg|pxKW6(T_TBlT{eEwx+s!3ayiLpULgL46DY~#C#E~R2;r0l|xE|;P1 zXn3nmDfw3z+qRO(5WH!2sNV(o_ESWwevcgFW&E~Cye0%B!8o&xP>5^XsoYk%*%p`; z-3+pmNkRHg_-wruF%n2tA?1HnG`QS02!9UsdGJH8J^Ld~e*XB{V}(7W&Y{Nv2|x$u z*CUyE`O2YLy0#%|E+p> zyjZYnJP#}}vn&O(T`2G{4|xR6PyErwU9Vgv9~ruJq2oVY1(Xc0QP5>0>2=phjxf<% zk*yfLi#5?0%~2MY7}!IX?d#nj34Kg5Q`-eqi{8iox+OWNuDrf2OJHlhM!@`Lvhob_ z*Um*AdAEv*-5R^O4xGK>%mSl)cEY^ZT_tUi1sS0({GGjiwXQ}wLiQIg>85%2VY7wP zrI9&bM>K(JHa+#z*GlYtUP5;I4TzL!PcR~gP*1lLvZOY?5}TPXr<@j3)@R&-yW~&u z6I{T_8{}vBdfDnrOxo`V{UMGsgT}FbAEM-2%n?lnAE;_<`G~1X_+PBX8@3CTv}cF) z5>Kf3O&Z61=&RZt<8kvnde})%2_|L|)dY6iV*p!5EZIzhRFA7HgIg&sEe9>&%!rNS z9{Rxz3gk)U)RDr3An<0-!vR4PM+C|=%_a56ojtraYMLkhb3(oLKe{|};Se|sAK2G_*ed5zs2cx! zalp`5&2B+|rG2!RXR{QD*-cI9tm~z^|YTeeg;dTfe-(k7qA4 zJ*do&a(>z@rk4@+=GC`rdiZ_d}7EoV5oBPKj$&U zD4lrQa?uC7SY%$dz+lgu;Zt(cjPjFe2_RE#-I3GEDRJ#SjYE`kU*&20fCI*C3i4*^ zZxMSe(_2U?p1w*(qE$-EpNqTFC4{P~6+`d6|#b%k6K1J#qyO0~PQ4t=ZK!36-!2W^{P>ypMw=aA}wqFnknc>cNcW#)h_^zjV1AuFZ)vT}D(FbE>2d$E?@H{&-8# z2_T09w@-W?Rh;E9Mn0?<2TC_zraENp`ee1il?caCIOtY!NYn3@wx3|7>vX8DeSruB z_)}dp>%Xz|YW51Q>nK}uj}=|iYiwJ(-#y@Tzc!_2+B((pv=5fNvYWD^5(yFbu)&~< zyw=W(jrb+@L~;!L1AEt_Wenx93*5P~6J>Y>nwoPIaS3Yd*MEEFV3y}Y*B6gusl5sw4FA_Dd0$Fp_1So^~=bea>Bwx=D;o{Fy#j<^OW~#s2DXN3Qexe z>Jw#iJ3~scS)y>@@53%LbY9!gJm5$ldPkCNw9FgEuXK!-S5^Jqr_e+F-JDHImp z4gnV~_J+jofJN|~F|77>e~F#j+#-unN!`oKF)H9bHQlI7OA{}51f>(Du4{(1sM-qF z+nl|(msWVbSC`6JqSkNaWen5&GGUfw7-uU@#ZAeW320Cw_b;5JXb;MaCn|Hfrr<~td3 zlkJloko|}@H0k1Ti%r*uir`@a(dcJI>g;C9BDWW+cM=7eY#T8crX~^ho_&R*Ll?|5 zq@9;*};X2R>Mp^9RFrM=HAr zs*#8s6_N=DxWgsTU)0yy<^HUO! z{#uf_OA8xcqMj%fjnML%;0qbo17SrVkI+RPqm^=6h1yL2WWT_Xh7hW`10%?{v64=+ z2F-d$8o?alVAW^(sq5*$&rBk4m*T7q;N)eliK1sVngdqb+>2=swqA}+DBcAKm!9)F zsF+f{BW$m^-~sn{)tVpL19&L8t27tpnrm}Z2ExxudwB%OY>NUI*sVgSU^unhCr6Ml zrQP1t`<`BD7Uz_^hY-IuKH4h3O$p`fWXrnjoy}ViW$gLhXGLgCsjFkuI%TyXIX)Op zloftp3@IyO_zt04K8{4*;ni8FSZj+VImkt@W{vf z@{PDmnqk4qem%=N5TUnWJSkg44NtK8NMX{!2;_Hw@3h*YNZLh_9XlfGB2@fRzvdI4 zkGgYq0|yf~pN(~8yt-|9uJb0hAzO0PWQ#;IHI*ksl+#CL`<66)?Sre6+U0jU54}l^2oOuXPw>=?<#Jp42ltcog|-~J*q2|1@BG9(t}~J-PG^(#8f`37xf<72C0h& zvxhz9Ivs1Aq~GZ3P#&HiJzs&xo&EkPE!p(NSJq$96s^I5=pewrk20sT;x7g?UN3MR z6`p0c*{Uu+N4+%xHfIR@N24>hS5$mCjA^E&x>-PS<=Fx~JB{@Y z<^!2bBCHaY3}>~rb5bhNwD@5&zo9jB4%cQS6Vt^9;kOQd-}y$cyhAkEnPjOOnyCwS zv>|*M#q3{@j_AzPOnp@?T5TK`yzN`WKKulPIcW6fvd+3KU5L0^fBE6YyY2MGBn#MP zKu$ch=3B>wOZv(+wAXvKd=rF%3tVHe-5ItT&d{_88BQoo6mj+j=buVr^zVHo;JnA@d+5e~CR|5WN zl>g}-<+U89{&@6Ra+#Qu=-jeW4{h{Il4@PUB*k7XX$z-q13N?dGGYV6B*tg4t*q~+ z6txRl{Q1{u&HJ4`hAH}i-SjU1m9`~(*vz@%}6h9J1%`O)O2sNe5()Ey~v zm$PPt4=&sLrztQ-RL!3H1xfNhJ zugl0mj3P(U)0&@!{aX^U8?wE&f7cg`TCf(|oZ}uGJzwg;Dq$DU=N-)SWLLNg%nE@wS~uRgcJ;))w7Hw769$0F%NTz9CR;uS(OR+!P31xn9(2aj!WnYOQfF zQ)2=XIq_jrPisb!xxYrY_TsAAM-j-S`U=*F9Olh2ZYJ*pxpPEqnc7vFlf-3j{KuQ7 ziC2GdHsmH=xsNl``;{L^D#PS+A$50T)y!idvOUnJ&0}n2(X0WhaK#OSn~x}jcIwZ9 z`zVX**-5r9IX{mzQg3ssK;_8ghmSZrFKbGLy>H$b6oONmy0dGdBd?Vcm=QGPo@WGZ zNl?StYpozoGHg7L0AixE@WtHV6uOQkF~ykvVbO}`JdF`C=k*&EEsbo(J>DDe=qUdx zH(Q23C2ZpzXjZSrQ7C*CivgQyPUvroed7=l^Ubep2zHE$)PR1&EnS z<+8~3FtqvGJdNn#^_7nVXA`X5_eM8Jy;%Ashb2vd|He~RMxW@pO^~edzNw1qb4LKn zlzU~{DZO-MK@XVO94qt|pks806$2-arSpzYa5PXvK{bDY5z$vTPj24Xc*@3HrD3|$ zwS2#tol`raN>#NjbsS*ArO|1u-Z^qOn1;a!{`dI%lmdGKMAsdWK>tYEzBG8#)|n27 zy5mC7!kh<~w-Hz-o|ByXXu8ayFZ`H-v+8;oRMQ-bgmJmk`%S8?#4qZz59-dT49O$@(3q5tG6AXm@nq8~Xw8nII)qYRK4D2UGYz+#0XXLV zdcijlFXA!Rk&KMLKv3%y_nWj&_5#%GY$nqIlMzs@ZBFB94ODX85c3>5Emqi1=1xH^ z=4<-hS_IU?HeAtLRtZ_X^U%L4zVEvX_xt-#ie4xL#YvXX5D5bUr;v{F;yTV!AZ&d02^vq~~91;B9Q7F(i_dBal5bAZq1aMBYgA<$c zD{3{=(r0V&s93c$D|%g+k65=bM$`5J<+LV{+f50ANp&uu+uvXW*81jfV4S>|PI}96 zjKmnqr6wK5EQ4}-!7P~0YGOHh1!Zu!anMrVAZy>a?L z(i0hJivPFkJ(%1%6R_G7YSN{;e)YG&A0RsSBSJ0F)4tET>cxW}jxx=;c?BE2WFQpcU-bp! zL$$@A=kW9H@fhK3I1*pu@oqVb*$=ptE=Y+`plqNXds5U&Z3`;UZBujw+eD~sOOD4` zal5wWXGE}Zv`t0+J=&F;7jyW9x>}|D=KkBveri75|H;d00#n5wYEdjkLLIDK0p>Iq zEIF1euo_IO5&X@~R3=thQQHK@CFfyvE$twTwW+}U zJ&9#p?GLr=1r6ONcCL{*_p}5r4j3?ZMe6ly2I2qEccKVNcm;y076F5P>448*it`TC z6`}HJT~+HbORDy2Yu=;aOpqv_Cvl`=0;ejq)xIh(Ha&@NtA&8&Lb$IC@(? zB7kaIjA00c-W!dKwI^u>SWlhVBJx`%KpGgm=9msSLqN=HDg82)jFo!H04vWJ(`XTZ zsHcbD?a!DNy1z_H4byb5SfC;B6LNs=b_D!f`dfqSDQQ_jj?c zS=nu3WZ&lG2&NYTT(}HTd@yX&sF?2Dmz$TDI+*Y|8?t3jrAnzCa(4qN1>EFWcW;s1 zFwxf~C2~(>JADnT;j}70NnWwzLalg}{uiN7sRG=kvQbQ$oy+$fgWiAfmWY?sD$;%x zFT0)Y^|!}IWRi9;(J_&k*!?)ImOB-rWe66?-G(=g!-(U=@^An*cV70CO39EzQ~xC0 zD@&eZ6Dp*SS({)WSY$i9gu?IXH`uDBIWO`oPL9)N&pS)mOmG!8QZE7#49|tpUB_$3 zZA_IRMcMIWDAfoTE_AFTG%=73np>URG!mW}1h|$3-Ok6a)yRAZJux|i?Ew-9#SE^m zVIyTHR-LA2nhe967H0a*CY63NK5yM#`H(FmJh!$xFuOR#GZS)H7W3lzb7t}p1A@l$ zC|9cD9x9ypD;YFl_4G5=4}-XWMX~$=C^xRc)Xtr-IObY&H(Oi<8~@PbwQvs`|BR#3 z1Sar1c%7$&crj^__~xB-m+p;C<_F#9<(RC}XVmb#fjh>vJb<}{W8FmC;WsYiR#m=D zM{n+av2#xgwq10Axlu-0Xjpo9m8eNhpHQ#tC{AJ1j-i?S19a_8%nWmiTpbrPZXj)D z0AZw@6vcMUD)w%W^lrRA$ba(Y>kKGxd9e*qa|3|5K}gW%bo;lKl(VIwKIS+RWh$c) z;mN-P*39*RbpAHL#a~6AwyoyKo?j&CJdP2d+_CS@c3i_;HWtQq`f^oRy19S|Mj2_a z+a(%n4N*{WnU4e6o?&x_ck{5iFy{{NWf@CP4Z8{t4^hV)*djl~<3cL}ZZXX9s|No^ zVN0r$sHbOAqfBxQ$s+$NNzxmHbkgvMU(l(zT7fWtwOR4$W!d|ol`jP(mV7~em9NiN zyc#D5nrbQ%KkDc@MQ`6te6W@H3J5`JS2<{|^nMk-L6NS<^(kh*U@Fqul57P&0e*xi zatC~Hy*FFk6JpWz$}lv{3W5eH-(OA-24$G5^(WA7J3EG$=#>~+%v{O&a_wuGyl`=% z77oK4m*d#PGOwmHhfCo*>qu7JABVIUb0+99y7T{J0|NC*{{DJplD_}bHt=EC&J(^K zUm;&(%bfWY{s%H~IXp&l56$&zbL!_&XGpr&4h5gWJb(Z--$=P_y1(aV!>??KPtImO z#xcaMaY7bg*MgtAIn<=&J}6KnR?h2`>ZQ=Wy{9g~v+^6drbd=7C!}Xd6>zqEMQphz zV}L0vtHsEa?u%jo@rKY-xLJCB6)%%*!Iy-NwH}a)@*U9kI;PCwHxRHt_YCNJ>&XDw zQP;0192_0_C#;77vzwnDc&CiI4WS2R4!u>0-1X?I1GW8A{8`;;j2Gv(o_4i@SgxR0#m|yz*DAxh6=YvB zisdW6IwV*_L;d~*CcY1?0<@hSJ1*>hXzpyhjtT#p)X6i23cPO`5fjxZ7N>T4V+QHo zX~CNjk})~Jc7_t?%Ro*HT((iE1)5o^b)KngZ%?Ct?2hT2of_7h?3^gHoyh2z zvgZNjCkbgc5dICeBU%sBDe;*q{gqU=W%nzG75&FuwWvB%W`--zRG3*y1Vv3Kvr!6n&5UJ)uOqIZ;p(>zr zksl?iSXYK6CRdQgq@Tyg&hI$u2Nali-|F4T65w((U>&}>z@M{!nB&U(hP@kCO1hKR zVaY5f7`$TvF>cL&>|P_^OASSW#9j`E*&;i$)v%*(7N#&B4qQAK8)r(K{^4iUfY;Uf zm2rdHw_I7~;&+9o8L1U*$jj+W=oiTrBEwJjOmj;B4S@#U*S5`3#M#6ilQf+?}>FB7E2PDt>;3Ds5oNy zb&*KOdxTtpIKnEuBno=W*AbnGmrZla4w#5O?0>+sj36)`% z|K9Al9PE_q!oi`ynXj9QbKF@(IobxeqWehcq1%B}b>>~5&Y4Qh znMAiCQem|G6-mvN`$R7WYq?CXaR%S@{gq)nQ-9(?$JK4JR#C);gzzVOx66`rC)@K0 z5mmbIqz9!l4>>Gps|$_$6tHgBCBLY?j@%iEh;M~|qqj@3cd-((+k8jKKtWx{VPIv1 zU)#MEt?2gOE?J3baQg7fX^c*q^h%ZZVR4LT7To8jAd`}LinlFTQgQH{E<9E8TG)Kb zEWj$o`j~2bOtmbmdLtom#l~XeLdm>^BlURpfu4eMORE0G|taRNr2S`@@pnpS{*eV86>>6A2KS$4DV!8us;n8A}qm zCjqkx4N77Eo$4vTDNHH1xJaU7xDUijklb7zKYcGR zNFsAiB)%?%(#6NLH9Rm)bgHF7VjgBK^HijN_bXGT{mV3`OCJ~!<=~R9 zT96nl1hqCSJpAtb!&BKg{Kwd&onmX;XKjtIh3p$|AuU~8#_$#RxbjKs?>WYQ(gK{N zq>XS(1<~R5yG!J02QKU&!8Hm_j)~ydd3|ez?$V7VqbM`5#4R9u3v| zfbrSPj4{k$Fc^$|EZM^_G4@@OEnAd5NsO(p82gN|Ohb{BC8SbK63RA~Y?W+9Doafz zWDl)=e(yieJ?Gwg?jQG@`@ZMB&+~aGSr-_nBk>1dhp{e`?h+Q19~>4Zjf$DR;#(>8 z#FJ{pZIo#^GIZ7)F-ti@AlIMcJ+xYP_V{=R+aF2fbp8k7P1S@~Fryvgahv~TL1!^p z(S!Op!N>@P0gw$5@bST|wnwsx#pbN{5;3w9%kSTMj0fzJU&b-Hd*>>ymAFUo;tfWY_LkA-%uAe~0XJ!edJSLFFJW*1}~H{0ABH@4ydd z9A?chwd$?+?BT7Z!on32sVa zrv@bNKRlwoXLlIAxUfwhu>ieH`}ty3DZ1J97E}{GNwqaoxFFB8MYYd8eS@wuy73|x zht1-*wQY}0#B3Y9gP748dq5N+G{vB?${5sJtoyRpK;J~c9q?3YhAy~lH2Zl3-&8Q{ zKC$GN)hFPUasq!ZZV1h+RHHht`Ff-+>s%8O(%kj~XyFMw}hoLi@QD90<=r&y$( zdQT=yeD&ph#o-ff&@dVvPn^YTnbRtGuvZx;BQK6x6PAF72RMLx@k=Xi0l?mTw7}^A zz=C+8O6_K8B2qU^))m&72X@MWVh6sscu=8{aI5?%>nk~-RqlGTwt9@`D=+6AkL~KK zkMSS_U?-_~#ODsqg*(0CZ`4SV>i42~&DF*2jq+}uH7V9Rhp7>UZX^tmsXckdTGpsH zrJOqwi?JM7Vz(T<=L3_0?ffmiD(}iUnY*j~y&-?Siz;zdE8!EvJ7R$!hujU=|CF9B zy~T*$hNJww3`ac8IfCZPJBB{UI-VS#@0KDEp$1XNToLCMXFHQ|u&Zg(IjcwPjajb* zWH@DM!{~;!UmcqK{k>}$za8fn=|5Wf+s*rtw(pW!y4LtDP%2Zi|J1)}*u|*l`$8?E zAd$_BbG@U{Zj?6y97+mq+`H$xs{+$%Gj8*nWwS}}B@&CzeH_$~?>?B{pc3tHnR4pM z^$oHE-@S>KuO-TcGVilK(ZBr>HS#4G;Tp5c$O4{i)ad!Ko#5W0>%R~FK)~k*C6o2n?XyWpr#pqn5s^fy7dVTJ^ zv9(?bHg%Sas%QsW%M{)|!ys4FFnz=wn|b>1Q&6l3ee}6fa+WJ&EB~l({=>@06;Nxp zpN97_VFO1;rAT@~08;FE1=M2zBV4pf^Df5_y>2V2=)wmU=;+gqx(eR?EEx>!(W_k* z6%@h=Bzp_5yI#?>`S+&FQqf!Rm|j9ZU3)2KAv1v#FRcMt76@E8q&&Je-JdA&?+f(8 zAB~6l>z($&E_vP`u?(JwQnOHe`MVUn?veKTK41FaROC!+DbGrHvgtnViGT#;D`*ko z3KKoPFC#^QeZ$z zE9f=6FPu8re%X?AY1ax96Zw zT(BN4;a861O=P<-EwfHSwX|xEz!o0Z0$1ZMbpHm46%r25Td2R;GZOI`Z9{FQMx7k{ zO;HCgdA)w9-?Y=Ky4Kzi^_fCR#)&=ab)>JwO+7dRP~NXLWdm938;Jij*1d|ul}Wp+ zXO|yVj6?qDe5{(}TVq@n$oRFNG9JF#EEYsRLQz)Ev(oAo%GkrdSB9Q|l-nuTEi;YI zgFpspk~b5w4|k@VK8%oYQxsTSc-+#}DKU!0q1AYf4`RK@DF>azP21k7gT!gd+`N(@ zpOk)y05-dZY_)&yTw=pLsmgCs_2AN=Ng6#y_u_G5WK#OSSWT6&8H^~q5!oIAb|Y;g zuaq;N{fcu(X;K^JiM{bcrgI1@m~QX=uBuB=voDq|z>WR%?B6`ZnPf!DAdS%LZM}78s z+14qNAEpn2c!FQOa1hJcjmx)^3h#Y*tEZw)_}L%=H0;_UHG<@CtJ_Mp8l+X_JHY2G zrS#;MdPBy3sSIns_>W8*YI@rZB=$I__+3ls;JxIS@sIbH%qhUk6*m-b%8`6e-qRi9 zjlEqM&0Ub$UFx??z#lK?-N4n<*{KInM{0jiw0FT?#N`wfQO_*q+*Fi7Mt^|@apE3m zg_HVjB30r(bh0>l#klk$zciB8pZmrszqhoqz<=7Thz9*JdjA=G4c$=?RS`c-piAFy zp^)JZ{qgu7naK{}7p3abrt-;_z;slL(Eu~9CKD$&&v9G>BcOTN*VDUK$s>bpJkk0W zq_G>52Z;$B2x^!<5EbadtW9{}c|yzW0)n#s6e9ZC?1t8k4ye~_wPP#olXr;RkLI`Z z-pM=YkE^j)Z(%D25?=IWOzEML6$li;q0c!b{2q;$FhCbj64@+SftabW@cwD94l+;G zK6+D#exETzxJ~fogxxiitGOi87x~u3?7yx*?p_x~-xy1&?rlw=^7HxTWfjvdQ%ScU zXT2U2e4%t*BSxmN6Yy0AzUf5~3b+oDhn|aho?rGc-yTjB z+LbuifEA1QqY0jxPd)6_du!(1?l>OQ`Vj;zg`1KXnCy##xHA8hUssk}O+}X*_UlgS zaNf1&AM@^c*S6xDhN1q6mCQ&Qq3|t>fCZlYl13m<0?BH>9_&pdtoz8>VNmTuKET1= zE*ahvE>EVXyqFPLK|xPzA-rtZw$>{_-ezdTU(F?ZP`)>a`co@TER6q${<6cAXb(`G z!b?psh#I0k$s?#%?#bFJ8fbs-C)k_;H0WZ~?(q5kS6{JYIA-qh!mWNn)DD6a#+g3O zPCu856r;b+j9OAq!>agxymZau&L*`pQb<8^>X+Fk-CZeFSW#NAjityLV#3r)d2SiaqsQRAcgLKh!}KYc9nC%ZsWiYI|B=BVK!)50c3dEv4I@zh;q}trmpq! zv8y>jq#U?YBl))tebGk^LHvy>Fnqp~e=a&4iD;HB7I#U9{c&SR17emO?ML1F8<<&; zOT)I2O`{{Avns#a@=-lwrxT3MqwI34m&l6FH*hq%Ab21A#+8utUGOFP$rqdog>+q_ z0oa8M3iH!zgKaLE-SyFzJ`1&`wKlr$72lA0*S~gYE`7i&w}2h2xUi%7U{OTTOGRrGy#@gSj2qjaQQ5^@yM=3 z4~uiSxnLircydG{p^qwQH>>iG+w-z7W=h3!bNjICk4Cx-lS@FnUY&nNb5F{-*B!_a z7gT;~Lt$Hnwy4a3eqyGXh^9o-L+#l)<>$l4ZhlV0l|5~~p(D6g&}f;Dp-2h*hkemK zrytZ9d)oLyavV=*-&(EeWWe@2;006J$tA3;EzfgUyX+8&9iZ}D%j;%s*R~Qg<1sY^ z&=L_Y=qAu{N~5A*b@7|0*&ih7WlnOy$&gzNGe)P}@pEaW!y!Pv;Amyt1JDhv`e|x< z?&thiV3BC|C)d_P0Rro-D3I2pjcD|{@?S+E^R1q_I>vG6WGq?n;dnOX2;?y?zs186 zv2a_$=<g@D_7|U_4_s68 zLjYl}34b_x-pz_8UfTI=?N{F$SCdpn3-y7mN9S|R&jNwh^PH5{z1!cEioX>vS+Bn9 zKYIA?HBiB%$a~o!r4G5TxD*+cJ&y1B{_DZ?x5DKG8p@hSo-X!{%IRFifV$eq*2woV zj_!dUd4j`GL6VKl?UFB%)ar;tnaWEIyLvUyfSw=uF@I?0-N!XD|3Ed=ztJOsP#xJ- zY5rwFw0M2ywpI2oJTrdHP3vf%GU6PLQ$(k`-qz3^?a2&2_N$e`4V{6pq*i-I@?g$ zClt~o`aA0q1$ywcheVxu<1mGvwTse`7G|dU=D*z)Qb5#SUKCzH;u&OzQy%^1*)36IuQkhmfaF*c z|DM=_d(4?7<1(5uI19F5!B)@vE+frj3=p*H`zsKA$E^Kw!D2M&Q{$Py8Rr_DO&Iky&$k6Y(M2JI`N5CT(v-JTKNv9iPCq)*3osipj^Mvii$ZH?bCnuxLj_0!^!&M#e)Ox z3+{H)|8;%-J^TL`Yy$eqOXCj?Rz@Kl)WX4;n!(CR>LY8i=gFssKvq4UWrWE_voci! z%renJqhuoh)FGw>IAmc%z&;=M9BgAQxF1k|k?fn(y*8Xe4pBlPQ$}LO*+~I&%wG}# zT6N5MMbiXr*}tMa7zxlvBq@#r6i#`>0G`hidc`6!k231}acj4*=dsqFE)esDyT$N8 zP#Q<_*UX)xsSNwDa1D5>2KB;uYlPiHhEoHoVzh(Vg_f1KaPz~lo)5a5IGpsp@wxh^ zuW}UpsVe+Qo6wG4PHMTrHGwyB^N-#ogPVMmQfw!4Gwze1faGE-DAdxT=z`vNpGi{D zHk?#fsnze`Fx~|t2WJWk9yDj9n+$o*G^pjf-CHPZI&OLVyw`jxz1yyce#XMy{7}J) z<+0se*w_L-DDBIh2hAGuj}ZXuIY&VVhneibePgVS)Qwo~ZkF{>v7AR~<*hZ7S1%8G z!|-)gYR($f1eLVMkBC3Vvg?~K>P#6z!homnWe^3H3?cc^>wsO=d;Iiu&--B@fu4E$ zJw)?ceM$Gtyun0(K)Y!G5b1kB@bSp_f(RfJmUl^nMk8y93)~bhMZ=cNG){ra+~1WOVF;SqL~B>F9d328xDYCYqFQgRmK2F|baVg6cRN zbHD!X)EkjQR{`hOBlO1Y6ZeXZ>vL**qD3rPzP7nA{^t*~!)7e_B(uJ)}H048b%M=}YOXU+-@ z{HPf%QE>vI(Pr#Gp!{pNVRh?PjTBgFX|_wS+%qG2Kc9Ibwzu1daZ6Me97`h1VB z;y39sIG&u)=KM?&>lx>eZysrRc&~o-#qRzGhlp=sqSEE^3i2U@gjs1j7d>Jr0hM!3 zF_hQCw`m9T3Rrk9^Xl{wE2Biq6QcLX#ep_vMv~v{#2@o9Y_kS4e$cAR=I8k_m(rh> zyce3hCXgq6%^U~POyd~a7n@wMPM-%g8H2{JdToHAVfR&fe;U$T|F|e#hvfK=MEq_5 zpMuH`j;nO%{F8E`4dz3B(1n~QJQ~V`zt0!zCPvELA zhMC=c0>2DUS)D3LHjCsn+HGh+DU>{^4~Enj^FQ2o-1rIFGWat;vA8?RCu?cXubV7$ z?YYdSXX!Iwdu2;~X6=H{!|JwR=5HazUvNqg_|HT8TEC&qSuAL9EWtt7k?|IxO^_o= z-Cnp)&K3v$%%E+3h-H99p@#G|MHpfY@s?%Aa6V)$=@ zqYyG(Mjes>klgng%~&$pj`EfoFO(kJeS3kvv_5DH)VjVlI{+aC%q1vVUKNo;{kmrA zH?QIf_?@c9w6N1dRxK~#OL7nP$monqm&`^(oI0GE)m4=yH~zRy)u^K9mkUvP@=(YZ2{$giG@NfUCr z@(+}+{)D*H+@_;0jWdbvrd2+_uve8x|JL(!$!pJ?ni`b&FXO8oHsAJ7xTt2 z12VTbeh;@JdBEz%ZeuplwNF{I)Tr6FVwxWxE*U|V_y^9JnVpe+HTG5IC+VzU^8+1U z)g<5{QC_4}72K8ALeDTDr;*l87rh@J*unb~A-7IYJ^*8&>>(-&aN(G%Ogs{Y9t<|u zz+y0hN&lR%3h0TojIW(8RY2i}B{&Cq#$5p^kPOc)iQ?;~pLvU^-kbDa%FIRys0R#kmMjePFsYq!lJvo>LjPa)gqk-KXop05 zmglA+3sbPPmAs0};F$bF^|}bJ!Q(`QcL>k=m`pcm2D09qKRJVSu~oEcUn)BPE*cn% z5^l}YT)Za@(5OlDI-R%oWGOM@%N2@3YdYV#bZ=2Qkp)p>-? za|sZXIYiJmu6L5{@tgn`Sv~cEBcnU_eF&k?j^W!z9)!65q@dDCykUtR zVXttua^#P|>fo!PlSsOh7Ab#u-Gyy6_#{aqf#u$POx>$z4TNy*hvT5h(q$C9ww&17e#-XNLi61x= zvjlQmcZM;&Fmx*|Y^PhOrN4-h#S6EqwWSZn2C{(;XYYrVc|{HfNi`<5Bz(|dfCZqo z$9+Y~$4oUHcV;Bvwm?Kw&BwDY11@)?^M&qaUQ1K}4|&2|LYVL2Ir-0ibolDBkmJ#| z8dus4Z7u0w!63d~uOit;YcIO<)Li6h;K>(yF|t%ULOmG|>6zCkiVUNd+%CIyFJIo# zWMS~u&(Uw4knS+3Dd7|c{9f1O^wV7UL%1;PnO*|n-TfjQME4k3(}m3XYOC5~OD-~l za$Q_(-Jjzt$mJ07xgp3Vl0+aehfki4u|#DIgDq9Y$r?eeo;{V|#u)HT%@88fqHf1S#feFN)t>n*SIEXOvZu8iU2inmn+GaI>pkxQ0cS3LZE&P zjz`zLMq#Q$)rXOHfpMHKm8hWGu#*|A*U(b^y}1@UXt>7jfN0AX&YzQZyvVDCiXBYa zvXAeu>@@*`W&LVBc))N-@W&I-?qH48Yq~?K_T^QAe(i1MlQ0=i!k6)3955(TQ5W{2 zLp{`U(Vaw$w>KI8R|Z@ z@wrXuvziTxGO!P)l<(yHXJcJSqBrC#R`o_PmEsmI$56ta7c9iGT@+nzrNr7o61Cjc zF5Rm$Fw3y<;w8zOy`tL5!@Dm#pMeF{R|lSP9%0;GI=6cw%v0u$02lE%AUR3Zzf6lR zoJ72()yXQlbVOmyl6~jKIjdj-pGvJMCCQfPDVZ;DE(4+ zX{$TFhu^_%o9FAvV>dAm(t*q%cqiq^A-%%ef=J>BtaTI?v<~E3DAVf6`ZBwAeI)Yy&1~C~xK$Cf*GA5DuR_ZrJ$oA1b@aEvYma zb}slK1SY(ZP#Re+tKceZ*bqBf87LBZhVPpc?{jG6a4>f~KsD@3e-i&H$ti``+3u|N zl2*h`NcJ^+vU7~=z+Y63M3$q}_?&p(+x$At@>_wruOa#zUgt)(jG>_Vlgx*CYdsfS zy;7`?B+X-Uf3};p=q(lg63i{yrj1g64UY94Nt1l_$PyHadO(pHu3e3PL;!g+s>5yz z@e=eZu}Y*&NqjKQ5`NPoZ0PG2Y0dz9fh{az_)z6;mR9SD+?yi_`XyA;c-$U1!sD(+ z1ttiLMkMHK&Xmbv>9p|~&fi*gUM{*d1R?pSIqmNu%7vEb50!e{er90Lq4LMe>C*cT zM1P!^i$f@81*EkdM;16eaN`|+%Etc7KMEs`#o9=1vZHVBi0D0f&1`y7g}!fzy8}3X znm;X8`H2eit^F_4ma@@&r+9x7G=ZW$N10M)vjwQjMZZAST5*h5XdEY`-f9wg%ZWuN$@z58sJ_paq9Qe*qqQrF}B~ z@>soPYytcz&rX1Ku-pk?w50>nPrHefXFmd{+Y0(KpCs26xiL|XEQ&{R;#)rdL=HwO zR7@)n+)M2H_tj8B<1N(HxnC+vl#eL#lFR%Xr$)8HPb>CuyY6wX#dUy`KI?*JDZva5 zS-tPno{5k#GB!Z+|6_wQ-l%R1gD`#kNp}M!+i7aqFBm2aR3z+p~pUg`5m?vBUREqihnHX2Web( zQ;DR6G0D>Pj+c54*&Yi$pwQ^rd8>Vs)DUR77ao~*PUr@%bfpEfMs*vAs=f!bvJ}<} z02IiITKPP`i^2g#~tvE-Sb-u}dywD3Xcu^k#h_QcB&*MNp`wf&a1v21N=n@p1= z@;67IQ9w0@*^)woSlL8bpT0zf(d4{W%6!Zn4;OkVLDGE=3_{au{&v%c%%1h0^0t3= z?wf;hwnnc_u8Ssfm7pktYDsxM_FFsfo7&P_`pEW1_rfRbLsvydcY2=i3_%Ly!uhUw zm%Yq)-YMb@T5!(CNzhI9HC-YgaLXe8TcTA@?$lYBS0lW%^*rN^JI} z`k6b*Hkag2%$(cf4OgrTljtoR$|0$KB}79z(OLpPTTM$TexXqQCCFpd@GTdd60?Fo zvZ`L$R|&skXloY-TITjyhA|UH=dW73s+i6zkqbmq_x2D}3-YbkI)WFZm6ZkBnx$Gf zIRG&QPj}?PWvIr*J${Dm_T*u45H_qNVz_l)FtiZa?;sv4j{Au=A7Gb>KkvFveWUug z1v5D?P}AkItxA$3w>W7S+OyEaiS(M+NC&RuUTOc`SqC!%h*qZ|db%6!7>UeStyGUH zro>IRz4CfQcY5$O8UWr|dHPlZJ9u2l%~IxgR=qBgs%*aPzYiA6?8_z&CPr#YJKcf(FGVqfqY0256A@`TV%RWAI4@l*E8si$pHmOEhGgIy$ij+1o0 z*K~qRe!&1@3uC?v{%4Gs2d!p_p#E%av`jC5$YZJy_IpUV{Qet88%SnbtV*2-j>13n z6~+XarAv$Le{%}=H{>E1=eLRLYJ-X0v2t9JS)A&lM_q{jV0@vhRy%U9wzn#^hivy@jPns^O&O3lznC+24!9~%*< zj8)MEf;2iECidVga!9_fQvLNOK7rJ5BID>i|NrrWP0K-RST)NPkZkLTBDxw3enL~ z5`mwucWqm(So85ui8(ir(!&L92Kv>%3}+Nq$6<^ZC)0Jj`ezf$PB+}WHXP8q49Rxb z(}{`ZwW>KO2(J2elecr>u`9Kl+SRX~haHhQm$8T}?9FyEo?_THVeCJJj<&5x8aVx{ zv)xXR?GO0|c)s=^yZpe6mKa)eJK`BDSTogWdCqF;VlV8#?_sXiIL&W{-#Ta!%ILUz zV|{kY@=4rXZ?`}bm19$(XF>mU7hLnc@s^hEny;U};gfpnS;kek7{-ujUYXl?A>pW+ z6)N3Kviob=;eO(5f{M01NsxwAFrHRfujjNzdX7wpI)?1|wi)n-eu)U*>x;wwgZEpm z2Uf;^eV$M}qkOhb4D$#RY(CWS`;{Yl;O+8j`t#uUm&=>?r7Y7XN{|z-{QRwE2A%rn z1Ljs}&e$Nuun!?AbnC*|-Q}tC-tsCumP>1z>rvSk_7W&(Fn-t>lctS?P?doj{}PS4~z*$d(xxy->6@kCjTlt4rL#WXD@Si zVH0R4eih@!1Z8yXz%$^KS}~ImUMrir=f$IC*@b$F{P0_|5B#)iGSA^!?orXu)9ZO- zU_@Xio~o-G>S@iACodLVb9Ye2+uhy^oaGxGG4yZ< z?u2q~-p)`|&~Q!%`WaTvdkS5)$p%#9!Wm|Yybjl&+IoA5??a&+iqQxGZJT>gdHmCr zYItS4XZch5C7jj%^EV-j`qDeOdi*H@(dm+$-?4=C)rUOIn(!??3v1_?4<+H*cr(Pw zpXeB7=V3Dmpg}eo`!t=KlMy^PdJD{*YJ+o!>hY^O_LW?Fpt+%h z0GT))a}(fPvgs{$4jjW3cLvc6!G$3Wh_0iyaOaa>hYoOh9_ts4IM3d+nmHS(4C1^d z>V5f>M}W!NJZpQA8^94D58(jliJ=&u{{7G(SAd2P*Q7m#jGt00L`OZT{_j+!D=r*(cSRw$vl zWPgQM?YWokUt)BEzpIvBx~^m+!<&S*f{l?gtJ}hKoPhTwEbgQZdfO(bmM3Tedvmg- z{F8~}^jT;6*dwd0rb~D4S9h0h(Ht5+-KoN&t~BP3YbG>xj9FJWBSW19Tt;e;)t zDVw7)34LS0!*brMAWQJ^o~M&b@*jhFD)Bol%4hbX2I2SxJ%df!JVi$970!j9doZJ5 zkLetCtlLGJj;IoC{ii%J$#@I&ntCo-Flor`VM5Q;mc<<|UO_X1dr){feJ&SumxV(K z?Ym8|($Jv?CD1X)+TWfL%S7T`aaq2KF3ku1sUiC0N>6RIJV^IHdD9zgLzA+yBMvg{)t87vNPea;qd zdT_}V@;HaTyi=gspn|t1292?`cdQGS1J@y3;AM5;Wo}3>v@gaRacR;%VBY2y8fN<$ zi_0BfCE1)8C~ZWSKhZ1s0*@y zc3)jf&k)Ld{`sJu4?pgNm$Fd^x)r8Y^8EAvd-?2>#e+Y?n_L|rJS*L&qD+s^?i2uVc>{%)fc+&SW zOw~>h&jfKq$%=~o$pMmwoa%sx)#3`#^;R2>Kwl;@Ry=f?#)}q+y)MDmg0=N)iesCN$iZIZ2dREm^;(qIbv$_AaSz)Vuc~*vMsbe_gKx6 zl%kB1IZw=vudQ=Tz?!t-H&1e+q}y;3tIPgSo+HhwH`l6HhpcrF@@t1EfZsh}-JRzF z$sD|I&&{PXde%(jVEylJTB?|%IdFUbO@It``GFZ5&()Gqv-OYhS~1nZqnHrsy;nmA zcc>3i^6*LDPxiw#p440u!$6RN-&hVcj_f{L}ndQ6KcD4SHXe(BOM2~kc{$HVa@r-{A_0w{53kI-Rb(@7Uhku@Q8x$Ud zvEkd8^S&S=jJ@5W!g_TazT~xW9WxN|{J@gdf?7<>aIQ2!?! z$R*cd(bS+^76wChzSRCZ__tqDW?uR4V8ZXYA1S?2fT5GS*y4c<%t44q2Y(iHE;D3zr7bt$XtM z%wMtMSHBB@|J!9Y0&m9MX9G(Z;sKn7gGqaP|JaFKG}!{&9sk>LdFqz%I3m}3+r6wV zi48)Tn=)8*Nj8qXH@y8{#1d&^a^2Ng(cys?=2K#9{6jPEW% z2_RtmGneQJ3~lN=xkJ!G2|fJu-2?yBWUn_|UC4C`r%dr+O+qt8=31 z>PmFPU-q8JJa21gV8mkRkIM|u^jC9Y(39g?S{z{_9l+LA*zjX=lJUKruw-w@>x;mFD7xTu9|Wn`HonZEeD-UHrF?gQfm(RRq3_=;X@+3&oDIY8)`Ek6Qq|{%3Ix>9H-lY1+%=4r#G!$2f z0?)yP;*xk;HV27wJ@!wNDt!NAzni!kPf>38NOX>iv;s0fZ9KT4?!vQ)cm*3p_tYlp zDfa=5mZG`QagMqdf&;oA!~-4nfN?>WjkvkB2W$pW_=&WBctnCtnhVol3T|5$#IkJA zrQFUc=WAVT(7a7Gs3@kW(UMfT3Vc5fKG(CO+Mt)^zG{|Wjncem-vIY{lL{R{K9U0h zNj*`qj=Mzms`OIuIHOFc0MO3-b000xzk>*gv2T4WpZ=eF3|h|81&Jg<#ZWN>0-LJ{ zY^Xr7Iq~&G$An{53@8I6cD0HosDtLIt>fat@KinM+KUbbVV#h?+)722A;#<+OGMieFFfk;Kpk1y6+cj<_8%uqj_tm%8cjt(Vf5A;= ze1w)}{EF4_R6kH&@YA#Sab= zqFJN1kcOG7!MkxZE5Dcbp7S0y^0WLe2u952{Vypi;ooPywPlEoJX1 zk2RiS2ze@54~AnU`>d%GK$QYw9A9TTKfG@c_KHeQVI^zy=e9ao_K;++nH zhU07kr*qWj0lp@E8H=7&nL#jjg6XsZP=zYIoN)B>Jy;ex3=lJU{xPSu8ndfvggHQj zv@)})xKU8?;*s7Laex}+Ro)wX@%XU!A72!Fh`duHiyr`qVfPZ>U%l^y&*0dO^znjD z2$kgOxwNGGtI5JW;k#6W1YL=l&b*S=ck_+puWC~&>VZ40dv}aD77*54PlXrfW13a> z7gG~;+f2~tof^#)|3pLg%#@272D zmcU@YVepem7+Lzebr(uXAdJtjR;Y0L`Bwe-xZn2QAL@+skjw>2z2oZ5E3L!r8PgHX$1;-$uTg2-Oh876K_x*Ztw-@NZ9tU23 z<9rLITxwuF)L!oh>p>6rg7k(OGJUo3=W&;>DG!*PLU~<`d;U19_D1!hdVr4THU580 z4QIa17jTk+H_-jVt#KU2j14^2)13b4^^iVzx4d$bj!utC`zEgBWW%zH@Z!bly;_pe zZ+MD5#7QwUM@OIoZkahM(r8h~ToeiRZ%yu4A12Lw3ivA`7Z|i=y>*C_~Op%tZ&c^!wQ3K5ut^$77D@~ac;WcU3NG>)a)2g z{$!5v0CGR<97X%0LEMKE(M~aD=wr06aLyP1TUw~b{8Y;`|M}(!(X*GkRDiOBZ#z0u zHiO*VJ~i$ymycw8=Hg|lHdz3)F|g6+)-3@=cVX8@?TYuTdFCAIojbwVKwq>c;q=c& z#Sd!AbPo(4KQJC3FuPFi8OZ-3Ug%pw$Rqx4@`hrr*QsY8KSLya;9^ye|4!st*<-{G z)rhEWlMGR(b&b$>#AcBO(Q>lFH5GSRMZQ$oht2{+LnxRX5A5neB{}&w9#*A1(x#l1 zvVu&#Yb2{YffPR0;pqcZLC1A&JC z%HPF9;yyMDuLV$5x;K8V@%|@4wO%`w>z--oUUSjALHOy{1QRVQ#65@bw|Kzbv3F#TH!G_rW9M3@xSX;6zziC00ns3{dm67*6KSdSRUeK+Q@CnHG>Bo{1uDkvgHJ0@T?}ndEh3VOIRce?u~f?B1x_}(>JZ0 z8?S%2^0u4O?V55}Igw~rd!+a;v@;(W`p_v%2v$_?axQeZcqMjp7l~xq7yT|Dk#W%jR zLpa^M*BK?Sp&~ri>;Xw zk!vWOatdMlFyWS_aVj9!?sz8ED%y3-Pw)ZzGO|iOp=ZG(wTs<%;2lveXZW$p#aZ&i z((+1+Mk1W8$=14^ti|7@{!>=+|^|JkEROWv*=PKDG@h5JjMU|G26XHpmm4_iU z!l0zV!7oMpkeZ+1w8s-m<=~N_)jp~58FaW|*P9L2JF4}83iu(mY%-vh3Fx0$kma5 zx`JFt$;;?JmP*IIb{x;SvQnP+J%Yfe#3OdqYw)!$TPQ`SDxu3GhQ;>{UwOm)ubM>+ zPcc&mUe0|>VkW{%3Gf@Fq#KjG_0sU8@Y3f)C+ksJeb93W&-F?|Eb|zp(~1q2jWSq( znmPFE_lqTI#rQYWj#t8@^h%C8!GTs;yPzZvP!r<>o}jy>IUqfcLDTyJ|k-gi9P1l{oKO`35;3~z$G@nEcUiZ*X4 zSSh7UEWPe8uv>6~E=1p-ykiVbgxnUXo3COY?`{^lpXyF+PODIgL*-YOcsHTibo6)<{q4Hz(50RbhI(K#AHrA11V8l}WWj*S={BIS@!VIVL{8NDeY9VW^Y z6r~K*pTf8Azvtcc?s~61yPo&l=RW7$H`}!Y408=bs&xEC(hp8@)SJm(EL=TonKUXe zet)R1;D+Hs0q%V+&OiZpptd#}b948@DF%9Pa#U>VI`qC}>S`Kz=*yKRIjTJ;mz9!n zeVIc5&%+5|Wsr=LiGKJu@V&;}pXW4r*-XgcAG{zXrQx`95_gv&&+gZYhX(z4RX&*%i} z!z7a_gL^1}JxaDxzxr3uC7+R}wiszn0|e-IsWwcTp|8-=;;bNN-ZK1u^h9uM`#*a6 z$zlA3g9eW|K)vS>3X(u+WF({|eYlNXI>S+!Ye@n>h1ifw^TYG}Po#u@!H$G(sKyNq z=3Yr;!{*9qmR-ffrY(VS-bl~x60AFW(q~ZO8eE$#rZ3PF$$==5(o`&b2e5Sd5C}S5 zdOgsBqz9+t9BP{vW9Y~dBu}C$2~7SE71bU@BBedz``xyGTaOjlgEiUoY#zk;AlOMl z^bBr1sJv~`^z_+alYA>LliW9l%X|$7o3YEXJHMy$DCD7v#H4R(xzK^opY_;e=nSGZGWuB!b_G-7O%i8xD;+pw5Va> zC6@STPJ*jMafv=SArB>kbHMsS7$x8sCx`+F3CSdx%D^CRunw+l%SoSI!(RJ%Rj4$BJ%E=FgnkNy_JE+JNlFNh{@!GITk6t(AWg z`M@`Jel2a-ij;f_)@%E4n#ini*l^fLI*>E~mRlIg0@acfmCd*82=}=359|n5|NT2) z0WK@LWw5=yq$3?@?=X>KP(L|la)HPjz~Hn1b89I}$34K(ff87@C-zUuo-1-(Alt{1 zi{j%%BvcKg=h?^u_OO=g$)aY~WV8s~R>Q)l@KqFGChsA()Nk>|PKugY8MHy>4= z`Z3I9Xj$pc`8i)V$QqD|XU9J0ug~5Y^vT2C{B!j_C5!W9;MKoD+}F@~VN2_AH2L3H zy8^&!KW4)*Z~XI3R{vKB$uUeNU*b9dKHIw!r0=D8?M15=83;$aAiK_Lwh+$6CiD@& z_BJ|vSg-`gyo5PauCj8%7LLq(0P|uQLtR+Deo4FXq1D6GgAv$Sqz2IksW8SwRf-sc zlA?=hxzjtT?zhqHb7aSAK$b%hNCSEwHjQc*Qx8g6pHxy4;!G*=!?YU$`FZ zH+`}7Xw=PgsoeL?k9!sILJy$HUnnrZm9^dyl3p#1rf?mG-hQobFG#Q#fB2jI!VN4i zUI?EVp%zvOfgxS#B9@U?9C1S`0TNs)T%iUGb2OU(Ti3fO+N)+m7oZvmRIJsqrOsA? zQY*WQMUD#4iKcVfoUQG5r>$RCvQ4J!7dZ69ah=LUFe$}PBU$@MG&ipgo8;IWtV9W~ zz36#g$~2WNU?ViLbydm<#xN@>YA7RklTj<*jq);+$;>hI&S)8 zR0=`0pyaXFD=$d_%N6Wu_kFbW*ERScNUS%I!oNv= zwCo(FR&n>d&4r7u^VhgPs@QP5Lj1%>weZ4Fd&?LbryuT;!6Z3DFS}ml`>Tp)bzECN z+?(dO-X`lLSfF81{(1Ia!LOwU*FJbCA9Z9s^zsrfzT0;`lJu`e=wY#-@L06SOOGW7 zdyr#s9RC&YY){)}f@j8zDvA9ITl2?@@B`U}o76hX%q8VIBi>e>dUR+F}{zk9K| zxHOiPN(o^rvx6^cW2J+4EDl<%-Rdfj?E~v?7B<%AofPYf^yl#JaM>wz*-vog!@@nN zuC2f;#n#8!))Hjb=;xQWipt+hT@^h=aDxHJf}kT45zj_D#7?Cx_3RRQsAY*4hCy7waSj_rO8YiR}{9pj1KV5wrNzz12HE}qfCv8?n72C=< z|EYBUfDy--8)f>}dA<~MjL~;;2RpMVBjKqt1ZS98+gZu8R*IvUqtj!^Mrz|X>4$}z zP#$rAwkg#YcJ%QLmY8oC3ry<@XFdFmQZ49a7ahjQnJ;jhxzJ4tz!R@t(#E&mcBDJw zv`*tMLVkfGl_D`_2^d~xrObC77dBc26rOV)v%Qgf?ZZ+oXFi2eyKIwDPFw|KVP-WX zEpsmy2U;55ud;}flt9SYk7IN?+UZM=O*MDr zh2QGSmkjLryiO#Q{k_~OUD^xtggsEgiid~roU{v5 z5vVPH3AiE&gNT84;!YmBYOQgR!2T6bKtG77a)P9eYDWsQmRvmItR(;jVRDh+2=*u( z>X65$>je+mJ{-;0BgC1xmcj56^&P>j8ed8uh)WSqPr3-Y)^6eM*Y)^m2!}kh_$Cgh zoA{AwAkoBhKXYv*Ib-HX0U$f-vB*rJ=f+L{L_vZ4WLnkbkIhkHE9<|9O!KNNzNP?Z zkCtaFzKI1@g3kK;K-V9|RhTu%c1{9;gQKVw__iSU#Ns}x^k;YQ>`%d2Yeb8G!&}f| zR-ygZr+zxj13Q6Nt%QZi z-4t?aJ@dc&a_mWqKtl7v^s_&b&>gmtQ}m0RhRmB4zy<58#m4w&T$B1cc*C|hLFe~h zAAsQm^a8$HpGS+_v#)|W|6T5lp>WF_7Q~ifl_pHEJhQ~-3(-3_uRq^CerVy0z2u$w z`fPXU9)h)3Jl^|&Zr`;<3qu<=0_5GLxBb_gz83 zSI;N)M!u60F`Nbohz>BIJ~mBSe1%7Pf8s2_*yyNxWL5xig?;0y94yB$hhA>srWQSI zl%RFf#_|$)=aKJaou5E~;6t#`z_%<}h16cKdDOr)BkP|fqt;Kyf+c$Alk)+K&LqtQ zIS?K!dG5Cr*L8ucgri0h%v^*5svS*JnM^S{Y@E0}AbUnM*Z7^@ zd8B{Xrl{ywiv#oilOg=extC9SI#b6Cn2WkOr(U`!RJhrkU-}D_*{kh6X{m46b$SBI z8JH^e3!EyAU>|9bL3}3xO2h})m1yC-UbJ6jf049vS)sllMFLhqWao#Q!an>vPm>!K zxPlPQ#N{sWM96#vs+KcwSz6+l!1?6VM4?bo+)PA-Q-pmPC`mZNsWmXVJBEvKW*q=FX_?ehDug+0JEIi?cqus^ zF>Oq-AbDt6jhev;FFg#|>!PE%`(!DIiBvvu|Hd8DcJjeyL{!4myj1bhHThshXDKhe zhci&;iQ=7`^tJ^yHBPKT7-1$m=f8Us^AFxqf^+A1ZU}S+i7#lg@xN~xi6!JcJH01@ zt-}rg=G`UlC+gXM1NBs#ow-@=1&Gdd3dmJq0eXwam%<9OV^P^%;L6pk5=N~dDlN<^o zNGQil)biv!t|sI*h*;I{rJYR1li(HEU#hj5h?Rf>SzAJrPC#|r#C$;C#ac@>U{xt; zEK2JxnND$-Y>FF=nSyyx4%hgI_Mn?M9&cc@Zp8+Z7|H-GfHR<@Os)HOS9I^K(=j=tPD{3DZL-iFg-Qtw&>L&gP zQd+`U(hw?UFUpq`QEufMYkD82kJ!Bte-94He2#NW;qfzYjvC4aU$U=ar;-saAcn?t zaZrXsc)Lz#a8`$aJ_WOCRPUw~Y@{2Wbem7><$Y(QY*-FKZ`$=+wH-9A(8Mit`>0#n z#~gy;;(FM<;OVNWUX!E`Dq*^;3qJ))6Tr$zbe0P25F{4l0MtPe#m<&bH)mv}=eK+U zN+h-Autl99v9gEY=8|8vzut`~N=JT)jCPF5*zixpOYQ&E&?jK+*+(M3;3R9g4BaE~ z&xa>{sMWEG<4i2ih_zfijHJh@`p%g791#Bv%P)Gi`-$G)IZTg*vdTh8oESFgMa+`l zvzkAo493cQ02DlS@?@yNqZv3|E-B=3e8J5YMeZljA-x}v%JBs*AWdUFcppb%oSqwy z?{O~2SeLR2Oqr`;-9+O!{&j@rshoi+Jt?uAcQ=!PUj$@Z*8!#<-pgTZS7EavboD*2 z*`*wyy||bRhR5{!6fx_YSc3MyljX&3_W#9%tHrUff>AWw^tY7=CcaE9(PRS<14y`& zR4TsM#ICHV_emlAeZQ;fJNq#pw<_fhug!Uj*tI&BD12On)YIs?q@SGyRGp;puN@C( z^T`iVjXj^9fpd#fSc4+s4pEnjS#Ih#NUWqdd-W2@JUgi0<#e$*pMh1urh;*CaC*jD z_RGAQ4uFPImgfO*{-@6zFnGIr)@mM#tG#|ZGndYP+rME|cU0vWsvhj#&!4fx$aGLN zYcIBz6U)zsVwuPsEc6ANH(epM~K|0B?Y_|&2tfs`CL9c-X1R>lX`MwXaG zqD&OieHCQ9A#pPk*WU4X9yw( zB>UpzU@-)k9`4Rg3oRu5O0VCs7lV1N$>#jUnLf|pW4JF*1bdEV$ed?U7eYst(bpaJ z{T^P}#OOY)Aq~I13QWI0c}7C5<71A>ZQGB^KlpP3ujqJn2AgUyDj){0~SWq3@&XG=-&Fv>bSmU`B1eHXP0cnV6if=z{ z1!H|BwFcXVt-~iDpd7Jy{NhD*^1ZfN88~CK~q@I*IlfF@h|ALP^P)lOq z5qRSQ?ROyG6Jmwwbu2!LUZ71FAP{|7Y*cPU!GEMelIMY4;kP0t39QIpl#{2*WIKQo zujcOB$sbPX-IbZu=PsM$(PJ_$k!1tej9pR&sw9A5esW@DX-vdx09kVf_C7c($OW3Ao zIu!RxsvGkcz^teiXjQft8XL~wR-=5>g_9zy0)4$%!zh^p4^0+TRSW`+U3qXJ=R`4B zO|y)@Kj`|d=W)5FJ46OieyTZEW1X#hI|m5djUqkG`(8fxrvMGo^Ex}s1eU@< zXDe=Ul-IKu&zP$feHlF7v@*3EN;$Uysc0@)Q@bpWMEK34EhqHpUvh){8nL~SUvb3*r0BT$=#y@~%JHLy{v1gsW^7_*3DF=ZAQg&&t;M3Ro zS=CIxLXwy_ttvnARv=r9yn*bkz^C@U^zQ0Cagf;?wuqcaWl+by^9cmcWa)N=ak26= zu(YOBzL`|g7hm1Wbl#W{yR|%3-CH))7G0rps{-Pl5B_rNrf1m)As&`gMrG&3{BWF=>V2#Sn)Wb&D>aZ*nv79;LUD{JO);~28>t22*xeNl0 z-{-z_9Oqr1*pTOdX!}6!bkbhq9iY6|t}1pATiLm-D^WCdJ>Cc-Y~E77osv}*qU>#G zcd2q2i5udrjl~$ziA37me?8@pA(*pc7R2N|SdN2~)5$dquC1wI-r-K=AUA@knNRIa zLF8?5|NO|hv>)f}R8+ky%|8xqNPudhxKEPFiNFDKKF&z;?S{mfb$NeZzXtAsqT-4w z&KeS6Y}Bi_6!A6@r>O?2CHp{TzFq{&2835<)-XvB&c`5RM?ifdH5h2X05eTE&4H)5 zfJsPAE{GBkBcM+o0c1%osK7|l*IB-PtiLx9yrKchL0RU3SG;YIg}1>8s~I)S%TOxl z&ck5q`V#MhbDVb?Jr9Zo1s#($ zCB0dD?!Z!7f9H(7vu>hA{x}}+m%Fk3sd^yt`5pT{bDBhIY4*%fAS;ZdRosy~yo04@ zH0&zkFNqxVvwa*>!>+86pRK%A{%wPxp3n54$;(H*V9OKiD58?3c0(Q;dgUinXOmkw z*utFmg2~_2ASZYqGn#E25jmItlD$knLS*Vcla$YEbVKXN2jEEA?%6y@(u!g|SF>yX zlTxybcGlgwVC7O?HcbVNq|$$o`dc6ki8W*5ETn#bD@hncbO!;M?*5w|G%%|fx_JC8 zxDezE)xX?4)Zl{B$C=k^Mlmvqc9jn6>tP7ko93w^@WK6`)SvaynjVTcp~iFkj;jF$ z^^eo)Av>4#hO2gBij_A#>rFVpKv0=n5?_5}DOnLwW~x?7=1;0B7W?_5v?bvi$)4SG zrS(#sAPyK%-b|!pp!y*fW-XMXf&ypG&KEIZq;~he) z;%QvOO1Qh8=WfOA!J+!}GKq<4{gPnM2eNLAI zAd_3H^wjp{#ZFn!P8u?rbXsdoFMYRjL>k;-+zH((8!|j@+Z_tIT15EGfs7jJ;;zMw(-odLko**}S z+!(P*YAifO(|~EWq%^VNOY3bV3OyLM8oER0NaosfP}DEz69j*d`B$hVqQbV;@O(lV zjswe+Hp#9KgVKqGt~jg*zI08Z%0KEX=8Cr_2AO5cq?DN#ki6p)uV5Ww5KjV-6%H}Y zzpUtT;244`N`om7WBr|rOGwKfMVWMKXKLwP;UxAs&`rtw8s{Cf8JVfPqfC@qPGV~sAMO~p5{_Bh+ z%D)bVDOsp_d5(UDepg#E-%$puPE~yFevcO#14*qGrpK&&?jJr z9?qJs>iV;HgLQ4bsR|kfP^ak8p{VHQWV$NTqj!%Q2rwvuCr|_Vi#ZOcf&J+IDC(Ic zIcle#l(~UMuh_dELrjr_yB)C|(j5k~yh&xfU81Hk2cMfC4)<~WKj!y#b-8rz{XgbY zDAcrv{Kc%8->*!q11I5z`iKK{#wcF~HE%p3y>UWlwgKZ(4Ck2CgrslBy4* zD_?|Wy&N&3GXx||s6mZL1rwM5eTl3MY`}GUz4mG6eWh5aJo9Hn zT=i9bOaFFHx+j~Jql?5}Svrwti03Z@^mhhXChLWL6zL?ZFAfuW`wwIw0GEp5xKhbm z6UkxwUdK3~-H#tsMl?$sEy95oPe?^!6f8Z1K`-hn#T2&RWwzFyVc)?&Sw5O5wHx;v z(W* zZiV6)HHuL)COsM@{dR$9Q%K;yVARlTqL;IPS=310Abq&gd10=;k2o)^yB7MUmF;YT z_9SvN?2c#H!~C)DC(sf~;FnLbsw4j%$lt(nv`&B}RPro_%Y926vmQMnHPiZ)9nd)F})wMyvB4APaf%t=fNxSWr z^c5Jtl>OP%rSUL+gWCWM=F%Psl1s095VrWHc}t0 zv`(a>AHwY))dZ7D!k$!CQtA4j|L8a|M)OF0obO0GM+?u;*=Hl|tLjOLj7uY4>NHkN z8I6roEPHnm0xOAeop zsIQ8u6wHqG;uAFx8Gwkp8tB1zg{#dMmZ7f@~M}TmMb~zGBjZ4%+5;%RzKJUAW%2*EUq!2SvzGm>-ZrGe3&=$%lG_?u=w|e zh8pS?JT*Ytj7^s8&pw=#B&yf3(ExIx?xR7&R{`L%RH|^Xm}KG^zgH{Rloh%~Zt#(L zzd98zX|p~bKbMLS;5YIWcW!Vn2jA9PeyzyKTl4X)pwyhGVZsYv#OR4gX>nW`Zc!@F zOTw#Ru3**QDsWI#l9-m&C)7qu*_ky;jG}4b0jfi~U3`MUXS1@iIljR3ENWbMqg4X4 zl#>=EL9>M1l6Lshx z4*WP2L?e_3zyf00){(s&WBEDFa+0#4^1t?sV0eywQf-*-tiZJ1itqJrz_9ETL@vjY zxSzewHPStxDH@30GXqae13FP}LQz0Ng@yZ2-tn%xBHz&hZyi(AD~zkyFA=>ZUN4k+ z(nnQ44A0=j4b?}{<0JxC)qUfe@zT5sbaiJWL6if1!qBt1{A8FWC9BW8YsMZ_@oL9{ zsNb04Idw)--+sZ@Y`Gh~zG+1tGg-z~$hmwnsT3BvaXf$w^eDZ2!aE=RD_0dwFGF*z zRao|~EA7n}pKe)&F}Yg2(Z!tCLC;i5EibWYRn(W>E~~f;@Z%VIb(gudMeXBMxzN*p zz5(}p!Zi^?Uk0pzOLZvPwBY~J&-dk5Jp2D_X599rQQPXu;*lt!%BK1h)%1*fb^M2V z7qg~p9?8Igm45->2){?LTEMj&bsJ3pidayW1Rv$L^LYr|ib6T-1*# zT6wve)GOYh!MWXbQt>R;WF`GJITyHLkbP7mEH@e0TY3460*c#KqpZb!?$mNtv@%#e ziQ)Q6-Hs2&SnztOieQSwycBrJ3uD-42frDP!P>|ykzYSTbdcO$H@$9Hyy6crDK_un zk2GeC<=pIJx-(jH@=BqGthzuQtsPJ6fu(m`kIM*GyTqQ|hvAL{deN?I#lv1@;~bv; z5NRdIaBKX2xc%WWn;4J-ZvzdmzrV`1Ww%G?c$g#e1u@tCu|#UJ#JbDlE>>aHl&AT)R0t zV=a7_W;l$^TUXt20zYZb5~dK9{8DcD|IK}lO<8cM!}ECk$FYO`2#vF{Sw9MBSg$A^ zORF3Mq4oHllBZzGs>1pbEugo_xZ8J=geOw)b5O06`py za+bIn{4s9cDFfb+d>4bfoEG*i_MjmMY`w(OAiloV|Ko8qxmSo<)7ZE z$v5gSANOv}8tcrt_0K+k-m`eHFI2!*!tLqP@xHdjf@>W;9`^jR-_U(x zWZG|D&Xcr*ZOpa09hEH_4{IvJz*FTsedQ?}a(S&h)2B2Ym#qU4&L+n);!YRZYAkr`Syi7tky4pb}N+vSJW(_d_3pg_MZ*5^^V}v5sL2hKK-?K5igoQmLzkD z&gSIkCKGO5OA%x{T+Nt|c+t+HAoxBke@q+ZhvgMDhNzL-LNzSYPI04WHEPFoWY&RX z6$0*^+;7syGE)$mMldylBUhq` z5Wu6q=4OpgiW#e0UP{L<%bogpt6Ak<1__u!bJpc@RhY}w3og2^QRF1&;Vxv zJvRXj$Ls<^+wqGRQI8Nwk2wp2)*n9p0zCp{5#&AD-kSrB17}6fgfyhQ!TuHFAlgGTl&Qw^OsZ`k+LVt(>oWn<6~$=1w03>7bGxaOm#fw`3ufmiJ0y;S;?N!L zofd7@z{Rdw#JoaAjrZi^p53dC^b+9C-p(-9w1p(!@F3)kG-8w!1t8gtdcE;8>K3SY zoxtClBvzyafKDM+ZkhT2E`CeS$~_~V52ui>Bg8z5PIMDaoer)z1Fti0u|y**l>yhZ zO?eW6>a!UzS>g7e`rbnExB{!M-_sGUUP1$F%sVPs;lIU4U*thf(7p`QBs5odz;D8-{mS6xY& zjDu30ePzK&q77UZp{oSRA#W2Jga}9Zn(DBt+0DG*@|AVg*hUwq z35)NZ1efG_Z^$W>U7e64SHAA}5=)MY?j(F?Z{MRBf4*>3Ne#O$K4yq-;a)&965qPtSc~f3+^-)pFd>e^S#a=j5U1R)fFF9C_eIP8kO6aGmW(T-hp^e1QAWZ7d;C~_;q%xu zP+))YX)S)N)^dezl)hw4?@2mL1_=59y)G${9v?pRE7`T$+?W$Z%^Q=Bf2!t80clpV ziU&DUv+a%h*4gOsV4};qC@NR9Y~anEly-lUB;`-b&EMT8lc^r(S4Nn$T=&u}c#1qA z`OjeXFB@%lMzUy@dQdoKg3b`g zgUEsjtJklOux}oInDSH^j>8%$kWE(kqkm3Bwwe;ed+zR(Pb`uYZtqgKwnpN|NgarGttRV#yi`}M4x~A# zm^GCf|Jb4HWMWdKyd8?ba#7>BEP6!kosE(0oCJq=BM|h0H{`6h1BOb{ccq&trO@r; z!?)P~6#jA8D1Whmah1S0d~?jdkZC`459VVby7AxIcdaw_Vv;_yJ-I6NLLXuD;MRrx zDt}owu|HJ~FYf;0{!<`(9^?(lOu?h<{UZKSuz5Z(cXS^IBoq=bsONl@XY_$e+i5!9 zMZw?Ae-fmEf2p5BiXmGmOL%X&p&ciAi$gIyXKQxCnGq zs6XpRw>Hyw&NiqzjeG{|pH3O_)Mm(;_jPx_vjHCb{W1m(y@7c!N@YyVyDL@s6lYH* ze{{yW{mu0IyI~CAs~h|$av$Af4}?Dt=Qazk(pg`=MLV7Ec=U?sg%$C?dPRdDl$;A? z-8_VYCfci~DbX5B;(U~Rh7tz!QQ0Veo9ZDvG{@YTj%3r9$W-ahg2ymO-wXgm2wfx9 zmd_wPXP~=U9aY<%-A%zJSKCs$k6i&B;>=^HyZaEg56w`X14}&ienT9+#I`C+R3qhM zJxq72;+)?fKSL6aF_&}yQyrW8FQ3QDlOBK)e+DeD|2_q|oE@awB1W3~L*$c%EjL56 z{-{8IzJx{4z@jJEgyk+CyUz=DDhoft-S08uPN3$W1_|G7+n~*f0fpXnf1u_&O)e9+ z01n&41V}+~cgdw9Z3{>;`u+;dMi?0B^BU(;ap6TdIRk{t+F0Z1;NEjzJmV2(Cg~uP z8+Q@tHEQG^C29tIHPIFQAb#lB<%C+>a+dAA9FL#}K5Ln~`FU2qTdPBl?an~gGK;fw zuD#C0UF_O&X7FKBZ}yL~J?R`x zpf3+RfPO4_n9Fhd&L=21+hph(?YkwdZ)q^!nopz3|6;h#1#}BkKg@wL6^rv;&^dFu z$Xf$VX{1q#SyDf=@o^iaumZ~0aZlTlHKd((fukFpfv}{FSJXHtQfQRt*cx4$$)FA& z$y8&AHYA3=18df#$;mPl`)J!4cikZl_up#LL!butDQvFv64fNgE{$DWEyG(obc4F| zq^QJndYtV&mO5TC&h|{cu|9|pM4(cs{Qzbom3r5P9Ym#aqS|e!ASRSVr3x@0F0pL?;!nSJ9U(9NqdlL33DP!CXPqY@KW8ua8| zA@k)#_30L>1Eo(aR6woIc}vAz7s#FWz+M(K0r+!u(5uqrW&Z2TXSdYj>T@x18&6PEQzxbGa{oznI>4Oih-sQ$co-ubyFqEEXdX}F$$Whqv3_v6A!O1a*W z)Ig7~oq7m?p9tEz#Lob@c9FNBTyKSdb*D?%g}Esm)EI_2lBIZ0rDZ0&Kp`#Ez>mTf zCWn|vJXW#e_m-yb-1MElkhG&p|1(Qy6F}YCe2%eZAe1i=#YZ9@9|B9Ux7^px+u7++ zJ;~rN*$o>_t!z!PVpZXrY*2Yi=3;YHG)rA^lD6DF= zk#y^@76(Ua3Wy0~Pb17LON2x+8sB>Ikd*D*(g-MI>5!QW0i_6Y=?TZi32ScaZ(*(b zoHUbQ48bwA0wEK(ZZ|my;1KUPaSAc$1OW__3jv1&3hnx|3S5Ev z+=eHzyLgShr)KoS;*5rz$k$;Mv<*Ws!U>stNQO2et)__9%D%9iE^D~))c!g7`wkJE4 zzKx{v0X6&xfZz^b>aAeG7}QVh1-pgbc|=Q zB^#@NX0u;*u(8LpoYacy_+Z*O2%!|HwYQ`%obHfvnDdcLgK(*HU}Br=TYIQ;GL zYl#=(0gz#AezNp3r9=CIXv5HTIw#!KSW=SOSd#Y;kTl^D%Q|`@sgR7 zyGk78!%G=mQQo+@+i>?5l~yT(X}8q2u1*R0I-KZeF?-T0iQ+{_ouqpQyP)$<2SW z=~G{it($;tS50q|Rd^w)GtvTFX38HsL`N*^#Jr15t<+K$Pt+}Q(5h2ZKy`p*&O|{- z)}(V2`K=S$(XSkeY*wDHZsrxmc+R64*F|5di+^22BE92W=_&@z?>Hwtn0`T8t0x7W z-v3EDa6j{-!uAb%)dmNi^xD^SrA(qQ70KY}v?Hwz(D-d-o6uJbw8n2|s!I zN%`i*$F^7c{(6iPG6k@;O8coR&R;NBRQ7^w7+-z^P_Cfe=EPxQ2AIUv_^mWQm5ny37*RrH_Xvy}aiRWr|L`b9xshYW9eoc#n+jB!ZMYHXg`Erss*{Sk|IeA&2w zkz*W6+FM%|Dh?#0-sF3#2+IXDaq>}e$E5y7VQ$+>5}j=hxX=r_Xa_pW<8HPcwV>;@ z=p9Hz`6DwS%`yRBo8l4gYLi(bvcLn}cg1n`d`qU{6|)qmY|#Dg`sU&{nccP-e2{A| z0Qn_O;#RPic7_HSbF+XM8}HJ8S61V|p^v1tOFJJI=E(0`8O4RGC97s~FP4oP1zrYI zKmV{fu^z@!jN{Ux>rU(ASj$=CMbvk_z2`F))2UhG`4BN|MuXjwxEaqv?x^WqeoUhN zm}cF7nK1K5)z0EdJKeQ*JW3D4v<6@P*%B|5j><_lwH>r8l|osFRiS1TW;j;6O(=?5 zo+MoCDJ4KU6`d#ZaZVDuR(Ijp;6==tRIaVIa?+XWm5^AIoJJX$mnxCmoq4iKal_{M z+_Z|t^WEFRk1kqizO_M{S^EH1DWuqk46*6G>tor^b1MiOcnckt56<98y1t~w-<-y5 z(8M71aKw2rrbUp=Ma81I$#rqNCdXGY%;E!^+(V!$f9q8&AZlUiJg2+3jc(a#V5TZW zTx`V9i^3^w&xR_HC7;OPg2df+&=w&p$C;qZ;Vmx%ho18Je*guq`z&(p3zdv+i})?( z>K2(9S*~->SQ*42%H3l~tg7bZqfDzT?e;_W6Hl z2%>TN^Hf=tgy`b|pq_EbjDG)XhwaO!Z4G7uXUvTJ>)&PWOm~Jp<6~YqrhR^Og5yg! zIN&CtNX012b^Rx9 zLHwf09D0zFTy~@R7~1O`$f16r#6LmNwyWa8Sl@TR-(5XPDnV9Av@ourbqnE_RDa~Y ze6fChS`${PCB(&G!=Cvq+qDw0(09!kikM4@n~EdeKnz^oUf3-$kLx`9{RpvO%_X<9 z(0xZd1j`G=kEo_-Q(M@|W@qCz0_*p)i;hhTZ%LANUmnQ5*jiXl%PD$!YykFnwS7uH z#-_w8P+DxSt@gxaDJ!!Do~7TAj2{YU9y-RKK0C7%MOcfpu-v?*dnK-Vq%Fg{nQI%b z&>+A^k0pMTcf6Fd)FmUQe9OK(`;~jKkFe`~z^vjr_S#@r$Jw&WayBa}vx5SHO_b}T zw3M3+1h~GQRO)IU8`gn`Rd&~WocFHos~;lMnppaWE#vp;lvtMj;dJ+G-{N@YH~XPg zB9;bB!;`gnC@Je%#~6npCR2_Nh~fa+qHJo}fFkNj-q9TJic`qCC^LRa5bM+emAFE? zBl=i$tZvj0hL(sPbW*lY#$ySv=}gvhHD>XPc^{Nmo>-(X$^l&4hP-?;hf!oM^Xmw9 za8wzkru#Pp868P40>|tgtsfzyGmVRdkY0+X9j#=veUPa7dI0?!O7S$AovBT)uP2jR zy-&Tq`F6y---dW zRPysr3^OnNcSGf{rvm+Rq$Xdy+O#@A3BW-Uyi2$t#9scKVU*rVJPo}T3Q*Lg@* z5*Xgln|ZR2{H|uCwIVgYU|fuDi^bZynR~QZF_H1y5ZN(TTRu2YRzGk}6+X)Q+W}aj zm}(@j{#t8jyIk;n9Cdqeu8;0v`k~+}Y)ex*{+L5KGCR)n5-(tqAe#9k^Gn*SlL{e| zAB{O{tcbayjdV&BrB8anFZYem8@ukInUIno0PleLJ%A(OpW#9MfTgXcT43m z3bDcG)=6R2D64an81BSbRcJiF&4M;<{neYQ0=MyaTQHD2{ zR*mlebx7;=$;K@x$Ze!jACVHL)nWe>nN*p3s)p;+khpA+y?1qdnsZQYnZ772)Hs5r zNji^;vcTA=J!|SubVzn4#q@W}4T-vEdi`H;6z`qqk0o7E(^t<5>gO>zjWf-X8irS$ zG$N_qwSIdU7ErR0XsEVj@*xtmK1T{xK=g=4-@Y&?UQsdxF#7QA2juE=g|J%4{u~g( zS)ZjZ?aiL#oz2&Y@+>ohY`x@ss-lsBjVhUbxds>IBCHbc5j_bVH!Z;t?SI;3WyoW6 zBm&LHgF;9Up6bh{>3+BkiB5Ui=wq}p93uCS_0P*xQ?@X@fmQ5sq)7NNoV zsWnmc81igPzjtCwa!pN5au`ctHBVKfriN5HEbYWzr5ReL<&B2R5u?QOG*xBaL@!{4 zU2K{QK&Fy(+ke3IE!(@suU$OznDH1NAcGSk>hB_S7IAA&C<}0)&hBL~$Nq7>H5qh5 z`0Qht#m|Xu5AL%zo2IbW6(y?e!?Ik$QO@ZIenrs>#m^iPfgMs?^$f~K6N77-@_FJy zA14AeleC8Se`@^abaxUg!B7Kg20E|gd9B0ta9={ylsc+zg1Ts-roMEBrlYg!L4UY$ zG4fR7T~%l#u!7C#1|@q4QTo zhyNMj9jbA|Xos#PeEz@vhX<19_38|e2k+#wK&ErMvv{%Re{I=bq<0d2-J^_uTXOykBo(M!CXsRm{8^9(4wB7)UVVNySImr%K-tX+ZnUB?d9egmvZc1D?x5U(*(C7wW5D!Iw0hX``Nm z%isNqgu|ZS#cNBFB!1M&|< zD>TJ;Vt{_=`WjiPk(7Lt>?gn~GY)WD0qh5<8E3n#uh^5WLDKkgx1aG865TuNPlGW` zJ6Z2CcaRxPye?7{-@AjSPdy12s^V`(V#@NpGI4lvV_wK;@5}Q+q4v*BG?N{srB$*E z0d<%ILOAbsanzFAMPOv?`y(cKt`a53jBEsXjo_zAgE1<@{&54tCtO50iX{l8pA{P` z$ln-KDU0iC5bTVI76^Sa+N2{T){{kohaXZ6u;7JTj4$%T&gKZdyJ+IV zN&Hy|o5mC6_PoBWaw_jwhDCZ@*;Gd7k>o4WhKNM8UQQ)&S(UpD=;{rz$O9nE{HN}J z-v$tE@X8Ty#qNfFI<&iD))n=m!n$xQluyU(M-)Q#_1ayf-}bjqCc7dTW=&CyTV_pz zUNqYmC(WJiDIp7T8hamA9bp9z3U?*{)R`3S-SIB9pWp&-y8nNJ&Iu(KcrQ+frVD2h zkYOLKx@wp%(Q}UZd|WWoWk~lYfCO+sI!W1tvz`bhsVauX7ge5ST@3?P0@5;H)MUap zYzvxo??8$QYwpZS|1;6;+3)@TZr3}nJI*cU`am*GK%&}NDGn|b&}@m z-NPBDwSJI97flGoT+5L?vLzQMsW?Pcg8K(AY#AWL-i%kAZ)b)N+eiA+GI0!^eSz5nSimrfe z+CA&6Bt**|n1~(ejCN^lWK0a2Z@0MR`j+S0KrLJB{ZA-8(f9QN1xF4JDoq~_^8b+3 zYqWxO7fbK?snU7K_E;0e$KD>NHxDqfDg-!hIS7+BlDA`iu;8W$5L;7Ud#t;% zBBfDWWPfHkZd>H~-&kCqCYEkpENo-q?wX(cBVD5u(sXj}9$al>qg0R-%IAyIUc_j+ z3ngR_Sd@%sv}K=mN{@RG{b*^vPS|_d;DHv4uH5s#f;5|4Q~Bm0MURbLTZVy}=+GG( zOfi!{NnTt!0!}~A5IB5blD4L;9eTuXRX-Wxa};%Veq-55bpreiTUiRWl5yx^f`$xG zl+N6z>%FIgQd1AbY{P~wolEAXPm=GCFb(R62HKqBcrvThtQoklX2Yyemigm?%jr~> z9REA%o_W^F1pU(FVWFL}I3dt_o0<%x)&A8@HLI9N5V7uD7w$-24ipuS{s(|x{dQ*Z z86>Sg*Gs%yS>W`ZLCCi5E+>sT(0?&Uot7iwcQ|6V`B-=i_x;7ho<^JYoB8!1#+g5fppQwJQ-`v&KW>EbADq_{#%(4mD zwX3tcYgeZya`QoRv(j6u<^W@MPqV#>Jy=T{-81`2HdQBW@EM{2BjUMcmlCxiwd0+X zrAkkFxnAXri+`bv4)KV&P%0ASR7HiBZ|jrw;|oG{kbZFPH*y5T9SuX0Y`r(1=f!T; zJZkQY#MMulQ9{v2B2$l>-4+yDfDWY`(~S=>XH~Xdu1iNMOFUVXVF>jUKXB><&bYA5 zhE90g7TWe$mc&Djq_yMim25V}B`V!B$;VYl`|ELx(a3IG8uFL1{U z8j4-Le))sJ1gruj+lI=iIo>wul1eJjel?gYdNerNF1)6P9l|6&6=Qd=F$&9p`DV#K z0vvQUJv^RbQX5Vvi<1|>Q>!dUuCjSK1%0{qKUmoHN3*+^xYcvbF{+OwjG=fjcS+Hy zVNr8fXVbg-p4Z|kb<1KX{3`?Qip*fmm}9%_{3ANlO%$kLU|N)X5oJleS;2i zY=zPR8v2w;7^%7{#cnP^L4ziGI`iOkGKW=lKs}%x&<_|zSd+2?#zE}?%SL9m;h_1T z?SPX^Na}ir%RQIuZ z8G&ItJpDkU(+&6rgx*cs? zQC}iNVv-|p5itT4PzM<#Fi1Ky!gQ!Q)CLt%{iVR z-I+Un&Y*XP>trMpL051n(m{rI%%6!HVPxNZ;S z{Qqn6!~Ksp;M@&^xYW5oFI~Wvie)ul= z#!%Zx*LaY2{dnKRAk$mD&L?;1-Uy4kD(xSCG%;7@ELX=|>?>$Cz}^#JvFw`paWNu3 zTDGfCof#%;3nSxM<8pOX3bH`IhYnA9wg!iWSWd1KIWsU1_;?ZyhP#GQf1w%VJDzXQ zTp&7`HOTD;mC+U2*9Sc3oQs@M4W7)MoP4N)vy}byfx6>V-X3gob&@RUiW3}0fk9Qr z#dvm`foe43d7=*D;(C*k%CcnDrGJ1w3`lGoZ^?Eqz%doo@<7y%9LbSI_&IT}Xfv&? zO}xh;vDW$pNKSw?q!SqE=PBee?`UDq|Dw|4yVP;I^KKBRPJ7OQ0hH+Sx6S>mm~ZY= zlALO3tyqst)(=7Y=p}D?e-t^!E`1#*N3-$p7rbrHU$X7-^Sivp73lVgr-++}oBTFu zjND)FIm_gva%k2eF3Kdvz%LNo@IifKO0?{^=3hK@n%<1RnyS%$6$6MEBN_)dxj@zS%;xMn_eduGjpU99n#bxIPu^2^h!kp%3i{rZxjMj8A`9^{2wW)kAG6rj#SjL%=sEMv#hTvadFf%w z@J3)yOpJ$;?hnDn>JPFM^k+@xmTFI5KSSW?}tmK*A1{)Cm0iu96 z!b)qXUwBYf5W;i4G({wUm>^x$(Q*lL_i0nn2f?%k+%tqCbl!uo^!hmrxb?K+VAdVhRE@5D6q=JjW%0wp0prIsOju?ETqIz%3SAj@rPX=I#yW zitYlAWs>ERR|#p}z*xPc=FL?`P1Kv&oyYGA00su{&(+`6D!SJ_2RorO`8m2T9dj&r zA?W$`#CK_UrepLIf0HbH?2h;3m|cWCy~j@Cj~0C6QP{0}u%Vu(Hm!ECpFXKghRHv2 zNj+_s41|j{EL46FQr0ih;dl_m`i^{QvM&6fVB}13%(N3ubi}0C4-wI8Zf zOfnWa9PT9ED-{5@mS64`%f~C<$v7&+Bn(Lz*xI^M$8!xn9gPFiuw%~;6oZk4=Kf3C z8M+bw2_5a?R!sxt8*(Q#LTojFJmR}+)y~8rjfJ(;6Hy)M8v;ye;d{h}`Ab-~Q2rY7 zt6!7+@wN5(^d-aWLVm)-4bCv|^e;?9^7czoG3p!^74{`QA0j9_zop*LbXYKGA3xZR+@6!oq86lEmC4{4_;ZZpc~BCqya5*_ytl85~Hgy zS~%$H_H)fMeS&m)7;lYiW{$b=%-fPj|DNuycAYZ<%w0wh7B6QB<<_nem?3hq7({T0+xTrt^EH@sHEz*1^oTMt6Sw#0LtA$6{Z*<0ka$ zmz84@w;xOk2o@f>Qke!3zaQr(q&h}Qxd8{-qSIHLg`$zA^s7i#c zP(+|_I?yf0y`}`rTvJ6!^EHR?0A#9_6Z1*kgK`kNR5=@kE=e8u zh=cO-w@UD*Ge}hy>l2LbE)@26jloD0n{PGw6j+@7n_&>MMK3rh_>n$VwD-C^Stxj$ zej#PL40s>zHbPUlS{5ClD@i>$7u_Fd(UwsJIe9-1&|xdOWij}AwX84&q&5hAQg#Fy z^9`JXJgk6})eb)IT7Pt1o(i}-DK9xy#@)d~-snfK!Phl(=`^ql$k^>50j zc12`)9L~~YDt_u&alY>~;C4AY3kug~OESid5EzeTV{ooa@2-;5 z4o`lTrR5MQSq=;v9P+EdD#3Vy-7!H=(P((v$lv+=wqGWGnpk7FNPwoIL?TXh#TZp! ziQsgW8@&tz!7f zS_))Ma1R_AI&IxCm8!;>*A{B|4GA=Cpz2Ie|Mg=6kSZWB;cXrCL}bG^0zc>o1ebCC zQkkM^O<14`t?HuB{?Si)C)46XjziB=nvSZ^{XRS#`u!I0OgNA><6B?*E%b%oFYp2# zT++#wfXE&{W3SNxm@rGvOifWpJt-Rg!TP;oj;KHAE|ADFz*rM&BlCkM;tfY@fvQ)V zrk-4==1D7XT2HHFOZB%ZZ&#^E!1X?*7{_T`MaBNLN(+EqM4}|chLWr7RqhM1pBwp% zxCh-sxc{*}YHTA+gv9=QhHo#p444;%|5RszpD93nSZ$jlT0?W)^NmGGj?qKyiogLe z&}g|;e9^RIp3D!i%s+KK)9b+9PkTJ^{TrTA9~lhiT{|6k3=y_WiY`c-dqR%NQL{CU zh>hEOD*J=pxAxnVKDA&C^3E6XsYRQ3c=ae}*L(0(1(xy-g_TXF+0Fqcx38PgG*o$} zUE@5t$eSl9WwE_jNVIfblBI#TCc5G+>RQj&fH3vZBUsT7FT(y~2z*Mtb{K!8hALq8 zq$qgq!R6lbPdw3{K-1g6N20}#=^&pUjwub+mkc6w|D=dth)Pf8*8odVBBKj=7h4$O zzDm6x2$U+Df;#pAHTgug1)|Bm)t68JLPW%B-RE)TDG!!}FF zH%sYWIlAVu+q02uYZMOuf@Ndq9#8+X1A#$15z_4oJ&%U!e_cHk9=9T>jmHrn`xA=B z@ML&MtnC#?)nb>%o4=k@Yn`QUgkF;ak52sfCD`4qFL8Xl7amckAew>ZJL~Lu^5o_E z$7dvx8>tQlv01-OG4)t5DB7p7%;AIz-K%StY-oiwg-HJUeI2s0pzqW3spsF|+;^?n zw0TE=txFsZ{KBTz>P54tMAF(lWl*Mf=?R22qcct6>4*i;e7;|1HR`5tIqKg@K!_n> zWk1?BNhxsvsJY3t>6iedD#JI`zRqN7Xn7t3{{du*iu|~39GTo~KsCk_9Pi|wxTduSGXH@(s(&JvT}~8nTLVgfzA~ea&gv;avB$e@>&e(_<2*y{WMi_mNZLma z?EG6kp|gV+0Y|s=4_LAjLUk>Ed)y~9A?y)8B5NbpoGS@T7~#4NQFY=&=Dz1*LsjCm zPQ`4&mU&Hp`^PVSKVeq9<%~=1Z7BuJ#Z|75h{+2LhJR}>(2wVhLsQ-UL2HA@6@SQ? z)iHDd&-i!3W$>?4h@p0O=_L%r#z_)Pw3?ub-`FjRtxPtWb$H(@zM;s$SN@S3kHrwxWX5p6Ga z!a5=&^13?t4PJoRk$LG;`HWnmc4mXOYZEa4S;GvE1m+n-aCVNu#h08$tg~Y~s4h?7 z;+--ws=Tq0(_luwhv56Zg!_XLiPsV#FqY!92pQ>O?P6gCN~qf1`=;M!qC3Aih)Y_i}zl%9V2{Kuef?*iiVT_2%hvt%6G`f!`NJ-9iF2__oJfHoadOK5~Ob3D<*6_M#Se;C3e*p?&z3COJWjL@_0+`pNM2NyO3cg$ zHmZ4>iHg6E_af!nU}5eb$cBpAqbE-PPU?KPIO^Eq*xvGxC%W@G&5mpP|LRL5yJ`|JA1NuK&MeNV({ zjJPh%X#**c`5@DejQ_;T6A&i;S^XzA|7QC~sQFQJGO5#Lr}p!FkKC~PR-V33kgN|X zztnfp4VbhfY6duIB9hZzsu{Bf_A)(NOTcHpriGf~&P!}lr##(i zgM$~BrqnoGuD*WeMCK+SEB5T!@7!C2oaqeW0FpDmWZp}|U)sq$-i!6Rbo@H7?CVGb_3HKW z5WJrLcLUW1o+DrPpck)WtzB9TdhY=nL2zH6{9pPN%OhC2UA?`Oo_p`dq-KHQ(waJ4 zWt=;#x2RzW|11+gJyYLi_q0a-tYDZ7Y?l*Z zFTJvs$GoqT@ZgV=d`UWb!Pu&H_bIh#UU(2flp^;*`%*THCegM47+_rK zl(Yw&iAX%*%^zFDff;`u@G=0x>G!)D7BA419%&sDi3@FiGpJGf(SGMdPg?VTUHc{t zxF_g&i#BC7c@Ob6H*i%SDZf)=O;vPP4qjTE0A=-hcHRakXxr2k*DI_iLGyuH9YnkUN96pY_q0De}P0m}@9B=*=qL@Fi z;|&QH*eyG4uXqHh$(2Zn0L_bC=#~RDH4ltqdo?@PXDCs!?v95Oa@`w290- z4kruAm&vtqCM3%WBzyB8X;T!byWdx>fSXEX*fA%iSTYD(JI%Qhf`}zc&}C|P6x$nF zNsT8g=|70)RS&N+H!etcTZM%qDiKtLswShPqyqDjho=w>srb|K4)A@1ydIk@ur`la zV7RN_q2)CnNrpySK!iu&nNv%Z)cT44YE{6`>GQ{M7wJE~NM%xkB1OhMz*W+$&SO3h zlK%d&ccOcL4l2I~E4u&k6hxLo3j#Ht--yqYJ|rvB>w8Y6QjF~UNYJroRRjCU<*Dxv zA9TTX89bXjcX{YV$liWXHMCQ#X~2v6Om3GTGus8&Zv-|0)Vf_{>H(>ALU^_8(I23D zCz!)6zh#8RaIbd?BM$Z8q9==S&BRvD2{O3isX8EoeCf6~?^cbkTl8VoTgIsxhmh|a z-t)HWHh8v^z&zhOXao2xur%o#@y#i)g*HJ^UUHQqzNY-Bd%c(~z9TTDzoBm}bM0qv zvq>-q=%*rR!}Yuxh+SeF5I?z3VNTInzTmywT&)gjV5<}3fLCEHcdH>OUhf&zu$*2`(5jNa z?}mtn@n)Xgkbr;w{(U3KF1=+78}v)A+P(a0OzVQLA8~k-aj?#)pCH-8#1E@^7uLcm z0-kGq82X7&DZlr2%O*nV;a>tTX*Ld>p z$q6LK1MASIyt35GV=}1;)EnmKqX{7D-*3mAEjY=ZDaQ@Vvn4ujUAIUoR98qavF6p@ z*nBav5Q-T4C5W7XcB#46KP`vcu-+SsSCp_Mhh%4nT`)h>-?;?LG0m*VGaM~bTGp~24?2y|6$!y^Fg7JaSN&vR<@pNO} zO`GQNvq$UQTPxisYZr=aacSklSD_OnPC-hQF;qTdW@F{W{fmG%>6OnK5201b!+X_k z9?}U1yqPC&CQ!!fxwW|Q23Mg@={8j?n$Wf`O_q_4I# zi7HK~T`Fbp5KKK4)UXX;4#2EGzwQ`dlD9&c|9rU-kOQ1-Jk}UbT?5RXzw)SvK$H-Lrz>I7#n_Ol+WRvI-qrkOXJ24L541;3Oi`uIRu(uv!5ZB^!SR* zm9IU}2bmxW01;0E?CgdRG-NIICqGIK#_{;c`;j+-Afs1r!S{?TLo@#mzR!#0@}meJ zcr|OT9AQL}D)w-KoNAcuC^$q>h4UVA6+8eEWaK*L-v@C!z&!xp0&$cCvpUazg}i}o z2h>m8fDG&lm~gyFZGW_#^36E}gKB8wW;mnUk7c86Qq$FK9!v%5nci*S+7Lz6Q!3UO4uwMnYwYv;L(%*7aK6XCob_^s zx}DsV>VuNuS2_d;$*j5yT?ytKz_5<}U*|v8Anvr zdQWt2;A&J=BX|3e8AI)$2NL9#iMIVd&3}lwg2az+d9vl{)81 zwYNV7&yj|o=f(=Y4minB>9!R4osd?^c`R7Y(=A_8&yi~t=sn%~xeKRr!*6VB3y{pl zZ?~s;9Z{`so(Ssd5vGk*#%;)T^2!?S^KdRJv}d>|(>>P$AWj<$(zT!V9!cN6L9|W0 zb=t{4??W?>_)R;s2TFrXystF;?syRv2EF{;K^rmX1r*W$%5dtwNVy8TIJ$dsuj8p~ zr`>XLTL7>#>67W`&9vhK|H)nS<1!B)^>(^+W@fXC1FSFlb@FA5hS-&NFV8m9f-dE= z+s!n9;Gzw=`s)|}v-kyGG-WI4bbPThv1W@lXnFTXT>!Pt-?sTmXRtejv}U7jZz!hn zD)s;TDPC1?-v6_G`Q&ZWfBn;lN_~EUm^7+JSK-~u65-DW+}~c*Zhu0KmQKxR96P0* z5?5tzw$ghk4xihp65~@6b-$g_Y+84<_sbBNTr_`b@U$<$gelOytI<7u{GwRHAIc?i^sr5(|c>x<9RO(j&_y_0M0?ZsZ;k=k#aBsEMFDMJb zLXbZ>KKpcje0k2QYg_r^+-%>c_`4!kf`!u|ML*ZV+RrDo8Tz%H5-}6VoO_Qzb#1=Al#S{{y0M^Ni~93R9q1wO352j2FK7 zW#fUOTjFKR8#9?BIG4>KG$2iN9G#CZ00eD*%YLanf6m$5e*%)8_ju~O+m6e9%@0QP zJw}_7ZRpYx%I-~I!ZM{~1&;%z%E`iSu`oBVdgvEBJCLvm7sZY#&2pI)5X+PPDE8K; zK1CnJ^YWpsvnLvC#BY5%dEZs!@eixBK39t?L4_1rLIBP;aBPds&)aHl zxeD@PBV7X1LQ#A69P4WI(zmCXYHflT3z6HO(Jsw?oa{0%)g>~*^(~em;-+&WNZXCk z)?CJT__W)+4|KV-;PKaxX3kB!5&_hGB(oqesV<8<>7PNFK{#lyC28qo=$X3m_iNcH z3@Jt}2+g^Eo);E;wAi%i<_iWaU&cTNcMH0DrrM&Mk=O^inZVHa7~*aneukb__FtD= zJy_*vF%f#isb&>3iB z6b}!pEgU)Npc+Yo|)708HC=`;vNBCilm$AnBw&|pqdf*`0 z{(E3oRF4=AQkW?4%4?rqN`8aA4*CX}^K@cb!&RCHB6A6bGeuyA`;`cPul=$cp{Rc& z?pliXb$=u(j+f1^NxxJ@PMN~$iJJ9k*L6?3x{h4n->Q&R$pm9-pY4OP(+G_X&C=SJ zocNk*ky&Ju5$4~!X)#o3O9F!)>i}1St_xIMes9qsG4S$KFg+kipb->Um&LET48Bb= z#`t@?(Ld}7$gSnS$Q{ar81PO7g=>iH=sqcRlw_hO0wJ>3EZ)#H)0M+LH9biF<; zhEf}vU^0Db(b6)0jY(4#P8*$*#_MpkI#YSUYiR~1%&>Y5%iAR*bP8t;VhaCm$mjw$ zNZz8`c-xKc&rwy9EC49c`s2Gh^rHu>YJDzB#HWBae#Tixmk1@){?mU%SLw@@H z%{r)3?+)0t7;`ic_qY@t?ShQE8{1peciQdL32=$Qx=kR|>gkz;qO+$HO|DX$hmd6S zpNcClRVf*r_{Y~0&W2sRe&w20L-YraNQoS8hby&TNSb!^s5>W4ncSl6du!3ZFPBg4 zL5sphhDGn(u%qFw;_f#@^)OMR;O)oB zAj(C#1o+=zGf3|B?Cf`_7P^|dg+)VlK&+Nm7NvK6$hK`$B3#8F2mWEJz@{=m^&T^V zc{WAsn_v7Vg`TQ3ZRHONlyVk()N=lEU!P(5aaD~_no0O@gBy;cSc!)`4z)xBcZmQB zyZ~qSmkA+R{{KfX)f_Q< zZkD?kt6pbyu~{63IhozWifJz4;4&r4bcn9G_XpTo+=nxcd%9z&qgsI-$@M;mZH|o@ zu}Qg_rFLgVV4)UN?7GTDMnGm^#Mn2;g0;*@(z?saxGD7r==;kW*bYCN^AF?o{~en( zRp+09*|a}9-opcrd(Y-@mgSs?UvTQuTIL>td|XfZhE9{JBb(WRy0 zQ(%H&x=fiW{_v$B~iQp2z)fT25)#}ly1Vcc&u}nT>qXoXTd{)m3-gaW+k)RVglxk?% zI}a;Y4KBL`DUh-7=g)}8wBcwM^q=0GZBt010;l`N^EQ2uz)KcWyF3ytG}cS_oM2J& zv_gN-lr3-^tZ$pVh5wTWXlq({U4vH+68_Ky?5+szoi5^Pzat7ez;@5Cqo!Yn(Wz8+ z(gG9fSYC$za=m>i8ajzQTF<~Y3TQh?`hCU+Tw+RbW(bcE{V;;|`S%L|I{e)k>Se|v zz%ci1gbf%rfVR)q-Z6%=eqW4@z1~)#Mm=i&w5>GnMYjuo5`)t3Q~o5Bq`p*PtQw#> z0q!jNNvtzNo{u}J@%fl7p3yN!DP z2@Q~()nnS(F}pm8nVIs1bIr~K3>KiC$47M6Fy_`mFV)+k8(`9LLqiCqkCRjINiq33 zSBCV<%rZx$7~wW%ME>y_FjUkO@l{o!&C5)lT}P>GIg0aOH$d0LofMIM)YVeDKUt0mv1ig*i}CMdfamT%hl26oHH+qTL;k8 z#FJGlXg=@B0MiltzZN0ZR{1T4rU76H2IIF?R>&?IzDs^SeE|!G_>F;2frmeIZnatd zTryz1an!al9J98hy=z$D=`U8b5(WIkoqA?Cqse;yofsn5TRy@!E+7fqUpS8F#-Bqu>slx+*2;CQfJy-IlV17`xEz3L{r7GPJ`R@aE!*S-HA5hjX7Z*1N$ z$gYZ4R@c@JahzQ9wZ+wAxy@}6+;uvRJEOcZUOTSDol&@_UwN>ryxzQ7YkkOLgZZXm z7w2nheUu?vF61$%QX`}aZ8N7JAbBlKX5;5k5$6*7>0+6vS;)~JcIz_^^`>n}sg?+gzdt2SpR;_L%HPL;gMSh0rm%nQ`G zF+5y?#$#U97V7e^x=4hL8kVUZ?*&IR?1i}ihs9ws3<+TPQK(;&56u3D%Tu8N;WHw| zlNyeDiPqZr;~VF2c)ILIb?9Vczo@|+!t3e@{v?d9>OjwNm!gjTR|o&%qQtVAdIc!n z5dR+XcCDK{gPZ(b%1@Fyq>r@PPb zl6k?aw1Kjr3_djOwg!$O6D!viq(Xwvqx&4zH_B~f%Bi!ur$^d&Iq+=_*_mOvkt=XP z-f+swag5rQlbtnuz^+}fd7G8v$-ETXt3#Pze)iBvwpEr1O;ot9L^Aqvl~M29_bI$$ zokshasqv0-e=fIBi3s&`F4SeTw(}$ABWLJS&vr@@i{}z*DWsDkt=OZ@mf(RNJuk?l z9Coeo{bsN}cD%?%y8NsI4^8=`1Buc6RD5yU(n2)W#h`=VDO*0!8rJZ`U1EDIObUz~ zE8a!0Nn`NOn<<6)HvV9D6Ic9QKwf$PZq39Fo&v@Z_jsJjZFvRm>~|<)P&w*Aa!ixF zql^6Q#!IJc#?{n9w}6cqMjmqHRz{4lz;=nWRof65q7?1C|EtRY z%$rE%BjtVdmX;T3`Gdlw4wUP3DJ$1fTeQBqe{|x%lY<5bl?UYIj9pz$fup2LG3661hC;ZzlDaG5xW2NqYHV~%pc-vdsPE&Tb_=SXYONEjohmdr z6fMGAzEe}}oICUO`{1FbV`901pjlG7W}J3vrW_raOoKSe3BijC9}NYo0%7I3w4U-V zWd31?{;{WcYfBGwfAc0#7#xjHdZ;*s=3~roWd8MtXCj1CuQ*SoKbXG9UOqk5_~I9_ zcx9UrU2Z=yU!WPxSDLj)Gve3mN>I3)oW=nfHZ$@LT5SUvGRBW4`K;;!+8wPmEIE># zwg5vLze%wE`NBXb$-BMj%7rP#quX52W%2uq+)1Ii_3MBC$w)870>3JA z%*ete0uYOJ$xbd=D%B`C0C`}%CG=$c(BiK({jD@YOVP|m729G`wwvU_jSS9zNd0#w@5>KWm2z`(1Ty1MY4$+_ zqlS5y6GSXhGrsam=0d*O<#^Ls;(5vD0J+A*u9IZ5p7&&t)nLQYzx;))I8d$!9V(f_A`X{qCXH1+~K+l zXWAqM+9L*=fr`*`Rmak!Y~6%YPlmbrk<0Rc+(^`>lkz?FI62=zq{Xt*&xff^uNMfS zKPyQmcwZJTZ0AW^M)FB)4Oj1_XjHd}-26SMMQ(+It^MJhN^+&gmBOXJ%lCj~$Fn?6 zD1^MEnu<(OP%n^ym~PA}>f%R%ROOdPI}#~sj+CRki8PbBgbcd|6u?I$>ObWEq4@RT z3o+3W6!iSY{I6TCOOYv54-KG`d~F~DnMetQoNMoijAhPU+6Iljw7!lgu3X9%6%%>p zj~bwy%SW6@qu{1)L|j}#Aps8tO#9z`SIqq>+CS!LR_?Y}N-CN2RQ#7qjF%Y#_kKPv zZwE@zO;bf9ZEsIc;s{sxrj6Ve{_PDU^`J6l&*U)Ap0uQS4&-kxtNl`flrbjgZ2ZgZ zki1Mo72dyx9T1SoY)ZPxuN2SXpM7%hqOQy z{B<$f-kMYbNUpLvYn$;jwQ1ye+H-W%L!1i+r6P^y%~tm#o_P(od@ayevbqW!pfm|( z#H1E_E5C%Boy&l{M5({I{_cGHT7$9DXuSyailkt<<6dpk4a(b05fKdngqKL-7y6;V zD9XDB&pG_LCgpt@V?+u5;;?7S_iwqyJ6jW0Oft_yimXi;Wzqw>jMS@KvbvG2#$u}b zOW4SEpVLAAa;Oy{^<#w%DC>Vz(`>9#h|ia!!D`IWYX~ApCq2pYSLr=A0}6X zUimyRopXBc7l=C*twxK6GTQ>yiAPBjN1ID3&#EtYF#Dd)|(Xf z4QVuUu7v;S4l_B4Z(Nlaha!f*KJxRBDgJ!B$rbHxLP2Nrm3j>+?60@8=HI^GYQNQ& zjx}~VSB}Jd=2e;Fgmly<^)1F`hH8um-4s`j=*)U8lj(1J4HS3*p6w46nWHFD5+~tg>iQnw$(k&q|1k1 z;xc3uKjF`Op6itZdzer01Z&W@Uk5IxuQd&|x^(jH+d#sEHYGb>5LK}a=weKqh-GMm zOE>8F)YhrO9?odXMUv5`?gv?3U=mF674et5|CmjsW@>8ekMU~-zh~x?ldg+iErB^s z55pyWZ)w$Ywr1{~B>c1;BI$MABYj#WLPxe!Y7pC%g8aeBMy(T9!t@2y??T#3&M8Vx zifg=-7ybYc$k?7jjxE{e2nC>{BfnM*whaP1i=uUl0H@FD({P}}vvTs1@mf4(7m zs<6Hv4mkb;@L@3jD?fMJ!mjW3O+IPY7{wqa&^$|s_eaJd3vhYph63EbB%gU0(`37a zu7OwQRYa)d)ll<2B6PynKGKXr4(q45KfZES zVqsG4m91la#pL8|rygqsLYXKjlT_&_S34!9A!A6=noHOH8fG-^#ZUdmQ52)$%*?vz zN0PDcvvSN~Z?AlB(YCl6CQ?tenZbz*8l^Ao!{1Ltk|lnKsN6i@n;7_-A&ZQ@QvD=% z9$ulB0+CCaoFciefI({S7QL!YvpNNJ$9bX7aPyXH@7-TX_dK)yZg;o%Yi>#q>^*o``b%x1*9bA0hSJD%IKypI0jAKf+NVbSB(Vq#&(4X^DG zj1?;3gP_5BnGD=G(oxPYSJRGH+hyIo#_$zTT6}r`u&A)$bGLvmR83mLuE5cff z$qOUp0rRzHf~_P8$GnR91`Pd&8r(~LRkHRGOsE}NyNIHcW<{^O}>s# zVOmVsuJ$ymI9iv@i}cA)70&(6#Hpiha!Os8+Fz71heL-ws_g9s9nj9`495H=W&e4;ZwW0 z4wxt8KLu>^=up6*U8W)oH~WRT(^oTcQOfOLWGK9>qS<5balsD1UwH`7EFd#mvS>$1 zsMn0CYbYh))^k!}G2oFL*nYQqVAfgizofFMBd`6%^;Ji~?st&iKiN5q6Hf!aQvr|K zMh0^MUzPHadh{{|%Oh_A0)$J{`ox|L<53#>^4EbEzUX7@hm@C4duP~tv%Qwun2S1+ zXjk#x%@kbA&X9U!C#mC1Me4?yKTd^*nx)GZ0DGm|XCaRNUTYPCt3nIqtdxn8Fy8_v z9!w$QOR9$?fF*Ri(|Q`T{`FtXjM%h0{PW2#wTdH%*-8gmh_3fZUSU6sS#>$_b4KXr z(3jiKfU1(!0%j~Pl@a1WjFVh2syOI1Tuk|CXpb#EwU>r|<6g~pk@xG4oSOHhKGPso z)f5(JZL++ub~0IodHB z_$@qGP3(F_j{*2?4bn!-!R#m6d93Xo!qr%w1~mfC1ZRGDJSW!Wx5UvHviQM09?T2H*h z;ODIITcT~arvI46-6QK8t?YPs;*#}=Z<1b2Pi+}o;B7j9o%zK|C*%41iM z1;TbD84R>4;%=xi>cy+z9=Q_;vGsa$5J#M%z?496!(pl%ZWMD>LJ6nS26yZg95<}8jx*;*RdiLlY2*M#PD@NY*Hsvt=EueBbhbXinuGoc7J&{UWvh|Brsff)qC1>vHis%c_T_AVu5FQL=2Lg zAD`sE5xa#qiwZp^R8_uEc(A-=&)J@G#-VS_Hp?0AZLr&t&Ee{04S-Met*In4_x>8( zh07zyiPd6x_6>&>A8qx&yqYHw#EMPZj0syc;qt$qj#qmYqE6pdi)Eoh^fr0=V$Tez zW#>F3#6Z{2MmU+>GVQ#wvfWHdVG9WbR~1{?!b(u-^X2t?9UetQ`B-d;a+by;wy2V^ zc*g8V96|EXS5YS`gQ<1ilYF8?n-b)?kY*lXnO$}e@^*WYVY5h`UjkU3mg3eHa7-p8 z#m<%louW@MuFL)YY~zVZ$)uwWg>k8*%W2I@1hE&S^s*GAI*dtm0e7>5ZunsP<`Tiw z_9$19)2?Y~@PjwJfROrXdl(9=PQ4W$R%8%s1Ebx}Bguz(d>K5lC@mM<&ndF#%`Spk zf4~eRvw^QO;+48?&_i^h6(~dzQ=+oBJHygtzDvfM`2gZILMI!^F7&)zRn9H-24j}_BRt_5a7D&juG*4Wrx|<*vq{+Cn+PkdeblMh2_x<^xiQ*lU-+%6{bHhD+{PE$m>!coBrE)SI-{7#kov@an1w>dh+kzB2n~RS%gh zm#m?#<`)&b29&SyH92)pKSX4+rLHau=yBMk4)22eFt%Ycb@hjSVp-!9IP0Ul>+$|# z4zeY^<#cUuT}gv=bHetp<`cfQF`YTz7ACKa-Da!VP$3BqRJM?JUtj7?8x-{qfQvci z5SwuI%dm4sHsEe+kxOZ;Yu*}-isl7yF>(hM^jw#8TcnOWp%7jcFrnrZuZSx^ieCzO zTpkw}!Y<`~;@J=$*>8W|mj1m4=#Ut9ha_H`EY!o=J)XqTz_xjEG3pGde| zhZxKI4TLI~)uqmD)*7`lMC3XJ<^QHV&uynNbbS52a7$^J$nsNYDbE&`z=}NCz zh$>qM{VRE`#(R`b*FfrkpdtVXNeb#Oc-^gIztnt(s4EF7ir~quyGclN$YD*-es#LD zdXP+Dvvxn<-PHE)1eYf8HsuQip$3Nb*#iWqdMQRfvOozZ*|{4!Mq9E&*+;V~x07s^ zl~S{W=ZYO9>9=Wg-m|u&x2LxnATwPCx1M|P&t!&5uJ91hrP$h@?Ys4N0?Joo+l)xz zjmk9q_GSe6XwArb$7JPJqxW%ld{BoVFD^`nv~2OFaXBNmZub3RSI-Q6bFr64`M92g zT{@!d>pOC^C14{DUYM4#WbWL4B(*9KD=u`0&t8a0q~X~5fcQuGPKUk7d=%*jLhbBh zJD1_Y5DLy0K*2Hfm9Vrt0c=ti@zcR^U#921cNE82$A72~znA^J$7#PInf?6wTF0Gn z#NnO<;<+HPNqb}CL8o)WdIA-v7NIytCPCWPo)o@0#+A&B1cBviQb2wM(IA#bQZ z>M=)u64}ZXd!{w)2%VG-C-hnuf}q!O%TSSwV*EsEPVWfQckP9BJedVwIgc0&ac*ea zbWK4>{iI{4O*Zmd5?*;^xwD5Gyab92M)#*yZ~+BrLOG(bwmWY>aJPob6?1PTjm47& z)FL@*i!1e0S#UefYwubmI_AJ}$I-PpE9@J0opc|;={d-_rk8lM&JNq{?+Kjwd$jO;IAYk+8q%FX}QhKgFb{`^!eqKGwr4OLFEwzaD>9va6-2xc7_->GDHbo z9*+JxvzZ26j5U~hTuUAERWP9LY!EV4Gp+Gs{)1}{$PF(e)zhy4?1(03T!u_4IH=BK z-?$dDb@uu1qwi?C7HhqDAHYG}l1AG>PQ%&|T7*KcKmt^P-_w4iZ;BI!^7`QDevBIL z4Z(n<&eSy2+K3?#K_R(&)Q=MO>DVW);J$ow0dJi6@)#%39!E{(U-nITv_*u`slvzi zxn3}PJz$GKe;d_biH#q|2sC>DTqW+Y+`FktOP59ugxWnVDc0Yrly0>{oY3}6&kmyx z+qwWcL|k-g@bE3`4!x>@TK9m7y#p(kOKY0I3;}%^3qD@B0Y%%>)eoo6AmVY=NYA&< zU*rwy^HB0Q4kqH_A}!jynY|pgJ$(oF8fyAY0%3Ffk<|0L1l7DvdryPcS#_n*(vo?U zwp?`JNO@!VV3b!)9{Gzk+y=QzABMkYtpyLF11p9RSr(uGp2VvL;!HyMVd_-71!gU9 zpN^-}F%aFa7ABYX(m0*f;$=D2(qA$qF*h?;E$Js<0;;?FyA?z>-u;LAePUr@{BLdP z#bpj$L@Ea9*BFBn;82-$#)1IfdVguSRJAYkN>xjl6cl|OAi&VoFbshS#Wz3;E41xy!Zj<@sSSUJuA#uM zkrD;oGqio3rW@aQ7geZtLE|9c4)CYW$X-^^*T93jj23YClNr%f7Xh#uKwy=^fzZg( zKTsi$!k(mXfM=48KEAngE%?LJgQ5zSsJWbrS= zubS^!{NXFG1|N3_2_>7w>lz@wg3O_NEAL_Md&t)92Kk5Wh%U8ejf@F<(baaIWyU_| zps%C6!j9D#h028lvUx1J=Ub%VW$|?#tLGxdBXVUxSbdw(j;9P)7jFg-IKZfa#Wcio zCj3L)waEI7A%5zyHDSBI-8k~`j$TOJkplY8*aEEj$UfIS$uG=fc(-u7sss^dic8;2 z(_V4n5JqpDLzPzy-P!l!z){#p|Jk6Nxcu*hBxZ-tDPf-fX zr3}mRZVC}j(k;11S;9u3jCRpbQK(*N9qR`H4sF&ADRtWt6*SP(D-Ap*++g*3oeEan zbTI{|$cQ36{RB{P1pe`U{ zJGH_9$5_v;F~Ua;g2>52Nm^W#HAxckIwB&P&ztMKQRpd3X+qkmhv1I{90`l9^>holnb$e*i^F9((!&O z+kk-ce<9t)L8AN1QloUQaG5Dg@BYM*t-3O`;&VK8nf!5Ml34AZ19F$LTzpEQ&s_j9 zWWjiWi%;gWGrYq-`G2KDI{E6jR3Te8I4A+);t;7DCmwsPraTgoADonkMZw$`PEss0 z>yihTC-Qh@yE!@7eFBoTryJrT!ZgITI@zFzw8~xgeR#lj>0Mvfjix5ai&|H zjK)uwC7pd_HuR$jTX{ z$I=pzI_agq3h1!hnPQlnMSyPjPhQaLbM0LqGkAI=({TxO;xR|7I2kFPglGd=lY^8) zl9dl0y<*Gz&R;Be^!fbSoCh_+><^EET)R7jdFL8u^jTa?&&ToAjKQ_@pPOB0noB`7 zn$rhqp?$O?v`fz-A11NRhq?{+VGkgHe!R$oh=Vy@o<=#KtPTtg3(>yzu50g>U7<~v zQQKsC&z=7$x7FF^d-s$Y52flCl_MpeE9G1fFmufp-PUJ8M!z;UoqU_bYppuPFpR6; z*yBXt&+I?LDxcI}WN?AqF>aH(aawYPc{ zxN%RhJGL97Grz@jV7c|RrcdJ;@94UZOX$<{FL`#aOEbR*@81dzOBwOOKT~xZ1U1iS zW2^XJ303%roT$TV;R`gTdKd#e;~yx8ub|E}X!so6;TB1VNuwAH^{U#-~enP3f0y zb4RZ7a6cMqM+JTGl)6TN0Zy763RD*t!>(-SJ8KuifM*dhX`BzmPsef3Crzv_uye4Z z0%u?F$5Mxe+O}fYb0YjD-zg+|f>7E++4W)Xx2%XbXpMp?3M!;>&$Ut@7e;!=;2i#cI?x2{>a*y+`H2Vmo2H4 zN>t&7itL-}Q4Sz6ad{S_`~`vJA0G#{+BY?LW*<9u%+OwQ#%ySDX~yc*%v$BHr6c>6 zz(L~{`kv0aM`{_8Mj6E;JWTbXK{A2?BbsijwA9bL4bDb*UN%AXr+b4EP6_t!e$3Rz z402F`23p!^+ERANd}XOQLgz-w3^~dwLIL@J6dU>&BId>WoozN5SM*7L9mK?I-=4ai zCK`2zzvVx)yRiOwc@Rn>H4mO-48L`a3jZmimQm|hkoof}e#~d(iaVp}WAtRkan2W`y4E#& zL6#jo8hqXD(DsuPN!D+4MU0NYho^3bfYRC*_Zr%0e>rqJB4m*uM5gfGI zc2>u$pSKU2=?CwPlJ_Hhy>8U`R>y&ata{}+F4_IKJM@Se;5cXWRzvHTN`(gVeA^_n z6*%nQctp&*_*P>U{jl}rE_x>ReuD=)n*U5_bm1nt8Amqhc8~vX-diPH67tO4>b-y9 z+2d$}GF|RibFWF8$`<$ioBi+9+B|<|mlh~Ht~H(>s#lR!#B=z@Ho4FlOj0E)Cj%gD zF_7lFUMfxb#_2ecq~I2u6EBA14EV-UU9!nldI47YU9y$B?kq(F3xKm|hoO?-q8Ldr z?3T-k49%QSx4^a)x{`ZqR7-3XKO;E83_-YXE*9YwTX9!9ylIf?%@QD%}aW4Yi ziyugo`nT=K0v}Th)zYWRMC_(oyC=ftw+s1afwrnYI1E2RVGufi7KJxvh$pjUh6pN9 zqudWeTD1CD#0z*qjbmv1Ps?IorrZ6oYYo@vXM)<%h$FEbk5VHP+9i8~)ZOeJ%GO<8 zI_!HEC*BtLqFp@Yy<+ z_+JWd{Y9VHSG0u^etQL4wlQvQH!LdQBCFWi`;1X9tOz+_KInn6Ursy5hsGh|;`%Jt zQnW8^F%w@~C#ahk|5!6pceqdq4YD2I-Br_8(mdlSBlG3)$GiE(w4x6dc*|`8{Q<5< z#Jgy<&WYA;T=ABZ_+8b}UAOt@HVIwKM^~!5b~>-Ciun*YFJ5~ckOGvZe6()2gks9E z%2g|Sebv;97|3)y{-l@im-Rj z-WdapMk6Xwpaa0$7v(CeD;HWMu?WS`N?~5!D-(Dgx_GkSQI_uYZqQ!6#aKjG1C%<} zHe6+dJZHBc-wi1)b^(fOnTObGMml#arp+3jyq^1BD0>5zTWDo^#ENpWS8K6RR!ZSm zfWNEpd&wQJe}U#Vzw4HroLrk5I;a3%oo?8!%2dr&^hRuggZq0*6Vg(~z3{k2$oh_vcb%ziVf`Mjj!iMt?Oqd%kh+ofM(X7?)YV&_3ROe@X{9h9@5WK_}5I)2qoiSW>F_AAGei#J$!Boi)-T4>WR>1PMUy z7HV=ap0b~j7ouH|rSnk8x)4=&+CoK|Le7w|iZF@(nP=v&gdGz7`mA_~Gp_6YhWR6g zWyRoG{rJi{m_(XgKMN(d3h%_<-$)lbrpb#!vC^I?K=Grc87Pof5U)(Ja=oH$P#?d?s;f{TyW(%*NA@ZG^SN2v3FLAD^?>8EZy6P?i`^3btU>2MS;?5KXB=9d>EyblG@dJT?UEqqgd!V zqAYG?0VW3&NAvQwruEL`tJ2m^fedZabMSz^2c_ zmSbjNaDmaT%+)|!0FQiiI_ z3PUuVtiFj#dPi=SKd}qa672dukp1x0OpVLz?i&E_+gs5PR51gQD;GK%E;SQZ)emDB zKe*new$B@ZM6`X3drbFwqgy^nW&nqP@6zR>*!uRgraza)D5IWW-!vM%km)iSh5#{X z`!%yi-P53_|41w7FMP8Po0aR#z=b#I>lx( zSMP3?d)01sx~I?6?3+UcI=oy9gkWECff3WpTDJ>yr{jSpCDrf>ayrmF!zJ=YMH@g79!?@(_X@>j??BQazWd~I8?m?!$EPOEe z3;zvdsi$Wry_nNWCKmmRH0mT~%3xPU=`YFY$rE{j1r-k}mZabiLazP}!JTO7FoK*L z&5rg~0^Jx)<>qXh;Ap*0KfCu&1^T&>VI;sBMc(6WXf{^j1u4wMwzNc#eEYYz*p3vz zwmIXqx>$|NLbg_JAkITH86mm<{5iG-W)2rrtc{1>4o#Z(b>NYQ*!U;2(Td+_{~m95 zZsOK!N9SXNr+rhjQQhz9_YE53wY3zZ8~uW2Wr&RS>;`Z!=76JmYhL0H&<=lqSYL*dT;#^^8n^)KZLQOebeqmr8oJvvJsb;|iaayZeNR!x^0FZn5UB0bJmTy5Jva33-e$*Z zw%s4%cBz0DhYuIf&WoA@wr!4YgAM1?mdBwmB9&}qy_U2KyGY$`$zq(&%qhVf({*d? z<8+|7rBJy0^SHP{m)aWZN#NQG)t$ys7P#R%hTtN}sG3cg&wfZP236}ErlBNkCj;y+ zy?AlJwwK|4xAT^XgPrrK(3lf zDIpEcb`Xbet|$FAc?w!gfL*jVLjBAaq%}IcBXh3H zj3!G02W4)aTgg5?yt!RLrO}|1;->l2o{mm|8W`wbkDP1$Vx1gTKLV6vh6%e(TeCUd1GZk)HFMY^1OZhCQ_M z&LCr0r?>b(&?WA)+b<~;oZ30VMT#9HF7gSurhCJ8k2-k+Y*7+kU+!GfcxP?|>?x}s;#gD5CpF#5U-;(QE z#*Mp}PS;kvNMXOC>^KN1*o@Bg)WMJ9-D|I+!)VplddZ$=l8;XOxO59Ivp0)swlf>L zX&2Y^zTs20!NJYB?xWkU+AH}V&%%ZOj3sI_#q{04Nr6XMM^FIv1>0WkSvRm+5k?vL zp~M8dh`p~XQ2UGhaO(3uAmu9iwh0Dy@ylpm^Z3L~*6PsyU;7IEnIEVy6ROp0k@s)q zn4QoQ0k1lThaFbFzL!mR#)2K_g@N%#qq)x3O`7Zb^set~zvPSnE5(0>z@B;izHc30 zr=ak!>h=iw4JO_v9x`V#YBaod*?qh-E^AvB%vnO!mY>(LgHIjXL)Yn8+S2GtXdX67 zzTFWfS9J6wS?aDLv8R9k+<}Mx%*Um^dhb%U_UJy>l`#}|F1JpCue$A>cC@FF%-WkU zM#MP_G@WFTflztX6UwwaI`5dMh)0=9wJx23BCboryN~f!GQktu(wIOvISlFMt$!(V65=O3tjyRN*9*;XP-)|H{;>2lXU%Rfn^AfE@pC z<*=C;PMflO(^c~w3Vh3^!x^)8)mk&zCv(>d-XNZK$)4s(V~ikKs##8E?}ECG;zzD2 z%3mvALk$_J<%oQmd(6c<_HL!jHQ1|lHV4m86V7~mNM}UOyrf(!hC&t9n9PSF69f6J zO0sJw{N}be51y2Dj?=Yn2S2px)(&7o=-tlhM|5No^I!cfeCsiPd@enk7u@|`+lp96 zqgQ3=I-4KSNR#h>jw1NGSmO8TI3Cf^Mne>|8_lkxHj(O^Kr0dC6dKH-J~wc=Lrtb~ zZxH>{ZRFJVoevZUv^>Nmdc89^vk!VC@r(P~Rezx~y{EDQT7w4tcW%)$5sNhGgT+`o z%z2>-b7Z5}3DM$~X4-5t&8hb)HdcxM4qo0_s(hln`-Dt?B&_=ZkyKJrikie1sa$^d z(zd+y%zWbD6+44#%9%1n2OjwyHwG@8K3=F!%1D^nySfossV9czO86IlBW^$z&WGX; zh8%n>7jbiK(qhPjJ;qo}836Rq*Z9XJg&B&|G<4HyVijzCYRmV0EXQ)Ih#X4M|0t_I&qDk(?z;E)h16`pM%TE&%bnU6=0{=;W%1{&qaK zF^^r}pEbK-XHkhIFmFvSk&!>v;m@0p1pio(w+>`Q3!t*hcX<%)g)ZO#*k8M>| ze_m#Vni9WJi70kP38BGe$#v>p@`VzuiDZMflAx zrp`X*kPIz%9y{q5QBrQ&hEWT)+b_yo0A_M%x4s>8>kG?1<^nuo*~0UYWM;~PKNqO! z*_F9qvWy=7^pc5oi{`E(PwP|2~FP*A+^j9~s3>|Q~S+M7E- zPMjK{Jc0NA(4|ZEC9<=Mb$0`M#VrY5UV-6u^jy8=xG;xgOMY#=V%INF+K8HIOyS}9 z>1ps@DX$LbKB7?KaN}%GB7Dw6cLr&ndic($Gvpp;zy0Azdunn#)7^i6F1JOqmW_V4 zS~qFAw=>9a<18Db7F6hO$M<)T)xHhp^RmY}RfzE}ywJTxhx54F?40#Vt>(|YCp}HP zSjEU!UUl+*%3~FrBVER}`pAjOdBQt`^OSf#q(?blIk3qs<`H+?Z941P?>exa*-qiX ztm&NtPp7eFyn(Rh9-qqfoGe=dw8&n5< z3b@O$Mj$lmyxcrwYDNxX&HnlQuHuTRM!ekFAGtTm!PnIug56MZ!d^X<8M%!@$Ko(a zXMURHr+=(9|83&=h-)lAA)ta8sI4VScU|I+V%J&y+QZXP$^GW7eVA3~CCjuOJzY)` zO@8ZdDiVD<8_a@fCY7%T$EeuqyDUG5M84V?$NZ* zpwG;A&9iC(YwVM6I0iYhSoLfo-nqN%gG3*C;q=@S4~la)EK^Wfhd7B3dkS~CDloRd zrvpTxo_}6SD$1C2Mls#ncT(s_V=@73137!E(ySxLX^h#?bh;H2V3C6r2I}xud}#_f zSbqS(%(`?KaA9uLg0-#VZ)cV*6=$GQl+B71tKwzPsRc-5#gPn2bED4$w$B7&B?9!B zfah6nM0#+=4a3OH4h^FQ&F~j6mDy3%KHIPke~N_$@PV9O>`H&nIKdR}{%z93<^BIt|2vinp`rNelp{D)^(@if{p@x}hr@Zp= zAF{Rpo1(x#K0ikkfITBed5hMiiW1DMq8B+=e1F+2!(UEiMIb1xllWtFL@%34v4W5{ zTnRBK1wndBlU!HADW<>tCAnTWpZO912!6S*vaIfWE=H&QmHT>@;O8>}bG<>J_hR;y zC+(Csg!y7t0u-CP;_65Z1~cp4GMy* ziBahI*V=B76k*z$93q^>eTJVtlv$*<{txOn?LsbtvgflFzBW!cSVbx+pxyF+^t2r%ym$x|76QJkdD2iNd&k#kBdke#NWd%C3ok!Y*DA>knyFmw>;Gi(GJ z4N(WKJq;UN!^B>RG@f%Dey0n0$lqIxJ^6BWH2Q~^0#MC&)b-Zd(Gly;1~1uxeDUW* zzqR7wL#j9w4kCJ6@46ywvB&p3YjtwHi<~O-*>BHm7)XHe?l z2LddaA0fdx*dOTQ<++=mye{|1tlVE_LikkZrAS6$;M%9t2?~iLx+VRZeW7%jr)Af+ z52%%|oMt%)SmAQD@sW^q%85u5x1>)iDS*VNN_?6SNb&s=&vea_6n=yRo`of@xO~1_ zJK7jHQ^Nm#F}LDjOVsYzwo&o^H@6GDMh=G-Z3hII77J1&-`;}lY#+q-~F%uL1}h?b5g8Z)h?-hi2ana7>Y{zT5sO<_1wj}!4&B*LiP4# z0tq2kr#+Ut2908}B;QZ;HjQBg1dOaUttaZZ90bV)*q z*Tx?{rL`!+byK_zhMa-Vp9%Hk_1i`9{IDFJxrMsOj1)RQn%Tj{ zKe`HDzm1QS7Q9*Xqs3DHL3t9Nk~G7p2gZ+AsgE8!G5F)~H3O$Upk)Z#TDiA|xAX z`qTKE>(A{cQ~EGTKf1Wb%QyZ=V}_(x2{x>f4N=r`rQ4aCf1GUk08#%yrE zC=$&n_s|ba8Nsjw!PoPD{g9PTUH)BEmi2nT%nKOs7k~~l?%X0FgtWa5`a=>H3c(@~ zX;%Pj3yhhqztX8``bPdSq-M-$?WqV=xSNTdG7!Oqx2410L^3UW0_f_rxj1F!fY6z< zK#-(fApi}cm%j#KF*wmga`;SSMdcG<6dF=U&P*3~;7;Q9g77J@4p4*^U)}QAD21El zDc1I`Q)@%co0`3AQr#ea?)SI?;oFR-CzG>PNVuD;2r${2 zA+p9fiD#2mWx`U^{#5P_ON&@lLV)MY@B9pY2atd7C5)vuX8h8Ckt8&4`uA2Lp3&&* z(t40Y&d6mZ>_E;TvxSF*nIn$^(;nIX*0x5%aHsWDj@OPr7RDtlg+lpJ@B(*S>GKGo z68Gw}g(1LSxn%z_mW9aKS@%1n+Suf3Abe26G3T|R=e3YKGSS1y%lC1ba&KJI_VqRT zui#O^?WUhjMeGiLEV4qUtzEb$ClLa_LUA+&g6z&q0(i{u;IJ4qLD?KGndSyv)$^=@ z7i{_LAmr)%u}b89Cx(KBqs1(twKz#Y1H+(^=Y z>mfM7$Wl|0g8O>PecoKoXl+)dAw~2mEUe##f`vBgwb>v8RPFYDU+o``!n+T)lP^V| zNq;@U6INpJKsiuBfq&0Fo91dkY#7!RGS{O|u-(!oYZPn^)s-0qtm6^LlXKISK$l=w z3Lz)|kSt8{mZ%n>V*TnO#B3&JA#u1_dDYMc`a^Ceht79q@b_Hne9ZvDX!|BIUkbg` z_FJ?3U#L#s^jY_T>J9kbu)eCNo1y+`j1ZFrPZ*ZAf%qXv{+-*L0JKQe4%0oU8#Z)0 zQ-V-*#cd;aYHKUtGGB?z-yG4uKcS zZCFdOYyki$MSK|A+$&20-+HRJ{K`^JmDk~Q5AW=ej0|>qPMt9F*X)%g>*wyE@7to# z1utolC18BMdPy&lhf}e{6=i6o8We!-7StpsR)cK@#MJy+TURk=bBx;nn{wD_4CRF+FN`4dwFug=+ zoq!3n$=b+k*YZIL4zBJi3Y>1JlpZFih@etQs$QSL5{*0FQ=*2nFT5BAg__JcFD8*VC<=NWLQ*NzXb|xg~(SuK7XBE^)eDbFq?^TNk5`E!8YH zOn4=#%tx&^O(gdw`-jRG9z;l}zWNJ@EkE#3#1Dj<9RR?bHI@JXbZ2Ar_I8hZ5^%cG z1`Xh7DJ~PVb=TIrQd|aC zWwXm7AuU z?xg=m{Fr-S|090Ps-K+pS#LCXq%JE2%e_MOgM!6b3Zx6vDe(PbR8*o+@IZp~o-AGnK$8xt zZg56b>}8Yh@2h{d;B_b@_i-pTy|yN6K0Q>OQl{>_ z{sN2(XS+S$BpY4LWOuit#ATCTuTur`*z;He58 z_iJNJ2VnFqv{Z3FgV!o=?b}v$;eO6Y*3Xk9x|V09!8?}@fg-{-Ov!bv*_!@cF+{Z` zXx{R~0ubw2tr?>65ymKg{V`e2^tb)?%datHV$@rY@%$i`+>Y(t`faZ3!Vp6UX68Nas8O z^0Q!4kXY}(a_cY&7(oudJWF)V#t`gV#kI*f-HU-U_qO8=+LcVGrDC8S#h_V1 z20?O7Q9QsvlAO#HqfQkZs=47tt;o`H&o}DJY+;CiE+3WeK$X5P7jkO%4jw!`c~n8I z7+daruF)|mP{Heu>o;+>7y`e~_wh-{`;Z`|Hhv>?4>js}s~VRv4-B z!B{R}?dpR_bPCtwqp%E{{EX$TYi#am^xf5i9C<%JMc_TVSr*@NGt=M5E0P=@gxS12 zo7+UMM|dSX%dcxUG|&q`$(y~pLH)05Bnh#hRl8Jj?)oIA0YqC%fbh@1hWY2M~wEcr$PFD zoV#wMlxUEEDT)Y#=@}2-e-T>&7=vk}2Ho^5sn!}yKXPAJmcDFEk})m@zA0v83)Ga@ zo%Tk(K?%Y5NEF@_R9Z-$o7agSRtc9&TMugLk|DHf&|N6o+ap{pd1h(!>X)dm%y%>3uNCAM+^ZWED<;%cG+4On=ku! zF|Xy82kT3p+yAC2p*KR(0m;CwP=AN!USp>mQHVGn!8#;ud#(g)bDVKS z`e|pka3wWm%vW~PYHt&#c39ONhL(Sx^+XlZ46$U*XFIg7x?!RoI7pir4-_?8>_vre2b&>=@$uVYB<7w{=PtktLVh0yDY&2&x(Uo} z35+w*0a5*@YqGwDmoXw(*Ky1SeHeVT%G3!O|DXg6GR3cuH9?u!Hk zMr_rc_B?o8WR!5q&E5ULC=!RUtl}kif=J~DJ$AyHOhVib?m%DEGz7b&)`eir$drB( z9jBsxC>Dq}03CYY)Qck>dWzRc(al#|La;6TLs6Jm$807SU2s%lENT1s7jkYH;^ixI zZVGcAtT}`V^463+QTb;mgJPCD@)S?jJ^)yh~1SXu%NVKj+|Z~ER`x} z1X2pm0|pUkF{m)V zm^>@9;_Txmf}t$MWDZPofQuLvq{3X)%8gqM)yYzQIHqDiI;4cb+hj}uf-UvgzZ`=6 z=Ml$h5yzT}Wo2`|8Y8%gF%N(n1Y#fq;^unK25zgVei!C8)gl`q4B84Sfeg%#UQ;N( zleryr0X{D?>g>%c#)g2Y-Znqq!%8U{JK8dc|7X2al8niT;V;<7K%l zm-XW{!_oK<(cmzkF^0Eg*dGuT**+54n0`ogiz}*A4BMt*1!Sq}p3rgf#Ov7nMx6Za znaLPghQ-((xZT3>N2;a4+@KW?uJ>q0l|{IS@fb9U$n8kM5Nx(_+0%#DPDw4Of-r%Z znwb!Jyz4M7FF(ySMcBcQJD%m~5C8~l*`UReDZMTmgF^SInlg$F^T}4T}I!+xoxv9}1l!FD7)-@}{=V?g@VanHb z=09L2zC@7os+R;7@DiEp|KO&0jS{`pwwyBQ)IaGnN&hZWnfq%tM`;}Zn)ELhrSq2E>0qti<)2oi-zD^;UN z&9HVC8RupMS?Nggih?q4*W%Emsdbw9T}m2Px}xAB#m*uL-tVw@HH|EdzwjI~kz6jJ z6Xd1&O@zb->vQ(hSv?>T$tU|-+UUra+@qCS7YRi;lIveO6Ui)wGI8GJZ>~qI4Iz zMERrYA{TH+B4`w3ec32!P61q5`XvSkxw{ERXu-j^9zX1SIQwuIA_NY6*+{YJG*|r) zGYTSy3-4RRoTt8#o>~OT)Bk{{o`X!WDB6H^MA;|l0!mfCOWKAqFUhe2(Fe1dzb|HfAClTrpU;7Ah}=RSl%> zJpCT-tydh@Xzh9jUyo)L57&K%>@gi16<0uTgVB)an|H+OG=;A%_v4c#Zy~Lwn~#315PtbhNOTH)?*Li*#LY zCJuYbwr46qm;{;v8)O}wG7)GPLeV!!$LX}51d*a;KSA;Y=VBlz^I0U4@*z|z^$et2gg zCWO4VE^697b;3q~6I6D*18!5EOYkFtNaCFrP$)hBnWG}VV4NgqB3Y5dpvIZ2B08&Q zfda!37ztl%RXHDDf-TXepu2E`rXL6v)rfhmi|D{4L)6*%Gcv-;_(4-|i@|g@L1-Fb zEF*y8EG{vJ7HHw3xc1`C;!9a5QRa2)hal&5p9ukxA+P@OOMRMIG^o@b|+@B2__;1+{4c& zOIIzbHD#SbdwLJ(GW1Kx552ZpT;{5h73h7-hS~n!fS-a>qs^=a%veA}ckfxnOMu~v9D zn;Z#gM*gcFRZQJmvTb_7I_>zvO|0QcW5D+-eI=l?3ub&q86AL!iO>N<@sAL+iwHC_ z@R^tWye$E>Q$6;|2=J^EFfpPmA!NAE0=)!rR>X|SY#<4vHo6o-Kr2G1g9D8R)hLEt zPyIJl56RQmq@cNDyLaaxQ2qN^wR?V&s$|H|N{Clt!c61NW{(fE5Ga}0T^8&R-4dhW zCj;=)2a>)|gC@v^XNQk@g7=-YSC-=CTV`j-Q{zk_oPH@`_nn zPSCB5)Oe%h!L@^xdBL!2=o9AcUY7M^KaobCI2P0Q#1EHq;%EDhSm!vID-`j{g0z7k7xS-_3iLmzy0xiJob5i_WHcvpS?cs&-?X$9nXtXM*M!> zk`OcKNv^$?d7N8e)a3zRV0>~jY0hfImlH&u6$UoOq4smel72rBLTQGTB+oQ<0`aWe#c%KKI z%tD7;&}>96MiO#%vodN`fc$-vIo{mM>LZCV&F2UPF~&ZmHE3?@hj7s0!z{VI-<$0Y zS9p=d3;ecr&DBXC-d1=f;}k3{5&z0Pytn&!r^ZBi7& z;9LneZ>UBEV&aVoC+0R&(Ey{k%{Qa>P~NM-Tqh#h0x2%q<5{&;Y%efLQ=%C!mp+nd z%~d^wNBL%Wp_eo()lfFt$RF-9Rx-NULEIp80bYQlLodR;2+z{ zUi8y3cr;<3c827a+YNR6;~&eb)h+7jI7?uYeaF`5g~@o}yfkjV^MY%fW#(4Wo;&U% zvgwV2w*^OP8{6Ubx}7czmSA{<0huw}`4#RPZn27mfI41w4CVRuI<8eWB8hp&zn@`3 zoYBygBavq7E$HT-pdq(*dD|GX5&3`p)(_HyB2y~9Sf0N{oFAD{qM#U zbVY`@V3&sg&wXl(a#`s#eZ!u~az5nMZG3u%(_M+A0(XC%{gTNH$!*8>(>>qlJk0v6 zZ}m0vbDW)}G;JDvEWK;*SDy?}OZpc;ZSEQ=iNG{#hd!dT)vhOW0hNz3=kfQD&fRgr z)y22oH#%7i5FT{Zs6BM_363d%z7IGCTHFhH5Xb)&51&jdQ>4FaX%fWAE`WR=?`B9& z`SfGz9&aUXfmRi&!Qv`f-$2pMecdywKi@yed3_Fsco4U{&h+x1KC-A5MAT1J>gyEj zr?zqzAmS15`AVxU{gU z6ERYdht`e%XS07x6%yYqH#a_%c6wn{H~+=#(?`Kl=p0Ev2Cw#bZzx~C^$^NN_Hf-? z-)`y?lYX1c2qg~_Y7E}-52{GkwxJ6zktWBu+%e>VzHX6Qa!wVtm1t>s+)iXuIi7l$ z0M8sZ`+%ekcB!8+hg`U$5}C=5^y5giynf{PI)3?TFJ;ebr3$@;uc*W*hqPJwP3Ycu zMfGjO8NbUmfhk#4?Yq{?2dV#^GD?9idorx~WY)Zy^?&0t1*qzdOAE)p-Ie$jgG4o@ttl%-%BfVv975xyhB_|L^7tJ(3>UjPnP5PS^ z9{uSl(6=Rv3qDu(+&AwG9*wVZO|-q!Y$5jKGkaTNID(^gVa{=^&Qt&Y{b zVE|&))As>y9KY$ri!E;P8M;&=o1$uhO%u>-82#)ix2a5s5`0HXi|7qWXojHB9YRLS zJ#)BzGl6;{1EXtIA5mx`Ckuymbo8n0y^rZ(O&J~AHXm=d4~jq*mH(02@1)go>m8SO zcx|V~cxaWF2A60YZ#nh(_pi)&ZuR;ZiaUs~ei4Qm2158K^W2s9%0qtj# z=xp)4>^bDU2glV4DFyq+S$H!`%r@Bh(aSNY&aaiI88`=a!_#O_Jy^}*Pcv=&~MgkU5F|>{0R30G zG%55{JNyeqXteq~&M9dvJaIIemtMV==llrKFZEShOTc~_YW<36DWj4-q^>yy?DTQ7?cKnnJZZ|7IabV`d_uaA?C9_jG zNmfa4Sbt;EBUGh+QoBmEMUv-3(i6e%Y^mtigj3cjV!QXU%o!Ng`E5~=%<;fvlKLO1 zp#wX9F@5*RdXrK6q<4;7iJ3BE+-5|g*2fvk5iblG0ojKcq^8HQ4K^XKr_92Np%2AK)Fvu|ijd#b>BqNIkW7;l`Ek9!$)=w~LbHv3r7EX^pth*GZG@(`*T zF}hOpsx@p>@8E*8iWn$QdICbLwLX8K36^1VQO&EtDks0DvTv$XlVtjRT(^%0i&HO> z;VR*p%Kk*k;^o_=-ep%go+kbrA5(0uDNdKF-LDEt`IaVUQiHM-?17X`sGjb{wx7Hi}-4xv@kO%gM46HPJc#Cpsm0x!!eGE1H zsB1SEM-65K98c6ihz$DWIO6St_$t00rKk$O{5WySbaPXXH zJ$U8MPrUqTqXMf%v42AdDSLwj@|Rr>>_@ zssyvnNSLSCuZehIpig#j%(QA9X1qQhazvBYtd0@nHYgw=mXDX?w{(fBNQzv!3m6|G z0Ux~pU+Cq%XYKs<{wvr>P3$~o=mplrNDcA=?*>k-FsJ#0@mBhBEc^_Xp`}Ef5uZ86 z^I+uxB`7yLe9N50IxbTCRy)9h|d4R}wrjh4+~f8-3en)ZRLWUxJ#7G(CJ z<{%a;!60N)(h?+O(mYc&>`!K-uj8t}?K&lNP?4{z=&qn{>;PT5_Ak%~7zyk>DwNAA z7={^8B(qW5_w3;fWr;TpVmUv5{VQJMRFtr^A0X z!a!8b&#~YH2OaU+-(S}MNlZ}U0ua>KH8u)gzg`Gk^tXR!FOrg$IfP0~AR#sr5gP{Y z41!B(nam!Eh&!f7-tCPq`*PJw{E(LNL5Y{qozK72Y6gBb2YX~!gc<3{W}z{kHJp8y z9wuz}V%r|M=m3YSaxk(+6$R?pE9ELePRt$Kg_Sw@%*wMRlx)23WS$n8lcQDdnoF4} zDPf<~@vOZj%iE=a!?ak@v~UN(owuQ`U9xB$h5E*UE67dVhqIoG+XX*k(`rLs14bBD z+(A4ZDu|(ag>Y_Fy}kxE!tf2;P??jSo@RU?Xky{55a83?23H#qb`-_@w-A0a@4_Yk zPD7;Q`AbIqIz4WJ8D1m8+F)r z@E|RJh|0UP61YiMJ%lp4i_$ee>L-7mVquG9OI;hFXySD&wt7hYI~f$cwr@HNfG<)*$ia6rlf`8?QDzHWx)+3{s=Ctf%oZYiRQJg+#u zd?f~8H9d4Pf~s?;OU1eP0?-Nf=v7v7JQe$6_oZuVLc5 zau!W$G{dSig9hC|u+xPsgx!3@sC-V?VJCyp47>kt)k zN{scSZ{!8u;75BYMKUG~kD$L^zMDa3jl6hZB(FKgFnCP^l{*AVW0q?emAJ8~7ep`> z!ylUxU}X45ux6#`VCqIL`1K2-0HZ!Ti+3^*U@m*R)2I0wDe@-`N(yYgBNbnTR{Q#z zTL*+zZ&ND!xEjn2K!^fTn4DZ-IEHkl$e&|`w{zj-K+DRxRZg6YJTI;{x71%MgHwiL zn@jg(bVD-Y-|?0nKsacGd5SM8il7~&)x$JXxmhMt=UlVCC9w>k+I}lu<7hyR#)UxId!8$%wUpT#$Ect?ijy`SFgn9n#M&(=O+x552&9 zLufAB@gWerTB$^jXzn1K&&SOmW_AcjR4%v@jN`MN7*n{ZzgywNp8yP;;g8oQ5^W2) zqvN=7i6R`&etajuBV7<$1B5QZz`@*CMwDWrv2Gh`>Il~?$BR>z^Yjs)@0@R?&d9f} z%(O;k^>Wm-wM#|Gdqq6OofNKOnfMQ`K$i4f|oQFiFY8iuYT9tMI|{rWNpVmZj&6&qtY=tIQ6 z%7yfx_#hbl-#Ew+Np?=V*y7nhSqf6VklTag>>86q>mudvs-Oe7W0a-j%B2}gb5kR| zX{(c!M2$eWL;~V`{wc^eWEofRY#>x4v8?-Qtr52jKE5&zqH_RO=102WJHg-@=9|2F zP&oS}Sr*??4Vyq;_i}e3jP-G3I___Yi(CLF)B-=zg_d-@N=q_*gQKFky?*;SbM@`` zZ9{g1vy5$faEg2l-XhLVl_`o)mr~tBH?kBYCH2X2osz~d?&IF~g*)Hm82r|a#EC+B zbyD3ccxs5Z`}5D8e{jL|cYZ#@rI72F&#`1tg&v%ISS^ds$>Ed+=#+ZqONxVapXY>b z9?F@{^YxG$#QeOJZ_cAI^YU@vh#9BhL+Se1?O}zuiG?FLe^_q(7AIdw%rEZe+!jWf z-8mw_T1mMNZSh|uvn#>~S`b5smJm)Q5N3>68UENAM7@yfG!qDp0&_#36Y!#acsUk- ziYx%^_yWijKqhMljnu|**bZ zu^lldE&Pxu-C?7Qm)onVW$sv>t^O-YZS`;-@Nz^4L zMh?x-eO^n{zFei@60KCUrfpkwL^P?5t!dSD;^eDL*R&!>-L6-$)+!sZv6?eBr;l$0 zU!jR+Ikc;WciP-DW(2bN>`VGB4OrG@t8kigmcu^jj&+a{((uGI1@+Fc``YEo=gzk7 z5U@1G@n4yFG#!s^^P0t1xNh>3VPIa+K9M8S%`VlmPJWW#Z_GDqwh=@()j>0+d3Em{3NbVbExRCpk!^ zm9fKgcx7d|o#2wO`$D2I+K$3gM4FLZhpJ2oWfq;Sm+ybvQGl52Sm7j^phO;w-P!FDyKbCA z9ehkPPTLIevf}kQk`Y#9iV?Hvq(rI_n(^sNyC`Q;{p#yu;ur&KNiX>R70LX<>pd@D z_X0|xPk<7~EZZ8#S|l1h zb*#zW|9mGP-$5ViU<3n>jh!*1n-K>ft)Rq-w+2eI*3w!li;wIBmTH;J`X^BdMg71? z_7Mi+PIg1D{ zVoICa7Sc>WXs4}t_od3qSv2|%gA+~g`f>yVYiCKp{fPyr5ZfcThaP2?w>bGc8bnQrA`45(mS=!!z zm`ft|vq+q#^i+G(u?zmG6?S>F592$tOk)3OqDd(sIQd}=9Z>`iw}_xUR`WNa)XIB1 zfAuBiB}iR(IgHQPt_j(I(p{$7$JypqqVsHB*uR!KhGR1LB$1Q9_{D7|-3Two$?v@k z2p2J!MEl>$0?*=hZaPnOh0oyU2mz4=cJqZ2sL<=Jq^ux5d?jD-tY*(!E>~1EUK&hw zI(+j5PnV}C@{98GxTy>%T_6fDooc`NLI@Gs49AErF#@nIFJkbeBWYHFE(bF~IAzdU zn$TwB|AMVa-W$U)KaJVFO>3g-KNLkNbTJKAi+H0C{|)F=!M!(qVDM|U zHiQ}}V#{^*1tJvL!yuy|HJLkQJY1~VnjZFKIP1+gC(*}}Y#2W`dDUIVdbwlA14R#e ztv)^esFuRy7m8sVq;dbh4Vk^7s9j8`&n+rh0BT1apKNeEXEp1s3jBCTIKBmliJj$3 zP8a4$o088WWsuQOdD71-6*^jlz|}2z1X$&K>AvQwGG7~x9kme=qdJ4>XAkR~&-DpQ zjf6t(KBKwVUhuNALRVJ0*Mbd*-Y#-^4b$6p#nZ3P9@$-6@|Y_2y+YkW{=Iwxz?9a?Bw>IvG5 zYUkPecfoBTz|~o*hlW-pB;`Y{vJBWr5P>j$(~P1}yl7w{W!fJJ{(Jo6*5XYWOXlA z?3#!RiEEuTHIwSZ7l^$1Yz)hd#b=m1=u@F|=2ZKYsg~mVc3+4;3bbzw$56Q_{?yEE z<_NGsT*R=e3dAz~59mASkLa@bjO#oDnn;!NtJR0)w#?4tTUkS|az%?1Q`kd;gM*@Y z2BhfO5Hk6eqGvdhC! zG1^KrmqpCc@CjBA4j;v4bXyt8^V^vGWBCTO;0bu-fG>S_4H-lgTxYU_BMpk~IZxn);1Z!PHvC#cz4da@s9i z?Qi!^e&%QpEN?FXEvM=82tlYv?|Tq+GKA1sIi`#iG~sq0hD72#BS^;q%(SC^YYJA`2sh<|jrOg)D)`uhFm z3q?MJy7~&lw^mcsWI#pP2t2y$RQpcbTegX=$=kgy-;5oO`Rdun1HSLm^ci8cr9|25 zs|!!Yw6okcls)*2C7ocvp6KS*!hgnZ93X`1wJcF++*)* z<3%Bb{ch~;xwzP6ZQ2W+l%a2 z=fnbANnalC!tL|ZerDAdlMcG}0-Gkwng8Xbem(P+Zv2a!__QBfkS(M?Fq3l1> zQ+lHbeMr@-hT^;NDbX-70QR&y?~UQu?$J(p-MF&k-B&Dy9*w?i$e;iI+<~=~?6(9T z(^kv_NHdRMClKl=J8&-4ILSr`EzLrae49Lbi}QR7I}!^VE*=itZ4FmaW&ax&P~iD+ zJ@lKrluU<>(uhW*yd+#b;*=P(V89x&PCDdB2ddX+Zx(acNdv0;*XmYL`!Rt9q4^W4 z#NolZKWQOH`@o+4sV~KWy*t3Rm|IKf=yrYjyOJ3C8*9_@-!Hc_`<6-TZ-DVQ$&nFb z&l~dpM*YgF*4{3LJ^2haJ|#p`S5LIvVE-l)cARo8sXo+@$BaW+vYHv!RQ?&1_r{}|oZd%0FR$8%F)<|=E4c1Oceg3u zD*FR=U$Srb;Gf+2g1YoN=hI$WPsHoR%}A_k+6Ch?zPhZJ_z_~SyGXra z`abXf)aj6fpC@z1-Vxr&I|0~(9&5$JaCOfMpI}e7{jvaJpn6nHM57Y)-uSRV(8+62 zSZ><{bvXWWY~Mogf%iMg^mA{!VZV4*Um+ORUsl^~0)-47jXI2S#&pc%vRtBB&3gn;NuskKyXu=0iB{NBlThTN(z#o{;5W zz_Gc{dqGHx9R(R5^OPPAzI- zGfc4~l(i&0l|o+ZOv?rH_h3(gH%)uuC)DdLW+2%w&lQ;OI%Aomn-kV5u-hNLd}KS> zK=!#tQr>H>MGx>*V%Eg>vIwfkv-?p#gSlxMuCMDrBFDhz6=RW^ z$4$Ql7HY`aA8Jv*NwnQm3b za2fk6qDX%JuZW`htA9ltMiw*vFQR$zuZY9?*SVL4nkC7EkS2`JLK(e5^1Z3E6s_*? z!U7-EUu~e;0I)QD8XBwxVnz)O%c4T@qS=?A$cHX3gK8227m20 zzAx!Pp|mHb>je^u7#!n@>h^ptKZ1eEWtuN?f2+y}icmjM4ZP`?O^XY8jShhu`jCq% z;#`mX5rd1pi`>9|y5?iM3NLW(bq515H#PXF!N*3S{2tQc(xntJIU7!U+ecM(9x1s} z8s(|kwzyGLZbSGc58bx=RB5ywy~Kl4;)3|6F-#M1d_G z{^dp3HrPCoVEfeeRJz$lh2EPX`bMwdcmnaujz#kJ+hV|DRL0MfXX*P+^o-~#UJv2E z7qah_=1Aw9g9YX|#ON*J*<%59+R@}wUT9l=m5&^cxOTjDmgkwtpgoFT>k9hqc7AOH zX-7vN0Fo%IM+b&4vokGpEp26XHH`1RX{~T{chlF~aiD>JAvK2Q&L2EhDnOB`GP}5jH~k8)zLqx5!+amP_>LMSY3q2jaOQmiWzc+P-%n=$v2^T$PHj;>9vzFmMJ%sOb> zSx6zYuajwWPCMC?q$qc)eb`e{mvC}PD>gNXQuTmVd)vM@4i;adps<60Y}C2t5s{6> zl=sPxt5(av#QSO56fFjzaCd&UHRQatZF;&eawb^SA}!OixcBYX);-zgLi}6q7mTmSk@h`oM@NCDqPPMEv<{m&lyf|;3NIb4A+6!n z?YH0O>ix!nH$FGk4~^6gB#1E=b+{wi2&y3b*1j9-2r5A6prmS)3$>GFs&#M>rBZ=s zCLzTmEOYXV`iNxNEGi-IB$_V2nmK#ufk2t1lYC>ngYvY7bh7?)Th7SMXHPvtCKC?W zidE^>*0LrOI(alHw@mKXEn(9@WW}vthh4*T()zDR$K?96E4q)-)JbU{^l7pQbnH3v zn=hn&0d+ar5z*{Rm*aBnprWn&gr4)_c%RH58totV%X$WhR_9pMssaNm zWRnC1z2<`8f72uOOoZuk3r+%W#jYH6r z(RB(rUoPkpu65W#b3UD3n79#Bw0>%&bGGL zDE7*#oi@oCcYgXnE1x)U&p#2dz1j=V%^6JF^25mSzF(e$c^yyWv~f#FivhoL_fEUeRrozfxilnqlYuU ziM#k>(z-89_qK{j)ibgI(X^}qb}ed>EqiT*mP%R{Q?1^-_+9l(;xJt~eRd(bW99qL z4{2hcS03w&<~(M>AyMitS*AlC2PzqM;yM=az3)_;KP@0LQ6bjX z_BXpdy$$Iu<_w^_w6Z_1u$}^Pa;0WwI-O(^~0+ zXlg}Bg1?*wZJ~NcGFbd<`fH6K1BJ2F)3kD_UFO8=j>aJhDSJADv3JO(HxuhV$U0^| zX^%Q9yUPj^{zwvApZEt0ildyEkhy`=DCK{ypJ0>vbLmo0PN?p=sS^{I#Yr~dY)UTP|OU}1m6xWr6+ zN35)oSo8iw!#_ggllM)hz!=w@IYsG~FVKf2sW(bKE!<7{FMfHY+ivg7`K`8~^kf=j z@A{*qmC~v&YLBz;#|N0?Ijcd`AkHJ)E9axAhbU>=&Il@j?$4X=z0J_drwZd2Ju{*u z!_+-=pH<&H&#yeY;qvOmnQ;>?#-mWiCH|k4`#aa6aSv7K1J>79YW*p=L$43$DHpNF z-;P32OBGg2?LXjkSraQJrIYDzvgH_E1DNk&zpl;1Tm)B)LoFZvE7pZdx%p=0`oE6i z@)y&jvwpu_$-i$?XQ0d*z-g{YNq6?aVC)^2vu?NFLeUXvr_I4FD&5Ob31hn793C?1 zTYQb6+^Kl%w{KfI#sTZO+c~Osw$vx_-#F_zPjt!b)XrM~${FglU?pt7 z_EBp241bLiRkM8TE0C*@F`44Wcf1=>DYjW--$TO|#O&M3m`{mWwlDb* zb;lvZKzN2@{xxHFn0U$p4^7X7Dgx6kq#O56vp>%aaIK{aPHe$Hd>j2~XR>U#_4woc z1-5K1ipp^^1MGGa;@9&W+^>ZojaVHotsb_nJ04j)boAu6w9JfCM~|7PZeVtCJiUaD z^VZvefOUGf$a)!sh%adFOIyF0{Q~W2qI|ZjJr834WR+!)(vs4OE9=|F9OQ=bM&F!u ze|{`K3wW_R9v7!U$UlSzpE4VD3+83DTfqg< z()sf-p>?lWfp1LwYOYjW;>p2a9F)A%wD}C@#baN+w?-? zLR7}}^XWfRtQwr3E}|zCY;fq~+>-Kpp|5^P@PZ*LGh5wGo)I(R1+jG= zGW-^`JZW^)QE=On0=`X-U(NePI~Q)xaFPJ~taAy484iVM)`)LIy9$n{{99pa9xerr z17@~{Lc$_D0axf-!#?c5)0_uUkQq>`p2%V~8wb$&TSq$qs9@TlR?NvzI(+j4V>D+_ ztafwU{HkB@=2IiyfM>8a^T_;jgvlmy{GWmN`!OwXmiaXr6WcQh=4q~Rb;!eNk5Ip8 zIl3*|Bl^ws!O?2;PCYCwIdTg+SLnC-e4Qk!uWeu+3BS^W4BIh}lY zMUi`iGyCnEjUM5yztm&S<8g>~&XnSZ%%v#`tFLg^*j(YKfg}N0x1H z$`B3yn!X#Y%ce$D|vgRIpGEkzmh%1!oj1;UEOWrz!TZtE&fMec_k0RG(6!4k#wGA4aAaSkqjkxTms;i@ za!wt{e-r;omye(Q@tU+2X#Cn-0bk8uDL;fBO8!))o%Ic9FCAgT=@g38xtDdO_1QuFJu;@JWj1{tLGDi(ZaoxvKE) zm^bV9U0qu;A&=4T|6p{TR#a1(`&}>h7ol+BL7u95-8px?wZu#K(%kX|Jcnzs-jK?b zMm{kZjlSk^>!mW#-)1wYe`a533tBql*oUzKsy!-ovHk}>lidWGI=e*J&l!R2ib8&Tv87@FN4N9>$2=JxvmF~|E2e}S8tN!>|lKM&;9IJ??_%y)jg>DaG7gP z*D-Z&h0U7p7W@D?I2To~ufI<=E#j<5aHId&zndDV1&XTkPFH7c#Vq;8s+r9Ct1E`Ck^*gp5Pm#a`5NxRp6XmL=x3Bk z(TWM@<>kZ_?x9BWDz(HSEuhF~+u4M`qFkGz#L<5@3whV^N{2%7a`CTQlTI!^5~Imj@h1V+^u$H^?LQ+N3^*QHv`zCgB+Vb!@Cr4XH$zC5nyaV;pHMu zMOVcP{*{9s1wK^$`mI0S(Ba;lU2fpli+L2!XI zkRSXI&kc*CeaQq&E5Z9vp7}3yF2Hs3uSL`R7Yp_HpWBU0r_#s-+4)>^uafsV;~nC7 zo4tLv%XdOg1$6%$9WSb*Zh-@ogG;;=FJ;h&k#^ILFj&inbfC1}2F)F5oi5;pbl(dS zO4>IcBgp&CZ%u2RH;RS#mAuXZTnRo$k>mT{nD4F)n#}|piX;#8p+jZ@fY|FseZ=rk zg+iNo7{}Ytd@qo*lhLP^cE$H-(o#DRhL|p7ZiC79k6UztRm{dtiXUtz!Zbj8!oY|q z(b~rKaV&H{Xl!SmEZe`xhZdaq_3VP8rFo05oOyq){%QhHkkj+}wT|;{zd4V($@k#r z!GQH$O-07n`k$PHY>NNtgjRiCCTSO;+M1@ujqM7il~U!JuQAXFT8b{7i$d+Ogqjxu zPwzn{ZM8#gdeX#zUYn;t4%Y%X?v&?Mp@&2HO4BBucxY&gb(-7lJQylUXbyTphF}Gx z!41xTwdLu?jv)NhbDrI;V#_TJj)aO8>)DvtQ^dycg9XlCb5Ii3!di+YTkx3FcxN$o z1~sg`5g-JbYhK86Q-0aGt}A;#dXIjZ>wcOIbN*+OC0w0~OB`rLUVbk5p+zURyCEL@ z;c{%v)v-El1^n=A)u+YwOL{+73ihm==X#^{S4N~zc65uR5lz~AjKFdF?7Anu0^l}m z1gd>7b!~;UZpB4lvyNO~HPj+#FKXS03ayEs)KsOsY5{mgUx?!!OlteP3wdXfN#Kv| zN_o!hnhSll-V^bci zUR4XdDr@KhhcsOz3{{?WM|1m3!zIaMqX>_dK?D@1s1{z29q38fSDj2uZ3ZA-wR zZ=xmkD>kO-RAAfUG2gIsr~d$nx9C*Ep0sNI1IuW6uy!J^aBec!KtPmS`6q~RHfMnJ z135cm`HQvhd0f}`x9se#cJT2%c_JzalTRqW<`h>{b9IZhzwP>my5jywJ4KlXa8L!p zJC0gPGRx@YmCn^#L3!3i{tJ3oIv=z#AA>5zT^6?BN$?l?RxqwPnw%_9bI@ye31_Jb zNs^DDZGB-PV~A8X#mnOY@CCeh7)S3_b&-Dt3biV-bgW67*HJ{O%ro?6+jl^ynXSiJ zFmq$6r(sIlp%A{K6e(#DibZQGs-cxcIktMfqL3J34;)8ga7Aaoslc;1ygZ^_I9x=` z@HU*FDQYw(`HC(j6dDr)MU6D_@;gwEsF@sWgwG}tXC4V`_#g@!Z$PE%CA}~E+Y{sJ z|Mw((DU2>^G;2YL8p+?6DdwVqX7mxmKuX-@Uo_D;)fe>OqEVK9;M0X@P3`L-;&&M% zcJDt$3`Z$97D|t(s0QJ$1Uu1tMa?AaDw!o}W-|ZY0X?(tfA4^&zbMCmLn3}0!izfP z8xA6XTCv;C@`}{$Hqp(6hpCH5Bt(c>4HY5!dopm5a}3kg4pjn|!?EbUh{OFwJn=6QjQ=8$_7};) zf04rei^kP|(X8b!n)m%h+Cnd=98SLuLZv!oFi?NdiT)Rv%)jXA{}+A3eF-?Wk6oz! zvD7vlMWx-)#Fv6F^}-CkO?~mu75w2I7)?dR{=N;uarAcX={p&2VyR7nK{1|vtLxXV zZvpRys?R4va3qAEghMaKYryA=*uq^(1{&(aO*wLL3BE57h25M~b3^TC&}dR{QRdMB zh8`RdcTziQTgiVV{r!s&U+Y2IpdWdVHyA%K^yXHA$N85>+>brE-9wXp@vR>uV*tzZ z4OWC-YW$K=IjG}%$OiTASoXgMbn4=Evs2F4OGdL)a_v00Iq4_*+g6@*sNbZY8;$$wlU<-GygXeCffdi0rY>>IG$Z#ib>xoVKSH!TQZ;v$#&hBMVio1SxAQ|^vFcYf7Y zx~HG_A*R8jQv=YB^|yk45sY)kz5b;T?+p>8vx$Y@zG(s3+mJah`09!4b|3228>W?i z*9HBDV(aOtY8Qe}o$n7Q{N!WE`ZOvNrtoJG2SJ>6Oo1hx>bWtb2w!hNc9%NY=mr_0Bt*f+;8JJ>UzY=m z3_^CNE{j=pwT38$;kbs7EcvZ!A}s{Ok?yi-<+d=?7#obUed@BCjITLd^I%031bUz; zE1LlW{lJ={po3BMus+`^DQRBn9j$Tj$_RGUGu*3#)`*o> zJ0er$3vkt1K*68Bpvf^v=9;z6=eW^*nf49;6{{2+P%gKTGaKhFK*F5@)!f!S4U_rL zY^sxi9U3L=Fq~(Mm=b6wmXkBBv?WucO?56hO*;g#(myYZ`fYq3nsDrC>Z5cr(@)Ny zx$E}i_FV&q#Ni5Ov?r7B7aCH1sW3Fijr$)t)|qO|SIo64d&jck))cpCib6 zt=h|~&sfz;V~EQRU!*TKSdt$?ReWs}L!VLWPSPKn#Dq8~8@tcxPyIm!~>rs&1k^~+6z%dlg9%6Fgj;=dUdesCW$ZnrYvQGE>&XRk? z6RqjaC}M~RWRk$%g@szj4k?=pt@WwJlzb#DE{1o$!V2xO%H))AX|mdLsl|_8%^GO8 z3X3W*M7!WJf)C5#Xzf%{#a!?wZPYqdvtIaDfa|h@i-5$$Cpi5*aw;_@t?%!Fe0IS& zRnvzhl6}ei?}5rw^}@zIwyZ{izP6p{z~4&+@kq1omHTT0Tm+4G5BF+E5RVs$ata*c zmQ&0@W{;n2ygXzV`hw8r9_ccy+znCckof+c| zz>0>CNdw^D5)so#s1^W{0pK8rDAasluNC`kY&ht+BK+am+59XH6Sv-M*5GAu|iq5d~@FPd&rBf9T_eYBFms>+- zJ)j8e<$;uBiE_1J3oj`onIN5no|oQ!RiN2bp;S<5ZSi#3;|?3ULE&;Ado%?xJl*FLLf6l@IjJaI9p zIee!nBu`twCjbntbVVxcW?qv!ko2w*aCd zX6Aa@OU-l2)B+0cXCF+Nb1_$Fve1qdLtM8kEzmN*vg1I(tz4LA%2Mky+wsKBl#o{C z>p@W6_P!?ZEDz(*9$*U|WV_AmwY)ZD4P0_-)Q9MuGHu%4sT3m7cD^m+V~CfyzLaU9 zSIg<`AQ)i1*w*odrlATkfbBeh?rOqbH+?UCm>AjIX`$-Z>Nlub1xOIRcLq+Y<|;QU zsTE)dIt4asHq8Y3RRX85F#8|OiXRm zyMhInM|bE=qxJx)CBo?DNJKUUOiDJ94cZM6k5P&MOl61jy`0rebY|qlU75i2oSbUh z)ihl>RjpQ={iYhS1Wu#_Xl=NJ1h#|8L7U;=6w_jmnfH!N9k6%(k`*1=vVTkZ%H?a7 z$T4@Z`5Z`_syfjZkqA(kXd?jhN_<9XOB#eKp~2`UE0>ZP&Td}&Oax!d#{xnQMnqRG z#m~oHOG$v8$>M(LT}m#iZZK)@Ub8fe9DH#V)RwqEb=P>$D$r!CwLg@Ap|$ z?bLema~m3bY3BjjN>c>UL=qG|gLAuXb zpwLqFAE``BCyL=28v$Klw1Xnp$`u+KS$cZ92U$5eo?>oTI@!C>?Y*rDszufecMn8s z_@=9u3q2+!2<%e*EmbEa$iv1nCA=$jZp$*sI>;vFe@uOOT$0Q8KOj7y65@)P3GP-d zxZ#F^`;rT}-?ZFtO9TR3xSF_SX5KWjRU<1)D=SNLNlh&)?Pgk;`$A>v?P^+<+STOu z`1$_x{GI*$-5q_rBlMK@oHFe*3-YLmxq_^Gmjg>) zo*TZ-``#PxKb7tg;6?kPGT=QRcJvpRX?r{t`};!Gsy_vJ+57Dk_&9jfujELHjjh5c z5QyLqPTSAkLF@shy*WBf7fc&Dhxz(=xsdz9t|HNYWF9X8dwjX9@=im0A6V*sGx}-% zr*L+JytyBV-L3&{0pRZ;QQZF6+6)kxz{@xW{vj;BaP@ZUvn|@|A<;kILB5&w5coD_ z^(_&*&Fx%+BS4|#LrMR?_}l5LeJ|g|K~y!Ms&Nnu%1*O)>QWm4i-OCl63msA73A!& zShZJ%tOb}F0it$@48YXv0)scj+`j!q2w5_LsFn&rDJW>zY1p&IQeu4(`4CGd7{tjE zYZvL@@VeY|*&)&{RSi*BVL7rmGG#_~fpHvM$XJIAz!Cz3j&CkZdqCh4Obt0HKuS&{ z&dTm+`0-tK7h?shWZ10|r3@Dj58u~UiD{CLV+v!)GQr0+b!eCd&j#&6htxsXaEehv zKK_Lm!mzh@yOgq`Sc>YBg~B>uPQ9JXmNj)bG(=9_iOScY#O)PrQ%1vKl&*5}htQTi z8*!7*yMr~AH&beJsF_3;R}DKD*$uOO(mW1%;*f^{*+{4D{BBv8L@-Kh zX(->?3ay4rLJK6CG2E3f+y<4HYr#bt8<$vrU*cKzdfTPSz@8k>6Jwhyf_%;3h`s-x| zkh?O~t#*_E^u?t0Nm^u_0FD{t`N;OIOs46)!%P5|4XK#4_^T_z-ZWqbruaxvhTUHz z@}k1!loaABy9|i8AeGII9ImHjAF^fbS)N>GFhyrP)UE)5BjmE)`MB1^cr%8$Y~k0} zmr8+&w-tf-V+jwZz&?!KF8tfYP|1an&KIu6=f!g00u@ZMPg-9c&sCA1@yVORNn0Fg z^}r|}o*4#i1WIkLf3+Qp1d{A!4o(1HlZ1c}>`_L4h5?ZLR=Cly+Pb=V4nqQ9hc-_E z(eBHWb$mm5=QX8bfU{^@*83rRM}!7a>8e_8S!^09CZQZSIA0JMzJOk|b=DaM9$k+7 z^gJpJL_)(}V`6APX+{i1*qdx~kRgKr4rGV0U?Y>P5yQ}WR`di*WrKDitmuDg8*^g@G+0uXPRxzk?)!Z+d?A%{_savFNMYNqz}90@c{kZR9Ha^BI^TU>t&-e&6z(v{ zJXrxUEHX)>|;ogY4{5KB(X9&s)gtd$y$6`b5+} z*@6wstlgGUHQa(_61ntZ0;~PKywQ^ zsA*^W^02x^$Md@NUmbt#x<CLdw=tkJ z=!eYqW$~l3IdQv~hZ2Y{%k{UXEPrERM-y#TCB8s5j!l2Q3=wCDH^p}14)HvD#>vyF zp9V9!AFxDuy$}=gY8yma;(1PySbVezC5wk)#$PdKCMHHMw6w%VF){P6rbfl$iSY}U zTbfPnoacT2Lp34~K!0CFefccC_T=>#ZbSUzmyEzU(RS12oasT-Vqjj57Eg|Jxqbm$ zJTwCD`~QRp;bHbhJ5xwWS-05M=ieNLc|kkH{qMRq75fptRFt8MlYmEWn~Yd}ngS_a z6?ELMU)S34+Zro($N7p_MjaAHPmG1o7!mPI0yOPK7>&SSMbM+^^&}k%NJ{%%pI+ibK;s2Z6C;HQTx)`Ml9URIRJNK7U9AWDG4pGvpUDP& zJ!$$%Zj4OOT(2S5hJV3{o-I`&3voU{_2&VM?xOADuR@@@Yo;8?=j{|^rFl;ysoeOe zFfNbd5PQTewA0$UG*UrQXL?WLYB^GmIINV3tmd+(k1S+IiyY%34n+rArUPbWhyHHK zSF1#JxFQ(Y!$^Y9>GTt$Ye=D$rd%2Qvo`L=uoQaRWzJt=M@LhMS8y4dJGg&A$vPA!57+Vi@o}Q$6O_? zBefA+{V4dnD)pS&SS6380Zra$jC)sTICJ0Z*a`z9@;9=PB3>W6vIUstd|5e$kK5jyBEsC2D|IY9x zovKOuTwgrV6T{88YRbW#oeBC~7^{e38 zj7%$j-$E^=sdkgxK`uKzd%mK3us<~W^z5ZxwPNa9yT-4~GviueqiSMQ`$ysI3b~Yk z|B?#lJ{TFNe7~$$Qu^PKi<)Dh!s5APnD7#DhF;f`GF@v>sErX_Gy#^bgYNDQ4fvx_w%;WbFAqL?71)Rf_jiu6$cg4)-5TUoIyv z{-IVJevsx(8tZY2dMr#W2~9{!`Oe6jPvssI>(xihHdE62!*V7^z{cE0Q%=-VPcvfn z>=cTq$f=80#>a&g^OUOx&ua;8+4l7;r=uR6Cx9=P=BY=;YNbmOZ8Wfvio#r#~AB*)tQ`5Xm!=e_kr+@VJ z)LE^5>>n2A@r9aY;YIT)NT>cqdYzR_VaEjsPHAprv7BM|*AhOXydHrcd1Y6ob*a`8 zPSF#op6W|}aBkW_ZA#RQS}sf%npf5!$#Dj~x5mJo2%8^EPmhcXXVu(-s|B8ZvM3?BZ+j%gWX{Nx4W|}2i%S7o-PPN@ZC#$g-GI&M|m&1vUmHGLVu%MP|YHB8F3Q38` zh#8;APGmD=qS>r*EQiipEU#b1=R7erH9BK|(eZ4FiHS*1k9&?O4lH~ZO|;|bNj#G$ zGB{)RpnovNpb+9;#^83t9%Jy=(%#vQ=ccfkPte>rdWuXG^J17N*?^rS!{kSC6XMzY zuj_xjgQrH%a-&jpETs6xlI(3m%|yI>>c&cxT!8=NE4V&}&WT7#k>l@a%AT5yrh5^2 z@oUL?cHC}8%lF^hKO>W3Ff1-B^3dDJSRgi~L{jec=R_9W8hhO);RdUQ8BH||G$-;ru7}%&-*=g7=A0gkpNMgnhVu z2kXZuK_Prz+5UkuWT~y%2t3Ny9}wO>89~zJf zzDZ-q5Cj|xmxU|972#C4J=_WI45z{O!TsTP1*Rx}QE5LJt-i|8xD+E-=wO_a(`F{eaiuQ_5 ziYQQuvm#A#pQ68FfT%J~U}`G=e{_4Q6V;hYqY^APsQak?)BsgcrG=?!R^0!Qo$Q?} z9HHOrY4-a#0l_h_tPWxYU2neDa-%VZXXylScA`1$bMkizC{a9r*0Fp%)K)@EcK2=%aL>U?4 zzc0WI-4BW-Zc!^iv9SNs3OE}11`+^muFUzY4)AJMBPpu{xs;ozUfzLMV-#$RC+4;+Q*GI5D*QAe%u#x?CGbwzJ+X zqPc-WWT6m!rEAx~CV|bd2@5q-rR9SP?t_xOtDZUU0~Lg5UAin(3H~1%0WErQ^8z>m zTj`=H9#lM`o)zv)8WW_0zT*uLzBdh>7{1v32NUik?lQQNh!TYOBhX z3QH*4Olk)KoDAZMa1pkc)=#WuFQM|?y7j8#=9JF|4_h{+uEBGiy0o@1mGo(aQvU(7 zdfpFoq30|88pgb8dFVK~HGKn??eIin3v)H{qg;vaTayQz?@|RGFL&QM^hM?3{!!~k zfBpyLxjfg|!rX|NQ92tqNNPx4!JPDdZFraYRZVzs((ZA_CN#^wQ+*3_CE|nZseNyZ z?;rjqdEC8c*Uk8UwqN*T#HyM93vtx>nf4audh}<-GXd|-A13|W_Lo<$!JWi~otF+w z*tQ+{Es^8+RMSTPqxf3XC;8KU?@a5s%do%qY;oOA_;*KH$e2w_+B))>>kHkg*je1U zpdpLKlvSA`pFX23987$VwTQnQHbrsC%=(a#xa+R64L}^T`TO-NtPD&FiQf z;&%8*!}JVN!mG2+wkq+UBmThgH9$jU%-t@L4pR$vYIAG={;*|`TuH&l_d8(=qOZr) zjhv+4(K$TmmX|PEe@Sf=;y3Q#x?X_YY-=XBSopj)p<0WW(2lN@86WVVmnrK zDQU7He(y6KkLB&Iq_Twu34l!{;8}twvRT<_h8nYlk{{HIDW}){+UAAk#~Q~Rv|H$2 z`2@Ix@;>H;aEn1N%xk3FFUD+yy=fmRF7 zlR5GqoKt4z{T0O~Mo8i(5Z`Mw?_q35cDI(C?p9B%mw`P!$#g^EE)jTO@L1J|@TDF4 zvFsUbtzb3HD$TM5Esa-zUYCx$?nW@FEF1X}F2+M*LPWtU!NT=Vz-DpEJJQ(iVKwOU zd0jgICQb@`H(A&0hSd3L=Y{iDA7V80lK%+=zI85LS!8OKrHp?4j$i%)Xn*PYXU&CF zR`cKS75}y5g+Q>8%VN?m-=B7?XXgn2j50{G#2JgQO8n@|;we*!{z)X9bJMyX&nW9n zj`si*dQu}pO8|SO%pyAEP!eGH%T5S3MRQv&`mD48yY9&7 z>SUx{;Hh2o+J-D;3td3 zbLn-qdz^sX*5W-8BZib3?hOh2f&njYw)2kn+Aa10 z4YlquQu(c~JoP+nDt&Z}adN#`vma1=tfd|RHaKuo$3i1Tn$O_k7>b)Y^O-iaC675-J#8~;35;;IChf4)9C>!zm%kbWjFaPne?N#NKC*#- zOdY}bH0U?*>)p!R8#W`t1*H{mfAtsNu20~FzpROay*BZgieg+ z#j)swCj);w!BG4e7&f5&|ZjcVybvnt4DQl;VziC0amtY-Hzz z#W9n@qEb^c(VZ~^um@2|ty0lp12)g#D+yuI$`@Uen0r%TSN5Cb0?@8BAsU74+;YVi z0$OGSJxlW9^n`_i61WZ^J1HUhma$Z~BSV)K{$Y9gW9&EZG~iT9nlKoSa@AKNf^3t= zJc01^{Elgv-RfO!v0;9m2ub+nk8Y!u2;&e9b&o`LgzwI&2y;P(N>UWbJN)>aPXV5u z?tVM2-7$=S9R3hj;MmFLgXiCS+#86L;zn>U?plE>2`r=8jEKrVtt9muv`zQapEg*z zwo60qNCWI-qROAqeUJpaXQ1?dWlTb%((?vsn~sCKV^#PB*;VT7C2gA%6d0MjJrekWUVb+X8 zdb_s0>UPmj=?>GE$f}m~D2!t)h5km2ChPsfx=)DY>-R=J<9t7y6mpn#?K;Y(O(J2a zzAPdV!a?nclmb#<2dbKF2&y=A3Z*6azWj*_{8ij_wd5XdPt~nE_XX0;#WLsh5{~-?51H&jx`m%6gWRN%qd{gW2c6TwGDTB#z3?ajkM`-KGw}zyDo9) zftNJgZ^p&rIIx#Gt5p{3X?ow?+RI{H&gOoNt~Z!@aTyr1xgYCec+-ex3EVc^=TJ8L zUI*!GKJWMA=7BVl|G{?_^I>i~2x9?7X9HCYxwd1H-X2Q#Zd75eVBI09z++St3jKWZWzPt6-md4lM=1 z;#}igs4$q7#B{N`6_fy(rhdO24xz$=A@tGX*Bt{O63#bv4#Nb25D6EXTmx!~H56;C z6d-U=u0U*}pSEBpk|6S+r9rqjh3B_S>(Ma~X4suhc}+^rKkU7EHRv$&L*YNBq(J{c z=_^miFh~DCXdw~G-W%Aa0e445(!5gM7a2#NNqhgxzgNYIUOwK={`S6q;GF&Z>|IgE z3jYM>AaJIlx~@IqNeEU05MS0&wt33qKbXhsC}0(Es)AVfHveN4fth^0#EPYCtj}3J z&=-~PS_|}J4e`1wf%cE3!rHmNyp2u5Y9GRuT|IpqX2O(BK2&Toe=K?1`55SbKDcS- zl%6@__7Luo+GFq+` zaWHN1m#%#*zl{InsJ2#Fl@xvIfRL#DmJdn+Y7I$@$Tvk{U&kgF*|GnlwX zUS@2VlnrJo4QU4+k9rCT@wwx0E!n<-rj;9^?=^n_`k1xN|2tPED4Ncc_q_CF-9Ijg zBkPjA%`g46Rcs$YmYooNVBh+YEUv4)bp$ghf)f)R$&tOgpfvA=;@Gq87)sE|gYQy3 zqEQSv`=r<;Ut|Bz&;3T7B8&UJmOA(}$#}Dp)t#cFtY*ifWp7=(aOSwEocsFNQ2{q0 zB76~Am1#H0)VcJowyw+LW!~~Ofrh_S1cM!SmmVJ*&pRrbG%aAJZYQ#pCy&V`$8sX< zydZ{#MsQAtII7e8t`VCXokV9DaH668!PQ?4?E|+>Ja7EAFA1(k=0L;}EBXYTNT8b) zqZherSA!t!IOQ@THY&=%%n)X56wqXTBOyxHNGnF^!wN#fDBjePq{NR+WEya%@_;iZ z`wiB35#NZFig~P;Is^?z7Ccy&XCSN8xzZY)EWbo(3W!;Bb#$yIBoYV!D^UYGE;2<1 z8`#+sY;E^Vc6(l7zYE*de&|Zu`x7i0_iZu?p?FI}2J-X3Wk`;WwWs@!KPJY+VplJB zZ&w3nHv@ksFJl8g4^Iy>e>YzPgP?|@{F|l-Kt3Fh>s~BtUB%=BST%D)1r5NgC8^2= z$DxRfR)LA{t+9#_g4)tMLmRu~nifgdl#@j}@m2;ob)TYMyhs^ppE7z>UxX~DBB3%a z)1OC9Nq7>BeBqE_+)gV_@d452miiOvZXIpikb7@OK})XVC!=@7Ir=;#gdfDb}^vIWj&;1Bf^* zX_+)s-db_TN5;JWTuI&RB{twnC^B2}UQpl|BP|JHv&`O>OCF{VWv~Fvq;`QX>^~Ji z(rqkHp6*^To-?kUHReX19sMp68$#W6BJZm-(8mC_a59kk7eE<)xVPuHJ@FvY*}E(7 zoV|u=za8o?qy!k{=|do;&=}dRfRDVQvWn_funMoPsiW5cmUbH$8JmSdj=BBLq?}n0 zYr5A@*((Lk3hzlgA^&`H4S8*%eU-SFzS!Lmc>##%kHV_GPo_kGUwW|0sH$UcDRtf9 zC-e%QQ`Y&HY4T3*DDeM|OkQdhUs5tCC7bMb4Zu$k?0>9?#Ey(#n-x@OrpSW-)ZP)t z1Y<>F#KVV8r(J&jqWmM_W9enGllaRmC3`=)ohz8|QA`qx1^Gu>j}M=F0Qz}NtE%5? zuDDy-R{e1LEwekLQ+(az(z(Ju)T0n>Mh#sL=$4Yu)Qr_#qR41b|DgW*+0%WU=DN1ZWdQdRT8P6%ZXPF*7_*LYF({^W;#C; z(2ip9j72-9V)$r~S#q~`Y+~na+f(7w!5saxjP^Dd*K<_`5t zao>y*7;)i=bpdpBdCAwd#424(IN&MfZRbzL{7B9OXoZ`FKUDIHXXgfZ0ud~)Q6NY) zqzZ3~^YhWT+M@RYu>cbk`~2t@~#oE{ful5rh%kPzmrXLn!Wf*TDi7gp-nx~YwInT`J_ zg}%iVp6?5*?9m=Fti`oS${zz19r0OKI=40CK!gIu$!%x3|56&5=}(P4<%(dRbqP+wPEZO;_MxTCYml?>0ZYJE53KCsIbN| z8f-&FefMQ3LN8 zsH1_}!ul?1!ckhN7Sl;KOqm~)*vyPzZ&K{n4hvi>pE@Twc)s?%#&aspub|S<}u{mv=zT2TvSzXdbS3FYbT&H z!@!%I%iBv`aW!4>=XiVCjmFn--on$p9SXNA%sTwX7(~8kvj#WRJYB-V)erozu-d8H zN$}|m$2|`AcCL8QDN1=lPz(6m{Yg0GNrlFR6_0eVho-fvrbRWhr-Y5*`zONN8=f+R zr)O8fajBX470uH#-se+r)g7E3ZQU*iHIsV@7TVF+^-A2;jpJ+IK~v_SI{yT=uRX&F zOXQ!5pAqi!V0S{)-%-M=D%zXPFD8p{&)dm3>Vg&LL2Yp6>*@~O5YECw)(ZkIyf0^I zjLCW-l36k)I@rA=%A_YaCr2~G)Jzf^-~1bf#G4B4UqJ8ro;u=r}G2lidc_q^SkS z`$q@4TPoAD_YN~1vfMo%1`xyolbj!6rDooK#4t0@0aFY8VCSr}R(=u3EPmd(8ZBuQ zr#JR{rQvES&)A6M63^(uc=C_#FjbKIPmNDLX|5E*;=pp~ zMNwzNb89AHUn40NO3d?F9J!}of(?Th=B#$B=$-QF3Qul2=Zng+1tv<|ctn1p4oP5~ zoR}r>i?sH>;2+3h_%MB9yl)&k5ffo&VrcPrj81p^ZBb!F8fJ~rjf}(iR&c}VNI!F9 zyoqU~=d6QS%K3)sTeni?*uRWShjeb;aFa9L#AI}n)eR2+P z_v{dmcIeOVug`Jdk)j5JQ*WA2IO|%fxPEdmvhY1DY&6|8@}mRstgn0T_xlqS@lo3e zT9mW|d?Je(&3`D79{ZPjlxHMS*T`@fVqy&X92&4Ld)MMl>7DmnaMn$kjD1|$7;KNf zFYT-R0&k+o-3i_w*l5C^gezYdZPHDlZz_+?)Ms8uDT5q8P^KICm=&X+yVIje*V$`4 zFiF>x5}<5U4|VlPRR*#xucLPZ&N|;8NpbhD)7@^23Q|%A5uLD9sYG#JTu6aH9It#T zbU?s5>;B=^f85uF5xSiPp-*xy2r~0}?9H+gsZU1*Spt9JJ`Rf|xTbO{loeJ2T?w#> zigz|j>HTXLo546A)?y?gWQV4lQ!IKuqRUFgb;>zm93GpuJUw)!+EHLnz%#JocxLP& zX)v-ZDbSq0(;&`B$-J)aMfqTaD1Aat(TFH*7`+%~6lRWUB?l?^?PP^t*`wX=c>Ja^D)p<>ql;?Po-?k8O(J--O% z)d^h%|NDa!nEBRoo^A_f70LH6{tfta1d>dyp1Gwy7YIukLFv#?StX^6AU!cPKDK*}kK z#H7j~zSGEU+gN^Hr=U|)r9oEEIpAW(5OkVYee>O`E&-*S&8Hs!og^40Fe{S;T8&p} zZIs{;+PA;J;Vax$oh8VU*gdEu$QoSX9nKK%!q@$V>)#W+@dU0in2WZ3nKd0cJRqD> zSgrMX8K`)L>#MU3iFuEn2d?Q;8Q&f)lQR`4W&nY_%5cgeZC(?sT&wynT&+A=S(#DE z>s!8C99{^riM~$w#b*pMGL=pa;ug7I`3;qWy12>f5J3N*n0q#0fqAuGYV%F;xJAqjeSpdkf!SkVMGfN}eOzXNU_1r+{6uoenb$z+1_V}?QZ`y# z@uK<$Y|0-{owS^vtg}^6n=q@#XaT~+8~Xjw45h!FRvCRW0Q#jKT&+i|67yAbwM_v~ z73A7k0{pv)m86RUM#Z6g;oeOr2tsD)On*A}x?$VH_I#H&^}t)| z3VCt)Ux z9NJXKyQ*pks@qk2KEI#aGs7Qfy|y%7w3pPkCTiK3Ygi6_(54E&4Nr&vp!RV~diAc; zZ$Z-OB(@XI)#%o(qy2viNf)q`kyaM$mN!Np2)&^&dt`J*b=#{v^fn^Eu>KlyUs-VQ zd_NF$GpVa?JiFdh89hYCiu^+5S(#iNCjDWOKKRiuq?X8XT0 zr;7-vv2{^kkZg~w>1o7Y3riUX=OKu&HO$O; zAhfqD=5zTpwH^J|v!@jP=e~T$C^gqN?Jkxer+RTI)Dlt zqiTWZVC!zP7tdcEoJgLW|JpX2IBuyF%*Olx26V_}e*YSc3u++U>8}>wF_aE|Q2t1m z5*4ad2CjeQ19~VmLlIUmHcm2XxHo-w1Fzrs10Y>KIflktZccr28YSF4-ap7vlVk$* zhQA-kYPxzS|JN!8^E!d~oBD2<)JPuVA(8sF&O}xDU46LlJ)~Nk__3L#S zX+`S?(4n)I%I!>9Ob3cxVph6**sF%wv5!=L2+|Eh0rfuaeKVu{a^55~lU;fd=)Ncw z`rS~!VzQXZ9}8H*%nNGHj=usRTfv5|;O9%d=)Tk^r1m31!?!Q0G4Hw|QqBEuDl_vc zMu3;O{eq^tk&Oi6G@uNToSpuXxiru)Vwbq=bocWL5BS$|wc2HS8M3z{{Ab2jw;!eY z#0FmbSt;~$>2z}0SUd&%-b!UWUw<1ttFw&_gmUV#{4xjG#OpWYD@*@AF8;Uy~cu8oWMj!!-iTX#Xq zSIoGnw{5YRUNy(41 z>kEsMMh7mxR-uf)AeL;Z7=p^VLTY_8vdXxG8>>Ny;rs3tPGWk$C}1A#zM2l#!n8n z3Z_5(05FMN0V0$PI=LDXChU!QM_HQD`n-YF$|d(Ue!vt7HsvgXL)fNXoa9`lr1d?8RY31jS+@pp%qrYu6bo*fd>p8$ThP33U8Y&=^YO@a|#8_ z77`yR;*DrOn}ATftu7dr{;jw1DsC;UQF{^SXA)MV!DB&a_*Y;GUnW8szElWRxxY&p zK+Xv?Rqw=SoR`K(hYP-u45%5E+m?Xt#(1cTAfpy50=%UA^P2=2t=qx;yS9EH4&SXw z)0mqWo17WYKMxS`gXYLoYFTf+*|B*C1!^j_ZzfOxT5(4`|HEsrgc$}bz`?#NSfdqs zFRhJ)KHv|dU#-bN;$?ujdGS5?=79v3#E+0_v2LIq@XkT8UqO(8?c?^u#Oud)U}t&V-sOr;vL%oW^5K$sCg_?67U~eMHeGIH1e7JUD zB(yj)S9vLDRR`rFsK^KgT;!GNiGs-oE18FC)b4jt?uia6RjBmcDjcU|7@p@{oNs9m zNcSaY-dl5NE}b4GTUQ8bS5EmC*Os{=Lj|=BXHrWCmgh311+~fNP<;*9#Iqv9NFZ?@ z!{k*n%4TheK+{G7H6w<-8v0-)ZaAVs?>w+fUQ8ps^_~g`=2R;e-=)Wj^hx9SLnA-D zGsosHCJ4;V=j9qM*8*TtckBw8S2O>!V$~4!Sh(yarY1K5lM@mLbXQcu&ii)G0w5gC@l&%&5O_bW?t@2Ga;6}L*@c(@hD}C$cFvSo( zm?OPd48&3HD>o$c-Oj53`b&+p0v{AkOwOzTbUg798BoBJk@qiZyk_gk+)v~_ZF6#Y z1>~WQ&mGe;>Zxk$rL}-|Y51@%y>a!^Bi(tRq3H*ZX%sg~5|dif0e=XpkN*0H(Q@*? zZ8vVffjBV`s#meMOY5(S>>ZN5_KH0k8ktgB&Je}!6Oi4-N>G1-0j!!T%-@}!+gLj|O64S84_)%ynve@x~mA+gb(gg3A zN9S&AH->a0t?GM;DispqYTf>ws?(>;Pzn0r(<8ut6ay6-W}@ha5fOX5UPuFM2&yPM zDiKG@dY_p%|DIHlS{?}@B5lGAC1uz=j$GJfD0VcEqeX|XHZBSxjgy$ssqE+|`ai2s zbZhV82O+LVDlot%qQc^G7}eD`di3%zMX?Ggrw5Ge!eMhV(ssgJ2CgoT~N-< zCZx;w76;So8~iIyt&Vtkkf z+|lygkUIK}{nybbruBE*`$qd^b9vm;5J$jjwK$X$dm|y5U$gpfRP7sN)?z0qK|Q#e zi*%bSIF?4c@DvU#E)9IC&1C_m7ov-+yxJ)A_+*n0d+R>w8Cy2NjyU@Jd`~QL?(p+h zfLzpcB4m5GiPiRLOBW-vu$%T!SMLCVBLM<93_pcHzpb>3DN)v;Q5+VROOH+tjXY|= zqbC{|E32oiE+oY>Jh+D#he8umOie-?v73BHiQRI-co-a+#2g+R?GRlhc<|I<$j6t0 z)%7+Bd*Fz74=%KAW3WoK!MhfqjFQ|=Aj+gNp0#sBTf3G3%RUC33ma>ja4dx7;9#1n zQ9-#~t7fjsO`33cBKfGr+sQ&y3?m}eE)T8N(sF7ho)LWvoBq5t_fE%aw|oWFz&|yP zyZ8|`m8qvlrCBl4wFSRJ)M5MKbJl>1yQj0H2BJ~z#FEkg;-Q2M>MU{rsdp>>-cE*k zvnt9_y{UiT0gA;(<@7o*RTvKm5(#BukuUUyvLs5vA8HGeqQ^wlXI4}d1Bao7Gl zHfS=g6$t&?_Bb;8`{zq1f}mK~AJ81;Ti>jI5A82ry?9ZMt`yrz7b^f4=Q0xEiMvB92ZGxej*jAPwsww8vig65s85oC@ICs$i_M=hob?llng zB(KoSF@UH;Ao?~Nv326k{~-GQ3%+5g6Ifi)_QDz_a*CU+B`9(22!l zt*@SO(0XsE8=~~l?8*d@a3UUis0$J~ln{3Nz`7zA%kY873WDY2TBM&0%ec8g=xqJHTuWJQ8jKKvLbj(ysbH%T3!9+WByVO3}%0IsxX$MnlN-L^W2DEkr zP4DLm7vx-a{>p7Wqmnii(f33Ruew_WZ;JY}+#B<3kzn`hb;izFK<`$HGRpFg)TEf0 zc!=$k_#4y%f<#MH+^&pQA99oZ3wzi`ZB0i5qG>mG5uq{(U6{J473S#cALiv>!@+21 zhkUkIac$Rvo^_jOzM~_$9sa|smOXeiHiYC=iEZv&T4 zP6V=pwCE~(PNnM7G|-jXA8QfoNPB~o!-|NOFN28-D^H|qZH*;7r7b$1V7_?!aP0kj zrc@Vdz13ZO)Z9g>!H&)}|5|gS2kylG>;qigpp?V}=d&B0qi!+ICT_moCv|FlLt{*h zC1Ug1pZ55Anfdwq(7tFpd)Ij`EjxwzxY#@H9n|IM{n?rQhbOyuCy<@J@_LuMw~J@0 zqny7^N&)WB4kC-ee8)EQlD#nB8?xD~r)NVEh^iH5{=04Jvn0aDRPhr;#=QjVUGn#{RGzGRfvn)(G=~qBQAeEk z16ta2E>h1up*WI}^UPg%!ujJZ#k;Yh=lY9?^xX8M4@d(f((n}O*L0B_4XKokMB)ly zzhJ+RcqEd5RR5K`fmAO=AT_)ZRp7lpNNpri2Z_{`=|Of&B9M9o$X(ueb$kf|X>=EX zBuW+)R}~|W#sx?d-D2J1Q%G|p(lS@+STPc5{X)X{I-s^{&U&|}>Mo%xq%b;}gBvY! zw<9nZ8Swx^*WiicgrSq`&g^%%$0&J~>b*yl3xbG@47#PK^r3IO5vRL>0R{x-#f7-p zpB@SnZN(~o2{q)=rsxDlpX6X4aA+W7o6>3yLK+|BqCyV_Nmky7>hjkX$KV3t9FL}_W8DR6?Qg~ z@uC@~neGny;UCSC4XPBFmulFKxo4kyUlQzL1rXi``Xxo>jV=iX*q4n`NrYCbW=G_E zd!?QCmgEBQRY}k*Rw%V{=-Z@}bc=IZ<8yzPe0S=2as=WoaVMK=(P4E*!+3iPSJ7bb zw{`jB34D4Io6e1@^W-pg82u?R%QYg_msOnj9G|*BK8BxQ_|$G}?~E=?Ns7A{GAg~h zbMhJRJjRjDHe3o-XSU)kf@lM8lWU{YNzfvxRg)e9iKKCiH2f8q(j1f1?4xLDS`r}I z&?j>_zBWJw6!~}B^CRB2K=S)rI=>7rK6-W&wxSDOWC|I*UKZhkzZBwrno87m0NBt(p>~7%GDp)R67Qu6W?u)aB$G zai<-H#;4~JL~n%-wVcY-m+HNC3T79Lle{SZY8}Xf4yUfZk-yQk{LrB5(15Jnx7gqN z4Oe@I9_z}dK-Yq8`$D2$QyMBDB6h6sZ4zkE%gZw=gYzOF+g5{wm9{oz=h*h%?A z_pj$1fs%9Y^Mx;$?;dq4aCZ~wr60`IY(Q0^E`2z@Klt+fFk0NYT7_u0$)7qc^~r$> z)goW^afr-=-8zgtMx*y9;Fn;!07BK&v|V`b_O8R$s>E=!JeWbD`Ufc5{O|NT82KwO zLnPmuR400rCXITTdc^%3=G~(`y{kq%>u&jCqUIITGu!oQX>YlH`Z$s9U8sbW%)fUJ z))ix3NK3>*Ev%3|f6C|rEvLTvs#vRhjZz+@!rQ_?hso!Y!3t@L=MW=UlkS&y8b`e4cRZdJvb!@l+;g=%6IuT_{+VO*V(*9@6$Mva!3LI9Y=|zFUE7E*=vw%` z15U{OJU-8!&-Xlk{LcA(=bR*ySKhbGotZm#Caq({U9-`Q%el9nozLq?zETx+fPQ_# z`G&RejIVimuTM?hz2)SYp$5tFtjMNEzxOz*Iy8?NiEnYtc@`Fa)as$l%d-X|?N{HY zEfnuCc<8~vj~OKCOl3J)PHT5E3mUy4f8J^SzE2F?0bgBZ#ln}R3)R+aaDJM)kTsrl zS!6K=f0F!n2VSuM8Dlo1K3eGsA)+%KD%TBf!u>3T;xmla9fs~FT?!YZ3O%aLKHbL0 z;q!L4<<52sF>~5yAC(yp>Qts=?}TfNG}qh`U*$P^LkN@dSSdu?U7&5NYM#-%taN17 z6btQ^FiN6KLg)wP^&#k&!$21<_d2^>I>JlKDVf)y|aJM8g+?5Bqnzpy4f{GoAsthH38ou zZrxz)uy)bniS@xr?lr>Tdj*^27c(y6&23(4VphY1gS)nx>z5}m#@46J(ai5vRx2uY z>4o1ZEHNoL=4aE!3s|qV@st$t0@?vYh(3$A%xjBH%g;;lAjwd;rt>hD=c__@Q!}9 z*_0CDRTSjXQ5imuGGTTVKYLWj;)Q{M(~syk*wIG$8@IZvmu|Ux>(0%20+Wx5F^ht} z%VqZTyo-6}(rYK5uqt;)U;&DUdPfcdI(e3E@oyUxB+KsbN$B(Qoj(9eHn8ra>g|&`d zX@Y~|-CDS}>Uo>6?(pB5C~6uSdM_+LM{YAy7>P|-Vp(mZeMJwy=HX=e{S4ih!=PB< zg{rNivlPo#zYuc-L+~4BF6YiqaKCm~Bi8h+UW)j8pxTiK&_Xc@3XdKg>CPJ2p|Q{^ zO9SdZp}mu9LU5y?perx*C;@WoxI5OLpp5?XG}77=n{bJ?K2W&Yvs%roY=YT}?{k<= zRg>woV&>Bom02f4uhMZNy5(N(p0%{7Wuhi?^UkQu6tB7Xn+TDsztA?o!M5n({0YaE zmv_>q7G+GVwVY#gU_0K#6Gf&k+RQgtk9|?PMt!!|xXL(kb=`t_LRX{hPXxpiV}Hf3 z+frBso~Z_-=;?clCQskMplzj$6MUGwuSmeV%yBNXlS`ub;d?Pk0NyS4xn&chwueGc7nN(V=Qj{Kn#TIBS zNC=sO-=%h3Z_d5Ljz}}>!E{y{#hf4iRp)K?TCHO30uxTgdAy#h4s=s(`~-ga5I~WU`Oyiuez>7F+AjVSaS`^FFDw z)C$&D$thhHYn`m(Jlmsvv*Yr4RmPh86Rv729@1o9%&&nwj&| z@W=U^i!JeUID1Vf<4A5QT`R>wd%?N7O^e}@621}--|+ZIB5lROl~X-FoQybtug5p` z6)14KJ+?$;tT$;rZMXf2Y1z@D4tuSaw?-%ZO4$Td9BTY;!))%ewod?_$2OwUtLTdPsdiLc=ed- zr!VppdE>8yUHsLeD3)=rpxQ1*#0z7_-qUS*C75EUzFjvi<&i_ti;bGQ@Ps_o)y3)9 zmg2+?jjYrAc!A%v@ObUY+&zdZ_QR zmA1{+!4)qW>Mq#%)y;^Kfj5@X+*E~mXXBY#?iz->w=A#R?e*zTWf-5@da88!`IYLc z*y{V0+8U0xEiEmzZV~$X9XUPUBcMuehj630{tJK4Mz7scfbTsv>pd-98E+%IBSMwO^ zCCb8roq^Uhu>zaa%-1UtEmCb=XPUgJcn~MBiB^tJIcxD?x*#X#tu>9uO$kz@InDF* z=UY4Jt`$C$i@BtA(`M7X{iCf<-pgyuKQ`imO151rU0HM1i<UJQm#L zJ=E!;&Y-C>4u8&bUh|d0>Q);`RaeT}?6X7LM8ozkWuDU<^VSb$Djrk)&!~K9@OkDt zEm4`z%W~u|x;5w2<-)~stJD&_YA(HPxIAeeF9+8QQPxl;pIZHXa*xDsx3JuU4! zOGSao(qbv&Jcc2~5K~YXed2NQmNFHbtv*V@Q2|%crg5-$^h3imJXO}xxxSv3H%kjd z4AlarIcs&Rxd~lv#d5m*b~6JLx`I3VO>gt#-#8-Nge}xpq+eRMV`@IvPJ@A?*eWU8yQ;*P8s{nU?+G%z&uXdiO4UR*F(pl+Fny{9{eE}ZY0Yut1egii zroz5CMQ5dgZnEN(OG8ui4(t(HI3>G?=I9SGG&30MHO#;;#z^P*qeD}TZ#^+tu0!+7 zdSmLy&^8m%Rc@H?u*h3Tta*5RsH2W$h^SmsC#8OiRi@t>&JA~!OzQ(SX||(SldO*n zvkSF5wm7k7@$hRS&Q0dD9MrQPsid{@#0ZBI+M}u*EAyiFhSSA=I4NKo`Qcilt>~|v z>3)LtBA0by*VK^@6x~EQ6UWfG?oZo(J6CTtR%@JHRl~6oe7sJ$2i?~2fVt7ovh<3|2fm)Ayx}r|XVtCw-qvC28oyK6?kbu|TE}eeR%vMaY{9UszO#2ZaBs+DsnQ=UgxDPJqPY0RHzvr<&$vsTqf zO|Gw0u#tZO}i>k;fb~Zm$BIeWztyef9z zoxC>3E5G3M#57StqM6;Akv6*2$X4%7{G;}T{#Iig68L>q{L#0m7oL{rQMn4pWD)_BY;buUvKa0CjU=Tuyd=4zY-7%m8+H2Ma>RFFqa5xnnLcR+tK{aNCRW?uJKDs8B8U*nU~i`L?XX{F*y*Knt2cH$M2 zoGL3Pt~rp@=jL=eTs%K~G-WEIv9Isl&6y#U*)24j`f{!~n?|L!P~$?UxaigubjMdW zZa#2}nlV=Jc-<}mzvs7}mH&H{V9G1}VMnSXgcIutbzQ)akTl?}^!sdCD zEX}gH#bIjxxL@>A5_dP?!mHJ;!Ta4 zsefbQNsC83s!r_tdu}tuoWF48e6x`X0htrdq`dp|{r)j(F>9sp_?%G{g)DK<-(h|1 z#&6n-@cr3W=ZeluqAtfKZKZUx4t8o4IR9F3YNHBkbHu4L)FZtb-#_qU#Y+msqvI2X ziUO(+z4@}fS3GM)o(ijshEeI`b%rQ;vcV5dyQLg zwbr>O&%sBHhX0ymT~O~$F;+N}Iy%I?s)Bj#S!lYj*jCHV?ptt0c0zpR!&I?Kluq$i z%iP(fZNE0Hk}rN+U08AEJcF~+h1FnHxSu|)`-^`k)=gDD6;ob#D!D?(M_AL%u3dPw zdtvZ-#m|4uooCO-5s_^m8X!Q@2@b9`qAfADeLr z_d3=@5zRTVtZ#F+k1aJXWL8VMs&Qf5W}YCusqgE4Lv!VTDm?4Yx%+*#M@=nr{(jIp zJCYhS;XwAasjL+q;<@)vQ66t;s;(^VD6HPxX8m~TUwv7@lkZVgi#Nw-XAf1OPE=N$ z5x?`@-^-p|7ss`rvQIaJ1i!ie9=6TTy-Zr^jylB+#-~Q^O`iI9j@A>~ z&Kia&O)x7ujh|9Gd+^g~w_;X{SN6S@?&v#I+bpwPLhiJN@oV1IUeGyzgl`7?faJ^V;(pIeE>UNqwHRfbG>XRN3A|tk#?vz)w&V zRpiXe?a*4K)_mG+_XtkCAY-1G*%YoH+zh`tns+Mjy`GQ#r!miumErD+RA;eDm&3^w z*}|h+GegW7+~EfDaAaoLcjt$hK3!jkK!d@kTQG%i(*MeSzi=P6~g zg82fY)|O0xn%eGR`vo&c;J!xV_kTHcWzu9$kRXT?V^Jx#D24(*pRC zfs?cIgpKg%J#nIs&wYAucYM_NDCgEXFJl_}ZbIVz4PukTByL{S$`@Tz3xej%DO~x& zt-5gW(sG5oN!8`cm#>7cO;oR1y}GK(Ay3q`VdJJvCo5ibZQi_XJA8ehYsZdVyY|71 z+x`Ow4whQvO*(j`;l-)@dXKm*eSR&0S6{%F8+Kp2*4ip}@>B))lku1N;_`+khCNI^ z=T7XUHeMHglB=S&GUre#i@V_DqM*gA3MN%AUb4iT;`AW_CMt^57?^*4r9FYa=5=1kVn@%8TJG*2Gl7!-7>`8n^( zP>LmmYn5uzeoc+V^`Tw~7GDdhyVA<>q8@W}V=}uxxB9txQ)6rI9}&G8!g*ZI`Q5^_ zuKB~9X;xH$^Tau?4|{g3i97y8FnK(cR+-~_e#WR(7mtVzJNQy3Q@Q?XtYfK4S=^Hs zgQsoN$g?_Ol)`l}{U{TIAHjbtBTAzLxe7llMtAcar>@Y?kcdTX7 z_vB~K$I-ZfY)6`vQSj-L+z0G5RtbDphR5Q4t=sRI9IWXyTHtur?9ML_E?-f$9SXlz z?r8eNL)(+4#XX^ZD%1-WX@gd9$8C{oBv;XSEX z0pzU4NTfY}c05>I$*pmG`^LDnW;+*WSaNdc?~c<;6gMO;EP_q3s?v8Of8&)qLt2}M zy&`(Q<*A6z&l%%;ql&*}`{GWG+AH7GH)PAz{>nJV)q+e_-8Bb0=89$EAe1KA&vQmvbM3oHG?}w zd?u5r>UzSC$!)E&KV;kznEoYX%CLWx1KRY|; z)SDTPxQ)R}9&nFdJ9Xg70nYJ2?itH7uwU*gX}W*z-1*cE_fxrSJh<}#7xp{&v+Y-J zxjmL)qfJ_SK7W?O*`n_BqlfN1|8rh)`OCw92@+WbGu0A}FL17KxZJZ|CqfqQk+faN zRmi-L6Bfu#wM@O=oY_5dW@+i6tEaA<))j{a&5IGt%qtakFAQ5+4m+v??85hAA9bBv zx{bTL@3*)|cQ|_kxpyt^mTcGfeJJ3KilI5{OHQ@^z(Ev;le zbQ&!S7A#y?o3OHY)l-VI_`GNx^ci)B4yAT)JamNHQT5KHZ06bHzjYQo>4a|N$?sh1 zZ?N|UcJ}l*Z`Vk?KwCqnGj*QMn98*a);OK|O7T6{z=UHK$n{&7a71J&DxnP-vCq5P ze+b*s(y|1;p1F>#7AW>LGhyz#NnJmDxLWr{vAunb-6?3SaonIkIH4x3`yT{yD=jNm ztuhY|OWt6(j^-P;+H+cvFB{q-1=hrZ1uIruQcI7tWeZp<%fh_3!4Ef`zM05tH}P9Z zJN!zuW*9?b_!;gP2gsW`=E#vo$z$Wqo9zZ_G-^9nne}8u^HF7Io+XoU%IMv?=%Qsi zb@%ORKfgwNSC1f;b2ai7vLb?p^Yf0J^Ns9!)aejpHEdr2by$3GxZucwPfg7ood$w~ zVP)B>WhNZUIUDZ8uJ-e@_^|QIwcx9#nulGx$@ygQN%T&BguaQ!ZX5sju62PWf~tc@ zHat3BdFfK)o`)8l{QG_UolBh>8_n~(eTQGC|i2vi;nW0nSPde z^V2-5zkF(0?JdYrR5u(iYFBsWvbgr$>~p+Wwud(#ju@3$xl1cPv>k}j>Mac0VOAO6 zHL=o)Kg>H-9bU|xTe0nF5svsAeM+k3NVTvi^=vXO5i1u$?nb9^Y)_ zUYIV*6Xm5ZTJ%o$xJBN(3>@D<|r^b?YitkPLxD!w`W>; zs|MN-v7HQS7S+Gj#kfbC>g@CTozzEeCuW#fTZ!_ntyWAf5S?tU^Xkm&Uzr9^S&PErB*MgbcTG>nLRx`y46tCaf~jvjs-T`M_(P&OW$bW z`Sz2j8-5A)TR`x#X)9|VrK(LdsTx1USsW9+x%XE;Msf|q$|txfueSbnSZ{4iwAB?4 z)oF~WEejepidw_i^F)5;&RU(X-*{c~AlgU%7O^blfs&72gq57iONTsn#foRSH`eTQ zxxL6c!bPoHJ0ZC%L9V7KN2RZj0e@xno`d18F)^-LX(@|-6Rvk1GdtEp$84j~0`=4W zPhTr47^f$ssfs;Sde{ykzPG7cZIkW&^S@kpH1?*&>mG)U?t$?$Y%)Dws!WpC8sjvy zfzlFi!qajS|7?tj_x!O6svZ|KcV;IG)K<2~#rxV#cirJhH&{`hdjD^&?>lR}JzZjB z+}R^mT{R9rWuZ3F)Md(+Pb;y#?Hdzacw+<7 zf)isBtvT05@6K@do00io9^de&zrQ#(y`g7QT6aKlrfagwIPX}c=;r-8mxG$JHT-9B z*SXBZvU>E|ZRcI6)C`W=z;m$>jXUap^SDnmt(ey^W30ZNm+JLh(VdB=-QGi=2Jk<9 z&sgZ>`dTA-`iJx=<6vUdT$2%`Ha-G_h($v6|F;(5=YqabK*|x z(Ud>(qN3Br#!cV6sZcjxF)lefGr=(~Jv%G&ZRp17zj4McW^Z`(8H*(YSQqpFHTs=C=>2922N9Nkh ze7REPvw~R@vNl4}9P7zLC6`I1coSP#s%^AN# zB|AOcJM&#fO4V{+zH+`|epG1{_YYoNjDAFL-QfzA_Q)h&Utc5b8?MAMWf{r~1fe#Z zPz7aGLY4D<|GjU_P-cjn0+q&)#}$N34TfstyS@($U80>@!Q$=oGE{e?E3*_er=<0n z+*hXK43?anIYXJRXp|-3*sxObzr0bW4@n;@PgkUucAs=oWa90G#b@5IC~``Q8kUY+ z4wudD>+`8&IoDocehl_#F#`ot}*`NW^JWe?uqgeBjVsI|M#B}QO;Y1XFZ5YU9dGt*nT-6uy1Wo5tr_a=e^WKirVm zit`qWh?x|2-wJ-CAzQuykOp+g1QX0>{F-rSzHjz{bve3K+=TMK!dP{*C=g^w3o zQa4;UqJlyU*R1>8Q#gT11k*MWQ|LDE z=gXIAw(7*kLpq}hsvpQJZc;eN(9>)Dwr~zHk;NF>}_@H+xmyvdtZJFUjMFjri# zjm+I@BuHPbpwJs}R6|K+E5+mi@q#+TG}-vw*}?~E=NyzAiTxDSN?kd^k!l)s?ZE@$ z&axETG{8k)EnuduQt_!j-Vj46O{`G+xC-wvadnsfiW_SDs@BitXcTQK(Wmg5sX3I` z#v1A?Bm$|17V1aoc4?>12*%ME9u!lttsy?r7xN&f-yf$oa@fRby5?6*h?xj11Q%Qg zUz(wz@YUbzgGAciwhZDMPxN}p=DE45e2&Iu)rqrw1RD0dFSIWq^85+*oC3aa()Zsc zzOG@~=U5c&=4%s+mu!w!INJEs$%y&>nP!vSfjPIvDI^oyajvUsF0H=i%Rb{f`>mWh z?3B4mC%IK>--@-S5wmL6QJ9P#OpC=D6?$He;GLzM^X9#QjFK<`a0RN)%G-gd-sB|X>-Bs5i0N<1Qj(iWiyrogEna+H+kw#eVV%b zYi80xs>1OGuGwBCxw%oP`ARHLXWUhLfwq~uXu{d(RL}+3o!JL@VK} zy^pcFf>?rc7HLEj{nhs(*3!+5u*Gfj2rWvGiiXOGs5e)vHLd3g>4MRYqlB!y{G`3h z6{qR3a^z#RS^H9`4UGho8jy7TEB#N(ZjBW6p)-CpoGs65_?2&a@5GriY#mkCu%W8< zY+ZS6MV5evza}C-u-Pi=%KYk4rrN@fNxc@Mw1YL+hJslE9tyU%dWgpldFeb=ft-=D zf{>vw1k+MFwL;a!%F_?|OIITGN%*D-db8CRwl>p;6O~+< zbE=wmSsqrzh74cH;dAYlAISgIw?@;qRCVoa)kPVq;uS(B8>`@4OWVu2KvPy1(3lE* z_vDb?GtZfvG|~F0j5JeRRqK-RtPy(L<8r^KT%Qu1LN~B{I>xqbM4=%Qmlsa>%l9?0 z3!k1zZ|~MV zO`eLLHrpVZxyGV?l!F}IjM?e_>D{LX4Da=^xSyfFcH$&8cQdsP+fakN?|tK~8i-GH zmdhTB2GNV@-_$2w;A}ZRg+|Te>ubJ?ZgXEL4m0hu+Wog*>?PvBd~4O~ta0)WiM4cM zKc4WVud$O@jgK2n8AoiR5cM=pwf-bx3w1rgn6SwDdsve7mcu43gas{}(bv=07?4HG zpgTIw_tg%{>EbbrnEs-AB}TdWWTJp&)n0IMi0%chf})9bMD}T&k7V*~eGcs%SAR z1YT5b!mb&gh%XpZXI#~GWk#@Bx?AL*SbclfExQM2#rRs{C|ijllvfyj#(#TsF1`FT z<5pP}rWN^)VW2=YVI2H4rEUHQk+VsR$@M5U;d45z@mJcm0Bw9m?wyCUl?1MloICOK zsHRmnJJ}73XbCT87A=p|B8JjtCBME|opzJ+C7o7KqvX)O*}fpgcVj+b!*R;HUrC)g zj~bo46K75$o*Klk3u+U&udUu17i+gxaNpd2{&@kFIKkN8#n79txZwNe%bS@aXvCUs zDxuFZq7&DZ8dS6jXt*x-24zxuqWOWFpXMlznc4gN^9287haeg;OLs? zc)ics)0+%%gn`1TEpuVfi|mqpLp4CtT<*;E^Wf8%U|*p%@mjH{-brt$URxBdsk82SJ%ibU$hze;iVhu zs;4vG_Xe+wqvSA6naivTX-h4io@~fv?eZ~HnXh_igT?ndQ%luo3r-I4(4)S~)doX;S9o*O|i&Qka>~bXN2d7P#h2wKI%k8*!C7pZcNH#~k@u z5BZ1V-+#w%%a`EO8iVs#*Go)yDW*|^&leWG%^n--Bd6m)d9o<#QR0w>$?ILWaxAmt z5;C4;oAU4muRrnj7u{m!!W}yn`#<}vc+*XuYV_i`n{D@;_t>HszjN@$hO^I^Tj|(1 zQ#m$|c}dZ0$iwdS^YkJNo_FRSUzx~UG)&pfG0sCzXp&|UHh!nwFe1@IDWj#i#lvWi zw(syZx=O(cXpQWqrgYyu0gCCh>+f9-OwswAB1ix8W}xDV=d<$V(mW1M*pZxG=vYw} ze9S4986!upqz>nVWo+>x{iUmf4O~<@@dY=+&q5D(7lrm4HNLM{;fKyu5So`tk+mi z6K%qrrlm$N$?h9j{!Go~klaj_Rd$cwafM|H#4-Pj-q6ed>-kGenmO3EImcS`^|kqO z@V9WAL%ajZa>_!>QUZv>lmPGWfPf*vb)Bt!OGB5&ni77L@BkBiqQ-449(PSEsLn`9 zyVk0WbHnjb!0Qfut=@fq*VrEGBly(Z^n}Q0qo}<_)Sd^rlqljMr69}bW^i8U~JeoX$ zQ@%-PtmuPDK>AA8?d(*6EffP5^Lplv75)`^#yUpEBRmV-WzkKO^+pMnb ztWC60_Y)s+b+NXgx=RtFl;JLj}F+9&3XlE{{#4dh>X~ z@kJ|Rb{W!xkGZTP?A(`b+*sfQzwfeLw>x1>0iMqCpfL{_xD5@fI}!AmcbPDy7%FHV zKM=W+H(X)ErmZ7c+VI`2wBpIx&*a#2)8oer^wpW$7Rh%^snWTkTGkoKTfEMP$34ej zClN)eoh;7}y(~U+eAqGjJyQ<|9othPmDo%}N7llyLuo15FyE+ij2CuqA)9|rzSPrj z^~K*9TF1&Ye1?Ps9VmPh zHs0(#h8`z=6Y=CQ%y(?xgj?yav1R*LdttR4O#iFT&1g$)hQ0z$8HsVQ2IU?*&a0;0 z#P!>Gxjf&siE0&l1WAKwW=R=aRDEUE?AgZy{feix?6aXI>hBaRcb!|*IcjKxal zH~a7uv6oXsot-%&FvY9G*!o%u#yxjw<0IQ6MLk_kNiS3><9tW5Cs#Xmb6v2=CQ(M` z%Fs!xMtm~J6T66_Gc)Z?UwY*f1#pTs$F|&p&n*O1Q`+8?-ep@S`YcqOBwt=qDZV*6 zwkvO#c25;=QuxC(m7?WtR(4C?roUTQT&XzH$Aw~Lt%xy-_b6}Lh+)G! zhgCGXw0`KG;bUiCE8oU``)sv1YlO`>xjlLf_vw#|eC&rg@279rvPn#oZMGgcqWkUP zA^Mc+iWg>$!4CF1%4(C;eLkOEvBJiBXqnBtgdE{4^tFzmx5 zQ&E8-3+FDlhhtdeSpjc*V)@xueINRQU-2sXr!vO4Ma=Q|gKXv!-IBLol^$fgsfSoh zMwFWH2bl`lreuJg2lC>p+pwPm3?UQjiJDxaunV z?5xZar4}gdUAEkh(lWbB&Qa!l!@l(OmE53|^Q}t0eVwIPMsb5$duI3k;Rc_^SVAfJ zg|?Vka*0;*2QBA4-ulN-&}oZ%PdbS)tc*E+=u0u4(_7@Ml-<3ASr$QyJNJ@xu8CKA z!R%AftCu(-NlRbU{`6k?S$W(8}jqV?|sH|KMA4iPg784D+iYJ62QH z!^NM2J-TZH`_{MsLO63Vwd6eQ)srZjreD|?RHb~{SDPjXhS!FO-{mOb=a*1RFZ7oR z1yWx@VQSTqB3xRCvK$?Kv&f{TfPwcWqU|KHvJM_VAgf{TgaCOaj<^ML^hho@vJq+WUVAxR$46A_o-DVh8505d%7}jQpVQZ&i zSQpHPTVhxVq+1HNHE^qj+b*~rg4;>Bor7Bo+-|__KHOfy?LFL}hr%cr6{BHvi~+x? z!ouV*_%tNO#^5hdV>5pI2Wo$FWX4BFB&H^2VUn5jw4B(C{<(~(l!3?CsF)u!nXv;w z8EHRWO3N8|C2RV?V|Hr)V`kK>*nyeYjKrwq#MuMS;J;W0(&c0%W=R?kc4;;|ltVA{ z|EB+cwty%OzDy2_F4OixcfY-yJp#HM@Q(uJpA}IAgwa){HX(MB#%QcWnQs+Q;ozq4?eLZTlNITt96A=gD7$OR;y)gV_9 z*$>hs-J*V;^9^YXne%%Po|5cRXv1obL}Vn0hq7!;C?Hss+?PiNKhFquhAYDS)d~Sd| z)Rz@1wCLK2vZ4&q8A9$&ko+h6`%sACN0TwIJIG9A&Bj4Y!xS<`(l?Xa^9WOc;4CXK} zCzAa2DI6{9xolXclCmUQEK*c|;8UpcM`;Y~4*z2!k2@~ll4YRcF6aRcj6BNx3iAU; zndro2s{*MpOqmJmos8)h8<5;dvfG9iND*Aw>90?J zObEzgL}Ec!Ad&&H0g*zG?T9P|Ie^GIkmHE#1ZhO%2uL#`O&~WAxdw6{k$WJ&Bk~O7 zH6rgp{zBv%$ah5KV0|#lR=yjnF`{8NFqom zBH19(h|B{?LZlod3z2moa}n7AvJjC&AQgz50a=Gg3&>VPegoNu$PV$*aN+mr1z8b)`Le7N$2yw>9MiWA0vmK z^nPSdTLjzLKu;SE56=Dl8+k|ew7&ri^t6&!Zb6;V$qVE**=PQwEJ<_}#C#%S`jh8? zX#2?aw5vb@Cd!oMQ9B;@% zUqB7nr^s=OEAU{GNY^E-^MM!`w+y~aX3_u1hZtXJKJGuw$4VMQj(^62tdh2mB%@f6 zaDTGJBr+eQC_q+rfhyW8pgxkd!_0>MNm2#r z^j}*$Kh9V?p#}rnbN{Kaw813>lH0QewD`apgv)BtQCV5B=xXeNJT{U`@o(0S9h}wG zkum*CGYRD7T7@6uA7Q_dcVsoPr7`6Cssd?3@~H=DN8||zfe4iYBlu>roh79hfY>22 z4#XRgc#s4{7J|%2;?NE#s$t;`^)Mt>9#~*U_U6|KrpG0EjEy| zq{SrTYsuNd;Pl^WF|swJrQ6 z{fiR~(jXOb*$48GEPFRZk$uC!^8eSC{l{AVEM2aY*p#%4Jefu6FK{u`Fk}sRv{C>Y zY$CE|yQDGy{%F+%G40apQLwsY*6G0h274RC#2{r2EVJaEEbDJ+4B11f!1b7dGyl1U z7Sb3p)o75Axj(i;94>Ug`zqu_)+YdByrntA1rwQxtWTaahRk^#$c5Gaxjq-9F=VPg zL5d2=`ux0o1j=yLNSgEDdXQ9$tdEN{hRit*W z#*nG(L2_S{#~n#{1V|Gi`5<2r*#NQ@E)5O##(P1IzLCx67m!tNW#th_!aG^{8)Q2o z8nC-;BxGZTgZRFe6HY;-NVnp_xddqpxup3Zgmex5Jk<_q44LXOh>LU^`+2ID z(ik!o4%b9iN!R<&Q;n3ykf~;X?3eDRKTow<8bhW!4O0IP%k@keL#C34u4~mlEZ0zJ z44KLk#O@!Kt56z4rm6$E{SRe5m&TB()Zm(Ny|k=Ru$KR|PnaZ)AyXAeL|T^Qy_MXGF3T9 zL`>m&`BFs2gIqvlI*9KF*|G{jt|GDnB;ccL%r79qzhtEyqRaWTG*!(_O z5l941LkF+MTY>Q4P0>M_1TvH+E6E^ja#cKe!7%Z^j$b8U|0~tLLm>o*S{JhSI z5Mvij#=!7MW+L-h05QG=WX#X&dqHgNx)DD@3}~q{pWS| zff$!qG9P#%Gm&+k4eU}x#{9g_+aYGHw5*@k`8veBl$Iq~fWe6@>yr@H#Xq!mafMmfa)vM^ExEr3_@d31TY9n10#|(vHY^kb*eb z9_e>U3?d&u)Z=Ais0Q!}3Pe;utP^Bo3_%(Y84j{GQ8vZ{$(bE0lJhTABA;yI*<@VegXM} z$WxH*DYE(Ch7f~@AqX#3HfA`8HzH#}Y7p@Q(N335B{{zsn8i9Gi8^e5TqHprNQyfCXkJpq>%f?!1|Kx z7tPSO_>&p;KmND&3rS{@KI*l!kCJXW((=eYYPNLWk-T)rR2uMOrXH3eTzV$;^E2q1 z(wKk0f4zX1`q^Z^`txIMAH*!pB3n#SfgwiFMPL z^Yg(y(ik$;B@lP%vj05Q6KM>Yst2U`N1dtttvJLOwgecrNuCXeJ&5$Zzy6rXAp4M* zSP)w2z!-2K)m)H|NNa2aDf)+_@EM3P%$9A{2O!>vdHG@nHKr0WmF-%?F1qvkQ?SAin=Fx)=j7;r|d512Hbs z$t_db(e$sCfp*8R1rSpaLdLM*HP~%_Ok~U^hza?Je9l75g(xx~c-uy1lH^175(9ey z#Nk)qxKtw(^?&>RvZT)FM1CTuLHcPQ8U+07;Zf3)U`pgW8k5mX;2C)hU%G|k2LBrK z<4ElRMGU;J*Z*#YqQpxWGOyNj;Fmdyp<9 z#?u1MY7yB2!iSHwN{$x;sXl`YMP%|&=zkE|0}_b{ZV6*QL_$H{(XfW=qKM1{S%pXoNF5^jHgL@Wkvx!>h};07 zEt0LF84SjSh)e|;gRGq@kSrwT3dlGlhCU3gC)_5t4Ok?Z{es-0CP-t*ZKDi?_bZv| z=UdckX$+al(+*k{XZDvs#eIKTR-rV8OjQTseTgh<4pd66e`}Q7ku_8uPR5X_azJty zlBpy$9PAg!RGrcoGL`!X*yfjzsmA@ZhO?wGWU6f-`;m730>WM_yS^OlVS8RGD=R^o z5P1b+T`n6lW+e2+h-?5M5a|X`;19^>zwHVe%g=`HMf*2yw0pfzla3|Q~5LpV6i^%UFs}LDA8umCu zDnYIy@)G1FBF@gR$5qPKa1DqMkvAY>MBH7VRT0?$l7&b&NChIEuCVdH_V$ zfrKDJfMg*uJ^;2%M5;mdBk~tWGa}xBFxEn38wj>mwuXO$2oaea1Z{}OZjeYs`ap^h z2?~aO9+3keO^DFoETI#TFc55=Y<&)cEJ8#+6xtb)Xb_L}vZ+pjTtI|31(pJayMtrM zc#sA}&Vr2GC>tXPgDn%0WDx63vN7jD>JZTihrPR6HYO7!7m+IDh8R4$UTsUh}c9xsx7jq7K1E8waFJ&vsdsRl+s z(?KG4%gQp4H@dPT{6>(Yi^vgC10?*{(U&laj3Gxv1t6>gvNGl(@JQ$U1>WP|V!sQ|$c*#|-x$S(V@Af1Rj0ck_zD@YR} zYBA70h}eSEATkl80+9p|$(30uR7-M$@1KLDBT@|#iO5M1Uqo($xFGTl#2OL#SZE(a zj6isZNZudA5D5bzhRD_szHW|nB2o#`hRA-9CPXfQ)FJW|qy~|1Ad+`Js89*X4MsX~ z&_0L^14&0@5=bN>i6Fj+%m;BnWHX30BBwxvi2Me^Lxcdq5K)MS_R*KEvoS~~BCa59 zh=hYQA(8`9hsX+$8bl6&R3Op}QiRCwAnAyF2Z=;PBLUh65jzkUM0`N35t#uZL}UR7 z50M%W43X0ygiyA9?tpY6@*boO5q2W94MDFx|7WD7_eA`Ku-h};FKL!=v| z1`$pYv=1VtAVr9b0ZB(>8b~A}c_6-stO9XC3u_}Ok5LpPK z{!})f#~>ky*w2BpNJN%{v?1~Wg!j8_KF)JtOF*Owqymw5AZ>_@FNA!$Wb@e!;)}>f zkPC=-7r|P7CYx$I$WcVTf_NIq_Qsm?AZJ8If&?NG1TqDYERYC9R)EAJQU{WR$aRoR zL|%jBBO+f6V?;zuL6#sg4x|E+7?8Dy6ob?tQUkIZk+UFmh&%+TN91piCPdUr;7lBm z5g^wP2>`i?NCwD#L@Gd@B2o+TCn8rtx)J#kCEL3|PE0trThQU=>9B0`WjL`H+8A`%WV3z69%a}ik!Qi{lNkY$M623d_rH^_QK zcuO#BGa@38?TC1T>_KD(NG&3ZK#m}?1LPPYzkr-T;;I70BJJ_=CAV09=zN_;Ghfopn$FH7qqnfVAYZ7@pf@3n9~2o(HdA{&!k4o8sZ1EZ9I zye&YI5pe^lMW?;?Vff!-wKpPB5FUZ3mG5?3Svw`nw{Qv)F-7c*fhS4wyix5_ZVF)1%VJf!O zqMKDyOE*f3B!pp9gi-FpD1)#vp6{`x-t=kbt_ zSFh*wzOMK6KG(U<`P}e&vVA%3IP?j(?{NmSMlZdCeLYkj_V64ivF^dl4}wzjBr|^t zP*$Hm(rNOro!g$CBT!cV6jWY@lKgW}`2b39OZgc}iKT3JBi_ZclwMHQTFQA) z(tioIJQ>PBOPLF$)>58=lDjcTy$5BUrL2R}_qU*@3l!ca(2c_OpN};5*3Q{*f8JHMU?t`+ST~MiklD$n(`2$M5rKD8g zoxUV`^7|dot5+88IGPo&CNtp4=tz&L^<$v)-ae=df-=uiCPQg;4=a3DNALGx?K5S8 zJj~DQP$n!Qb&~VE_*x!Pv0LyC)DFS^q(Q0MGpJ-iDef9n&Ve$=QiefE+$-q097+-v zMt=tHg|bASx9Nw4F1!MCyp&EXBv}{XRbjCGqH>QVXTuu|efyD0A|7WlY3GaXs_brk~-dE2O7`H<`_Unp)v5 z#k+dKmoTXqznkS>42;MBY0RbwEv>)x8sl$=YFtfM>gGU!f0-S~Ozl80F`FFR$<%Wn zm5}aFRuR$0mvC=Hep{=P%_TM{>e>X#R6`5`Ekmhuvm#PfolRZvPSi z{ezxHC^PYswf@?&{q4A>SV~VQrRN7deW5J9AgB~Wnbn`wYc{y7S^w2_@T?d@&yMi; zM{u?A&I|Yw7NDWSeG^{&C#y{luA+_=$uw$KoAmAYS?d%lj`@h`NmWDyG!BkH$95X_stK^*XvM*TFM$Im6q~5lzxRl zDs3KWY*0|ifl_KIXG5v5l<;?a!WF(H-zVCV^EA8yj6i=@S^c>jO3C2hDCR<0Xem`t zS``I7uR|%Yl#ifP4WWnEN-xi*dLM6#=ag1eZSCsK+=A*oZqw>L#I9be4mVT1;mQnu z&o2Cpx$lvm*hS2bNkoe~u+Ce`&QSVV%7IYwEaiA8C6+Q0$}CGMhqBI6o`f=QXfXQ6 zP+AQOD*u9#VJTbkZMZgf;x53VQlTuy&s6)X=)O=YM^IsHc-b(u@f2!f=l^MK^ige? z)!06`vR%GuZDekZ+OXEcroiFVZ%bA-^Lsnq!Rvc(WOd0XX4U-N04OD8yr!f=!H}8{ zUV+BLQ*Tk%LrEMRY-b6SO#ODvg>0hf-`sDkl862I1xnYFU^^Y}!joG|F~5`J9il=? z7O2IF?%qfBlZWk$fHKR9H66+WmU0`Ed1~3ck9tZTwj5qX&9A=LqX_S#%&*Ycp71{E zEySv~diXPxii?9eY+H$JSjw(Y62}BRnNSKW&6DD(NMaN3o182>32y` zSqNpRrMv=V;P{~D8z^%o1eI;?#<(U1m7Y*qT^dx*gHkp*sF>e@@eXEwEId^a`=}e> z$v}yk`fi!9Et_cicW@u&ohioiPjb`as(^EAUy1r@wLz#&4z4zjX|*XDS2{6&9DZic zT5ha$BVm(9n*TGrl01xTESc(M)jQ)~fD+rkIX_L@$52)@d%UxGBa~KU!MRAf2RX8o z3@GVVJLf?uu{@)pJYXr)pp;GF?6_B?Tj5z{Q4c^#oEGfQ3s8Dk%1=;gET!Xow4<}z zy>9F!4{PjDDAl6eYr<*rkP5E}1@P2a{h10S@ABX%<`|EqEHa)ef}Ss-R9VX3Q2I;{ zdUjrbeZrMNB@0T$dCar>j^k8#<_xB1o8}tw{?!uy;&s`pANUf!K#kfJytU30KD$t5 zCgfQCG5^6c+g(_u?7aRl!)tLP@ohOQ3X@!YBXzniVsv*vrGSUhg}&&x=}l zSmB>RsT1WsFaDH=RQS9IUm3T%4_7OzhetqJn8*CMtM_bpHWt#;scB^VBUruOe3|O~ zJOQf+ElvOa@2aGzV}zN1@Ha+)|&Ur#Y0A2R5~<&Fn%Z`@bjVnUGb zrcZOAR7cd>X4l!BY^iLf!<=^g@nw^Y34H`7!-LTK>n?d#L7g*qDn$Ga8F+$(%lfan)FJ zu^!4C?JC`Kn(#2*;kBsaptQO%SQ`VN^j^x@anI=(c{mr-p>!AJp3~dqAr+p}N8qW9 zSdm_aXTf03={78jrhf-lBriW^PH)3<^uJw^&eoh3Pu%osW;(VdbNV61Rd91~E;c}! zY$@9{P3=R+tN zmvIK&wfX}*MHUr%1gla+ZR`lodeuhz&DMsOXHy#)Scd+$wNVnNjluai=dF9%Evt?0 z7}rcI8%IK^pBz7jx$rEps6r^~EM+{DnBGS-8S^hA%*!l!ILq@)JI}D9Hd7n&kP6qv zOYo%O!!Z7H(XXMDM9lIZ@J!GwCvJ9@y^NVz{sA7dHu%TZzEV%tESnhjKk7&FUL`@9 zz>)eXwrmH&lZ3^}&&CKS*;2Rz@!B!tGXLi~yRof3E^ITK-`g5Fx@gEDq3hL_tZdI= z6vY~a8S+k#VI7OufgET&7IiI@tcd-_z4EZ?o`sSw%3Z5<@{kJG>bLOJS^a5Mh22HO z4kQhp#f3aiJ6Q7_yjpqrF?0Gk=JbDCt4~;S+9R|kZONQwVqCd*1#5LAl&Xjw$mJ$u z7WEvIq1rjP*PoU0aCX*0$ra_E(?8`Q6`s=$k7I?j`qLZAoXX(1E`rki?w~Ri%EE{> zssf%Wtx=obrFc0s^NvTsF-%P0*xKjva%)LAMY-{ zvF7yP|7uPrU|c<{xu}FvA2Fv-!ZXmK)}I7(qlD&cL6 zYoRq4`#l+pQ z%F~9jl=V>Z^e#gRra$~NwaqhlO7ldpog<*ES`<_Yjq+qrxeUsZJk%H3Y?+W`{`86~ z@M;b`tp?H4Nq=u%1Z&lschk;T+=Te;7~j^e)j_IN)A}3FnLmTamelGK7+2YnU^dd8 zMdl;&d>A}SENZ@?EM*0hR?h@m{tL>?hv=RhsaAh( zfRb_^=hQv#3*qUbdEYLWUTfaH9GZF0#I?zUnxdb%By;ML!ZssiovWS!^lep{%l$TcM;Xy1O!$$iwL2%6uQ5?1*+6nVGk(vqTF?uB@d}^9i9wNqt%~5P*z8*kmF6ugPD!ZKY{UbXy&~f%j5rc z7x%kA@1g&*Xbi`etdO%XuC*@)&!(rL)K29{-SfT@p2X@P^%s=xma@Z3$XG->J>cnU zQGK8kTS@_xhKP19g=dyU-3(=+r92EJxh(#;UV~@3MSTiof>teet^OeotFF___*_#2 zwXZy+a-dX4Py^&4bupB+5!5VsNZkWvy*1L+P>Nm(&gqV?;JmPuo=`SeN`%4AC^ zhO*jHW3c?X-IxS0YR445go?^ng-sDaS&oQO4Zs*tznUjPbLe)y?gAeZB~u39otm@sx>B zCNB&2@Ft@~>^JU*r))4YAKq`6sb31uP_<+Bn5+noGoE+gDN#H2KGgJ&=a)C{;1WJ) z1J$59{*(QxX3+7SYknp{Ew-5i{qGJWVgmd0{JGAcu3BXV9BdGt2AW3eIxNTGZHz;4JR|B`4zC*%zLn7L^TU zvZb62WtOFkgi>KCGoVyi%I#2cX9UltXQAX-%7;+O-wpQp2PlgzMhuU z>MhxV>K%`sdRLhdV}=YVI(Wj^!ePPd%+{*jLC9god%^jd03~)Q&%q4*N4w_P@-*`w zH^P%`QTId1wUintd6rTSrNC1DfHKsoy0m5H^ZdceJQ7MyU9gAeLMgJ8kx*t?$`w!+ zTgp5r8!W|Lhw1NovAjBb0@SKz#aln$fl?Xqq;wrTYYUmfj>?~TVcKP7dYOlou(I9% zr81SnIF(tZ%C!5#&Y5*}@)lI)JXPk%!U$!mhtaZtKiNQYe%7IX(TS{*zi!G%9N^wMGPJpLEm5Immfg@O%Ugk|@{`ft9pDo}* zo&E>EvZ5TusmyX!W^yY83SEm$WzO7!%6w_l%G~6VzqKl}964NH+Y%k+-uPZ91re3` zJUp>Cg49YVDVFjhlr&3e_ZF(xQucr{$Ew5Qpj2AQU?{DY1!GNyl3^+C%Iw$d@hYS%+frVDQfevhL0Moa|AI0hqB7gQ4QdN2)62Z6%tyN>{2wY)IgC@8l?QRP z*?eVIY(Ztdr^+;6D+yl5y%TG9jD6k@tpXKwAe52~LFG6ov7ds1m=8-obhCXEW8L z><1;gF{q4y((13Eato9aOR0mhwpsD^3ExAh9LV}X3Y)I{O(FCuaRtt%f4r7GYIi7! zdIEzXJMP*}h9@n;GZCKELm55%o}KB(t?*>)jC03&6rSo!*iHwp`^|rPYXp8<6rS`V zdeWVqpWrEzr)$W=s`F+LZ6#!G^MBb9#j85rX;$@QpEJ=Pdu*nIrZUsF=Wp_)8_7CY znLA+b=IzzZUw5dpO!$xVcd@dyY8`93UTo$pxCWjjZJIqz4J56^n$SL|6hp~N3MzA; zEDcX1w7{eO=bRj zbDtupf+t6n(8bx#8h9p0ROYYnY#7g2_UxJXtSB$@ra$da;%03Av9;DQRzij;E$mvF^5 zLG$zbj~YK5dt>#`sHdUNsj44$Jzoeu8$Sv9(5O8Z@g-j#iuP zpx6b%8aqbWC>l~6&PGvj?j^B)oto#}ZlbB*9GB-Yp$4x$6aZgzeU?uefDPX zlE4(287#yM7PHSfb3MiM5Jmfcc$Yk04^2u;=KF0y=Fib6yv%PhilRbfemzGKC-a`i zjLTG}ZQNQF#cCO(K9`IegPmv7GGqqbd|ZaJpkWL8?0HO|_W^0vSO3^*eIDbL-P)dB zgq8_uevsx@9M@sE(0SL~VWY?HKWx-k{CrDrY&T(Cm4gzSvfFZ#9lp2I!V`UYHva_p zCwLaColaJN*v=jw(!=|~zECPe*{dU|%jF@p2ue*M`<(2I^|d^tQdXH=Tzu*Tc}R_g zk|)YNuKVO6RR^WJD0?mBxY~R~52-_-q>FNAW28K!?t#)bf~u2;RKmyDIXui?zO~;8 zWDhgtAvFj}T|}%~Q%jNYN9-(?t{`O$~~@+lE}x+`o?xtLs3=^Tnh#d*aCt~Q z0;OI(JOh4u{Z|e0kUFX!_ZLeT%T0}xhtzB+SvPZiHnrhj3;3!Ap6X}fxBQDdYJlg!5&fADPl~eYZh56VY`GCiiDs}H`jdcvyn{XK@dZ7k@}bNV zg$tR3xlzFqF0buF5EI$R!7_dv;hmedaL(d)l@ zR~}M-Lg^Pl?Yov9QvIOJQs&*Uu8@b+BTyDZP^;x3)#fYnd0LKZFN~{Ya}Ht}VNZET zi$&uRNr#hO+PxQtolRFAu4-@3HztWWGoqQujki z((30P*LrzKbzhI&yJAg4Hrn7H@8Hap%0udDC^2Qjy&kssfgVzQpmbFa@gUVv^X2l8 zdJjtP$C*Pn)%izyNL>JBx_and*>0DI)O%3swTsI|519l1Roj2jL#h{)B(2ydfC`^q z!{i|~8_FzQbI)>8Z^%RHHz-SWru>RP9YA^q`+DF8dPoh1GF0Ol06V?@t6SwERRg75 zJK>Q|>Nj~v?fDZ{64iVr0(ENcpC4YUBY&{ zD6)CMc6Rz1cP<6=B;s%UY|wK6JUJ2V41i~ODcdo9_7BqzpOd5~n`bHTnLjo;w$`1m zY1TZ27^i$*@GN&3tMn=?pe;9#sN@{n2zWqo6OD)t*aq>hGC_G^6V za(PHqLmBu9b2u>2znIR4mcP?O>KG`C>qt#;Qdi1Dss_r^_eir6r2iE^hi}P4D(T<&Br8P|r^!R=S}57CGxLZ0fdWx~kcZUCjo6{RPYVBQjKIPFSSSyvc7NgiT@}?Q zz{E7dzVeW|21=36ualkBTk?=<|2OWb-(U|@{8JJk9cL@{nqg0OQqM z)pHQbzvl9ab_6^PI-A`6nJy1ou7%Qjb^QLMV{!L9q{c$YiRjNlc(Ol@-*PKlGCdDl zJ{QVbRf{`6_sK(Q1C)X_jD<%?f%lu3)gxNbLuwk7ywBoO%jF@pU2DvRX3!n$e0fOC zhtjYjeyktmA(h!CAy(Ood*cDl8XGSUsVAW<9uc4VLmpCDZ4+WC$H%9p%R}l-D6`Ir zPjyP9htz3M=H(T?Z{AC^(M$e>TxKw8{$*{l801A2b?L|Bkhei{({VL z4VQ=1{ZIyKSKy|;m50>c9TQ^R`>>+Mp!wZH<0_Sh)bmivCUP}4`|xc>P(i!~}@q^0nb9>wVHk-jVsqqpBKA=Y;kDg4hsV>^XL+Fu@03!v1i&nBa- zL~(XLho|y7&W@Qu+*&ms^z61hGB$o9!{~#dY>0?n2~T}Q^fmA#k70Co#=7rF52IfKrOzNz zEu0y9RUT5Ec1nn?i0E@)cnTu=d^J2N{TaQ&Im@f$Ve~GksGpNb^+likJ8k?&(=kOJ zQtv@otm{_}jOHnxcaS;|TOQ9tY6g@NU6+@_m`+G*@8|N6I&_zW*t$#E!xb2pzhh*q zo8=+(9h3%Lmrr;0@Py9vkh%j(-y+8P%o*zsc}V4^VQ;LxjeA`8$V2L1P%^R^%bodS zcBO~Z^-z+FNo707^|?Hx4%`i^UkNF94lkF7)Cwr;v?Dsj8Eeno=^=G7l*~NFa_6u{ z9#Y$-;|kJ|pFcF$eN>wJS`mmWR|Xdtj9~jXj(TB#og|hk5dl zx)DlEL=Qidhg518oCOg*93T&=xlktL#P8vU@{mg2GaWChGEDx#F zu2^l3We;ye4m*c(c#b@zZh-Q@aioTW3SaTxl802Ay%J(Y`u|_JYvWXTNZkNs&RE9k zhgjk3*W2=tO57WnkBD`;Jfv=fvc8nD`XW|%SGhtSQrqm45X-uR6iznB&io{KNL>LX zC8CGRL@gwZAhP zugOCywl9nkJv>1kQddD)6;bocYATeRsf^{W`4{9N)c~b3BG%EE5YIzu8kCAM#_H>wG7td=NdPMnmcPOZ2Cox^|N zNsq|k(YvYG4{XUX%*4V;fJC>5$#+G&+>>IE;j94%>0=5(forI zxxskG&~vbFz$<$8&%(IWj@vUFo`R8V=KyCr^WjNXJMR8`W;_x7NjnTRrgq%@IS-!n zIQ{wm@lJ8M-YGVBn)boZNbk@=?*ccy2|Q@rh1UDPH(^|jOZl{LTdNT^x>6pjNLY(q zM~B1lbZ!aTalbD!N*=Ck%b-+>a=&xb^$2=MO@uP}ImUAL`AK<5t%s7Tk@|NwW;7gW zw`_Vy6+$U}CVs3tpq;7+fp>g^9wO|hGTxLLI=^;vQXP+@ht!2oszmj4QcL9_)uA_fsByJ*QYXkmY7&&>=Q%DnwL~6L zKSAjy%73D7g0c<|Jf0p>L!qot5BG8Q@E&?D0xWDhqCY$Qtq|)OL<7`)(20+6w7^em?{scPoQ*v zk+IxYhn^?VL+TnR884G^_wY4&Nc{z+MpU{phlig`52-OwV%70uJt_~Wub}jept_tw z52^l8QuGd;`|5CuJfz-)(ipL_wZ=`V=OJ}Cl=O&Lw?N5?=-~=^NVPc)Yi|UVBM+%@P`XD@Rq~Mf8p?8w%bkt%)9E2~ zHk1lc?yJL1@{n2vrACzd>d-Nl9#W@5S*$vAuK?G`L+WKH**a6)SBKrtpoi3WC<8^g zuMTg?Lu$7(vD#={?sfiLc}QIgrCMv0n|ebYQZ3HHom36aW%r7mBM+&GPzsd8eVyyZ zB6&!ygHov;x?}C#j~-I_P}VAkZfc%9r0Sp~zQl34uV0a}ZnFon;omNB1!!{)J*3WplB~@439J?|tsB?LL+WKH)iZgAm;=gx|BH8;zrj-( z(Q=P->0!%5p!C-H?*62~-SUuH1*Jf{3->6t%cFalDi5hDDC;7qujL`N z(*Qi@R}S5=PL+q$Wl*xTZ*fzLxka`D7 zhQ?*CR{p^rZgU|$q;jCt=qYg`5PJRjE`?`lgy#Wx>Wg{p?&gQaE7r|wcq-#~{(n4i zU9kf{Q(@j^un#_QJy1_v@v9W}4^lJ%$rmNWyzdhstN!-LYAg$$=}q4`V&*S|lDlp2 zmwcu|Sv({7E2(!wX|O!6K#8RUseePsvXqWPasPEA=fd2la0dKWd%=^mL$IC0pwwB) zsZi$a81xiEN!^J`c)l*i*4(bw@OP=g2|8fV*s&&A{x7Z!P>YVN{*#`3Z?1=_IU^NnLYJiB@d^Ev5thYs*D*+0Tur2 z|M6^6#9=5#FC=o5U8G*foS~k~QzgF4%EP2@S5Gb_~)LeN;)k5i=%IZa^SUr?# z>x}ywO3qcmJf{^SW0rCllv+#a2c_OpN}$B93AS@Rlypm33}vRJ)Iq7Rl%Ju@vy|kK zcu&Dn4uDc^Dd$3Ib!{;EBq-^YG9OBjrMw2E#8SS2GQm<3N8$QzDF;I7Gb;cMyo*qzAEafyPX_it9rK_b}10}~& z7D1`7lnAR$4U`@hbw89G%kv_Xsw0BbM^M)G=Sq^K z445;GXLW}$SZyLaN5eDys9?)yKv{ouP#FxR`a;Iq$Ar+qShv6vyNI6fo`lygZ>5DV z;YFAlh&Q#z>zA2NvmUkdF9V9l>z7uNgqiL2m(4GDZHgVr{v@HLE}Pn#zAv1yBljft zhW?&=lGILo7kISuyTET??2V(^HC?q@CitIOHVtxJ{YW0HkdAQ~?^<|LMzb9=r~biq z{*;F+ZHKX_7E$Rwf>)$^%R}lCDCrT@YybQS*PruZ=PCka`YEjwp9+w4X!|sdJ!|h;rA)UGk9n5=wVb?%Fu`QhG>D zhB7dMdRZP)Ehi)M<5(M4VwT!!&NyF(%0ucxD7{5ZcT$VwA@wJe$zvJoOHlqo%2<7- z&_k*mN;NuW7Vee_=9vR-6q*mCnd4=6(zPDCN3l{Kw!8*P-3YFJpQD{{e|ETx9#Vav zR8NcFpL5`uH!upRp2FWbz|NAi$b4`r3c-USr164M#iC=aQ& zQ}NDqM6BKAA$2g62Ndf-#4=Y-?_dv)m50=+Q0gLLT`do(YACr{6Wp;j%0p_;GORxl zvGV01bt{xI#d7CxnLMQafRctE7&WuhGT|)z8J@50r_nekoo}1;|F;Et);#J06Jpnc!jCzGUq^hB0p3hhX@YCzR`dc1ShhB+$nFwl}Jft3l zl5#4u;U3q^@{oEL%AAOCZ9jt^Qn^qn`Z1P!T*KrcH3iDX2n8A$2E|0^Jw5 z&y*^8NIefFa}+awH=6hNNsN_n4LziCptPDq${njz9#Zq6R1}iB+8OH`c}VSjE$%NS zlG+|=2xq>(JfyCMQZ<6qG-s^0|&CzS5P;*V>hJfxODDN!tQ=Mv80dU;57z8>$1i#iSzE5d(ux;&&VgHj>NJ+3F@ zA@w8%Ebq2Z@K2u(mhg1SC#o40pg$2h>ueUs;E{C$N zk+IBkl5h@Rk%!bjP?G;9b-FW$N8LydsR>Yq4&W>=Lm;z@^$yO#B6&!C3#IBTQVB4I zsoig)hg2?<$+{AmcT2Ob@A(p`?sw54T4T&Dr7|9M^1l zNPPySSSy>G+NpvbQYS;HJ(E`=cMc2XAvG3C#wn!MJ2QW!Jfv=dQlM*YbPOqXtU2QtP2qMNk>H(L*X9N=&NXUNlH zsl*-h0D8}TsR_GnNh3L>8UXbQL`3~KY+wvVcyg@f?)J4{pG~vAhNq$oc~^rRH5y zInHs7l84k(DAV7JPu(F8si%yhGv#P!tdHa&^}A8tVl4M3^LM_N9#XxalxuBqSJXgx zNKJuK7D3IIhg1!ey781$~kcU*l{a9uvFdObGNDp~P^@mccSng}VM0rTv45f!Y=jmPn z>f|An`~Y$oL7gcNsT-hlRS)k*2HPo%%;BT*kgA2U{1Rrvy*vFu9#S11#LiPxU&P@x zDyEg~V0lQL38hjifct*u5_w470;Omod-#iUT+hlw>SHL?szdY6zJD+qKg&a^^+ULu z(0aHpknpv8S9wVFfKn=|kCQrH9#UsRDN{DwPXJcc( zx~8N%dsr(EsZXJ-oyE-W4az?l^$&SSb$S>(J?%W*IowwsQaMmkMVWE=2V)J8ht$PT zVp@CifQ0AkR(VK01tm|EyN931L+Vc`4Wi7`%W$kc7ScoNSSWd#FL$h=@{qb3N~5k{ z=81hc*2D6Us)f=|73Gfgojj!4K7v@<8{_uP5i3I;QoW(%sfX@ZL*yYf4N7la&HEvi ze{hy>lZVu!Q09no$9i2JQlCJXT*vEj1p+aG|LPBUNNx8h?tnz$M%6(bAP=eIq0D)Y zv5K8kp**A}Kv}OH?BRYY0{l(#kh&jAlCqHnZ@4yIl!w$xC^NMlx~XsFA@wJeT2+*r z+Wj$lNF4>GT4#!z8Y~Z~E1=Y<4&Bszc}Trr6xE@d`b-{De?rO7e3b<99n*a8SVa%1 z?oj4vzRqyY*YWa@IuFV^?b-0i!ZBY{w8?t(H<6?KX;))IM0Er*h= zigHt5$wTT7C=V!>yNBB^riWApl$na)DRGqVAN3R6Ufm+06W7$i_DK z$2(XX8{{GNr)ejGYX2lXq;`aot2)Gw0Xiybsyw8=gt8=}4)=PB9#Vs#%!#PO1@e&k z97?8gcrAJuK2!F2njTU^p(Ja*+%GXvF6J|Y7vxF z?HmRp7HigjwM-sTtD!XNE*oFTan#{I@{ro~8JsDi>Or-~KiJgm@*#Oh)k7)QxZKZD zevyY%!csh=#{WCaT=`ojw8Xy*=^d>3Ys{=czb!VtNq^3Y= z(4Nh`+T1MZ_47kNmvs>YcTK^-j*sc}#mG+#$J zV_hi^sd6ZJT1Ag>Qg6ybD&Zwumqi`rqz;pZR56r!qH;lnYh#)`q;76TN19?b&3#Dp0W0_|};U2bnnI2NRK$$Me{fy`kc}SfIWxd`t z>yB9AIvgMmso_v6$FPTeoYV|?NZkRYubyzaKRvQY9#S<>3NB$RGt1#@ye|)_&!J>$ zo!{Hp!=L0K)d;0hvD|y?j<3)|sxy>Y<#11DtOMmCbrh65Q9Yd08S;?Ihmxxm0AHGR z%vY&Aq^3hzD5@A#c%8pZ9#RiOnJKD^Ggh@cq*g#F)+*}$WYPEXkV>e*-bS@yc9r2e zJXIc26;Kvm#oBOFAId{&hgWe{Mo@Y3kh&GhtO)8Oc}VT_8a}-*%ALbJc}P_lML9I@ z!-li*s63=zF^aB4X15$ZQ|jd*)c~d88s^Y_h28#jdPsGHvQ+csUIB*5Luvt(TxBEM zIj*ndA+<*>?hr+}b2v^OQZ-Qe>H2lBGgitQ^pMJjvR=CsH+79Xq^h7S)m85>XRHt8 zA@w_yzPe9w$Lg|-9#Vav%+t!|rbfv_>INu1&h#pxWrBb9qpPZtd*I24@VpF9cX|A( zWIO*qK6N&E7v4LVrw8`I-MnRn|MF>_~5U06hmp~6I33AQrtJF zd=6#B=|QE}a;$!51(g$_WS$#T20$t9PbEA%19y$ZZnaXjwLcTsy)$R07I6~oSk1pW zb(J#j{pwU8@lAg7i&EZ!dge>3C45$P82^Gbe?P`vbpgk2?5{wnwv^AHtgw_;Z(+5u zlr$)b(^x;|6CM7#%2$WMv)-c4fYN9wBcSxj_xj^;bD)&mP-;d8l{=x#91~O)L8%xU zR9=NrTpCo?n077+Dm$;h)7?oyE>6P}JWgPfGkjK>IHTT>5SFl#Sk;0eo7dq!Zqc+a1o%w@s%KZHgezGdz!f~SpmkyaQ zct}a`Hwm9ZpC@yqo5}nK@RaD2`R=iAfM+4wX&Q37I_$m*m<>0T4$o?fIvh&UWx*ND zgEH_(ewV>~d(U4b_-dj&>CJz83zQAlFuJK@zrs0li{a_5|Kp6iw~9cuLi>yFZu8!4*_iznnE^(K_mi2i&7 zPo`RS_owxT^swdKpfvmyzn*jCA$2~K3_OfAv)wYmUC&eCS)rEQ{kcmXw!9QdnnvNy z&&TqR`UOfXB0rsQVcHl`Kl{tWmQR3^ZLI)=jtFe3ra~utOww! zza~h%1|=(k`W&9xp`0CTMFNMJF?0L{PsMP0!uw3)+2s@L3bYs9(MUSj&JpmGjb=OM zJoOKH`omLNOpp2Ou7A)o0iGQ7+1{_xb2B`P<#CVeF?f2&<8EgeJeBge+xZ%v8jZ`W z68^#dv{{X(d=c$*foFnp*vW4Muh>pDJk_Plk2&A{!+5yo_x3IDB|M0?6yNbp##2;S zT8Mv}8Tdc#V8?h3^*)^aac`2$oL6#V zgiq-qbqJKjy6%i|Ql;{cs)Ew@dwy2d-aE60-^oL2_s?+0x;{R2o;;+khm!bReCl<1 zNc{<=`cr1ZJ%dNp(?e=9lntWHdlUY_aaGGh>K`aGe`T!oK7v=Ij`*A&Qe&Vj|B94( zPt!k0Jtz;UPoVTw58d;X_60qp@}R7an6I1UA@w?x#)$b!_>vw{y`apAn6J_DkeUx= z=|7z1GNdB>nbObXA+_UL>{24AGvy(5HI&S?%zQ7z@=sr8ew93=x_pIut7=l2PU>QL zNIeH-)t98qC-WJ>f7R}5dPtoKC0DWBRHZzmzJ)UVTjp>YVkP1q?_kuf-_S#s^JfvQP(&tA~FCb(7)tc0w@{l_Cd+fD7Cv_Z*;ZFozCJ(7sjk1x{FU}sC zFF|`AQoW!|UqXf<|^EA?OWkUAYo^{w$^T_X>vYAAWS zUbtg5%0udq4OqkV%N1^Flsu#sK-usbYvW1hEPo~ssU3d8DsgxGaplTGY6g^b5#xGU z9#Vfmskt(KtjwS3AvGLI*>~~Bb+0_6K7o?)8L1ICE5n~!?D7jeq>7-d{f5+Sp!|C$ zt^oJRL+VQ?v9C$t;_9F}Z={FRX;50}{5mqQGR3q;&5(!GGf=u}zTDK$@{rp5SF9V# zyqn6Ght$nbigkT2zyQLZKU^aZsV=|a{hdynWpmBt6)C2170W~FaVRyFq|7%8!&IX@ zq>lX^+0eM$)OGTZdJjq}o}6PqxZ8RIe}-4=whi=<>IG%3s24zmvoTyAQgflyYL-nM z?hevBSW)%zkm~XWY93$hF*)#luRHvlzaKm~SJIOWr(faB-3)lLcHl@&nTD^PZ^^^x zo&Jq|-S(ss(9O=xJ&tJxkCTVg7%1I$B6S;Lg|D9X$wTUWDC<PkKld zKuMp-v76@r{`H+>zu9=Mq9+3$|Gh1GUV|s^UiNtsqK7M?V4f`J|?U@}GKe zPG`tN>M5h#M`}Az{+yEfULI1N|H7VR1}P-Vk)Ofxkh%{_z3RuEpO4@vm=QleNq=J( zcQvD5?aWU*Aa(PHKLMghIRJt=i2mM12sX{0V5=gnv%3I_iRRg75 z&l4^}`u%fdUoNy5)GG!)E!Xjs~O9^&VM5hsqQUX#EM!l^X_&25_w2H z2PIwmDEErprWHM;`a((5j>t{TmWR|DD6!QXmwTPxwlzJZa-b|1<*ukwc}UHNGF^L7 zQ&Hh{{yTX{b#K!mmZS63tWo|fbB($Ho>;^>Uk=auwww$1I{%?OjJ|VQP_0SflyI!` zr^-WWGL-suq;3NhUgxXiA@v!Q-m^)W+u-mzzfU4Pq=rLDj#%gKfTuoU9a{lU)oqOK zUguNW(ZlEipmd*0>T>isyv~=)L#o;+^GLbZ`CsKBwbwSNgiA?bqvOcWNO?$AL0O^t zaj)}V!jm46pB>w`h}B-k=PD^MO31+9b7z^(!OgUgwXHhtvot zv)1rjcAu4Z$wTUGDAih{-22`(9q1u-7?d)tQEqCCJf!Y}GFfYsoBB*1QrmZIf&U*g z$2AA1diajxYqdcVc!p~g~ zjQIbs6v{(t4wT{~zIS8thlDgAoUeD~A=Nqs)!UwDMSS=JCiydRQS&2DtSmf1!Z1G)`nSW05%`2jbG#; zwO?wB*t+`}D+fsU+Fc+Isd6Y)5wYHqhg9pGTf{ORWUQWu<-aq{9v&_aso_ux9wOBq zRJacBl84kgP`XC+FliThNcDy?eHLSxRWzK9iSm$o5K2}=tgq!EwOePbtJg8san5X< zB@d}9pp-;Z?~C$~`VGp2i0VBsjUG~ip=?ZI58c%}TOLxcK`H1+%3ZzxmWNcgU9rwb zRP)esUmb-e_%R?$H9sBTzY@8<#sT-lxT+UeT>U~WfQolh-oKDJp zP1$b`dPog`vLfP>GuOdWe-@v3xSyDP1W%K=G1&!)%S&X4ePk7#F)J<(1?e@4QyBqBd|!BZ3Ac^97gGudZ%4%>D`ej;*sBs>KX zp0UOgG4}h6CnASyOn)NUN!|rCdbzL zq?2j(3q0^m+>N`P>#*zQ4#Eq{Z$R|Xr=fa>dc;pU4NT!Dody+-9X2@Md|fH{^@a}n zVBgX-F04qQR=jxG@MP1|B#nTQYbn=5DX^4>p_Ew4GANTRLYon6=N$7!D_3zD1_gEW4RU3mxk1Q!H9X4oKaq!zO zA7T_aHw3fMeqYS{O;k88&tuMuZ*gDQwJ8JqV{47ev}ewXIbC>O^nkL-dC~k`yxp+% z_CDR${4K~$exScIMp1hr?`r+$ohAlb+)tj(pBKI0S*LdV=LEraPL&7kn7@eSLrLkw z=;=)w|6uf6W)p|dykjwa~hV~58^l!%MEDx#fP-cnppJW(})ba9= zI?pJrIXnK{PmsD_9#R{iED^O!Q_uJZW94+Ght#!D)`>cfK-0fT)yYFDb^jKz1)@;= zfrHdV@{oEQN?io?yF8?_4#1g`%iW;6#){=3bvu+2QSORbB@e0O195jODm^f&nC5Gs zJf!ABnH)i_lZRAB4_q(w2?}>b4U&h{Y$%zc+!a+P52>Vsu!gsfUs3(#AvGV$bW!e# z`b8d6M;+WEwpf(AqOOvM)SFOBM7b+!mqX|wRRpCnf_g|EQr|;q5QXiW;~B_dne>pl z97@6ItixHL!k?>rN*+>QL8&{9)U{6P;GXo5ngnI-sib}c<<|$#uSew}wFXL=-Y0V3 zO?2voyNNcegt2Iu?fI|HmxnFi2c@_XYdVq*m50|zM|YSn3P2isiUD(N8FoV zDi5hApmfzr(hdD*-(#AmujL`N!(n)*I3m{m@{r1bQl#sk`RuO$2@1|>t~{g$KuM2? zHC7%{GoZ{m50>bP!>kSS|bmsl*93!rp{CMxcbOLYCM$6!&n=`P~PF^hu6wO z>NY3~j^TOgrdG;Bs`U|gmXgI-=3O)MzMXe4^WEej)dxyNFH-JzFo(!PY6_In-lV=q zknl?Kq&%e7LD|@s0Mv0jmfR6UfmQ%Jez>nC|g{RJgyFH-LL+C7IJQrS?FBVwH@ z52^E@%-S)2tV`t~H3v#cL=GR6ht!i$iuZ^g>qB`+ZG=)05v%nv^pM&X%Dmm<$2vqF zQn^rOM#L(VhtxV7E8ca1-;H{>Dp zHI&JU<*viumWGu5{hd)y~MjldSP?C;_ zPgTf6YCe?u98&iomjASebMTBjq?SRMc`T{#oz$1|koq0Uf!by7*k(L*W?N{=3- z-gHt2$V2J~D4BY8u@Y4Hnle@%Quje=?89s2>CQU*LLO2(_r|@<`@B{@k67VrWu82w zZh|uJM8-NFRQOu?t~{jLACFkt^WW^u#;NjXPqz0m3!`1taJfuE@GV}mauRC-2vpl3? zC*u9D{Yc&7jCF)Oq%MY1BFg=_%7^74RS#uh24h`>It_$wTVsQ}9Wrh*+iakXisGvupfV-^)X4|Gv0i zj)*l#9#S_!NjWfntdHa&)%jH1wVg%EJzu%P|_mCwM#BNq)vuXw@>_7H_Aim zJt)Z$u@cXqhg24n<;sS8r#Dg_Qg=YfP%QUOZ>2n>TAYb})ZX#Ob&@=!t~H8cx$Cf6 z9#R{ilO&|s zhmg9?xpUYjj~-HEpiCCk$GI1MNgh(|&%@Q>AjZNL!I8t>@{pPUWo-{q?tO2SJfyya z(yte(cb)UKOMiMu^@Wm=6`#6X9#V^-EY*`+_kKP$fF4qPpsd#CNz5mL{e2W)O@gOd zpYTt#@=VV{cyjOs9P{6s`+wFy3r~7PJGJn{^cfHLXIK6WPYE_}UM%(iflX}u!}qeg z-(ud~HvKVwV;@`lz3f`OmtBna%@4JL@jdzz^j`Kw;|j+V1wXpcEzP`v!4H_vz(lOmMV$*}MYH1d?J_84G$t3GvJi@XV-qTV z=?F@rMSTZl`b}OAJZhT@(C1tEc?m=94y9^#P|1XnI47u_2&L>oW^7M`=`ihvYxNMw zIr5kn;aWB4pnZgYJJfy$)42J0l6rh(&ctq+V5%j2e1SKvGBbGfG_!0UtmlhV&qIdh zd%uG@Z1gC3#Ozo~7bxp2 zy2;p+Xxsku!`8}}>9jcqb94^+@6I(12!AkR*9J3oQSs4_4;WP^zUcV_tNV zv2v8reogK3kN+-Xj@55)>F6=|C_!x}u3F~W6)q5y)m&wDS9U}HW>#khvsyZI%;@pK zoW^3yFw)9-&0`OTX=?8ycpB(wQoe>V@Q&uW(8}+%WAf7$E&1>H8stC8&%Ai&VDqQx zo(YbtuoypYZ;$K0+kxyq2v=c^%k=w9D3$Dw5n|yzKzN@JzP^X|0OQf}%;&k=c>*nm zzjJh_JltJWLs{P3L$j8}V)am}tsXWQWnS=#-*GT1{H|bycZE`Kd5$p3>L8U1rSzU4 zRSIQhB^90*UdGJ4PeoOZYw8vM_)q3tc~0mZx}5WhpR2VuWQiTneC{mYf^(-t=g!&e zs{YM$=apcM4MvgKB^J9L*~nPXoDIjh!~A$2lb>S{!|Yf5<3GtyY)$j*xMDS*7c1>P zmku6kcX|Q(TpXv*rf1K?Gl8C_uC9VoZYkeFNx65^O7L1XBfScJ^y}F)vb9EP+A^zO zt!B_(X_{g+XX7hnqjcD)3rE|jfUyyy*vL^hvTEAewg_jF_I2q{{JRp)WjAL@5FmNE!Rnx$L?rK_d91*N;Cd<|uwrF0mAcQmB1#=KFO%wLV@xN!>{TPyQCFMd~6 zM-3UDKeTXEQSp#5f!uaM56jrY&1Cf`cq-^=>g%~sDlMfLO0qKV-ce77XNg74g|b2l z^W*i$Z^wjG}fmuMYk@ zT_%>d?#E)E$%CuIX7b$rLOf|-6Th8od3co>3Z?N=QhRcMP5)-}o8=+(43rf0*-fpJ zhtzf#;aQ4$=%$X7hty~&jS;ab46K2Igwf>xa)AXJfxn7 z(nmdXQ|sj+wPP`!l&Xhr>O^@+jfK)9f?6OCsTEMxsfX?y{v!{mZX@w*S(Lka&y|N% z8I<%0>QQ+}eF!D>b7tOM^X*5`L+WrS>6$Nh9gdQR)E!U~70XS%BM+%Y(~dIlruH9A z52^E@Bu7x!$V2KWD2w;wCrmCyHTp|C&*jhMA=S17*W6jC+@|U^*B$f9JNT*xJXsMf z50Hl~PlM8!8NWXZ{8drdg@MJ}_e8i>nu;nRGX1>$5 zc?CGhSuNkoL#p3o+%vu#pL$syQu|H8*%U#|m4{S|%W#*pB7UqAc}RT(B{w40iBstz zRRv{T1hrckJ*2LJlDRT|4}X=1)CJSxv4khA(cK8btvk1KM-Cq)+BjI zy#r-V1l8?odPrRcB}e0O$66&1sr|3PDk17LXAiHEhtz5)HErW(BkNjvNZkOX>ss!p zcXq~lSsqdwpyWhQd(NVV)EQ7JBB-n7A+;1rnkauSX1dDx`cWQIov*`ZIKPTNt`p=T zRSc!ODEku)jCHF#q@IH^P(5^0Kg&a^>-E^LDprv*^SSbn8V{vPvG5a}frCA)l84k< zD7h`UO5A~MaCj%Y%?ZlZ@&E|gW*#2>|- z@GOXE`6qeU^3gY=dLN9R)vM$owG4`RKgG*x2I{GuYKqr_yDu2%0p_K*?5oa@c6N&%R}l9DCtMUr^d~p zhtzr~u>tX^L38OL^&XT|#q!@zFjK_yz1wZ{keURga((>Dd`liuoo~mAq{?(x!Z3KI zN3^_D9=5#AJnZ5+aqR9&$dZRtA(X}l>Lz(ey#VC_QAewmgBklv9#V(ifeKHK-@`n4 zNR>kAD#|@O_sT=+T`1i}xvyxy%0nvUPFx2yF8h56RziV1r0$3EKoWP$?#$Q8L#h$V zT2Ti%bGX-C^pH9UN`)wQtda7NngwO4sJ)%B7Rf{EeJBfG;aYc@e>nrsY$R6FL#h{) z?!Pk|W^M67Qg_Qks_osF<$t)BFi(X1gH$hhNEJY7XnuFeTSq5D$v{BEv`nx+(ZQAW zZg|Wu9>w##22XW_XWM)53?#xc5FYb=@p!Q&!BY_7c?F)52v5@d7O|WN&jIjMMR+E_ zQyJlT8J@BTPdz-j5uU%`S#!rKm=7U52-!x$2G1sGiL5n!gFzwJfwz0$&8@NQ#A2wOfd6=sevEwZXF?rYbo^9#VNwdgvTiPuM4g8-0aWTTK;92vhNXD8e526Vl=Iee_I%XW+W{(La=j z(GOgVJwQbC@$l3~M1LNhjo-$PzRQ#JF!~rMeIlYi3r|uZ$8Np_z!3*tJ%#7$pTv*e zQyxYi0wp;j`jzl>9~eLSe0XMkA3u7+)ATTUe<-;T(dQda#Mr-sr|S>#qxV@t52N1= zB`+fSckm32hS!|3yj5)u7Hc!_)YA{OH-w(!=OCLrIT_ z{xLims(E+S?fx9D!e7RZeyKc+z7k4CMD(4P;;f8_egQl+U&oJrgFKA>9F(kx=pVwf zFe3U-@D$a@kG{wA^e}o~D5(+AFM=mIB6=A-%Rh}D{Rw#({WB;H_+baLezZ(*&*{J6 z$y^h^<%}2TVasPgsgG!RC_J^lux0aZyZ>wgDQP<9$-|c4gp%=Vd}_ZJ=^-@(%Bl$J zYk5c=Q;oZTf5neAQ65qYq0Ia(KGoqRdPog}lJ$FhYMDHw_I??6nm@*;3gsa+8%je2 zwNf5ZiLc<@_J~^D51yE=4(XV~@O8N_JVSqu-{*(rVf5BDI8!33rAQu9FF={FF@CK7 zN8I_qXEpc#|I9|C$z%w_g<)9TE9;NMJrzQj3L$o_wrs4LwQ8}L8s;`k!qCkSl4M9i z7>3Zz5GG-W#vO)a$ldStxz6=^pYz%0({hOYNO(*ITE!KH%Nz5|@FUUCwFM-5 z0Atx*hrdA$T{$3`8Fbk*yi7E7-2+l5E_O$qenTOwrIa z5@g6-v0alyL)Wz+ivwcaFB-a5fUF9L)gl_YegH{Z$NBXQ+R(g$-s4}?&@~7oSym*w zD_1mhT?tb5C}Y{zu?Iv$*Q+4)*Ki%P-|zhfn)y<)eI4uZ7Bwun56IF0*J#nuHC2`K z2y0=l`<v@psC9z#!i-xWp-^P{rQ+)qeo3(ci6AfL%K{DsC#ggITx!3z?JTx1n zWPDN1@?O5#qG8GZ1X;bD`Pg00iH5EgkdcqmrQVm@6Y<=GYr>zRp=;k}{M(bUT|-4f z*LaWxkJ0r2f|$FDJ4Hj++aP0?#&#vXLk(R+KpLK)>p^R*aiXDX21x$0*sj||L)YUV z8Lx09`5dv#b#;ws==u|6{=Yfu>@)6wcd4N(8^rks$4?q!d7sj8B#norNlLcQxT{6O zlJ5su8{m3fG<3Crl-pn^}bQOWDlX}@*SBZwM`5-*Hul?9S6-z%}Z3PnTLZ6FH*TyKhouHQjw4dHecvzi8-s10+<#^(PDCP~ACl53WByLDMQF+t;7ekEmhE z$ANSNxGokAU9}+L2e@M2i$u(|ce!Zj`WU2jcI;YghGyi#*d?c}p@t=&2(sdSy6&^) zQ!N_0nm`sl7~8e|$JEeu97uw=7Fc8Di-xY*Anj5wyX$_@(DgFN%AI46mhVJESI@O* zXL&x;K3WDt(=H|3M@znFSn{<63d`7vQ={G<2;6Ss_me+B3}foEo}j zfUFajJ;T>TLs!o)aE~a!HC{AyJpxjB0ngpzu`|d2qQ`d8|MvWn8oEkB(&ZVvSm86)S8+BiLLhS$O<6|`U86u+5zEZ*3DMBC%U8H!{f51KG%Vh8c&yg| z(a<#(B>Zh`*A=3n>mHEI?yT1-)>vQ z*)#l?Xz2O{r1c55#{Q_6x{`Dcw&6bOsiA8Kh*Qn8UMl3?-7ucJ&sUl!W0yQfG%R@m zNa}z1{NZAz68SIlSuYy84sOFaMO^1vU18DCbt_0#nDgRWxDv$4Sig&gu5-RYJ1=9s z?t#O+XI>#1y6ymJ5|{l>@^hl0>tm2{PcfF=^&ipDmHI8NCek>54#l+XW7KP`Xz02T zWZ{l{Ui9B+fPDU!%4A14~R>OdAJaBQgG0ouce)$KcK=(+@?F^R5G za3EatV1{prhOR@t$5jcQkyYCGxR5p0Eux`o3rM-dIsslY*0>+2p=&9~{Qt1O`XMQA z<}$-jJ2iA&1JblJGd$KBYn^E58uBA{R+|}Xo;B7&(a^QaPq?=n5UW@;bTxr&_>Hkr zt+6tHriQNDK+<+%z0{p{vkfN`-T>k-k=wf!&X3wa*9%$ngPqM@q= zBqbnL|4r1;bv;P2e3N22(qrFxKXw0=8oH`LYNRzbz-5k&&qYJmQ5}f>F53_n5l(-! zhxe%JW z+)B~VwE-mjVQkm=iPX^bI!N`}*sj4lQbX4RAhp-fbs28snEiF=PSntKA4sKqxBXHy zgV|rZcc+G~*&qu7TK;Fz(3P7M@2t3t8NO%j5r3h*}$L&>#t zS8C|`0VI10Gqm?|Nl$9%+5nOo(1z#lMh#uBgRH)e8D3@0@RSs4=voQV_9R`uV>p@D zGDCK!hOUP}DxRRL$U47{*n=9n9sn7F4IUOfqj za>t=}?n3f10-B-OSVGNy>YwCby?%pcb%5qT{Cbw~LSr1K;j6-`l z3H!!7Ef=z!J*?#%3{90hd2TP~@6fadloN&~wUDuJa_}7-8<#`VA!Eba?<*-a_d-)C zb=SYcLd|+;oB&P6erUshd2t#vi82oD?OX^=V=3!pA3wFwR0Oo)B4|d)__6oJo6szj z@#Edw@VC!8Xj)~=dru7cHJhQSmU5ESKgq#1+;e}7L+LMX_o{@{90^V3MXY;IDZ{VH zfu>HzhP@3hf~Gn^Qw2@2-l6j0+i~4*G$W_DS3vc7_}{!eIN=lbOcJke6Cy$R zcJAiC@OJJNdAD=2cVddB&bRC?K89_mzNLI>^k3co@J+>cg!qq~Z>JJCMj4|vB+ z?=P;xt3-nxk)>WLVh1#91IjrpL=AUVXM)UYVf2IC)T4hgdZlRSdH`hc`>|c`i-xW( zAj>5~d#ua@sG(~d$h-j8^`fEcX^@fPvbSoRXz1#BAjZ7ZOJD2Q8rhgU=uL+E`Q8aWNbP!@mf7xAUi-xYNL5c%nEf)=4U#W7W4ehb^NTY_Xp&(@e zuBoD->u!*FAF(y;{nacQx;BF(uZivIeK0k2oddE`-imA=hgG7XYY|ARw7lK*k!a|O zKP2ASAoa4lvP45y7-VID>n73A^&Cj0xa@7XK{RyjacI1=O6p}F^TS0$*CdeT0j@hm zLst_>gY=huM0JRUu0zuiOZv<1I!`oo{R5;vAl3@e(DjWfN7~RHYj52Ab2W6G0J1Q^ zHA6IX-3QX%i=WHj)Ni>b^Ok7n+6WS^;dw{x0pexV=1=<`9`BR~lsrN-EO|0W$$_!+ zxm`4Ly`V@yK5fu+91y$Y-HxD!B_9P+9q=yP*`lHARgmz_Y#+6cz(-fngYC0(2G+xX zlFt$iOTGi7`D)&~ID>^o{>v4+dv9v!ngLP~;QB^1be+`)BTBx>zBgicr+vn{TQqci z2~rzS_rw2&`@I1rPZbSIehMUgIqQCwweBgI)X-H7vhFFm)SX-JU@caOhOR^VqVBuW zWnah65Di_^K~@B~>P17>DIDW9*V& z6AepV57H#xP_xg1K3UYzRRR*O;4PCnrh1h|%ohOYgO#;O%iuj@ra*CvpS0sWOfgc`d31(F>Q>*!;sp=$xi zxPVx@9ZL;evq09#+fnQzyh${4?eKTZTp8h+7=7MTF&yEiK(jKS!couE#*i16=DwLs!oeaHSC7I$1Py%>o%CE^jZUnuQrYDjK@hg3SLicD=ft zNDW=RLGr~l(Ax56i-xWWka?1!-SvcM==us|xx~u1#@clRHFOOEX_Htpt*%Q%L)ZNv z4O@8jw7+HdP0`S`0VF%%yqtUzu8#i`yW|0)VaaEMtdMtA*;lQ*MMKvYAgyzGUQR*X zy&G#>wbD<~d&mE(E#-*G>4P7N5new!=y%sNvhOS*l;=ZwblgnO< zTxe1PN`724EZI2~<9Q*klI;165Di_|frO=1)6uHlGr(-scc7^ZD0#2bsA0+DK&s?7 zHQ4vzkBWw_KS9a{urKU;q^YMbgCdkOWV#hlE3~K0l2Bbc~HDDAq zbUgyn7?9yXqp6{59!QSmqq--?E=qsL%Y%9H2zk#K`(=voVsEhE!D5)MBTyB+zq zpuOZ-qG8Ezf;9JFJKIOXZ=#{=z_YNo32==T4P94&)Qaox))reJ8oHW5I>cqq@GH^K z6?Zm1Ym=w$?Y+}aG<016k|Hkq8Ev*`=(-0aK{DLQTCev+LzgoackFlIuE1We-lC!F zOpp|LPPnf%*5#t1>t2wR0kK{c4P9S>w2Ldv8Y}4>YUt_%5`Kwm-O1i%Cj8tLqQwpeYQ{bRUOZcYvlhGz$YXGoYyp(7Xsud4T3KXhsBRHbc{^ilb$B z-x%>m%i-r!!+swPQhx*Y8yRqUvyNxRE1;>9_c7W_en>Pd`7Mx;l$?!{z0XHk@+N3n z<(z9T`Pd7nVaZp5bOg9w7Y$uWxri!n0ky{(BO1DH1L+mu`b;!*9T--9%Dzxn9GtJ- zPa{M_R}sj(0N0J8p{oHTUEVlquh*}lq3ftToCgD3m7<~RC6Gk9Ube^DaXdA2odOaH zaLpABU8_Mh$URtltbHd?LsuS1g1i&e?ph=oy1oZlCHK1Ru7UZ~&~+Kex&T*`Xy{5T zz&bCp>0pcv&IU(D$pF#Nl?zf5;JQ{cbS(i{E;Gd*Ym;c`I%*>BeaZEO-F2mC=xPGV zkHTp=%My0_kPD z>u1r>HLwV~(?+fU?^suWsiL845lGbwbm6kpcW?#yS~PU+dlA}D#zudi$B_|rwrJ?8 z0cmJqtie{-8qv^o(8V|xINWOugA1pn=)nw+6AfMGf;ivObrsYTh;PRdmV$_>OL)Qx+8Te^tps8IS zJNl?e)G+!YkRbule}bklAo`%mI2Q!GoA(ycF#2~O!vmuCpMoCDW8KvgO89&9;7^x9 z)4V2j-5W&1=&c}00nwcjoIx-ERHUuF&vQR$8o!Mly+SmM{yxaafav>Og7yihdjT|K zH^h$qvS=7RwG{XL0-_f{GcF+dVrT|^6g&Dl(J=a+Q*lQc(-#SBb<7Wjre2=z3qfg) z`SYO3{5*E_r$oc(J<9ORWI)}|RGM(?e!l~nm0!e;zDYEUe(E&bpAU#W51Ooi=pRAT z5%4DPou*U6=mS8q0-}$CramBgF*J3b#jg8&(J=aJASnUSzkntoAo?HBI05hG?LC7U zMn4y1gFI($UrDAxQ@A#Ez3vkYOI`)iC?$s++gSY)nv#IGt?pS)4NE=&q&eVis}G2V zuDF@FTNvrjk)N9Zr2fUm2kXh6) zdL>9>fa^2S&~?=1I9mmbmPw+aYd%Og;4Qmvi-xX0K^g+yvfJ+pYUmmd;sm&E77bl5 zsB&sK#_mCnc%P_pjI9w3UF{$t`5ZPCF7G?M$Rcv=Sc&uCO)U9VFz+q|OHLCFOCAie zA;5K}Xz02aWW=3}Wv|6GqM_?9km{RwCbHLJxr!wv+iS5}G%WewAXW33kKNVnN^0oZ z4`kJs{7lMzRWejGbmf6mUK_g>bD-HMCEKrs9~2EseibB1-sfp|eJdKecASm9jXX

>R2~xNhW7#v@BpSL>t8hjWmp#K1MMKvl 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≠6> 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S?%rEqd=`wXKtx4%EP>ARZ2~&#gFv z4rI>0i_sGE;ZPEEHGBSfCWCfqvQ{fQL7lHLx4!EXb_2vxiPBtoq7-=d!V`Ht%&F%` zR%l*|z3uj`vNtmnF)Z5psf$c`h)H#qnRSDZ*R@k$(@FkbJ9M*`OI(u)gEOF%ORzql z)w7fwg{DPWfLcZdg$fx8XJ&I;rpAwJguhU#f^US^NHCB@DRIWTRi~B&N=%BP<*6ay zAl&`T?FFG|PO(XEprMJrZsX&G6utXap zT~3X*NYbL2i!AI@xT8gdBYAXIVFI-+sS?3{LnYaH_PDa)-)i*-G9k59>16-6FE%eW zxw!elo-9fCvq+YNCJ=Y?G+37rnc?^y$lUS^(rNB-Hn@-kEgKR>2Vsh?M=_}AvIvB) zCh&AO3Uq8*=BSF*JSFN@jU(|o@6}KfXWh|go&*K=bvn>@ZPDm#_wHIB83~^E54m=jlg6eN?k4Utg=2$5^ zOv~;l6Wu2wz8KHyFg?C?-c%X!)U3?Sz<5wFT zPX-MuraxE(S4J)=^iAbFk}5Kd`-a(R?q zn$bm0^@~axzZ6EYDKnl?Q|sK9sW!<-_PFZIvJVfdm9FMNo74>;H0D#Ai72x13C?Uu zd(HPTv0u=V*h;3lpo#G)obO;dD7~EymdI&DM`D zZ0!1xzA!V?1`ByBRdzccZA!9w=2lGTSoBsiQo$Y9E(i$73k~I!^LcEwFA@r|5Ml(e z1U~g&C}_qprHGPT>s# zO(*s-xH$i@EXJELsb@qZ6L3t@}1CGyBm37V>U)?#=Nk1P8^Cl!u6}H z>Bwp3`hA@ICa7!RexrL+$LLMN2t;MfOXiGnbn^{IFRw7XCICWvYVl+Vzl=>TS5j|-kz7!jM6IEdW+ImSL+8pXEUIWOigVKfAfY2e3@Fd;QiqB} z7E~<}I+Kj|*g2I*R5mDXT$7sy3L&v+`}4?nes3FinD(UJA0wGjP! z5F})ys~h2O6EtNiSn;Hf)v8YBsGU0NB?4FY3_01J>4SGCQ1b=vPvj32+}UX<=kLG*Wo#YJ^2)9;|Lq`|&H z1y)(N$mMcz7m~;!KXkXU^cs;Fa2TuKwLbc_@%{q#(8YQopU|vnonkL+Ic=8EZU!sp{ z$Ox-rznVyYx3x2L^F*!jMY{SXsnndiBuMFHtCkEiUTMdi3(RX*%nWsn7syF#k7)(f zjT-XWClJMD2DON_A`uJmS^^p!f{;XYh!}Q7N_44)=dk*o)j-~`SRo*f(<)(O=ZHHa z9wCg{yA4eRDGi}}yUxvQtqYQ}DwWw?!?SsTXR4W_Ku~?yA!ZtzIhrwh#6pR5RvyI( z-65NUj(JgedWI+i6A$~TrVb}mPL@4&wM{*Tm6hbm+}#zjWxGr*l4Ivz0hE&%-c6@G z0y0sX3;ya@zV@FQ*J$M;uw75k*0`oS?vu!gLCj|Y{k-pz4G43ZkD}F(UA8{Q%O-`Y z!bmfz`k9;clu#q^NiVk>fKTb6XG53HN$ENy>hh1t>DIKt&Tlq^|$VJiLCgRs+T=L z>$qPb52jj#j9l}M9O!YF(xD#n6A&mb&M~2ald3o~+p=1@TeTfmyr0DHCrzoSPmPcj z6GD5XWbr)-BPopvccTy2_1N1ndhzHmkImZn-4$*cs|4fC9_QtV?ePe4ZM`2RuGR}% zc7|}63JGI%jGO??oup)_(xhKBIwGSYehj+#PM4BI4imrD-!8$&ioZm;8?Ny!MKra!Ax)8n!O4zF7_%BmW7|qS^Y9f6 zXYY4c$qY9-PC}AdX-+~ELFHFN_&pJl7*1sZ*PK@eCy}!a&K~ zM7Ouy+^8r`wstuw;gg{(=F#U8K`Gc1V$j(Sv>M{#5AS)ZgkF_Ptq*>a$t`PT;%HiK sf_qI9%DT1gNIE5hJx($;s`11f7F@-m&VqL{X={vck}_dx2~3>-2iIV0fB*mh diff --git a/supergameboy/Makefile b/supergameboy/Makefile deleted file mode 100644 index 60409afa..00000000 --- a/supergameboy/Makefile +++ /dev/null @@ -1,126 +0,0 @@ -include nall/Makefile - -c := $(compiler) -std=gnu99 -cpp := $(subst cc,++,$(compiler)) -std=gnu++0x -flags := -O3 -fomit-frame-pointer -I. -Icommon -Ilibgambatte/include -Ilibgambatte/src -link := - -ifeq ($(platform),osx) - flags := -fPIC $(flags) -else ifeq ($(platform),x) - flags := -fPIC $(flags) - link += -s -endif - -objects := supergameboy -objects += bitmap_font colorconversion cpu gambatte initstate interrupter -objects += memory rtc sound state_osd_elements statesaver video -objects += channel1 channel2 channel3 channel4 duty_unit envelope_unit length_counter -objects += basic_add_event break_event irq_event ly_counter lyc_irq -objects += m3_extra_cycles mode3_event mode0_irq mode1_irq mode2_irq -objects += sc_reader scx_reader sprite_mapper we_master_checker we wx_reader wy -objects += catrom2x catrom3x kreed2xsai maxsthq2x maxsthq3x file - -compile = \ - $(strip \ - $(if $(filter %.c,$<), \ - $(c) $(flags) $1 -c $< -o $@, \ - $(if $(filter %.cpp,$<), \ - $(cpp) $(flags) $1 -c $< -o $@ \ - ) \ - ) \ - ) - -%.o: $<; $(call compile) - -all: build; - -objects := $(patsubst %,obj/%.o,$(objects)) - -#################### -### supergameboy ### -#################### - -obj/supergameboy.o: supergameboy.cpp *.cpp *.hpp $(call rwildcard,interface/) - -################### -### libgambatte ### -################### - -obj/bitmap_font.o: libgambatte/src/bitmap_font.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/colorconversion.o: libgambatte/src/colorconversion.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/cpu.o: libgambatte/src/cpu.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/gambatte.o: libgambatte/src/gambatte.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/initstate.o: libgambatte/src/initstate.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/interrupter.o: libgambatte/src/interrupter.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/memory.o: libgambatte/src/memory.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/rtc.o: libgambatte/src/rtc.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/sound.o: libgambatte/src/sound.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/state_osd_elements.o: libgambatte/src/state_osd_elements.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/statesaver.o: libgambatte/src/statesaver.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/video.o: libgambatte/src/video.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) - -obj/channel1.o: libgambatte/src/sound/channel1.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/channel2.o: libgambatte/src/sound/channel2.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/channel3.o: libgambatte/src/sound/channel3.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/channel4.o: libgambatte/src/sound/channel4.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/duty_unit.o: libgambatte/src/sound/duty_unit.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/envelope_unit.o: libgambatte/src/sound/envelope_unit.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/length_counter.o: libgambatte/src/sound/length_counter.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) - -obj/basic_add_event.o: libgambatte/src/video/basic_add_event.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/break_event.o: libgambatte/src/video/break_event.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/irq_event.o: libgambatte/src/video/irq_event.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/ly_counter.o: libgambatte/src/video/ly_counter.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/lyc_irq.o: libgambatte/src/video/lyc_irq.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/m3_extra_cycles.o: libgambatte/src/video/m3_extra_cycles.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/mode3_event.o: libgambatte/src/video/mode3_event.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/mode0_irq.o: libgambatte/src/video/mode0_irq.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/mode1_irq.o: libgambatte/src/video/mode1_irq.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/mode2_irq.o: libgambatte/src/video/mode2_irq.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/sc_reader.o: libgambatte/src/video/sc_reader.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/scx_reader.o: libgambatte/src/video/scx_reader.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/sprite_mapper.o: libgambatte/src/video/sprite_mapper.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/we_master_checker.o: libgambatte/src/video/we_master_checker.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/we.o: libgambatte/src/video/we.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/wx_reader.o: libgambatte/src/video/wx_reader.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/wy.o: libgambatte/src/video/wy.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) - -obj/catrom2x.o: libgambatte/src/video/filters/catrom2x.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/catrom3x.o: libgambatte/src/video/filters/catrom3x.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/kreed2xsai.o: libgambatte/src/video/filters/kreed2xsai.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/maxsthq2x.o: libgambatte/src/video/filters/maxsthq2x.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) -obj/maxsthq3x.o: libgambatte/src/video/filters/maxsthq3x.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) - -obj/file.o: libgambatte/src/file/file.cpp $(call rwildcard,common/) $(call rwildcard,libgambatte/) - -############### -### targets ### -############### - -build: $(objects) -ifeq ($(platform),win) - $(cpp) $(link) -o supergameboy.dll -shared -Wl,--out-implib,libsupergameboy.a $(objects) $(qtlib) -else ifeq ($(platform),osx) - ar rcs libsupergameboy.a $(objects) - $(cpp) $(link) -o libsupergameboy.dylib -shared -dynamiclib $(objects) $(qtlib) -else - ar rcs libsupergameboy.a $(objects) - $(cpp) $(link) -o libsupergameboy.so -shared -Wl,-soname,libsupergameboy.so.1 $(objects) $(qtlib) -endif - -install: -ifeq ($(platform),osx) - cp libsupergameboy.dylib /usr/local/lib/libsupergameboy.dylib -else - install -D -m 755 libsupergameboy.a $(DESTDIR)$(prefix)/lib - install -D -m 755 libsupergameboy.so $(DESTDIR)$(prefix)/lib - ldconfig -n $(DESTDIR)$(prefix)/lib -endif - -clean: - -@$(call delete,obj/*.o) - -@$(call delete,libsupergameboy.a) - -@$(call delete,supergameboy.dll) - -@$(call delete,libsupergameboy.dylib) - -@$(call delete,libsupergameboy.so) diff --git a/supergameboy/cc.bat b/supergameboy/cc.bat deleted file mode 100644 index 7e2f36ad..00000000 --- a/supergameboy/cc.bat +++ /dev/null @@ -1,2 +0,0 @@ -@mingw32-make -@pause diff --git a/supergameboy/clean.bat b/supergameboy/clean.bat deleted file mode 100644 index d8bb7e0b..00000000 --- a/supergameboy/clean.bat +++ /dev/null @@ -1 +0,0 @@ -@mingw32-make clean diff --git a/supergameboy/common/adaptivesleep.cpp b/supergameboy/common/adaptivesleep.cpp deleted file mode 100644 index 48c40979..00000000 --- a/supergameboy/common/adaptivesleep.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "adaptivesleep.h" - -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)) >> 4; - oversleep = (oversleep * 15 + curOversleep) >> 4; - } - - noSleep = 60; - } else if (--noSleep == 0) { - noSleep = 60; - oversleep = oversleepVar = 0; - } - - while (now - base < inc) - now = getusecs(); - - return 0; -} diff --git a/supergameboy/common/adaptivesleep.h b/supergameboy/common/adaptivesleep.h deleted file mode 100644 index de2010a0..00000000 --- a/supergameboy/common/adaptivesleep.h +++ /dev/null @@ -1,34 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef ADAPTIVE_SLEEP_H -#define ADAPTIVE_SLEEP_H - -#include "usec.h" - -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); -}; - -#endif diff --git a/supergameboy/common/array.h b/supergameboy/common/array.h deleted file mode 100644 index f01806ea..00000000 --- a/supergameboy/common/array.h +++ /dev/null @@ -1,40 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef ARRAY_H -#define ARRAY_H - -#include - -template -class Array { - T *a; - std::size_t sz; - - Array(const Array &ar); - -public: - Array(const std::size_t size = 0) : a(size ? new T[size] : 0), sz(size) {} - ~Array() { delete []a; } - void reset(const std::size_t size) { delete []a; a = size ? new T[size] : 0; sz = size; } - std::size_t size() const { return sz; } - operator T*() { return a; } - operator const T*() const { return a; } -}; - -#endif diff --git a/supergameboy/common/rateest.cpp b/supergameboy/common/rateest.cpp deleted file mode 100644 index c1feba6c..00000000 --- a/supergameboy/common/rateest.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "rateest.h" -#include - -void RateEst::SumQueue::reset() { - q.clear(); - samples_ = usecs_ = 0; -} - -void RateEst::SumQueue::push(const long samples, const usec_t usecs) { - q.push_back(pair_t(samples, usecs)); - samples_ += samples; - usecs_ += usecs; -} - -void RateEst::SumQueue::pop() { - const pair_t &f = q.front(); - samples_ -= f.first; - usecs_ -= f.second; - q.pop_front(); -} - -static usec_t sampleUsecs(long samples, long rate) { - return static_cast((samples * 1000000.0f) / (rate ? rate : 1) + 0.5f); -} - -static long limit(long est, const long reference) { - if (est > reference + (reference >> 6)) - est = reference + (reference >> 6); - else if (est < reference - (reference >> 6)) - est = reference - (reference >> 6); - - return est; -} - -void RateEst::init(long srate, long reference, const long maxSamplePeriod) { - maxPeriod = sampleUsecs(maxSamplePeriod, reference); - - srate <<= UPSHIFT; - reference <<= UPSHIFT; - - this->srate.est = limit(srate, reference); - this->srate.var = srate >> 12; - last = 0; - this->reference = reference; - samples = ((this->srate.est >> UPSHIFT) * 12) << 5; - usecs = 12000000 << 5; - sumq.reset(); -} - -void RateEst::feed(long samplesIn, const usec_t now) { - usec_t usecsIn = now - last; - - if (last && usecsIn < maxPeriod) { - sumq.push(samplesIn, usecsIn); - - while ((usecsIn = sumq.usecs()) > 100000) { - samplesIn = sumq.samples(); - sumq.pop(); - - if (std::abs(static_cast(samplesIn * (1000000.0f * UP) / usecsIn) - reference) < reference >> 1) { - samples += (samplesIn - sumq.samples()) << 5; - usecs += (usecsIn - sumq.usecs()) << 5; - - long est = static_cast(samples * (1000000.0f * UP) / usecs + 0.5f); - est = limit((srate.est * 31 + est + 16) >> 5, reference); - srate.var = (srate.var * 15 + std::abs(est - srate.est) + 8) >> 4; - srate.est = est; - - if (usecs > 16000000 << 5) { - samples = (samples * 3 + 2) >> 2; - usecs = (usecs * 3 + 2) >> 2; - } - } - } - } - - last = now; -} diff --git a/supergameboy/common/rateest.h b/supergameboy/common/rateest.h deleted file mode 100644 index 3e109541..00000000 --- a/supergameboy/common/rateest.h +++ /dev/null @@ -1,73 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef RATEEST_H -#define RATEEST_H - -#include "usec.h" -#include -#include - -class RateEst { -public: - struct Result { - long est; - long var; - }; - -private: - class SumQueue { - typedef std::pair pair_t; - typedef std::deque q_t; - - q_t q; - long samples_; - usec_t usecs_; - - public: - SumQueue() : samples_(0), usecs_(0) {} - void reset(); - long samples() const { return samples_; } - usec_t usecs() const { return usecs_; } - void push(long samples, usec_t usecs); - void pop(); - }; - - enum { UPSHIFT = 5 }; - enum { UP = 1 << UPSHIFT }; - - Result srate; - SumQueue sumq; - usec_t last; - usec_t usecs; - usec_t maxPeriod; - long reference; - long samples; - -public: - RateEst(long srate = 0) { init(srate); } - RateEst(long srate, long reference) { init(srate, reference); } - void init(long srate) { init(srate, srate); } - void init(long srate, long reference) { init(srate, reference, reference); } - void init(long srate, long reference, long maxSamplePeriod); - void reset() { last = 0; } - void feed(long samples, usec_t usecs = getusecs()); - const Result result() const { const Result res = { (srate.est + UP / 2) >> UPSHIFT, (srate.var + UP / 2) >> UPSHIFT }; return res; } -}; - -#endif diff --git a/supergameboy/common/resample/blackmansinc.h b/supergameboy/common/resample/blackmansinc.h deleted file mode 100644 index 86578239..00000000 --- a/supergameboy/common/resample/blackmansinc.h +++ /dev/null @@ -1,100 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef BLACKMANSINC_H -#define BLACKMANSINC_H - -#include "convoluter.h" -#include "subresampler.h" -#include "makesinckernel.h" -#include "cic4.h" -#include -#include - -template -class BlackmanSinc : public SubResampler { - PolyPhaseConvoluter convoluters[channels]; - short *kernel; - - static double blackmanWin(const long i, const long M) { - static const double PI = 3.14159265358979323846; - return 0.42 - 0.5 * std::cos(2 * PI * i / M) + 0.08 * std::cos(4 * PI * i / M); - } - - void init(unsigned div, unsigned phaseLen, double fc); - -public: - enum { MUL = phases }; - - typedef Cic4 Cic; - static float cicLimit() { return 4.7f; } - - class RollOff { - static unsigned toTaps(const float rollOffWidth) { - static const float widthTimesTaps = 4.5f; - return std::ceil(widthTimesTaps / rollOffWidth); - } - - static float toFc(const float rollOffStart, const int taps) { - static 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) { init(div, phaseLen, fc); } - BlackmanSinc(unsigned div, RollOff ro) { init(div, ro.taps, ro.fc); } - ~BlackmanSinc() { delete[] kernel; } - std::size_t resample(short *out, const short *in, std::size_t inlen); - void adjustDiv(unsigned div); - unsigned mul() const { return MUL; } - unsigned div() const { return convoluters[0].div(); } -}; - -template -void BlackmanSinc::init(const unsigned div, const unsigned phaseLen, const double fc) { - kernel = new short[phaseLen * phases]; - - makeSincKernel(kernel, phases, phaseLen, fc, blackmanWin); - - for (unsigned i = 0; i < channels; ++i) - convoluters[i].reset(kernel, phaseLen, div); -} - -template -std::size_t BlackmanSinc::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 = convoluters[i].filter(out + i, in + i, inlen); - - return samplesOut; -} - -template -void BlackmanSinc::adjustDiv(const unsigned div) { - for (unsigned i = 0; i < channels; ++i) - convoluters[i].adjustDiv(div); -} - -#endif diff --git a/supergameboy/common/resample/chainresampler.cpp b/supergameboy/common/resample/chainresampler.cpp deleted file mode 100644 index 6836a05b..00000000 --- a/supergameboy/common/resample/chainresampler.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "chainresampler.h" - -float ChainResampler::get2ChainMidRatio(const float ratio, const float rollOff) { - return std::sqrt(0.5f * rollOff * ratio) + 1; -} - -float ChainResampler::get2ChainCost(const float ratio, const float rollOff, const float midRatio) { - return midRatio * ratio / ((midRatio - 1) * 2) + midRatio / rollOff; -} - -float ChainResampler::get3ChainRatio1(float ratio1, const float rollOff, const float ratio) { - for (unsigned n = 8; n--;) { - ratio1 = std::sqrt(ratio - ratio / get3ChainRatio2(ratio1, rollOff)) + 1; - } - - return ratio1; -} - -float ChainResampler::get3ChainCost(const float ratio, const float rollOff, const float ratio1, const float ratio2) { - return ratio1 * ratio / ((ratio1 - 1) * 2) + ratio2 * ratio1 / ((ratio2 - 1) * 2) + ratio2 / rollOff; -} - -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 (bufferSize < bufSz[0] + bufSz[1]) { - delete[] buffer; - buffer = (bufferSize = bufSz[0] + bufSz[1]) ? new short[bufferSize * channels] : NULL; - } - - buffer2 = bufSz[1] ? buffer + bufSz[0] * channels : NULL; - - return (maxOut_ = inSz); -} - -void ChainResampler::adjustRate(const long inRate, const long outRate) { - unsigned long mul, div; - - exactRatio(mul, div); - - bigSinc->adjustDiv(static_cast(inRate) * mul / (static_cast(div / bigSinc->div()) * outRate) + 0.5); - - reallocateBuffer(); - setRate(inRate, 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(); - } -} - -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 = NULL; - - for (list_t::iterator it = list.begin(); it != list.end(); ++it) { - outbuf = ++list_t::iterator(it) == list.end() ? out : (inbuf == buf ? buf2 : buf); - inlen = (*it)->resample(outbuf, inbuf, inlen); - inbuf = outbuf; - } - - return inlen; -} - -void ChainResampler::uninit() { - delete[] buffer; - buffer2 = buffer = NULL; - bufferSize = 0; - periodSize = 0; - bigSinc = NULL; - - for (list_t::iterator it = list.begin(); it != list.end(); ++it) - delete *it; - - list.clear(); -} diff --git a/supergameboy/common/resample/chainresampler.h b/supergameboy/common/resample/chainresampler.h deleted file mode 100644 index aeb52d6c..00000000 --- a/supergameboy/common/resample/chainresampler.h +++ /dev/null @@ -1,189 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef CHAINRESAMPLER_H -#define CHAINRESAMPLER_H - -#include -#include -#include -#include -#include -#include "subresampler.h" -#include "resampler.h" -#include "upsampler.h" - -class ChainResampler : public Resampler { - enum { channels = 2 }; - - typedef std::list list_t; - - list_t list; - SubResampler *bigSinc; - short *buffer; - short *buffer2; - std::size_t bufferSize; - std::size_t periodSize; - std::size_t maxOut_; - - static float get1ChainCost(const float ratio, const float rollOff) { - return ratio / rollOff; - } - - static float get2ChainMidRatio(float ratio, float rollOff); - static float get2ChainCost(float ratio, float rollOff, float midRatio); - - static float get3ChainRatio2(const float ratio1, const float rollOff) { - return get2ChainMidRatio(ratio1, rollOff); - } - - static float get3ChainRatio1(float ratio1, float rollOff, float ratio); - static float get3ChainCost(float ratio, float rollOff, float ratio1, float ratio2); - - template class Sinc> - std::size_t downinit(long inRate, long outRate, std::size_t periodSize); - - std::size_t reallocateBuffer(); - - template class Sinc> - std::size_t upinit(long inRate, long outRate, std::size_t periodSize); - -public: - ChainResampler() : bigSinc(NULL), buffer(NULL), buffer2(NULL), bufferSize(0), periodSize(0) {} - ~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_; } - std::size_t resample(short *out, const short *in, std::size_t inlen); - void uninit(); -}; - -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 - return downinit(inRate, outRate, periodSize); -} - -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; - - - const float rollOff = std::max((outRate - 36000.0f + outRate - 40000.0f) / outRate, 0.2f); - - double ratio = static_cast(inRate) / outRate; - - 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; - } - - { - int div_2c = ratio * SmallSinc::MUL / get2ChainMidRatio(ratio, rollOff) + 0.5f; - double ratio_2c = ratio * SmallSinc::MUL / div_2c; - float cost_2c = get2ChainCost(ratio, rollOff, ratio_2c); - - if (cost_2c < get1ChainCost(ratio, rollOff)) { - const int div1_3c = ratio * SmallSinc::MUL / get3ChainRatio1(ratio_2c, rollOff, ratio) + 0.5f; - const double ratio1_3c = ratio * SmallSinc::MUL / div1_3c; - const int div2_3c = ratio1_3c * SmallSinc::MUL / get3ChainRatio2(ratio1_3c, rollOff) + 0.5f; - const double ratio2_3c = ratio1_3c * SmallSinc::MUL / div2_3c; - - if (get3ChainCost(ratio, rollOff, ratio1_3c, ratio2_3c) < cost_2c) { - list.push_back(new SmallSinc(div1_3c, typename SmallSinc::RollOff(0.5f / ratio, (ratio1_3c - 1) / ratio))); - ratio = ratio1_3c; - div_2c = div2_3c; - ratio_2c = ratio2_3c; - } - - list.push_back(new SmallSinc(div_2c, typename SmallSinc::RollOff(0.5f / ratio, (ratio_2c - 1) / ratio))); - ratio = ratio_2c; - } - } - - list.push_back(bigSinc = new BigSinc(BigSinc::MUL * ratio + 0.5, - typename BigSinc::RollOff(0.5f * (1 + std::max((outRate - 40000.0f) / outRate, 0.0f) - rollOff) / ratio, 0.5f * rollOff / ratio))); - - return reallocateBuffer(); -} - -template class Sinc> -std::size_t ChainResampler::upinit(const long inRate, const long outRate, const std::size_t periodSize) { - typedef Sinc BigSinc; - typedef Sinc SmallSinc; - - uninit(); - this->periodSize = periodSize; - - const float rollOff = std::max((inRate - 36000.0f) / inRate, 0.2f); - - 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; - } - } - - { - 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))); - 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))); - ratio = ratio_2c; - } - } - - list.push_front(bigSinc = new BigSinc(BigSinc::MUL / ratio + 0.5, typename BigSinc::RollOff(0.5f * (1 - rollOff), 0.5f * rollOff))); - - return reallocateBuffer(); -} - -#endif diff --git a/supergameboy/common/resample/cic2.h b/supergameboy/common/resample/cic2.h deleted file mode 100644 index 1f12bfc9..00000000 --- a/supergameboy/common/resample/cic2.h +++ /dev/null @@ -1,198 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef CIC2_H -#define CIC2_H - -#include "subresampler.h" - -template -class Cic2Core { -// enum { BUFLEN = 64 }; -// unsigned long buf[BUFLEN]; - unsigned long sum1; - unsigned long sum2; - unsigned long prev1; - unsigned long prev2; - unsigned div_; - unsigned nextdivn; -// unsigned bufpos; - -public: - Cic2Core(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 -void Cic2Core::reset(const unsigned div) { - sum2 = sum1 = 0; - prev2 = prev1 = 0; - this->div_ = div; - nextdivn = div; -// bufpos = div - 1; -} - -template -std::size_t Cic2Core::filter(short *out, const short *const in, std::size_t inlen) { -// const std::size_t produced = (inlen + div_ - (bufpos + 1)) / div_; - const std::size_t produced = (inlen + div_ - nextdivn) / div_; - const long mul = 0x10000 / (div_ * div_); // trouble if div is too large, may be better to only support power of 2 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; - sm1 += static_cast(*s); - s += channels; - buf[i++] = sm2 += s1; - buf[i++] = sm2 += sm1; - s1 = sm1 += static_cast(*s); - s += channels; - sm1 += static_cast(*s); - s += channels; - 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 = static_cast(out2 - prev1) * mul / 0x10000; - 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 = static_cast(out2 - prev1) * mul / 0x10000; - prev1 = out2; - out += channels; - } - - bufpos -= inlen; - } - - sum1 = sm1; - sum2 = sm2;*/ - - unsigned long sm1 = sum1; - unsigned long sm2 = sum2; - - if (inlen >= nextdivn) { - unsigned divn = nextdivn; - std::size_t n = produced; - - do { - do { - sm1 += static_cast(*s); - s += channels; - sm2 += sm1; - } while (--divn); - - const unsigned long out2 = sm2 - prev2; - prev2 = sm2; - - *out = static_cast(out2 - prev1) * mul / 0x10000; - 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; - sm2 += sm1; - } - } - - sum1 = sm1; - sum2 = sm2; - - return produced; -} - -template -class Cic2 : public SubResampler { - Cic2Core cics[channels]; - -public: - enum { MAX_DIV = 64 }; - Cic2(unsigned div); - std::size_t resample(short *out, const short *in, std::size_t inlen); - unsigned mul() const { return 1; } - unsigned div() const { return cics[0].div(); } -}; - -template -Cic2::Cic2(const unsigned div) { - for (unsigned i = 0; i < channels; ++i) - cics[i].reset(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; -} - -#endif diff --git a/supergameboy/common/resample/cic3.h b/supergameboy/common/resample/cic3.h deleted file mode 100644 index 85b9dcee..00000000 --- a/supergameboy/common/resample/cic3.h +++ /dev/null @@ -1,382 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef CIC3_H -#define CIC3_H - -#include "subresampler.h" - -template -class Cic3Core { -// enum { BUFLEN = 64 }; -// unsigned long buf[BUFLEN]; - unsigned long sum1; - unsigned long sum2; - unsigned long sum3; - unsigned long prev1; - unsigned long prev2; - unsigned long prev3; - unsigned div_; - unsigned nextdivn; -// unsigned bufpos; - -public: - Cic3Core(const unsigned div = 1) { - 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 -void Cic3Core::reset(const unsigned div) { - sum3 = sum2 = sum1 = 0; - prev3 = prev2 = prev1 = 0; - this->div_ = div; - nextdivn = div; -// bufpos = div - 1; -} - -template -std::size_t Cic3Core::filter(short *out, const short *const in, std::size_t inlen) { -// const std::size_t produced = (inlen + div_ - (bufpos + 1)) / div_; - const std::size_t produced = (inlen + div_ - nextdivn) / div_; - const long mul = 0x10000 / (div_ * div_ * div_); // trouble if div is too large, may be better to only support power of 2 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; - sm1 += static_cast(*s); - s += channels; - unsigned long s2 = sm2 += s1; - sm2 += sm1; - 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 = static_cast(out2 - prev1) * mul / 0x10000; - 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 = static_cast(out2 - prev1) * mul / 0x10000; - 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) { - unsigned divn = nextdivn; - std::size_t n = produced; - - do { - do { - sm1 += static_cast(*s); - sm2 += sm1; - sm3 += sm2; - s += channels; - } while (--divn); - - const unsigned long out3 = sm3 - prev3; - prev3 = sm3; - - const unsigned long out2 = out3 - prev2; - prev2 = out3; - - *out = static_cast(out2 - prev1) * mul / 0x10000; - 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); - sm2 += sm1; - sm3 += sm2; - s += channels; - } - } - - sum1 = sm1; - sum2 = sm2; - sum3 = sm3; - - return produced; -} - -/*template -class Cic3EvenOddCore { - unsigned long sum1; - unsigned long sum2; - unsigned long sum3; - unsigned long prev1; - unsigned long prev2; - 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 -void Cic3EvenOddCore::reset(const unsigned div) { - sum3 = sum2 = sum1 = 0; - prev3 = prev2 = prev1 = 0; - this->div_ = div; - nextdivn = div; -} - -template -void Cic3EvenOddCore::filterEven(short *out, const short *s, std::size_t n) { - const int mul = getMul(div_); - 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; - sm1 += static_cast(*s); - s += channels; - unsigned long s2 = sm2 += s1; - sm2 += sm1; - sm3 += s2; - sm3 += sm2; - } while (--sn); - } - - const unsigned long out3 = sm3 - prev3; - prev3 = sm3; - const unsigned long out2 = out3 - prev2; - prev2 = out3; - *out = static_cast(out2 - prev1) * mul / 0x10000; - prev1 = out2; - out += channels; - } - - sum1 = sm1; - sum2 = sm2; - sum3 = sm3; -} - -template -void Cic3EvenOddCore::filterOdd(short *out, const short *s, std::size_t n) { - const int mul = getMul(div_); - 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; - sm1 += static_cast(*s); - s += channels; - unsigned long s2 = sm2 += s1; - sm2 += sm1; - sm3 += s2; - 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; - prev2 = out3; - *out = static_cast(out2 - prev1) * mul / 0x10000; - prev1 = out2; - out += channels; - } - - sum1 = sm1; - sum2 = sm2; - sum3 = sm3; -} - -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; - sum2 += sum1; - sum3 += sum2; - } while (--divn); - } - - const unsigned long out3 = sum3 - prev3; - prev3 = sum3; - const unsigned long out2 = out3 - prev2; - prev2 = out3; - *out = static_cast(out2 - prev1) * getMul(div_) / 0x10000; - 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; - sum2 += sum1; - sum3 += sum2; - } - } - - return (out - outStart) / channels; -}*/ - -template -class Cic3 : public SubResampler { - Cic3Core cics[channels]; - -public: - enum { MAX_DIV = 23 }; - Cic3(unsigned div); - std::size_t resample(short *out, const short *in, std::size_t inlen); - unsigned mul() const { return 1; } - unsigned div() const { return cics[0].div(); } -}; - -template -Cic3::Cic3(const unsigned div) { - for (unsigned i = 0; i < channels; ++i) - cics[i].reset(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; -} - -#endif diff --git a/supergameboy/common/resample/cic4.h b/supergameboy/common/resample/cic4.h deleted file mode 100644 index 430cb03d..00000000 --- a/supergameboy/common/resample/cic4.h +++ /dev/null @@ -1,237 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef CIC4_H -#define CIC4_H - -#include "subresampler.h" - -template -class Cic4Core { - enum { BUFLEN = 64 }; - unsigned long buf[BUFLEN]; - unsigned long sum1; - unsigned long sum2; - unsigned long sum3; - unsigned long sum4; - unsigned long prev1; - unsigned long prev2; - unsigned long prev3; - unsigned long prev4; - unsigned div_; -// unsigned nextdivn; - unsigned bufpos; - -public: - Cic4Core(const unsigned div = 1) { - 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 -void Cic4Core::reset(const unsigned div) { - sum4 = sum3 = sum2 = sum1 = 0; - prev4 = prev3 = prev2 = prev1 = 0; - this->div_ = div; -// nextdivn = div; - bufpos = div - 1; -} - -template -std::size_t Cic4Core::filter(short *out, const short *const in, std::size_t inlen) { - const std::size_t produced = (inlen + div_ - (bufpos + 1)) / div_; -// const std::size_t produced = (inlen + div_ - nextdivn) / div_; - const long mul = 0x10000 / (div_ * div_ * div_ * div_); // trouble if div is too large, may be better to only support power of 2 div - const short *s = in; - - unsigned long sm1 = sum1; - unsigned long sm2 = sum2; - unsigned long sm3 = sum3; - unsigned long sm4 = sum4; - - 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; - sm1 += static_cast(*s); - s += channels; - unsigned long s2 = sm2 += s1; - sm2 += sm1; - unsigned long s3 = sm3 += s2; - sm3 += sm2; - buf[i++] = sm4 += s3; - buf[i++] = sm4 += sm3; - s1 = sm1 += static_cast(*s); - s += channels; - sm1 += static_cast(*s); - s += channels; - s2 = sm2 += s1; - sm2 += sm1; - s3 = sm3 += s2; - sm3 += sm2; - buf[i++] = sm4 += s3; - buf[i++] = sm4 += sm3; - } while (--n); - - while (bufpos < end) { - const unsigned long out4 = buf[bufpos] - prev4; - prev4 = buf[bufpos]; - bufpos += div_; - - const unsigned long out3 = out4 - prev3; - prev3 = out4; - const unsigned long out2 = out3 - prev2; - prev2 = out3; - - *out = static_cast(out2 - prev1) * mul / 0x10000; - 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; - sm3 += sm2; - buf[i++] = sm4 += sm3; - } while (--n); - - while (bufpos < inlen) { - const unsigned long out4 = buf[bufpos] - prev4; - prev4 = buf[bufpos]; - bufpos += div_; - - const unsigned long out3 = out4 - prev3; - prev3 = out4; - const unsigned long out2 = out3 - prev2; - prev2 = out3; - - *out = static_cast(out2 - prev1) * mul / 0x10000; - prev1 = out2; - out += channels; - } - - bufpos -= inlen; - } - - sum1 = sm1; - sum2 = sm2; - sum3 = sm3; - sum4 = sm4; - - /*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); - s += channels; - sm2 += sm1; - sm3 += sm2; - sm4 += sm3; - } while (--divn); - - const unsigned long out4 = sm4 - prev4; - prev4 = sm4; - const unsigned long out3 = out4 - prev3; - prev3 = out4; - const unsigned long out2 = out3 - prev2; - prev2 = out3; - *out = static_cast(out2 - prev1) * mul / 0x10000; - 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; - sm2 += sm1; - sm3 += sm2; - 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 }; - Cic4(unsigned div); - std::size_t resample(short *out, const short *in, std::size_t inlen); - unsigned mul() const { return 1; } - unsigned div() const { return cics[0].div(); } -}; - -template -Cic4::Cic4(const unsigned div) { - for (unsigned i = 0; i < channels; ++i) - cics[i].reset(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; -} - -#endif diff --git a/supergameboy/common/resample/convoluter.h b/supergameboy/common/resample/convoluter.h deleted file mode 100644 index 41fab0d0..00000000 --- a/supergameboy/common/resample/convoluter.h +++ /dev/null @@ -1,156 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef CONVOLUTER_H -#define CONVOLUTER_H - -#include -#include - -template -class PolyPhaseConvoluter { - const short *kernel; - short *prevbuf; - - unsigned phaseLen; - unsigned div_; - unsigned x_; - -public: - PolyPhaseConvoluter() : kernel(NULL), prevbuf(NULL), phaseLen(0), div_(0), x_(0) {} - PolyPhaseConvoluter(const short *kernel, unsigned phaseLen, unsigned div) { reset(kernel, phaseLen, div); } - ~PolyPhaseConvoluter() { delete[] prevbuf; } - void reset(const short *kernel, unsigned phaseLen, unsigned div); - std::size_t filter(short *out, const short *in, std::size_t inlen); - void adjustDiv(const unsigned div) { this->div_ = div; } - unsigned div() const { return div_; } -}; - -template -void PolyPhaseConvoluter::reset(const short *const kernel, const unsigned phaseLen, const unsigned div) { - this->kernel = kernel; - this->phaseLen = phaseLen; - this->div_ = div; - x_ = 0; - delete[] prevbuf; - prevbuf = new short[phaseLen]; - std::fill(prevbuf, prevbuf + phaseLen, 0); -} - -template -std::size_t PolyPhaseConvoluter::filter(short *out, const short *const in, std::size_t inlen) { - if (!kernel || !inlen) - return 0; - - /*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; - j += (phases - (x - M + j) % phases) % phases; // adjust j so we don't start on a virtual 0 sample - - for (; j < end; j += phases) { - buffer[x] += kernel[j] * start[(x - M + j) / phases]; - } - }*/ - - /*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; - j += (phases - (x - M + j) % phases) % phases; // adjust j so we don't start on a virtual 0 sample - const short *k = kernel + (j % phases) * phaseLen + j / phases; - const short *s = start + (x - M + j) / phases; - int n = ((end - j) + phases - 1) / phases; - - do { - buffer[x] += *k++ * *s++; - } while (--n); - }*/ - - const std::size_t M = phaseLen * phases - 1; - inlen *= phases; - std::size_t x = x_; - - for (; x < (M < inlen ? M : inlen); x += div_) { - long acc = 0; - const unsigned phase = (phases - (x + 1) % phases) % phases; // adjust phase so we don't start on a virtual 0 sample - const short *s = prevbuf + (x + 1 + phase) / phases; - const short *k = kernel + phase * phaseLen; - unsigned n = prevbuf + phaseLen - s; - - while (n--) { - acc += *k++ * *s++; - } - - s = in; - n = x / phases + 1; - - do { - acc += *k++ * *s; - s += channels; - } while (--n); - - *out = acc / 0x10000; - out += channels; - } - - for (; x < inlen; x += div_) { - long acc = 0; - const unsigned phase = (phases - (x - M) % phases) % phases; // adjust phase so we don't start on a virtual 0 sample - const short *s = in + ((x - M + phase) / phases) * channels; - const short *k = kernel + phase * phaseLen; -// unsigned n = (M + 1/* - phase + phases - 1*/) / phases; - unsigned n = phaseLen; - - do { - acc += *k++ * *s; - s += channels; - } while (--n); - - *out = acc / 0x10000; - out += channels; - } - - 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, i * sizeof(short)); - - p += i; - n -= i; - s = in; - } - - do { - *p++ = *s; - s += channels; - } while (--n); - } - - return produced; -} - -#endif diff --git a/supergameboy/common/resample/hammingsinc.h b/supergameboy/common/resample/hammingsinc.h deleted file mode 100644 index bb50daee..00000000 --- a/supergameboy/common/resample/hammingsinc.h +++ /dev/null @@ -1,100 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef HAMMINGSINC_H -#define HAMMINGSINC_H - -#include "convoluter.h" -#include "subresampler.h" -#include "makesinckernel.h" -#include "cic3.h" -#include -#include - -template -class HammingSinc : public SubResampler { - PolyPhaseConvoluter convoluters[channels]; - short *kernel; - - static double hammingWin(const long i, const long M) { - static const double PI = 3.14159265358979323846; - return 0.53836 - 0.46164 * std::cos(2 * PI * i / M); - } - - void init(unsigned div, unsigned phaseLen, double fc); - -public: - enum { MUL = phases }; - - typedef Cic3 Cic; - static float cicLimit() { return 4.2f; } - - class RollOff { - static unsigned toTaps(const float rollOffWidth) { - static const float widthTimesTaps = 3.0f; - return std::ceil(widthTimesTaps / rollOffWidth); - } - - static float toFc(const float rollOffStart, const int taps) { - static 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) { init(div, phaseLen, fc); } - HammingSinc(unsigned div, RollOff ro) { init(div, ro.taps, ro.fc); } - ~HammingSinc() { delete[] kernel; } - std::size_t resample(short *out, const short *in, std::size_t inlen); - void adjustDiv(unsigned div); - unsigned mul() const { return MUL; } - unsigned div() const { return convoluters[0].div(); } -}; - -template -void HammingSinc::init(const unsigned div, const unsigned phaseLen, const double fc) { - kernel = new short[phaseLen * phases]; - - makeSincKernel(kernel, phases, phaseLen, fc, hammingWin); - - for (unsigned i = 0; i < channels; ++i) - convoluters[i].reset(kernel, phaseLen, div); -} - -template -std::size_t HammingSinc::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 = convoluters[i].filter(out + i, in + i, inlen); - - return samplesOut; -} - -template -void HammingSinc::adjustDiv(const unsigned div) { - for (unsigned i = 0; i < channels; ++i) - convoluters[i].adjustDiv(div); -} - -#endif diff --git a/supergameboy/common/resample/linint.h b/supergameboy/common/resample/linint.h deleted file mode 100644 index 0c6d8cb2..00000000 --- a/supergameboy/common/resample/linint.h +++ /dev/null @@ -1,129 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef LININT_H -#define LININT_H - -#include -#include "resampler.h" -#include "u48div.h" - -template -class LinintCore { - unsigned long ratio; - std::size_t pos_; - unsigned fracPos_; - int prevSample_; - -public: - LinintCore(long inRate = 1, long outRate = 1) { init(inRate, outRate); } - void adjustRate(long inRate, long outRate) { ratio = (static_cast(inRate) / outRate) * 0x10000 + 0.5; } - void exactRatio(unsigned long &mul, unsigned long &div) const { mul = 0x10000; div = ratio; } - void init(long inRate, long outRate); - std::size_t maxOut(std::size_t inlen) const { return inlen ? u48div(inlen - 1, 0xFFFF, ratio) + 1 : 0; } - std::size_t resample(short *out, const short *in, std::size_t inlen); -}; - -template -void LinintCore::init(const long inRate, const long outRate) { - adjustRate(inRate, outRate); - pos_ = (ratio >> 16) + 1; - fracPos_ = ratio & 0xFFFF; - prevSample_ = 0; -} - -template -std::size_t LinintCore::resample(short *const out, const short *const in, const std::size_t inlen) { - std::size_t opos = 0; - std::size_t pos = pos_; - unsigned fracPos = fracPos_; - int prevSample = prevSample_; - - if (pos < inlen) { - if (pos != 0) - prevSample = in[(pos-1) * channels]; - - for (;;) { - out[opos] = prevSample + (in[pos * channels] - prevSample) * static_cast(fracPos) / 0x10000; - opos += channels; - - { - const unsigned long next = ratio + fracPos; - - pos += next >> 16; - fracPos = next & 0xFFFF; - } - - if (pos < inlen) { - prevSample = in[(pos-1) * channels]; - } else - break; - } - - if (pos == inlen) - prevSample = in[(pos-1) * channels]; - } - -// const std::size_t produced = ((pos - pos_) * 0x10000 + fracPos - fracPos_) / ratio; - - pos_ = pos - inlen; - fracPos_ = fracPos; - prevSample_ = prevSample; - - return opos / channels; -} - -template -class Linint : public Resampler { - LinintCore cores[channels]; - -public: - Linint(long inRate, long outRate); - void adjustRate(long inRate, long outRate); - void exactRatio(unsigned long &mul, unsigned long &div) const { cores[0].exactRatio(mul, div); } - std::size_t maxOut(std::size_t inlen) const { return cores[0].maxOut(inlen); } - std::size_t resample(short *out, const short *in, std::size_t inlen); -}; - -template -Linint::Linint(const long inRate, const long outRate) { - setRate(inRate, outRate); - - for (unsigned i = 0; i < channels; ++i) - cores[i].init(inRate, outRate); -} - -template -void Linint::adjustRate(const long inRate, const long outRate) { - setRate(inRate, outRate); - - for (unsigned i = 0; i < channels; ++i) - cores[i].adjustRate(inRate, 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 (unsigned i = 0; i < channels; ++i) - outlen = cores[i].resample(out + i, in + i, inlen); - - return outlen; -} - -#endif diff --git a/supergameboy/common/resample/makesinckernel.h b/supergameboy/common/resample/makesinckernel.h deleted file mode 100644 index c6515f2d..00000000 --- a/supergameboy/common/resample/makesinckernel.h +++ /dev/null @@ -1,152 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef MAKE_SINC_KERNEL_H -#define MAKE_SINC_KERNEL_H - -#include -#include - -template -void makeSincKernel(short *const kernel, const unsigned phases, const unsigned phaseLen, double fc, Window win) { - static const double PI = 3.14159265358979323846; - fc /= phases; - - /*{ - double *const dkernel = new double[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[(i % 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 / maxabsgain; - - for (long i = 0; i < M + 1; ++i) - kernel[i] = std::floor(dkernel[i] * gain + 0.5); - - delete[] dkernel; - }*/ - - // The following is equivalent to the more readable version above - - const long M = static_cast(phaseLen) * phases - 1; - - double *const dkernel = new double[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 / maxabsgain; - const double *dk = dkernel; - - for (unsigned ph = 0; ph < phases; ++ph) { - short *k = kernel + ph * phaseLen; - short *km = kernel + M - ph * phaseLen; - - for (long i = ph; i < M / 2 + 1; i += phases) - *km-- = *k++ = std::floor(*dk++ * gain + 0.5); - } - - delete[] dkernel; -} - -#endif diff --git a/supergameboy/common/resample/rectsinc.h b/supergameboy/common/resample/rectsinc.h deleted file mode 100644 index 9f99ed6b..00000000 --- a/supergameboy/common/resample/rectsinc.h +++ /dev/null @@ -1,99 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef RECTSINC_H -#define RECTSINC_H - -#include "convoluter.h" -#include "subresampler.h" -#include "makesinckernel.h" -#include "cic2.h" -#include -#include - -template -class RectSinc : public SubResampler { - PolyPhaseConvoluter convoluters[channels]; - short *kernel; - - static double rectWin(const long /*i*/, const long /*M*/) { - return 1; - } - - void init(unsigned div, unsigned phaseLen, double fc); - -public: - enum { MUL = phases }; - - typedef Cic2 Cic; - static float cicLimit() { return 2.0f; } - - class RollOff { - static unsigned toTaps(const float rollOffWidth) { - static const float widthTimesTaps = 0.9f; - return std::ceil(widthTimesTaps / rollOffWidth); - } - - static float toFc(const float rollOffStart, const int taps) { - static 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) { init(div, phaseLen, fc); } - RectSinc(unsigned div, RollOff ro) { init(div, ro.taps, ro.fc); } - ~RectSinc() { delete[] kernel; } - std::size_t resample(short *out, const short *in, std::size_t inlen); - void adjustDiv(unsigned div); - unsigned mul() const { return MUL; } - unsigned div() const { return convoluters[0].div(); } -}; - -template -void RectSinc::init(const unsigned div, const unsigned phaseLen, const double fc) { - kernel = new short[phaseLen * phases]; - - makeSincKernel(kernel, phases, phaseLen, fc, rectWin); - - for (unsigned i = 0; i < channels; ++i) - convoluters[i].reset(kernel, phaseLen, div); -} - -template -std::size_t RectSinc::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 = convoluters[i].filter(out + i, in + i, inlen); - - return samplesOut; -} - -template -void RectSinc::adjustDiv(const unsigned div) { - for (unsigned i = 0; i < channels; ++i) - convoluters[i].adjustDiv(div); -} - -#endif diff --git a/supergameboy/common/resample/resampler.h b/supergameboy/common/resample/resampler.h deleted file mode 100644 index f3d448d9..00000000 --- a/supergameboy/common/resample/resampler.h +++ /dev/null @@ -1,43 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef RESAMPLER_H -#define RESAMPLER_H - -#include - -class Resampler { - long inRate_; - long outRate_; - -protected: - void setRate(const long inRate, const long outRate) { inRate_ = inRate; outRate_ = outRate; } - -public: - Resampler() : inRate_(0), outRate_(0) {} - long inRate() const { return inRate_; } - long outRate() const { return outRate_; } - - virtual void adjustRate(long inRate, long outRate) = 0; - virtual void exactRatio(unsigned long &mul, unsigned long &div) const = 0; - virtual std::size_t maxOut(std::size_t inlen) const = 0; - virtual std::size_t resample(short *out, const short *in, std::size_t inlen) = 0; - virtual ~Resampler() {} -}; - -#endif diff --git a/supergameboy/common/resample/resamplerinfo.cpp b/supergameboy/common/resample/resamplerinfo.cpp deleted file mode 100644 index 3abcdaf8..00000000 --- a/supergameboy/common/resample/resamplerinfo.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "resamplerinfo.h" -#include "chainresampler.h" -#include "hammingsinc.h" -#include "blackmansinc.h" -#include "rectsinc.h" -#include "linint.h" - -struct LinintInfo { - static Resampler* create(long inRate, long outRate, std::size_t) { return new Linint<2>(inRate, outRate); } -}; - -struct RectsincInfo { - static Resampler* create(long inRate, long outRate, std::size_t periodSz) { - ChainResampler *r = new ChainResampler; - r->init(inRate, outRate, periodSz); - return r; - } -}; - -struct HammingsincInfo { - static Resampler* create(long inRate, long outRate, std::size_t periodSz) { - ChainResampler *r = new ChainResampler; - r->init(inRate, outRate, periodSz); - return r; - } -}; - -struct BlackmansincInfo { - static Resampler* create(long inRate, long outRate, std::size_t periodSz) { - ChainResampler *r = new ChainResampler; - r->init(inRate, outRate, periodSz); - return r; - } -}; - -const ResamplerInfo ResamplerInfo::resamplers[] = { - { "2-tap linear interpolation", LinintInfo::create }, - { "Rectangular windowed sinc (~20 dB SNR)", RectsincInfo::create }, - { "Hamming windowed sinc (~50 dB SNR)", HammingsincInfo::create }, - { "Blackman windowed sinc (~70 dB SNR)", BlackmansincInfo::create } -}; - -const unsigned ResamplerInfo::num_ = sizeof(ResamplerInfo::resamplers) / sizeof(ResamplerInfo); diff --git a/supergameboy/common/resample/resamplerinfo.h b/supergameboy/common/resample/resamplerinfo.h deleted file mode 100644 index 23f4a545..00000000 --- a/supergameboy/common/resample/resamplerinfo.h +++ /dev/null @@ -1,36 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef RESAMPLER_INFO_H -#define RESAMPLER_INFO_H - -#include "resampler.h" - -struct ResamplerInfo { - const char *desc; - Resampler* (*create)(long inRate, long outRate, std::size_t periodSz); - - static unsigned num() { return num_; } - static const ResamplerInfo& get(unsigned n) { return resamplers[n]; } - -private: - static const ResamplerInfo resamplers[]; - static const unsigned num_; -}; - -#endif diff --git a/supergameboy/common/resample/subresampler.h b/supergameboy/common/resample/subresampler.h deleted file mode 100644 index 134ec80b..00000000 --- a/supergameboy/common/resample/subresampler.h +++ /dev/null @@ -1,33 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef SUBRESAMPLER_H -#define SUBRESAMPLER_H - -#include - -class SubResampler { -public: - virtual std::size_t resample(short *out, const short *in, std::size_t inlen) = 0; - virtual unsigned mul() const = 0; - virtual unsigned div() const = 0; - virtual void adjustDiv(unsigned /*div*/) {} - virtual ~SubResampler() {} -}; - -#endif diff --git a/supergameboy/common/resample/u48div.cpp b/supergameboy/common/resample/u48div.cpp deleted file mode 100644 index 077ddfd9..00000000 --- a/supergameboy/common/resample/u48div.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "u48div.h" - -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; - num1 |= num2 & ((1 << s) - 1); - s = 0; - } else { - if (num1 < 0x1000000) { - const unsigned maxs = s < 8 ? s : 8; - 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/supergameboy/common/resample/u48div.h b/supergameboy/common/resample/u48div.h deleted file mode 100644 index 26b16af4..00000000 --- a/supergameboy/common/resample/u48div.h +++ /dev/null @@ -1,24 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef U48DIV_H -#define U48DIV_H - -unsigned long u48div(unsigned long num1, unsigned num2, unsigned long den); - -#endif diff --git a/supergameboy/common/resample/upsampler.h b/supergameboy/common/resample/upsampler.h deleted file mode 100644 index 8bf88d8a..00000000 --- a/supergameboy/common/resample/upsampler.h +++ /dev/null @@ -1,51 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef UPSAMPLER_H -#define UPSAMPLER_H - -#include "subresampler.h" -#include - -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); - unsigned mul() const { return mul_; } - unsigned div() const { return 1; } -}; - -template -std::size_t Upsampler::resample(short *out, const short *in, std::size_t inlen) { - if (inlen) { - std::memset(out, 0, inlen * mul_ * sizeof(short) * channels); - - do { - std::memcpy(out, in, sizeof(short) * channels); - in += channels; - out += mul_ * channels; - } while (--inlen); - } - - return inlen * mul_; -} - -#endif diff --git a/supergameboy/common/ringbuffer.h b/supergameboy/common/ringbuffer.h deleted file mode 100644 index 34f22bfe..00000000 --- a/supergameboy/common/ringbuffer.h +++ /dev/null @@ -1,112 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef RINGBUFFER_H -#define RINGBUFFER_H - -#include "array.h" -#include -#include -#include - -template -class RingBuffer { - Array buf; - std::size_t sz; - std::size_t rpos; - std::size_t wpos; - -public: - 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); -}; - -template -void RingBuffer::fill(const T value) { - std::fill(buf + 0, buf + sz, value); - rpos = 0; - wpos = sz - 1; -} - -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(T)); - - rpos = 0; - num -= n; - out += n; - } - - std::memcpy(out, buf + rpos, num * sizeof(T)); - - if ((rpos += num) == sz) - rpos = 0; -} - -template -void RingBuffer::reset(const std::size_t sz_in) { - sz = sz_in + 1; - rpos = wpos = 0; - buf.reset(sz_in ? sz : 0); -} - -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(T)); - - wpos = 0; - num -= n; - in += n; - } - - std::memcpy(buf + wpos, in, num * sizeof(T)); - - if ((wpos += num) == sz) - wpos = 0; -} - -#endif diff --git a/supergameboy/common/usec.h b/supergameboy/common/usec.h deleted file mode 100644 index 2bc889cf..00000000 --- a/supergameboy/common/usec.h +++ /dev/null @@ -1,31 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef USEC_H -#define USEC_H - -typedef unsigned long usec_t; - -static inline usec_t negate(usec_t t) { - return usec_t(0) - t; -} - -usec_t getusecs(); -void usecsleep(usec_t usecs); - -#endif diff --git a/supergameboy/interface/interface.cpp b/supergameboy/interface/interface.cpp deleted file mode 100644 index b726b147..00000000 --- a/supergameboy/interface/interface.cpp +++ /dev/null @@ -1,373 +0,0 @@ -SuperGameBoy supergameboy; - -//==================== -//SuperGameBoy::Packet -//==================== - -const char SuperGameBoy::command_name[32][64] = { - "PAL01", "PAL23", "PAL03", "PAL12", - "ATTR_BLK", "ATTR_LIN", "ATTR_DIV", "ATTR_CHR", - "SOUND", "SOU_TRN", "PAL_SET", "PAL_TRN", - "ATRC_EN", "TEST_EN", "ICON_EN", "DATA_SND", - "DATA_TRN", "MLT_REQ", "JUMP", "CHR_TRN", - "PCT_TRN", "ATTR_TRN", "ATTR_SET", "MASK_EN", - "OBJ_TRN", "19_???", "1A_???", "1B_???", - "1C_???", "1D_???", "1E_ROM", "1F_???", -}; - -void SuperGameBoy::joyp_write(bool p15, bool p14) { - //=============== - //joypad handling - //=============== - - if(p15 == 1 && p14 == 1) { - if(joyp15lock == 0 && joyp14lock == 0) { - joyp15lock = 1; - joyp14lock = 1; - joyp_id = (joyp_id + 1) & 3; - } - } - - if(p15 == 0 && p14 == 1) joyp15lock = 0; - if(p15 == 1 && p14 == 0) joyp14lock = 0; - - //=============== - //packet handling - //=============== - - if(p15 == 0 && p14 == 0) { - //pulse - pulselock = false; - packetoffset = 0; - bitoffset = 0; - strobelock = true; - packetlock = false; - return; - } - - if(pulselock) return; - - if(p15 == 1 && p14 == 1) { - strobelock = false; - return; - } - - if(strobelock) { - if(p15 == 1 || p14 == 1) { - //malformed packet - packetlock = false; - pulselock = true; - bitoffset = 0; - packetoffset = 0; - } else { - return; - } - } - - //p15:1, p14:0 = 0 - //p15:0, p14:1 = 1 - bool bit = (p15 == 0); - strobelock = true; - - if(packetlock) { - if(p15 == 1 && p14 == 0) { - if((joyp_packet[0] >> 3) == 0x11) { - mmio.mlt_req = joyp_packet[1] & 3; - if(mmio.mlt_req == 2) mmio.mlt_req = 3; - joyp_id = 0; - } - - if(packetsize < 64) packet[packetsize++] = joyp_packet; - packetlock = false; - pulselock = true; - } - return; - } - - bitdata = (bit << 7) | (bitdata >> 1); - if(++bitoffset < 8) return; - - bitoffset = 0; - joyp_packet[packetoffset] = bitdata; - if(++packetoffset < 16) return; - packetlock = true; -} - -//================== -//SuperGameBoy::Core -//================== - -static uint8_t null_rom[32768]; - -bool SuperGameBoy::init(bool version_) { - if(!romdata) { romdata = null_rom; romsize = 32768; } - version = version_; - - gambatte = new Gambatte::GB; - gambatte->setVideoBlitter(this); - gambatte->setInputStateGetter(this); - - return true; -} - -void SuperGameBoy::term() { - if(gambatte) { - delete gambatte; - gambatte = 0; - } -} - -unsigned SuperGameBoy::run(uint32_t *samplebuffer, unsigned samples) { - if((mmio.r6003 & 0x80) == 0) { - //Gameboy is inactive - samplebuffer[0] = 0; - return 1; - } - - return gambatte->runFor(samplebuffer, samples); -} - -void SuperGameBoy::save() { - gambatte->saveSavedata(); -} - -void SuperGameBoy::serialize(nall::serializer &s) { - s.integer(vram_row); - s.array(vram); - - s.integer(mmio.r6000); - s.integer(mmio.r6003); - s.integer(mmio.r6004); - s.integer(mmio.r6005); - s.integer(mmio.r6006); - s.integer(mmio.r6007); - s.array(mmio.r7000); - s.integer(mmio.r7800); - s.integer(mmio.mlt_req); - - for(unsigned i = 0; i < 64; i++) s.array(packet[i].data); - s.integer(packetsize); - - s.integer(joyp_id); - s.integer(joyp15lock); - s.integer(joyp14lock); - s.integer(pulselock); - s.integer(strobelock); - s.integer(packetlock); - s.array(joyp_packet.data); - s.integer(packetoffset); - s.integer(bitdata); - s.integer(bitoffset); - - uint8_t *savestate = new uint8_t[256 * 1024]; - if(s.mode() == serializer::Load) { - s.array(savestate, 256 * 1024); - - file fp; - if(fp.open("supergameboy-state.tmp", file::mode_write)) { - fp.write(savestate, 256 * 1024); - fp.close(); - - gambatte->loadState("supergameboy-state.tmp"); - unlink("supergameboy-state.tmp"); - } - } else if(s.mode() == serializer::Save) { - gambatte->saveState("supergameboy-state.tmp"); - - file fp; - if(fp.open("supergameboy-state.tmp", file::mode_read)) { - fp.read(savestate, fp.size() < 256 * 1024 ? fp.size() : 256 * 1024); - fp.close(); - } - - unlink("supergameboy-state.tmp"); - s.array(savestate, 256 * 1024); - } else if(s.mode() == serializer::Size) { - s.array(savestate, 256 * 1024); - } - delete[] savestate; -} - -void SuperGameBoy::power() { - gambatte->load(true); - mmio_reset(); -} - -void SuperGameBoy::reset() { - gambatte->reset(); - mmio_reset(); -} - -void SuperGameBoy::row(unsigned row) { - mmio.r7800 = 0; - vram_row = row; - render(vram_row); -} - -uint8_t SuperGameBoy::read(uint16_t addr) { - //LY counter - if(addr == 0x6000) { - return gambatte->lyCounter(); - } - - //command ready port - if(addr == 0x6002) { - bool data = packetsize > 0; - if(data) { - for(unsigned i = 0; i < 16; i++) mmio.r7000[i] = packet[0][i]; - packetsize--; - for(unsigned i = 0; i < packetsize; i++) packet[i] = packet[i + 1]; - } - return data; - } - - //command port - if((addr & 0xfff0) == 0x7000) { - return mmio.r7000[addr & 15]; - } - - if(addr == 0x7800) { - uint8_t data = vram[mmio.r7800]; - mmio.r7800 = (mmio.r7800 + 1) % 320; - return data; - } - - return 0x00; -} - -void SuperGameBoy::write(uint16_t addr, uint8_t data) { - //control port - //d7 = /RESET line (0 = stop, 1 = run) - if(addr == 0x6003) { - if((mmio.r6003 & 0x80) == 0x00 && (data & 0x80) == 0x80) { - reset(); - command_1e(); - } - - mmio.r6003 = data; - return; - } - - if(addr == 0x6004) { mmio.r6004 = data; return; } //joypad 1 state - if(addr == 0x6005) { mmio.r6005 = data; return; } //joypad 2 state - if(addr == 0x6006) { mmio.r6006 = data; return; } //joypad 3 state - if(addr == 0x6007) { mmio.r6007 = data; return; } //joypad 4 state -} - -void SuperGameBoy::mmio_reset() { - mmio.r6000 = 0x00; - mmio.r6003 = 0x00; - mmio.r6004 = 0xff; - mmio.r6005 = 0xff; - mmio.r6006 = 0xff; - mmio.r6007 = 0xff; - for(unsigned n = 0; n < 16; n++) mmio.r7000[n] = 0; - mmio.r7800 = 0; - mmio.mlt_req = 0; - - packetsize = 0; - - vram_row = 0; - memset(vram, 0, 320); - - joyp_id = 3; - joyp15lock = 0; - joyp14lock = 0; - pulselock = true; -} - -//simulate 256-byte internal SGB BIOS on /RESET -void SuperGameBoy::command_1e() { - for(unsigned i = 0; i < 6; i++) { - Packet p; - p[0] = 0xf1 + (i << 1); - p[1] = 0; - for(unsigned n = 2; n < 16; n++) { - uint8_t data = romdata[0x0104 + (i * 14) + (n - 2)]; - p[1] += data; - p[n] = data; - } - if(packetsize < 64) packet[packetsize++] = p; - } -} - -void SuperGameBoy::render(unsigned row) { - gambatte->updateVideo(); - - uint32_t *source = buffer + row * 160 * 8; - memset(vram, 0x00, 320); - - for(unsigned y = row * 8; y < row * 8 + 8; y++) { - for(unsigned x = 0; x < 160; x++) { - unsigned pixel = *source++ / 0x555555; - pixel ^= 3; - - unsigned addr = (x / 8 * 16) + ((y & 7) * 2); - vram[addr + 0] |= ((pixel & 1) >> 0) << (7 - (x & 7)); - vram[addr + 1] |= ((pixel & 2) >> 1) << (7 - (x & 7)); - } - } -} - -//====================== -//Gambatte::VideoBlitter -//====================== - -//should always be 160x144, as no filters are used -void SuperGameBoy::setBufferDimensions(unsigned width, unsigned height) { - if(buffer) delete[] buffer; - buffer = new uint32_t[width * height]; - bufferWidth = width; - bufferHeight = height; -} - -const Gambatte::PixelBuffer SuperGameBoy::inBuffer() { - Gambatte::PixelBuffer pixelBuffer; - pixelBuffer.pixels = (void*)buffer; - pixelBuffer.format = Gambatte::PixelBuffer::RGB32; - pixelBuffer.pitch = bufferWidth; - return pixelBuffer; -} - -void SuperGameBoy::blit() { -} - -//========================== -//Gambatte::InputStateGetter -//========================== - -const Gambatte::InputState& SuperGameBoy::operator()() { - inputState.joypadId = 0x0f - (joyp_id & mmio.mlt_req); - - unsigned data = 0x00; - switch(joyp_id & mmio.mlt_req) { - case 0: data = mmio.r6004; break; - case 1: data = mmio.r6005; break; - case 2: data = mmio.r6006; break; - case 3: data = mmio.r6007; break; - } - - inputState.startButton = !(data & 0x80); - inputState.selectButton = !(data & 0x40); - inputState.bButton = !(data & 0x20); - inputState.aButton = !(data & 0x10); - inputState.dpadDown = !(data & 0x08); - inputState.dpadUp = !(data & 0x04); - inputState.dpadLeft = !(data & 0x02); - inputState.dpadRight = !(data & 0x01); - - return inputState; -} - -//========================== -//SuperGameBoy::Construction -//========================== - -SuperGameBoy::SuperGameBoy() : gambatte(0), buffer(0) { - romdata = ramdata = rtcdata = 0; - romsize = ramsize = rtcsize = 0; -} - -SuperGameBoy::~SuperGameBoy() { - if(buffer) delete[] buffer; -} diff --git a/supergameboy/interface/interface.hpp b/supergameboy/interface/interface.hpp deleted file mode 100644 index d369a281..00000000 --- a/supergameboy/interface/interface.hpp +++ /dev/null @@ -1,80 +0,0 @@ -class SuperGameBoy : public Gambatte::VideoBlitter, public Gambatte::InputStateGetter { -public: - Gambatte::GB *gambatte; - -//SuperGameBoy::MMIO - unsigned vram_row; - uint8_t vram[320]; - - struct MMIO { - uint8_t r6000; - uint8_t r6003; - uint8_t r6004; - uint8_t r6005; - uint8_t r6006; - uint8_t r6007; - uint8_t r7000[16]; - unsigned r7800; - uint8_t mlt_req; - } mmio; - -//SuperGameBoy::Packet - static const char command_name[32][64]; - - struct Packet { - uint8_t data[16]; - uint8_t& operator[](unsigned addr) { return data[addr & 15]; } - }; - Packet packet[64]; - unsigned packetsize; - - unsigned joyp_id; - bool joyp15lock; - bool joyp14lock; - bool pulselock; - bool strobelock; - bool packetlock; - Packet joyp_packet; - uint8_t packetoffset; - uint8_t bitdata, bitoffset; - - void joyp_write(bool p15, bool p14); - -//SuperGameBoy::Core - uint8_t *romdata, *ramdata, *rtcdata; - unsigned romsize, ramsize, rtcsize; - bool version; - - bool init(bool version); - void term(); - unsigned run(uint32_t *samplebuffer, unsigned samples); - void save(); - void serialize(nall::serializer &s); - void power(); - void reset(); - void row(unsigned row); - uint8_t read(uint16_t addr); - void write(uint16_t addr, uint8_t data); - - void mmio_reset(); - void command_1e(); - void render(unsigned row); - - SuperGameBoy(); - ~SuperGameBoy(); - -//Gambatte::VideoBlitter - unsigned bufferWidth, bufferHeight; - uint32_t *buffer; - - void setBufferDimensions(unsigned width, unsigned height); - const Gambatte::PixelBuffer inBuffer(); - void blit(); - -//Gambatte::InputStateGetter - Gambatte::InputState inputState; - - const Gambatte::InputState& operator()(); -}; - -extern SuperGameBoy supergameboy; diff --git a/supergameboy/libgambatte/SConstruct b/supergameboy/libgambatte/SConstruct deleted file mode 100644 index 47087ba0..00000000 --- a/supergameboy/libgambatte/SConstruct +++ /dev/null @@ -1,64 +0,0 @@ -global_cflags = ARGUMENTS.get('CFLAGS', '-Wall -Wextra -O2 -fomit-frame-pointer') -global_cxxflags = ARGUMENTS.get('CXXFLAGS', global_cflags + ' -fno-exceptions -fno-rtti') -global_defines = ' -DHAVE_STDINT_H -DCHAR_WIDTH_8' - -env = Environment(CPPPATH = ['src', 'include', '../common'], - CFLAGS = global_cflags + global_defines, - CXXFLAGS = global_cxxflags + global_defines) - -sourceFiles = Split(''' - src/bitmap_font.cpp - src/colorconversion.cpp - src/cpu.cpp - src/gambatte.cpp - src/initstate.cpp - src/interrupter.cpp - src/memory.cpp - src/rtc.cpp - src/sound.cpp - src/state_osd_elements.cpp - src/statesaver.cpp - src/video.cpp - src/sound/channel1.cpp - src/sound/channel2.cpp - src/sound/channel3.cpp - src/sound/channel4.cpp - src/sound/duty_unit.cpp - src/sound/envelope_unit.cpp - src/sound/length_counter.cpp - src/video/basic_add_event.cpp - src/video/break_event.cpp - src/video/irq_event.cpp - src/video/ly_counter.cpp - src/video/lyc_irq.cpp - src/video/m3_extra_cycles.cpp - src/video/mode3_event.cpp - src/video/mode0_irq.cpp - src/video/mode1_irq.cpp - src/video/mode2_irq.cpp - src/video/sc_reader.cpp - src/video/scx_reader.cpp - src/video/sprite_mapper.cpp - src/video/we_master_checker.cpp - src/video/we.cpp - src/video/wx_reader.cpp - src/video/wy.cpp - src/video/filters/catrom2x.cpp - src/video/filters/catrom3x.cpp - src/video/filters/kreed2xsai.cpp - src/video/filters/maxsthq2x.cpp - src/video/filters/maxsthq3x.cpp - ''') - -conf = env.Configure() - -if conf.CheckHeader('zlib.h') and conf.CheckLib('z'): - sourceFiles.append('src/file/unzip/unzip.c') - sourceFiles.append('src/file/unzip/ioapi.c') - sourceFiles.append('src/file/file_zip.cpp') -else: - sourceFiles.append('src/file/file.cpp') - -conf.Finish() - -env.Library('gambatte', sourceFiles) diff --git a/supergameboy/libgambatte/include/filterinfo.h b/supergameboy/libgambatte/include/filterinfo.h deleted file mode 100644 index ab5a4726..00000000 --- a/supergameboy/libgambatte/include/filterinfo.h +++ /dev/null @@ -1,32 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef GAMBATTE_FILTERINFO_H -#define GAMBATTE_FILTERINFO_H - -#include - -namespace Gambatte { -struct FilterInfo { - std::string handle; - unsigned int outWidth; - unsigned int outHeight; -}; -} - -#endif diff --git a/supergameboy/libgambatte/include/gambatte.h b/supergameboy/libgambatte/include/gambatte.h deleted file mode 100644 index fc787d76..00000000 --- a/supergameboy/libgambatte/include/gambatte.h +++ /dev/null @@ -1,82 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef GAMBATTE_H -#define GAMBATTE_H - -class CPU; - -#include "videoblitter.h" -#include "inputstate.h" -#include "inputstategetter.h" -#include "filterinfo.h" -#include "int.h" -#include - -namespace Gambatte { -class GB { - CPU *const z80; - int stateNo; - - void loadState(const char *filepath, bool osdMessage); - -public: - GB(); - ~GB(); - bool load(bool forceDmg = false); - - /** Emulates until at least 'samples' stereo sound samples are produced in the supplied buffer. - * There are 35112 stereo sound samples in a video frame. - * May run for uptil 2064 stereo samples too long. - * A stereo sample consists of two native endian 2s complement 16-bit PCM samples, - * with the left sample preceding the right one. Usually casting soundBuf to/from - * short* is OK and recommended. The reason for not using a short* in the interface - * is to avoid implementation defined behaviour without compromising performance. - * - * @param soundBuf buffer with space >= samples + 2064 - * @param samples number of stereo samples to produce - * @return actual number of samples produced - */ - unsigned runFor(Gambatte::uint_least32_t *soundBuf, unsigned samples); - void updateVideo(); - unsigned lyCounter(); - - void reset(); - void setVideoBlitter(VideoBlitter *vb); - void videoBufferChange(); - unsigned videoWidth() const; - unsigned videoHeight() const; - void setDmgPaletteColor(unsigned palNum, unsigned colorNum, unsigned rgb32); - - void setVideoFilter(unsigned n); - std::vector filterInfo() const; - void setInputStateGetter(InputStateGetter *getInput); - - void set_savedir(const char *sdir); - bool isCgb() const; - void saveSavedata(); - void saveState(); - void loadState(); - void saveState(const char *filepath); - void loadState(const char *filepath); - void selectState(int n); - int currentState() const { return stateNo; } -}; -} - -#endif diff --git a/supergameboy/libgambatte/include/inputstate.h b/supergameboy/libgambatte/include/inputstate.h deleted file mode 100644 index bdfec44f..00000000 --- a/supergameboy/libgambatte/include/inputstate.h +++ /dev/null @@ -1,30 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef GAMBATTE_INPUTSTATE_H -#define GAMBATTE_INPUTSTATE_H - -namespace Gambatte { -struct InputState { - unsigned joypadId; - bool startButton, selectButton, bButton, aButton; - bool dpadDown, dpadUp, dpadLeft, dpadRight; -}; -} - -#endif diff --git a/supergameboy/libgambatte/include/inputstategetter.h b/supergameboy/libgambatte/include/inputstategetter.h deleted file mode 100644 index 375dad5e..00000000 --- a/supergameboy/libgambatte/include/inputstategetter.h +++ /dev/null @@ -1,30 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef GAMBATTE_INPUTSTATEGETTER_H -#define GAMBATTE_INPUTSTATEGETTER_H - -namespace Gambatte { -class InputStateGetter { -public: - virtual ~InputStateGetter() {}; - virtual const InputState& operator()() = 0; -}; -} - -#endif diff --git a/supergameboy/libgambatte/include/int.h b/supergameboy/libgambatte/include/int.h deleted file mode 100644 index 116ab8b7..00000000 --- a/supergameboy/libgambatte/include/int.h +++ /dev/null @@ -1,29 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef GAMBATTE_INT_H -#define GAMBATTE_INT_H - -#include - -namespace Gambatte { -typedef uint32_t uint_least32_t; -typedef uint16_t uint_least16_t; -} - -#endif diff --git a/supergameboy/libgambatte/include/videoblitter.h b/supergameboy/libgambatte/include/videoblitter.h deleted file mode 100644 index d2a9c335..00000000 --- a/supergameboy/libgambatte/include/videoblitter.h +++ /dev/null @@ -1,44 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef GAMBATTE_VIDEOBLITTER_H -#define GAMBATTE_VIDEOBLITTER_H - -namespace Gambatte { - -struct PixelBuffer { - enum Format { RGB32, RGB16, UYVY }; - - void *pixels; - Format format; - unsigned pitch; - - PixelBuffer() : pixels(0), format(RGB32), pitch(0) {} -}; - -class VideoBlitter { -public: - virtual void setBufferDimensions(unsigned width, unsigned height) = 0; - virtual const PixelBuffer inBuffer() = 0; - virtual void blit() = 0; - virtual ~VideoBlitter() {} -}; - -} - -#endif diff --git a/supergameboy/libgambatte/src/bitmap_font.cpp b/supergameboy/libgambatte/src/bitmap_font.cpp deleted file mode 100644 index b644c06f..00000000 --- a/supergameboy/libgambatte/src/bitmap_font.cpp +++ /dev/null @@ -1,328 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -/* - The following font bitmaps (static const unsigned char *_bits[]), only used - as data and included in this source file for convenience, are derived from - the Bitstream Vera Sans font, which is distributed under the following - copyright: - - Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera - is a trademark of Bitstream, Inc. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of the fonts accompanying this license ("Fonts") and associated - documentation files (the "Font Software"), to reproduce and distribute the - Font Software, including without limitation the rights to use, copy, merge, - publish, distribute, and/or sell copies of the Font Software, and to permit - persons to whom the Font Software is furnished to do so, subject to the - following conditions: - - The above copyright and trademark notices and this permission notice shall - be included in all copies of one or more of the Font Software typefaces. - - The Font Software may be modified, altered, or added to, and in particular - the designs of glyphs or characters in the Fonts may be modified and - additional glyphs or characters may be added to the Fonts, only if the fonts - are renamed to names not containing either the words "Bitstream" or the word - "Vera". - - This License becomes null and void to the extent applicable to Fonts or Font - Software that has been modified and is distributed under the "Bitstream Vera" - names. - - The Font Software may be sold as part of a larger software package but no - copy of one or more of the Font Software typefaces may be sold by itself. - - THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF - COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM - OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR - CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM - OTHER DEALINGS IN THE FONT SOFTWARE. - - Except as contained in this notice, the names of Gnome, the Gnome - Foundation, and Bitstream Inc., shall not be used in advertising or - otherwise to promote the sale, use or other dealings in this Font Software - without prior written authorization from the Gnome Foundation or - Bitstream Inc., respectively. For further information, contact: fonts at - gnome dot org. -*/ - -#include "bitmap_font.h" - -static const unsigned char n0_bits[] = { 0x68, - 0x00, 0x1c, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1c }; - -static const unsigned char n1_bits[] = { 0x68, - 0x00, 0x0e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3e }; - -static const unsigned char n2_bits[] = { 0x68, - 0x00, 0x1c, 0x22, 0x20, 0x10, 0x08, 0x04, 0x3e }; - -static const unsigned char n3_bits[] = { 0x68, - 0x00, 0x1c, 0x22, 0x20, 0x1c, 0x20, 0x22, 0x1c }; - -static const unsigned char n4_bits[] = { 0x68, - 0x00, 0x18, 0x18, 0x14, 0x12, 0x3e, 0x10, 0x10 }; - -static const unsigned char n5_bits[] = { 0x68, - 0x00, 0x1e, 0x02, 0x1e, 0x20, 0x20, 0x20, 0x1e }; - -static const unsigned char n6_bits[] = { 0x68, - 0x00, 0x3c, 0x06, 0x02, 0x1e, 0x22, 0x22, 0x1c }; - -static const unsigned char n7_bits[] = { 0x68, - 0x00, 0x3e, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04 }; - -static const unsigned char n8_bits[] = { 0x68, - 0x00, 0x1c, 0x22, 0x22, 0x1c, 0x22, 0x22, 0x1c }; - -static const unsigned char n9_bits[] = { 0x68, - 0x00, 0x1c, 0x22, 0x22, 0x3c, 0x20, 0x30, 0x1e }; - -static const unsigned char A_bits[] = { 0x78, - 0x00, 0x08, 0x14, 0x14, 0x22, 0x3e, 0x22, 0x41 }; - -static const unsigned char a_bits[] = { 0x68, - 0x00, 0x00, 0x00, 0x1c, 0x20, 0x3c, 0x22, 0x3e }; - -static const unsigned char B_bits[] = { 0x78, - 0x00, 0x1e, 0x22, 0x22, 0x1e, 0x22, 0x22, 0x1e }; - -static const unsigned char b_bits[] = { 0x68, - 0x02, 0x02, 0x02, 0x1e, 0x22, 0x22, 0x22, 0x1e }; - -static const unsigned char C_bits[] = { 0x88, - 0x00, 0x38, 0x44, 0x02, 0x02, 0x02, 0x44, 0x38 }; - -static const unsigned char c_bits[] = { 0x58, - 0x00, 0x00, 0x00, 0x1c, 0x02, 0x02, 0x02, 0x1c }; - -static const unsigned char D_bits[] = { 0x88, - 0x00, 0x3e, 0x62, 0x42, 0x42, 0x42, 0x62, 0x3e }; - -static const unsigned char d_bits[] = { 0x68, - 0x20, 0x20, 0x20, 0x3c, 0x22, 0x22, 0x22, 0x3c }; - -static const unsigned char E_bits[] = { 0x78, - 0x00, 0x3e, 0x02, 0x02, 0x3e, 0x02, 0x02, 0x3e }; - -static const unsigned char e_bits[] = { 0x68, - 0x00, 0x00, 0x00, 0x1c, 0x22, 0x3e, 0x02, 0x3c }; - -static const unsigned char F_bits[] = { 0x68, - 0x00, 0x1e, 0x02, 0x02, 0x1e, 0x02, 0x02, 0x02 }; - -static const unsigned char f_bits[] = { 0x48, - 0x0e, 0x02, 0x02, 0x07, 0x02, 0x02, 0x02, 0x02 }; - -static const unsigned char G_bits[] = { 0x88, - 0x00, 0x3c, 0x46, 0x02, 0x72, 0x42, 0x46, 0x3c }; - -static const unsigned char g_bits[] = { 0x6a, - 0x00, 0x00, 0x00, 0x3c, 0x22, 0x22, 0x22, 0x3c, 0x20, 0x1c }; - -static const unsigned char H_bits[] = { 0x88, - 0x00, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42 }; - -static const unsigned char h_bits[] = { 0x68, - 0x02, 0x02, 0x02, 0x1e, 0x22, 0x22, 0x22, 0x22 }; - -static const unsigned char I_bits[] = { 0x38, - 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 }; - -static const unsigned char i_bits[] = { 0x28, - 0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02 }; - -static const unsigned char J_bits[] = { 0x4a, - 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03 }; - -static const unsigned char j_bits[] = { 0x2a, - 0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03 }; - -static const unsigned char K_bits[] = { 0x78, - 0x00, 0x22, 0x12, 0x0a, 0x06, 0x0a, 0x12, 0x22 }; - -static const unsigned char k_bits[] = { 0x58, - 0x02, 0x02, 0x02, 0x12, 0x0a, 0x06, 0x0a, 0x12 }; - -static const unsigned char L_bits[] = { 0x68, - 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3e }; - -static const unsigned char l_bits[] = { 0x28, - 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 }; - -static const unsigned char M_bits[] = { 0x98, - 0x00, 0x00, 0x82, 0x00, 0xc6, 0x00, 0xc6, 0x00, 0xaa, 0x00, 0xaa, 0x00, - 0x92, 0x00, 0x82, 0x00 }; - -static const unsigned char m_bits[] = { 0xa8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x01, 0x22, 0x02, 0x22, 0x02, - 0x22, 0x02, 0x22, 0x02 }; - -static const unsigned char N_bits[] = { 0x88, - 0x00, 0x42, 0x46, 0x4a, 0x4a, 0x52, 0x62, 0x42 }; - -static const unsigned char n_bits[] = { 0x68, - 0x00, 0x00, 0x00, 0x1e, 0x22, 0x22, 0x22, 0x22 }; - -static const unsigned char O_bits[] = { 0x88, - 0x00, 0x3c, 0x66, 0x42, 0x42, 0x42, 0x66, 0x3c }; - -static const unsigned char o_bits[] = { 0x68, - 0x00, 0x00, 0x00, 0x1c, 0x22, 0x22, 0x22, 0x1c }; - -static const unsigned char P_bits[] = { 0x78, - 0x00, 0x1e, 0x22, 0x22, 0x1e, 0x02, 0x02, 0x02 }; - -static const unsigned char p_bits[] = { 0x6a, - 0x00, 0x00, 0x00, 0x1e, 0x22, 0x22, 0x22, 0x1e, 0x02, 0x02 }; - -static const unsigned char Q_bits[] = { 0x89, - 0x00, 0x3c, 0x66, 0x42, 0x42, 0x42, 0x26, 0x1c, 0x20 }; - -static const unsigned char q_bits[] = { 0x6a, - 0x00, 0x00, 0x00, 0x3c, 0x22, 0x22, 0x22, 0x3c, 0x20, 0x20 }; - -static const unsigned char R_bits[] = { 0x78, - 0x00, 0x1e, 0x22, 0x22, 0x1e, 0x12, 0x22, 0x42 }; - -static const unsigned char r_bits[] = { 0x48, - 0x00, 0x00, 0x00, 0x0e, 0x02, 0x02, 0x02, 0x02 }; - -static const unsigned char S_bits[] = { 0x78, - 0x00, 0x1c, 0x22, 0x02, 0x1c, 0x20, 0x22, 0x1c }; - -static const unsigned char s_bits[] = { 0x58, - 0x00, 0x00, 0x00, 0x1e, 0x02, 0x1c, 0x10, 0x1e }; - -static const unsigned char T_bits[] = { 0x58, - 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 }; - -static const unsigned char t_bits[] = { 0x48, - 0x00, 0x02, 0x02, 0x0f, 0x02, 0x02, 0x02, 0x0e }; - -static const unsigned char U_bits[] = { 0x88, - 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c }; - -static const unsigned char u_bits[] = { 0x68, - 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x3c }; - -static const unsigned char V_bits[] = { 0x78, - 0x00, 0x41, 0x41, 0x22, 0x22, 0x14, 0x14, 0x08 }; - -static const unsigned char v_bits[] = { 0x68, - 0x00, 0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08 }; - -static const unsigned char W_bits[] = { 0x98, - 0x00, 0x00, 0x11, 0x01, 0x11, 0x01, 0xaa, 0x00, 0xaa, 0x00, 0xaa, 0x00, - 0x44, 0x00, 0x44, 0x00 }; - -static const unsigned char w_bits[] = { 0x88, - 0x00, 0x00, 0x00, 0x92, 0xaa, 0xaa, 0x44, 0x44 }; - -static const unsigned char X_bits[] = { 0x68, - 0x00, 0x21, 0x12, 0x0c, 0x0c, 0x0c, 0x12, 0x21 }; - -static const unsigned char x_bits[] = { 0x68, - 0x00, 0x00, 0x00, 0x22, 0x14, 0x08, 0x14, 0x22 }; - -static const unsigned char Y_bits[] = { 0x78, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08 }; - -static const unsigned char y_bits[] = { 0x6a, - 0x00, 0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x06 }; - -static const unsigned char Z_bits[] = { 0x68, - 0x00, 0x3f, 0x10, 0x08, 0x0c, 0x04, 0x02, 0x3f }; - -static const unsigned char z_bits[] = { 0x58, - 0x00, 0x00, 0x00, 0x1e, 0x10, 0x08, 0x04, 0x1e }; - -static const unsigned char SPC_bits[] = { 0x38, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - -namespace BitmapFont { -const unsigned char *const font[] = { - 0, - n0_bits, n1_bits, n2_bits, n3_bits, n4_bits, n5_bits, n6_bits, n7_bits, n8_bits, n9_bits, - A_bits, B_bits, C_bits, D_bits, E_bits, F_bits, G_bits, H_bits, I_bits, J_bits, K_bits, L_bits, M_bits, - N_bits, O_bits, P_bits, Q_bits, R_bits, S_bits, T_bits, U_bits, V_bits, W_bits, X_bits, Y_bits, Z_bits, - a_bits, b_bits, c_bits, d_bits, e_bits, f_bits, g_bits, h_bits, i_bits, j_bits, k_bits, l_bits, m_bits, - n_bits, o_bits, p_bits, q_bits, r_bits, s_bits, t_bits, u_bits, v_bits, w_bits, x_bits, y_bits, z_bits, - SPC_bits -}; - -unsigned getWidth(const char *chars) { - unsigned w = 0; - - while (const int character = *chars++) { - w += *font[character] >> 4; - } - - return w; -} - -class Rgb32Fill { - const unsigned long color; - -public: - Rgb32Fill(unsigned long color) : color(color) {} - - void operator()(Gambatte::uint_least32_t *dest, unsigned /*pitch*/) { - *dest = color; - } -}; - -void print(Gambatte::uint_least32_t *dest, const unsigned pitch, const unsigned long color, const char *chars) { - print(dest, pitch, Rgb32Fill(color), chars); -} - -static void reverse(char *first, char *last) { - while (first < last) { - const int tmp = *first; - - *first = *last; - *last = tmp; - - ++first; - --last; - } -} - -void utoa(unsigned u, char *a) { - char *aa = a; - - while (u > 9) { - const unsigned div = u / 10; - const unsigned rem = u % 10; - - u = div; - *aa++ = rem + N0; - } - - *aa = u + N0; - - reverse(a, aa); -} -} diff --git a/supergameboy/libgambatte/src/bitmap_font.h b/supergameboy/libgambatte/src/bitmap_font.h deleted file mode 100644 index 8217cf61..00000000 --- a/supergameboy/libgambatte/src/bitmap_font.h +++ /dev/null @@ -1,87 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef BITMAP_FONT_H -#define BITMAP_FONT_H - -#include "int.h" - -namespace BitmapFont { -enum Char { - NUL, - N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, - A, B, C, D, E, F, G, H, I, J, K, L, M, - N, O, P, Q, R, S, T, U, V, W, X, Y, Z, - a, b, c, d, e, f, g, h, i, j, k, l, m, - n, o, p, q, r, s, t, u, v, w, x, y, z, - SPC -}; - -enum { HEIGHT = 10 }; -enum { MAX_WIDTH = 9 }; -enum { NUMBER_WIDTH = 6 }; - -unsigned getWidth(const char *chars); - -// struct Fill { void operator()(RandomAccessIterator dest, unsigned pitch) { fill pixels at dest } } -template -void print(RandomAccessIterator dest, unsigned pitch, Fill fill, const char *chars); - -void print(Gambatte::uint_least32_t *dest, unsigned pitch, unsigned long color, const char *chars); -void utoa(unsigned u, char *a); - -// --- INTERFACE END --- - - - -extern const unsigned char *const font[]; - -template -void print(RandomAccessIterator dest, const unsigned pitch, Fill fill, const char *chars) { - while (const int character = *chars++) { - RandomAccessIterator dst = dest; - const unsigned char *s = font[character]; - - const unsigned width = *s >> 4; - unsigned h = *s++ & 0xF; - - while (h--) { - RandomAccessIterator d = dst; - - unsigned line = *s++; - - if (width > 8) - line |= *s++ << 8; - - while (line) { - if (line & 1) - fill(d, pitch); - - line >>= 1; - ++d; - } - - dst += pitch; - } - - dest += width; - } -} -} - -#endif diff --git a/supergameboy/libgambatte/src/colorconversion.cpp b/supergameboy/libgambatte/src/colorconversion.cpp deleted file mode 100644 index d76b0aee..00000000 --- a/supergameboy/libgambatte/src/colorconversion.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "colorconversion.h" -#include - -Rgb32ToUyvy::Rgb32ToUyvy() { -#ifdef WORDS_BIGENDIAN - const CacheUnit c = { 0, 128ul << 24 | 16ul << 16 | 128 << 8 | 16 }; -#else - const CacheUnit c = { 0, 16ul << 24 | 128ul << 16 | 16 << 8 | 128 }; -#endif - std::fill(cache, cache + cache_size, c); -} - -void Rgb32ToUyvy::operator()(const Gambatte::uint_least32_t *s, Gambatte::uint_least32_t *d, const unsigned w, unsigned h, const unsigned d_pitch) { - while (h--) { - for (const Gambatte::uint_least32_t *const ends = s + w; s != ends;) { - if ((cache[*s & cache_mask].rgb32 - *s) | (cache[*(s+1) & cache_mask].rgb32 - *(s+1))) { - cache[*s & cache_mask].rgb32 = *s; - cache[*(s+1) & cache_mask].rgb32 = *(s+1); - - const unsigned long r = (*s >> 16 & 0x000000FF) | (*(s+1) & 0x00FF0000); - const unsigned long g = (*s >> 8 & 0x000000FF) | (*(s+1) << 8 & 0x00FF0000); - const unsigned long b = (*s & 0x000000FF) | (*(s+1) << 16 & 0x00FF0000); - - const unsigned long y = r * 66 + g * 129 + b * 25 + (16 * 256 + 128) * 0x00010001ul; - const unsigned long u = b * 112 - r * 38 - g * 74 + (128 * 256 + 128) * 0x00010001ul; - const unsigned long v = r * 112 - g * 94 - b * 18 + (128 * 256 + 128) * 0x00010001ul; - -#ifdef WORDS_BIGENDIAN - *d++ = cache[*s & cache_mask].uyvy = (u << 16 & 0xFF000000) | (y << 8 & 0x00FF0000) | (v & 0x0000FF00) | (y >> 8 & 0x000000FF); - *d++ = cache[*(s+1) & cache_mask].uyvy = (u & 0xFF000000) | (y >> 8 & 0x00FF0000) | (v >> 16 & 0x0000FF00) | y >> 24; -#else - *d++ = cache[*s & cache_mask].uyvy = (y << 16 & 0xFF000000) | (v << 8 & 0x00FF0000) | (y & 0x0000FF00) | (u >> 8 & 0x000000FF); - *d++ = cache[*(s+1) & cache_mask].uyvy = (y & 0xFF000000) | (v >> 8 & 0x00FF0000) | (y >> 16 & 0x0000FF00) | u >> 24; -#endif - } else { - *d++ = cache[*s & cache_mask].uyvy; - *d++ = cache[*(s+1) & cache_mask].uyvy; - } - - s += 2; - } - - d += d_pitch - w; - } -} - -unsigned long rgb32ToUyvy(unsigned long rgb32) { - const unsigned r = rgb32 >> 16 & 0xFF; - const unsigned g = rgb32 >> 8 & 0xFF; - const unsigned b = rgb32 & 0xFF; - - const unsigned long y = (r * 66 + g * 129 + b * 25 + 16 * 256 + 128) >> 8; - const unsigned long u = (b * 112 - r * 38 - g * 74 + 128 * 256 + 128) >> 8; - const unsigned long v = (r * 112 - g * 94 - b * 18 + 128 * 256 + 128) >> 8; - -#ifdef WORDS_BIGENDIAN - return u << 24 | y << 16 | v << 8 | y; -#else - return y << 24 | v << 16 | y << 8 | u; -#endif -} - -void rgb32ToRgb16(const Gambatte::uint_least32_t *s, Gambatte::uint_least16_t *d, const unsigned w, unsigned h, const unsigned dstPitch) { - do { - unsigned n = w; - - do { - *d++ = (*s >> 8 & 0xF800) | (*s >> 5 & 0x07E0) | (*s >> 3 & 0x001F); - ++s; - } while (--n); - - d += dstPitch - w; - } while (--h); -} - -unsigned rgb32ToRgb16(const unsigned long rgb32) { - return (rgb32 >> 8 & 0xF800) | (rgb32 >> 5 & 0x07E0) | (rgb32 >> 3 & 0x001F); -} diff --git a/supergameboy/libgambatte/src/colorconversion.h b/supergameboy/libgambatte/src/colorconversion.h deleted file mode 100644 index 9323015e..00000000 --- a/supergameboy/libgambatte/src/colorconversion.h +++ /dev/null @@ -1,46 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef COLORCONVERSION_H -#define COLORCONVERSION_H - -#include "int.h" -#include - -class Rgb32ToUyvy { - struct CacheUnit { - 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, unsigned w, unsigned h, unsigned dstPitch); -}; - -unsigned long rgb32ToUyvy(unsigned long rgb32); - -void rgb32ToRgb16(const Gambatte::uint_least32_t *s, Gambatte::uint_least16_t *d, unsigned w, unsigned h, unsigned dstPitch); -unsigned rgb32ToRgb16(unsigned long rgb32); - -#endif diff --git a/supergameboy/libgambatte/src/cpu.cpp b/supergameboy/libgambatte/src/cpu.cpp deleted file mode 100644 index c44b1239..00000000 --- a/supergameboy/libgambatte/src/cpu.cpp +++ /dev/null @@ -1,2842 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "cpu.h" -#include "memory.h" -#include "savestate.h" - -CPU::CPU() : -memory(Interrupter(SP, PC_, halted)), -cycleCounter_(0), -PC_(0x100), -SP(0xFFFE), -HF1(0xF), -HF2(0xF), -ZF(0), -CF(0x100), -A_(0x01), -B(0x00), -C(0x13), -D(0x00), -E(0xD8), -H(0x01), -L(0x4D), -skip(false), -halted(false) -{} - -void CPU::runFor(const unsigned long cycles) { - process(cycles/* << memory.isDoubleSpeed()*/); - - if (cycleCounter_ & 0x80000000) - cycleCounter_ = memory.resetCounters(cycleCounter_); -} - -bool CPU::load(const bool forceDmg) { - bool tmp = memory.loadROM(forceDmg); - - return tmp; -} - -/*void CPU::halt() { - while (halted) { - const uint_fast32_t cycles = memory.next_eventtime - memory.CycleCounter; - memory.CycleCounter += cycles + ((4 - (cycles & 3)) & 3); - memory.event(); - } -}*/ - -//Push address of next instruction onto stack and then jump to interrupt address (0x40-0x60): -/*unsigned CPU::interrupt(const unsigned address, unsigned cycleCounter) { - if (halted && memory.isCgb()) - cycleCounter += 4; - - halted = false; - cycleCounter += 8; - memory.write(--SP, PC_ >> 8, cycleCounter); - cycleCounter += 4; - memory.write(--SP, PC_ & 0xFF, cycleCounter); - PC_ = address; - cycleCounter += 8; - - return cycleCounter; -}*/ - -// (HF2 & 0x200) == true means HF is set. -// (HF2 & 0x400) marks the subtract flag. -// (HF2 & 0x800) is set for inc/dec. -// (HF2 & 0x100) is set if there's a carry to add. -static void calcHF(const unsigned HF1, unsigned& HF2) { - unsigned arg1 = HF1 & 0xF; - unsigned arg2 = (HF2 & 0xF) + (HF2 >> 8 & 1); - - if (HF2 & 0x800) { - arg1 = arg2; - arg2 = 1; - } - - if (HF2 & 0x400) - arg1 -= arg2; - else - arg1 = (arg1 + arg2) << 5; - - HF2 |= arg1 & 0x200; -} - -#define F() (((HF2 & 0x600) | (CF & 0x100)) >> 4 | ((ZF & 0xFF) ? 0 : 0x80)) - -#define FROM_F(f_in) do { \ - unsigned from_f_var = f_in; \ -\ - ZF = ~from_f_var & 0x80; \ - HF2 = from_f_var << 4 & 0x600; \ - CF = from_f_var << 4 & 0x100; \ -} while (0) - -void CPU::setStatePtrs(SaveState &state) { - memory.setStatePtrs(state); -} - -void CPU::saveState(SaveState &state) { - cycleCounter_ = memory.saveState(state, cycleCounter_); - - calcHF(HF1, HF2); - - state.cpu.cycleCounter = cycleCounter_; - state.cpu.PC = PC_; - state.cpu.SP = SP; - state.cpu.A = A_; - state.cpu.B = B; - state.cpu.C = C; - state.cpu.D = D; - state.cpu.E = E; - state.cpu.F = F(); - state.cpu.H = H; - state.cpu.L = L; - state.cpu.skip = skip; - state.cpu.halted = halted; -} - -void CPU::loadState(const SaveState &state) { - memory.loadState(state, cycleCounter_); - - cycleCounter_ = state.cpu.cycleCounter; - PC_ = state.cpu.PC; - SP = state.cpu.SP; - A_ = state.cpu.A; - B = state.cpu.B; - C = state.cpu.C; - D = state.cpu.D; - E = state.cpu.E; - FROM_F(state.cpu.F); - H = state.cpu.H; - L = state.cpu.L; - skip = state.cpu.skip; - halted = state.cpu.halted; -} - -#define BC() ( B << 8 | C ) -#define DE() ( D << 8 | E ) -#define HL() ( H << 8 | L ) - -#define READ(dest, addr) do { (dest) = memory.read(addr, cycleCounter); cycleCounter += 4; } while (0) -// #define PC_READ(dest, addr) do { (dest) = memory.pc_read(addr, cycleCounter); cycleCounter += 4; } while (0) -#define PC_READ(dest) do { (dest) = memory.read(PC, cycleCounter); PC = (PC + 1) & 0xFFFF; cycleCounter += 4; } while (0) -#define FF_READ(dest, addr) do { (dest) = memory.ff_read(addr, cycleCounter); cycleCounter += 4; } while (0) - -#define WRITE(addr, data) do { memory.write(addr, data, cycleCounter); cycleCounter += 4; } while (0) -#define FF_WRITE(addr, data) do { memory.ff_write(addr, data, cycleCounter); cycleCounter += 4; } while (0) - -#define PC_MOD(data) do { PC = data; cycleCounter += 4; } while (0) - -#define PUSH(r1, r2) do { \ - SP = (SP - 1) & 0xFFFF; \ - WRITE(SP, (r1)); \ - SP = (SP - 1) & 0xFFFF; \ - WRITE(SP, (r2)); \ -} while (0) - -//CB OPCODES (Shifts, rotates and bits): -//swap r (8 cycles): -//Swap upper and lower nibbles of 8-bit register, reset flags, check zero flag: -#define swap_r(r) do { \ - CF = HF2 = 0; \ - ZF = (r); \ - (r) = (ZF << 4 | ZF >> 4) & 0xFF; \ -} while (0) - -//rlc r (8 cycles): -//Rotate 8-bit register left, store old bit7 in CF. Reset SF and HCF, Check ZF: -#define rlc_r(r) do { \ - CF = (r) << 1; \ - ZF = CF | CF >> 8; \ - (r) = ZF & 0xFF; \ - HF2 = 0; \ -} while (0) - -//rl r (8 cycles): -//Rotate 8-bit register left through CF, store old bit7 in CF, old CF value becomes bit0. Reset SF and HCF, Check ZF: -#define rl_r(r) do { \ - const unsigned rl_r_var_oldcf = CF >> 8 & 1; \ - CF = (r) << 1; \ - ZF = CF | rl_r_var_oldcf; \ - (r) = ZF & 0xFF; \ - HF2 = 0; \ -} while (0) - -//rrc r (8 cycles): -//Rotate 8-bit register right, store old bit0 in CF. Reset SF and HCF, Check ZF: -#define rrc_r(r) do { \ - ZF = (r); \ - CF = ZF << 8; \ - (r) = (ZF | CF) >> 1 & 0xFF; \ - HF2 = 0; \ -} while (0) - -//rr r (8 cycles): -//Rotate 8-bit register right through CF, store old bit0 in CF, old CF value becomes bit7. Reset SF and HCF, Check ZF: -#define rr_r(r) do { \ - const unsigned rr_r_var_oldcf = CF & 0x100; \ - CF = (r) << 8; \ - (r) = ZF = ((r) | rr_r_var_oldcf) >> 1; \ - HF2 = 0; \ -} while (0) - -//sla r (8 cycles): -//Shift 8-bit register left, store old bit7 in CF. Reset SF and HCF, Check ZF: -#define sla_r(r) do { \ - ZF = CF = (r) << 1; \ - (r) = ZF & 0xFF; \ - HF2 = 0; \ -} while (0) - -//sra r (8 cycles): -//Shift 8-bit register right, store old bit0 in CF. bit7=old bit7. Reset SF and HCF, Check ZF: -#define sra_r(r) do { \ - CF = (r) << 8; \ - ZF = (r) >> 1; \ - (r) = ZF | ((r) & 0x80); \ - HF2 = 0; \ -} while (0) - -//srl r (8 cycles): -//Shift 8-bit register right, store old bit0 in CF. Reset SF and HCF, Check ZF: -#define srl_r(r) do { \ - ZF = (r); \ - CF = (r) << 8; \ - ZF >>= 1; \ - (r) = ZF; \ - HF2 = 0; \ -} while (0) - -//bit n,r (8 cycles): -//bit n,(hl) (12 cycles): -//Test bitn in 8-bit value, check ZF, unset SF, set HCF: -#define bitn_u8(bitmask, u8) do { \ - ZF = (u8) & (bitmask); \ - HF2 = 0x200; \ -} while (0) - -#define bit0_u8(u8) bitn_u8(1, (u8)) -#define bit1_u8(u8) bitn_u8(2, (u8)) -#define bit2_u8(u8) bitn_u8(4, (u8)) -#define bit3_u8(u8) bitn_u8(8, (u8)) -#define bit4_u8(u8) bitn_u8(0x10, (u8)) -#define bit5_u8(u8) bitn_u8(0x20, (u8)) -#define bit6_u8(u8) bitn_u8(0x40, (u8)) -#define bit7_u8(u8) bitn_u8(0x80, (u8)) - -//set n,r (8 cycles): -//Set bitn of 8-bit register: -#define set0_r(r) ( (r) |= 0x1 ) -#define set1_r(r) ( (r) |= 0x2 ) -#define set2_r(r) ( (r) |= 0x4 ) -#define set3_r(r) ( (r) |= 0x8 ) -#define set4_r(r) ( (r) |= 0x10 ) -#define set5_r(r) ( (r) |= 0x20 ) -#define set6_r(r) ( (r) |= 0x40 ) -#define set7_r(r) ( (r) |= 0x80 ) - -//set n,(hl) (16 cycles): -//Set bitn of value at address stored in HL: -#define setn_mem_hl(n) do { \ - const unsigned setn_mem_hl_var_addr = HL(); \ - unsigned setn_mem_hl_var_tmp; \ -\ - READ(setn_mem_hl_var_tmp, setn_mem_hl_var_addr); \ - setn_mem_hl_var_tmp |= 1 << (n); \ -\ - WRITE(setn_mem_hl_var_addr, setn_mem_hl_var_tmp); \ -} while (0) - -//res n,r (8 cycles): -//Unset bitn of 8-bit register: -#define res0_r(r) ( (r) &= 0xFE ) -#define res1_r(r) ( (r) &= 0xFD ) -#define res2_r(r) ( (r) &= 0xFB ) -#define res3_r(r) ( (r) &= 0xF7 ) -#define res4_r(r) ( (r) &= 0xEF ) -#define res5_r(r) ( (r) &= 0xDF ) -#define res6_r(r) ( (r) &= 0xBF ) -#define res7_r(r) ( (r) &= 0x7F ) - -//res n,(hl) (16 cycles): -//Unset bitn of value at address stored in HL: -#define resn_mem_hl(n) do { \ - const unsigned resn_mem_hl_var_addr = HL(); \ - unsigned resn_mem_hl_var_tmp; \ -\ - READ(resn_mem_hl_var_tmp, resn_mem_hl_var_addr); \ - resn_mem_hl_var_tmp &= ~(1 << (n)); \ -\ - WRITE(resn_mem_hl_var_addr, resn_mem_hl_var_tmp); \ -} while (0) - - -//16-BIT LOADS: -//ld rr,nn (12 cycles) -//set rr to 16-bit value of next 2 bytes in memory -#define ld_rr_nn(r1, r2) do { \ - PC_READ(r2); \ - PC_READ(r1); \ -} while (0) - -//push rr (16 cycles): -//Push value of register pair onto stack: -#define push_rr(r1, r2) do { \ - PUSH(r1, r2); \ - cycleCounter += 4; \ -} while (0) - -//pop rr (12 cycles): -//Pop two bytes off stack into register pair: -#define pop_rr(r1, r2) do { \ - READ(r2, SP); \ - SP = (SP + 1) & 0xFFFF; \ - READ(r1, SP); \ - SP = (SP + 1) & 0xFFFF; \ -} while (0) - -//8-BIT ALU: -//add a,r (4 cycles): -//add a,(addr) (8 cycles): -//Add 8-bit value to A, check flags: -#define add_a_u8(u8) do { \ - HF1 = A; \ - HF2 = u8; \ - ZF = CF = A + HF2; \ - A = ZF & 0xFF; \ -} while (0) - -//adc a,r (4 cycles): -//adc a,(addr) (8 cycles): -//Add 8-bit value+CF to A, check flags: -#define adc_a_u8(u8) do { \ - HF1 = A; \ - HF2 = (CF & 0x100) | (u8); \ - ZF = CF = (CF >> 8 & 1) + (u8) + A; \ - A = ZF & 0xFF; \ -} while (0) - -//sub a,r (4 cycles): -//sub a,(addr) (8 cycles): -//Subtract 8-bit value from A, check flags: -#define sub_a_u8(u8) do { \ - HF1 = A; \ - HF2 = u8; \ - ZF = CF = A - HF2; \ - A = ZF & 0xFF; \ - HF2 |= 0x400; \ -} while (0) - -//sbc a,r (4 cycles): -//sbc a,(addr) (8 cycles): -//Subtract CF and 8-bit value from A, check flags: -#define sbc_a_u8(u8) do { \ - HF1 = A; \ - HF2 = 0x400 | (CF & 0x100) | (u8); \ - ZF = CF = A - ((CF >> 8) & 1) - (u8); \ - A = ZF & 0xFF; \ -} while (0) - -//and a,r (4 cycles): -//and a,(addr) (8 cycles): -//bitwise and 8-bit value into A, check flags: -#define and_a_u8(u8) do { \ - HF2 = 0x200; \ - CF = 0; \ - A &= (u8); \ - ZF = A; \ -} while (0) - -//or a,r (4 cycles): -//or a,(hl) (8 cycles): -//bitwise or 8-bit value into A, check flags: -#define or_a_u8(u8) do { \ - CF = HF2 = 0; \ - A |= (u8); \ - ZF = A; \ -} while (0) - -//xor a,r (4 cycles): -//xor a,(hl) (8 cycles): -//bitwise xor 8-bit value into A, check flags: -#define xor_a_u8(u8) do { \ - CF = HF2 = 0; \ - A ^= (u8); \ - ZF = A; \ -} while (0) - -//cp a,r (4 cycles): -//cp a,(addr) (8 cycles): -//Compare (subtract without storing result) 8-bit value to A, check flags: -#define cp_a_u8(u8) do { \ - HF1 = A; \ - HF2 = u8; \ - ZF = CF = A - HF2; \ - HF2 |= 0x400; \ -} while (0) - -//inc r (4 cycles): -//Increment value of 8-bit register, check flags except CF: -#define inc_r(r) do { \ - HF2 = (r) | 0x800; \ - ZF = (r) + 1; \ - (r) = ZF & 0xFF; \ -} while (0) - -//dec r (4 cycles): -//Decrement value of 8-bit register, check flags except CF: -#define dec_r(r) do { \ - HF2 = (r) | 0xC00; \ - ZF = (r) - 1; \ - (r) = ZF & 0xFF; \ -} while (0) - -//16-BIT ARITHMETIC -//add hl,rr (8 cycles): -//add 16-bit register to HL, check flags except ZF: -/*#define add_hl_rr(rh, rl) do { \ - L = HF1 = L + (rl); \ - HF1 >>= 8; \ - HF1 += H; \ - HF2 = (rh); \ - H = CF = HF1 + (rh); \ - cycleCounter += 4; \ -} while (0)*/ - -#define add_hl_rr(rh, rl) do { \ - CF = L + (rl); \ - L = CF & 0xFF; \ - HF1 = H; \ - HF2 = (CF & 0x100) | (rh); \ - CF = H + (CF >> 8) + (rh); \ - H = CF & 0xFF; \ - cycleCounter += 4; \ -} while (0) - -//inc rr (8 cycles): -//Increment 16-bit register: -#define inc_rr(rh, rl) do { \ - const unsigned inc_rr_var_tmp = (rl) + 1; \ - (rl) = inc_rr_var_tmp & 0xFF; \ - (rh) = ((rh) + (inc_rr_var_tmp >> 8)) & 0xFF; \ - cycleCounter += 4; \ -} while (0) - -//dec rr (8 cycles): -//Decrement 16-bit register: -#define dec_rr(rh, rl) do { \ - const unsigned dec_rr_var_tmp = (rl) - 1; \ - (rl) = dec_rr_var_tmp & 0xFF; \ - (rh) = ((rh) - (dec_rr_var_tmp >> 8 & 1)) & 0xFF; \ - cycleCounter += 4; \ -} while (0) - -#define sp_plus_n(sumout) do { \ - unsigned sp_plus_n_var_n; \ - PC_READ(sp_plus_n_var_n); \ - sp_plus_n_var_n = (sp_plus_n_var_n ^ 0x80) - 0x80; \ - \ - const unsigned sp_plus_n_var_sum = SP + sp_plus_n_var_n; \ - CF = SP ^ sp_plus_n_var_n ^ sp_plus_n_var_sum; \ - HF2 = CF << 5 & 0x200; \ - ZF = 1; \ - cycleCounter += 4; \ - (sumout) = sp_plus_n_var_sum & 0xFFFF; \ -} while (0) - -//JUMPS: -//jp nn (16 cycles): -//Jump to address stored in the next two bytes in memory: -#define jp_nn() do { \ - unsigned jp_nn_var_l, jp_nn_var_h; \ -\ - PC_READ(jp_nn_var_l); \ - PC_READ(jp_nn_var_h); \ -\ - PC_MOD(jp_nn_var_h << 8 | jp_nn_var_l); \ -} while (0) - -//jr disp (12 cycles): -//Jump to value of next (signed) byte in memory+current address: -#define jr_disp() do { \ - unsigned jr_disp_var_tmp; \ -\ - PC_READ(jr_disp_var_tmp); \ - jr_disp_var_tmp = (jr_disp_var_tmp ^ 0x80) - 0x80; \ -\ - PC_MOD((PC + jr_disp_var_tmp) & 0xFFFF); \ -} while (0) - -//CALLS, RESTARTS AND RETURNS: -//call nn (24 cycles): -//Push address of next instruction onto stack and then jump to address stored in next two bytes in memory: -#define call_nn() do { \ - PUSH(((PC + 2) >> 8) & 0xFF, (PC + 2) & 0xFF); \ - jp_nn(); \ -} while (0) - -//rst n (16 Cycles): -//Push present address onto stack, jump to address n (one of 00h,08h,10h,18h,20h,28h,30h,38h): -#define rst_n(n) do { \ - PUSH(PC >> 8, PC & 0xFF); \ - PC_MOD(n); \ -} while (0) - -//ret (16 cycles): -//Pop two bytes from the stack and jump to that address: -#define ret() do { \ - unsigned ret_var_l, ret_var_h; \ -\ - pop_rr(ret_var_h, ret_var_l); \ -\ - PC_MOD(ret_var_h << 8 | ret_var_l); \ -} while (0) - -void CPU::process(const unsigned long cycles) { - memory.setEndtime(cycleCounter_, cycles); - - unsigned char A = A_; - unsigned long cycleCounter = cycleCounter_; - - while (memory.isActive()) { - unsigned short PC = PC_; - - if (halted) { - if (cycleCounter < memory.getNextEventTime()) { - const unsigned long cycles = memory.getNextEventTime() - cycleCounter; - cycleCounter += cycles + ((4 - (cycles & 3)) & 3); - } - } else while (cycleCounter < memory.getNextEventTime()) { - unsigned char opcode; - - PC_READ(opcode); - - if (skip) { - PC = (PC - 1) & 0xFFFF; - skip = false; - } - - switch (opcode) { - //nop (4 cycles): - //Do nothing for 4 cycles: - case 0x00: - break; - case 0x01: - ld_rr_nn(B, C); - break; - case 0x02: - WRITE(BC(), A); - break; - case 0x03: - inc_rr(B, C); - break; - case 0x04: - inc_r(B); - break; - case 0x05: - dec_r(B); - break; - case 0x06: - PC_READ(B); - break; - - //rlca (4 cycles): - //Rotate 8-bit register A left, store old bit7 in CF. Reset SF, HCF, ZF: - case 0x07: - CF = A << 1; - A = (CF | CF >> 8) & 0xFF; - HF2 = 0; - ZF = 1; - break; - - //ld (nn),SP (20 cycles): - //Put value of SP into address given by next 2 bytes in memory: - case 0x08: - { - unsigned l, h; - - PC_READ(l); - PC_READ(h); - - const unsigned addr = h << 8 | l; - - WRITE(addr, SP & 0xFF); - WRITE((addr + 1) & 0xFFFF, SP >> 8); - } - break; - - case 0x09: - add_hl_rr(B, C); - break; - case 0x0A: - READ(A, BC()); - break; - case 0x0B: - dec_rr(B, C); - break; - case 0x0C: - inc_r(C); - break; - case 0x0D: - dec_r(C); - break; - case 0x0E: - PC_READ(C); - break; - - //rrca (4 cycles): - //Rotate 8-bit register A right, store old bit0 in CF. Reset SF, HCF, ZF: - case 0x0F: - CF = A << 8 | A; - A = CF >> 1 & 0xFF; - HF2 = 0; - ZF = 1; - break; - - //stop (4 cycles): - //Halt CPU and LCD display until button pressed: - case 0x10: - memory.speedChange(cycleCounter); - PC = (PC + 1) & 0xFFFF; - break; - case 0x11: - ld_rr_nn(D, E); - break; - case 0x12: - WRITE(DE(), A); - break; - case 0x13: - inc_rr(D, E); - break; - case 0x14: - inc_r(D); - break; - case 0x15: - dec_r(D); - break; - case 0x16: - PC_READ(D); - break; - - //rla (4 cycles): - //Rotate 8-bit register A left through CF, store old bit7 in CF, old CF value becomes bit0. Reset SF, HCF, ZF: - case 0x17: - { - const unsigned oldcf = CF >> 8 & 1; - CF = A << 1; - A = (CF | oldcf) & 0xFF; - } - - HF2 = 0; - ZF = 1; - break; - - case 0x18: - jr_disp(); - break; - case 0x19: - add_hl_rr(D, E); - break; - case 0x1A: - READ(A, DE()); - break; - case 0x1B: - dec_rr(D, E); - break; - case 0x1C: - inc_r(E); - break; - case 0x1D: - dec_r(E); - break; - case 0x1E: - PC_READ(E); - break; - - //rra (4 cycles): - //Rotate 8-bit register A right through CF, store old bit0 in CF, old CF value becomes bit7. Reset SF, HCF, ZF: - case 0x1F: - { - const unsigned oldcf = CF & 0x100; - CF = A << 8; - A = (A | oldcf) >> 1; - } - - HF2 = 0; - ZF = 1; - break; - - //jr nz,disp (12;8 cycles): - //Jump to value of next (signed) byte in memory+current address if ZF is unset: - case 0x20: - if (ZF & 0xFF) { - jr_disp(); - } else { - PC_MOD((PC + 1) & 0xFFFF); - } - break; - - case 0x21: - ld_rr_nn(H, L); - break; - - //ldi (hl),a (8 cycles): - //Put A into memory address in hl. Increment HL: - case 0x22: - { - unsigned addr = HL(); - - WRITE(addr, A); - - addr = (addr + 1) & 0xFFFF; - L = addr; - H = addr >> 8; - } - break; - - case 0x23: - inc_rr(H, L); - break; - case 0x24: - inc_r(H); - break; - case 0x25: - dec_r(H); - break; - case 0x26: - PC_READ(H); - break; - - - //daa (4 cycles): - //Adjust register A to correctly represent a BCD. Check ZF, HF and CF: - case 0x27: - /*{ - unsigned correction = ((A > 0x99) || (CF & 0x100)) ? 0x60 : 0x00; - - calcHF(HF1, HF2); - - if ((A & 0x0F) > 0x09 || (HF2 & 0x200)) - correction |= 0x06; - - HF1 = A; - HF2 = (HF2 & 0x400) | correction; - CF = (correction & 0x40) << 2; - A = (HF2 & 0x400) ? A - correction : (A + correction); - ZF = A; - }*/ - - calcHF(HF1, HF2); - - { - unsigned correction = (CF & 0x100) ? 0x60 : 0x00; - - if (HF2 & 0x200) - correction |= 0x06; - - if (!(HF2 &= 0x400)) { - if ((A & 0x0F) > 0x09) - correction |= 0x06; - - if (A > 0x99) - correction |= 0x60; - - A += correction; - } else - A -= correction; - - CF = correction << 2 & 0x100; - ZF = A; - A &= 0xFF; - } - break; - - //jr z,disp (12;8 cycles): - //Jump to value of next (signed) byte in memory+current address if ZF is set: - case 0x28: - if (ZF & 0xFF) { - PC_MOD((PC + 1) & 0xFFFF); - } else { - jr_disp(); - } - break; - - //add hl,hl (8 cycles): - //add 16-bit register HL to HL, check flags except ZF: - case 0x29: - add_hl_rr(H, L); - break; - - //ldi a,(hl) (8 cycles): - //Put value at address in hl into A. Increment HL: - case 0x2A: - { - unsigned addr = HL(); - - READ(A, addr); - - addr = (addr + 1) & 0xFFFF; - L = addr; - H = addr >> 8; - } - break; - - case 0x2B: - dec_rr(H, L); - break; - case 0x2C: - inc_r(L); - break; - case 0x2D: - dec_r(L); - break; - case 0x2E: - PC_READ(L); - break; - - //cpl (4 cycles): - //Complement register A. (Flip all bits), set SF and HCF: - case 0x2F: /*setSubtractFlag(); setHalfCarryFlag();*/ - HF2 = 0x600; - A ^= 0xFF; - break; - - //jr nc,disp (12;8 cycles): - //Jump to value of next (signed) byte in memory+current address if CF is unset: - case 0x30: - if (CF & 0x100) { - PC_MOD((PC + 1) & 0xFFFF); - } else { - jr_disp(); - } - break; - - //ld sp,nn (12 cycles) - //set sp to 16-bit value of next 2 bytes in memory - case 0x31: - { - unsigned l, h; - - PC_READ(l); - PC_READ(h); - - SP = h << 8 | l; - } - break; - - //ldd (hl),a (8 cycles): - //Put A into memory address in hl. Decrement HL: - case 0x32: - { - unsigned addr = HL(); - - WRITE(addr, A); - - addr = (addr - 1) & 0xFFFF; - L = addr; - H = addr >> 8; - } - break; - - case 0x33: - SP = (SP + 1) & 0xFFFF; - cycleCounter += 4; - break; - - //inc (hl) (12 cycles): - //Increment value at address in hl, check flags except CF: - case 0x34: - { - const unsigned addr = HL(); - - READ(HF2, addr); - ZF = HF2 + 1; - WRITE(addr, ZF & 0xFF); - HF2 |= 0x800; - } - break; - - //dec (hl) (12 cycles): - //Decrement value at address in hl, check flags except CF: - case 0x35: - { - const unsigned addr = HL(); - - READ(HF2, addr); - ZF = HF2 - 1; - WRITE(addr, ZF & 0xFF); - HF2 |= 0xC00; - } - break; - - //ld (hl),n (12 cycles): - //set memory at address in hl to value of next byte in memory: - case 0x36: - { - unsigned tmp; - - PC_READ(tmp); - WRITE(HL(), tmp); - } - break; - - //scf (4 cycles): - //Set CF. Unset SF and HCF: - case 0x37: /*setCarryFlag(); unsetSubtractFlag(); unsetHalfCarryFlag();*/ - CF = 0x100; - HF2 = 0; - break; - - //jr c,disp (12;8 cycles): - //Jump to value of next (signed) byte in memory+current address if CF is set: - case 0x38: //PC+=(((int8_t)memory.read(PC++))*CarryFlag()); Cycles(8); break; - if (CF & 0x100) { - jr_disp(); - } else { - PC_MOD((PC + 1) & 0xFFFF); - } - break; - - //add hl,sp (8 cycles): - //add SP to HL, check flags except ZF: - case 0x39: /*add_hl_rr(SP>>8, SP); break;*/ - CF = L + SP; - L = CF & 0xFF; - HF1 = H; - HF2 = ((CF ^ SP) & 0x100) | SP >> 8; - CF >>= 8; - CF += H; - H = CF & 0xFF; - cycleCounter += 4; - break; - - //ldd a,(hl) (8 cycles): - //Put value at address in hl into A. Decrement HL: - case 0x3A: - { - unsigned addr = HL(); - - A = memory.read(addr, cycleCounter); - cycleCounter += 4; - - addr = (addr - 1) & 0xFFFF; - L = addr; - H = addr >> 8; - } - break; - - case 0x3B: - SP = (SP - 1) & 0xFFFF; - cycleCounter += 4; - break; - case 0x3C: - inc_r(A); - break; - case 0x3D: - dec_r(A); - break; - case 0x3E: - PC_READ(A); - break; - - //ccf (4 cycles): - //Complement CF (unset if set vv.) Unset SF and HCF. - case 0x3F: /*complementCarryFlag(); unsetSubtractFlag(); unsetHalfCarryFlag();*/ - CF ^= 0x100; - HF2 = 0; - break; - - //ld r,r (4 cycles):next_irqEventTime - //ld r,(r) (8 cycles): - case 0x40: - B = B; - break; - case 0x41: - B = C; - break; - case 0x42: - B = D; - break; - case 0x43: - B = E; - break; - case 0x44: - B = H; - break; - case 0x45: - B = L; - break; - case 0x46: - READ(B, HL()); - break; - case 0x47: - B = A; - break; - case 0x48: - C = B; - break; - case 0x49: - C = C; - break; - case 0x4A: - C = D; - break; - case 0x4B: - C = E; - break; - case 0x4C: - C = H; - break; - case 0x4D: - C = L; - break; - case 0x4E: - READ(C, HL()); - break; - case 0x4F: - C = A; - break; - case 0x50: - D = B; - break; - case 0x51: - D = C; - break; - case 0x52: - D = D; - break; - case 0x53: - D = E; - break; - case 0x54: - D = H; - break; - case 0x55: - D = L; - break; - case 0x56: - READ(D, HL()); - break; - case 0x57: - D = A; - break; - case 0x58: - E = B; - break; - case 0x59: - E = C; - break; - case 0x5A: - E = D; - break; - case 0x5B: - E = E; - break; - case 0x5C: - E = H; - break; - case 0x5D: - E = L; - break; - case 0x5E: - READ(E, HL()); - break; - case 0x5F: - E = A; - break; - case 0x60: - H = B; - break; - case 0x61: - H = C; - break; - case 0x62: - H = D; - break; - case 0x63: - H = E; - break; - case 0x64: - H = H; - break; - case 0x65: - H = L; - break; - case 0x66: - READ(H, HL()); - break; - case 0x67: - H = A; - break; - case 0x68: - L = B; - break; - case 0x69: - L = C; - break; - case 0x6A: - L = D; - break; - case 0x6B: - L = E; - break; - case 0x6C: - L = H; - break; - case 0x6D: - L = L; - break; - case 0x6E: - READ(L, HL()); - break; - case 0x6F: - L = A; - break; - case 0x70: - WRITE(HL(), B); - break; - case 0x71: - WRITE(HL(), C); - break; - case 0x72: - WRITE(HL(), D); - break; - case 0x73: - WRITE(HL(), E); - break; - case 0x74: - WRITE(HL(), H); - break; - case 0x75: - WRITE(HL(), L); - break; - - //halt (4 cycles): - case 0x76: -// printf("halt\n"); - if (memory.getIME()/* || memory.next_eitime*/) { - halted = 1; - - if (cycleCounter < memory.getNextEventTime()) { - const unsigned long cycles = memory.getNextEventTime() - cycleCounter; - cycleCounter += cycles + ((4 - (cycles & 3)) & 3); - } - } else { - if ((memory.ff_read(0xFF0F, cycleCounter) & memory.ff_read(0xFFFF, cycleCounter)) & 0x1F) { - if (memory.isCgb()) - cycleCounter += 8; //two nops. - else - skip = true; - } else { - memory.schedule_unhalt(); - halted = 1; - - if (cycleCounter < memory.getNextEventTime()) { - const unsigned long cycles = memory.getNextEventTime() - cycleCounter; - cycleCounter += cycles + ((4 - (cycles & 3)) & 3); - } - } - } - break; - case 0x77: - WRITE(HL(), A); - break; - case 0x78: - A = B; - break; - case 0x79: - A = C; - break; - case 0x7A: - A = D; - break; - case 0x7B: - A = E; - break; - case 0x7C: - A = H; - break; - case 0x7D: - A = L; - break; - case 0x7E: - READ(A, HL()); - break; - case 0x7F: - A = A; - break; - case 0x80: - add_a_u8(B); - break; - case 0x81: - add_a_u8(C); - break; - case 0x82: - add_a_u8(D); - break; - case 0x83: - add_a_u8(E); - break; - case 0x84: - add_a_u8(H); - break; - case 0x85: - add_a_u8(L); - break; - case 0x86: - { - unsigned data; - - READ(data, HL()); - - add_a_u8(data); - } - break; - case 0x87: - add_a_u8(A); - break; - case 0x88: - adc_a_u8(B); - break; - case 0x89: - adc_a_u8(C); - break; - case 0x8A: - adc_a_u8(D); - break; - case 0x8B: - adc_a_u8(E); - break; - case 0x8C: - adc_a_u8(H); - break; - case 0x8D: - adc_a_u8(L); - break; - case 0x8E: - { - unsigned data; - - READ(data, HL()); - - adc_a_u8(data); - } - break; - case 0x8F: - adc_a_u8(A); - break; - case 0x90: - sub_a_u8(B); - break; - case 0x91: - sub_a_u8(C); - break; - case 0x92: - sub_a_u8(D); - break; - case 0x93: - sub_a_u8(E); - break; - case 0x94: - sub_a_u8(H); - break; - case 0x95: - sub_a_u8(L); - break; - case 0x96: - { - unsigned data; - - READ(data, HL()); - - sub_a_u8(data); - } - break; - //A-A is always 0: - case 0x97: - HF2 = 0x400; - CF = ZF = A = 0; - break; - case 0x98: - sbc_a_u8(B); - break; - case 0x99: - sbc_a_u8(C); - break; - case 0x9A: - sbc_a_u8(D); - break; - case 0x9B: - sbc_a_u8(E); - break; - case 0x9C: - sbc_a_u8(H); - break; - case 0x9D: - sbc_a_u8(L); - break; - case 0x9E: - { - unsigned data; - - READ(data, HL()); - - sbc_a_u8(data); - } - break; - case 0x9F: - sbc_a_u8(A); - break; - case 0xA0: - and_a_u8(B); - break; - case 0xA1: - and_a_u8(C); - break; - case 0xA2: - and_a_u8(D); - break; - case 0xA3: - and_a_u8(E); - break; - case 0xA4: - and_a_u8(H); - break; - case 0xA5: - and_a_u8(L); - break; - case 0xA6: - { - unsigned data; - - READ(data, HL()); - - and_a_u8(data); - } - break; - //A&A will always be A: - case 0xA7: - ZF = A; - CF = 0; - HF2 = 0x200; - break; - case 0xA8: - xor_a_u8(B); - break; - case 0xA9: - xor_a_u8(C); - break; - case 0xAA: - xor_a_u8(D); - break; - case 0xAB: - xor_a_u8(E); - break; - case 0xAC: - xor_a_u8(H); - break; - case 0xAD: - xor_a_u8(L); - break; - case 0xAE: - { - unsigned data; - - READ(data, HL()); - - xor_a_u8(data); - } - break; - //A^A will always be 0: - case 0xAF: - CF = HF2 = ZF = A = 0; - break; - case 0xB0: - or_a_u8(B); - break; - case 0xB1: - or_a_u8(C); - break; - case 0xB2: - or_a_u8(D); - break; - case 0xB3: - or_a_u8(E); - break; - case 0xB4: - or_a_u8(H); - break; - case 0xB5: - or_a_u8(L); - break; - case 0xB6: - { - unsigned data; - - READ(data, HL()); - - or_a_u8(data); - } - break; - //A|A will always be A: - case 0xB7: - ZF = A; - HF2 = CF = 0; - break; - case 0xB8: - cp_a_u8(B); - break; - case 0xB9: - cp_a_u8(C); - break; - case 0xBA: - cp_a_u8(D); - break; - case 0xBB: - cp_a_u8(E); - break; - case 0xBC: - cp_a_u8(H); - break; - case 0xBD: - cp_a_u8(L); - break; - case 0xBE: - { - unsigned data; - - READ(data, HL()); - - cp_a_u8(data); - } - break; - //A always equals A: - case 0xBF: - CF = ZF = 0; - HF2 = 0x400; - break; - - //ret nz (20;8 cycles): - //Pop two bytes from the stack and jump to that address, if ZF is unset: - case 0xC0: - cycleCounter += 4; - - if (ZF & 0xFF) { - ret(); - } - break; - - case 0xC1: - pop_rr(B, C); - break; - - //jp nz,nn (16;12 cycles): - //Jump to address stored in next two bytes in memory if ZF is unset: - case 0xC2: - if (ZF & 0xFF) { - jp_nn(); - } else { - PC_MOD((PC + 2) & 0xFFFF); - cycleCounter += 4; - } - break; - - case 0xC3: - jp_nn(); - break; - - //call nz,nn (24;12 cycles): - //Push address of next instruction onto stack and then jump to address stored in next two bytes in memory, if ZF is unset: - case 0xC4: - if (ZF & 0xFF) { - call_nn(); - } else { - PC_MOD((PC + 2) & 0xFFFF); - cycleCounter += 4; - } - break; - - case 0xC5: - push_rr(B, C); - break; - case 0xC6: - { - unsigned data; - - PC_READ(data); - - add_a_u8(data); - } - break; - case 0xC7: - rst_n(0x00); - break; - - //ret z (20;8 cycles): - //Pop two bytes from the stack and jump to that address, if ZF is set: - case 0xC8: - cycleCounter += 4; - - if (!(ZF & 0xFF)) { - ret(); - } - - break; - - //ret (16 cycles): - //Pop two bytes from the stack and jump to that address: - case 0xC9: - ret(); - break; - - //jp z,nn (16;12 cycles): - //Jump to address stored in next two bytes in memory if ZF is set: - case 0xCA: - if (ZF & 0xFF) { - PC_MOD((PC + 2) & 0xFFFF); - cycleCounter += 4; - } else { - jp_nn(); - } - break; - - - //CB OPCODES (Shifts, rotates and bits): - case 0xCB: - PC_READ(opcode); - - switch (opcode) { - case 0x00: - rlc_r(B); - break; - case 0x01: - rlc_r(C); - break; - case 0x02: - rlc_r(D); - break; - case 0x03: - rlc_r(E); - break; - case 0x04: - rlc_r(H); - break; - case 0x05: - rlc_r(L); - break; - //rlc (hl) (16 cycles): - //Rotate 8-bit value stored at address in HL left, store old bit7 in CF. Reset SF and HCF. Check ZF: - case 0x06: - { - const unsigned addr = HL(); - - READ(CF, addr); - CF <<= 1; - - ZF = CF | (CF >> 8); - - WRITE(addr, ZF & 0xFF); - - HF2 = 0; - } - break; - case 0x07: - rlc_r(A); - break; - case 0x08: - rrc_r(B); - break; - case 0x09: - rrc_r(C); - break; - case 0x0A: - rrc_r(D); - break; - case 0x0B: - rrc_r(E); - break; - case 0x0C: - rrc_r(H); - break; - case 0x0D: - rrc_r(L); - break; - //rrc (hl) (16 cycles): - //Rotate 8-bit value stored at address in HL right, store old bit0 in CF. Reset SF and HCF. Check ZF: - case 0x0E: - { - const unsigned addr = HL(); - - READ(ZF, addr); - - CF = ZF << 8; - - WRITE(addr, (ZF | CF) >> 1 & 0xFF); - - HF2 = 0; - } - break; - case 0x0F: - rrc_r(A); - break; - case 0x10: - rl_r(B); - break; - case 0x11: - rl_r(C); - break; - case 0x12: - rl_r(D); - break; - case 0x13: - rl_r(E); - break; - case 0x14: - rl_r(H); - break; - case 0x15: - rl_r(L); - break; - //rl (hl) (16 cycles): - //Rotate 8-bit value stored at address in HL left thorugh CF, store old bit7 in CF, old CF value becoms bit0. Reset SF and HCF. Check ZF: - case 0x16: - { - const unsigned addr = HL(); - const unsigned oldcf = CF >> 8 & 1; - - READ(CF, addr); - CF <<= 1; - - ZF = CF | oldcf; - - WRITE(addr, ZF & 0xFF); - - HF2 = 0; - } - break; - case 0x17: - rl_r(A); - break; - case 0x18: - rr_r(B); - break; - case 0x19: - rr_r(C); - break; - case 0x1A: - rr_r(D); - break; - case 0x1B: - rr_r(E); - break; - case 0x1C: - rr_r(H); - break; - case 0x1D: - rr_r(L); - break; - //rr (hl) (16 cycles): - //Rotate 8-bit value stored at address in HL right thorugh CF, store old bit0 in CF, old CF value becoms bit7. Reset SF and HCF. Check ZF: - case 0x1E: - { - const unsigned addr = HL(); - - READ(ZF, addr); - - const unsigned oldcf = CF & 0x100; - CF = ZF << 8; - ZF = (ZF | oldcf) >> 1; - - WRITE(addr, ZF); - - HF2 = 0; - } - break; - case 0x1F: - rr_r(A); - break; - case 0x20: - sla_r(B); - break; - case 0x21: - sla_r(C); - break; - case 0x22: - sla_r(D); - break; - case 0x23: - sla_r(E); - break; - case 0x24: - sla_r(H); - break; - case 0x25: - sla_r(L); - break; - //sla (hl) (16 cycles): - //Shift 8-bit value stored at address in HL left, store old bit7 in CF. Reset SF and HCF. Check ZF: - case 0x26: - { - const unsigned addr = HL(); - - READ(CF, addr); - CF <<= 1; - - ZF = CF; - - WRITE(addr, ZF & 0xFF); - - HF2 = 0; - } - break; - case 0x27: - sla_r(A); - break; - case 0x28: - sra_r(B); - break; - case 0x29: - sra_r(C); - break; - case 0x2A: - sra_r(D); - break; - case 0x2B: - sra_r(E); - break; - case 0x2C: - sra_r(H); - break; - case 0x2D: - sra_r(L); - break; - //sra (hl) (16 cycles): - //Shift 8-bit value stored at address in HL right, store old bit0 in CF, bit7=old bit7. Reset SF and HCF. Check ZF: - case 0x2E: - { - const unsigned addr = HL(); - - READ(CF, addr); - - ZF = CF >> 1; - - WRITE(addr, ZF | (CF & 0x80)); - - CF <<= 8; - HF2 = 0; - } - break; - case 0x2F: - sra_r(A); - break; - case 0x30: - swap_r(B); - break; - case 0x31: - swap_r(C); - break; - case 0x32: - swap_r(D); - break; - case 0x33: - swap_r(E); - break; - case 0x34: - swap_r(H); - break; - case 0x35: - swap_r(L); - break; - //swap (hl) (16 cycles): - //Swap upper and lower nibbles of 8-bit value stored at address in HL, reset flags, check zero flag: - case 0x36: - { - const unsigned addr = HL(); - - READ(ZF, addr); - - WRITE(addr, (ZF << 4 | ZF >> 4) & 0xFF); - - CF = HF2 = 0; - } - break; - case 0x37: - swap_r(A); - break; - case 0x38: - srl_r(B); - break; - case 0x39: - srl_r(C); - break; - case 0x3A: - srl_r(D); - break; - case 0x3B: - srl_r(E); - break; - case 0x3C: - srl_r(H); - break; - case 0x3D: - srl_r(L); - break; - //srl (hl) (16 cycles): - //Shift 8-bit value stored at address in HL right, store old bit0 in CF. Reset SF and HCF. Check ZF: - case 0x3E: - { - const unsigned addr = HL(); - - READ(CF, addr); - - ZF = CF >> 1; - - WRITE(addr, ZF); - - CF <<= 8; - HF2 = 0; - } - break; - case 0x3F: - srl_r(A); - break; - case 0x40: - bit0_u8(B); - break; - case 0x41: - bit0_u8(C); - break; - case 0x42: - bit0_u8(D); - break; - case 0x43: - bit0_u8(E); - break; - case 0x44: - bit0_u8(H); - break; - case 0x45: - bit0_u8(L); - break; - case 0x46: - { - unsigned data; - - READ(data, HL()); - - bit0_u8(data); - } - break; - case 0x47: - bit0_u8(A); - break; - case 0x48: - bit1_u8(B); - break; - case 0x49: - bit1_u8(C); - break; - case 0x4A: - bit1_u8(D); - break; - case 0x4B: - bit1_u8(E); - break; - case 0x4C: - bit1_u8(H); - break; - case 0x4D: - bit1_u8(L); - break; - case 0x4E: - { - unsigned data; - - READ(data, HL()); - - bit1_u8(data); - } - break; - case 0x4F: - bit1_u8(A); - break; - case 0x50: - bit2_u8(B); - break; - case 0x51: - bit2_u8(C); - break; - case 0x52: - bit2_u8(D); - break; - case 0x53: - bit2_u8(E); - break; - case 0x54: - bit2_u8(H); - break; - case 0x55: - bit2_u8(L); - break; - case 0x56: - { - unsigned data; - - READ(data, HL()); - - bit2_u8(data); - } - break; - case 0x57: - bit2_u8(A); - break; - case 0x58: - bit3_u8(B); - break; - case 0x59: - bit3_u8(C); - break; - case 0x5A: - bit3_u8(D); - break; - case 0x5B: - bit3_u8(E); - break; - case 0x5C: - bit3_u8(H); - break; - case 0x5D: - bit3_u8(L); - break; - case 0x5E: - { - unsigned data; - - READ(data, HL()); - - bit3_u8(data); - } - break; - case 0x5F: - bit3_u8(A); - break; - case 0x60: - bit4_u8(B); - break; - case 0x61: - bit4_u8(C); - break; - case 0x62: - bit4_u8(D); - break; - case 0x63: - bit4_u8(E); - break; - case 0x64: - bit4_u8(H); - break; - case 0x65: - bit4_u8(L); - break; - case 0x66: - { - unsigned data; - - READ(data, HL()); - - bit4_u8(data); - } - break; - case 0x67: - bit4_u8(A); - break; - case 0x68: - bit5_u8(B); - break; - case 0x69: - bit5_u8(C); - break; - case 0x6A: - bit5_u8(D); - break; - case 0x6B: - bit5_u8(E); - break; - case 0x6C: - bit5_u8(H); - break; - case 0x6D: - bit5_u8(L); - break; - case 0x6E: - { - unsigned data; - - READ(data, HL()); - - bit5_u8(data); - } - break; - case 0x6F: - bit5_u8(A); - break; - case 0x70: - bit6_u8(B); - break; - case 0x71: - bit6_u8(C); - break; - case 0x72: - bit6_u8(D); - break; - case 0x73: - bit6_u8(E); - break; - case 0x74: - bit6_u8(H); - break; - case 0x75: - bit6_u8(L); - break; - case 0x76: - { - unsigned data; - - READ(data, HL()); - - bit6_u8(data); - } - break; - case 0x77: - bit6_u8(A); - break; - case 0x78: - bit7_u8(B); - break; - case 0x79: - bit7_u8(C); - break; - case 0x7A: - bit7_u8(D); - break; - case 0x7B: - bit7_u8(E); - break; - case 0x7C: - bit7_u8(H); - break; - case 0x7D: - bit7_u8(L); - break; - case 0x7E: - { - unsigned data; - - READ(data, HL()); - - bit7_u8(data); - } - break; - case 0x7F: - bit7_u8(A); - break; - case 0x80: - res0_r(B); - break; - case 0x81: - res0_r(C); - break; - case 0x82: - res0_r(D); - break; - case 0x83: - res0_r(E); - break; - case 0x84: - res0_r(H); - break; - case 0x85: - res0_r(L); - break; - case 0x86: - resn_mem_hl(0); - break; - case 0x87: - res0_r(A); - break; - case 0x88: - res1_r(B); - break; - case 0x89: - res1_r(C); - break; - case 0x8A: - res1_r(D); - break; - case 0x8B: - res1_r(E); - break; - case 0x8C: - res1_r(H); - break; - case 0x8D: - res1_r(L); - break; - case 0x8E: - resn_mem_hl(1); - break; - case 0x8F: - res1_r(A); - break; - case 0x90: - res2_r(B); - break; - case 0x91: - res2_r(C); - break; - case 0x92: - res2_r(D); - break; - case 0x93: - res2_r(E); - break; - case 0x94: - res2_r(H); - break; - case 0x95: - res2_r(L); - break; - case 0x96: - resn_mem_hl(2); - break; - case 0x97: - res2_r(A); - break; - case 0x98: - res3_r(B); - break; - case 0x99: - res3_r(C); - break; - case 0x9A: - res3_r(D); - break; - case 0x9B: - res3_r(E); - break; - case 0x9C: - res3_r(H); - break; - case 0x9D: - res3_r(L); - break; - case 0x9E: - resn_mem_hl(3); - break; - case 0x9F: - res3_r(A); - break; - case 0xA0: - res4_r(B); - break; - case 0xA1: - res4_r(C); - break; - case 0xA2: - res4_r(D); - break; - case 0xA3: - res4_r(E); - break; - case 0xA4: - res4_r(H); - break; - case 0xA5: - res4_r(L); - break; - case 0xA6: - resn_mem_hl(4); - break; - case 0xA7: - res4_r(A); - break; - case 0xA8: - res5_r(B); - break; - case 0xA9: - res5_r(C); - break; - case 0xAA: - res5_r(D); - break; - case 0xAB: - res5_r(E); - break; - case 0xAC: - res5_r(H); - break; - case 0xAD: - res5_r(L); - break; - case 0xAE: - resn_mem_hl(5); - break; - case 0xAF: - res5_r(A); - break; - case 0xB0: - res6_r(B); - break; - case 0xB1: - res6_r(C); - break; - case 0xB2: - res6_r(D); - break; - case 0xB3: - res6_r(E); - break; - case 0xB4: - res6_r(H); - break; - case 0xB5: - res6_r(L); - break; - case 0xB6: - resn_mem_hl(6); - break; - case 0xB7: - res6_r(A); - break; - case 0xB8: - res7_r(B); - break; - case 0xB9: - res7_r(C); - break; - case 0xBA: - res7_r(D); - break; - case 0xBB: - res7_r(E); - break; - case 0xBC: - res7_r(H); - break; - case 0xBD: - res7_r(L); - break; - case 0xBE: - resn_mem_hl(7); - break; - case 0xBF: - res7_r(A); - break; - case 0xC0: - set0_r(B); - break; - case 0xC1: - set0_r(C); - break; - case 0xC2: - set0_r(D); - break; - case 0xC3: - set0_r(E); - break; - case 0xC4: - set0_r(H); - break; - case 0xC5: - set0_r(L); - break; - case 0xC6: - setn_mem_hl(0); - break; - case 0xC7: - set0_r(A); - break; - case 0xC8: - set1_r(B); - break; - case 0xC9: - set1_r(C); - break; - case 0xCA: - set1_r(D); - break; - case 0xCB: - set1_r(E); - break; - case 0xCC: - set1_r(H); - break; - case 0xCD: - set1_r(L); - break; - case 0xCE: - setn_mem_hl(1); - break; - case 0xCF: - set1_r(A); - break; - case 0xD0: - set2_r(B); - break; - case 0xD1: - set2_r(C); - break; - case 0xD2: - set2_r(D); - break; - case 0xD3: - set2_r(E); - break; - case 0xD4: - set2_r(H); - break; - case 0xD5: - set2_r(L); - break; - case 0xD6: - setn_mem_hl(2); - break; - case 0xD7: - set2_r(A); - break; - case 0xD8: - set3_r(B); - break; - case 0xD9: - set3_r(C); - break; - case 0xDA: - set3_r(D); - break; - case 0xDB: - set3_r(E); - break; - case 0xDC: - set3_r(H); - break; - case 0xDD: - set3_r(L); - break; - case 0xDE: - setn_mem_hl(3); - break; - case 0xDF: - set3_r(A); - break; - case 0xE0: - set4_r(B); - break; - case 0xE1: - set4_r(C); - break; - case 0xE2: - set4_r(D); - break; - case 0xE3: - set4_r(E); - break; - case 0xE4: - set4_r(H); - break; - case 0xE5: - set4_r(L); - break; - case 0xE6: - setn_mem_hl(4); - break; - case 0xE7: - set4_r(A); - break; - case 0xE8: - set5_r(B); - break; - case 0xE9: - set5_r(C); - break; - case 0xEA: - set5_r(D); - break; - case 0xEB: - set5_r(E); - break; - case 0xEC: - set5_r(H); - break; - case 0xED: - set5_r(L); - break; - case 0xEE: - setn_mem_hl(5); - break; - case 0xEF: - set5_r(A); - break; - case 0xF0: - set6_r(B); - break; - case 0xF1: - set6_r(C); - break; - case 0xF2: - set6_r(D); - break; - case 0xF3: - set6_r(E); - break; - case 0xF4: - set6_r(H); - break; - case 0xF5: - set6_r(L); - break; - case 0xF6: - setn_mem_hl(6); - break; - case 0xF7: - set6_r(A); - break; - case 0xF8: - set7_r(B); - break; - case 0xF9: - set7_r(C); - break; - case 0xFA: - set7_r(D); - break; - case 0xFB: - set7_r(E); - break; - case 0xFC: - set7_r(H); - break; - case 0xFD: - set7_r(L); - break; - case 0xFE: - setn_mem_hl(7); - break; - case 0xFF: - set7_r(A); - break; -// default: break; - } - break; - - - //call z,nn (24;12 cycles): - //Push address of next instruction onto stack and then jump to address stored in next two bytes in memory, if ZF is set: - case 0xCC: - if (ZF & 0xFF) { - PC_MOD((PC + 2) & 0xFFFF); - cycleCounter += 4; - } else { - call_nn(); - } - break; - - case 0xCD: - call_nn(); - break; - case 0xCE: - { - unsigned data; - - PC_READ(data); - - adc_a_u8(data); - } - break; - case 0xCF: - rst_n(0x08); - break; - - //ret nc (20;8 cycles): - //Pop two bytes from the stack and jump to that address, if CF is unset: - case 0xD0: - cycleCounter += 4; - - if (!(CF & 0x100)) { - ret(); - } - - break; - - case 0xD1: - pop_rr(D, E); - break; - - //jp nc,nn (16;12 cycles): - //Jump to address stored in next two bytes in memory if CF is unset: - case 0xD2: - if (CF & 0x100) { - PC_MOD((PC + 2) & 0xFFFF); - cycleCounter += 4; - } else { - jp_nn(); - } - break; - - case 0xD3: /*doesn't exist*/ - break; - - //call nc,nn (24;12 cycles): - //Push address of next instruction onto stack and then jump to address stored in next two bytes in memory, if CF is unset: - case 0xD4: - if (CF & 0x100) { - PC_MOD((PC + 2) & 0xFFFF); - cycleCounter += 4; - } else { - call_nn(); - } - break; - - case 0xD5: - push_rr(D, E); - break; - case 0xD6: - { - unsigned data; - - PC_READ(data); - - sub_a_u8(data); - } - break; - case 0xD7: - rst_n(0x10); - break; - - //ret c (20;8 cycles): - //Pop two bytes from the stack and jump to that address, if CF is set: - case 0xD8: - cycleCounter += 4; - - if (CF & 0x100) { - ret(); - } - - break; - - //reti (16 cycles): - //Pop two bytes from the stack and jump to that address, then enable interrupts: - case 0xD9: - { - unsigned l, h; - - pop_rr(h, l); - - memory.ei(cycleCounter); - - PC_MOD(h << 8 | l); - } - break; - - //jp c,nn (16;12 cycles): - //Jump to address stored in next two bytes in memory if CF is set: - case 0xDA: //PC=( ((PC+2)*(1-CarryFlag())) + (((memory.read(PC+1)<<8)+memory.read(PC))*CarryFlag()) ); Cycles(12); break; - if (CF & 0x100) { - jp_nn(); - } else { - PC_MOD((PC + 2) & 0xFFFF); - cycleCounter += 4; - } - break; - - case 0xDB: /*doesn't exist*/ - break; - - //call z,nn (24;12 cycles): - //Push address of next instruction onto stack and then jump to address stored in next two bytes in memory, if CF is set: - case 0xDC: - if (CF & 0x100) { - call_nn(); - } else { - PC_MOD((PC + 2) & 0xFFFF); - cycleCounter += 4; - } - break; - - case 0xDE: - { - unsigned data; - - PC_READ(data); - - sbc_a_u8(data); - } - break; - case 0xDF: - rst_n(0x18); - break; - - //ld ($FF00+n),a (12 cycles): - //Put value in A into address (0xFF00 + next byte in memory): - case 0xE0: - { - unsigned tmp; - - PC_READ(tmp); - - FF_WRITE(0xFF00 | tmp, A); - } - break; - - case 0xE1: - pop_rr(H, L); - break; - - //ld ($FF00+C),a (8 ycles): - //Put A into address (0xFF00 + register C): - case 0xE2: - FF_WRITE(0xFF00 | C, A); - break; - case 0xE3: /*doesn't exist*/ - break; - case 0xE4: /*doesn't exist*/ - break; - case 0xE5: - push_rr(H, L); - break; - case 0xE6: - { - unsigned data; - - PC_READ(data); - - and_a_u8(data); - } - break; - case 0xE7: - rst_n(0x20); - break; - - //add sp,n (16 cycles): - //Add next (signed) byte in memory to SP, reset ZF and SF, check HCF and CF: - case 0xE8: - /*{ - int8_t tmp = int8_t(memory.pc_read(PC++, cycleCounter)); - HF2 = (((SP & 0xFFF) + tmp) >> 3) & 0x200; - CF = SP + tmp; - SP = CF; - CF >>= 8; - ZF = 1; - cycleCounter += 12; - }*/ - sp_plus_n(SP); - cycleCounter += 4; - break; - - //jp hl (4 cycles): - //Jump to address in hl: - case 0xE9: - PC = HL(); - break; - - //ld (nn),a (16 cycles): - //set memory at address given by the next 2 bytes to value in A: - //Incrementing PC before call, because of possible interrupt. - case 0xEA: - { - unsigned l, h; - - PC_READ(l); - PC_READ(h); - - WRITE(h << 8 | l, A); - } - break; - - case 0xEB: /*doesn't exist*/ - break; - case 0xEC: /*doesn't exist*/ - break; - case 0xED: /*doesn't exist*/ - break; - case 0xEE: - { - unsigned data; - - PC_READ(data); - - xor_a_u8(data); - } - break; - case 0xEF: - rst_n(0x28); - break; - - //ld a,($FF00+n) (12 cycles): - //Put value at address (0xFF00 + next byte in memory) into A: - case 0xF0: - { - unsigned tmp; - - PC_READ(tmp); - - FF_READ(A, 0xFF00 | tmp); - } - break; - - case 0xF1: /*pop_rr(A, F); Cycles(12); break;*/ - { - unsigned F; - - pop_rr(A, F); - - FROM_F(F); - } - break; - - //ld a,($FF00+C) (8 cycles): - //Put value at address (0xFF00 + register C) into A: - case 0xF2: - FF_READ(A, 0xFF00 | C); - break; - - //di (4 cycles): - case 0xF3: - memory.di(); - break; - - case 0xF4: /*doesn't exist*/ - break; - case 0xF5: /*push_rr(A, F); Cycles(16); break;*/ - calcHF(HF1, HF2); - - { - unsigned F = F(); - - push_rr(A, F); - } - break; - - case 0xF6: - { - unsigned data; - - PC_READ(data); - - or_a_u8(data); - } - break; - case 0xF7: - rst_n(0x30); - break; - - //ldhl sp,n (12 cycles): - //Put (sp+next (signed) byte in memory) into hl (unsets ZF and SF, may enable HF and CF): - case 0xF8: - /*{ - int8_t tmp = int8_t(memory.pc_read(PC++, cycleCounter)); - HF2 = (((SP & 0xFFF) + tmp) >> 3) & 0x200; - CF = SP + tmp; - L = CF; - CF >>= 8; - H = CF; - ZF = 1; - cycleCounter += 8; - }*/ - { - unsigned sum; - sp_plus_n(sum); - L = sum & 0xFF; - H = sum >> 8; - } - break; - - //ld sp,hl (8 cycles): - //Put value in HL into SP - case 0xF9: - SP = HL(); - cycleCounter += 4; - break; - - //ld a,(nn) (16 cycles): - //set A to value in memory at address given by the 2 next bytes. - case 0xFA: - { - unsigned l, h; - - PC_READ(l); - PC_READ(h); - - READ(A, h << 8 | l); - } - break; - - //ei (4 cycles): - //Enable Interrupts after next instruction: - case 0xFB: - memory.ei(cycleCounter); - break; - - case 0xFC: /*doesn't exist*/ - break; - case 0xFD: /*doesn't exist*/ - break; - case 0xFE: - { - unsigned data; - - PC_READ(data); - - cp_a_u8(data); - } - break; - case 0xFF: - rst_n(0x38); - break; -// default: break; - } - } - - PC_ = PC; - cycleCounter = memory.event(cycleCounter); - } - - A_ = A; - cycleCounter_ = cycleCounter; -} diff --git a/supergameboy/libgambatte/src/cpu.h b/supergameboy/libgambatte/src/cpu.h deleted file mode 100644 index 300ba5fb..00000000 --- a/supergameboy/libgambatte/src/cpu.h +++ /dev/null @@ -1,115 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef CPU_H -#define CPU_H - -class SaveState; - -#include "int.h" -#include "memory.h" - -class CPU { - Memory memory; - - unsigned long cycleCounter_; - - unsigned short PC_; - unsigned short SP; - - unsigned HF1, HF2, ZF, CF; - - unsigned char A_, B, C, D, E, /*F,*/ H, L; - - bool skip; - bool halted; - - void process(unsigned long cycles); - -public: - - CPU(); -// void halt(); - -// unsigned interrupt(unsigned address, unsigned cycleCounter); - - void updateVideo() { memory.updateVideo(cycleCounter_); } - unsigned lyCounter() { return memory.lyCounter(cycleCounter_); } - void setAccumulator(unsigned char value) { A_ = value; } - - void runFor(unsigned long cycles); - void setStatePtrs(SaveState &state); - void saveState(SaveState &state); - void loadState(const SaveState &state); - - void loadSavedata() { memory.loadSavedata(); } - void saveSavedata() { memory.saveSavedata(); } - - void setVideoBlitter(Gambatte::VideoBlitter *vb) { - memory.setVideoBlitter(vb); - } - - void videoBufferChange() { - memory.videoBufferChange(); - } - - unsigned int videoWidth() const { - return memory.videoWidth(); - } - - unsigned int videoHeight() const { - return memory.videoHeight(); - } - - void setVideoFilter(const unsigned int n) { - memory.setVideoFilter(n); - } - - std::vector filterInfo() const { - return memory.filterInfo(); - } - - void setInputStateGetter(Gambatte::InputStateGetter *getInput) { - memory.setInputStateGetter(getInput); - } - - void set_savedir(const char *sdir) { - memory.set_savedir(sdir); - } - - const std::string saveBasePath() const { - return memory.saveBasePath(); - } - - void setOsdElement(std::auto_ptr osdElement) { - memory.setOsdElement(osdElement); - } - - bool load(bool forceDmg); - - void setSoundBuffer(Gambatte::uint_least32_t *const buf) { memory.setSoundBuffer(buf); } - unsigned fillSoundBuffer() { return memory.fillSoundBuffer(cycleCounter_); } - - bool isCgb() const { return memory.isCgb(); } - - void setDmgPaletteColor(unsigned palNum, unsigned colorNum, unsigned rgb32) { - memory.setDmgPaletteColor(palNum, colorNum, rgb32); - } -}; - -#endif diff --git a/supergameboy/libgambatte/src/event_queue.h b/supergameboy/libgambatte/src/event_queue.h deleted file mode 100644 index 94fbebcf..00000000 --- a/supergameboy/libgambatte/src/event_queue.h +++ /dev/null @@ -1,160 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ -#ifndef EVENT_QUEUE_H -#define EVENT_QUEUE_H - -#include - -template -class event_queue { - Comparer comparer; - T *const a; - const std::size_t capacity_; - std::size_t size_; - - - std::size_t indexOf(T e); - void internalDec(std::size_t i, T e); - template void internalInc(std::size_t i, T e); - -public: - event_queue(std::size_t capacity, const Comparer &comparer); - ~event_queue(); - - std::size_t capacity() const { - return capacity_; - } - - void clear() { - size_ = 0; - } - - void dec(const T oldE, const T newE) { - internalDec(indexOf(oldE), newE); - } - - bool empty() const { - return size_ == 0; - } - - void inc(const T oldE, const T newE) { - internalInc(indexOf(oldE), newE); - } - - void modify_root(const T newRoot) { - internalInc(0, newRoot); - } - - void pop() { - internalInc(0, a[--size_]); - } - - void push(const T e) { - internalDec(size_++, e); - } - - void remove(T e); - - std::size_t size() const { - return size_; - } - - T top() const { - return a[0]; - } -}; - -template -event_queue::event_queue(const std::size_t capacity, const Comparer &comparer_in) : - comparer(comparer_in), - a(new T[capacity]), - capacity_(capacity), - size_(0) -{} - -template -event_queue::~event_queue() { - delete[] a; -} - -template -std::size_t event_queue::indexOf(const T e) { - std::size_t i = 0; - - while (a[i] != e) - ++i; - - return i; -} - -template -void event_queue::internalDec(std::size_t i, const T e) { - a[i] = e; - - while (i != 0) { - const std::size_t parentI = (i - 1) >> 1; - - if (!comparer.less(e, a[parentI])) - break; - - a[i] = a[parentI]; - a[parentI] = e; - i = parentI; - } -} - -template -template -void event_queue::internalInc(std::size_t i, const T e) { - a[i] = e; - - for (;;) { - std::size_t childI = i * 2 + 1; - - if (childI >= size_) - break; - - if ((!child2BoundsCheck || childI + 1 < size_) && comparer.less(a[childI + 1], a[childI])) - ++childI; - - if (!comparer.less(a[childI], e)) - break; - - a[i] = a[childI]; - a[childI] = e; - i = childI; - } -} - -template -void event_queue::remove(const T e) { - std::size_t i = indexOf(e); - - while (i != 0) { - const std::size_t parentI = (i - 1) >> 1; - - a[i] = a[parentI]; - a[parentI] = e; - i = parentI; - } - - pop(); -} - -#endif diff --git a/supergameboy/libgambatte/src/file/file.cpp b/supergameboy/libgambatte/src/file/file.cpp deleted file mode 100644 index 7a8f9966..00000000 --- a/supergameboy/libgambatte/src/file/file.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/*************************************************************************** -Copyright (C) 2007 by Nach -http://nsrt.edgeemu.com - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License version 2 as -published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License version 2 for more details. - -You should have received a copy of the GNU General Public License -version 2 along with this program; if not, write to the -Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -***************************************************************************/ - -#include "file.h" - -using namespace std; - -static const unsigned int MAX_FILE_NAME = 512; - -File::File(const char *filename) : stream(filename, ios::in | ios::binary), is_zip(false), fsize(0), count(0) -{ - if (stream) - { - stream.seekg(0, ios::end); - fsize = stream.tellg(); - stream.seekg(0, ios::beg); - } -} - -File::~File() -{ - close(); -} - -void File::rewind() -{ - if (is_open()) - { - stream.seekg(0, ios::beg); - } -} - -bool File::is_open() -{ - return(stream.is_open()); -} - -void File::close() -{ - if (is_open()) - { - stream.close(); - } -} - -void File::read(char *buffer, size_t amount) -{ - if (is_open()) - { - stream.read(buffer, amount); - count = stream.gcount(); - } - else - { - count = 0; - } -} diff --git a/supergameboy/libgambatte/src/file/file.h b/supergameboy/libgambatte/src/file/file.h deleted file mode 100644 index 3435ef16..00000000 --- a/supergameboy/libgambatte/src/file/file.h +++ /dev/null @@ -1,42 +0,0 @@ -/*************************************************************************** -Copyright (C) 2007 by Nach -http://nsrt.edgeemu.com - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License version 2 as -published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License version 2 for more details. - -You should have received a copy of the GNU General Public License -version 2 along with this program; if not, write to the -Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -***************************************************************************/ - -#include - -class File { - private: - std::ifstream stream; - bool is_zip; //Change this to an enum later - std::size_t fsize, count; - void *zipfile; - bool zip_sub_open; - - void zip(const char *filename); - - public: - File(const char *filename); - ~File(); - void rewind(); - bool is_open(); - void close(); - std::size_t size() const { return fsize; }; - void read(char *buffer, std::size_t amount); - std::size_t gcount() const { return count; } - bool fail() const { return stream.fail(); } -}; diff --git a/supergameboy/libgambatte/src/file/file_zip.cpp b/supergameboy/libgambatte/src/file/file_zip.cpp deleted file mode 100644 index c7fae6db..00000000 --- a/supergameboy/libgambatte/src/file/file_zip.cpp +++ /dev/null @@ -1,167 +0,0 @@ -/*************************************************************************** -Copyright (C) 2007 by Nach -http://nsrt.edgeemu.com - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License version 2 as -published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License version 2 for more details. - -You should have received a copy of the GNU General Public License -version 2 along with this program; if not, write to the -Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -***************************************************************************/ - -#include "file.h" - -#include - -namespace zlib { -#include "unzip/unzip.h" -} - -using namespace std; -using namespace zlib; - -static const unsigned int MAX_FILE_NAME = 512; - -File::File(const char *filename) : stream(filename, ios::in | ios::binary), is_zip(false), fsize(0), count(0) -{ - if (stream) - { - char temp[4]; - stream.read(temp, sizeof(temp)); - - //check for standard zip 'magic number' - if ((temp[0] == 'P') && (temp[1] == 'K') && (temp[2] == 3) && (temp[3] == 4)) - { - stream.close(); - is_zip = true; - zip(filename); - } - else - { - stream.seekg(0, ios::end); - fsize = stream.tellg(); - stream.seekg(0, ios::beg); - } - } -} - -void File::zip(const char *filename) -{ - zipfile = unzOpen(filename); - if (zipfile) - { - zip_sub_open = false; - - unz_file_info cFileInfo; - char ourFile[MAX_FILE_NAME] = { '\n' }; - - for (int cFile = unzGoToFirstFile((unzFile)zipfile); cFile == UNZ_OK; cFile = unzGoToNextFile((unzFile)zipfile)) - { - //Temporary char array for file name - char cFileName[MAX_FILE_NAME]; - - //Gets info on current file, and places it in cFileInfo - unzGetCurrentFileInfo((unzFile)zipfile, &cFileInfo, cFileName, MAX_FILE_NAME, 0, 0, 0, 0); - - //Check for largest file which should be the ROM - if ((size_t)cFileInfo.uncompressed_size > fsize) - { - strcpy(ourFile, cFileName); - fsize = (size_t)cFileInfo.uncompressed_size; - } - } - - if (ourFile[0] != '\n') - { - //Sets current file to the file we liked before - unzLocateFile((unzFile)zipfile, ourFile, 1); - - if (unzOpenCurrentFile((unzFile)zipfile) == UNZ_OK) - { - zip_sub_open = true; - } - } - - if (!zip_sub_open) - { - unzClose((unzFile)zipfile); - zipfile = 0; - } - } -} - -File::~File() -{ - close(); -} - -void File::rewind() -{ - if (is_open()) - { - if (!is_zip) - { - stream.seekg(0, ios::beg); - } - else - { - unzCloseCurrentFile((unzFile)zipfile); - unzOpenCurrentFile((unzFile)zipfile); - } - } -} - -bool File::is_open() -{ - if (!is_zip) - { - return(stream.is_open()); - } - return(zipfile && zip_sub_open); -} - -void File::close() -{ - if (is_open()) - { - if (!is_zip) - { - stream.close(); - } - else - { - unzOpenCurrentFile((unzFile)zipfile); - unzClose((unzFile)zipfile); - zipfile = 0; - zip_sub_open = false; - } - } -} - -void File::read(char *buffer, size_t amount) -{ - if (is_open()) - { - if (!is_zip) - { - stream.read(buffer, amount); - count = stream.gcount(); - } - else - { - count = (size_t)unzReadCurrentFile((unzFile)zipfile, buffer, amount); - } - } - else - { - count = 0; - } -} diff --git a/supergameboy/libgambatte/src/file/unzip/crypt.h b/supergameboy/libgambatte/src/file/unzip/crypt.h deleted file mode 100644 index 622f4bc2..00000000 --- a/supergameboy/libgambatte/src/file/unzip/crypt.h +++ /dev/null @@ -1,132 +0,0 @@ -/* crypt.h -- base code for crypt/uncrypt ZIPfile - - - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant - - This code is a modified version of crypting code in Infozip distribution - - The encryption/decryption parts of this source code (as opposed to the - non-echoing password parts) were originally written in Europe. The - whole source package can be freely distributed, including from the USA. - (Prior to January 2000, re-export from the US was a violation of US law.) - - This encryption code is a direct transcription of the algorithm from - Roger Schlafly, described by Phil Katz in the file appnote.txt. This - file (appnote.txt) is distributed with the PKZIP program (even in the - version without encryption capabilities). - - If you don't need crypting in your application, just define symbols - NOCRYPT and NOUNCRYPT. - - This code support the "Traditional PKWARE Encryption". - - The new AES encryption added on Zip format by Winzip (see the page - http://www.winzip.com/aes_info.htm ) and PKWare PKZip 5.x Strong - Encryption is not supported. -*/ - -#define CRC32(c, b) ((*(pcrc_32_tab+(((int)(c) ^ (b)) & 0xff))) ^ ((c) >> 8)) - -/*********************************************************************** - * Return the next byte in the pseudo-random sequence - */ -static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab) -{ - unsigned temp; /* POTENTIAL BUG: temp*(temp^1) may overflow in an - * unpredictable manner on 16-bit systems; not a problem - * with any known compiler so far, though */ - - temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2; - return (int)(((temp * (temp ^ 1)) >> 8) & 0xff); -} - -/*********************************************************************** - * Update the encryption keys with the next byte of plain text - */ -static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32_tab,int c) -{ - (*(pkeys+0)) = CRC32((*(pkeys+0)), c); - (*(pkeys+1)) += (*(pkeys+0)) & 0xff; - (*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1; - { - register int keyshift = (int)((*(pkeys+1)) >> 24); - (*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift); - } - return c; -} - - -/*********************************************************************** - * Initialize the encryption keys and the random header according to - * the given password. - */ -static void init_keys(const char* passwd,unsigned long* pkeys,const unsigned long* pcrc_32_tab) -{ - *(pkeys+0) = 305419896L; - *(pkeys+1) = 591751049L; - *(pkeys+2) = 878082192L; - while (*passwd != '\0') { - update_keys(pkeys,pcrc_32_tab,(int)*passwd); - passwd++; - } -} - -#define zdecode(pkeys,pcrc_32_tab,c) \ - (update_keys(pkeys,pcrc_32_tab,c ^= decrypt_byte(pkeys,pcrc_32_tab))) - -#define zencode(pkeys,pcrc_32_tab,c,t) \ - (t=decrypt_byte(pkeys,pcrc_32_tab), update_keys(pkeys,pcrc_32_tab,c), t^(c)) - -#ifdef INCLUDECRYPTINGCODE_IFCRYPTALLOWED - -#define RAND_HEAD_LEN 12 - /* "last resort" source for second part of crypt seed pattern */ -# ifndef ZCR_SEED2 -# define ZCR_SEED2 3141592654UL /* use PI as default pattern */ -# endif - -static int crypthead(passwd, buf, bufSize, pkeys, pcrc_32_tab, crcForCrypting) - const char *passwd; /* password string */ - unsigned char *buf; /* where to write header */ - int bufSize; - unsigned long* pkeys; - const unsigned long* pcrc_32_tab; - unsigned long crcForCrypting; -{ - int n; /* index in random header */ - int t; /* temporary */ - int c; /* random byte */ - unsigned char header[RAND_HEAD_LEN-2]; /* random header */ - static unsigned calls = 0; /* ensure different random header each time */ - - if (bufSize> 7) & 0xff; - header[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, c, t); - } - /* Encrypt random header (last two bytes is high word of crc) */ - init_keys(passwd, pkeys, pcrc_32_tab); - for (n = 0; n < RAND_HEAD_LEN-2; n++) - { - buf[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, header[n], t); - } - buf[n++] = zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 16) & 0xff, t); - buf[n++] = zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 24) & 0xff, t); - return n; -} - -#endif diff --git a/supergameboy/libgambatte/src/file/unzip/ioapi.c b/supergameboy/libgambatte/src/file/unzip/ioapi.c deleted file mode 100644 index 05b5ef15..00000000 --- a/supergameboy/libgambatte/src/file/unzip/ioapi.c +++ /dev/null @@ -1,177 +0,0 @@ -/* ioapi.c -- IO base function header for compress/uncompress .zip - files using zlib + zip or unzip API - - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant -*/ - -#include -#include -#include - -#include -#include "ioapi.h" - - - -/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */ - -#ifndef SEEK_CUR -#define SEEK_CUR 1 -#endif - -#ifndef SEEK_END -#define SEEK_END 2 -#endif - -#ifndef SEEK_SET -#define SEEK_SET 0 -#endif - -voidpf ZCALLBACK fopen_file_func OF(( - voidpf opaque, - const char* filename, - int mode)); - -uLong ZCALLBACK fread_file_func OF(( - voidpf opaque, - voidpf stream, - void* buf, - uLong size)); - -uLong ZCALLBACK fwrite_file_func OF(( - voidpf opaque, - voidpf stream, - const void* buf, - uLong size)); - -long ZCALLBACK ftell_file_func OF(( - voidpf opaque, - voidpf stream)); - -long ZCALLBACK fseek_file_func OF(( - voidpf opaque, - voidpf stream, - uLong offset, - int origin)); - -int ZCALLBACK fclose_file_func OF(( - voidpf opaque, - voidpf stream)); - -int ZCALLBACK ferror_file_func OF(( - voidpf opaque, - voidpf stream)); - - -voidpf ZCALLBACK fopen_file_func (opaque, filename, mode) - voidpf opaque; - const char* filename; - int mode; -{ - FILE* file = NULL; - const char* mode_fopen = NULL; - if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ) - mode_fopen = "rb"; - else - if (mode & ZLIB_FILEFUNC_MODE_EXISTING) - mode_fopen = "r+b"; - else - if (mode & ZLIB_FILEFUNC_MODE_CREATE) - mode_fopen = "wb"; - - if ((filename!=NULL) && (mode_fopen != NULL)) - file = fopen(filename, mode_fopen); - return file; -} - - -uLong ZCALLBACK fread_file_func (opaque, stream, buf, size) - voidpf opaque; - voidpf stream; - void* buf; - uLong size; -{ - uLong ret; - ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream); - return ret; -} - - -uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size) - voidpf opaque; - voidpf stream; - const void* buf; - uLong size; -{ - uLong ret; - ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream); - return ret; -} - -long ZCALLBACK ftell_file_func (opaque, stream) - voidpf opaque; - voidpf stream; -{ - long ret; - ret = ftell((FILE *)stream); - return ret; -} - -long ZCALLBACK fseek_file_func (opaque, stream, offset, origin) - voidpf opaque; - voidpf stream; - uLong offset; - int origin; -{ - int fseek_origin=0; - long ret; - switch (origin) - { - case ZLIB_FILEFUNC_SEEK_CUR : - fseek_origin = SEEK_CUR; - break; - case ZLIB_FILEFUNC_SEEK_END : - fseek_origin = SEEK_END; - break; - case ZLIB_FILEFUNC_SEEK_SET : - fseek_origin = SEEK_SET; - break; - default: return -1; - } - ret = 0; - fseek((FILE *)stream, offset, fseek_origin); - return ret; -} - -int ZCALLBACK fclose_file_func (opaque, stream) - voidpf opaque; - voidpf stream; -{ - int ret; - ret = fclose((FILE *)stream); - return ret; -} - -int ZCALLBACK ferror_file_func (opaque, stream) - voidpf opaque; - voidpf stream; -{ - int ret; - ret = ferror((FILE *)stream); - return ret; -} - -void fill_fopen_filefunc (pzlib_filefunc_def) - zlib_filefunc_def* pzlib_filefunc_def; -{ - pzlib_filefunc_def->zopen_file = fopen_file_func; - pzlib_filefunc_def->zread_file = fread_file_func; - pzlib_filefunc_def->zwrite_file = fwrite_file_func; - pzlib_filefunc_def->ztell_file = ftell_file_func; - pzlib_filefunc_def->zseek_file = fseek_file_func; - pzlib_filefunc_def->zclose_file = fclose_file_func; - pzlib_filefunc_def->zerror_file = ferror_file_func; - pzlib_filefunc_def->opaque = NULL; -} diff --git a/supergameboy/libgambatte/src/file/unzip/ioapi.h b/supergameboy/libgambatte/src/file/unzip/ioapi.h deleted file mode 100644 index 7d457baa..00000000 --- a/supergameboy/libgambatte/src/file/unzip/ioapi.h +++ /dev/null @@ -1,75 +0,0 @@ -/* ioapi.h -- IO base function header for compress/uncompress .zip - files using zlib + zip or unzip API - - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant -*/ - -#ifndef _ZLIBIOAPI_H -#define _ZLIBIOAPI_H - - -#define ZLIB_FILEFUNC_SEEK_CUR (1) -#define ZLIB_FILEFUNC_SEEK_END (2) -#define ZLIB_FILEFUNC_SEEK_SET (0) - -#define ZLIB_FILEFUNC_MODE_READ (1) -#define ZLIB_FILEFUNC_MODE_WRITE (2) -#define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3) - -#define ZLIB_FILEFUNC_MODE_EXISTING (4) -#define ZLIB_FILEFUNC_MODE_CREATE (8) - - -#ifndef ZCALLBACK - -#if (defined(WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK) -#define ZCALLBACK CALLBACK -#else -#define ZCALLBACK -#endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode)); -typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size)); -typedef uLong (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size)); -typedef long (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream)); -typedef long (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin)); -typedef int (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream)); -typedef int (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream)); - -typedef struct zlib_filefunc_def_s -{ - open_file_func zopen_file; - read_file_func zread_file; - write_file_func zwrite_file; - tell_file_func ztell_file; - seek_file_func zseek_file; - close_file_func zclose_file; - testerror_file_func zerror_file; - voidpf opaque; -} zlib_filefunc_def; - - - -void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def)); - -#define ZREAD(filefunc,filestream,buf,size) ((*((filefunc).zread_file))((filefunc).opaque,filestream,buf,size)) -#define ZWRITE(filefunc,filestream,buf,size) ((*((filefunc).zwrite_file))((filefunc).opaque,filestream,buf,size)) -#define ZTELL(filefunc,filestream) ((*((filefunc).ztell_file))((filefunc).opaque,filestream)) -#define ZSEEK(filefunc,filestream,pos,mode) ((*((filefunc).zseek_file))((filefunc).opaque,filestream,pos,mode)) -#define ZCLOSE(filefunc,filestream) ((*((filefunc).zclose_file))((filefunc).opaque,filestream)) -#define ZERROR(filefunc,filestream) ((*((filefunc).zerror_file))((filefunc).opaque,filestream)) - - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/supergameboy/libgambatte/src/file/unzip/unzip.c b/supergameboy/libgambatte/src/file/unzip/unzip.c deleted file mode 100644 index 325f3d08..00000000 --- a/supergameboy/libgambatte/src/file/unzip/unzip.c +++ /dev/null @@ -1,1605 +0,0 @@ -/* unzip.c -- IO for uncompress .zip files using zlib - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant - - Read unzip.h for more info -*/ - -/* Decryption code comes from crypt.c by Info-ZIP but has been greatly reduced in terms of -compatibility with older software. The following is from the original crypt.c. Code -woven in by Terry Thorsen 1/2003. -*/ -/* - Copyright (c) 1990-2000 Info-ZIP. All rights reserved. - - See the accompanying file LICENSE, version 2000-Apr-09 or later - (the contents of which are also included in zip.h) for terms of use. - If, for some reason, all these files are missing, the Info-ZIP license - also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html -*/ -/* - crypt.c (full version) by Info-ZIP. Last revised: [see crypt.h] - - The encryption/decryption parts of this source code (as opposed to the - non-echoing password parts) were originally written in Europe. The - whole source package can be freely distributed, including from the USA. - (Prior to January 2000, re-export from the US was a violation of US law.) - */ - -/* - This encryption code is a direct transcription of the algorithm from - Roger Schlafly, described by Phil Katz in the file appnote.txt. This - file (appnote.txt) is distributed with the PKZIP program (even in the - version without encryption capabilities). - */ - - -#include -#include -#include -#include -#include "unzip.h" - -#ifdef STDC -# include -# include -# include -#endif -#ifdef NO_ERRNO_H - extern int errno; -#else -# include -#endif - - -#ifndef local -# define local static -#endif -/* compile with -Dlocal if your debugger can't find static symbols */ - - -#ifndef CASESENSITIVITYDEFAULT_NO -# if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES) -# define CASESENSITIVITYDEFAULT_NO -# endif -#endif - - -#ifndef UNZ_BUFSIZE -#define UNZ_BUFSIZE (16384) -#endif - -#ifndef UNZ_MAXFILENAMEINZIP -#define UNZ_MAXFILENAMEINZIP (256) -#endif - -#ifndef ALLOC -# define ALLOC(size) (malloc(size)) -#endif -#ifndef TRYFREE -# define TRYFREE(p) {if (p) free(p);} -#endif - -#define SIZECENTRALDIRITEM (0x2e) -#define SIZEZIPLOCALHEADER (0x1e) - - - - -const char unz_copyright[] = - " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll"; - -/* unz_file_info_interntal contain internal info about a file in zipfile*/ -typedef struct unz_file_info_internal_s -{ - uLong offset_curfile;/* relative offset of local header 4 bytes */ -} unz_file_info_internal; - - -/* file_in_zip_read_info_s contain internal information about a file in zipfile, - when reading and decompress it */ -typedef struct -{ - char *read_buffer; /* internal buffer for compressed data */ - z_stream stream; /* zLib stream structure for inflate */ - - uLong pos_in_zipfile; /* position in byte on the zipfile, for fseek*/ - uLong stream_initialised; /* flag set if stream structure is initialised*/ - - uLong offset_local_extrafield;/* offset of the local extra field */ - uInt size_local_extrafield;/* size of the local extra field */ - uLong pos_local_extrafield; /* position in the local extra field in read*/ - - uLong crc32; /* crc32 of all data uncompressed */ - uLong crc32_wait; /* crc32 we must obtain after decompress all */ - uLong rest_read_compressed; /* number of byte to be decompressed */ - uLong rest_read_uncompressed;/*number of byte to be obtained after decomp*/ - zlib_filefunc_def z_filefunc; - voidpf filestream; /* io structore of the zipfile */ - uLong compression_method; /* compression method (0==store) */ - uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ - int raw; -} file_in_zip_read_info_s; - - -/* unz_s contain internal information about the zipfile -*/ -typedef struct -{ - zlib_filefunc_def z_filefunc; - voidpf filestream; /* io structore of the zipfile */ - unz_global_info gi; /* public global information */ - uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ - uLong num_file; /* number of the current file in the zipfile*/ - uLong pos_in_central_dir; /* pos of the current file in the central dir*/ - uLong current_file_ok; /* flag about the usability of the current file*/ - uLong central_pos; /* position of the beginning of the central dir*/ - - uLong size_central_dir; /* size of the central directory */ - uLong offset_central_dir; /* offset of start of central directory with - respect to the starting disk number */ - - unz_file_info cur_file_info; /* public info about the current file in zip*/ - unz_file_info_internal cur_file_info_internal; /* private info about it*/ - file_in_zip_read_info_s* pfile_in_zip_read; /* structure about the current - file if we are decompressing it */ - int encrypted; -# ifndef NOUNCRYPT - unsigned long keys[3]; /* keys defining the pseudo-random sequence */ - const unsigned long* pcrc_32_tab; -# endif -} unz_s; - - -#ifndef NOUNCRYPT -#include "crypt.h" -#endif - -/* =========================================================================== - Read a byte from a gz_stream; update next_in and avail_in. Return EOF - for end of file. - IN assertion: the stream s has been sucessfully opened for reading. -*/ - - -local int unzlocal_getByte OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream, - int *pi)); - -local int unzlocal_getByte(pzlib_filefunc_def,filestream,pi) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; - int *pi; -{ - unsigned char c; - int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1); - if (err==1) - { - *pi = (int)c; - return UNZ_OK; - } - else - { - if (ZERROR(*pzlib_filefunc_def,filestream)) - return UNZ_ERRNO; - else - return UNZ_EOF; - } -} - - -/* =========================================================================== - Reads a long in LSB order from the given gz_stream. Sets -*/ -local int unzlocal_getShort OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream, - uLong *pX)); - -local int unzlocal_getShort (pzlib_filefunc_def,filestream,pX) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; - uLong *pX; -{ - uLong x ; - int i = 0; - int err; - - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x = (uLong)i; - - if (err==UNZ_OK) - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<8; - - if (err==UNZ_OK) - *pX = x; - else - *pX = 0; - return err; -} - -local int unzlocal_getLong OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream, - uLong *pX)); - -local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; - uLong *pX; -{ - uLong x ; - int i = 0; - int err; - - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x = (uLong)i; - - if (err==UNZ_OK) - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<8; - - if (err==UNZ_OK) - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<16; - - if (err==UNZ_OK) - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<24; - - if (err==UNZ_OK) - *pX = x; - else - *pX = 0; - return err; -} - - -/* My own strcmpi / strcasecmp */ -local int strcmpcasenosensitive_internal (fileName1,fileName2) - const char* fileName1; - const char* fileName2; -{ - for (;;) - { - char c1=*(fileName1++); - char c2=*(fileName2++); - if ((c1>='a') && (c1<='z')) - c1 -= 0x20; - if ((c2>='a') && (c2<='z')) - c2 -= 0x20; - if (c1=='\0') - return ((c2=='\0') ? 0 : -1); - if (c2=='\0') - return 1; - if (c1c2) - return 1; - } -} - - -#ifdef CASESENSITIVITYDEFAULT_NO -#define CASESENSITIVITYDEFAULTVALUE 2 -#else -#define CASESENSITIVITYDEFAULTVALUE 1 -#endif - -#ifndef STRCMPCASENOSENTIVEFUNCTION -#define STRCMPCASENOSENTIVEFUNCTION strcmpcasenosensitive_internal -#endif - -/* - Compare two filename (fileName1,fileName2). - If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) - If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi - or strcasecmp) - If iCaseSenisivity = 0, case sensitivity is defaut of your operating system - (like 1 on Unix, 2 on Windows) - -*/ -extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSensitivity) - const char* fileName1; - const char* fileName2; - int iCaseSensitivity; -{ - if (iCaseSensitivity==0) - iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE; - - if (iCaseSensitivity==1) - return strcmp(fileName1,fileName2); - - return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2); -} - -#ifndef BUFREADCOMMENT -#define BUFREADCOMMENT (0x400) -#endif - -/* - Locate the Central directory of a zipfile (at the end, just before - the global comment) -*/ -local uLong unzlocal_SearchCentralDir OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream)); - -local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; -{ - unsigned char* buf; - uLong uSizeFile; - uLong uBackRead; - uLong uMaxBack=0xffff; /* maximum size of global comment */ - uLong uPosFound=0; - - if (ZSEEK(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0) - return 0; - - - uSizeFile = ZTELL(*pzlib_filefunc_def,filestream); - - if (uMaxBack>uSizeFile) - uMaxBack = uSizeFile; - - buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); - if (buf==NULL) - return 0; - - uBackRead = 4; - while (uBackReaduMaxBack) - uBackRead = uMaxBack; - else - uBackRead+=BUFREADCOMMENT; - uReadPos = uSizeFile-uBackRead ; - - uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? - (BUFREADCOMMENT+4) : (uSizeFile-uReadPos); - if (ZSEEK(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0) - break; - - if (ZREAD(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize) - break; - - for (i=(int)uReadSize-3; (i--)>0;) - if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && - ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06)) - { - uPosFound = uReadPos+i; - break; - } - - if (uPosFound!=0) - break; - } - TRYFREE(buf); - return uPosFound; -} - -/* - Open a Zip file. path contain the full pathname (by example, - on a Windows NT computer "c:\\test\\zlib114.zip" or on an Unix computer - "zlib/zlib114.zip". - If the zipfile cannot be opened (file doesn't exist or in not valid), the - return value is NULL. - Else, the return value is a unzFile Handle, usable with other function - of this unzip package. -*/ -extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def) - const char *path; - zlib_filefunc_def* pzlib_filefunc_def; -{ - unz_s us; - unz_s *s; - uLong central_pos,uL; - - uLong number_disk; /* number of the current dist, used for - spaning ZIP, unsupported, always 0*/ - uLong number_disk_with_CD; /* number the the disk with central dir, used - for spaning ZIP, unsupported, always 0*/ - uLong number_entry_CD; /* total number of entries in - the central dir - (same than number_entry on nospan) */ - - int err=UNZ_OK; - - if (unz_copyright[0]!=' ') - return NULL; - - if (pzlib_filefunc_def==NULL) - fill_fopen_filefunc(&us.z_filefunc); - else - us.z_filefunc = *pzlib_filefunc_def; - - us.filestream= (*(us.z_filefunc.zopen_file))(us.z_filefunc.opaque, - path, - ZLIB_FILEFUNC_MODE_READ | - ZLIB_FILEFUNC_MODE_EXISTING); - if (us.filestream==NULL) - return NULL; - - central_pos = unzlocal_SearchCentralDir(&us.z_filefunc,us.filestream); - if (central_pos==0) - err=UNZ_ERRNO; - - if (ZSEEK(us.z_filefunc, us.filestream, - central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0) - err=UNZ_ERRNO; - - /* the signature, already checked */ - if (unzlocal_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) - err=UNZ_ERRNO; - - /* number of this disk */ - if (unzlocal_getShort(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK) - err=UNZ_ERRNO; - - /* number of the disk with the start of the central directory */ - if (unzlocal_getShort(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK) - err=UNZ_ERRNO; - - /* total number of entries in the central dir on this disk */ - if (unzlocal_getShort(&us.z_filefunc, us.filestream,&us.gi.number_entry)!=UNZ_OK) - err=UNZ_ERRNO; - - /* total number of entries in the central dir */ - if (unzlocal_getShort(&us.z_filefunc, us.filestream,&number_entry_CD)!=UNZ_OK) - err=UNZ_ERRNO; - - if ((number_entry_CD!=us.gi.number_entry) || - (number_disk_with_CD!=0) || - (number_disk!=0)) - err=UNZ_BADZIPFILE; - - /* size of the central directory */ - if (unzlocal_getLong(&us.z_filefunc, us.filestream,&us.size_central_dir)!=UNZ_OK) - err=UNZ_ERRNO; - - /* offset of start of central directory with respect to the - starting disk number */ - if (unzlocal_getLong(&us.z_filefunc, us.filestream,&us.offset_central_dir)!=UNZ_OK) - err=UNZ_ERRNO; - - /* zipfile comment length */ - if (unzlocal_getShort(&us.z_filefunc, us.filestream,&us.gi.size_comment)!=UNZ_OK) - err=UNZ_ERRNO; - - if ((central_pospfile_in_zip_read!=NULL) - unzCloseCurrentFile(file); - - ZCLOSE(s->z_filefunc, s->filestream); - TRYFREE(s); - return UNZ_OK; -} - - -/* - Write info about the ZipFile in the *pglobal_info structure. - No preparation of the structure is needed - return UNZ_OK if there is no problem. */ -extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info) - unzFile file; - unz_global_info *pglobal_info; -{ - unz_s* s; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - *pglobal_info=s->gi; - return UNZ_OK; -} - - -/* - Translate date/time from Dos format to tm_unz (readable more easilty) -*/ -local void unzlocal_DosDateToTmuDate (ulDosDate, ptm) - uLong ulDosDate; - tm_unz* ptm; -{ - uLong uDate; - uDate = (uLong)(ulDosDate>>16); - ptm->tm_mday = (uInt)(uDate&0x1f) ; - ptm->tm_mon = (uInt)((((uDate)&0x1E0)/0x20)-1) ; - ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ; - - ptm->tm_hour = (uInt) ((ulDosDate &0xF800)/0x800); - ptm->tm_min = (uInt) ((ulDosDate&0x7E0)/0x20) ; - ptm->tm_sec = (uInt) (2*(ulDosDate&0x1f)) ; -} - -/* - Get Info about the current file in the zipfile, with internal only info -*/ -local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file, - unz_file_info *pfile_info, - unz_file_info_internal - *pfile_info_internal, - char *szFileName, - uLong fileNameBufferSize, - void *extraField, - uLong extraFieldBufferSize, - char *szComment, - uLong commentBufferSize)); - -local int unzlocal_GetCurrentFileInfoInternal (file, - pfile_info, - pfile_info_internal, - szFileName, fileNameBufferSize, - extraField, extraFieldBufferSize, - szComment, commentBufferSize) - unzFile file; - unz_file_info *pfile_info; - unz_file_info_internal *pfile_info_internal; - char *szFileName; - uLong fileNameBufferSize; - void *extraField; - uLong extraFieldBufferSize; - char *szComment; - uLong commentBufferSize; -{ - unz_s* s; - unz_file_info file_info; - unz_file_info_internal file_info_internal; - int err=UNZ_OK; - uLong uMagic; - long lSeek=0; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (ZSEEK(s->z_filefunc, s->filestream, - s->pos_in_central_dir+s->byte_before_the_zipfile, - ZLIB_FILEFUNC_SEEK_SET)!=0) - err=UNZ_ERRNO; - - - /* we check the magic */ - if (err==UNZ_OK) - { - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK) - err=UNZ_ERRNO; - else if (uMagic!=0x02014b50) - err=UNZ_BADZIPFILE; - } - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.version) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.version_needed) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.flag) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.compression_method) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.dosDate) != UNZ_OK) - err=UNZ_ERRNO; - - unzlocal_DosDateToTmuDate(file_info.dosDate,&file_info.tmu_date); - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.crc) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.size_filename) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_extra) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_comment) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.disk_num_start) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.internal_fa) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.external_fa) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK) - err=UNZ_ERRNO; - - lSeek+=file_info.size_filename; - if ((err==UNZ_OK) && (szFileName!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_filename0) && (fileNameBufferSize>0)) - if (ZREAD(s->z_filefunc, s->filestream,szFileName,uSizeRead)!=uSizeRead) - err=UNZ_ERRNO; - lSeek -= uSizeRead; - } - - - if ((err==UNZ_OK) && (extraField!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_file_extraz_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) - lSeek=0; - else - err=UNZ_ERRNO; - } - if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0)) - if (ZREAD(s->z_filefunc, s->filestream,extraField,uSizeRead)!=uSizeRead) - err=UNZ_ERRNO; - lSeek += file_info.size_file_extra - uSizeRead; - } - else - lSeek+=file_info.size_file_extra; - - - if ((err==UNZ_OK) && (szComment!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_file_commentz_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) - lSeek=0; - else - err=UNZ_ERRNO; - } - if ((file_info.size_file_comment>0) && (commentBufferSize>0)) - if (ZREAD(s->z_filefunc, s->filestream,szComment,uSizeRead)!=uSizeRead) - err=UNZ_ERRNO; - lSeek+=file_info.size_file_comment - uSizeRead; - } - else - lSeek+=file_info.size_file_comment; - - if ((err==UNZ_OK) && (pfile_info!=NULL)) - *pfile_info=file_info; - - if ((err==UNZ_OK) && (pfile_info_internal!=NULL)) - *pfile_info_internal=file_info_internal; - - return err; -} - - - -/* - Write info about the ZipFile in the *pglobal_info structure. - No preparation of the structure is needed - return UNZ_OK if there is no problem. -*/ -extern int ZEXPORT unzGetCurrentFileInfo (file, - pfile_info, - szFileName, fileNameBufferSize, - extraField, extraFieldBufferSize, - szComment, commentBufferSize) - unzFile file; - unz_file_info *pfile_info; - char *szFileName; - uLong fileNameBufferSize; - void *extraField; - uLong extraFieldBufferSize; - char *szComment; - uLong commentBufferSize; -{ - return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL, - szFileName,fileNameBufferSize, - extraField,extraFieldBufferSize, - szComment,commentBufferSize); -} - -/* - Set the current file of the zipfile to the first file. - return UNZ_OK if there is no problem -*/ -extern int ZEXPORT unzGoToFirstFile (file) - unzFile file; -{ - int err=UNZ_OK; - unz_s* s; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - s->pos_in_central_dir=s->offset_central_dir; - s->num_file=0; - err=unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - s->current_file_ok = (err == UNZ_OK); - return err; -} - -/* - Set the current file of the zipfile to the next file. - return UNZ_OK if there is no problem - return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. -*/ -extern int ZEXPORT unzGoToNextFile (file) - unzFile file; -{ - unz_s* s; - int err; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_END_OF_LIST_OF_FILE; - if (s->gi.number_entry != 0xffff) /* 2^16 files overflow hack */ - if (s->num_file+1==s->gi.number_entry) - return UNZ_END_OF_LIST_OF_FILE; - - s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename + - s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ; - s->num_file++; - err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - s->current_file_ok = (err == UNZ_OK); - return err; -} - - -/* - Try locate the file szFileName in the zipfile. - For the iCaseSensitivity signification, see unzipStringFileNameCompare - - return value : - UNZ_OK if the file is found. It becomes the current file. - UNZ_END_OF_LIST_OF_FILE if the file is not found -*/ -extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity) - unzFile file; - const char *szFileName; - int iCaseSensitivity; -{ - unz_s* s; - int err; - - /* We remember the 'current' position in the file so that we can jump - * back there if we fail. - */ - unz_file_info cur_file_infoSaved; - unz_file_info_internal cur_file_info_internalSaved; - uLong num_fileSaved; - uLong pos_in_central_dirSaved; - - - if (file==NULL) - return UNZ_PARAMERROR; - - if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP) - return UNZ_PARAMERROR; - - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_END_OF_LIST_OF_FILE; - - /* Save the current state */ - num_fileSaved = s->num_file; - pos_in_central_dirSaved = s->pos_in_central_dir; - cur_file_infoSaved = s->cur_file_info; - cur_file_info_internalSaved = s->cur_file_info_internal; - - err = unzGoToFirstFile(file); - - while (err == UNZ_OK) - { - char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1]; - err = unzGetCurrentFileInfo(file,NULL, - szCurrentFileName,sizeof(szCurrentFileName)-1, - NULL,0,NULL,0); - if (err == UNZ_OK) - { - if (unzStringFileNameCompare(szCurrentFileName, - szFileName,iCaseSensitivity)==0) - return UNZ_OK; - err = unzGoToNextFile(file); - } - } - - /* We failed, so restore the state of the 'current file' to where we - * were. - */ - s->num_file = num_fileSaved ; - s->pos_in_central_dir = pos_in_central_dirSaved ; - s->cur_file_info = cur_file_infoSaved; - s->cur_file_info_internal = cur_file_info_internalSaved; - return err; -} - - -/* -/////////////////////////////////////////// -// Contributed by Ryan Haksi (mailto://cryogen@infoserve.net) -// I need random access -// -// Further optimization could be realized by adding an ability -// to cache the directory in memory. The goal being a single -// comprehensive file read to put the file I need in a memory. -*/ - -/* -typedef struct unz_file_pos_s -{ - uLong pos_in_zip_directory; // offset in file - uLong num_of_file; // # of file -} unz_file_pos; -*/ - -extern int ZEXPORT unzGetFilePos(file, file_pos) - unzFile file; - unz_file_pos* file_pos; -{ - unz_s* s; - - if (file==NULL || file_pos==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_END_OF_LIST_OF_FILE; - - file_pos->pos_in_zip_directory = s->pos_in_central_dir; - file_pos->num_of_file = s->num_file; - - return UNZ_OK; -} - -extern int ZEXPORT unzGoToFilePos(file, file_pos) - unzFile file; - unz_file_pos* file_pos; -{ - unz_s* s; - int err; - - if (file==NULL || file_pos==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - - /* jump to the right spot */ - s->pos_in_central_dir = file_pos->pos_in_zip_directory; - s->num_file = file_pos->num_of_file; - - /* set the current file */ - err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - /* return results */ - s->current_file_ok = (err == UNZ_OK); - return err; -} - -/* -// Unzip Helper Functions - should be here? -/////////////////////////////////////////// -*/ - -/* - Read the local header of the current zipfile - Check the coherency of the local header and info in the end of central - directory about this file - store in *piSizeVar the size of extra info in local header - (filename and size of extra field data) -*/ -local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar, - poffset_local_extrafield, - psize_local_extrafield) - unz_s* s; - uInt* piSizeVar; - uLong *poffset_local_extrafield; - uInt *psize_local_extrafield; -{ - uLong uMagic,uData,uFlags; - uLong size_filename; - uLong size_extra_field; - int err=UNZ_OK; - - *piSizeVar = 0; - *poffset_local_extrafield = 0; - *psize_local_extrafield = 0; - - if (ZSEEK(s->z_filefunc, s->filestream,s->cur_file_info_internal.offset_curfile + - s->byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET)!=0) - return UNZ_ERRNO; - - - if (err==UNZ_OK) - { - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK) - err=UNZ_ERRNO; - else if (uMagic!=0x04034b50) - err=UNZ_BADZIPFILE; - } - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) - err=UNZ_ERRNO; -/* - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion)) - err=UNZ_BADZIPFILE; -*/ - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uFlags) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method)) - err=UNZ_BADZIPFILE; - - if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) && - (s->cur_file_info.compression_method!=Z_DEFLATED)) - err=UNZ_BADZIPFILE; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* date/time */ - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* crc */ - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size compr */ - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size uncompr */ - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; - - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&size_filename) != UNZ_OK) - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename)) - err=UNZ_BADZIPFILE; - - *piSizeVar += (uInt)size_filename; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&size_extra_field) != UNZ_OK) - err=UNZ_ERRNO; - *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile + - SIZEZIPLOCALHEADER + size_filename; - *psize_local_extrafield = (uInt)size_extra_field; - - *piSizeVar += (uInt)size_extra_field; - - return err; -} - -/* - Open for reading data the current file in the zipfile. - If there is no error and the file is opened, the return value is UNZ_OK. -*/ -extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password) - unzFile file; - int* method; - int* level; - int raw; - const char* password; -{ - int err=UNZ_OK; - uInt iSizeVar; - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - uLong offset_local_extrafield; /* offset of the local extra field */ - uInt size_local_extrafield; /* size of the local extra field */ -# ifndef NOUNCRYPT - char source[12]; -# else - if (password != NULL) - return UNZ_PARAMERROR; -# endif - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_PARAMERROR; - - if (s->pfile_in_zip_read != NULL) - unzCloseCurrentFile(file); - - if (unzlocal_CheckCurrentFileCoherencyHeader(s,&iSizeVar, - &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK) - return UNZ_BADZIPFILE; - - pfile_in_zip_read_info = (file_in_zip_read_info_s*) - ALLOC(sizeof(file_in_zip_read_info_s)); - if (pfile_in_zip_read_info==NULL) - return UNZ_INTERNALERROR; - - pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE); - pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield; - pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield; - pfile_in_zip_read_info->pos_local_extrafield=0; - pfile_in_zip_read_info->raw=raw; - - if (pfile_in_zip_read_info->read_buffer==NULL) - { - TRYFREE(pfile_in_zip_read_info); - return UNZ_INTERNALERROR; - } - - pfile_in_zip_read_info->stream_initialised=0; - - if (method!=NULL) - *method = (int)s->cur_file_info.compression_method; - - if (level!=NULL) - { - *level = 6; - switch (s->cur_file_info.flag & 0x06) - { - case 6 : *level = 1; break; - case 4 : *level = 2; break; - case 2 : *level = 9; break; - } - } - - if ((s->cur_file_info.compression_method!=0) && - (s->cur_file_info.compression_method!=Z_DEFLATED)) - err=UNZ_BADZIPFILE; - - pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc; - pfile_in_zip_read_info->crc32=0; - pfile_in_zip_read_info->compression_method = - s->cur_file_info.compression_method; - pfile_in_zip_read_info->filestream=s->filestream; - pfile_in_zip_read_info->z_filefunc=s->z_filefunc; - pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile; - - pfile_in_zip_read_info->stream.total_out = 0; - - if ((s->cur_file_info.compression_method==Z_DEFLATED) && - (!raw)) - { - pfile_in_zip_read_info->stream.zalloc = (alloc_func)0; - pfile_in_zip_read_info->stream.zfree = (free_func)0; - pfile_in_zip_read_info->stream.opaque = (voidpf)0; - pfile_in_zip_read_info->stream.next_in = (voidpf)0; - pfile_in_zip_read_info->stream.avail_in = 0; - - err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS); - if (err == Z_OK) - pfile_in_zip_read_info->stream_initialised=1; - else - { - TRYFREE(pfile_in_zip_read_info); - return err; - } - /* windowBits is passed < 0 to tell that there is no zlib header. - * Note that in this case inflate *requires* an extra "dummy" byte - * after the compressed stream in order to complete decompression and - * return Z_STREAM_END. - * In unzip, i don't wait absolutely Z_STREAM_END because I known the - * size of both compressed and uncompressed data - */ - } - pfile_in_zip_read_info->rest_read_compressed = - s->cur_file_info.compressed_size ; - pfile_in_zip_read_info->rest_read_uncompressed = - s->cur_file_info.uncompressed_size ; - - - pfile_in_zip_read_info->pos_in_zipfile = - s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + - iSizeVar; - - pfile_in_zip_read_info->stream.avail_in = (uInt)0; - - s->pfile_in_zip_read = pfile_in_zip_read_info; - -# ifndef NOUNCRYPT - if (password != NULL) - { - int i; - s->pcrc_32_tab = get_crc_table(); - init_keys(password,s->keys,s->pcrc_32_tab); - if (ZSEEK(s->z_filefunc, s->filestream, - s->pfile_in_zip_read->pos_in_zipfile + - s->pfile_in_zip_read->byte_before_the_zipfile, - SEEK_SET)!=0) - return UNZ_INTERNALERROR; - if(ZREAD(s->z_filefunc, s->filestream,source, 12)<12) - return UNZ_INTERNALERROR; - - for (i = 0; i<12; i++) - zdecode(s->keys,s->pcrc_32_tab,source[i]); - - s->pfile_in_zip_read->pos_in_zipfile+=12; - s->encrypted=1; - } -# endif - - - return UNZ_OK; -} - -extern int ZEXPORT unzOpenCurrentFile (file) - unzFile file; -{ - return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL); -} - -extern int ZEXPORT unzOpenCurrentFilePassword (file, password) - unzFile file; - const char* password; -{ - return unzOpenCurrentFile3(file, NULL, NULL, 0, password); -} - -extern int ZEXPORT unzOpenCurrentFile2 (file,method,level,raw) - unzFile file; - int* method; - int* level; - int raw; -{ - return unzOpenCurrentFile3(file, method, level, raw, NULL); -} - -/* - Read bytes from the current file. - buf contain buffer where data must be copied - len the size of buf. - - return the number of byte copied if somes bytes are copied - return 0 if the end of file was reached - return <0 with error code if there is an error - (UNZ_ERRNO for IO error, or zLib error for uncompress error) -*/ -extern int ZEXPORT unzReadCurrentFile (file, buf, len) - unzFile file; - voidp buf; - unsigned len; -{ - int err=UNZ_OK; - uInt iRead = 0; - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - - if ((pfile_in_zip_read_info->read_buffer == NULL)) - return UNZ_END_OF_LIST_OF_FILE; - if (len==0) - return 0; - - pfile_in_zip_read_info->stream.next_out = (Bytef*)buf; - - pfile_in_zip_read_info->stream.avail_out = (uInt)len; - - if ((len>pfile_in_zip_read_info->rest_read_uncompressed) && - (!(pfile_in_zip_read_info->raw))) - pfile_in_zip_read_info->stream.avail_out = - (uInt)pfile_in_zip_read_info->rest_read_uncompressed; - - if ((len>pfile_in_zip_read_info->rest_read_compressed+ - pfile_in_zip_read_info->stream.avail_in) && - (pfile_in_zip_read_info->raw)) - pfile_in_zip_read_info->stream.avail_out = - (uInt)pfile_in_zip_read_info->rest_read_compressed+ - pfile_in_zip_read_info->stream.avail_in; - - while (pfile_in_zip_read_info->stream.avail_out>0) - { - if ((pfile_in_zip_read_info->stream.avail_in==0) && - (pfile_in_zip_read_info->rest_read_compressed>0)) - { - uInt uReadThis = UNZ_BUFSIZE; - if (pfile_in_zip_read_info->rest_read_compressedrest_read_compressed; - if (uReadThis == 0) - return UNZ_EOF; - if (ZSEEK(pfile_in_zip_read_info->z_filefunc, - pfile_in_zip_read_info->filestream, - pfile_in_zip_read_info->pos_in_zipfile + - pfile_in_zip_read_info->byte_before_the_zipfile, - ZLIB_FILEFUNC_SEEK_SET)!=0) - return UNZ_ERRNO; - if (ZREAD(pfile_in_zip_read_info->z_filefunc, - pfile_in_zip_read_info->filestream, - pfile_in_zip_read_info->read_buffer, - uReadThis)!=uReadThis) - return UNZ_ERRNO; - - -# ifndef NOUNCRYPT - if(s->encrypted) - { - uInt i; - for(i=0;iread_buffer[i] = - zdecode(s->keys,s->pcrc_32_tab, - pfile_in_zip_read_info->read_buffer[i]); - } -# endif - - - pfile_in_zip_read_info->pos_in_zipfile += uReadThis; - - pfile_in_zip_read_info->rest_read_compressed-=uReadThis; - - pfile_in_zip_read_info->stream.next_in = - (Bytef*)pfile_in_zip_read_info->read_buffer; - pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis; - } - - if ((pfile_in_zip_read_info->compression_method==0) || (pfile_in_zip_read_info->raw)) - { - uInt uDoCopy,i ; - - if ((pfile_in_zip_read_info->stream.avail_in == 0) && - (pfile_in_zip_read_info->rest_read_compressed == 0)) - return (iRead==0) ? UNZ_EOF : iRead; - - if (pfile_in_zip_read_info->stream.avail_out < - pfile_in_zip_read_info->stream.avail_in) - uDoCopy = pfile_in_zip_read_info->stream.avail_out ; - else - uDoCopy = pfile_in_zip_read_info->stream.avail_in ; - - for (i=0;istream.next_out+i) = - *(pfile_in_zip_read_info->stream.next_in+i); - - pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32, - pfile_in_zip_read_info->stream.next_out, - uDoCopy); - pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy; - pfile_in_zip_read_info->stream.avail_in -= uDoCopy; - pfile_in_zip_read_info->stream.avail_out -= uDoCopy; - pfile_in_zip_read_info->stream.next_out += uDoCopy; - pfile_in_zip_read_info->stream.next_in += uDoCopy; - pfile_in_zip_read_info->stream.total_out += uDoCopy; - iRead += uDoCopy; - } - else - { - uLong uTotalOutBefore,uTotalOutAfter; - const Bytef *bufBefore; - uLong uOutThis; - int flush=Z_SYNC_FLUSH; - - uTotalOutBefore = pfile_in_zip_read_info->stream.total_out; - bufBefore = pfile_in_zip_read_info->stream.next_out; - - /* - if ((pfile_in_zip_read_info->rest_read_uncompressed == - pfile_in_zip_read_info->stream.avail_out) && - (pfile_in_zip_read_info->rest_read_compressed == 0)) - flush = Z_FINISH; - */ - err=inflate(&pfile_in_zip_read_info->stream,flush); - - if ((err>=0) && (pfile_in_zip_read_info->stream.msg!=NULL)) - err = Z_DATA_ERROR; - - uTotalOutAfter = pfile_in_zip_read_info->stream.total_out; - uOutThis = uTotalOutAfter-uTotalOutBefore; - - pfile_in_zip_read_info->crc32 = - crc32(pfile_in_zip_read_info->crc32,bufBefore, - (uInt)(uOutThis)); - - pfile_in_zip_read_info->rest_read_uncompressed -= - uOutThis; - - iRead += (uInt)(uTotalOutAfter - uTotalOutBefore); - - if (err==Z_STREAM_END) - return (iRead==0) ? UNZ_EOF : iRead; - if (err!=Z_OK) - break; - } - } - - if (err==Z_OK) - return iRead; - return err; -} - - -/* - Give the current position in uncompressed data -*/ -extern z_off_t ZEXPORT unztell (file) - unzFile file; -{ - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - return (z_off_t)pfile_in_zip_read_info->stream.total_out; -} - - -/* - return 1 if the end of file was reached, 0 elsewhere -*/ -extern int ZEXPORT unzeof (file) - unzFile file; -{ - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - if (pfile_in_zip_read_info->rest_read_uncompressed == 0) - return 1; - else - return 0; -} - - - -/* - Read extra field from the current file (opened by unzOpenCurrentFile) - This is the local-header version of the extra field (sometimes, there is - more info in the local-header version than in the central-header) - - if buf==NULL, it return the size of the local extra field that can be read - - if buf!=NULL, len is the size of the buffer, the extra header is copied in - buf. - the return value is the number of bytes copied in buf, or (if <0) - the error code -*/ -extern int ZEXPORT unzGetLocalExtrafield (file,buf,len) - unzFile file; - voidp buf; - unsigned len; -{ - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - uInt read_now; - uLong size_to_read; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - size_to_read = (pfile_in_zip_read_info->size_local_extrafield - - pfile_in_zip_read_info->pos_local_extrafield); - - if (buf==NULL) - return (int)size_to_read; - - if (len>size_to_read) - read_now = (uInt)size_to_read; - else - read_now = (uInt)len ; - - if (read_now==0) - return 0; - - if (ZSEEK(pfile_in_zip_read_info->z_filefunc, - pfile_in_zip_read_info->filestream, - pfile_in_zip_read_info->offset_local_extrafield + - pfile_in_zip_read_info->pos_local_extrafield, - ZLIB_FILEFUNC_SEEK_SET)!=0) - return UNZ_ERRNO; - - if (ZREAD(pfile_in_zip_read_info->z_filefunc, - pfile_in_zip_read_info->filestream, - buf,read_now)!=read_now) - return UNZ_ERRNO; - - return (int)read_now; -} - -/* - Close the file in zip opened with unzipOpenCurrentFile - Return UNZ_CRCERROR if all the file was read but the CRC is not good -*/ -extern int ZEXPORT unzCloseCurrentFile (file) - unzFile file; -{ - int err=UNZ_OK; - - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - - if ((pfile_in_zip_read_info->rest_read_uncompressed == 0) && - (!pfile_in_zip_read_info->raw)) - { - if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait) - err=UNZ_CRCERROR; - } - - - TRYFREE(pfile_in_zip_read_info->read_buffer); - pfile_in_zip_read_info->read_buffer = NULL; - if (pfile_in_zip_read_info->stream_initialised) - inflateEnd(&pfile_in_zip_read_info->stream); - - pfile_in_zip_read_info->stream_initialised = 0; - TRYFREE(pfile_in_zip_read_info); - - s->pfile_in_zip_read=NULL; - - return err; -} - - -/* - Get the global comment string of the ZipFile, in the szComment buffer. - uSizeBuf is the size of the szComment buffer. - return the number of byte copied or an error code <0 -*/ -extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf) - unzFile file; - char *szComment; - uLong uSizeBuf; -{ - unz_s* s; - uLong uReadThis ; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - - uReadThis = uSizeBuf; - if (uReadThis>s->gi.size_comment) - uReadThis = s->gi.size_comment; - - if (ZSEEK(s->z_filefunc,s->filestream,s->central_pos+22,ZLIB_FILEFUNC_SEEK_SET)!=0) - return UNZ_ERRNO; - - if (uReadThis>0) - { - *szComment='\0'; - if (ZREAD(s->z_filefunc,s->filestream,szComment,uReadThis)!=uReadThis) - return UNZ_ERRNO; - } - - if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment)) - *(szComment+s->gi.size_comment)='\0'; - return (int)uReadThis; -} - -/* Additions by RX '2004 */ -extern uLong ZEXPORT unzGetOffset (file) - unzFile file; -{ - unz_s* s; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return 0; - if (s->gi.number_entry != 0 && s->gi.number_entry != 0xffff) - if (s->num_file==s->gi.number_entry) - return 0; - return s->pos_in_central_dir; -} - -extern int ZEXPORT unzSetOffset (file, pos) - unzFile file; - uLong pos; -{ - unz_s* s; - int err; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - - s->pos_in_central_dir = pos; - s->num_file = s->gi.number_entry; /* hack */ - err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - s->current_file_ok = (err == UNZ_OK); - return err; -} diff --git a/supergameboy/libgambatte/src/file/unzip/unzip.h b/supergameboy/libgambatte/src/file/unzip/unzip.h deleted file mode 100644 index 5bb6a696..00000000 --- a/supergameboy/libgambatte/src/file/unzip/unzip.h +++ /dev/null @@ -1,354 +0,0 @@ -/* unzip.h -- IO for uncompress .zip files using zlib - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant - - This unzip package allow extract file from .ZIP file, compatible with PKZip 2.04g - WinZip, InfoZip tools and compatible. - - Multi volume ZipFile (span) are not supported. - Encryption compatible with pkzip 2.04g only supported - Old compressions used by old PKZip 1.x are not supported - - - I WAIT FEEDBACK at mail info@winimage.com - Visit also http://www.winimage.com/zLibDll/unzip.htm for evolution - - Condition of use and distribution are the same than zlib : - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - -*/ - -/* for more info about .ZIP format, see - http://www.info-zip.org/pub/infozip/doc/appnote-981119-iz.zip - http://www.info-zip.org/pub/infozip/doc/ - PkWare has also a specification at : - ftp://ftp.pkware.com/probdesc.zip -*/ - -#ifndef _unz_H -#define _unz_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _ZLIB_H -#include -#endif - -#ifndef _ZLIBIOAPI_H -#include "ioapi.h" -#endif - -#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP) -/* like the STRICT of WIN32, we define a pointer that cannot be converted - from (void*) without cast */ -typedef struct TagunzFile__ { int unused; } unzFile__; -typedef unzFile__ *unzFile; -#else -typedef voidp unzFile; -#endif - - -#define UNZ_OK (0) -#define UNZ_END_OF_LIST_OF_FILE (-100) -#define UNZ_ERRNO (Z_ERRNO) -#define UNZ_EOF (0) -#define UNZ_PARAMERROR (-102) -#define UNZ_BADZIPFILE (-103) -#define UNZ_INTERNALERROR (-104) -#define UNZ_CRCERROR (-105) - -/* tm_unz contain date/time info */ -typedef struct tm_unz_s -{ - uInt tm_sec; /* seconds after the minute - [0,59] */ - uInt tm_min; /* minutes after the hour - [0,59] */ - uInt tm_hour; /* hours since midnight - [0,23] */ - uInt tm_mday; /* day of the month - [1,31] */ - uInt tm_mon; /* months since January - [0,11] */ - uInt tm_year; /* years - [1980..2044] */ -} tm_unz; - -/* unz_global_info structure contain global data about the ZIPfile - These data comes from the end of central dir */ -typedef struct unz_global_info_s -{ - uLong number_entry; /* total number of entries in - the central dir on this disk */ - uLong size_comment; /* size of the global comment of the zipfile */ -} unz_global_info; - - -/* unz_file_info contain information about a file in the zipfile */ -typedef struct unz_file_info_s -{ - uLong version; /* version made by 2 bytes */ - uLong version_needed; /* version needed to extract 2 bytes */ - uLong flag; /* general purpose bit flag 2 bytes */ - uLong compression_method; /* compression method 2 bytes */ - uLong dosDate; /* last mod file date in Dos fmt 4 bytes */ - uLong crc; /* crc-32 4 bytes */ - uLong compressed_size; /* compressed size 4 bytes */ - uLong uncompressed_size; /* uncompressed size 4 bytes */ - uLong size_filename; /* filename length 2 bytes */ - uLong size_file_extra; /* extra field length 2 bytes */ - uLong size_file_comment; /* file comment length 2 bytes */ - - uLong disk_num_start; /* disk number start 2 bytes */ - uLong internal_fa; /* internal file attributes 2 bytes */ - uLong external_fa; /* external file attributes 4 bytes */ - - tm_unz tmu_date; -} unz_file_info; - -extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1, - const char* fileName2, - int iCaseSensitivity)); -/* - Compare two filename (fileName1,fileName2). - If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) - If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi - or strcasecmp) - If iCaseSenisivity = 0, case sensitivity is defaut of your operating system - (like 1 on Unix, 2 on Windows) -*/ - - -extern unzFile ZEXPORT unzOpen OF((const char *path)); -/* - Open a Zip file. path contain the full pathname (by example, - on a Windows XP computer "c:\\zlib\\zlib113.zip" or on an Unix computer - "zlib/zlib113.zip". - If the zipfile cannot be opened (file don't exist or in not valid), the - return value is NULL. - Else, the return value is a unzFile Handle, usable with other function - of this unzip package. -*/ - -extern unzFile ZEXPORT unzOpen2 OF((const char *path, - zlib_filefunc_def* pzlib_filefunc_def)); -/* - Open a Zip file, like unzOpen, but provide a set of file low level API - for read/write the zip file (see ioapi.h) -*/ - -extern int ZEXPORT unzClose OF((unzFile file)); -/* - Close a ZipFile opened with unzipOpen. - If there is files inside the .Zip opened with unzOpenCurrentFile (see later), - these files MUST be closed with unzipCloseCurrentFile before call unzipClose. - return UNZ_OK if there is no problem. */ - -extern int ZEXPORT unzGetGlobalInfo OF((unzFile file, - unz_global_info *pglobal_info)); -/* - Write info about the ZipFile in the *pglobal_info structure. - No preparation of the structure is needed - return UNZ_OK if there is no problem. */ - - -extern int ZEXPORT unzGetGlobalComment OF((unzFile file, - char *szComment, - uLong uSizeBuf)); -/* - Get the global comment string of the ZipFile, in the szComment buffer. - uSizeBuf is the size of the szComment buffer. - return the number of byte copied or an error code <0 -*/ - - -/***************************************************************************/ -/* Unzip package allow you browse the directory of the zipfile */ - -extern int ZEXPORT unzGoToFirstFile OF((unzFile file)); -/* - Set the current file of the zipfile to the first file. - return UNZ_OK if there is no problem -*/ - -extern int ZEXPORT unzGoToNextFile OF((unzFile file)); -/* - Set the current file of the zipfile to the next file. - return UNZ_OK if there is no problem - return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. -*/ - -extern int ZEXPORT unzLocateFile OF((unzFile file, - const char *szFileName, - int iCaseSensitivity)); -/* - Try locate the file szFileName in the zipfile. - For the iCaseSensitivity signification, see unzStringFileNameCompare - - return value : - UNZ_OK if the file is found. It becomes the current file. - UNZ_END_OF_LIST_OF_FILE if the file is not found -*/ - - -/* ****************************************** */ -/* Ryan supplied functions */ -/* unz_file_info contain information about a file in the zipfile */ -typedef struct unz_file_pos_s -{ - uLong pos_in_zip_directory; /* offset in zip file directory */ - uLong num_of_file; /* # of file */ -} unz_file_pos; - -extern int ZEXPORT unzGetFilePos( - unzFile file, - unz_file_pos* file_pos); - -extern int ZEXPORT unzGoToFilePos( - unzFile file, - unz_file_pos* file_pos); - -/* ****************************************** */ - -extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file, - unz_file_info *pfile_info, - char *szFileName, - uLong fileNameBufferSize, - void *extraField, - uLong extraFieldBufferSize, - char *szComment, - uLong commentBufferSize)); -/* - Get Info about the current file - if pfile_info!=NULL, the *pfile_info structure will contain somes info about - the current file - if szFileName!=NULL, the filemane string will be copied in szFileName - (fileNameBufferSize is the size of the buffer) - if extraField!=NULL, the extra field information will be copied in extraField - (extraFieldBufferSize is the size of the buffer). - This is the Central-header version of the extra field - if szComment!=NULL, the comment string of the file will be copied in szComment - (commentBufferSize is the size of the buffer) -*/ - -/***************************************************************************/ -/* for reading the content of the current zipfile, you can open it, read data - from it, and close it (you can close it before reading all the file) - */ - -extern int ZEXPORT unzOpenCurrentFile OF((unzFile file)); -/* - Open for reading data the current file in the zipfile. - If there is no error, the return value is UNZ_OK. -*/ - -extern int ZEXPORT unzOpenCurrentFilePassword OF((unzFile file, - const char* password)); -/* - Open for reading data the current file in the zipfile. - password is a crypting password - If there is no error, the return value is UNZ_OK. -*/ - -extern int ZEXPORT unzOpenCurrentFile2 OF((unzFile file, - int* method, - int* level, - int raw)); -/* - Same than unzOpenCurrentFile, but open for read raw the file (not uncompress) - if raw==1 - *method will receive method of compression, *level will receive level of - compression - note : you can set level parameter as NULL (if you did not want known level, - but you CANNOT set method parameter as NULL -*/ - -extern int ZEXPORT unzOpenCurrentFile3 OF((unzFile file, - int* method, - int* level, - int raw, - const char* password)); -/* - Same than unzOpenCurrentFile, but open for read raw the file (not uncompress) - if raw==1 - *method will receive method of compression, *level will receive level of - compression - note : you can set level parameter as NULL (if you did not want known level, - but you CANNOT set method parameter as NULL -*/ - - -extern int ZEXPORT unzCloseCurrentFile OF((unzFile file)); -/* - Close the file in zip opened with unzOpenCurrentFile - Return UNZ_CRCERROR if all the file was read but the CRC is not good -*/ - -extern int ZEXPORT unzReadCurrentFile OF((unzFile file, - voidp buf, - unsigned len)); -/* - Read bytes from the current file (opened by unzOpenCurrentFile) - buf contain buffer where data must be copied - len the size of buf. - - return the number of byte copied if somes bytes are copied - return 0 if the end of file was reached - return <0 with error code if there is an error - (UNZ_ERRNO for IO error, or zLib error for uncompress error) -*/ - -extern z_off_t ZEXPORT unztell OF((unzFile file)); -/* - Give the current position in uncompressed data -*/ - -extern int ZEXPORT unzeof OF((unzFile file)); -/* - return 1 if the end of file was reached, 0 elsewhere -*/ - -extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file, - voidp buf, - unsigned len)); -/* - Read extra field from the current file (opened by unzOpenCurrentFile) - This is the local-header version of the extra field (sometimes, there is - more info in the local-header version than in the central-header) - - if buf==NULL, it return the size of the local extra field - - if buf!=NULL, len is the size of the buffer, the extra header is copied in - buf. - the return value is the number of bytes copied in buf, or (if <0) - the error code -*/ - -/***************************************************************************/ - -/* Get the current file offset */ -extern uLong ZEXPORT unzGetOffset (unzFile file); - -/* Set the current file offset */ -extern int ZEXPORT unzSetOffset (unzFile file, uLong pos); - - - -#ifdef __cplusplus -} -#endif - -#endif /* _unz_H */ diff --git a/supergameboy/libgambatte/src/gambatte.cpp b/supergameboy/libgambatte/src/gambatte.cpp deleted file mode 100644 index 27354c91..00000000 --- a/supergameboy/libgambatte/src/gambatte.cpp +++ /dev/null @@ -1,184 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "gambatte.h" -#include "cpu.h" -#include "savestate.h" -#include "statesaver.h" -#include "initstate.h" -#include "state_osd_elements.h" -#include -#include - -#include - -static const std::string itos(int i) { - std::stringstream ss; - - ss << i; - - std::string out; - - ss >> out; - - return out; -} - -static const std::string statePath(const std::string &basePath, int stateNo) { - return basePath + "_" + itos(stateNo) + ".gqs"; -} - -namespace Gambatte { -GB::GB() : z80(new CPU), stateNo(1) {} - -GB::~GB() { - delete z80; -} - -unsigned GB::runFor(Gambatte::uint_least32_t *const soundBuf, const unsigned samples) { - z80->setSoundBuffer(soundBuf); - z80->runFor(samples * 2); - - return z80->fillSoundBuffer(); -} - -void GB::updateVideo() { - z80->updateVideo(); -} - -unsigned GB::lyCounter() { - return z80->lyCounter(); -} - -void GB::reset() { - z80->saveSavedata(); - - SaveState state; - z80->setStatePtrs(state); - setInitState(state, z80->isCgb()); - z80->loadState(state); - z80->loadSavedata(); - - z80->setAccumulator(supergameboy.version == 0 ? 0x01 : 0xff); - -// z80->reset(); -} - -void GB::setVideoBlitter(VideoBlitter *vb) { - z80->setVideoBlitter(vb); -} - -void GB::videoBufferChange() { - z80->videoBufferChange(); -} - -unsigned GB::videoWidth() const { - return z80->videoWidth(); -} - -unsigned GB::videoHeight() const { - return z80->videoHeight(); -} - -void GB::setVideoFilter(const unsigned n) { - z80->setVideoFilter(n); -} - -std::vector GB::filterInfo() const { - return z80->filterInfo(); -} - -void GB::setInputStateGetter(InputStateGetter *getInput) { - z80->setInputStateGetter(getInput); -} - -void GB::set_savedir(const char *sdir) { - z80->set_savedir(sdir); -} - -bool GB::load(const bool forceDmg) { - const bool failed = z80->load(forceDmg); - - if (!failed) { - SaveState state; - z80->setStatePtrs(state); - setInitState(state, z80->isCgb()); - z80->loadState(state); - z80->loadSavedata(); - - z80->setAccumulator(supergameboy.version == 0 ? 0x01 : 0xff); - - stateNo = 1; - z80->setOsdElement(std::auto_ptr()); - } - - return failed; -} - -bool GB::isCgb() const { - return z80->isCgb(); -} - -void GB::setDmgPaletteColor(unsigned palNum, unsigned colorNum, unsigned rgb32) { - z80->setDmgPaletteColor(palNum, colorNum, rgb32); -} - -void GB::saveSavedata() { - z80->saveSavedata(); -} - -void GB::loadState(const char *const filepath, const bool osdMessage) { - z80->saveSavedata(); - - SaveState state; - z80->setStatePtrs(state); - - if (StateSaver::loadState(state, filepath)) { - z80->loadState(state); - - if (osdMessage) - z80->setOsdElement(newStateLoadedOsdElement(stateNo)); - } -} - -void GB::saveState() { - saveState(statePath(z80->saveBasePath(), stateNo).c_str()); - z80->setOsdElement(newStateSavedOsdElement(stateNo)); -} - -void GB::loadState() { - loadState(statePath(z80->saveBasePath(), stateNo).c_str(), true); -} - -void GB::saveState(const char *filepath) { - SaveState state; - z80->setStatePtrs(state); - z80->saveState(state); - StateSaver::saveState(state, filepath); -} - -void GB::loadState(const char *const filepath) { - loadState(filepath, false); -} - -void GB::selectState(int n) { - n -= (n / 10) * 10; - stateNo = n < 0 ? n + 10 : n; - z80->setOsdElement(newSaveStateOsdElement(statePath(z80->saveBasePath(), stateNo).c_str(), stateNo)); -} -} diff --git a/supergameboy/libgambatte/src/initstate.cpp b/supergameboy/libgambatte/src/initstate.cpp deleted file mode 100644 index c16d48b4..00000000 --- a/supergameboy/libgambatte/src/initstate.cpp +++ /dev/null @@ -1,281 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "initstate.h" -#include "savestate.h" -#include -#include -#include "sound/sound_unit.h" -#include "memory.h" - -void setInitState(SaveState &state, const bool cgb) { - static const unsigned char feaxDump[0x60] = { - 0x18, 0x01, 0xEF, 0xDE, 0x06, 0x4A, 0xCD, 0xBD, - 0x18, 0x01, 0xEF, 0xDE, 0x06, 0x4A, 0xCD, 0xBD, - 0x18, 0x01, 0xEF, 0xDE, 0x06, 0x4A, 0xCD, 0xBD, - 0x18, 0x01, 0xEF, 0xDE, 0x06, 0x4A, 0xCD, 0xBD, - 0x00, 0x90, 0xF7, 0x7F, 0xC0, 0xB1, 0xB4, 0xFB, - 0x00, 0x90, 0xF7, 0x7F, 0xC0, 0xB1, 0xB4, 0xFB, - 0x00, 0x90, 0xF7, 0x7F, 0xC0, 0xB1, 0xB4, 0xFB, - 0x00, 0x90, 0xF7, 0x7F, 0xC0, 0xB1, 0xB4, 0xFB, - 0x24, 0x1B, 0xFD, 0x3A, 0x10, 0x12, 0xAD, 0x45, - 0x24, 0x1B, 0xFD, 0x3A, 0x10, 0x12, 0xAD, 0x45, - 0x24, 0x1B, 0xFD, 0x3A, 0x10, 0x12, 0xAD, 0x45, - 0x24, 0x1B, 0xFD, 0x3A, 0x10, 0x12, 0xAD, 0x45 - }; - - static const unsigned char ffxxDump[0x100] = { - 0xCF, 0x00, 0x7C, 0xFF, 0x43, 0x00, 0x00, 0xF8, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, - 0x80, 0xBF, 0xF3, 0xFF, 0xBF, 0xFF, 0x3F, 0x00, - 0xFF, 0xBF, 0x7F, 0xFF, 0x9F, 0xFF, 0xBF, 0xFF, - 0xFF, 0x00, 0x00, 0xBF, 0x77, 0xF3, 0xF1, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, - 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7E, 0xFF, 0xFE, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xC0, 0xFF, 0xC1, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, - 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xCE, 0xED, 0x66, 0x66, 0xCC, 0x0D, 0x00, 0x0B, - 0x03, 0x73, 0x00, 0x83, 0x00, 0x0C, 0x00, 0x0D, - 0x00, 0x08, 0x11, 0x1F, 0x88, 0x89, 0x00, 0x0E, - 0xDC, 0xCC, 0x6E, 0xE6, 0xDD, 0xDD, 0xD9, 0x99, - 0xBB, 0xBB, 0x67, 0x63, 0x6E, 0x0E, 0xEC, 0xCC, - 0xDD, 0xDC, 0x99, 0x9F, 0xBB, 0xB9, 0x33, 0x3E, - 0x45, 0xEC, 0x52, 0xFA, 0x08, 0xB7, 0x07, 0x5D, - 0x01, 0xFD, 0xC0, 0xFF, 0x08, 0xFC, 0x00, 0xE5, - 0x0B, 0xF8, 0xC2, 0xCE, 0xF4, 0xF9, 0x0F, 0x7F, - 0x45, 0x6D, 0x3D, 0xFE, 0x46, 0x97, 0x33, 0x5E, - 0x08, 0xEF, 0xF1, 0xFF, 0x86, 0x83, 0x24, 0x74, - 0x12, 0xFC, 0x00, 0x9F, 0xB4, 0xB7, 0x06, 0xD5, - 0xD0, 0x7A, 0x00, 0x9E, 0x04, 0x5F, 0x41, 0x2F, - 0x1D, 0x77, 0x36, 0x75, 0x81, 0xAA, 0x70, 0x3A, - 0x98, 0xD1, 0x71, 0x02, 0x4D, 0x01, 0xC1, 0xFF, - 0x0D, 0x00, 0xD3, 0x05, 0xF9, 0x00, 0x0B, 0x00 - }; - - static const unsigned char cgbObjpDump[0x40] = { - 0x00, 0x00, 0xF2, 0xAB, - 0x61, 0xC2, 0xD9, 0xBA, - 0x88, 0x6E, 0xDD, 0x63, - 0x28, 0x27, 0xFB, 0x9F, - 0x35, 0x42, 0xD6, 0xD4, - 0x50, 0x48, 0x57, 0x5E, - 0x23, 0x3E, 0x3D, 0xCA, - 0x71, 0x21, 0x37, 0xC0, - 0xC6, 0xB3, 0xFB, 0xF9, - 0x08, 0x00, 0x8D, 0x29, - 0xA3, 0x20, 0xDB, 0x87, - 0x62, 0x05, 0x5D, 0xD4, - 0x0E, 0x08, 0xFE, 0xAF, - 0x20, 0x02, 0xD7, 0xFF, - 0x07, 0x6A, 0x55, 0xEC, - 0x83, 0x40, 0x0B, 0x77 - }; - - state.cpu.cycleCounter = 0x102A0; - state.cpu.PC = 0x100; - state.cpu.SP = 0xFFFE; - state.cpu.A = (cgb * 0x10) | 0x01; - state.cpu.B = 0x00; - state.cpu.C = 0x13; - state.cpu.D = 0x00; - state.cpu.E = 0xD8; - state.cpu.F = 0xB0; - state.cpu.H = 0x01; - state.cpu.L = 0x4D; - state.cpu.skip = false; - state.cpu.halted = false; - - - std::memset(state.mem.vram.ptr, 0, state.mem.vram.getSz()); - std::memset(state.mem.sram.ptr, 0xFF, state.mem.sram.getSz()); - - for (unsigned addr = 0x0000; addr < 0x0800; addr += 0x10) { - std::memset(state.mem.wram.ptr + addr + 0x00, 0xFF, 0x08); - std::memset(state.mem.wram.ptr + addr + 0x08, 0x00, 0x08); - } - - for (unsigned addr = 0x0800; addr < 0x1000; addr += 0x10) { - std::memset(state.mem.wram.ptr + addr + 0x00, 0x00, 0x08); - std::memset(state.mem.wram.ptr + addr + 0x08, 0xFF, 0x08); - } - - for (unsigned addr = 0x0E00; addr < 0x1000; addr += 0x10) { - state.mem.wram.ptr[addr + 0x02] = 0xFF; - state.mem.wram.ptr[addr + 0x0A] = 0x00; - } - - for (unsigned addr = 0x1000; addr < state.mem.wram.getSz(); addr += 0x1000) - std::memcpy(state.mem.wram.ptr + addr, state.mem.wram.ptr, 0x1000); - - std::memset(state.mem.ioamhram.ptr, 0x00, state.mem.ioamhram.getSz()); - std::memcpy(state.mem.ioamhram.ptr + 0xA0, feaxDump, sizeof(feaxDump)); - std::memcpy(state.mem.ioamhram.ptr + 0x100, ffxxDump, sizeof(ffxxDump)); - - state.mem.ioamhram.ptr[0x104] = 0x1C; - state.mem.ioamhram.ptr[0x140] = 0x91; - state.mem.ioamhram.ptr[0x144] = 0x00; - - if (!cgb) { - state.mem.ioamhram.ptr[0x130] = 0xAC; - state.mem.ioamhram.ptr[0x131] = 0xDD; - state.mem.ioamhram.ptr[0x132] = 0xDA; - state.mem.ioamhram.ptr[0x133] = 0x48; - state.mem.ioamhram.ptr[0x134] = 0x36; - state.mem.ioamhram.ptr[0x135] = 0x02; - state.mem.ioamhram.ptr[0x136] = 0xCF; - state.mem.ioamhram.ptr[0x137] = 0x16; - state.mem.ioamhram.ptr[0x138] = 0x2C; - state.mem.ioamhram.ptr[0x139] = 0x04; - state.mem.ioamhram.ptr[0x13A] = 0xE5; - state.mem.ioamhram.ptr[0x13B] = 0x2C; - state.mem.ioamhram.ptr[0x13C] = 0xAC; - state.mem.ioamhram.ptr[0x13D] = 0xDD; - state.mem.ioamhram.ptr[0x13E] = 0xDA; - state.mem.ioamhram.ptr[0x13F] = 0x48; - - state.mem.ioamhram.ptr[0x14D] = 0xFF; - state.mem.ioamhram.ptr[0x14F] = 0xFF; - state.mem.ioamhram.ptr[0x156] = 0xFF; - state.mem.ioamhram.ptr[0x168] = 0xFF; - state.mem.ioamhram.ptr[0x16A] = 0xFF; - state.mem.ioamhram.ptr[0x16B] = 0xFF; - state.mem.ioamhram.ptr[0x16C] = 0xFF; - state.mem.ioamhram.ptr[0x170] = 0xFF; - state.mem.ioamhram.ptr[0x172] = 0xFF; - state.mem.ioamhram.ptr[0x173] = 0xFF; - state.mem.ioamhram.ptr[0x174] = 0xFF; - state.mem.ioamhram.ptr[0x175] = 0xFF; - state.mem.ioamhram.ptr[0x176] = 0xFF; - state.mem.ioamhram.ptr[0x177] = 0xFF; - } - - state.mem.div_lastUpdate = 0; - state.mem.tima_lastUpdate = 0; - state.mem.tmatime = Memory::COUNTER_DISABLED; - state.mem.next_serialtime = Memory::COUNTER_DISABLED; - state.mem.lastOamDmaUpdate = Memory::COUNTER_DISABLED; - state.mem.minIntTime = 0; - state.mem.rombank = 1; - state.mem.dmaSource = 0; - state.mem.dmaDestination = 0; - state.mem.rambank = 0; - state.mem.oamDmaPos = 0xFE; - state.mem.IME = false; - state.mem.enable_ram = false; - state.mem.rambank_mode = false; - state.mem.hdma_transfer = false; - - - for (unsigned i = 0x00; i < 0x40; i += 0x02) { - state.ppu.bgpData.ptr[i] = 0xFF; - state.ppu.bgpData.ptr[i + 1] = 0x7F; - } - - std::memcpy(state.ppu.objpData.ptr, cgbObjpDump, sizeof(cgbObjpDump)); - - if (!cgb) { - state.ppu.bgpData.ptr[0] = state.mem.ioamhram.get()[0x147]; - state.ppu.objpData.ptr[0] = state.mem.ioamhram.get()[0x148]; - state.ppu.objpData.ptr[1] = state.mem.ioamhram.get()[0x149]; - } - - for (unsigned pos = 0; pos < 80; ++pos) - state.ppu.oamReaderBuf.ptr[pos] = state.mem.ioamhram.ptr[((pos * 2) & ~3) | (pos & 1)]; - - std::fill_n(state.ppu.oamReaderSzbuf.ptr, 40, false); - - state.ppu.videoCycles = 144*456ul + 164; - state.ppu.enableDisplayM0Time = state.cpu.cycleCounter - state.ppu.videoCycles + 159; - state.ppu.winYPos = 0xFF; - state.ppu.drawStartCycle = 90; - state.ppu.scReadOffset = 90; - state.ppu.lcdc = state.mem.ioamhram.get()[0x140]; - state.ppu.scx[1] = state.ppu.scx[0] = 0; - state.ppu.scy[1] = state.ppu.scy[0] = 0; - state.ppu.scxAnd7 = 0; - state.ppu.weMaster = false; - state.ppu.wx = 0; - state.ppu.wy = 0; - state.ppu.lycIrqSkip = false; - - - state.spu.cycleCounter = 0x1000 | ((state.cpu.cycleCounter >> 1) & 0xFFF); // spu.cycleCounter >> 12 & 7 represents the frame sequencer position. - - state.spu.ch1.sweep.counter = SoundUnit::COUNTER_DISABLED; - state.spu.ch1.sweep.shadow = 0; - state.spu.ch1.sweep.nr0 = 0; - state.spu.ch1.sweep.negging = false; - state.spu.ch1.duty.nextPosUpdate = (state.spu.cycleCounter & ~1) + 2048 * 2; - state.spu.ch1.duty.nr3 = 0; - state.spu.ch1.duty.pos = 0; - state.spu.ch1.env.counter = SoundUnit::COUNTER_DISABLED; - state.spu.ch1.env.volume = 0; - state.spu.ch1.lcounter.counter = SoundUnit::COUNTER_DISABLED; - state.spu.ch1.lcounter.lengthCounter = 0x40; - state.spu.ch1.nr4 = 0; - state.spu.ch1.master = true; - - state.spu.ch2.duty.nextPosUpdate = (state.spu.cycleCounter & ~1) + 2048 * 2; - state.spu.ch2.duty.nr3 = 0; - state.spu.ch2.duty.pos = 0; - state.spu.ch2.env.counter = state.spu.cycleCounter - ((state.spu.cycleCounter - 0x1000) & 0x7FFF) + 8ul * 0x8000; - state.spu.ch2.env.volume = 0; - state.spu.ch2.lcounter.counter = SoundUnit::COUNTER_DISABLED; - state.spu.ch2.lcounter.lengthCounter = 0x40; - state.spu.ch2.nr4 = 0; - state.spu.ch2.master = false; - - for (unsigned i = 0; i < 0x10; ++i) - state.spu.ch3.waveRam.ptr[i] = state.mem.ioamhram.get()[0x130 + i]; - - state.spu.ch3.lcounter.counter = SoundUnit::COUNTER_DISABLED; - state.spu.ch3.lcounter.lengthCounter = 0x100; - state.spu.ch3.waveCounter = SoundUnit::COUNTER_DISABLED; - state.spu.ch3.lastReadTime = SoundUnit::COUNTER_DISABLED; - state.spu.ch3.nr3 = 0; - state.spu.ch3.nr4 = 0; - state.spu.ch3.wavePos = 0; - state.spu.ch3.sampleBuf = 0; - state.spu.ch3.master = false; - - state.spu.ch4.lfsr.counter = state.spu.cycleCounter + 4; - state.spu.ch4.lfsr.reg = 0xFF; - state.spu.ch4.env.counter = state.spu.cycleCounter - ((state.spu.cycleCounter - 0x1000) & 0x7FFF) + 8ul * 0x8000; - state.spu.ch4.env.volume = 0; - state.spu.ch4.lcounter.counter = SoundUnit::COUNTER_DISABLED; - state.spu.ch4.lcounter.lengthCounter = 0x40; - state.spu.ch4.nr4 = 0; - state.spu.ch4.master = false; - - state.rtc.baseTime = std::time(0); - state.rtc.haltTime = state.rtc.baseTime; - state.rtc.index = 5; - state.rtc.dataDh = 0; - state.rtc.dataDl = 0; - state.rtc.dataH = 0; - state.rtc.dataM = 0; - state.rtc.dataS = 0; - state.rtc.lastLatchData = false; -} diff --git a/supergameboy/libgambatte/src/initstate.h b/supergameboy/libgambatte/src/initstate.h deleted file mode 100644 index d550eed5..00000000 --- a/supergameboy/libgambatte/src/initstate.h +++ /dev/null @@ -1,26 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef INITSTATE_H -#define INITSTATE_H - -class SaveState; - -void setInitState(SaveState &state, bool cgb); - -#endif diff --git a/supergameboy/libgambatte/src/insertion_sort.h b/supergameboy/libgambatte/src/insertion_sort.h deleted file mode 100644 index 939ba074..00000000 --- a/supergameboy/libgambatte/src/insertion_sort.h +++ /dev/null @@ -1,51 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#ifndef INSERTION_SORT_H -#define INSERTION_SORT_H - -#include - -template -void insertionSort(T *const start, T *const end, Less less) { - if (start >= end) - return; - - T *a = start; - - while (++a < end) { - const T e = *a; - - T *b = a; - - while (b != start && less(e, *(b - 1))) { - *b = *(b - 1); - b = b - 1; - } - - *b = e; - } -} - -template -inline void insertionSort(T *const start, T *const end) { - insertionSort(start, end, std::less()); -} - -#endif /*INSERTION_SORT_H*/ diff --git a/supergameboy/libgambatte/src/interrupter.cpp b/supergameboy/libgambatte/src/interrupter.cpp deleted file mode 100644 index aea9df41..00000000 --- a/supergameboy/libgambatte/src/interrupter.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "interrupter.h" - -#include "memory.h" - -Interrupter::Interrupter(unsigned short &SP_in, unsigned short &PC_in, bool &halted_in) : - SP(SP_in), - PC(PC_in), - halted(halted_in) -{} - -unsigned long Interrupter::interrupt(const unsigned address, unsigned long cycleCounter, Memory &memory) { - if (halted && memory.isCgb()) - cycleCounter += 4; - - halted = false; - cycleCounter += 8; - SP = (SP - 1) & 0xFFFF; - memory.write(SP, PC >> 8, cycleCounter); - cycleCounter += 4; - SP = (SP - 1) & 0xFFFF; - memory.write(SP, PC & 0xFF, cycleCounter); - PC = address; - cycleCounter += 8; - - return cycleCounter; -} diff --git a/supergameboy/libgambatte/src/interrupter.h b/supergameboy/libgambatte/src/interrupter.h deleted file mode 100644 index 18e0d9e1..00000000 --- a/supergameboy/libgambatte/src/interrupter.h +++ /dev/null @@ -1,38 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef INTERRUPTER_H -#define INTERRUPTER_H - -class Memory; - -class Interrupter { - unsigned short &SP; - unsigned short &PC; - bool &halted; - -public: - Interrupter(unsigned short &SP, unsigned short &PC, bool &halted); - unsigned long interrupt(const unsigned address, unsigned long cycleCounter, Memory &memory); - - void unhalt() { - halted = false; - } -}; - -#endif diff --git a/supergameboy/libgambatte/src/memory.cpp b/supergameboy/libgambatte/src/memory.cpp deleted file mode 100644 index 2211733d..00000000 --- a/supergameboy/libgambatte/src/memory.cpp +++ /dev/null @@ -1,1867 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "memory.h" -#include "video.h" -#include "sound.h" -#include "inputstate.h" -#include "inputstategetter.h" -#include "savestate.h" -#include "file/file.h" -#include -#include - -// static const uint32_t timaClock[4]={ 1024, 16, 64, 256 }; -static const unsigned char timaClock[4] = { 10, 4, 6, 8 }; - -Memory::Memory(const Interrupter &interrupter_in) : -memchunk(NULL), -rambankdata(NULL), -rdisabled_ram(NULL), -wdisabled_ram(NULL), -oamDmaSrc(NULL), -vrambank(vram), -rsrambankptr(NULL), -wsrambankptr(NULL), -getInput(NULL), -div_lastUpdate(0), -tima_lastUpdate(0), -next_timatime(COUNTER_DISABLED), -next_blittime(144*456ul), -nextIntTime(COUNTER_DISABLED), -minIntTime(0), -next_dmatime(COUNTER_DISABLED), -next_hdmaReschedule(COUNTER_DISABLED), -next_unhalttime(COUNTER_DISABLED), -next_endtime(0), -tmatime(COUNTER_DISABLED), -next_serialtime(COUNTER_DISABLED), -lastOamDmaUpdate(COUNTER_DISABLED), -nextOamEventTime(COUNTER_DISABLED), -display(ioamhram, vram), -interrupter(interrupter_in), -romtype(plain), -rombanks(1), -rombank(1), -dmaSource(0), -dmaDestination(0), -rambank(0), -rambanks(1), -oamDmaArea1Lower(0), -oamDmaArea1Width(0), -oamDmaArea2Upper(0), -oamDmaPos(0xFE), -cgb(false), -doubleSpeed(false), -IME(false), -enable_ram(false), -rambank_mode(false), -battery(false), -rtcRom(false), -hdma_transfer(false), -active(false) -{ - romdata[1] = romdata[0] = NULL; - wramdata[1] = wramdata[0] = NULL; - std::fill_n(rmem, 0x10, static_cast(NULL)); - std::fill_n(wmem, 0x10, static_cast(NULL)); - set_irqEvent(); - set_event(); -} - -void Memory::setStatePtrs(SaveState &state) { - state.mem.vram.set(vram, sizeof vram); - state.mem.sram.set(rambankdata, rambanks * 0x2000ul); - state.mem.wram.set(wramdata[0], isCgb() ? 0x8000 : 0x2000); - state.mem.ioamhram.set(ioamhram, sizeof ioamhram); - - display.setStatePtrs(state); - sound.setStatePtrs(state); -} - -unsigned long Memory::saveState(SaveState &state, unsigned long cycleCounter) { - cycleCounter = resetCounters(cycleCounter); - nontrivial_ff_read(0xFF0F, cycleCounter); - nontrivial_ff_read(0xFF26, cycleCounter); - - state.mem.div_lastUpdate = div_lastUpdate; - state.mem.tima_lastUpdate = tima_lastUpdate; - state.mem.tmatime = tmatime; - state.mem.next_serialtime = next_serialtime; - state.mem.lastOamDmaUpdate = lastOamDmaUpdate; - state.mem.minIntTime = minIntTime; - state.mem.rombank = rombank; - state.mem.dmaSource = dmaSource; - state.mem.dmaDestination = dmaDestination; - state.mem.rambank = rambank; - state.mem.oamDmaPos = oamDmaPos; - state.mem.IME = IME; - state.mem.enable_ram = enable_ram; - state.mem.rambank_mode = rambank_mode; - state.mem.hdma_transfer = hdma_transfer; - - rtc.saveState(state); - display.saveState(state); - sound.saveState(state); - - return cycleCounter; -} - -void Memory::loadState(const SaveState &state, const unsigned long oldCc) { - sound.loadState(state); - display.loadState(state, state.mem.oamDmaPos < 0xA0 ? rdisabled_ram : ioamhram); - rtc.loadState(state, rtcRom ? state.mem.enable_ram : false); - - div_lastUpdate = state.mem.div_lastUpdate; - tima_lastUpdate = state.mem.tima_lastUpdate; - tmatime = state.mem.tmatime; - next_serialtime = state.mem.next_serialtime; - lastOamDmaUpdate = state.mem.lastOamDmaUpdate; - minIntTime = state.mem.minIntTime; - rombank = state.mem.rombank & (rombanks - 1); - dmaSource = state.mem.dmaSource; - dmaDestination = state.mem.dmaDestination; - rambank = state.mem.rambank & (rambanks - 1); - oamDmaPos = state.mem.oamDmaPos; - IME = state.mem.IME; - enable_ram = state.mem.enable_ram; - rambank_mode = state.mem.rambank_mode; - hdma_transfer = state.mem.hdma_transfer; - - const bool oldDs = doubleSpeed; - doubleSpeed = isCgb() & ioamhram[0x14D] >> 7; - oamDmaArea2Upper = oamDmaArea1Width = oamDmaArea1Lower = 0; - vrambank = vram + (ioamhram[0x14F] & 0x01 & isCgb()) * 0x2000; - wramdata[1] = wramdata[0] + ((isCgb() && (ioamhram[0x170] & 0x07)) ? (ioamhram[0x170] & 0x07) : 1) * 0x1000; - std::fill_n(rmem, 0x10, static_cast(NULL)); - std::fill_n(wmem, 0x10, static_cast(NULL)); - setBanks(); - - if (lastOamDmaUpdate != COUNTER_DISABLED) { - oamDmaInitSetup(); - - unsigned oamEventPos = 0x100; - - if (oamDmaPos < 0xA0) { - setOamDmaArea(); - oamEventPos = 0xA0; - } - - nextOamEventTime = lastOamDmaUpdate + (oamEventPos - oamDmaPos) * 4; - setOamDmaSrc(); - } - - if (!IME && state.cpu.halted) - schedule_unhalt(); - - next_blittime = (ioamhram[0x140] & 0x80) ? display.nextMode1IrqTime() : static_cast(COUNTER_DISABLED); - - const unsigned long cycleCounter = state.cpu.cycleCounter; - - if (hdma_transfer) { - next_dmatime = display.nextHdmaTime(cycleCounter); - next_hdmaReschedule = display.nextHdmaTimeInvalid(); - } else { - next_hdmaReschedule = next_dmatime = COUNTER_DISABLED; - } - - next_timatime = (ioamhram[0x107] & 4) ? tima_lastUpdate + ((256u - ioamhram[0x105]) << timaClock[ioamhram[0x107] & 3]) + 1 : static_cast(COUNTER_DISABLED); - set_irqEvent(); - rescheduleIrq(cycleCounter); - - if (oldDs != isDoubleSpeed()) - next_endtime = cycleCounter - (isDoubleSpeed() ?( oldCc - next_endtime) << 1 :( oldCc - next_endtime) >> 1); - else - next_endtime = cycleCounter - (oldCc - next_endtime); - -// set_event(); -} - -void Memory::schedule_unhalt() { - next_unhalttime = std::min(next_irqEventTime, display.nextIrqEvent()); - - if (next_unhalttime != COUNTER_DISABLED) - next_unhalttime += isCgb() * 4; - - set_event(); -} - -void Memory::rescheduleIrq(const unsigned long cycleCounter) { - if (IME) { - ioamhram[0x10F] |= display.getIfReg(cycleCounter) & 3; - - nextIntTime = (ioamhram[0x10F] & ioamhram[0x1FF] & 0x1F) ? cycleCounter : std::min(next_irqEventTime, display.nextIrqEvent()); - - if (nextIntTime < minIntTime) - nextIntTime = minIntTime; - - set_event(); - } -} - -void Memory::rescheduleHdmaReschedule() { - if (hdma_transfer && (ioamhram[0x140] & 0x80)) { - const unsigned long newTime = display.nextHdmaTimeInvalid(); - - if (newTime < next_hdmaReschedule) { - next_hdmaReschedule = newTime; - - if (newTime < next_eventtime) { - next_eventtime = newTime; - next_event = HDMA_RESCHEDULE; - } - } - } -} - -void Memory::ei(const unsigned long cycleCounter) { - IME = 1; - minIntTime = cycleCounter + 1; - rescheduleIrq(cycleCounter); -} - -void Memory::incEndtime(const unsigned long inc) { - active = true; - next_endtime += inc << isDoubleSpeed(); - set_event(); -} - -void Memory::setEndtime(const unsigned long cycleCounter, const unsigned long inc) { - next_endtime = cycleCounter; - incEndtime(inc); -} - -void Memory::set_irqEvent() { - next_irqEventTime = next_timatime; - next_irqEvent = TIMA; - - if (next_serialtime < next_irqEventTime) { - next_irqEvent = SERIAL; - next_irqEventTime = next_serialtime; - } -} - -void Memory::update_irqEvents(const unsigned long cc) { - while (next_irqEventTime <= cc) { - switch (next_irqEvent) { - case TIMA: - ioamhram[0x10F] |= 4; - next_timatime += (256u - ioamhram[0x106]) << timaClock[ioamhram[0x107] & 3]; - break; - case SERIAL: - next_serialtime = COUNTER_DISABLED; - ioamhram[0x101] = 0xFF; - ioamhram[0x102] &= 0x7F; - ioamhram[0x10F] |= 8; - break; - } - - set_irqEvent(); - } -} - -void Memory::set_event() { - next_event = INTERRUPTS; - next_eventtime = nextIntTime; - if (next_hdmaReschedule < next_eventtime) { - next_eventtime = next_hdmaReschedule; - next_event = HDMA_RESCHEDULE; - } - if (next_dmatime < next_eventtime) { - next_eventtime = next_dmatime; - next_event = DMA; - } - if (next_unhalttime < next_eventtime) { - next_eventtime = next_unhalttime; - next_event = UNHALT; - } - if (nextOamEventTime < next_eventtime) { - next_eventtime = nextOamEventTime; - next_event = OAM; - } - if (next_blittime < next_eventtime) { - next_event = BLIT; - next_eventtime = next_blittime; - } - if (next_endtime < next_eventtime) { - next_eventtime = next_endtime; - next_event = END; - } -} - -unsigned long Memory::event(unsigned long cycleCounter) { - if (lastOamDmaUpdate != COUNTER_DISABLED) - updateOamDma(cycleCounter); - - switch (next_event) { - case HDMA_RESCHEDULE: -// printf("hdma_reschedule\n"); - next_dmatime = display.nextHdmaTime(cycleCounter); - next_hdmaReschedule = display.nextHdmaTimeInvalid(); - break; - case DMA: -// printf("dma\n"); - { - const bool doubleSpeed = isDoubleSpeed(); - unsigned dmaSrc = dmaSource; - unsigned dmaDest = dmaDestination; - unsigned dmaLength = ((ioamhram[0x155] & 0x7F) + 0x1) * 0x10; - - unsigned length = hdma_transfer ? 0x10 : dmaLength; - - if ((static_cast(dmaDest) + length) & 0x10000) { - length = 0x10000 - dmaDest; - ioamhram[0x155] |= 0x80; - } - - dmaLength -= length; - - if (!(ioamhram[0x140] & 0x80)) - dmaLength = 0; - - { - unsigned long lOamDmaUpdate = lastOamDmaUpdate; - lastOamDmaUpdate = COUNTER_DISABLED; - - while (length--) { - const unsigned src = dmaSrc++ & 0xFFFF; - const unsigned data = ((src & 0xE000) == 0x8000 || src > 0xFDFF) ? 0xFF : read(src, cycleCounter); - - cycleCounter += 2 << doubleSpeed; - - if (cycleCounter - 3 > lOamDmaUpdate) { - oamDmaPos = (oamDmaPos + 1) & 0xFF; - lOamDmaUpdate += 4; - - if (oamDmaPos < 0xA0) { - if (oamDmaPos == 0) - startOamDma(lOamDmaUpdate - 2); - - ioamhram[src & 0xFF] = data; - } else if (oamDmaPos == 0xA0) { - endOamDma(lOamDmaUpdate - 2); - lOamDmaUpdate = COUNTER_DISABLED; - } - } - - nontrivial_write(0x8000 | (dmaDest++ & 0x1FFF), data, cycleCounter); - } - - lastOamDmaUpdate = lOamDmaUpdate; - } - - cycleCounter += 4; - - dmaSource = dmaSrc; - dmaDestination = dmaDest; - ioamhram[0x155] = ((dmaLength / 0x10 - 0x1) & 0xFF) | (ioamhram[0x155] & 0x80); - - if (ioamhram[0x155] & 0x80) { - next_hdmaReschedule = next_dmatime = COUNTER_DISABLED; - hdma_transfer = 0; - } - - if (hdma_transfer) { - if (lastOamDmaUpdate != COUNTER_DISABLED) - updateOamDma(cycleCounter); - - next_dmatime = display.nextHdmaTime(cycleCounter); - } - } - - break; - case INTERRUPTS: -// printf("interrupts\n"); - update_irqEvents(cycleCounter); - ioamhram[0x10F] |= display.getIfReg(cycleCounter) & 3; - - { - /*unsigned interrupt = ioamhram[0x10F] & ioamhram[0x1FF]; - interrupt |= interrupt << 1; - interrupt |= interrupt << 2; - interrupt |= interrupt << 1; - interrupt = ~interrupt; - ++interrupt; - interrupt &= 0x1F; - - if (interrupt) { - ioamhram[0x10F] &= ~interrupt; - display.setIfReg(ioamhram[0x10F], CycleCounter); - IME = false; - - unsigned address = interrupt; - interrupt >>= 1; - address -= interrupt & 0x0C; - interrupt >>= 1; - address -= interrupt & 5; - address += interrupt >> 2; - - address <<= 3; - address += 0x38; - - z80.interrupt(address); - }*/ - - const unsigned interrupt = ioamhram[0x10F] & ioamhram[0x1FF] & 0x1F; - - if (interrupt) { - unsigned n; - unsigned address; - - if ((n = interrupt & 0x01)) - address = 0x40; - else if ((n = interrupt & 0x02)) - address = 0x48; - else if ((n = interrupt & 0x04)) - address = 0x50; - else if ((n = interrupt & 0x08)) - address = 0x58; - else { - n = 0x10; - address = 0x60; - } - - ioamhram[0x10F] &= ~n; - display.setIfReg(ioamhram[0x10F], cycleCounter); - IME = false; - cycleCounter = interrupter.interrupt(address, cycleCounter, *this); - } - } - - nextIntTime = IME ? std::min(next_irqEventTime, display.nextIrqEvent()) : static_cast(COUNTER_DISABLED); - break; - case BLIT: -// printf("blit\n"); - display.updateScreen(next_blittime); - - if (ioamhram[0x140] & 0x80) - next_blittime += 70224 << isDoubleSpeed(); - else - next_blittime = COUNTER_DISABLED; - - break; - case UNHALT: -// printf("unhalt\n"); - update_irqEvents(cycleCounter); - ioamhram[0x10F] |= display.getIfReg(cycleCounter) & 3; - - if (ioamhram[0x10F] & ioamhram[0x1FF] & 0x1F) { - next_unhalttime = COUNTER_DISABLED; - interrupter.unhalt(); - } else - next_unhalttime = std::min(next_irqEventTime, display.nextIrqEvent()) + isCgb() * 4; - - break; - case OAM: - nextOamEventTime = lastOamDmaUpdate == COUNTER_DISABLED ? static_cast(COUNTER_DISABLED) : nextOamEventTime + 0xA0 * 4; - break; - case END: - { - const unsigned long endtime = next_endtime; - next_endtime = COUNTER_DISABLED; - set_event(); - - while (cycleCounter >= next_eventtime) - cycleCounter = event(cycleCounter); - - next_endtime = endtime; - active = false; - } - - break; - } - - set_event(); - - return cycleCounter; -} - -void Memory::speedChange(const unsigned long cycleCounter) { - if (isCgb() && (ioamhram[0x14D] & 0x1)) { - std::printf("speedChange\n"); - - update_irqEvents(cycleCounter); - sound.generate_samples(cycleCounter, isDoubleSpeed()); - display.preSpeedChange(cycleCounter); - - ioamhram[0x14D] = ~ioamhram[0x14D] & 0x80; - doubleSpeed = ioamhram[0x14D] >> 7; - - display.postSpeedChange(cycleCounter); - - if (hdma_transfer) { - next_dmatime = display.nextHdmaTime(cycleCounter); - next_hdmaReschedule = display.nextHdmaTimeInvalid(); - } - - next_blittime = (ioamhram[0x140] & 0x80) ? display.nextMode1IrqTime() : static_cast(COUNTER_DISABLED); - next_endtime = cycleCounter + (isDoubleSpeed() ?( next_endtime - cycleCounter) << 1 : ((next_endtime - cycleCounter) >> 1)); - set_irqEvent(); - rescheduleIrq(cycleCounter); - set_event(); - } -} - -static void decCycles(unsigned long &counter, const unsigned long dec) { - if (counter != Memory::COUNTER_DISABLED) - counter -= dec; -} - -unsigned long Memory::resetCounters(unsigned long cycleCounter) { - std::printf("resetting counters\n"); - - if (lastOamDmaUpdate != COUNTER_DISABLED) - updateOamDma(cycleCounter); - - update_irqEvents(cycleCounter); - rescheduleIrq(cycleCounter); - display.preResetCounter(cycleCounter); - - const unsigned long oldCC = cycleCounter; - - { - const unsigned long divinc = (cycleCounter - div_lastUpdate) >> 8; - ioamhram[0x104] = (ioamhram[0x104] + divinc) & 0xFF; - div_lastUpdate += divinc << 8; - } - - if (ioamhram[0x107] & 0x04) { - update_tima(cycleCounter); - } - - const unsigned long dec = cycleCounter < 0x10000 ? 0 : (cycleCounter & ~0x7FFFul) - 0x8000; - - minIntTime = minIntTime < cycleCounter ? 0 : minIntTime - dec; - - if (ioamhram[0x107] & 0x04) - decCycles(tima_lastUpdate, dec); - - decCycles(div_lastUpdate, dec); - decCycles(lastOamDmaUpdate, dec); - decCycles(next_eventtime, dec); - decCycles(next_irqEventTime, dec); - decCycles(next_timatime, dec); - decCycles(next_blittime, dec); - decCycles(nextOamEventTime, dec); - decCycles(next_endtime, dec); - decCycles(next_dmatime, dec); - decCycles(next_hdmaReschedule, dec); - decCycles(nextIntTime, dec); - decCycles(next_serialtime, dec); - decCycles(tmatime, dec); - decCycles(next_unhalttime, dec); - - cycleCounter -= dec; - - display.postResetCounter(oldCC, cycleCounter); - sound.resetCounter(cycleCounter, oldCC, isDoubleSpeed()); - - return cycleCounter; -} - -void Memory::updateInput() { - unsigned joypadId = 0x0F; - unsigned button = 0xFF; - unsigned dpad = 0xFF; - - if (getInput) { - const Gambatte::InputState &is = (*getInput)(); - - joypadId = is.joypadId; - - button ^= is.startButton << 3; - button ^= is.selectButton << 2; - button ^= is.bButton << 1; - button ^= is.aButton; - - dpad ^= is.dpadDown << 3; - dpad ^= is.dpadUp << 2; - dpad ^= is.dpadLeft << 1; - dpad ^= is.dpadRight; - } - - ioamhram[0x100] |= 0xF; - - if ((ioamhram[0x100] & 0x30) == 0x30) { - ioamhram[0x100] &= 0xf0; - ioamhram[0x100] |= joypadId; - } else { - if (!(ioamhram[0x100] & 0x10)) - ioamhram[0x100] &= dpad; - - if (!(ioamhram[0x100] & 0x20)) - ioamhram[0x100] &= button; - } -} - -void Memory::setRombank() { - unsigned bank = rombank; - - if ((romtype == mbc1 && !(bank & 0x1F)) || (romtype == mbc5 && !bank)) - ++bank; - - romdata[1] = romdata[0] + bank * 0x4000ul - 0x4000; - - if (oamDmaArea1Lower != 0xA0) { - rmem[0x7] = rmem[0x6] = rmem[0x5] = rmem[0x4] = romdata[1]; - } else - setOamDmaSrc(); -} - -void Memory::setRambank() { - rmem[0xB] = rmem[0xA] = rsrambankptr = rdisabled_ram - 0xA000; - wmem[0xB] = wmem[0xA] = wsrambankptr = wdisabled_ram - 0xA000; - - if (enable_ram) { - if (rtc.getActive()) { - wmem[0xB] = wmem[0xA] = rmem[0xB] = rmem[0xA] = wsrambankptr = rsrambankptr = NULL; - } else if (rambanks) { - wmem[0xB] = rmem[0xB] = wmem[0xA] = rmem[0xA] = wsrambankptr = rsrambankptr = rambankdata + rambank * 0x2000ul - 0xA000; - } - } - - if (oamDmaArea1Lower == 0xA0) { - wmem[0xB] = wmem[0xA] = rmem[0xB] = rmem[0xA] = NULL; - setOamDmaSrc(); - } -} - -void Memory::setBanks() { - rmem[0x3] = rmem[0x2] = rmem[0x1] = rmem[0x0] = romdata[0]; - - setRombank(); - setRambank(); - - rmem[0xC] = wmem[0xC] = wramdata[0] - 0xC000; - rmem[0xD] = wmem[0xD] = wramdata[1] - 0xD000; - rmem[0xE] = wmem[0xE] = wramdata[0] - 0xE000; -} - -void Memory::updateOamDma(const unsigned long cycleCounter) { - unsigned cycles = (cycleCounter - lastOamDmaUpdate) >> 2; - - while (cycles--) { - oamDmaPos = (oamDmaPos + 1) & 0xFF; - lastOamDmaUpdate += 4; - - //TODO: reads from vram while the ppu is reading vram should return whatever the ppu is reading. - if (oamDmaPos < 0xA0) { - if (oamDmaPos == 0) - startOamDma(lastOamDmaUpdate - 2); - - ioamhram[oamDmaPos] = oamDmaSrc ? oamDmaSrc[oamDmaPos] : *rtc.getActive(); - } else if (oamDmaPos == 0xA0) { - endOamDma(lastOamDmaUpdate - 2); - lastOamDmaUpdate = COUNTER_DISABLED; - break; - } - } -} - -void Memory::setOamDmaArea() { - if (ioamhram[0x146] < 0xC0) { - if ((ioamhram[0x146] & 0xE0) != 0x80) - oamDmaArea2Upper = 0x80; - - oamDmaArea1Width = 0x20; - } else if (ioamhram[0x146] < 0xE0) - oamDmaArea1Width = 0x3E; -} - -void Memory::oamDmaInitSetup() { - if (ioamhram[0x146] < 0xC0) { - if ((ioamhram[0x146] & 0xE0) == 0x80) { - oamDmaArea1Lower = 0x80; - } else { - oamDmaArea1Lower = 0xA0; - std::fill_n(rmem, 0x8, static_cast(NULL)); - rmem[0xB] = rmem[0xA] = NULL; - wmem[0xB] = wmem[0xA] = NULL; - } - } else if (ioamhram[0x146] < 0xE0) { - oamDmaArea1Lower = 0xC0; - rmem[0xE] = rmem[0xD] = rmem[0xC] = NULL; - wmem[0xE] = wmem[0xD] = wmem[0xC] = NULL; - } -} - -void Memory::setOamDmaSrc() { - oamDmaSrc = NULL; - - if (ioamhram[0x146] < 0xC0) { - if ((ioamhram[0x146] & 0xE0) == 0x80) { - oamDmaSrc = vrambank + (ioamhram[0x146] << 8 & 0x1FFF); - } else { - if (ioamhram[0x146] < 0x80) - oamDmaSrc = romdata[ioamhram[0x146] >> 6] + (ioamhram[0x146] << 8); - else if (rsrambankptr) - oamDmaSrc = rsrambankptr + (ioamhram[0x146] << 8); - } - } else if (ioamhram[0x146] < 0xE0) { - oamDmaSrc = wramdata[ioamhram[0x146] >> 4 & 1] + (ioamhram[0x146] << 8 & 0xFFF); - } else - oamDmaSrc = rdisabled_ram; -} - -void Memory::startOamDma(const unsigned long cycleCounter) { - setOamDmaArea(); - display.oamChange(rdisabled_ram, cycleCounter); - - if (next_unhalttime != COUNTER_DISABLED) - schedule_unhalt(); - else - rescheduleIrq(cycleCounter); - - rescheduleHdmaReschedule(); -} - -void Memory::endOamDma(const unsigned long cycleCounter) { - oamDmaArea2Upper = oamDmaArea1Width = oamDmaArea1Lower = 0; - oamDmaPos = 0xFE; - setBanks(); - display.oamChange(ioamhram, cycleCounter); - - if (next_unhalttime != COUNTER_DISABLED) - schedule_unhalt(); - else - rescheduleIrq(cycleCounter); - - rescheduleHdmaReschedule(); -} - -void Memory::update_tima(const unsigned long cycleCounter) { - const unsigned long ticks = (cycleCounter - tima_lastUpdate) >> timaClock[ioamhram[0x107] & 3]; - - tima_lastUpdate += ticks << timaClock[ioamhram[0x107] & 3]; - - if (cycleCounter >= tmatime) { - if (cycleCounter >= tmatime + 4) - tmatime = COUNTER_DISABLED; - - ioamhram[0x105] = ioamhram[0x106]; - } - - unsigned long tmp = ioamhram[0x105] + ticks; - - while (tmp > 0x100) - tmp -= 0x100 - ioamhram[0x106]; - - if (tmp == 0x100) { - tmp = 0; - tmatime = tima_lastUpdate + 3; - - if (cycleCounter >= tmatime) { - if (cycleCounter >= tmatime + 4) - tmatime = COUNTER_DISABLED; - - tmp = ioamhram[0x106]; - } - } - - ioamhram[0x105] = tmp; -} - -unsigned Memory::nontrivial_ff_read(const unsigned P, const unsigned long cycleCounter) { - if (lastOamDmaUpdate != COUNTER_DISABLED) - updateOamDma(cycleCounter); - - switch (P & 0x7F) { - case 0x00: - updateInput(); - break; - case 0x04: -// printf("div read\n"); - { - const unsigned long divcycles = (cycleCounter - div_lastUpdate) >> 8; - ioamhram[0x104] = (ioamhram[0x104] + divcycles) & 0xFF; - div_lastUpdate += divcycles << 8; - } - - break; - case 0x05: -// printf("tima read\n"); - if (ioamhram[0x107] & 0x04) - update_tima(cycleCounter); - - break; - case 0x0F: - update_irqEvents(cycleCounter); - ioamhram[0x10F] |= display.getIfReg(cycleCounter) & 3; -// rescheduleIrq(cycleCounter); - break; - case 0x26: -// printf("sound status read\n"); - if (ioamhram[0x126] & 0x80) { - sound.generate_samples(cycleCounter, isDoubleSpeed()); - ioamhram[0x126] = 0xF0 | sound.getStatus(); - } else - ioamhram[0x126] = 0x70; - - break; - case 0x30: - case 0x31: - case 0x32: - case 0x33: - case 0x34: - case 0x35: - case 0x36: - case 0x37: - case 0x38: - case 0x39: - case 0x3A: - case 0x3B: - case 0x3C: - case 0x3D: - case 0x3E: - case 0x3F: - sound.generate_samples(cycleCounter, isDoubleSpeed()); - return sound.waveRamRead(P & 0xF); - case 0x41: - return ioamhram[0x141] | display.get_stat(ioamhram[0x145], cycleCounter); - case 0x44: - return display.getLyReg(cycleCounter/*+4*/); - case 0x69: - return display.cgbBgColorRead(ioamhram[0x168] & 0x3F, cycleCounter); - case 0x6B: - return display.cgbSpColorRead(ioamhram[0x16A] & 0x3F, cycleCounter); - default: break; - } - - return ioamhram[P - 0xFE00]; -} - -unsigned Memory::nontrivial_read(const unsigned P, const unsigned long cycleCounter) { - if (P < 0xFF80) { - if (lastOamDmaUpdate != COUNTER_DISABLED) { - updateOamDma(cycleCounter); - - if ((P >> 8) - oamDmaArea1Lower < oamDmaArea1Width || P >> 8 < oamDmaArea2Upper) - return ioamhram[oamDmaPos]; - } - - if (P < 0xC000) { - if (P < 0x8000) - return romdata[P >> 14][P]; - - if (P < 0xA000) { - if (!display.vramAccessible(cycleCounter)) - return 0xFF; - - return vrambank[P & 0x1FFF]; - } - - if (rsrambankptr) - return rsrambankptr[P]; - - return *rtc.getActive(); - } - - if (P < 0xFE00) - return wramdata[P >> 12 & 1][P & 0xFFF]; - - if (P & 0x100) - return nontrivial_ff_read(P, cycleCounter); - - if (!display.oamAccessible(cycleCounter) || oamDmaPos < 0xA0) - return 0xFF; - } - - return ioamhram[P - 0xFE00]; -} - -void Memory::nontrivial_ff_write(const unsigned P, unsigned data, const unsigned long cycleCounter) { -// printf("mem[0x%X] = 0x%X\n", P, data); - - if (lastOamDmaUpdate != COUNTER_DISABLED) - updateOamDma(cycleCounter); - - switch (P & 0xFF) { - case 0x00: - data = (ioamhram[0x100] & 0xCF) | (data & 0xF0); - supergameboy.joyp_write(data & 0x20, data & 0x10); - break; - case 0x01: - update_irqEvents(cycleCounter); - break; - case 0x02: - update_irqEvents(cycleCounter); - - if ((data & 0x81) == 0x81) { - next_serialtime = cycleCounter; - next_serialtime += (isCgb() && (data & 0x2)) ? 128 : 4096; - set_irqEvent(); - } - - rescheduleIrq(cycleCounter); - data |= 0x7C; - break; - //If rom is trying to write to DIV register, reset it to 0. - case 0x04: -// printf("DIV write\n"); - ioamhram[0x104] = 0; - div_lastUpdate = cycleCounter; - return; - case 0x05: - // printf("tima write\n"); - if (ioamhram[0x107] & 0x04) { - update_irqEvents(cycleCounter); - update_tima(cycleCounter); - - if (tmatime - cycleCounter < 4) - tmatime = COUNTER_DISABLED; - - next_timatime = tima_lastUpdate + ((256u - data) << timaClock[ioamhram[0x107] & 3]) + 1; - set_irqEvent(); - rescheduleIrq(cycleCounter); - } - - break; - case 0x06: - if (ioamhram[0x107] & 0x04) { - update_irqEvents(cycleCounter); - update_tima(cycleCounter); - } - - break; - case 0x07: - // printf("tac write: %i\n", data); - data |= 0xF8; - - if (ioamhram[0x107] ^ data) { - if (ioamhram[0x107] & 0x04) { - update_irqEvents(cycleCounter); - update_tima(cycleCounter); - - tima_lastUpdate -= (1u << (timaClock[ioamhram[0x107] & 3] - 1)) + 3; - tmatime -= (1u << (timaClock[ioamhram[0x107] & 3] - 1)) + 3; - next_timatime -= (1u << (timaClock[ioamhram[0x107] & 3] - 1)) + 3; - set_irqEvent(); - update_tima(cycleCounter); - update_irqEvents(cycleCounter); - - tmatime = COUNTER_DISABLED; - next_timatime = COUNTER_DISABLED; - } - - if (data & 4) { - tima_lastUpdate = (cycleCounter >> timaClock[data & 3]) << timaClock[data & 3]; - next_timatime = tima_lastUpdate + ((256u - ioamhram[0x105]) << timaClock[data & 3]) + 1; - } - - set_irqEvent(); - rescheduleIrq(cycleCounter); - } - - break; - case 0x0F: - update_irqEvents(cycleCounter); - display.setIfReg(data, cycleCounter); - ioamhram[0x10F] = 0xE0 | data; - rescheduleIrq(cycleCounter); - return; - case 0x10: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr10(data); - data |= 0x80; - break; - case 0x11: - if(!sound.isEnabled()) { - if (isCgb()) - return; - - data &= 0x3F; - } - - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr11(data); - data |= 0x3F; - break; - case 0x12: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr12(data); - break; - case 0x13: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr13(data); - return; - case 0x14: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr14(data); - data |= 0xBF; - break; - case 0x16: - if(!sound.isEnabled()) { - if (isCgb()) - return; - - data &= 0x3F; - } - - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr21(data); - data |= 0x3F; - break; - case 0x17: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr22(data); - break; - case 0x18: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr23(data); - return; - case 0x19: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr24(data); - data |= 0xBF; - break; - case 0x1A: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr30(data); - data |= 0x7F; - break; - case 0x1B: - if(!sound.isEnabled() && isCgb()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr31(data); - return; - case 0x1C: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr32(data); - data |= 0x9F; - break; - case 0x1D: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr33(data); - return; - case 0x1E: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr34(data); - data |= 0xBF; - break; - case 0x20: - if(!sound.isEnabled() && isCgb()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr41(data); - return; - case 0x21: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr42(data); - break; - case 0x22: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr43(data); - break; - case 0x23: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_nr44(data); - data |= 0xBF; - break; - case 0x24: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.set_so_volume(data); - break; - case 0x25: - if(!sound.isEnabled()) return; - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.map_so(data); - break; - case 0x26: - if ((ioamhram[0x126] ^ data) & 0x80) { - sound.generate_samples(cycleCounter, isDoubleSpeed()); - - if (!(data & 0x80)) { - for (unsigned i = 0xFF10; i < 0xFF26; ++i) - ff_write(i, 0, cycleCounter); - -// std::memcpy(memory + 0xFF10, soundRegInitValues, sizeof(soundRegInitValues)); - sound.setEnabled(false); - } else { - sound.reset(/*memory + 0xFF00, isDoubleSpeed()*/); - sound.setEnabled(true); - } - } - - data = (data & 0x80) | (ioamhram[0x126] & 0x7F); - break; - case 0x30: - case 0x31: - case 0x32: - case 0x33: - case 0x34: - case 0x35: - case 0x36: - case 0x37: - case 0x38: - case 0x39: - case 0x3A: - case 0x3B: - case 0x3C: - case 0x3D: - case 0x3E: - case 0x3F: - sound.generate_samples(cycleCounter, isDoubleSpeed()); - sound.waveRamWrite(P & 0xF, data); - break; - case 0x40: - if (ioamhram[0x140] != data) { - if ((ioamhram[0x140] ^ data) & 0x80) { - update_irqEvents(cycleCounter); - const unsigned lyc = display.get_stat(ioamhram[0x145], cycleCounter) & 4; - display.enableChange(cycleCounter); - ioamhram[0x144] = 0; -// enable_display = bool(data & 0x80); - ioamhram[0x141] &= 0xF8; - - if (data & 0x80) { - next_blittime = display.nextMode1IrqTime() + (70224 << isDoubleSpeed()); - } else { - ioamhram[0x141] |= lyc; //Mr. Do! needs conicidence flag preserved. - next_blittime = cycleCounter + (456 * 4 << isDoubleSpeed()); - - if (hdma_transfer) - next_dmatime = cycleCounter; - - next_hdmaReschedule = COUNTER_DISABLED; - } - - set_event(); - } - - if ((ioamhram[0x140] ^ data) & 0x4) { - display.spriteSizeChange(data & 0x4, cycleCounter); - } - - if ((ioamhram[0x140] ^ data) & 0x20) { -// printf("%u: weChange to %u\n", CycleCounter, (data & 0x20) != 0); - display.weChange(data & 0x20, cycleCounter); - } - - if ((ioamhram[0x140] ^ data) & 0x40) - display.wdTileMapSelectChange(data & 0x40, cycleCounter); - - if ((ioamhram[0x140] ^ data) & 0x08) - display.bgTileMapSelectChange(data & 0x08, cycleCounter); - - if ((ioamhram[0x140] ^ data) & 0x10) - display.bgTileDataSelectChange(data & 0x10, cycleCounter); - - if ((ioamhram[0x140] ^ data) & 0x02) - display.spriteEnableChange(data & 0x02, cycleCounter); - - if ((ioamhram[0x140] ^ data) & 0x01) - display.bgEnableChange(data & 0x01, cycleCounter); - - ioamhram[0x140] = data; - rescheduleIrq(cycleCounter); - rescheduleHdmaReschedule(); - } - - return; - case 0x41: - display.lcdstatChange(data, cycleCounter); - rescheduleIrq(cycleCounter); - data = (ioamhram[0x141] & 0x87) | (data & 0x78); - break; - case 0x42: - display.scyChange(data, cycleCounter); - break; - case 0x43: - display.scxChange(data, cycleCounter); - rescheduleIrq(cycleCounter); - rescheduleHdmaReschedule(); - break; - //If rom is trying to write to LY register, reset it to 0. - case 0x44: - if (ioamhram[0x140] & 0x80) { - std::printf("ly write\n"); - display.lyWrite(cycleCounter); - rescheduleIrq(cycleCounter); - rescheduleHdmaReschedule(); - } - - return; - case 0x45: - display.lycRegChange(data, cycleCounter); - rescheduleIrq(cycleCounter); - break; - case 0x46: - if (lastOamDmaUpdate != COUNTER_DISABLED) - endOamDma(cycleCounter); - - lastOamDmaUpdate = cycleCounter; - nextOamEventTime = cycleCounter + 8; - ioamhram[0x146] = data; - oamDmaInitSetup(); - setOamDmaSrc(); - return; - case 0x47: - if (!isCgb()) { - display.dmgBgPaletteChange(data, cycleCounter); - } - - break; - case 0x48: - if (!isCgb()) { - display.dmgSpPalette1Change(data, cycleCounter); - } - - break; - case 0x49: - if (!isCgb()) { - display.dmgSpPalette2Change(data, cycleCounter); - } - - break; - case 0x4A: -// printf("%u: wyChange to %u\n", CycleCounter, data); - display.wyChange(data, cycleCounter); - rescheduleIrq(cycleCounter); - rescheduleHdmaReschedule(); - break; - case 0x4B: -// printf("%u: wxChange to %u\n", CycleCounter, data); - display.wxChange(data, cycleCounter); - rescheduleIrq(cycleCounter); - rescheduleHdmaReschedule(); - break; - - //cgb stuff: - case 0x4D: - ioamhram[0x14D] |= data & 0x01; - return; - //Select vram bank - case 0x4F: - if (isCgb()) { - vrambank = vram + (data & 0x01) * 0x2000; - - if (oamDmaArea1Lower == 0x80) - setOamDmaSrc(); - - ioamhram[0x14F] = 0xFE | data; - } - - return; - case 0x51: - dmaSource = data << 8 | (dmaSource & 0xFF); - return; - case 0x52: - dmaSource = (dmaSource & 0xFF00) | (data & 0xF0); - return; - case 0x53: - dmaDestination = data << 8 | (dmaDestination & 0xFF); - return; - case 0x54: - dmaDestination = (dmaDestination & 0xFF00) | (data & 0xF0); - return; - case 0x55: - if (!isCgb()) - return; - - ioamhram[0x155] = data & 0x7F; - - if (hdma_transfer) { - if (!(data & 0x80)) { - ioamhram[0x155] |= 0x80; - - if (next_dmatime > cycleCounter) { - hdma_transfer = 0; - next_hdmaReschedule = next_dmatime = COUNTER_DISABLED; - set_event(); - } - } - - return; - } - - if (data & 0x80) { - hdma_transfer = 1; - - if (!(ioamhram[0x140] & 0x80) || display.isHdmaPeriod(cycleCounter)) { - next_dmatime = cycleCounter; - next_hdmaReschedule = COUNTER_DISABLED; - } else { - next_dmatime = display.nextHdmaTime(cycleCounter); - next_hdmaReschedule = display.nextHdmaTimeInvalid(); - } - } else - next_dmatime = cycleCounter; - - set_event(); - return; - case 0x56: - if (isCgb()) { - ioamhram[0x156] = data | 0x3E; - } - - return; - //Set bg palette index - case 0x68: - if (isCgb()) - ioamhram[0x168] = data | 0x40; - - return; - //Write to bg palette data - case 0x69: - if (isCgb()) { - const unsigned index = ioamhram[0x168] & 0x3F; - - display.cgbBgColorChange(index, data, cycleCounter); - - ioamhram[0x168] = (ioamhram[0x168] & ~0x3F) | ((index + (ioamhram[0x168] >> 7)) & 0x3F); - } - - return; - case 0x6A: - if (isCgb()) - ioamhram[0x16A] = data | 0x40; - - return; - //Write to obj palette data. - case 0x6B: - if (isCgb()) { - const unsigned index = ioamhram[0x16A] & 0x3F; - - display.cgbSpColorChange(index, data, cycleCounter); - - ioamhram[0x16A] = (ioamhram[0x16A] & ~0x3F) | ((index + (ioamhram[0x16A] >> 7)) & 0x3F); - } - - return; - case 0x6C: - if (isCgb()) - ioamhram[0x16C] = data | 0xFE; - - return; - case 0x70: - if (isCgb()) { - wramdata[1] = wramdata[0] + ((data & 0x07) ? (data & 0x07) : 1) * 0x1000; - - if (oamDmaArea1Lower == 0xC0) - setOamDmaSrc(); - else - wmem[0xD] = rmem[0xD] = wramdata[1] - 0xD000; - - ioamhram[0x170] = data | 0xF8; - } - - return; - case 0x72: - case 0x73: - case 0x74: - if (isCgb()) - break; - - return; - case 0x75: - if (isCgb()) - ioamhram[0x175] = data | 0x8F; - - return; - case 0xFF: - ioamhram[0x1FF] = data; - rescheduleIrq(cycleCounter); - return; - default: -// if (P < 0xFF80) - return; - } - - ioamhram[P - 0xFE00] = data; -} - -void Memory::mbc_write(const unsigned P, const unsigned data) { -// printf("mem[0x%X] = 0x%X\n", P, data); - - switch (P >> 12 & 0x7) { - case 0x0: - case 0x1: //Most MBCs write 0x?A to addresses lower than 0x2000 to enable ram. - if (romtype == mbc2 && (P & 0x0100)) break; - - enable_ram = (data & 0x0F) == 0xA; - - if (rtcRom) - rtc.setEnabled(enable_ram); - - setRambank(); - break; - //MBC1 writes ???n nnnn to address area 0x2000-0x3FFF, ???n nnnn makes up the lower digits to determine which rombank to load. - //MBC3 writes ?nnn nnnn to address area 0x2000-0x3FFF, ?nnn nnnn makes up the lower digits to determine which rombank to load. - //MBC5 writes nnnn nnnn to address area 0x2000-0x2FFF, nnnn nnnn makes up the lower digits to determine which rombank to load. - //MBC5 writes bit8 of the number that determines which rombank to load to address 0x3000-0x3FFF. - case 0x2: - switch (romtype) { - case plain: - return; - case mbc5: - rombank = (rombank & 0x100) | data; - rombank = rombank & (rombanks - 1); - setRombank(); - return; - default: - break; //Only supposed to break one level. - } - case 0x3: - switch (romtype) { - case mbc1: - rombank = rambank_mode ? data & 0x1F : ((rombank & 0x60) | (data & 0x1F)); - break; - case mbc2: - if (P & 0x0100) { - rombank = data & 0x0F; - break; - } - - return; - case mbc3: - rombank = data & 0x7F; - break; - case mbc5: - rombank = (data & 0x1) << 8 | (rombank & 0xFF); - break; - default: - return; - } - - rombank = rombank & (rombanks - 1); - setRombank(); - break; - //MBC1 writes ???? ??nn to area 0x4000-0x5FFF either to determine rambank to load, or upper 2 bits of the rombank number to load, depending on rom-mode. - //MBC3 writes ???? ??nn to area 0x4000-0x5FFF to determine rambank to load - //MBC5 writes ???? nnnn to area 0x4000-0x5FFF to determine rambank to load - case 0x4: - case 0x5: - switch (romtype) { - case mbc1: - if (rambank_mode) { - rambank = data & 0x03; - break; - } - - rombank = (data & 0x03) << 5 | (rombank & 0x1F); - rombank = rombank & (rombanks - 1); - setRombank(); - return; - case mbc3: - if (rtcRom) - rtc.swapActive(data); - - rambank = data & 0x03; - break; - case mbc5: - rambank = data & 0x0F; - break; - default: - return; - } - - rambank &= rambanks - 1; - setRambank(); - break; - //MBC1: If ???? ???1 is written to area 0x6000-0x7FFFF rom will be set to rambank mode. - case 0x6: - case 0x7: - switch (romtype) { - case mbc1: - rambank_mode = data & 0x01; - break; - case mbc3: - rtc.latch(data); - break; - default: - break; - } - - break; -// default: break; - } -} - -void Memory::nontrivial_write(const unsigned P, const unsigned data, const unsigned long cycleCounter) { - if (lastOamDmaUpdate != COUNTER_DISABLED) { - updateOamDma(cycleCounter); - - if ((P >> 8) - oamDmaArea1Lower < oamDmaArea1Width || P >> 8 < oamDmaArea2Upper) { - ioamhram[oamDmaPos] = data; - return; - } - } - - if (P < 0xFE00) { - if (P < 0xA000) { - if (P < 0x8000) { - mbc_write(P, data); - } else if (display.vramAccessible(cycleCounter)) { - display.vramChange(cycleCounter); - vrambank[P & 0x1FFF] = data; - } - } else if (P < 0xC000) { - if (wsrambankptr) - wsrambankptr[P] = data; - else - rtc.write(data); - } else - wramdata[P >> 12 & 1][P & 0xFFF] = data; - } else if (((P + 1) & 0xFFFF) < 0xFF81) { - if (P < 0xFF00) { - if (display.oamAccessible(cycleCounter) && oamDmaPos >= 0xA0) { - display.oamChange(cycleCounter); - rescheduleIrq(cycleCounter); - rescheduleHdmaReschedule(); - ioamhram[P - 0xFE00] = data; - } - } else - nontrivial_ff_write(P, data, cycleCounter); - } else - ioamhram[P - 0xFE00] = data; -} - -static const std::string stripExtension(const std::string &str) { - const std::string::size_type lastDot = str.find_last_of('.'); - const std::string::size_type lastSlash = str.find_last_of('/'); - - if (lastDot != std::string::npos && (lastSlash == std::string::npos || lastSlash < lastDot)) - return str.substr(0, lastDot); - - return str; -} - -static const std::string stripDir(const std::string &str) { - const std::string::size_type lastSlash = str.find_last_of('/'); - - if (lastSlash != std::string::npos) - return str.substr(lastSlash + 1); - - return str; -} - -const std::string Memory::saveBasePath() const { - return saveDir.empty() ? defaultSaveBasePath : saveDir + stripDir(defaultSaveBasePath); -} - -void Memory::set_savedir(const char *dir) { - saveDir = dir ? dir : ""; - - if (!saveDir.empty() && saveDir[saveDir.length() - 1] != '/') { - saveDir += '/'; - } -} - -static void enforce8bit(unsigned char *data, unsigned long sz) { - if (static_cast(0x100)) - while (sz--) - *data++ &= 0xFF; -} - -static unsigned pow2ceil(unsigned n) { - --n; - n |= n >> 1; - n |= n >> 2; - n |= n >> 4; - n |= n >> 8; - ++n; - - return n; -} - -bool Memory::loadROM(const bool forceDmg) { - defaultSaveBasePath = ""; - - { - unsigned char *header = (unsigned char*)supergameboy.romdata; - - cgb = header[0x0143] >> 7 & 1; - - if (cgb & forceDmg) { - cgb = false; - defaultSaveBasePath += "_dmg"; - } - - switch (header[0x0147]) { - case 0x00: std::printf("Plain ROM loaded.\n"); - romtype = plain; - break; - case 0x01: std::printf("MBC1 ROM loaded.\n"); - romtype = mbc1; - break; - case 0x02: std::printf("MBC1 ROM+RAM loaded.\n"); - romtype = mbc1; - break; - case 0x03: std::printf("MBC1 ROM+RAM+BATTERY loaded.\n"); - romtype = mbc1; - battery = 1; - break; - case 0x05: std::printf("MBC2 ROM loaded.\n"); - romtype = mbc2; - break; - case 0x06: std::printf("MBC2 ROM+BATTERY loaded.\n"); - romtype = mbc2; - battery = 1; - break; - case 0x08: std::printf("Plain ROM with additional RAM loaded.\n"); - break; - case 0x09: std::printf("Plain ROM with additional RAM and Battery loaded.\n"); - battery = 1; - break; - case 0x0B: /*cout << "MM01 ROM not supported.\n";*/ - return 1; - break; - case 0x0C: /*cout << "MM01 ROM not supported.\n";*/ - return 1; - break; - case 0x0D: /*cout << "MM01 ROM not supported.\n";*/ - return 1; - break; - case 0x0F: std::printf("MBC3 ROM+TIMER+BATTERY loaded.\n"); - romtype = mbc3; - battery = true; - rtcRom = true; - break; - case 0x10: std::printf("MBC3 ROM+TIMER+RAM+BATTERY loaded.\n"); - romtype = mbc3; - battery = true; - rtcRom = true; - break; - case 0x11: std::printf("MBC3 ROM loaded.\n"); - romtype = mbc3; - break; - case 0x12: std::printf("MBC3 ROM+RAM loaded.\n"); - romtype = mbc3; - break; - case 0x13: std::printf("MBC3 ROM+RAM+BATTERY loaded.\n"); - romtype = mbc3; - battery = 1; - break; - case 0x15: /*cout << "MBC4 ROM not supported.\n";*/ - return 1; - break; - case 0x16: /*cout << "MBC4 ROM not supported.\n";*/ - return 1; - break; - case 0x17: /*cout << "MBC4 ROM not supported.\n";*/ - return 1; - break; - case 0x19: std::printf("MBC5 ROM loaded.\n"); - romtype = mbc5; - break; - case 0x1A: std::printf("MBC5 ROM+RAM loaded.\n"); - romtype = mbc5; - break; - case 0x1B: std::printf("MBC5 ROM+RAM+BATTERY loaded.\n"); - romtype = mbc5; - battery = 1; - break; - case 0x1C: std::printf("MBC5+RUMLE ROM not supported.\n"); - romtype = mbc5; - break; - case 0x1D: std::printf("MBC5+RUMLE+RAM ROM not suported.\n"); - romtype = mbc5; - break; - case 0x1E: std::printf("MBC5+RUMLE+RAM+BATTERY ROM not supported.\n"); - romtype = mbc5; - battery = 1; - break; - case 0xFC: /*cout << "Pocket Camera ROM not supported.\n";*/ - return 1; - break; - case 0xFD: /*cout << "Bandai TAMA5 ROM not supported.\n";*/ - return 1; - break; - case 0xFE: /*cout << "HuC3 ROM not supported.\n";*/ - return 1; - break; - case 0xFF: /*cout << "HuC1 ROM not supported.\n";*/ - return 1; - break; - default: /*cout << "Wrong data-format, corrupt or unsupported ROM loaded.\n";*/ - return 1; - } - - /*switch (header[0x0148]) { - case 0x00: - rombanks = 2; - break; - case 0x01: - rombanks = 4; - break; - case 0x02: - rombanks = 8; - break; - case 0x03: - rombanks = 16; - break; - case 0x04: - rombanks = 32; - break; - case 0x05: - rombanks = 64; - break; - case 0x06: - rombanks = 128; - break; - case 0x07: - rombanks = 256; - break; - case 0x08: - rombanks = 512; - break; - case 0x52: - rombanks = 72; - break; - case 0x53: - rombanks = 80; - break; - case 0x54: - rombanks = 96; - break; - default: - return 1; - } - - printf("rombanks: %u\n", rombanks);*/ - - switch (header[0x0149]) { - case 0x00: /*cout << "No RAM\n";*/ rambanks = romtype == mbc2; break; - case 0x01: /*cout << "2kB RAM\n";*/ /*rambankrom=1; break;*/ - case 0x02: /*cout << "8kB RAM\n";*/ - rambanks = 1; - break; - case 0x03: /*cout << "32kB RAM\n";*/ - rambanks = 4; - break; - case 0x04: /*cout << "128kB RAM\n";*/ - rambanks = 16; - break; - case 0x05: /*cout << "undocumented kB RAM\n";*/ - rambanks = 16; - break; - default: /*cout << "Wrong data-format, corrupt or unsupported ROM loaded.\n";*/ - rambanks = 16; - break; - } - } - - std::printf("rambanks: %u\n", rambanks); - - rombanks = pow2ceil(supergameboy.romsize / 0x4000); - std::printf("rombanks: %u\n", supergameboy.romsize / 0x4000); - - delete []memchunk; - memchunk = new unsigned char[0x4000 + rombanks * 0x4000ul + rambanks * 0x2000ul + (isCgb() ? 0x8000 : 0x2000) + 0x4000]; - - romdata[0] = memchunk + 0x4000; - rambankdata = romdata[0] + rombanks * 0x4000ul; - wramdata[0] = rambankdata + rambanks * 0x2000; - rdisabled_ram = wramdata[0] + (isCgb() ? 0x8000 : 0x2000); - wdisabled_ram = rdisabled_ram + 0x2000; - - wramdata[1] = wramdata[0] + 0x1000; - std::memset(rdisabled_ram, 0xFF, 0x2000); - - memcpy((char*)romdata[0], supergameboy.romdata, (supergameboy.romsize / 0x4000) * 0x4000ul); - // In case rombanks isn't a power of 2, allocate a disabled area for invalid rombank addresses. This is only based on speculation. - std::memset(romdata[0] + (supergameboy.romsize / 0x4000) * 0x4000ul, 0xFF, (rombanks - supergameboy.romsize / 0x4000) * 0x4000ul); - enforce8bit(romdata[0], rombanks * 0x4000ul); - - sound.init(isCgb()); - display.reset(ioamhram, isCgb()); - - return 0; -} - -void Memory::loadSavedata() { - if (battery) { - if (supergameboy.ramdata) { - memcpy((char*)rambankdata, supergameboy.ramdata, std::min(supergameboy.ramsize, (unsigned int)(rambanks * 0x2000ul))); - enforce8bit(rambankdata, rambanks * 0x2000ul); - } - } - - if (rtcRom) { - if (supergameboy.rtcdata && supergameboy.rtcsize >= 4) { - unsigned long basetime = 0; - - basetime = basetime << 8 | (supergameboy.rtcdata[0]); - basetime = basetime << 8 | (supergameboy.rtcdata[1]); - basetime = basetime << 8 | (supergameboy.rtcdata[2]); - basetime = basetime << 8 | (supergameboy.rtcdata[3]); - - rtc.setBaseTime(basetime); - } - } -} - -void Memory::saveSavedata() { - if (battery) { - if (supergameboy.ramdata) { - memcpy(supergameboy.ramdata, (char*)rambankdata, std::min(supergameboy.ramsize, (unsigned int)(rambanks * 0x2000ul))); - } - } - - if (rtcRom) { - if (supergameboy.rtcdata && supergameboy.rtcsize >= 4) { - const unsigned long basetime = rtc.getBaseTime(); - - supergameboy.rtcdata[0] = basetime >> 24; - supergameboy.rtcdata[1] = basetime >> 16; - supergameboy.rtcdata[2] = basetime >> 8; - supergameboy.rtcdata[3] = basetime >> 0; - } - } -} - -unsigned Memory::fillSoundBuffer(const unsigned long cycleCounter) { - sound.generate_samples(cycleCounter, isDoubleSpeed()); - return sound.fillBuffer(); -} - -void Memory::setVideoBlitter(Gambatte::VideoBlitter *const vb) { - display.setVideoBlitter(vb); -} - -void Memory::videoBufferChange() { - display.videoBufferChange(); -} - -void Memory::setVideoFilter(const unsigned int n) { - display.setVideoFilter(n); -} - -void Memory::setDmgPaletteColor(unsigned palNum, unsigned colorNum, unsigned long rgb32) { - display.setDmgPaletteColor(palNum, colorNum, rgb32); -} - -Memory::~Memory() { - saveSavedata(); - - delete []memchunk; -} diff --git a/supergameboy/libgambatte/src/memory.h b/supergameboy/libgambatte/src/memory.h deleted file mode 100644 index eb9f3197..00000000 --- a/supergameboy/libgambatte/src/memory.h +++ /dev/null @@ -1,238 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef MEMORY_H -#define MEMORY_H - -class SaveState; - -#include "int.h" -#include "video.h" -#include "sound.h" - -#include "interrupter.h" -#include "rtc.h" -#include - -namespace Gambatte { -class InputStateGetter; -class FilterInfo; -} - -class Memory { -public: - enum { COUNTER_DISABLED = 0xFFFFFFFFu }; - -private: - enum cartridgetype { plain, mbc1, mbc2, mbc3, mbc5 }; - enum events { HDMA_RESCHEDULE, DMA, INTERRUPTS, BLIT, UNHALT, OAM, END }; - enum irqEvents { /*MODE0, MODE1, MODE2, LYC,*/ TIMA, /*M0RESC,*/ SERIAL }; - - unsigned char ioamhram[0x200]; - unsigned char vram[0x2000 * 2]; - unsigned char *rmem[0x10]; - unsigned char *wmem[0x10]; - - unsigned char *memchunk; - unsigned char *romdata[2]; - unsigned char *wramdata[2]; - unsigned char *rambankdata; - unsigned char *rdisabled_ram; - unsigned char *wdisabled_ram; - unsigned char *oamDmaSrc; - unsigned char *vrambank; - unsigned char *rsrambankptr; - unsigned char *wsrambankptr; - - Gambatte::InputStateGetter *getInput; - - unsigned long div_lastUpdate; - unsigned long tima_lastUpdate; - unsigned long next_timatime; - unsigned long next_blittime; - unsigned long nextIntTime; - unsigned long minIntTime; - unsigned long next_dmatime; - unsigned long next_hdmaReschedule; - unsigned long next_unhalttime; - unsigned long next_endtime; - unsigned long next_irqEventTime; - unsigned long tmatime; - unsigned long next_serialtime; - unsigned long next_eventtime; - unsigned long lastOamDmaUpdate; - unsigned long nextOamEventTime; - - LCD display; - PSG sound; - Interrupter interrupter; - Rtc rtc; - - events next_event; - irqEvents next_irqEvent; - cartridgetype romtype; - - std::string defaultSaveBasePath; - std::string saveDir; - - unsigned short rombanks; - unsigned short rombank; - unsigned short dmaSource; - unsigned short dmaDestination; - - unsigned char rambank; - unsigned char rambanks; - unsigned char oamDmaArea1Lower; - unsigned char oamDmaArea1Width; - unsigned char oamDmaArea2Upper; - unsigned char oamDmaPos; - - bool cgb; - bool doubleSpeed; - bool IME; - bool enable_ram; - bool rambank_mode; - bool battery, rtcRom; - bool hdma_transfer; - bool active; - - void updateInput(); - - void setRombank(); - void setRambank(); - void setBanks(); - void oamDmaInitSetup(); - void setOamDmaArea(); - void updateOamDma(unsigned long cycleCounter); - void startOamDma(unsigned long cycleCounter); - void endOamDma(unsigned long cycleCounter); - void setOamDmaSrc(); - - unsigned nontrivial_ff_read(unsigned P, unsigned long cycleCounter); - unsigned nontrivial_read(unsigned P, unsigned long cycleCounter); - void nontrivial_ff_write(unsigned P, unsigned data, unsigned long cycleCounter); - void mbc_write(unsigned P, unsigned data); - void nontrivial_write(unsigned P, unsigned data, unsigned long cycleCounter); - - void set_event(); - void set_irqEvent(); - void update_irqEvents(unsigned long cc); - void update_tima(unsigned long cycleCounter); - - void rescheduleIrq(unsigned long cycleCounter); - void rescheduleHdmaReschedule(); - - bool isDoubleSpeed() const { return doubleSpeed; } - -public: - Memory(const Interrupter &interrupter); - ~Memory(); - - void updateVideo(unsigned cycleCounter) { display.update(cycleCounter); } - unsigned lyCounter(unsigned cycleCounter) { return display.getLyReg(cycleCounter); } - - void setStatePtrs(SaveState &state); - unsigned long saveState(SaveState &state, unsigned long cc); - void loadState(const SaveState &state, unsigned long oldCc); - void loadSavedata(); - void saveSavedata(); - const std::string saveBasePath() const; - - void setOsdElement(std::auto_ptr osdElement) { - display.setOsdElement(osdElement); - } - - void speedChange(unsigned long cycleCounter); - bool isCgb() const { return cgb; } - bool getIME() const { return IME; } - unsigned long getNextEventTime() const { return next_eventtime; } - - bool isActive() const { return active; } - - void ei(unsigned long cycleCounter); - - void di() { - IME = 0; - nextIntTime = COUNTER_DISABLED; - - if (next_event == INTERRUPTS) - set_event(); - -// next_eitime=0; -// if(next_event==EI) set_event(); - } - - unsigned ff_read(const unsigned P, const unsigned long cycleCounter) { - return P < 0xFF80 ? nontrivial_ff_read(P, cycleCounter) : ioamhram[P - 0xFE00]; - } - - unsigned read(const unsigned P, const unsigned long cycleCounter) { - return rmem[P >> 12] ? rmem[P >> 12][P] : nontrivial_read(P, cycleCounter); - } - - void write(const unsigned P, const unsigned data, const unsigned long cycleCounter) { - if (wmem[P >> 12]) - wmem[P >> 12][P] = data; - else - nontrivial_write(P, data, cycleCounter); - } - - void ff_write(const unsigned P, const unsigned data, const unsigned long cycleCounter) { - if (((P + 1) & 0xFF) < 0x81) - nontrivial_ff_write(P, data, cycleCounter); - else - ioamhram[P - 0xFE00] = data; - } - - unsigned long event(unsigned long cycleCounter); - unsigned long resetCounters(unsigned long cycleCounter); - - bool loadROM(bool forceDmg); - void set_savedir(const char *dir); - - void setInputStateGetter(Gambatte::InputStateGetter *getInput) { - this->getInput = getInput; - } - - void schedule_unhalt(); - void incEndtime(unsigned long inc); - void setEndtime(unsigned long cc, unsigned long inc); - - void setSoundBuffer(Gambatte::uint_least32_t *const buf) { sound.setBuffer(buf); } - unsigned fillSoundBuffer(unsigned long cc); - void setVideoBlitter(Gambatte::VideoBlitter * vb); - void setVideoFilter(unsigned int n); - - void videoBufferChange(); - - unsigned videoWidth() const { - return display.videoWidth(); - } - - unsigned videoHeight() const { - return display.videoHeight(); - } - - std::vector filterInfo() const { - return display.filterInfo(); - } - - void setDmgPaletteColor(unsigned palNum, unsigned colorNum, unsigned long rgb32); -}; - -#endif diff --git a/supergameboy/libgambatte/src/osd_element.h b/supergameboy/libgambatte/src/osd_element.h deleted file mode 100644 index 2517d34f..00000000 --- a/supergameboy/libgambatte/src/osd_element.h +++ /dev/null @@ -1,65 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef OSD_ELEMENT_H -#define OSD_ELEMENT_H - -#include "int.h" - -class OsdElement { -public: - enum Opacity { SEVEN_EIGHTHS, THREE_FOURTHS }; - -private: - Opacity opacity_; - unsigned x_; - unsigned y_; - unsigned w_; - unsigned h_; - -protected: - OsdElement(unsigned x = 0, unsigned y = 0, unsigned w = 0, unsigned h = 0, Opacity opacity = SEVEN_EIGHTHS) { - setPos(x, y); - setSize(w, h); - setOpacity(opacity); - } - - void setPos(unsigned x, unsigned y) { - x_ = x; - y_ = y; - } - - void setSize(unsigned w, unsigned h) { - w_ = w; - h_ = h; - } - - void setOpacity(Opacity opacity) { opacity_ = opacity; } - -public: - virtual ~OsdElement() {} - unsigned x() const { return x_; } - unsigned y() const { return y_; } - unsigned w() const { return w_; } - unsigned h() const { return h_; } - Opacity opacity() const { return opacity_; } - - virtual const Gambatte::uint_least32_t* update() = 0; -}; - -#endif diff --git a/supergameboy/libgambatte/src/rtc.cpp b/supergameboy/libgambatte/src/rtc.cpp deleted file mode 100644 index 75164919..00000000 --- a/supergameboy/libgambatte/src/rtc.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "rtc.h" -#include "savestate.h" - -using namespace std; - -Rtc::Rtc() : -activeData(NULL), -activeSet(NULL), -baseTime(0), -haltTime(0), -index(5), -dataDh(0), -dataDl(0), -dataH(0), -dataM(0), -dataS(0), -enabled(false), -lastLatchData(false) { -} - -void Rtc::doLatch() { - time_t tmp = ((dataDh & 0x40) ? haltTime : time(NULL)) - baseTime; - - while (tmp > 0x1FF * 86400) { - baseTime += 0x1FF * 86400; - tmp -= 0x1FF * 86400; - dataDh |= 0x80; - } - - dataDl = (tmp / 86400) & 0xFF; - dataDh &= 0xFE; - dataDh |= ((tmp / 86400) & 0x100) >> 8; - tmp %= 86400; - - dataH = tmp / 3600; - tmp %= 3600; - - dataM = tmp / 60; - tmp %= 60; - - dataS = tmp; -} - -void Rtc::doSwapActive() { - if (!enabled || index > 4) { - activeData = NULL; - activeSet = NULL; - } else switch (index) { - case 0x00: - activeData = &dataS; - activeSet = &Rtc::setS; - break; - case 0x01: - activeData = &dataM; - activeSet = &Rtc::setM; - break; - case 0x02: - activeData = &dataH; - activeSet = &Rtc::setH; - break; - case 0x03: - activeData = &dataDl; - activeSet = &Rtc::setDl; - break; - case 0x04: - activeData = &dataDh; - activeSet = &Rtc::setDh; - break; - } -} - -void Rtc::saveState(SaveState &state) const { - state.rtc.baseTime = baseTime; - state.rtc.haltTime = haltTime; - state.rtc.index = index; - state.rtc.dataDh = dataDh; - state.rtc.dataDl = dataDl; - state.rtc.dataH = dataH; - state.rtc.dataM = dataM; - state.rtc.dataS = dataS; - state.rtc.lastLatchData = lastLatchData; -} - -void Rtc::loadState(const SaveState &state, const bool enabled) { - this->enabled = enabled; - - baseTime = state.rtc.baseTime; - haltTime = state.rtc.haltTime; - index = state.rtc.index; - dataDh = state.rtc.dataDh; - dataDl = state.rtc.dataDl; - dataH = state.rtc.dataH; - dataM = state.rtc.dataM; - dataS = state.rtc.dataS; - lastLatchData = state.rtc.lastLatchData; - - doSwapActive(); -} - -void Rtc::setDh(const unsigned new_dh) { - const time_t unixtime = (dataDh & 0x40) ? haltTime : time(NULL); - const time_t old_highdays = ((unixtime - baseTime) / 86400) & 0x100; - baseTime += old_highdays * 86400; - baseTime -= ((new_dh & 0x1) << 8) * 86400; - - if ((dataDh ^ new_dh) & 0x40) { - if (new_dh & 0x40) - haltTime = time(NULL); - else - baseTime += time(NULL) - haltTime; - } -} - -void Rtc::setDl(const unsigned new_lowdays) { - const time_t unixtime = (dataDh & 0x40) ? haltTime : time(NULL); - const time_t old_lowdays = ((unixtime - baseTime) / 86400) & 0xFF; - baseTime += old_lowdays * 86400; - baseTime -= new_lowdays * 86400; -} - -void Rtc::setH(const unsigned new_hours) { - const time_t unixtime = (dataDh & 0x40) ? haltTime : time(NULL); - const time_t old_hours = ((unixtime - baseTime) / 3600) % 24; - baseTime += old_hours * 3600; - baseTime -= new_hours * 3600; -} - -void Rtc::setM(const unsigned new_minutes) { - const time_t unixtime = (dataDh & 0x40) ? haltTime : time(NULL); - const time_t old_minutes = ((unixtime - baseTime) / 60) % 60; - baseTime += old_minutes * 60; - baseTime -= new_minutes * 60; -} - -void Rtc::setS(const unsigned new_seconds) { - const time_t unixtime = (dataDh & 0x40) ? haltTime : time(NULL); - baseTime += (unixtime - baseTime) % 60; - baseTime -= new_seconds; -} diff --git a/supergameboy/libgambatte/src/rtc.h b/supergameboy/libgambatte/src/rtc.h deleted file mode 100644 index 40905c18..00000000 --- a/supergameboy/libgambatte/src/rtc.h +++ /dev/null @@ -1,97 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef RTC_H -#define RTC_H - -class SaveState; - -#include - -class Rtc { -private: - unsigned char *activeData; - void (Rtc::*activeSet)(unsigned); - std::time_t baseTime; - std::time_t haltTime; - unsigned char index; - unsigned char dataDh; - unsigned char dataDl; - unsigned char dataH; - unsigned char dataM; - unsigned char dataS; - bool enabled; - bool lastLatchData; - - void doLatch(); - void doSwapActive(); - void setDh(unsigned new_dh); - void setDl(unsigned new_lowdays); - void setH(unsigned new_hours); - void setM(unsigned new_minutes); - void setS(unsigned new_seconds); - -public: - Rtc(); - - const unsigned char* getActive() const { - return activeData; - } - - std::time_t getBaseTime() const { - return baseTime; - } - - void setBaseTime(const std::time_t baseTime) { - this->baseTime = baseTime; -// doLatch(); - } - - void latch(const unsigned data) { - if (!lastLatchData && data == 1) - doLatch(); - - lastLatchData = data; - } - - void saveState(SaveState &state) const; - void loadState(const SaveState &state, bool enabled); - - void setEnabled(const bool enabled) { - this->enabled = enabled; - - doSwapActive(); - } - - void swapActive(unsigned index) { - index &= 0xF; - index -= 8; - - this->index = index; - - doSwapActive(); - } - - void write(const unsigned data) { -// if (activeSet) - (this->*activeSet)(data); - *activeData = data; - } -}; - -#endif diff --git a/supergameboy/libgambatte/src/savestate.h b/supergameboy/libgambatte/src/savestate.h deleted file mode 100644 index c4b245fd..00000000 --- a/supergameboy/libgambatte/src/savestate.h +++ /dev/null @@ -1,184 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef SAVESTATE_H -#define SAVESTATE_H - -#include "int.h" - -struct SaveState { - template - class Ptr { - T *ptr; - unsigned long sz; - - public: - Ptr() : ptr(0), sz(0) {} - const T* get() const { return ptr; } - unsigned long getSz() const { return sz; } - void set(T *ptr, const unsigned long sz) { this->ptr = ptr; this->sz = sz; } - - friend class SaverList; - friend void setInitState(SaveState &, bool); - }; - - struct CPU { - unsigned long cycleCounter; - unsigned short PC; - unsigned short SP; - unsigned char A; - unsigned char B; - unsigned char C; - unsigned char D; - unsigned char E; - unsigned char F; - unsigned char H; - unsigned char L; - bool skip; - bool halted; - } cpu; - - struct Mem { - Ptr vram; - Ptr sram; - Ptr wram; - Ptr ioamhram; - unsigned long div_lastUpdate; - unsigned long tima_lastUpdate; - unsigned long tmatime; - unsigned long next_serialtime; - unsigned long lastOamDmaUpdate; - unsigned long minIntTime; - unsigned short rombank; - unsigned short dmaSource; - unsigned short dmaDestination; - unsigned char rambank; - unsigned char oamDmaPos; - bool IME; - bool enable_ram; - bool rambank_mode; - bool hdma_transfer; - } mem; - - struct PPU { - Ptr drawBuffer; - Ptr bgpData; - Ptr objpData; - //SpriteMapper::OamReader - Ptr oamReaderBuf; - Ptr oamReaderSzbuf; - - unsigned long videoCycles; - unsigned long enableDisplayM0Time; - unsigned char winYPos; - unsigned char drawStartCycle; - unsigned char scReadOffset; - unsigned char lcdc; - //ScReader - unsigned char scx[2]; - unsigned char scy[2]; - //ScxReader - unsigned char scxAnd7; - //WeMasterChecker - bool weMaster; - //WxReader - unsigned char wx; - //Wy - unsigned char wy; - bool lycIrqSkip; - } ppu; - - struct SPU { - struct Duty { - unsigned long nextPosUpdate; - unsigned char nr3; - unsigned char pos; - }; - - struct Env { - unsigned long counter; - unsigned char volume; - }; - - struct LCounter { - unsigned long counter; - unsigned short lengthCounter; - }; - - struct { - struct { - unsigned long counter; - unsigned short shadow; - unsigned char nr0; - bool negging; - } sweep; - Duty duty; - Env env; - LCounter lcounter; - unsigned char nr4; - bool master; - } ch1; - - struct { - Duty duty; - Env env; - LCounter lcounter; - unsigned char nr4; - bool master; - } ch2; - - struct { - Ptr waveRam; - LCounter lcounter; - unsigned long waveCounter; - unsigned long lastReadTime; - unsigned char nr3; - unsigned char nr4; - unsigned char wavePos; - unsigned char sampleBuf; - bool master; - } ch3; - - struct { - struct { - unsigned long counter; - unsigned short reg; - } lfsr; - Env env; - LCounter lcounter; - unsigned char nr4; - bool master; - } ch4; - - unsigned long cycleCounter; - } spu; - - struct RTC { - unsigned long baseTime; - unsigned long haltTime; - unsigned char index; - unsigned char dataDh; - unsigned char dataDl; - unsigned char dataH; - unsigned char dataM; - unsigned char dataS; - bool lastLatchData; - } rtc; -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound.cpp b/supergameboy/libgambatte/src/sound.cpp deleted file mode 100644 index 3ff8063f..00000000 --- a/supergameboy/libgambatte/src/sound.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "sound.h" - -#include "savestate.h" -#include -#include - -/* - Frame Sequencer - - Step Length Ctr Vol Env Sweep - - - - - - - - - - - - - - - - - - - - - - 0 Clock - Clock -S 1 - Clock - - 2 Clock - - - 3 - - - - 4 Clock - Clock - 5 - - - - 6 Clock - - - 7 - - - - - - - - - - - - - - - - - - - - - - - - - Rate 256 Hz 64 Hz 128 Hz - -S) start step on sound power on. -*/ - -// static const unsigned bufferSize = 35112 + 16 + 2048; //FIXME: DMA can prevent process from returning for up to 4096 cycles. - -PSG::PSG() : -buffer(NULL), -lastUpdate(0), -soVol(0), -rsum(0x8000), // initialize to 0x8000 to prevent borrows from high word, xor away later -bufferPos(0), -enabled(false) -{} - -void PSG::init(const bool cgb) { - ch1.init(cgb); - ch2.init(cgb); - ch3.init(cgb); - ch4.init(cgb); -} - -void PSG::reset() { - ch1.reset(); - ch2.reset(); - ch3.reset(); - ch4.reset(); -} - -void PSG::setStatePtrs(SaveState &state) { - ch3.setStatePtrs(state); -} - -void PSG::saveState(SaveState &state) { - ch1.saveState(state); - ch2.saveState(state); - ch3.saveState(state); - ch4.saveState(state); -} - -void PSG::loadState(const SaveState &state) { - ch1.loadState(state); - ch2.loadState(state); - ch3.loadState(state); - ch4.loadState(state); - - lastUpdate = state.cpu.cycleCounter; - set_so_volume(state.mem.ioamhram.get()[0x124]); - map_so(state.mem.ioamhram.get()[0x125]); - enabled = state.mem.ioamhram.get()[0x126] >> 7 & 1; -} - -void PSG::accumulate_channels(const unsigned long cycles) { - Gambatte::uint_least32_t *const buf = buffer + bufferPos; - - std::memset(buf, 0, cycles * sizeof(Gambatte::uint_least32_t)); - ch1.update(buf, soVol, cycles); - ch2.update(buf, soVol, cycles); - ch3.update(buf, soVol, cycles); - ch4.update(buf, soVol, cycles); -} - -void PSG::generate_samples(const unsigned long cycleCounter, const unsigned doubleSpeed) { - const unsigned long cycles = (cycleCounter - lastUpdate) >> (1 + doubleSpeed); - lastUpdate += cycles << (1 + doubleSpeed); - - if (cycles) - accumulate_channels(cycles); - - bufferPos += cycles; -} - -void PSG::resetCounter(const unsigned long newCc, const unsigned long oldCc, const unsigned doubleSpeed) { - generate_samples(oldCc, doubleSpeed); - lastUpdate = newCc - (oldCc - lastUpdate); -} - -unsigned PSG::fillBuffer() { - Gambatte::uint_least32_t sum = rsum; - Gambatte::uint_least32_t *b = buffer; - unsigned n = bufferPos; - - while (n--) { - sum += *b; - *b++ = sum ^ 0x8000; // xor away the initial rsum value of 0x8000 (which prevents borrows from the high word) from the low word - } - - rsum = sum; - - return bufferPos; -} - -#ifdef WORDS_BIGENDIAN -static const unsigned long so1Mul = 0x00000001; -static const unsigned long so2Mul = 0x00010000; -#else -static const unsigned long so1Mul = 0x00010000; -static const unsigned long so2Mul = 0x00000001; -#endif - -void PSG::set_so_volume(const unsigned nr50) { - soVol = (((nr50 & 0x7) + 1) * so1Mul + ((nr50 >> 4 & 0x7) + 1) * so2Mul) * 64; -} - -void PSG::map_so(const unsigned nr51) { - const unsigned long tmp = nr51 * so1Mul + (nr51 >> 4) * so2Mul; - - ch1.setSo((tmp & 0x00010001) * 0xFFFF); - ch2.setSo((tmp >> 1 & 0x00010001) * 0xFFFF); - ch3.setSo((tmp >> 2 & 0x00010001) * 0xFFFF); - ch4.setSo((tmp >> 3 & 0x00010001) * 0xFFFF); -} - -unsigned PSG::getStatus() const { - return ch1.isActive() | (ch2.isActive() << 1) | (ch3.isActive() << 2) | (ch4.isActive() << 3); -} diff --git a/supergameboy/libgambatte/src/sound.h b/supergameboy/libgambatte/src/sound.h deleted file mode 100644 index 06916846..00000000 --- a/supergameboy/libgambatte/src/sound.h +++ /dev/null @@ -1,95 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef SOUND_H -#define SOUND_H - -class SaveState; - -#include "int.h" - -#include "sound/channel1.h" -#include "sound/channel2.h" -#include "sound/channel3.h" -#include "sound/channel4.h" - -class PSG { - Channel1 ch1; - Channel2 ch2; - Channel3 ch3; - Channel4 ch4; - - Gambatte::uint_least32_t *buffer; - - unsigned long lastUpdate; - unsigned long soVol; - - Gambatte::uint_least32_t rsum; - - unsigned bufferPos; - - bool enabled; - - void accumulate_channels(unsigned long cycles); - -public: - PSG(); - void init(bool cgb); - void reset(); - void setStatePtrs(SaveState &state); - void saveState(SaveState &state); - void loadState(const SaveState &state); - - void generate_samples(unsigned long cycleCounter, unsigned doubleSpeed); - void resetCounter(unsigned long newCc, unsigned long oldCc, unsigned doubleSpeed); - unsigned fillBuffer(); - void setBuffer(Gambatte::uint_least32_t *const buf) { buffer = buf; bufferPos = 0; } - - bool isEnabled() const { return enabled; } - void setEnabled(bool value) { enabled = value; } - - void set_nr10(unsigned data) { ch1.setNr0(data); } - void set_nr11(unsigned data) { ch1.setNr1(data); } - void set_nr12(unsigned data) { ch1.setNr2(data); } - void set_nr13(unsigned data) { ch1.setNr3(data); } - void set_nr14(unsigned data) { ch1.setNr4(data); } - - void set_nr21(unsigned data) { ch2.setNr1(data); } - void set_nr22(unsigned data) { ch2.setNr2(data); } - void set_nr23(unsigned data) { ch2.setNr3(data); } - void set_nr24(unsigned data) { ch2.setNr4(data); } - - void set_nr30(unsigned data) { ch3.setNr0(data); } - void set_nr31(unsigned data) { ch3.setNr1(data); } - void set_nr32(unsigned data) { ch3.setNr2(data); } - void set_nr33(unsigned data) { ch3.setNr3(data); } - void set_nr34(unsigned data) { ch3.setNr4(data); } - unsigned waveRamRead(unsigned index) const { return ch3.waveRamRead(index); } - void waveRamWrite(unsigned index, unsigned data) { ch3.waveRamWrite(index, data); } - - void set_nr41(unsigned data) { ch4.setNr1(data); } - void set_nr42(unsigned data) { ch4.setNr2(data); } - void set_nr43(unsigned data) { ch4.setNr3(data); } - void set_nr44(unsigned data) { ch4.setNr4(data); } - - void set_so_volume(unsigned nr50); - void map_so(unsigned nr51); - unsigned getStatus() const; -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound/channel1.cpp b/supergameboy/libgambatte/src/sound/channel1.cpp deleted file mode 100644 index 5e112eb2..00000000 --- a/supergameboy/libgambatte/src/sound/channel1.cpp +++ /dev/null @@ -1,257 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "channel1.h" -#include "../savestate.h" -#include - -Channel1::SweepUnit::SweepUnit(MasterDisabler &disabler, DutyUnit &dutyUnit) : - disableMaster(disabler), - dutyUnit(dutyUnit), - shadow(0), - nr0(0), - negging(false) -{} - -unsigned Channel1::SweepUnit::calcFreq() { - unsigned freq = shadow >> (nr0 & 0x07); - - if (nr0 & 0x08) { - freq = shadow - freq; - negging = true; - } else - freq = shadow + freq; - - if (freq & 2048) - disableMaster(); - - return freq; -} - -void Channel1::SweepUnit::event() { - const unsigned long period = nr0 >> 4 & 0x07; - - if (period) { - const unsigned freq = calcFreq(); - - if (!(freq & 2048) && (nr0 & 0x07)) { - shadow = freq; - dutyUnit.setFreq(freq, counter); - calcFreq(); - } - - counter += period << 14; - } else - counter += 8ul << 14; -} - -void Channel1::SweepUnit::nr0Change(const unsigned newNr0) { - if (negging && !(newNr0 & 0x08)) - disableMaster(); - - nr0 = newNr0; -} - -void Channel1::SweepUnit::nr4Init(const unsigned long cc) { - negging = false; - shadow = dutyUnit.getFreq(); - - const unsigned period = nr0 >> 4 & 0x07; - const unsigned shift = nr0 & 0x07; - - if (period | shift) - counter = ((cc >> 14) + (period ? period : 8)) << 14; - else - counter = COUNTER_DISABLED; - - if (shift) - calcFreq(); -} - -void Channel1::SweepUnit::reset() { - counter = COUNTER_DISABLED; -} - -void Channel1::SweepUnit::saveState(SaveState &state) const { - state.spu.ch1.sweep.counter = counter; - state.spu.ch1.sweep.shadow = shadow; - state.spu.ch1.sweep.nr0 = nr0; - state.spu.ch1.sweep.negging = negging; -} - -void Channel1::SweepUnit::loadState(const SaveState &state) { - counter = std::max(state.spu.ch1.sweep.counter, state.spu.cycleCounter); - shadow = state.spu.ch1.sweep.shadow; - nr0 = state.spu.ch1.sweep.nr0; - negging = state.spu.ch1.sweep.negging; -} - -Channel1::Channel1() : - staticOutputTest(*this, dutyUnit), - disableMaster(master, dutyUnit), - lengthCounter(disableMaster, 0x3F), - envelopeUnit(staticOutputTest), - sweepUnit(disableMaster, dutyUnit), - cycleCounter(0), - soMask(0), - prevOut(0), - nr4(0), - master(false) -{ - setEvent(); -} - -void Channel1::setEvent() { -// nextEventUnit = &dutyUnit; -// if (sweepUnit.getCounter() < nextEventUnit->getCounter()) - nextEventUnit = &sweepUnit; - if (envelopeUnit.getCounter() < nextEventUnit->getCounter()) - nextEventUnit = &envelopeUnit; - if (lengthCounter.getCounter() < nextEventUnit->getCounter()) - nextEventUnit = &lengthCounter; -} - -void Channel1::setNr0(const unsigned data) { - sweepUnit.nr0Change(data); - setEvent(); -} - -void Channel1::setNr1(const unsigned data) { - lengthCounter.nr1Change(data, nr4, cycleCounter); - dutyUnit.nr1Change(data, cycleCounter); - - setEvent(); -} - -void Channel1::setNr2(const unsigned data) { - if (envelopeUnit.nr2Change(data)) - disableMaster(); - else - staticOutputTest(cycleCounter); - - setEvent(); -} - -void Channel1::setNr3(const unsigned data) { - dutyUnit.nr3Change(data, cycleCounter); - setEvent(); -} - -void Channel1::setNr4(const unsigned data) { - lengthCounter.nr4Change(nr4, data, cycleCounter); - - nr4 = data; - - dutyUnit.nr4Change(data, cycleCounter); - - if (data & 0x80) { //init-bit - nr4 &= 0x7F; - master = !envelopeUnit.nr4Init(cycleCounter); - sweepUnit.nr4Init(cycleCounter); - staticOutputTest(cycleCounter); - } - - setEvent(); -} - -void Channel1::setSo(const unsigned long soMask) { - this->soMask = soMask; - staticOutputTest(cycleCounter); - setEvent(); -} - -void Channel1::reset() { - cycleCounter = 0x1000 | (cycleCounter & 0xFFF); // cycleCounter >> 12 & 7 represents the frame sequencer position. - -// lengthCounter.reset(); - dutyUnit.reset(); - envelopeUnit.reset(); - sweepUnit.reset(); - - setEvent(); -} - -void Channel1::init(const bool cgb) { - lengthCounter.init(cgb); -} - -void Channel1::saveState(SaveState &state) { - sweepUnit.saveState(state); - dutyUnit.saveState(state.spu.ch1.duty, cycleCounter); - envelopeUnit.saveState(state.spu.ch1.env); - lengthCounter.saveState(state.spu.ch1.lcounter); - - state.spu.cycleCounter = cycleCounter; - state.spu.ch1.nr4 = nr4; - state.spu.ch1.master = master; -} - -void Channel1::loadState(const SaveState &state) { - sweepUnit.loadState(state); - dutyUnit.loadState(state.spu.ch1.duty, state.mem.ioamhram.get()[0x111], state.spu.ch1.nr4, state.spu.cycleCounter); - envelopeUnit.loadState(state.spu.ch1.env, state.mem.ioamhram.get()[0x112], state.spu.cycleCounter); - lengthCounter.loadState(state.spu.ch1.lcounter, state.spu.cycleCounter); - - cycleCounter = state.spu.cycleCounter; - nr4 = state.spu.ch1.nr4; - master = state.spu.ch1.master; -} - -void Channel1::update(Gambatte::uint_least32_t *buf, const unsigned long soBaseVol, unsigned long cycles) { - const unsigned long outBase = envelopeUnit.dacIsOn() ? soBaseVol & soMask : 0; - const unsigned long outLow = outBase * (0 - 15ul); - const unsigned long endCycles = cycleCounter + cycles; - - for (;;) { - const unsigned long outHigh = master ? outBase * (envelopeUnit.getVolume() * 2 - 15ul) : outLow; - const unsigned long nextMajorEvent = nextEventUnit->getCounter() < endCycles ? nextEventUnit->getCounter() : endCycles; - unsigned long out = dutyUnit.isHighState() ? outHigh : outLow; - - while (dutyUnit.getCounter() <= nextMajorEvent) { - *buf = out - prevOut; - prevOut = out; - buf += dutyUnit.getCounter() - cycleCounter; - cycleCounter = dutyUnit.getCounter(); - - dutyUnit.event(); - out = dutyUnit.isHighState() ? outHigh : outLow; - } - - if (cycleCounter < nextMajorEvent) { - *buf = out - prevOut; - prevOut = out; - buf += nextMajorEvent - cycleCounter; - cycleCounter = nextMajorEvent; - } - - if (nextEventUnit->getCounter() == nextMajorEvent) { - nextEventUnit->event(); - setEvent(); - } else - break; - } - - if (cycleCounter & SoundUnit::COUNTER_MAX) { - dutyUnit.resetCounters(cycleCounter); - lengthCounter.resetCounters(cycleCounter); - envelopeUnit.resetCounters(cycleCounter); - sweepUnit.resetCounters(cycleCounter); - - cycleCounter -= SoundUnit::COUNTER_MAX; - } -} diff --git a/supergameboy/libgambatte/src/sound/channel1.h b/supergameboy/libgambatte/src/sound/channel1.h deleted file mode 100644 index d790e0ec..00000000 --- a/supergameboy/libgambatte/src/sound/channel1.h +++ /dev/null @@ -1,91 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef SOUND_CHANNEL1_H -#define SOUND_CHANNEL1_H - -class SaveState; - -#include "int.h" - -#include "master_disabler.h" -#include "length_counter.h" -#include "duty_unit.h" -#include "envelope_unit.h" -#include "static_output_tester.h" - -class Channel1 { - class SweepUnit : public SoundUnit { - MasterDisabler &disableMaster; - DutyUnit &dutyUnit; - unsigned short shadow; - unsigned char nr0; - bool negging; - - unsigned calcFreq(); - - public: - SweepUnit(MasterDisabler &disabler, DutyUnit &dutyUnit); - void event(); - void nr0Change(unsigned newNr0); - void nr4Init(unsigned long cycleCounter); - void reset(); - void saveState(SaveState &state) const; - void loadState(const SaveState &state); - }; - - friend class StaticOutputTester; - - StaticOutputTester staticOutputTest; - DutyMasterDisabler disableMaster; - LengthCounter lengthCounter; - DutyUnit dutyUnit; - EnvelopeUnit envelopeUnit; - SweepUnit sweepUnit; - - SoundUnit *nextEventUnit; - - unsigned long cycleCounter; - unsigned long soMask; - unsigned long prevOut; - - unsigned char nr4; - bool master; - - void setEvent(); - -public: - Channel1(); - void setNr0(unsigned data); - void setNr1(unsigned data); - void setNr2(unsigned data); - void setNr3(unsigned data); - void setNr4(unsigned data); - - void setSo(unsigned long soMask); - bool isActive() const { return master; } - - void update(Gambatte::uint_least32_t *buf, unsigned long soBaseVol, unsigned long cycles); - - void reset(); - void init(bool cgb); - void saveState(SaveState &state); - void loadState(const SaveState &state); -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound/channel2.cpp b/supergameboy/libgambatte/src/sound/channel2.cpp deleted file mode 100644 index 2db30658..00000000 --- a/supergameboy/libgambatte/src/sound/channel2.cpp +++ /dev/null @@ -1,161 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "channel2.h" -#include "../savestate.h" - -Channel2::Channel2() : - staticOutputTest(*this, dutyUnit), - disableMaster(master, dutyUnit), - lengthCounter(disableMaster, 0x3F), - envelopeUnit(staticOutputTest), - cycleCounter(0), - soMask(0), - prevOut(0), - nr4(0), - master(false) -{ - setEvent(); -} - -void Channel2::setEvent() { -// nextEventUnit = &dutyUnit; -// if (envelopeUnit.getCounter() < nextEventUnit->getCounter()) - nextEventUnit = &envelopeUnit; - if (lengthCounter.getCounter() < nextEventUnit->getCounter()) - nextEventUnit = &lengthCounter; -} - -void Channel2::setNr1(const unsigned data) { - lengthCounter.nr1Change(data, nr4, cycleCounter); - dutyUnit.nr1Change(data, cycleCounter); - - setEvent(); -} - -void Channel2::setNr2(const unsigned data) { - if (envelopeUnit.nr2Change(data)) - disableMaster(); - else - staticOutputTest(cycleCounter); - - setEvent(); -} - -void Channel2::setNr3(const unsigned data) { - dutyUnit.nr3Change(data, cycleCounter); - setEvent(); -} - -void Channel2::setNr4(const unsigned data) { - lengthCounter.nr4Change(nr4, data, cycleCounter); - - nr4 = data; - - if (data & 0x80) { //init-bit - nr4 &= 0x7F; - master = !envelopeUnit.nr4Init(cycleCounter); - staticOutputTest(cycleCounter); - } - - dutyUnit.nr4Change(data, cycleCounter); - - setEvent(); -} - -void Channel2::setSo(const unsigned long soMask) { - this->soMask = soMask; - staticOutputTest(cycleCounter); - setEvent(); -} - -void Channel2::reset() { - cycleCounter = 0x1000 | (cycleCounter & 0xFFF); // cycleCounter >> 12 & 7 represents the frame sequencer position. - -// lengthCounter.reset(); - dutyUnit.reset(); - envelopeUnit.reset(); - - setEvent(); -} - -void Channel2::init(const bool cgb) { - lengthCounter.init(cgb); -} - -void Channel2::saveState(SaveState &state) { - dutyUnit.saveState(state.spu.ch2.duty, cycleCounter); - envelopeUnit.saveState(state.spu.ch2.env); - lengthCounter.saveState(state.spu.ch2.lcounter); - - state.spu.ch2.nr4 = nr4; - state.spu.ch2.master = master; -} - -void Channel2::loadState(const SaveState &state) { - dutyUnit.loadState(state.spu.ch2.duty, state.mem.ioamhram.get()[0x116], state.spu.ch2.nr4,state.spu.cycleCounter); - envelopeUnit.loadState(state.spu.ch2.env, state.mem.ioamhram.get()[0x117], state.spu.cycleCounter); - lengthCounter.loadState(state.spu.ch2.lcounter, state.spu.cycleCounter); - - cycleCounter = state.spu.cycleCounter; - nr4 = state.spu.ch2.nr4; - master = state.spu.ch2.master; -} - -void Channel2::update(Gambatte::uint_least32_t *buf, const unsigned long soBaseVol, unsigned long cycles) { - const unsigned long outBase = envelopeUnit.dacIsOn() ? soBaseVol & soMask : 0; - const unsigned long outLow = outBase * (0 - 15ul); - const unsigned long endCycles = cycleCounter + cycles; - - for (;;) { - const unsigned long outHigh = master ? outBase * (envelopeUnit.getVolume() * 2 - 15ul) : outLow; - const unsigned long nextMajorEvent = nextEventUnit->getCounter() < endCycles ? nextEventUnit->getCounter() : endCycles; - unsigned long out = dutyUnit.isHighState() ? outHigh : outLow; - - while (dutyUnit.getCounter() <= nextMajorEvent) { - *buf += out - prevOut; - prevOut = out; - buf += dutyUnit.getCounter() - cycleCounter; - cycleCounter = dutyUnit.getCounter(); - - dutyUnit.event(); - out = dutyUnit.isHighState() ? outHigh : outLow; - } - - if (cycleCounter < nextMajorEvent) { - *buf += out - prevOut; - prevOut = out; - buf += nextMajorEvent - cycleCounter; - cycleCounter = nextMajorEvent; - } - - if (nextEventUnit->getCounter() == nextMajorEvent) { - nextEventUnit->event(); - setEvent(); - } else - break; - } - - if (cycleCounter & SoundUnit::COUNTER_MAX) { - dutyUnit.resetCounters(cycleCounter); - lengthCounter.resetCounters(cycleCounter); - envelopeUnit.resetCounters(cycleCounter); - - cycleCounter -= SoundUnit::COUNTER_MAX; - } -} diff --git a/supergameboy/libgambatte/src/sound/channel2.h b/supergameboy/libgambatte/src/sound/channel2.h deleted file mode 100644 index 24bc66a4..00000000 --- a/supergameboy/libgambatte/src/sound/channel2.h +++ /dev/null @@ -1,70 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef SOUND_CHANNEL2_H -#define SOUND_CHANNEL2_H - -class SaveState; - -#include "int.h" - -#include "length_counter.h" -#include "duty_unit.h" -#include "envelope_unit.h" -#include "static_output_tester.h" - -class Channel2 { - friend class StaticOutputTester; - - StaticOutputTester staticOutputTest; - DutyMasterDisabler disableMaster; - LengthCounter lengthCounter; - DutyUnit dutyUnit; - EnvelopeUnit envelopeUnit; - - SoundUnit *nextEventUnit; - - unsigned long cycleCounter; - unsigned long soMask; - unsigned long prevOut; - - unsigned char nr4; - bool master; - - void setEvent(); - -public: - Channel2(); - void setNr1(unsigned data); - void setNr2(unsigned data); - void setNr3(unsigned data); - void setNr4(unsigned data); - - void setSo(unsigned long soMask); - // void deactivate() { disableMaster(); setEvent(); } - bool isActive() const { return master; } - - void update(Gambatte::uint_least32_t *buf, unsigned long soBaseVol, unsigned long cycles); - - void reset(); - void init(bool cgb); - void saveState(SaveState &state); - void loadState(const SaveState &state); -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound/channel3.cpp b/supergameboy/libgambatte/src/sound/channel3.cpp deleted file mode 100644 index 944271e3..00000000 --- a/supergameboy/libgambatte/src/sound/channel3.cpp +++ /dev/null @@ -1,207 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "channel3.h" -#include "../savestate.h" -#include -#include - -static inline unsigned toPeriod(const unsigned nr3, const unsigned nr4) { - return 0x800 - ((nr4 << 8 & 0x700) | nr3); -} - -Channel3::Channel3() : - disableMaster(master, waveCounter), - lengthCounter(disableMaster, 0xFF), - cycleCounter(0), - soMask(0), - prevOut(0), - waveCounter(SoundUnit::COUNTER_DISABLED), - lastReadTime(0), - nr0(0), - nr3(0), - nr4(0), - wavePos(0), - rShift(4), - sampleBuf(0), - master(false), - cgb(false) -{} - -void Channel3::setNr0(const unsigned data) { - nr0 = data & 0x80; - - if (!(data & 0x80)) - disableMaster(); -} - -void Channel3::setNr2(const unsigned data) { - rShift = (data >> 5 & 3U) - 1; - - if (rShift > 3) - rShift = 4; -} - -void Channel3::setNr4(const unsigned data) { - lengthCounter.nr4Change(nr4, data, cycleCounter); - - nr4 = data & 0x7F; - - if (data & nr0/* & 0x80*/) { - if (!cgb && waveCounter == cycleCounter + 1) { - const unsigned pos = ((wavePos + 1) & 0x1F) >> 1; - - if (pos < 4) - waveRam[0] = waveRam[pos]; - else - std::memcpy(waveRam, waveRam + (pos & ~3), 4); - } - - master = true; - wavePos = 0; - lastReadTime = waveCounter = cycleCounter + toPeriod(nr3, data) + 3; - } -} - -void Channel3::setSo(const unsigned long soMask) { - this->soMask = soMask; -} - -void Channel3::reset() { - cycleCounter = 0x1000 | (cycleCounter & 0xFFF); // cycleCounter >> 12 & 7 represents the frame sequencer position. - -// lengthCounter.reset(); - sampleBuf = 0; -} - -void Channel3::init(const bool cgb) { - this->cgb = cgb; - lengthCounter.init(cgb); -} - -void Channel3::setStatePtrs(SaveState &state) { - state.spu.ch3.waveRam.set(waveRam, sizeof waveRam); -} - -void Channel3::saveState(SaveState &state) const { - lengthCounter.saveState(state.spu.ch3.lcounter); - - state.spu.ch3.waveCounter = waveCounter; - state.spu.ch3.lastReadTime = lastReadTime; - state.spu.ch3.nr3 = nr3; - state.spu.ch3.nr4 = nr4; - state.spu.ch3.wavePos = wavePos; - state.spu.ch3.sampleBuf = sampleBuf; - state.spu.ch3.master = master; -} - -void Channel3::loadState(const SaveState &state) { - lengthCounter.loadState(state.spu.ch3.lcounter, state.spu.cycleCounter); - - cycleCounter = state.spu.cycleCounter; - waveCounter = std::max(state.spu.ch3.waveCounter, state.spu.cycleCounter); - lastReadTime = state.spu.ch3.lastReadTime; - nr3 = state.spu.ch3.nr3; - nr4 = state.spu.ch3.nr4; - wavePos = state.spu.ch3.wavePos & 0x1F; - sampleBuf = state.spu.ch3.sampleBuf; - master = state.spu.ch3.master; - - nr0 = state.mem.ioamhram.get()[0x11A] & 0x80; - setNr2(state.mem.ioamhram.get()[0x11C]); -} - -void Channel3::updateWaveCounter(const unsigned long cc) { - if (cc >= waveCounter) { - const unsigned period = toPeriod(nr3, nr4); - const unsigned long periods = (cc - waveCounter) / period; - - lastReadTime = waveCounter + periods * period; - waveCounter = lastReadTime + period; - - wavePos += periods + 1; - wavePos &= 0x1F; - - sampleBuf = waveRam[wavePos >> 1]; - } -} - -void Channel3::update(Gambatte::uint_least32_t *buf, const unsigned long soBaseVol, unsigned long cycles) { - const unsigned long outBase = (nr0/* & 0x80*/) ? soBaseVol & soMask : 0; - - if (outBase && rShift != 4) { - const unsigned long endCycles = cycleCounter + cycles; - - for (;;) { - const unsigned long nextMajorEvent = lengthCounter.getCounter() < endCycles ? lengthCounter.getCounter() : endCycles; - unsigned long out = outBase * (master ? ((sampleBuf >> (~wavePos << 2 & 4) & 0xF) >> rShift) * 2 - 15ul : 0 - 15ul); - - while (waveCounter <= nextMajorEvent) { - *buf += out - prevOut; - prevOut = out; - buf += waveCounter - cycleCounter; - cycleCounter = waveCounter; - - lastReadTime = waveCounter; - waveCounter += toPeriod(nr3, nr4); - ++wavePos; - wavePos &= 0x1F; - sampleBuf = waveRam[wavePos >> 1]; - out = outBase * (/*master ? */((sampleBuf >> (~wavePos << 2 & 4) & 0xF) >> rShift) * 2 - 15ul/* : 0 - 15ul*/); - } - - if (cycleCounter < nextMajorEvent) { - *buf += out - prevOut; - prevOut = out; - buf += nextMajorEvent - cycleCounter; - cycleCounter = nextMajorEvent; - } - - if (lengthCounter.getCounter() == nextMajorEvent) { - lengthCounter.event(); - } else - break; - } - } else { - if (outBase) { - const unsigned long out = outBase * (0 - 15ul); - - *buf += out - prevOut; - prevOut = out; - } - - cycleCounter += cycles; - - while (lengthCounter.getCounter() <= cycleCounter) { - updateWaveCounter(lengthCounter.getCounter()); - lengthCounter.event(); - } - - updateWaveCounter(cycleCounter); - } - - if (cycleCounter & SoundUnit::COUNTER_MAX) { - lengthCounter.resetCounters(cycleCounter); - - if (waveCounter != SoundUnit::COUNTER_DISABLED) - waveCounter -= SoundUnit::COUNTER_MAX; - - lastReadTime -= SoundUnit::COUNTER_MAX; - cycleCounter -= SoundUnit::COUNTER_MAX; - } -} diff --git a/supergameboy/libgambatte/src/sound/channel3.h b/supergameboy/libgambatte/src/sound/channel3.h deleted file mode 100644 index 8ec8688d..00000000 --- a/supergameboy/libgambatte/src/sound/channel3.h +++ /dev/null @@ -1,100 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef SOUND_CHANNEL3_H -#define SOUND_CHANNEL3_H - -class SaveState; - -#include "int.h" - -#include "master_disabler.h" -#include "length_counter.h" - -class Channel3 { - class Ch3MasterDisabler : public MasterDisabler { - unsigned long &waveCounter; - - public: - Ch3MasterDisabler(bool &m, unsigned long &wC) : MasterDisabler(m), waveCounter(wC) {} - void operator()() { MasterDisabler::operator()(); waveCounter = SoundUnit::COUNTER_DISABLED; } - }; - - unsigned char waveRam[0x10]; - - Ch3MasterDisabler disableMaster; - LengthCounter lengthCounter; - - unsigned long cycleCounter; - unsigned long soMask; - unsigned long prevOut; - unsigned long waveCounter; - unsigned long lastReadTime; - - unsigned char nr0; - unsigned char nr3; - unsigned char nr4; - unsigned char wavePos; - unsigned char rShift; - unsigned char sampleBuf; - - bool master; - bool cgb; - - void updateWaveCounter(unsigned long cc); - -public: - Channel3(); - bool isActive() const { return master; } - void reset(); - void init(bool cgb); - void setStatePtrs(SaveState &state); - void saveState(SaveState &state) const; - void loadState(const SaveState &state); - void setNr0(unsigned data); - void setNr1(unsigned data) { lengthCounter.nr1Change(data, nr4, cycleCounter); } - void setNr2(unsigned data); - void setNr3(unsigned data) { nr3 = data; } - void setNr4(unsigned data); - void setSo(unsigned long soMask); - void update(Gambatte::uint_least32_t *buf, unsigned long soBaseVol, unsigned long cycles); - - unsigned waveRamRead(unsigned index) const { - if (master) { - if (!cgb && cycleCounter != lastReadTime) - return 0xFF; - - index = wavePos >> 1; - } - - return waveRam[index]; - } - - void waveRamWrite(unsigned index, unsigned data) { - if (master) { - if (!cgb && cycleCounter != lastReadTime) - return; - - index = wavePos >> 1; - } - - waveRam[index] = data; - } -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound/channel4.cpp b/supergameboy/libgambatte/src/sound/channel4.cpp deleted file mode 100644 index c1efcf28..00000000 --- a/supergameboy/libgambatte/src/sound/channel4.cpp +++ /dev/null @@ -1,300 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "channel4.h" -#include "../savestate.h" -#include - -static unsigned long toPeriod(const unsigned nr3) { - unsigned s = (nr3 >> 4) + 3; - unsigned r = nr3 & 7; - - if (!r) { - r = 1; - --s; - } - - return r << s; -} - -Channel4::Lfsr::Lfsr() : -backupCounter(COUNTER_DISABLED), -reg(0xFF), -nr3(0), -master(false) -{} - -void Channel4::Lfsr::updateBackupCounter(const unsigned long cc) { - /*if (backupCounter <= cc) { - const unsigned long period = toPeriod(nr3); - backupCounter = cc - (cc - backupCounter) % period + period; - }*/ - - if (backupCounter <= cc) { - const unsigned long period = toPeriod(nr3); - unsigned long periods = (cc - backupCounter) / period + 1; - - backupCounter += periods * period; - - if (master && nr3 < 0xE0) { - if (nr3 & 8) { - while (periods > 6) { - const unsigned xored = (reg << 1 ^ reg) & 0x7E; - reg = (reg >> 6 & ~0x7E) | xored | xored << 8; - periods -= 6; - } - - const unsigned xored = ((reg ^ reg >> 1) << (7 - periods)) & 0x7F; - reg = (reg >> periods & ~(0x80 - (0x80 >> periods))) | xored | xored << 8; - } else { - while (periods > 15) { - reg = reg ^ reg >> 1; - periods -= 15; - } - - reg = reg >> periods | (((reg ^ reg >> 1) << (15 - periods)) & 0x7FFF); - } - } - } -} - -void Channel4::Lfsr::reviveCounter(const unsigned long cc) { - updateBackupCounter(cc); - counter = backupCounter; -} - -/*static const unsigned char nextStateDistance[0x40] = { - 6, 1, 1, 2, 2, 1, 1, 3, - 3, 1, 1, 2, 2, 1, 1, 4, - 4, 1, 1, 2, 2, 1, 1, 3, - 3, 1, 1, 2, 2, 1, 1, 5, - 5, 1, 1, 2, 2, 1, 1, 3, - 3, 1, 1, 2, 2, 1, 1, 4, - 4, 1, 1, 2, 2, 1, 1, 3, - 3, 1, 1, 2, 2, 1, 1, 6, -};*/ - -inline void Channel4::Lfsr::event() { - if (nr3 < 0xE0) { - const unsigned shifted = reg >> 1; - const unsigned xored = (reg ^ shifted) & 1; - - reg = shifted | xored << 14; - - if (nr3 & 8) - reg = (reg & ~0x40) | xored << 6; - } - - counter += toPeriod(nr3); - backupCounter = counter; - - - /*if (nr3 < 0xE0) { - const unsigned periods = nextStateDistance[reg & 0x3F]; - const unsigned xored = ((reg ^ reg >> 1) << (7 - periods)) & 0x7F; - - reg = reg >> periods | xored << 8; - - if (nr3 & 8) - reg = reg & ~(0x80 - (0x80 >> periods)) | xored; - } - - const unsigned long period = toPeriod(nr3); - backupCounter = counter + period; - counter += period * nextStateDistance[reg & 0x3F];*/ -} - -void Channel4::Lfsr::nr3Change(const unsigned newNr3, const unsigned long cc) { - updateBackupCounter(cc); - nr3 = newNr3; - -// if (counter != COUNTER_DISABLED) -// counter = backupCounter + toPeriod(nr3) * (nextStateDistance[reg & 0x3F] - 1); -} - -void Channel4::Lfsr::nr4Init(unsigned long cc) { - disableMaster(); - updateBackupCounter(cc); - master = true; - backupCounter += 4; - counter = backupCounter; -// counter = backupCounter + toPeriod(nr3) * (nextStateDistance[reg & 0x3F] - 1); -} - -void Channel4::Lfsr::reset(const unsigned long cc) { - nr3 = 0; - disableMaster(); - backupCounter = cc + toPeriod(nr3); -} - -void Channel4::Lfsr::resetCounters(const unsigned long oldCc) { - updateBackupCounter(oldCc); - backupCounter -= COUNTER_MAX; - SoundUnit::resetCounters(oldCc); -} - -void Channel4::Lfsr::saveState(SaveState &state, const unsigned long cc) { - updateBackupCounter(cc); - state.spu.ch4.lfsr.counter = backupCounter; - state.spu.ch4.lfsr.reg = reg; -} - -void Channel4::Lfsr::loadState(const SaveState &state) { - counter = backupCounter = std::max(state.spu.ch4.lfsr.counter, state.spu.cycleCounter); - reg = state.spu.ch4.lfsr.reg; - master = state.spu.ch4.master; - nr3 = state.mem.ioamhram.get()[0x122]; -} - -Channel4::Channel4() : - staticOutputTest(*this, lfsr), - disableMaster(master, lfsr), - lengthCounter(disableMaster, 0x3F), - envelopeUnit(staticOutputTest), - cycleCounter(0), - soMask(0), - prevOut(0), - nr4(0), - master(false) -{ - setEvent(); -} - -void Channel4::setEvent() { -// nextEventUnit = &lfsr; -// if (envelopeUnit.getCounter() < nextEventUnit->getCounter()) - nextEventUnit = &envelopeUnit; - if (lengthCounter.getCounter() < nextEventUnit->getCounter()) - nextEventUnit = &lengthCounter; -} - -void Channel4::setNr1(const unsigned data) { - lengthCounter.nr1Change(data, nr4, cycleCounter); - - setEvent(); -} - -void Channel4::setNr2(const unsigned data) { - if (envelopeUnit.nr2Change(data)) - disableMaster(); - else - staticOutputTest(cycleCounter); - - setEvent(); -} - -void Channel4::setNr4(const unsigned data) { - lengthCounter.nr4Change(nr4, data, cycleCounter); - - nr4 = data; - - if (data & 0x80) { //init-bit - nr4 &= 0x7F; - - master = !envelopeUnit.nr4Init(cycleCounter); - - if (master) - lfsr.nr4Init(cycleCounter); - - staticOutputTest(cycleCounter); - } - - setEvent(); -} - -void Channel4::setSo(const unsigned long soMask) { - this->soMask = soMask; - staticOutputTest(cycleCounter); - setEvent(); -} - -void Channel4::reset() { - cycleCounter = 0x1000 | (cycleCounter & 0xFFF); // cycleCounter >> 12 & 7 represents the frame sequencer position. - -// lengthCounter.reset(); - lfsr.reset(cycleCounter); - envelopeUnit.reset(); - - setEvent(); -} - -void Channel4::init(const bool cgb) { - lengthCounter.init(cgb); -} - -void Channel4::saveState(SaveState &state) { - lfsr.saveState(state, cycleCounter); - envelopeUnit.saveState(state.spu.ch4.env); - lengthCounter.saveState(state.spu.ch4.lcounter); - - state.spu.ch4.nr4 = nr4; - state.spu.ch4.master = master; -} - -void Channel4::loadState(const SaveState &state) { - lfsr.loadState(state); - envelopeUnit.loadState(state.spu.ch4.env, state.mem.ioamhram.get()[0x121], state.spu.cycleCounter); - lengthCounter.loadState(state.spu.ch4.lcounter, state.spu.cycleCounter); - - cycleCounter = state.spu.cycleCounter; - nr4 = state.spu.ch4.nr4; - master = state.spu.ch4.master; -} - -void Channel4::update(Gambatte::uint_least32_t *buf, const unsigned long soBaseVol, unsigned long cycles) { - const unsigned long outBase = envelopeUnit.dacIsOn() ? soBaseVol & soMask : 0; - const unsigned long outLow = outBase * (0 - 15ul); - const unsigned long endCycles = cycleCounter + cycles; - - for (;;) { - const unsigned long outHigh = /*master ? */outBase * (envelopeUnit.getVolume() * 2 - 15ul)/* : outLow*/; - const unsigned long nextMajorEvent = nextEventUnit->getCounter() < endCycles ? nextEventUnit->getCounter() : endCycles; - unsigned long out = lfsr.isHighState() ? outHigh : outLow; - - while (lfsr.getCounter() <= nextMajorEvent) { - *buf += out - prevOut; - prevOut = out; - buf += lfsr.getCounter() - cycleCounter; - cycleCounter = lfsr.getCounter(); - - lfsr.event(); - out = lfsr.isHighState() ? outHigh : outLow; - } - - if (cycleCounter < nextMajorEvent) { - *buf += out - prevOut; - prevOut = out; - buf += nextMajorEvent - cycleCounter; - cycleCounter = nextMajorEvent; - } - - if (nextEventUnit->getCounter() == nextMajorEvent) { - nextEventUnit->event(); - setEvent(); - } else - break; - } - - if (cycleCounter & SoundUnit::COUNTER_MAX) { - lengthCounter.resetCounters(cycleCounter); - lfsr.resetCounters(cycleCounter); - envelopeUnit.resetCounters(cycleCounter); - - cycleCounter -= SoundUnit::COUNTER_MAX; - } -} diff --git a/supergameboy/libgambatte/src/sound/channel4.h b/supergameboy/libgambatte/src/sound/channel4.h deleted file mode 100644 index 7563dc2c..00000000 --- a/supergameboy/libgambatte/src/sound/channel4.h +++ /dev/null @@ -1,99 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef SOUND_CHANNEL4_H -#define SOUND_CHANNEL4_H - -class SaveState; - -#include "int.h" - -#include "master_disabler.h" -#include "length_counter.h" -#include "envelope_unit.h" -#include "static_output_tester.h" - -class Channel4 { - class Lfsr : public SoundUnit { - unsigned long backupCounter; - unsigned short reg; - unsigned char nr3; - bool master; - - void updateBackupCounter(unsigned long cc); - - public: - Lfsr(); - void event(); - bool isHighState() const { return ~reg & 1; } - void nr3Change(unsigned newNr3, unsigned long cc); - void nr4Init(unsigned long cc); - void reset(unsigned long cc); - void saveState(SaveState &state, const unsigned long cc); - void loadState(const SaveState &state); - void resetCounters(unsigned long oldCc); - void disableMaster() { killCounter(); master = false; reg = 0xFF; } - void killCounter() { counter = COUNTER_DISABLED; } - void reviveCounter(unsigned long cc); - }; - - class Ch4MasterDisabler : public MasterDisabler { - Lfsr &lfsr; - public: - Ch4MasterDisabler(bool &m, Lfsr &lfsr) : MasterDisabler(m), lfsr(lfsr) {} - void operator()() { MasterDisabler::operator()(); lfsr.disableMaster(); } - }; - - friend class StaticOutputTester; - - StaticOutputTester staticOutputTest; - Ch4MasterDisabler disableMaster; - LengthCounter lengthCounter; - EnvelopeUnit envelopeUnit; - Lfsr lfsr; - - SoundUnit *nextEventUnit; - - unsigned long cycleCounter; - unsigned long soMask; - unsigned long prevOut; - - unsigned char nr4; - bool master; - - void setEvent(); - -public: - Channel4(); - void setNr1(unsigned data); - void setNr2(unsigned data); - void setNr3(unsigned data) { lfsr.nr3Change(data, cycleCounter); /*setEvent();*/ } - void setNr4(unsigned data); - - void setSo(unsigned long soMask); - bool isActive() const { return master; } - - void update(Gambatte::uint_least32_t *buf, unsigned long soBaseVol, unsigned long cycles); - - void reset(); - void init(bool cgb); - void saveState(SaveState &state); - void loadState(const SaveState &state); -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound/duty_unit.cpp b/supergameboy/libgambatte/src/sound/duty_unit.cpp deleted file mode 100644 index d3de6abd..00000000 --- a/supergameboy/libgambatte/src/sound/duty_unit.cpp +++ /dev/null @@ -1,148 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "duty_unit.h" -#include - -static inline bool toOutState(const unsigned duty, const unsigned pos) { - static const unsigned char duties[4] = { 0x80, 0x81, 0xE1, 0x7E }; - - return duties[duty] >> pos & 1; -} - -static inline unsigned toPeriod(const unsigned freq) { - return (2048 - freq) << 1; -} - -void DutyUnit::updatePos(const unsigned long cc) { - if (cc >= nextPosUpdate) { - const unsigned long inc = (cc - nextPosUpdate) / period + 1; - nextPosUpdate += period * inc; - pos += inc; - pos &= 7; - } -} - -void DutyUnit::setDuty(const unsigned nr1) { - duty = nr1 >> 6; - high = toOutState(duty, pos); -} - -void DutyUnit::setCounter() { - static const unsigned char nextStateDistance[4 * 8] = { - 6, 5, 4, 3, 2, 1, 0, 0, - 0, 5, 4, 3, 2, 1, 0, 1, - 0, 3, 2, 1, 0, 3, 2, 1, - 0, 5, 4, 3, 2, 1, 0, 1 - }; - - if (enableEvents && nextPosUpdate != COUNTER_DISABLED) - counter = nextPosUpdate + period * nextStateDistance[(duty * 8) | pos]; - else - counter = COUNTER_DISABLED; -} - -void DutyUnit::setFreq(const unsigned newFreq, const unsigned long cc) { - updatePos(cc); - period = toPeriod(newFreq); - setCounter(); -} - -void DutyUnit::event() { - unsigned inc = period << duty; - - if (duty == 3) - inc -= period * 2; - - if (!(high ^= true)) - inc = period * 8 - inc; - - counter += inc; -} - -void DutyUnit::nr1Change(const unsigned newNr1, const unsigned long cc) { - updatePos(cc); - setDuty(newNr1); - setCounter(); -} - -void DutyUnit::nr3Change(const unsigned newNr3, const unsigned long cc) { - setFreq((getFreq() & 0x700) | newNr3, cc); -} - -void DutyUnit::nr4Change(const unsigned newNr4, const unsigned long cc) { - setFreq((newNr4 << 8 & 0x700) | (getFreq() & 0xFF), cc); - - if (newNr4 & 0x80) { - nextPosUpdate = (cc & ~1) + period; - setCounter(); - } -} - -DutyUnit::DutyUnit() : -nextPosUpdate(COUNTER_DISABLED), -period(4096), -pos(0), -duty(0), -high(false), -enableEvents(true) -{} - -void DutyUnit::reset() { - pos = 0; - high = toOutState(duty, pos); - nextPosUpdate = COUNTER_DISABLED; - setCounter(); -} - -void DutyUnit::saveState(SaveState::SPU::Duty &dstate, const unsigned long cc) { - updatePos(cc); - dstate.nextPosUpdate = nextPosUpdate; - dstate.nr3 = getFreq() & 0xFF; - dstate.pos = pos; -} - -void DutyUnit::loadState(const SaveState::SPU::Duty &dstate, const unsigned nr1, const unsigned nr4, const unsigned long cc) { - nextPosUpdate = std::max(dstate.nextPosUpdate, cc); - pos = dstate.pos & 7; - setDuty(nr1); - period = toPeriod((nr4 << 8 & 0x700) | dstate.nr3); - enableEvents = true; - setCounter(); -} - -void DutyUnit::resetCounters(const unsigned long oldCc) { - if (nextPosUpdate == COUNTER_DISABLED) - return; - - updatePos(oldCc); - nextPosUpdate -= COUNTER_MAX; - SoundUnit::resetCounters(oldCc); -} - -void DutyUnit::killCounter() { - enableEvents = false; - setCounter(); -} - -void DutyUnit::reviveCounter(const unsigned long cc) { - updatePos(cc); - high = toOutState(duty, pos); - enableEvents = true; - setCounter(); -} diff --git a/supergameboy/libgambatte/src/sound/duty_unit.h b/supergameboy/libgambatte/src/sound/duty_unit.h deleted file mode 100644 index e55cec59..00000000 --- a/supergameboy/libgambatte/src/sound/duty_unit.h +++ /dev/null @@ -1,64 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef DUTY_UNIT_H -#define DUTY_UNIT_H - -#include "sound_unit.h" -#include "master_disabler.h" -#include "../savestate.h" - -class DutyUnit : public SoundUnit { - unsigned long nextPosUpdate; - unsigned short period; - unsigned char pos; - unsigned char duty; - bool high; - bool enableEvents; - - void setCounter(); - void setDuty(unsigned nr1); - void updatePos(unsigned long cc); - -public: - DutyUnit(); - void event(); - bool isHighState() const { return high; } - void nr1Change(unsigned newNr1, unsigned long cc); - void nr3Change(unsigned newNr3, unsigned long cc); - void nr4Change(unsigned newNr4, unsigned long cc); - void reset(); - void saveState(SaveState::SPU::Duty &dstate, unsigned long cc); - void loadState(const SaveState::SPU::Duty &dstate, unsigned nr1, unsigned nr4, unsigned long cc); - void resetCounters(unsigned long oldCc); - void killCounter(); - void reviveCounter(unsigned long cc); - - //intended for use by SweepUnit only. - unsigned getFreq() const { return 2048 - (period >> 1); } - void setFreq(unsigned newFreq, unsigned long cc); -}; - -class DutyMasterDisabler : public MasterDisabler { - DutyUnit &dutyUnit; -public: - DutyMasterDisabler(bool &m, DutyUnit &dutyUnit) : MasterDisabler(m), dutyUnit(dutyUnit) {} - void operator()() { MasterDisabler::operator()(); dutyUnit.killCounter(); } -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound/envelope_unit.cpp b/supergameboy/libgambatte/src/sound/envelope_unit.cpp deleted file mode 100644 index ed526eb5..00000000 --- a/supergameboy/libgambatte/src/sound/envelope_unit.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "envelope_unit.h" -#include - -EnvelopeUnit::VolOnOffEvent EnvelopeUnit::nullEvent; - -void EnvelopeUnit::event() { - const unsigned long period = nr2 & 7; - - if (period) { - unsigned newVol = volume; - - if (nr2 & 8) - ++newVol; - else - --newVol; - - if (newVol < 0x10U) { - volume = newVol; - - if (volume < 2) - volOnOffEvent(counter); - - counter += period << 15; - } else - counter = COUNTER_DISABLED; - } else - counter += 8ul << 15; -} - -bool EnvelopeUnit::nr2Change(const unsigned newNr2) { - if (!(nr2 & 7) && counter != COUNTER_DISABLED) - ++volume; - else if (!(nr2 & 8)) - volume += 2; - - if ((nr2 ^ newNr2) & 8) - volume = 0x10 - volume; - - volume &= 0xF; - - nr2 = newNr2; - - return !(newNr2 & 0xF8); -} - -bool EnvelopeUnit::nr4Init(const unsigned long cc) { - { - unsigned long period = nr2 & 7; - - if (!period) - period = 8; - - if (!(cc & 0x7000)) - ++period; - - counter = cc - ((cc - 0x1000) & 0x7FFF) + period * 0x8000; - } - - volume = nr2 >> 4; - - return !(nr2 & 0xF8); -} - -EnvelopeUnit::EnvelopeUnit(VolOnOffEvent &volOnOffEvent) : -volOnOffEvent(volOnOffEvent), -nr2(0), -volume(0) -{} - -void EnvelopeUnit::reset() { - counter = COUNTER_DISABLED; -} - -void EnvelopeUnit::saveState(SaveState::SPU::Env &estate) const { - estate.counter = counter; - estate.volume = volume; -} - -void EnvelopeUnit::loadState(const SaveState::SPU::Env &estate, const unsigned nr2, const unsigned long cc) { - counter = std::max(estate.counter, cc); - volume = estate.volume; - this->nr2 = nr2; -} diff --git a/supergameboy/libgambatte/src/sound/envelope_unit.h b/supergameboy/libgambatte/src/sound/envelope_unit.h deleted file mode 100644 index e9bae2f0..00000000 --- a/supergameboy/libgambatte/src/sound/envelope_unit.h +++ /dev/null @@ -1,50 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef ENVELOPE_UNIT_H -#define ENVELOPE_UNIT_H - -#include "sound_unit.h" -#include "../savestate.h" - -class EnvelopeUnit : public SoundUnit { -public: - struct VolOnOffEvent { - virtual ~VolOnOffEvent() {} - virtual void operator()(unsigned long /*cc*/) {} - }; - -private: - static VolOnOffEvent nullEvent; - VolOnOffEvent &volOnOffEvent; - unsigned char nr2; - unsigned char volume; - -public: - EnvelopeUnit(VolOnOffEvent &volOnOffEvent = nullEvent); - void event(); - bool dacIsOn() const { return nr2 & 0xF8; } - unsigned getVolume() const { return volume; } - bool nr2Change(unsigned newNr2); - bool nr4Init(unsigned long cycleCounter); - void reset(); - void saveState(SaveState::SPU::Env &estate) const; - void loadState(const SaveState::SPU::Env &estate, unsigned nr2, unsigned long cc); -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound/length_counter.cpp b/supergameboy/libgambatte/src/sound/length_counter.cpp deleted file mode 100644 index 8bbe85e1..00000000 --- a/supergameboy/libgambatte/src/sound/length_counter.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ -#include "length_counter.h" -#include "master_disabler.h" -#include - -LengthCounter::LengthCounter(MasterDisabler &disabler, const unsigned mask) : - disableMaster(disabler), - lengthMask(mask) -{ - init(false); - nr1Change(0, 0, 0); -} - -void LengthCounter::event() { - counter = COUNTER_DISABLED; - lengthCounter = 0; - disableMaster(); -} - -void LengthCounter::nr1Change(const unsigned newNr1, const unsigned nr4, const unsigned long cycleCounter) { - lengthCounter = (~newNr1 & lengthMask) + 1; - counter = (nr4 & 0x40) ?( (cycleCounter >> 13) + lengthCounter) << 13 : static_cast(COUNTER_DISABLED); -} - -void LengthCounter::nr4Change(const unsigned oldNr4, const unsigned newNr4, const unsigned long cycleCounter) { - if (counter != COUNTER_DISABLED) - lengthCounter = (counter >> 13) - (cycleCounter >> 13); - - { - unsigned dec = 0; - - if (newNr4 & 0x40) { - dec = ~cycleCounter >> 12 & 1; - - if (!(oldNr4 & 0x40) && lengthCounter) { - if (!(lengthCounter -= dec)) - disableMaster(); - } - } - - if ((newNr4 & 0x80) && !lengthCounter) - lengthCounter = lengthMask + 1 - dec; - } - - if ((newNr4 & 0x40) && lengthCounter) - counter = ((cycleCounter >> 13) + lengthCounter) << 13; - else - counter = COUNTER_DISABLED; -} - -/*void LengthCounter::reset() { - counter = COUNTER_DISABLED; - - if (cgb) - lengthCounter = lengthMask + 1; -}*/ - -void LengthCounter::init(const bool cgb) { - this->cgb = cgb; -} - -void LengthCounter::saveState(SaveState::SPU::LCounter &lstate) const { - lstate.counter = counter; - lstate.lengthCounter = lengthCounter; -} - -void LengthCounter::loadState(const SaveState::SPU::LCounter &lstate, const unsigned long cc) { - counter = std::max(lstate.counter, cc); - lengthCounter = lstate.lengthCounter; -} diff --git a/supergameboy/libgambatte/src/sound/length_counter.h b/supergameboy/libgambatte/src/sound/length_counter.h deleted file mode 100644 index 2d9451d7..00000000 --- a/supergameboy/libgambatte/src/sound/length_counter.h +++ /dev/null @@ -1,44 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ -#ifndef LENGTH_COUNTER_H -#define LENGTH_COUNTER_H - -#include "sound_unit.h" -#include "../savestate.h" - -class MasterDisabler; - -class LengthCounter : public SoundUnit { - MasterDisabler &disableMaster; - unsigned short lengthCounter; - const unsigned char lengthMask; - bool cgb; - -public: - LengthCounter(MasterDisabler &disabler, unsigned lengthMask); - void event(); - void nr1Change(unsigned newNr1, unsigned nr4, unsigned long cc); - void nr4Change(unsigned oldNr4, unsigned newNr4, unsigned long cc); -// void reset(); - void init(bool cgb); - void saveState(SaveState::SPU::LCounter &lstate) const; - void loadState(const SaveState::SPU::LCounter &lstate, unsigned long cc); -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound/master_disabler.h b/supergameboy/libgambatte/src/sound/master_disabler.h deleted file mode 100644 index 7dd588c5..00000000 --- a/supergameboy/libgambatte/src/sound/master_disabler.h +++ /dev/null @@ -1,31 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ -#ifndef MASTER_DISABLER_H -#define MASTER_DISABLER_H - -class MasterDisabler { - bool &master; - -public: - MasterDisabler(bool &m) : master(m) {} - virtual ~MasterDisabler() {} - virtual void operator()() { master = false; } -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound/sound_unit.h b/supergameboy/libgambatte/src/sound/sound_unit.h deleted file mode 100644 index 2857c0c1..00000000 --- a/supergameboy/libgambatte/src/sound/sound_unit.h +++ /dev/null @@ -1,35 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ -#ifndef SOUND_UNIT_H -#define SOUND_UNIT_H - -class SoundUnit { -protected: - unsigned long counter; -public: - enum { COUNTER_MAX = 0x80000000u, COUNTER_DISABLED = 0xFFFFFFFFu }; - - SoundUnit() : counter(COUNTER_DISABLED) {} - virtual ~SoundUnit() {} - virtual void event() = 0; - unsigned long getCounter() const { return counter; } - virtual void resetCounters(unsigned long /*oldCc*/) { if (counter != COUNTER_DISABLED) counter -= COUNTER_MAX; } -}; - -#endif diff --git a/supergameboy/libgambatte/src/sound/static_output_tester.h b/supergameboy/libgambatte/src/sound/static_output_tester.h deleted file mode 100644 index 3dbe216e..00000000 --- a/supergameboy/libgambatte/src/sound/static_output_tester.h +++ /dev/null @@ -1,41 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef STATIC_OUTPUT_TESTER_H -#define STATIC_OUTPUT_TESTER_H - -#include "envelope_unit.h" - -template -class StaticOutputTester : public EnvelopeUnit::VolOnOffEvent { - const Channel &ch; - Unit &unit; -public: - StaticOutputTester(const Channel &ch, Unit &unit) : ch(ch), unit(unit) {} - void operator()(unsigned long cc); -}; - -template -void StaticOutputTester::operator()(const unsigned long cc) { - if (ch.soMask && ch.master && ch.envelopeUnit.getVolume()) - unit.reviveCounter(cc); - else - unit.killCounter(); -} - -#endif diff --git a/supergameboy/libgambatte/src/state_osd_elements.cpp b/supergameboy/libgambatte/src/state_osd_elements.cpp deleted file mode 100644 index 44740d16..00000000 --- a/supergameboy/libgambatte/src/state_osd_elements.cpp +++ /dev/null @@ -1,169 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "state_osd_elements.h" -#include "bitmap_font.h" -#include "statesaver.h" -#include -#include - -using namespace BitmapFont; - -static const char stateLoadedTxt[] = { S,t,a,t,e,SPC,N0,SPC,l,o,a,d,e,d,0 }; -static const char stateSavedTxt[] = { S,t,a,t,e,SPC,N0,SPC,s,a,v,e,d,0 }; -static const unsigned stateLoadedTxtWidth = getWidth(stateLoadedTxt); -static const unsigned stateSavedTxtWidth = getWidth(stateSavedTxt); - -class ShadedTextOsdElment : public OsdElement { - struct ShadeFill { - void operator()(Gambatte::uint_least32_t *dest, const unsigned pitch) { - dest[2] = dest[1] = dest[0] = 0x000000ul; - dest += pitch; - dest[2] = dest[0] = 0x000000ul; - dest += pitch; - dest[2] = dest[1] = dest[0] = 0x000000ul; - } - }; - - Gambatte::uint_least32_t *const pixels; - unsigned life; - -public: - ShadedTextOsdElment(unsigned w, const char *txt); - ~ShadedTextOsdElment(); - const Gambatte::uint_least32_t* update(); -}; - -ShadedTextOsdElment::ShadedTextOsdElment(unsigned width, const char *txt) : -OsdElement(MAX_WIDTH, 144 - HEIGHT - HEIGHT, width + 2, HEIGHT + 2, THREE_FOURTHS), -pixels(new Gambatte::uint_least32_t[w() * h()]), -life(4 * 60) { - std::memset(pixels, 0xFF, w() * h() * sizeof(Gambatte::uint_least32_t)); - - /*print(pixels + 0 * w() + 0, w(), 0x000000ul, txt); - print(pixels + 0 * w() + 1, w(), 0x000000ul, txt); - print(pixels + 0 * w() + 2, w(), 0x000000ul, txt); - print(pixels + 1 * w() + 0, w(), 0x000000ul, txt); - print(pixels + 1 * w() + 2, w(), 0x000000ul, txt); - print(pixels + 2 * w() + 0, w(), 0x000000ul, txt); - print(pixels + 2 * w() + 1, w(), 0x000000ul, txt); - print(pixels + 2 * w() + 2, w(), 0x000000ul, txt); - print(pixels + 1 * w() + 1, w(), 0xE0E0E0ul, txt);*/ - - print(pixels, w(), ShadeFill(), txt); - print(pixels + 1 * w() + 1, w(), 0xE0E0E0ul, txt); -} - -ShadedTextOsdElment::~ShadedTextOsdElment() { - delete []pixels; -} - -const Gambatte::uint_least32_t* ShadedTextOsdElment::update() { - if (life--) - return pixels; - - return 0; -} - -/*class FramedTextOsdElment : public OsdElement { - Gambatte::uint_least32_t *const pixels; - unsigned life; - -public: - FramedTextOsdElment(unsigned w, const char *txt); - ~FramedTextOsdElment(); - const Gambatte::uint_least32_t* update(); -}; - -FramedTextOsdElment::FramedTextOsdElment(unsigned width, const char *txt) : -OsdElement(NUMBER_WIDTH, 144 - HEIGHT * 2 - HEIGHT / 2, width + NUMBER_WIDTH * 2, HEIGHT * 2), -pixels(new Gambatte::uint_least32_t[w() * h()]), -life(4 * 60) { - std::memset(pixels, 0x00, w() * h() * sizeof(Gambatte::uint_least32_t)); - print(pixels + (w() - width) / 2 + ((h() - HEIGHT) / 2) * w(), w(), 0xA0A0A0ul, txt); -} - -FramedTextOsdElment::~FramedTextOsdElment() { - delete []pixels; -} - -const Gambatte::uint_least32_t* FramedTextOsdElment::update() { - if (life--) - return pixels; - - return 0; -}*/ - -std::auto_ptr newStateLoadedOsdElement(unsigned stateNo) { - char txt[sizeof(stateLoadedTxt)]; - - std::memcpy(txt, stateLoadedTxt, sizeof(stateLoadedTxt)); - utoa(stateNo, txt + 6); - - return std::auto_ptr(new ShadedTextOsdElment(stateLoadedTxtWidth, txt)); -} - -std::auto_ptr newStateSavedOsdElement(unsigned stateNo) { - char txt[sizeof(stateSavedTxt)]; - - std::memcpy(txt, stateSavedTxt, sizeof(stateSavedTxt)); - utoa(stateNo, txt + 6); - - return std::auto_ptr(new ShadedTextOsdElment(stateSavedTxtWidth, txt)); -} - -class SaveStateOsdElement : public OsdElement { - Gambatte::uint_least32_t pixels[StateSaver::SS_WIDTH * StateSaver::SS_HEIGHT]; - unsigned life; - -public: - SaveStateOsdElement(const char *fileName, unsigned stateNo); - const Gambatte::uint_least32_t* update(); -}; - -SaveStateOsdElement::SaveStateOsdElement(const char *fileName, unsigned stateNo) : -OsdElement((stateNo ? stateNo - 1 : 9) * ((160 - StateSaver::SS_WIDTH) / 10) + ((160 - StateSaver::SS_WIDTH) / 10) / 2, 4, StateSaver::SS_WIDTH, StateSaver::SS_HEIGHT), -life(4 * 60) { - std::ifstream file(fileName, std::ios_base::binary); - - if (file.is_open()) { - file.ignore(5); - file.read(reinterpret_cast(pixels), sizeof(pixels)); - } else { - std::memset(pixels, 0, sizeof(pixels)); - - { - using namespace BitmapFont; - - static const char txt[] = { E,m,p,t,BitmapFont::y,0 }; - - print(pixels + 3 + (StateSaver::SS_HEIGHT / 2 - BitmapFont::HEIGHT / 2) * StateSaver::SS_WIDTH, StateSaver::SS_WIDTH, 0x808080ul, txt); - } - } -} - -const Gambatte::uint_least32_t* SaveStateOsdElement::update() { - if (life--) - return pixels; - - return 0; -} - -std::auto_ptr newSaveStateOsdElement(const char *fileName, unsigned stateNo) { - return std::auto_ptr(new SaveStateOsdElement(fileName, stateNo)); -} diff --git a/supergameboy/libgambatte/src/state_osd_elements.h b/supergameboy/libgambatte/src/state_osd_elements.h deleted file mode 100644 index c10344d2..00000000 --- a/supergameboy/libgambatte/src/state_osd_elements.h +++ /dev/null @@ -1,29 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef STATE_OSD_ELEMENTS_H -#define STATE_OSD_ELEMENTS_H - -#include "osd_element.h" -#include - -std::auto_ptr newStateLoadedOsdElement(unsigned stateNo); -std::auto_ptr newStateSavedOsdElement(unsigned stateNo); -std::auto_ptr newSaveStateOsdElement(const char *fileName, unsigned stateNo); - -#endif diff --git a/supergameboy/libgambatte/src/statesaver.cpp b/supergameboy/libgambatte/src/statesaver.cpp deleted file mode 100644 index c157129d..00000000 --- a/supergameboy/libgambatte/src/statesaver.cpp +++ /dev/null @@ -1,407 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "statesaver.h" -#include "savestate.h" -#include "array.h" -#include -#include -#include -#include - -enum AsciiChar { - NUL, SOH, STX, ETX, EOT, ENQ, ACK, BEL, BS, TAB, LF, VT, FF, CR, SO, SI, - DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, FS, GS, RS, US, - SP, XCL, QOT, HSH, DLR, PRC, AMP, APO, LPA, RPA, AST, PLU, COM, HYP, STP, DIV, - NO0, NO1, NO2, NO3, NO4, NO5, NO6, NO7, NO8, NO9, CLN, SCL, LT, EQL, GT, QTN, - AT, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, - P, Q, R, S, T, U, V, W, X, Y, Z, LBX, BSL, RBX, CAT, UND, - ACN, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, - p, q, r, s, t, u, v, w, x, y, z, LBR, BAR, RBR, TLD, DEL -}; - -struct Saver { - const char *label; - void (*save)(std::ofstream &file, const SaveState &state); - void (*load)(std::ifstream &file, SaveState &state); - unsigned char labelsize; -}; - -static inline bool operator<(const Saver &l, const Saver &r) { - return std::strcmp(l.label, r.label) < 0; -} - -static void put24(std::ofstream &file, const unsigned long data) { - file.put(data >> 16 & 0xFF); - file.put(data >> 8 & 0xFF); - file.put(data & 0xFF); -} - -static void put32(std::ofstream &file, const unsigned long data) { - file.put(data >> 24 & 0xFF); - file.put(data >> 16 & 0xFF); - file.put(data >> 8 & 0xFF); - file.put(data & 0xFF); -} - -static void write(std::ofstream &file, const unsigned char data) { - static const char inf[] = { 0x00, 0x00, 0x01 }; - - file.write(inf, sizeof(inf)); - file.put(data & 0xFF); -} - -static void write(std::ofstream &file, const unsigned short data) { - static const char inf[] = { 0x00, 0x00, 0x02 }; - - file.write(inf, sizeof(inf)); - file.put(data >> 8 & 0xFF); - file.put(data & 0xFF); -} - -static void write(std::ofstream &file, const unsigned long data) { - static const char inf[] = { 0x00, 0x00, 0x04 }; - - file.write(inf, sizeof(inf)); - put32(file, data); -} - -static inline void write(std::ofstream &file, const bool data) { - write(file, static_cast(data)); -} - -static void write(std::ofstream &file, const unsigned char *data, const unsigned long sz) { - put24(file, sz); - file.write(reinterpret_cast(data), sz); -} - -static void write(std::ofstream &file, const bool *data, const unsigned long sz) { - put24(file, sz); - - for (unsigned long i = 0; i < sz; ++i) - file.put(data[i]); -} - -static unsigned long get24(std::ifstream &file) { - unsigned long tmp = file.get() & 0xFF; - - tmp = tmp << 8 | (file.get() & 0xFF); - - return tmp << 8 | (file.get() & 0xFF); -} - -static unsigned long read(std::ifstream &file) { - unsigned long size = get24(file); - - if (size > 4) { - file.ignore(size - 4); - size = 4; - } - - unsigned long out = 0; - - switch (size) { - case 4: out = (out | (file.get() & 0xFF)) << 8; - case 3: out = (out | (file.get() & 0xFF)) << 8; - case 2: out = (out | (file.get() & 0xFF)) << 8; - case 1: out = out | (file.get() & 0xFF); - } - - return out; -} - -static inline void read(std::ifstream &file, unsigned char &data) { - data = read(file) & 0xFF; -} - -static inline void read(std::ifstream &file, unsigned short &data) { - data = read(file) & 0xFFFF; -} - -static inline void read(std::ifstream &file, unsigned long &data) { - data = read(file); -} - -static inline void read(std::ifstream &file, bool &data) { - data = read(file); -} - -static void read(std::ifstream &file, unsigned char *data, unsigned long sz) { - const unsigned long size = get24(file); - - if (size < sz) - sz = size; - - file.read(reinterpret_cast(data), sz); - file.ignore(size - sz); - - if (static_cast(0x100)) { - for (unsigned long i = 0; i < sz; ++i) - data[i] &= 0xFF; - } -} - -static void read(std::ifstream &file, bool *data, unsigned long sz) { - const unsigned long size = get24(file); - - if (size < sz) - sz = size; - - for (unsigned long i = 0; i < sz; ++i) - data[i] = file.get(); - - file.ignore(size - sz); -} - -class SaverList { -public: - typedef std::vector list_t; - typedef list_t::const_iterator const_iterator; - -private: - list_t list; - unsigned char maxLabelsize_; - -public: - SaverList(); - const_iterator begin() const { return list.begin(); } - const_iterator end() const { return list.end(); } - unsigned maxLabelsize() const { return maxLabelsize_; } -}; - -SaverList::SaverList() { -#define ADD(arg) do { \ - struct Func { \ - static void save(std::ofstream &file, const SaveState &state) { write(file, state.arg); } \ - static void load(std::ifstream &file, SaveState &state) { read(file, state.arg); } \ - }; \ - \ - Saver saver = { label, Func::save, Func::load, sizeof label }; \ - list.push_back(saver); \ -} while (0) - -#define ADDPTR(arg) do { \ - struct Func { \ - static void save(std::ofstream &file, const SaveState &state) { write(file, state.arg.get(), state.arg.getSz()); } \ - static void load(std::ifstream &file, SaveState &state) { read(file, state.arg.ptr, state.arg.getSz()); } \ - }; \ - \ - Saver saver = { label, Func::save, Func::load, sizeof label }; \ - list.push_back(saver); \ -} while (0) - - { static const char label[] = { c,c, NUL }; ADD(cpu.cycleCounter); } - { static const char label[] = { p,c, NUL }; ADD(cpu.PC); } - { static const char label[] = { s,p, NUL }; ADD(cpu.SP); } - { static const char label[] = { a, NUL }; ADD(cpu.A); } - { static const char label[] = { b, NUL }; ADD(cpu.B); } - { static const char label[] = { c, NUL }; ADD(cpu.C); } - { static const char label[] = { d, NUL }; ADD(cpu.D); } - { static const char label[] = { e, NUL }; ADD(cpu.E); } - { static const char label[] = { f, NUL }; ADD(cpu.F); } - { static const char label[] = { h, NUL }; ADD(cpu.H); } - { static const char label[] = { l, NUL }; ADD(cpu.L); } - { static const char label[] = { s,k,i,p, NUL }; ADD(cpu.skip); } - { static const char label[] = { h,a,l,t, NUL }; ADD(cpu.halted); } - { static const char label[] = { v,r,a,m, NUL }; ADDPTR(mem.vram); } - { static const char label[] = { s,r,a,m, NUL }; ADDPTR(mem.sram); } - { static const char label[] = { w,r,a,m, NUL }; ADDPTR(mem.wram); } - { static const char label[] = { h,r,a,m, NUL }; ADDPTR(mem.ioamhram); } - { static const char label[] = { l,d,i,v,u,p, NUL }; ADD(mem.div_lastUpdate); } - { static const char label[] = { l,t,i,m,a,u,p, NUL }; ADD(mem.tima_lastUpdate); } - { static const char label[] = { t,m,a,t,i,m,e, NUL }; ADD(mem.tmatime); } - { static const char label[] = { s,e,r,i,a,l,t, NUL }; ADD(mem.next_serialtime); } - { static const char label[] = { l,o,d,m,a,u,p, NUL }; ADD(mem.lastOamDmaUpdate); } - { static const char label[] = { m,i,n,i,n,t,t, NUL }; ADD(mem.minIntTime); } - { static const char label[] = { r,o,m,b,a,n,k, NUL }; ADD(mem.rombank); } - { static const char label[] = { d,m,a,s,r,c, NUL }; ADD(mem.dmaSource); } - { static const char label[] = { d,m,a,d,s,t, NUL }; ADD(mem.dmaDestination); } - { static const char label[] = { r,a,m,b,a,n,k, NUL }; ADD(mem.rambank); } - { static const char label[] = { o,d,m,a,p,o,s, NUL }; ADD(mem.oamDmaPos); } - { static const char label[] = { i,m,e, NUL }; ADD(mem.IME); } - { static const char label[] = { s,r,a,m,o,n, NUL }; ADD(mem.enable_ram); } - { static const char label[] = { r,a,m,b,m,o,d, NUL }; ADD(mem.rambank_mode); } - { static const char label[] = { h,d,m,a, NUL }; ADD(mem.hdma_transfer); } - { static const char label[] = { b,g,p, NUL }; ADDPTR(ppu.bgpData); } - { static const char label[] = { o,b,j,p, NUL }; ADDPTR(ppu.objpData); } - { static const char label[] = { s,p,o,s,b,u,f, NUL }; ADDPTR(ppu.oamReaderBuf); } - { static const char label[] = { s,p,s,z,b,u,f, NUL }; ADDPTR(ppu.oamReaderSzbuf); } - { static const char label[] = { v,c,y,c,l,e,s, NUL }; ADD(ppu.videoCycles); } - { static const char label[] = { e,d,M,NO0,t,i,m, NUL }; ADD(ppu.enableDisplayM0Time); } - { static const char label[] = { w,i,n,y,p,o,s, NUL }; ADD(ppu.winYPos); } - { static const char label[] = { d,r,a,w,c,y,c, NUL }; ADD(ppu.drawStartCycle); } - { static const char label[] = { s,c,r,d,c,y,c, NUL }; ADD(ppu.scReadOffset); } - { static const char label[] = { l,c,d,c, NUL }; ADD(ppu.lcdc); } - { static const char label[] = { s,c,x,NO0, NUL }; ADD(ppu.scx[0]); } - { static const char label[] = { s,c,x,NO1, NUL }; ADD(ppu.scx[1]); } - { static const char label[] = { s,c,y,NO0, NUL }; ADD(ppu.scy[0]); } - { static const char label[] = { s,c,y,NO1, NUL }; ADD(ppu.scy[1]); } - { static const char label[] = { s,c,x,AMP,NO7, NUL }; ADD(ppu.scxAnd7); } - { static const char label[] = { w,e,m,a,s,t,r, NUL }; ADD(ppu.weMaster); } - { static const char label[] = { w,x, NUL }; ADD(ppu.wx); } - { static const char label[] = { w,y, NUL }; ADD(ppu.wy); } - { static const char label[] = { l,y,c,s,k,i,p, NUL }; ADD(ppu.lycIrqSkip); } - { static const char label[] = { s,p,u,c,n,t,r, NUL }; ADD(spu.cycleCounter); } - { static const char label[] = { s,w,p,c,n,t,r, NUL }; ADD(spu.ch1.sweep.counter); } - { static const char label[] = { s,w,p,s,h,d,w, NUL }; ADD(spu.ch1.sweep.shadow); } - { static const char label[] = { s,w,p,n,e,g, NUL }; ADD(spu.ch1.sweep.negging); } - { static const char label[] = { d,u,t,NO1,c,t,r, NUL }; ADD(spu.ch1.duty.nextPosUpdate); } - { static const char label[] = { d,u,t,NO1,p,o,s, NUL }; ADD(spu.ch1.duty.pos); } - { static const char label[] = { e,n,v,NO1,c,t,r, NUL }; ADD(spu.ch1.env.counter); } - { static const char label[] = { e,n,v,NO1,v,o,l, NUL }; ADD(spu.ch1.env.volume); } - { static const char label[] = { l,e,n,NO1,c,t,r, NUL }; ADD(spu.ch1.lcounter.counter); } - { static const char label[] = { l,e,n,NO1,v,a,l, NUL }; ADD(spu.ch1.lcounter.lengthCounter); } - { static const char label[] = { n,r,NO1,NO0, NUL }; ADD(spu.ch1.sweep.nr0); } - { static const char label[] = { n,r,NO1,NO3, NUL }; ADD(spu.ch1.duty.nr3); } - { static const char label[] = { n,r,NO1,NO4, NUL }; ADD(spu.ch1.nr4); } - { static const char label[] = { c,NO1,m,a,s,t,r, NUL }; ADD(spu.ch1.master); } - { static const char label[] = { d,u,t,NO2,c,t,r, NUL }; ADD(spu.ch2.duty.nextPosUpdate); } - { static const char label[] = { d,u,t,NO2,p,o,s, NUL }; ADD(spu.ch2.duty.pos); } - { static const char label[] = { e,n,v,NO2,c,t,r, NUL }; ADD(spu.ch2.env.counter); } - { static const char label[] = { e,n,v,NO2,v,o,l, NUL }; ADD(spu.ch2.env.volume); } - { static const char label[] = { l,e,n,NO2,c,t,r, NUL }; ADD(spu.ch2.lcounter.counter); } - { static const char label[] = { l,e,n,NO2,v,a,l, NUL }; ADD(spu.ch2.lcounter.lengthCounter); } - { static const char label[] = { n,r,NO2,NO3, NUL }; ADD(spu.ch2.duty.nr3); } - { static const char label[] = { n,r,NO2,NO4, NUL }; ADD(spu.ch2.nr4); } - { static const char label[] = { c,NO2,m,a,s,t,r, NUL }; ADD(spu.ch2.master); } - { static const char label[] = { w,a,v,e,r,a,m, NUL }; ADDPTR(spu.ch3.waveRam); } - { static const char label[] = { l,e,n,NO3,c,t,r, NUL }; ADD(spu.ch3.lcounter.counter); } - { static const char label[] = { l,e,n,NO3,v,a,l, NUL }; ADD(spu.ch3.lcounter.lengthCounter); } - { static const char label[] = { w,a,v,e,c,t,r, NUL }; ADD(spu.ch3.waveCounter); } - { static const char label[] = { l,w,a,v,r,d,t, NUL }; ADD(spu.ch3.lastReadTime); } - { static const char label[] = { w,a,v,e,p,o,s, NUL }; ADD(spu.ch3.wavePos); } - { static const char label[] = { w,a,v,s,m,p,l, NUL }; ADD(spu.ch3.sampleBuf); } - { static const char label[] = { n,r,NO3,NO3, NUL }; ADD(spu.ch3.nr3); } - { static const char label[] = { n,r,NO3,NO4, NUL }; ADD(spu.ch3.nr4); } - { static const char label[] = { c,NO3,m,a,s,t,r, NUL }; ADD(spu.ch3.master); } - { static const char label[] = { l,f,s,r,c,t,r, NUL }; ADD(spu.ch4.lfsr.counter); } - { static const char label[] = { l,f,s,r,r,e,g, NUL }; ADD(spu.ch4.lfsr.reg); } - { static const char label[] = { e,n,v,NO4,c,t,r, NUL }; ADD(spu.ch4.env.counter); } - { static const char label[] = { e,n,v,NO4,v,o,l, NUL }; ADD(spu.ch4.env.volume); } - { static const char label[] = { l,e,n,NO4,c,t,r, NUL }; ADD(spu.ch4.lcounter.counter); } - { static const char label[] = { l,e,n,NO4,v,a,l, NUL }; ADD(spu.ch4.lcounter.lengthCounter); } - { static const char label[] = { n,r,NO4,NO4, NUL }; ADD(spu.ch4.nr4); } - { static const char label[] = { c,NO4,m,a,s,t,r, NUL }; ADD(spu.ch4.master); } - { static const char label[] = { r,t,c,b,a,s,e, NUL }; ADD(rtc.baseTime); } - { static const char label[] = { r,t,c,h,a,l,t, NUL }; ADD(rtc.haltTime); } - { static const char label[] = { r,t,c,i,n,d,x, NUL }; ADD(rtc.index); } - { static const char label[] = { r,t,c,d,h, NUL }; ADD(rtc.dataDh); } - { static const char label[] = { r,t,c,d,l, NUL }; ADD(rtc.dataDl); } - { static const char label[] = { r,t,c,h, NUL }; ADD(rtc.dataH); } - { static const char label[] = { r,t,c,m, NUL }; ADD(rtc.dataM); } - { static const char label[] = { r,t,c,s, NUL }; ADD(rtc.dataS); } - { static const char label[] = { r,t,c,l,l,d, NUL }; ADD(rtc.lastLatchData); } - -#undef ADD -#undef ADDPTR -#undef ADDTIME - - list.resize(list.size()); - std::sort(list.begin(), list.end()); - - maxLabelsize_ = 0; - - for (std::size_t i = 0; i < list.size(); ++i) { - if (list[i].labelsize > maxLabelsize_) - maxLabelsize_ = list[i].labelsize; - } -} - -static void writeSnapShot(std::ofstream &file, const Gambatte::uint_least32_t *pixels, const unsigned pitch) { - put24(file, pixels ? StateSaver::SS_WIDTH * StateSaver::SS_HEIGHT * sizeof(Gambatte::uint_least32_t) : 0); - - if (pixels) { - Gambatte::uint_least32_t buf[StateSaver::SS_WIDTH]; - - for (unsigned h = StateSaver::SS_HEIGHT; h--;) { - for (unsigned x = 0; x < StateSaver::SS_WIDTH; ++x) { - unsigned long rb = 0; - unsigned long g = 0; - - static const unsigned w[StateSaver::SS_DIV] = { 3, 5, 5, 3 }; - - for (unsigned y = 0; y < StateSaver::SS_DIV; ++y) - for (unsigned xx = 0; xx < StateSaver::SS_DIV; ++xx) { - rb += (pixels[x * StateSaver::SS_DIV + y * pitch + xx] & 0xFF00FF) * w[y] * w[xx]; - g += (pixels[x * StateSaver::SS_DIV + y * pitch + xx] & 0x00FF00) * w[y] * w[xx]; - } - - buf[x] = (rb >> 8 & 0xFF00FF) | (g >> 8 & 0x00FF00); - } - - file.write(reinterpret_cast(buf), sizeof(buf)); - pixels += pitch * StateSaver::SS_DIV; - } - } -} - -static SaverList list; - -void StateSaver::saveState(const SaveState &state, const char *filename) { - std::ofstream file(filename, std::ios_base::binary); - - if (file.fail()) - return; - - { static const char ver[] = { 0, 0 }; file.write(ver, sizeof(ver)); } - - writeSnapShot(file, state.ppu.drawBuffer.get(), state.ppu.drawBuffer.getSz() / 144); - - for (SaverList::const_iterator it = list.begin(); it != list.end(); ++it) { - file.write(it->label, it->labelsize); - (*it->save)(file, state); - } -} - -bool StateSaver::loadState(SaveState &state, const char *filename) { - std::ifstream file(filename, std::ios_base::binary); - - if (file.fail() || file.get() != 0) - return false; - - file.ignore(); - file.ignore(get24(file)); - - Array labelbuf(list.maxLabelsize()); - const Saver labelbufSaver = { label: labelbuf, save: 0, load: 0, labelsize: (unsigned char)list.maxLabelsize() }; - - SaverList::const_iterator done = list.begin(); - - while (file.good() && done != list.end()) { - file.getline(labelbuf, list.maxLabelsize(), NUL); - - SaverList::const_iterator it = done; - - if (std::strcmp(labelbuf, it->label)) { - it = std::lower_bound(it + 1, list.end(), labelbufSaver); - - if (it == list.end() || std::strcmp(labelbuf, it->label)) { - file.ignore(get24(file)); - continue; - } - } else - ++done; - - (*it->load)(file, state); - } - - state.cpu.cycleCounter &= 0x7FFFFFFF; - state.spu.cycleCounter &= 0x7FFFFFFF; - - return true; -} diff --git a/supergameboy/libgambatte/src/statesaver.h b/supergameboy/libgambatte/src/statesaver.h deleted file mode 100644 index ea9ce8b3..00000000 --- a/supergameboy/libgambatte/src/statesaver.h +++ /dev/null @@ -1,37 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef STATESAVER_H -#define STATESAVER_H - -class SaveState; - -class StateSaver { - StateSaver(); - -public: - enum { SS_SHIFT = 2 }; - enum { SS_DIV = 1 << 2 }; - enum { SS_WIDTH = 160 >> SS_SHIFT }; - enum { SS_HEIGHT = 144 >> SS_SHIFT }; - - static void saveState(const SaveState &state, const char *filename); - static bool loadState(SaveState &state, const char *filename); -}; - -#endif diff --git a/supergameboy/libgambatte/src/video.cpp b/supergameboy/libgambatte/src/video.cpp deleted file mode 100644 index 875afa43..00000000 --- a/supergameboy/libgambatte/src/video.cpp +++ /dev/null @@ -1,1474 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "video.h" -#include "videoblitter.h" -#include "video/filters/filter.h" -#include "video/filters/catrom2x.h" -#include "video/filters/catrom3x.h" -#include "video/filters/kreed2xsai.h" -#include "video/filters/maxsthq2x.h" -#include "video/filters/maxsthq3x.h" -#include "filterinfo.h" -#include "savestate.h" -#include "video/basic_add_event.h" -#include -#include - -static void addEventIfActivated(event_queue &q, VideoEvent *const e, const unsigned long newTime) { - e->setTime(newTime); - - if (newTime != VideoEvent::DISABLED_TIME) - q.push(e); -} - -void LCD::setDmgPalette(unsigned long *const palette, const unsigned long *const dmgColors, const unsigned data) { - palette[0] = dmgColors[data & 3]; - palette[1] = dmgColors[data >> 2 & 3]; - palette[2] = dmgColors[data >> 4 & 3]; - palette[3] = dmgColors[data >> 6 & 3]; -} - -unsigned long LCD::gbcToRgb32(const unsigned bgr15) { - const unsigned long r = bgr15 & 0x1F; - const unsigned long g = bgr15 >> 5 & 0x1F; - const unsigned long b = bgr15 >> 10 & 0x1F; - - return ((r * 13 + g * 2 + b) >> 1) << 16 | ((g * 3 + b) << 9) | ((r * 3 + g * 2 + b * 11) >> 1); -} - -unsigned long LCD::gbcToRgb16(const unsigned bgr15) { - const unsigned r = bgr15 & 0x1F; - const unsigned g = bgr15 >> 5 & 0x1F; - const unsigned b = bgr15 >> 10 & 0x1F; - - return (((r * 13 + g * 2 + b + 8) << 7) & 0xF800) | ((g * 3 + b + 1) >> 1) << 5 | ((r * 3 + g * 2 + b * 11 + 8) >> 4); -} - -unsigned long LCD::gbcToUyvy(const unsigned bgr15) { - const unsigned r5 = bgr15 & 0x1F; - const unsigned g5 = bgr15 >> 5 & 0x1F; - const unsigned b5 = bgr15 >> 10 & 0x1F; - - // y = (r5 * 926151 + g5 * 1723530 + b5 * 854319) / 510000 + 16; - // u = (b5 * 397544 - r5 * 68824 - g5 * 328720) / 225930 + 128; - // v = (r5 * 491176 - g5 * 328720 - b5 * 162456) / 178755 + 128; - - const unsigned long y = (r5 * 116 + g5 * 216 + b5 * 107 + 16 * 64 + 32) >> 6; - const unsigned long u = (b5 * 225 - r5 * 39 - g5 * 186 + 128 * 128 + 64) >> 7; - const unsigned long v = (r5 * 176 - g5 * 118 - b5 * 58 + 128 * 64 + 32) >> 6; - -#ifdef WORDS_BIGENDIAN - return u << 24 | y << 16 | v << 8 | y; -#else - return y << 24 | v << 16 | y << 8 | u; -#endif -} - -LCD::LCD(const unsigned char *const oamram, const unsigned char *const vram_in) : - vram(vram_in), - bgTileData(vram), - bgTileMap(vram + 0x1800), - wdTileMap(bgTileMap), - vBlitter(NULL), - filter(NULL), - dbuffer(NULL), - draw(NULL), - gbcToFormat(gbcToRgb32), - dmgColors(dmgColorsRgb32), - lastUpdate(0), - videoCycles(0), - dpitch(0), - winYPos(0), - m3EventQueue(11, VideoEventComparer()), - irqEventQueue(4, VideoEventComparer()), - vEventQueue(5, VideoEventComparer()), - win(m3EventQueue, lyCounter, m3ExtraCycles), - scxReader(m3EventQueue, /*wyReg.reader3(),*/ win.wxReader, win.we.enableChecker(), win.we.disableChecker(), m3ExtraCycles), - spriteMapper(m3ExtraCycles, lyCounter, oamram), - m3ExtraCycles(spriteMapper, scxReader, win), - breakEvent(drawStartCycle, scReadOffset), - mode3Event(m3EventQueue, vEventQueue, mode0Irq, irqEvent), - lycIrq(ifReg), - mode0Irq(lyCounter, lycIrq, m3ExtraCycles, ifReg), - mode1Irq(ifReg), - mode2Irq(lyCounter, lycIrq, ifReg), - irqEvent(irqEventQueue), - drawStartCycle(90), - scReadOffset(90), - ifReg(0), - tileIndexSign(0), - statReg(0), - doubleSpeed(false), - enabled(false), - cgb(false), - bgEnable(false), - spriteEnable(false) -{ - std::memset(bgpData, 0, sizeof(bgpData)); - std::memset(objpData, 0, sizeof(objpData)); - - for (unsigned i = 0; i < sizeof(dmgColorsRgb32) / sizeof(unsigned long); ++i) { - setDmgPaletteColor(i, (3 - (i & 3)) * 85 * 0x010101); - } - - filters.push_back(NULL); - filters.push_back(new Catrom2x); - filters.push_back(new Catrom3x); - filters.push_back(new Kreed_2xSaI); - filters.push_back(new MaxSt_Hq2x); - filters.push_back(new MaxSt_Hq3x); - - reset(oamram, false); - setDoubleSpeed(false); - - setVideoFilter(0); -} - -LCD::~LCD() { -// delete []filter_buffer; - for (std::size_t i = 0; i < filters.size(); ++i) - delete filters[i]; -} - -void LCD::reset(const unsigned char *const oamram, const bool cgb_in) { - cgb = cgb_in; - spriteMapper.reset(oamram, cgb_in); - setDBuffer(); -} - -void LCD::resetVideoState(const unsigned long cycleCounter) { - vEventQueue.clear(); - m3EventQueue.clear(); - irqEventQueue.clear(); - - lyCounter.reset(videoCycles, lastUpdate); - vEventQueue.push(&lyCounter); - - spriteMapper.resetVideoState(); - m3ExtraCycles.invalidateCache(); - - addEventIfActivated(m3EventQueue, &scxReader, ScxReader::schedule(lyCounter, cycleCounter)); - addEventIfActivated(m3EventQueue, &win.wxReader, WxReader::schedule(scxReader.scxAnd7(), lyCounter, win.wxReader, cycleCounter)); - addEventIfActivated(m3EventQueue, &win.wyReg.reader1(), Wy::WyReader1::schedule(lyCounter, cycleCounter)); - addEventIfActivated(m3EventQueue, &win.wyReg.reader2(), Wy::WyReader2::schedule(lyCounter, cycleCounter)); - addEventIfActivated(m3EventQueue, &win.wyReg.reader3(), Wy::WyReader3::schedule(win.wxReader.getSource(), scxReader, lyCounter, cycleCounter)); - addEventIfActivated(m3EventQueue, &win.wyReg.reader4(), Wy::WyReader4::schedule(lyCounter, cycleCounter)); - addEventIfActivated(m3EventQueue, &spriteMapper, SpriteMapper::schedule(lyCounter, cycleCounter)); - addEventIfActivated(m3EventQueue, &win.we.enableChecker(), We::WeEnableChecker::schedule(scxReader.scxAnd7(), win.wxReader.wx(), lyCounter, cycleCounter)); - addEventIfActivated(m3EventQueue, &win.we.disableChecker(), We::WeDisableChecker::schedule(scxReader.scxAnd7(), win.wxReader.wx(), lyCounter, cycleCounter)); - addEventIfActivated(m3EventQueue, &win.weMasterChecker, WeMasterChecker::schedule(win.wyReg.getSource(), win.we.getSource(), lyCounter, cycleCounter)); - - addEventIfActivated(irqEventQueue, &lycIrq, LycIrq::schedule(statReg, lycIrq.lycReg(), lyCounter, cycleCounter)); - addEventIfActivated(irqEventQueue, &mode0Irq, Mode0Irq::schedule(statReg, m3ExtraCycles, lyCounter, cycleCounter)); - addEventIfActivated(irqEventQueue, &mode1Irq, Mode1Irq::schedule(lyCounter, cycleCounter)); - addEventIfActivated(irqEventQueue, &mode2Irq, Mode2Irq::schedule(statReg, lyCounter, cycleCounter)); - - addEventIfActivated(vEventQueue, &mode3Event, Mode3Event::schedule(m3EventQueue)); - addEventIfActivated(vEventQueue, &irqEvent, IrqEvent::schedule(irqEventQueue)); - addEventIfActivated(vEventQueue, &scReader, ScReader::schedule(lastUpdate, videoCycles, scReadOffset, doubleSpeed)); - addEventIfActivated(vEventQueue, &breakEvent, BreakEvent::schedule(lyCounter)); -} - -void LCD::setDoubleSpeed(const bool ds) { - doubleSpeed = ds; - lyCounter.setDoubleSpeed(doubleSpeed); - scxReader.setDoubleSpeed(doubleSpeed); - win.wxReader.setDoubleSpeed(doubleSpeed); - scReader.setDoubleSpeed(doubleSpeed); - breakEvent.setDoubleSpeed(doubleSpeed); - lycIrq.setDoubleSpeed(doubleSpeed); - mode1Irq.setDoubleSpeed(doubleSpeed); -} - -void LCD::setStatePtrs(SaveState &state) { - state.ppu.drawBuffer.set(static_cast(dbuffer), dpitch * 144); - state.ppu.bgpData.set(bgpData, sizeof bgpData); - state.ppu.objpData.set(objpData, sizeof objpData); - spriteMapper.setStatePtrs(state); -} - -void LCD::saveState(SaveState &state) const { - state.ppu.videoCycles = videoCycles; - state.ppu.winYPos = winYPos; - state.ppu.drawStartCycle = drawStartCycle; - state.ppu.scReadOffset = scReadOffset; - state.ppu.lcdc = enabled << 7 | ((wdTileMap - vram - 0x1800) >> 4) | (tileIndexSign ^ 0x80) >> 3 | ((bgTileMap - vram - 0x1800) >> 7) | spriteEnable << 1 | bgEnable; - state.ppu.lycIrqSkip = lycIrq.skips(); - - spriteMapper.saveState(state); - scReader.saveState(state); - scxReader.saveState(state); - win.weMasterChecker.saveState(state); - win.wxReader.saveState(state); - win.wyReg.saveState(state); - win.we.saveState(state); -} - -void LCD::loadState(const SaveState &state, const unsigned char *oamram) { - statReg = state.mem.ioamhram.get()[0x141]; - ifReg = 0; - - setDoubleSpeed(cgb & state.mem.ioamhram.get()[0x14D] >> 7); - - lastUpdate = state.cpu.cycleCounter; - videoCycles = std::min(state.ppu.videoCycles, 70223ul); - winYPos = state.ppu.winYPos > 143 ? 0xFF : state.ppu.winYPos; - drawStartCycle = state.ppu.drawStartCycle; - scReadOffset = state.ppu.scReadOffset; - enabled = state.ppu.lcdc >> 7 & 1; - wdTileMap = vram + 0x1800 + (state.ppu.lcdc >> 6 & 1) * 0x400; - tileIndexSign = ((state.ppu.lcdc >> 4 & 1) ^ 1) * 0x80; - bgTileData = vram + ((state.ppu.lcdc >> 4 & 1) ^ 1) * 0x1000; - bgTileMap = vram + 0x1800 + (state.ppu.lcdc >> 3 & 1) * 0x400; - spriteEnable = state.ppu.lcdc >> 1 & 1; - bgEnable = state.ppu.lcdc & 1; - - lycIrq.setM2IrqEnabled(statReg >> 5 & 1); - lycIrq.setLycReg(state.mem.ioamhram.get()[0x145]); - lycIrq.setSkip(state.ppu.lycIrqSkip); - mode1Irq.setM1StatIrqEnabled(statReg >> 4 & 1); - - win.we.setSource(state.mem.ioamhram.get()[0x140] >> 5 & 1); - spriteMapper.setLargeSpritesSource(state.mem.ioamhram.get()[0x140] >> 2 & 1); - scReader.setScySource(state.mem.ioamhram.get()[0x142]); - scxReader.setSource(state.mem.ioamhram.get()[0x143]); - breakEvent.setScxSource(state.mem.ioamhram.get()[0x143]); - scReader.setScxSource(state.mem.ioamhram.get()[0x143]); - win.wyReg.setSource(state.mem.ioamhram.get()[0x14A]); - win.wxReader.setSource(state.mem.ioamhram.get()[0x14B]); - - spriteMapper.loadState(state); - scReader.loadState(state); - scxReader.loadState(state); - win.weMasterChecker.loadState(state); - win.wxReader.loadState(state); - win.wyReg.loadState(state); - win.we.loadState(state); - - resetVideoState(lastUpdate); - spriteMapper.oamChange(oamram, lastUpdate); - refreshPalettes(); -} - -void LCD::refreshPalettes() { - if (cgb) { - for (unsigned i = 0; i < 8 * 8; i += 2) { - bgPalette[i >> 1] = (*gbcToFormat)(bgpData[i] | bgpData[i + 1] << 8); - spPalette[i >> 1] = (*gbcToFormat)(objpData[i] | objpData[i + 1] << 8); - } - } else { - setDmgPalette(bgPalette, dmgColors, bgpData[0]); - setDmgPalette(spPalette, dmgColors + 4, objpData[0]); - setDmgPalette(spPalette + 4, dmgColors + 8, objpData[1]); - } -} - -void LCD::setVideoBlitter(Gambatte::VideoBlitter *vb) { - vBlitter = vb; - - if (vBlitter) { - vBlitter->setBufferDimensions(videoWidth(), videoHeight()); - pb = vBlitter->inBuffer(); - } - - setDBuffer(); -} - -void LCD::videoBufferChange() { - if (vBlitter) { - pb = vBlitter->inBuffer(); - setDBuffer(); - } -} - -void LCD::setVideoFilter(const unsigned n) { - const unsigned oldw = videoWidth(); - const unsigned oldh = videoHeight(); - - if (filter) - filter->outit(); - - filter = filters.at(n < filters.size() ? n : 0); - - if (filter) { - filter->init(); - } - - if (vBlitter && (oldw != videoWidth() || oldh != videoHeight())) { - vBlitter->setBufferDimensions(videoWidth(), videoHeight()); - pb = vBlitter->inBuffer(); - } - - setDBuffer(); -} - -std::vector LCD::filterInfo() const { - std::vector v; - - static Gambatte::FilterInfo noInfo = { "None", 160, 144 }; - v.push_back(&noInfo); - - for (std::size_t i = 1; i < filters.size(); ++i) - v.push_back(&filters[i]->info()); - - return v; -} - -unsigned int LCD::videoWidth() const { - return filter ? filter->info().outWidth : 160; -} - -unsigned int LCD::videoHeight() const { - return filter ? filter->info().outHeight : 144; -} - -template -static void blitOsdElement(Gambatte::uint_least32_t *d, const Gambatte::uint_least32_t *s, const unsigned width, unsigned h, const unsigned dpitch, Blend blend) { - while (h--) { - for (unsigned w = width; w--;) { - if (*s != 0xFFFFFFFF) - *d = blend(*s, *d); - - ++d; - ++s; - } - - d += dpitch - width; - } -} - -template -struct Blend { - enum { SW = weight - 1 }; - enum { LOWMASK = SW * 0x010101ul }; - Gambatte::uint_least32_t operator()(const Gambatte::uint_least32_t s, const Gambatte::uint_least32_t d) const { - return (s * SW + d - (((s & LOWMASK) * SW + (d & LOWMASK)) & LOWMASK)) / weight; - } -}; - -void LCD::updateScreen(const unsigned long cycleCounter) { - update(cycleCounter); - - if (pb.pixels) { - if (dbuffer && osdElement.get()) { - const Gambatte::uint_least32_t *s = osdElement->update(); - - if (s) { - Gambatte::uint_least32_t *d = static_cast(dbuffer) + osdElement->y() * dpitch + osdElement->x(); - - switch (osdElement->opacity()) { - case OsdElement::SEVEN_EIGHTHS: blitOsdElement(d, s, osdElement->w(), osdElement->h(), dpitch, Blend<8>()); break; - case OsdElement::THREE_FOURTHS: blitOsdElement(d, s, osdElement->w(), osdElement->h(), dpitch, Blend<4>()); break; - } - } else - osdElement.reset(); - } - - if (filter) { - filter->filter(static_cast(tmpbuf ? tmpbuf : pb.pixels), (tmpbuf ? videoWidth() : pb.pitch)); - } - - if (tmpbuf) { - switch (pb.format) { - case Gambatte::PixelBuffer::RGB16: - rgb32ToRgb16(tmpbuf, static_cast(pb.pixels), videoWidth(), videoHeight(), pb.pitch); - break; - case Gambatte::PixelBuffer::UYVY: - rgb32ToUyvy(tmpbuf, static_cast(pb.pixels), videoWidth(), videoHeight(), pb.pitch); - break; - default: break; - } - } - - if (vBlitter) - vBlitter->blit(); - } -} - -template -static void clear(T *buf, const unsigned long color, const unsigned dpitch) { - unsigned lines = 144; - - while (lines--) { - std::fill_n(buf, 160, color); - buf += dpitch; - } -} - -void LCD::enableChange(const unsigned long cycleCounter) { - update(cycleCounter); - enabled = !enabled; - - if (enabled) { - lycIrq.setSkip(false); - videoCycles = 0; - lastUpdate = cycleCounter; - winYPos = 0xFF; - win.weMasterChecker.unset(); - spriteMapper.enableDisplay(cycleCounter); - resetVideoState(cycleCounter); - } - - if (!enabled && dbuffer) { - const unsigned long color = cgb ? (*gbcToFormat)(0xFFFF) : dmgColors[0]; - - clear(static_cast(dbuffer), color, dpitch); - -// updateScreen(cycleCounter); - } -} - -//FIXME: needs testing -void LCD::lyWrite(const unsigned long cycleCounter) { - update(cycleCounter); - lycIrq.setSkip(false); - videoCycles = 0; - lastUpdate = cycleCounter; - winYPos = 0xFF; - win.weMasterChecker.unset(); - resetVideoState(cycleCounter); - -// if ((statReg & 0x40) && lycIrq.lycReg() == 0) -// ifReg |= 2; -} - -void LCD::preResetCounter(const unsigned long cycleCounter) { - preSpeedChange(cycleCounter); -} - -void LCD::postResetCounter(const unsigned long oldCC, const unsigned long cycleCounter) { - lastUpdate = cycleCounter - (oldCC - lastUpdate); - spriteMapper.resetCycleCounter(oldCC, cycleCounter); - resetVideoState(cycleCounter); -} - -void LCD::preSpeedChange(const unsigned long cycleCounter) { - update(cycleCounter); - spriteMapper.preCounterChange(cycleCounter); -} - -void LCD::postSpeedChange(const unsigned long cycleCounter) { - setDoubleSpeed(!doubleSpeed); - - resetVideoState(cycleCounter); -} - -bool LCD::isMode0IrqPeriod(const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - const unsigned timeToNextLy = lyCounter.time() - cycleCounter; - - return /*memory.enable_display && */lyCounter.ly() < 144 && timeToNextLy <= (456U - (169 + doubleSpeed * 3U + 80 + m3ExtraCycles(lyCounter.ly()) + 1 - doubleSpeed)) << doubleSpeed && timeToNextLy > 4; -} - -bool LCD::isMode2IrqPeriod(const unsigned long cycleCounter) { - if (cycleCounter >= lyCounter.time()) - update(cycleCounter); - - const unsigned nextLy = lyCounter.time() - cycleCounter; - - return /*memory.enable_display && */lyCounter.ly() < 143 && nextLy <= 4; -} - -bool LCD::isLycIrqPeriod(const unsigned lycReg, const unsigned endCycles, const unsigned long cycleCounter) { - if (cycleCounter >= lyCounter.time()) - update(cycleCounter); - - const unsigned timeToNextLy = lyCounter.time() - cycleCounter; - - return (lyCounter.ly() == lycReg && timeToNextLy > endCycles) || (lycReg == 0 && lyCounter.ly() == 153 && timeToNextLy <= (456U - 8U) << doubleSpeed); -} - -bool LCD::isMode1IrqPeriod(const unsigned long cycleCounter) { - if (cycleCounter >= lyCounter.time()) - update(cycleCounter); - - const unsigned timeToNextLy = lyCounter.time() - cycleCounter; - - return lyCounter.ly() > 143 && (lyCounter.ly() < 153 || timeToNextLy > 4U - doubleSpeed * 4U); -} - -bool LCD::isHdmaPeriod(const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - const unsigned timeToNextLy = lyCounter.time() - cycleCounter; - - return /*memory.enable_display && */lyCounter.ly() < 144 && timeToNextLy <= ((456U - (169U + doubleSpeed * 3U + 80U + m3ExtraCycles(lyCounter.ly()) + 2 - doubleSpeed)) << doubleSpeed) && timeToNextLy > 4; -} - -unsigned long LCD::nextHdmaTime(const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - unsigned line = lyCounter.ly(); - int next = static_cast(169 + doubleSpeed * 3U + 80 + 2 - doubleSpeed) - static_cast(lyCounter.lineCycles(cycleCounter)); - - if (line < 144 && next + static_cast(m3ExtraCycles(line)) <= 0) { - next += 456; - ++line; - } - - if (line > 143) { - next += (154 - line) * 456; - line = 0; - } - - next += m3ExtraCycles(line); - - return cycleCounter + (static_cast(next) << doubleSpeed); -} - -bool LCD::vramAccessible(const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - bool accessible = true; - - if (enabled && lyCounter.ly() < 144) { - const unsigned lineCycles = lyCounter.lineCycles(cycleCounter); - - if (lineCycles > 79 && lineCycles < 80 + 169 + doubleSpeed * 3U + m3ExtraCycles(lyCounter.ly())) - accessible = false; - } - - return accessible; -} - -bool LCD::cgbpAccessible(const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - bool accessible = true; - - if (enabled && lyCounter.ly() < 144) { - const unsigned lineCycles = lyCounter.lineCycles(cycleCounter); - - if (lineCycles > 79U + doubleSpeed && lineCycles < 80U + 169U + doubleSpeed * 3U + m3ExtraCycles(lyCounter.ly()) + 4U - doubleSpeed * 2U) - accessible = false; - } - - return accessible; -} - -bool LCD::oamAccessible(const unsigned long cycleCounter) { - bool accessible = true; - - if (enabled) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - accessible = spriteMapper.oamAccessible(cycleCounter); - } - - return accessible; -} - -void LCD::weChange(const bool newValue, const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - win.we.setSource(newValue); - addFixedtimeEvent(m3EventQueue, &win.weMasterChecker, WeMasterChecker::schedule(win.wyReg.getSource(), newValue, lyCounter, cycleCounter)); - addFixedtimeEvent(m3EventQueue, &win.we.disableChecker(), We::WeDisableChecker::schedule(scxReader.scxAnd7(), win.wxReader.wx(), lyCounter, cycleCounter)); - addFixedtimeEvent(m3EventQueue, &win.we.enableChecker(), We::WeEnableChecker::schedule(scxReader.scxAnd7(), win.wxReader.wx(), lyCounter, cycleCounter)); - addUnconditionalEvent(vEventQueue, &mode3Event, Mode3Event::schedule(m3EventQueue)); -} - -void LCD::wxChange(const unsigned newValue, const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - win.wxReader.setSource(newValue); - addEvent(m3EventQueue, &win.wxReader, WxReader::schedule(scxReader.scxAnd7(), lyCounter, win.wxReader, cycleCounter)); - - if (win.wyReg.reader3().time() != VideoEvent::DISABLED_TIME) - addEvent(m3EventQueue, &win.wyReg.reader3(), Wy::WyReader3::schedule(win.wxReader.getSource(), scxReader, lyCounter, cycleCounter)); - - addUnconditionalEvent(vEventQueue, &mode3Event, Mode3Event::schedule(m3EventQueue)); -} - -void LCD::wyChange(const unsigned newValue, const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - win.wyReg.setSource(newValue); - addFixedtimeEvent(m3EventQueue, &win.wyReg.reader1(), Wy::WyReader1::schedule(lyCounter, cycleCounter)); - addFixedtimeEvent(m3EventQueue, &win.wyReg.reader2(), Wy::WyReader2::schedule(lyCounter, cycleCounter)); - addFixedtimeEvent(m3EventQueue, &win.wyReg.reader3(), Wy::WyReader3::schedule(win.wxReader.getSource(), scxReader, lyCounter, cycleCounter)); - addFixedtimeEvent(m3EventQueue, &win.wyReg.reader4(), Wy::WyReader4::schedule(lyCounter, cycleCounter)); - addEvent(m3EventQueue, &win.weMasterChecker, WeMasterChecker::schedule(win.wyReg.getSource(), win.we.getSource(), lyCounter, cycleCounter)); - addUnconditionalEvent(vEventQueue, &mode3Event, Mode3Event::schedule(m3EventQueue)); -} - -void LCD::scxChange(const unsigned newScx, const unsigned long cycleCounter) { - update(cycleCounter); - - scxReader.setSource(newScx); - breakEvent.setScxSource(newScx); - scReader.setScxSource(newScx); - - addFixedtimeEvent(m3EventQueue, &scxReader, ScxReader::schedule(lyCounter, cycleCounter)); - - if (win.wyReg.reader3().time() != VideoEvent::DISABLED_TIME) - addEvent(m3EventQueue, &win.wyReg.reader3(), Wy::WyReader3::schedule(win.wxReader.getSource(), scxReader, lyCounter, cycleCounter)); - - addUnconditionalEvent(vEventQueue, &mode3Event, Mode3Event::schedule(m3EventQueue)); - - const unsigned lineCycles = lyCounter.lineCycles(cycleCounter); - - if (lineCycles < 82U + doubleSpeed * 4U) - drawStartCycle = 90 + doubleSpeed * 4U + (newScx & 7); - else - addFixedtimeEvent(vEventQueue, &breakEvent, BreakEvent::schedule(lyCounter)); - - if (lineCycles < 86U + doubleSpeed * 2U) - scReadOffset = std::max(drawStartCycle - (newScx & 7), 90U + doubleSpeed * 4U); - - addEvent(vEventQueue, &scReader, ScReader::schedule(lastUpdate, videoCycles, scReadOffset, doubleSpeed)); -} - -void LCD::scyChange(const unsigned newValue, const unsigned long cycleCounter) { - update(cycleCounter); - - scReader.setScySource(newValue); - addFixedtimeEvent(vEventQueue, &scReader, ScReader::schedule(lastUpdate, videoCycles, scReadOffset, doubleSpeed)); -} - -void LCD::spriteSizeChange(const bool newLarge, const unsigned long cycleCounter) { - update(cycleCounter); - - spriteMapper.oamChange(cycleCounter); - spriteMapper.setLargeSpritesSource(newLarge); - addFixedtimeEvent(m3EventQueue, &spriteMapper, SpriteMapper::schedule(lyCounter, cycleCounter)); - addUnconditionalEvent(vEventQueue, &mode3Event, Mode3Event::schedule(m3EventQueue)); -} - -void LCD::oamChange(const unsigned long cycleCounter) { - update(cycleCounter); - - spriteMapper.oamChange(cycleCounter); - addFixedtimeEvent(m3EventQueue, &spriteMapper, SpriteMapper::schedule(lyCounter, cycleCounter)); - addUnconditionalEvent(vEventQueue, &mode3Event, Mode3Event::schedule(m3EventQueue)); -} - -void LCD::oamChange(const unsigned char *const oamram, const unsigned long cycleCounter) { - update(cycleCounter); - - spriteMapper.oamChange(oamram, cycleCounter); - addFixedtimeEvent(m3EventQueue, &spriteMapper, SpriteMapper::schedule(lyCounter, cycleCounter)); - addUnconditionalEvent(vEventQueue, &mode3Event, Mode3Event::schedule(m3EventQueue)); -} - -void LCD::wdTileMapSelectChange(const bool newValue, const unsigned long cycleCounter) { - update(cycleCounter); - - wdTileMap = vram + 0x1800 + newValue * 0x400; -} - -void LCD::bgTileMapSelectChange(const bool newValue, const unsigned long cycleCounter) { - update(cycleCounter); - - bgTileMap = vram + 0x1800 + newValue * 0x400; -} - -void LCD::bgTileDataSelectChange(const bool newValue, const unsigned long cycleCounter) { - update(cycleCounter); - - tileIndexSign = (newValue ^ 1) * 0x80; - bgTileData = vram + (newValue ^ 1) * 0x1000; -} - -void LCD::spriteEnableChange(const bool newValue, const unsigned long cycleCounter) { - update(cycleCounter); - - spriteEnable = newValue; -} - -void LCD::bgEnableChange(const bool newValue, const unsigned long cycleCounter) { - update(cycleCounter); - - bgEnable = newValue; -} - -void LCD::lcdstatChange(const unsigned data, const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - const unsigned old = statReg; - statReg = data; - mode1Irq.setM1StatIrqEnabled(data & 0x10); - lycIrq.setM2IrqEnabled(data & 0x20); - - if (!enabled) - return; - - const bool lycIrqPeriod = isLycIrqPeriod(lycIrq.lycReg(), lycIrq.lycReg() == 153 ? lyCounter.lineTime() - (4 << (doubleSpeed*2)) : 4 - doubleSpeed * 4U, cycleCounter); - - if (lycIrq.lycReg() < 154 && ((data ^ old) & 0x40)) { - if (data & 0x40) { - if (lycIrqPeriod) - ifReg |= 2; - } else { - if (!doubleSpeed && lycIrq.time() - cycleCounter < 5 && (!(old & 0x20) || lycIrq.lycReg() > 143 || lycIrq.lycReg() == 0)) - ifReg |= 2; - } - - addFixedtimeEvent(irqEventQueue, &lycIrq, LycIrq::schedule(data, lycIrq.lycReg(), lyCounter, cycleCounter)); - } - - if ((((data & 0x10) && !(old & 0x10)) || !cgb) && !((old & 0x40) && lycIrqPeriod) && isMode1IrqPeriod(cycleCounter)) - ifReg |= 2; - - if ((data ^ old) & 0x08) { - if (data & 0x08) { - if (!((old & 0x40) && lycIrqPeriod) && isMode0IrqPeriod(cycleCounter)) - ifReg |= 2; - } else { - if (mode0Irq.time() - cycleCounter < 3 && (lycIrq.time() == VideoEvent::DISABLED_TIME || lyCounter.ly() != lycIrq.lycReg())) - ifReg |= 2; - } - - addFixedtimeEvent(irqEventQueue, &mode0Irq, Mode0Irq::schedule(data, m3ExtraCycles, lyCounter, cycleCounter)); - } - - if ((data & 0x28) == 0x20 && (old & 0x28) != 0x20 && isMode2IrqPeriod(cycleCounter)) { - ifReg |= 2; - } - - addFixedtimeEvent(irqEventQueue, &mode2Irq, Mode2Irq::schedule(data, lyCounter, cycleCounter)); - - addEvent(vEventQueue, &irqEvent, IrqEvent::schedule(irqEventQueue)); -} - -void LCD::lycRegChange(const unsigned data, const unsigned long cycleCounter) { - if (data == lycIrq.lycReg()) - return; - - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - const unsigned old = lycIrq.lycReg(); - lycIrq.setLycReg(data); - - if (!(enabled && (statReg & 0x40))) - return; - - if (!doubleSpeed && lycIrq.time() - cycleCounter < 5 && (!(statReg & 0x20) || old > 143 || old == 0)) - ifReg |= 2; - - addEvent(irqEventQueue, &lycIrq, LycIrq::schedule(statReg, lycIrq.lycReg(), lyCounter, cycleCounter)); - - if (data < 154) { - if (isLycIrqPeriod(data, data == 153 ? lyCounter.lineTime() - doubleSpeed * 8U : 8, cycleCounter)) - ifReg |= 2; - - if (lycIrq.isSkipPeriod(cycleCounter, doubleSpeed)) - lycIrq.setSkip(true); - } - - addEvent(vEventQueue, &irqEvent, IrqEvent::schedule(irqEventQueue)); -} - -unsigned long LCD::nextIrqEvent() const { - if (!enabled) - return VideoEvent::DISABLED_TIME; - - if (mode0Irq.time() != VideoEvent::DISABLED_TIME && mode3Event.time() < irqEvent.time()) - return mode3Event.time(); - - return irqEvent.time(); -} - -unsigned LCD::getIfReg(const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - return ifReg; -} - -void LCD::setIfReg(const unsigned ifReg_in, const unsigned long cycleCounter) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - ifReg = ifReg_in; -} - -unsigned LCD::get_stat(const unsigned lycReg, const unsigned long cycleCounter) { - unsigned stat = 0; - - if (enabled) { - if (cycleCounter >= vEventQueue.top()->time()) - update(cycleCounter); - - const unsigned timeToNextLy = lyCounter.time() - cycleCounter; - - if (lyCounter.ly() > 143) { - if (lyCounter.ly() < 153 || timeToNextLy > 4 - doubleSpeed * 4U) - stat = 1; - } else { - const unsigned lineCycles = 456 - (timeToNextLy >> doubleSpeed); - - if (lineCycles < 80) { - if (!spriteMapper.inactivePeriodAfterDisplayEnable(cycleCounter)) - stat = 2; - } else if (lineCycles < 80 + 169 + doubleSpeed * 3U + m3ExtraCycles(lyCounter.ly())) - stat = 3; - } - - if ((lyCounter.ly() == lycReg && timeToNextLy > 4 - doubleSpeed * 4U) || - (lycReg == 0 && lyCounter.ly() == 153 && timeToNextLy >> doubleSpeed <= 456 - 8)) { - stat |= 4; - } - } - - return stat; -} - -void LCD::do_update(unsigned cycles) { - if (lyCounter.ly() < 144) { - const unsigned lineCycles = lyCounter.lineCycles(lastUpdate); - const unsigned xpos = lineCycles < drawStartCycle ? 0 : lineCycles - drawStartCycle; - - const unsigned endLineCycles = lineCycles + cycles; - unsigned endX = endLineCycles < drawStartCycle ? 0 : endLineCycles - drawStartCycle; - - if (endX > 160) - endX = 160; - - if (xpos < endX) - (this->*draw)(xpos, lyCounter.ly(), endX); - } else if (lyCounter.ly() == 144) { - winYPos = 0xFF; - //scy[0] = scy[1] = memory.fastread(0xFF42); - //scx[0] = scx[1] = memory.fastread(0xFF43); - win.weMasterChecker.unset(); - } - - videoCycles += cycles; - - if (videoCycles >= 70224U) - videoCycles -= 70224U; -} - -inline void LCD::event() { - vEventQueue.top()->doEvent(); - - if (vEventQueue.top()->time() == VideoEvent::DISABLED_TIME) - vEventQueue.pop(); - else - vEventQueue.modify_root(vEventQueue.top()); -} - -void LCD::update(const unsigned long cycleCounter) { - if (!enabled) - return; - - for (;;) { - const unsigned cycles = (std::max(std::min(cycleCounter, static_cast(vEventQueue.top()->time())), lastUpdate) - lastUpdate) >> doubleSpeed; - do_update(cycles); - lastUpdate += cycles << doubleSpeed; - - if (cycleCounter >= vEventQueue.top()->time()) - event(); - else - break; - } -} - -void LCD::setDBuffer() { - tmpbuf.reset(pb.format == Gambatte::PixelBuffer::RGB32 ? 0 : videoWidth() * videoHeight()); - - if (cgb) - draw = &LCD::cgb_draw; - else - draw = &LCD::dmg_draw; - - gbcToFormat = &gbcToRgb32; - dmgColors = dmgColorsRgb32; - - if (filter) { - dbuffer = filter->inBuffer(); - dpitch = filter->inPitch(); - } else if (pb.format == Gambatte::PixelBuffer::RGB32) { - dbuffer = pb.pixels; - dpitch = pb.pitch; - } else { - dbuffer = tmpbuf; - dpitch = 160; - } - - if (dbuffer == NULL) - draw = &LCD::null_draw; - - refreshPalettes(); -} - -void LCD::setDmgPaletteColor(const unsigned index, const unsigned long rgb32) { - dmgColorsRgb32[index] = rgb32; - dmgColorsRgb16[index] = rgb32ToRgb16(rgb32); - dmgColorsUyvy[index] = ::rgb32ToUyvy(rgb32); -} - -void LCD::setDmgPaletteColor(const unsigned palNum, const unsigned colorNum, const unsigned long rgb32) { - if (palNum > 2 || colorNum > 3) - return; - - setDmgPaletteColor((palNum * 4) | colorNum, rgb32); - refreshPalettes(); -} - -void LCD::null_draw(unsigned /*xpos*/, const unsigned ypos, const unsigned endX) { - const bool enableWindow = win.enabled(ypos); - - if (enableWindow && winYPos == 0xFF) - winYPos = /*ypos - wyReg.value()*/ 0; - - if (endX == 160) { - if (enableWindow) - ++winYPos; - } -} - -template -void LCD::cgb_draw(unsigned xpos, const unsigned ypos, const unsigned endX) { - const unsigned effectiveScx = scReader.scx(); - - const bool enableWindow = win.enabled(ypos); - - if (enableWindow && winYPos == 0xFF) - winYPos = /*ypos - wyReg.value()*/ 0; - - T *const bufLine = static_cast(dbuffer) + ypos * static_cast(dpitch); - - if (!(enableWindow && win.wxReader.wx() <= xpos + 7)) { - const unsigned fby = scReader.scy() + ypos /*& 0xFF*/; - const unsigned end = std::min(enableWindow ? win.wxReader.wx() - 7 : 160U, endX); - - cgb_bg_drawPixels(bufLine, xpos, end, scxReader.scxAnd7(), ((xpos + effectiveScx) & ~7) + ((xpos + drawStartCycle - scReadOffset) & 7), - bgTileMap + (fby & 0xF8) * 4, bgTileData, fby & 7); - } - - if (enableWindow && endX + 7 > win.wxReader.wx()) { - const unsigned start = std::max(win.wxReader.wx() < 7 ? 0U : (win.wxReader.wx() - 7), xpos); - - cgb_bg_drawPixels(bufLine, start, endX, 7u - win.wxReader.wx(), start + (7u - win.wxReader.wx()), - wdTileMap + (winYPos & 0xF8) * 4, bgTileData, winYPos & 7); - } - - if (endX == 160) { - if (spriteEnable) - cgb_drawSprites(bufLine, ypos); - - if (enableWindow) - ++winYPos; - } -} - -template -void LCD::dmg_draw(unsigned xpos, const unsigned ypos, const unsigned endX) { - const unsigned effectiveScx = scReader.scx(); - - const bool enableWindow = win.enabled(ypos); - - if (enableWindow && winYPos == 0xFF) - winYPos = /*ypos - wyReg.value()*/ 0; - - T *const bufLine = static_cast(dbuffer) + ypos * static_cast(dpitch); - - if (bgEnable) { - if (!(enableWindow && win.wxReader.wx() <= xpos + 7)) { - const unsigned fby = scReader.scy() + ypos /*& 0xFF*/; - const unsigned end = std::min(enableWindow ? win.wxReader.wx() - 7 : 160U, endX); - - bg_drawPixels(bufLine, xpos, end, scxReader.scxAnd7(), ((xpos + effectiveScx) & ~7) + ((xpos + drawStartCycle - scReadOffset) & 7), - bgTileMap + (fby & 0xF8) * 4, bgTileData + (fby & 7) * 2); - } - - if (enableWindow && endX + 7 > win.wxReader.wx()) { - const unsigned start = std::max(win.wxReader.wx() < 7 ? 0U : (win.wxReader.wx() - 7), xpos); - - bg_drawPixels(bufLine, start, endX, 7u - win.wxReader.wx(), start + (7u - win.wxReader.wx()), - wdTileMap + (winYPos & 0xF8) * 4, bgTileData + (winYPos & 7) * 2); - } - } else - std::fill_n(bufLine + xpos, endX - xpos, bgPalette[0]); - - if (endX == 160) { - if (spriteEnable) - drawSprites(bufLine, ypos); - - if (enableWindow) - ++winYPos; - } -} - -#define FLIP(u8) ( (((u8) & 0x01) << 7) | (((u8) & 0x02) << 5) | (((u8) & 0x04) << 3) | (((u8) & 0x08) << 1) | \ -(((u8) & 0x10) >> 1) | (((u8) & 0x20) >> 3) | (((u8) & 0x40) >> 5) | (((u8) & 0x80) >> 7) ) - -#define FLIP_ROW(n) FLIP((n)|0x0), FLIP((n)|0x1), FLIP((n)|0x2), FLIP((n)|0x3), FLIP((n)|0x4), FLIP((n)|0x5), FLIP((n)|0x6), FLIP((n)|0x7), \ -FLIP((n)|0x8), FLIP((n)|0x9), FLIP((n)|0xA), FLIP((n)|0xB), FLIP((n)|0xC), FLIP((n)|0xD), FLIP((n)|0xE), FLIP((n)|0xF) - -static const unsigned char xflipt[0x100] = { - FLIP_ROW(0x00), FLIP_ROW(0x10), FLIP_ROW(0x20), FLIP_ROW(0x30), - FLIP_ROW(0x40), FLIP_ROW(0x50), FLIP_ROW(0x60), FLIP_ROW(0x70), - FLIP_ROW(0x80), FLIP_ROW(0x90), FLIP_ROW(0xA0), FLIP_ROW(0xB0), - FLIP_ROW(0xC0), FLIP_ROW(0xD0), FLIP_ROW(0xE0), FLIP_ROW(0xF0) -}; - -#undef FLIP_ROW -#undef FLIP - -#define PREP(u8) (u8) - -#define EXPAND(u8) ((PREP(u8) << 7 & 0x4000) | (PREP(u8) << 6 & 0x1000) | (PREP(u8) << 5 & 0x0400) | (PREP(u8) << 4 & 0x0100) | \ - (PREP(u8) << 3 & 0x0040) | (PREP(u8) << 2 & 0x0010) | (PREP(u8) << 1 & 0x0004) | (PREP(u8) & 0x0001)) - -#define EXPAND_ROW(n) EXPAND((n)|0x0), EXPAND((n)|0x1), EXPAND((n)|0x2), EXPAND((n)|0x3), \ - EXPAND((n)|0x4), EXPAND((n)|0x5), EXPAND((n)|0x6), EXPAND((n)|0x7), \ - EXPAND((n)|0x8), EXPAND((n)|0x9), EXPAND((n)|0xA), EXPAND((n)|0xB), \ - EXPAND((n)|0xC), EXPAND((n)|0xD), EXPAND((n)|0xE), EXPAND((n)|0xF) - -#define EXPAND_TABLE EXPAND_ROW(0x00), EXPAND_ROW(0x10), EXPAND_ROW(0x20), EXPAND_ROW(0x30), \ - EXPAND_ROW(0x40), EXPAND_ROW(0x50), EXPAND_ROW(0x60), EXPAND_ROW(0x70), \ - EXPAND_ROW(0x80), EXPAND_ROW(0x90), EXPAND_ROW(0xA0), EXPAND_ROW(0xB0), \ - EXPAND_ROW(0xC0), EXPAND_ROW(0xD0), EXPAND_ROW(0xE0), EXPAND_ROW(0xF0) - -static const unsigned short expand_lut[0x200] = { - EXPAND_TABLE, - -#undef PREP -#define PREP(u8) (((u8) << 7 & 0x80) | ((u8) << 5 & 0x40) | ((u8) << 3 & 0x20) | ((u8) << 1 & 0x10) | \ - ((u8) >> 1 & 0x08) | ((u8) >> 3 & 0x04) | ((u8) >> 5 & 0x02) | ((u8) >> 7 & 0x01)) - - EXPAND_TABLE -}; - -#undef EXPAND_TABLE -#undef EXPAND_ROW -#undef EXPAND -#undef PREP - -//shoud work for the window too, if -wx is passed as scx. -//tilemap and tiledata must point to the areas in the first vram bank -//the second vram bank has to be placed immediately after the first one in memory (0x4000 continous bytes that cover both). -//tilemap needs to be offset to the right line -template -void LCD::cgb_bg_drawPixels(T * const buffer_line, unsigned xpos, const unsigned end, const unsigned scx, unsigned tilemappos, - const unsigned char *const tilemap, const unsigned char *const tiledata, const unsigned tileline) -{ - const unsigned sign = tileIndexSign; - unsigned shift = (7 - ((scx + xpos) & 7)) * 2; - T *buf = buffer_line + xpos; - T *const bufend = buffer_line + end; - - while (buf < bufend) { - if ((tilemappos & 7) || bufend - buf < 8) { - const unsigned char *const maptmp = tilemap + (tilemappos >> 3 & 0x1F); - const unsigned attributes = maptmp[0x2000]; - const unsigned char *const dataptr = tiledata + (attributes << 10 & 0x2000) + - maptmp[0] * 16 - (maptmp[0] & sign) * 32 + ((attributes & 0x40) ? 7 - tileline : tileline) * 2; - const unsigned short *const exp_lut = expand_lut + (attributes << 3 & 0x100); - - const unsigned data = exp_lut[dataptr[0]] + exp_lut[dataptr[1]] * 2; - const unsigned long *const palette = bgPalette + (attributes & 7) * 4; - - do { - *buf++ = palette[data >> shift & 3]; - shift = (shift - 2) & 15; - } while ((++tilemappos & 7) && buf < bufend); - } - - while (bufend - buf > 7) { - const unsigned char *const maptmp = tilemap + (tilemappos >> 3 & 0x1F); - const unsigned attributes = maptmp[0x2000]; - const unsigned char *const dataptr = tiledata + (attributes << 10 & 0x2000) + - maptmp[0] * 16 - (maptmp[0] & sign) * 32 + ((attributes & 0x40) ? 7 - tileline : tileline) * 2; - const unsigned short *const exp_lut = expand_lut + (attributes << 3 & 0x100); - - const unsigned data = exp_lut[dataptr[0]] + exp_lut[dataptr[1]] * 2; - const unsigned long *const palette = bgPalette + (attributes & 7) * 4; - - buf[0] = palette[data >> shift & 3]; - buf[1] = palette[data >> ((shift - 2) & 15) & 3]; - buf[2] = palette[data >> ((shift - 4) & 15) & 3]; - buf[3] = palette[data >> ((shift - 6) & 15) & 3]; - buf[4] = palette[data >> ((shift - 8) & 15) & 3]; - buf[5] = palette[data >> ((shift - 10) & 15) & 3]; - buf[6] = palette[data >> ((shift - 12) & 15) & 3]; - buf[7] = palette[data >> ((shift - 14) & 15) & 3]; - - buf += 8; - tilemappos += 8; - } - } -} - -static unsigned cgb_prioritizedBG_mask(const unsigned spx, const unsigned bgStart, const unsigned bgEnd, const unsigned scx, - const unsigned char *const tilemap, const unsigned char *const tiledata, const unsigned tileline, const unsigned sign) { - const unsigned spStart = spx < bgStart + 8 ? bgStart + 8 - spx : 0; - - unsigned bgbyte; - - { - const unsigned pos = scx + spx - 8 + spStart; - const unsigned char *maptmp = tilemap + (pos >> 3 & 0x1F); - unsigned tile = maptmp[0]; - unsigned attributes = maptmp[0x2000]; - - const unsigned char *const data = tiledata + (attributes << 10 & 0x2000) + - tile * 16 - (tile & sign) * 32 + ((attributes & 0x40) ? 7 - tileline : tileline) * 2; - - bgbyte = (attributes & 0x20) ? xflipt[data[0] | data[1]] : (data[0] | data[1]); - - const unsigned offset = pos & 7; - - if (offset) { - bgbyte <<= offset; - maptmp = tilemap + (((pos >> 3) + 1) & 0x1F); - tile = maptmp[0]; - attributes = maptmp[0x2000]; - - const unsigned char *const data = tiledata + (attributes << 10 & 0x2000) + - tile * 16 - (tile & sign) * 32 + ((attributes & 0x40) ? 7 - tileline : tileline) * 2; - - bgbyte |= ((attributes & 0x20) ? xflipt[data[0] | data[1]] : (data[0] | data[1])) >> (8 - offset); - } - } - - bgbyte >>= spStart; - const unsigned spEnd = spx > bgEnd ? bgEnd + 8 - spx : 8; - const unsigned mask = ~bgbyte | 0xFF >> spEnd; - - return mask; -} - -static unsigned cgb_toplayerBG_mask(const unsigned spx, const unsigned bgStart, const unsigned bgEnd, const unsigned scx, - const unsigned char *const tilemap, const unsigned char *const tiledata, const unsigned tileline, const unsigned sign) { - const unsigned spStart = spx < bgStart + 8 ? bgStart + 8 - spx : 0; - - unsigned bgbyte = 0; - - { - const unsigned pos = scx + spx - 8 + spStart; - const unsigned char *maptmp = tilemap + (pos >> 3 & 0x1F); - unsigned attributes = maptmp[0x2000]; - - if (attributes & 0x80) { - const unsigned tile = maptmp[0]; - - const unsigned char *const data = tiledata + (attributes << 10 & 0x2000) + - tile * 16 - (tile & sign) * 32 + ((attributes & 0x40) ? 7 - tileline : tileline) * 2; - - bgbyte = (attributes & 0x20) ? xflipt[data[0] | data[1]] : (data[0] | data[1]); - } - - const unsigned offset = pos & 7; - - if (offset) { - bgbyte <<= offset; - maptmp = tilemap + (((pos >> 3) + 1) & 0x1F); - attributes = maptmp[0x2000]; - - if (attributes & 0x80) { - const unsigned tile = maptmp[0]; - - const unsigned char *const data = tiledata + (attributes << 10 & 0x2000) + - tile * 16 - (tile & sign) * 32 + ((attributes & 0x40) ? 7 - tileline : tileline) * 2; - - bgbyte |= ((attributes & 0x20) ? xflipt[data[0] | data[1]] : (data[0] | data[1])) >> (8 - offset); - } - } - } - - bgbyte >>= spStart; - const unsigned spEnd = spx > bgEnd ? bgEnd + 8 - spx : 8; - const unsigned mask = ~bgbyte | 0xFF >> spEnd; - - return mask; -} - -template -void LCD::cgb_drawSprites(T * const buffer_line, const unsigned ypos) { - const unsigned scy = scReader.scy() + ypos /*& 0xFF*/; - const unsigned wx = win.wxReader.wx() < 7 ? 0 : win.wxReader.wx() - 7; - const bool enableWindow = win.enabled(ypos); - const unsigned char *const spriteMapLine = spriteMapper.sprites(ypos); - - for (int i = spriteMapper.numSprites(ypos) - 1; i >= 0; --i) { - const unsigned spNrX2 = spriteMapLine[i]; - const unsigned spx = spriteMapper.posbuf()[spNrX2 + 1]; - - if (spx < 168 && spx) { - unsigned spLine = ypos + 16 - spriteMapper.posbuf()[spNrX2]; - unsigned spTile = spriteMapper.oamram()[spNrX2 * 2 + 2]; - const unsigned attributes = spriteMapper.oamram()[spNrX2 * 2 + 3]; - - if (spriteMapper.largeSprites(spNrX2 >> 1)) { - if (attributes & 0x40) //yflip - spLine = 15 - spLine; - - if (spLine < 8) - spTile &= 0xFE; - else { - spLine -= 8; - spTile |= 0x01; - } - } else { - if (attributes & 0x40) //yflip - spLine = 7 - spLine; - } - - const unsigned char *const data = vram + ((attributes * 0x400) & 0x2000) + spTile * 16 + spLine * 2; - - unsigned byte1 = data[0]; - unsigned byte2 = data[1]; - - if (attributes & 0x20) { - byte1 = xflipt[byte1]; - byte2 = xflipt[byte2]; - } - - //(Sprites with priority-bit are still allowed to cover other sprites according to GBdev-faq.) - if (bgEnable) { - unsigned mask = 0xFF; - - if (attributes & 0x80) { - if (!(enableWindow && (wx == 0 || spx >= wx + 8u))) - mask = cgb_prioritizedBG_mask(spx, 0, enableWindow ? wx : 160, scReader.scx(), - bgTileMap + ((scy & 0xF8) << 2), bgTileData, scy & 7, tileIndexSign); - if (enableWindow && spx > wx) - mask &= cgb_prioritizedBG_mask(spx, wx, 160, 0u - wx, wdTileMap + ((winYPos & 0xF8) << 2), bgTileData, winYPos & 7, tileIndexSign); - } else { - if (!(enableWindow && (wx == 0 || spx >= wx + 8u))) - mask = cgb_toplayerBG_mask(spx, 0, enableWindow ? wx : 160, scReader.scx(), - bgTileMap + ((scy & 0xF8) << 2), bgTileData, scy & 7, tileIndexSign); - if (enableWindow && spx > wx) - mask &= cgb_toplayerBG_mask(spx, wx, 160, 0u - wx, wdTileMap + ((winYPos & 0xF8) << 2), bgTileData, winYPos & 7, tileIndexSign); - } - - byte1 &= mask; - byte2 &= mask; - } - - const unsigned bytes = expand_lut[byte1] + expand_lut[byte2] * 2; - const unsigned long *const palette = spPalette + (attributes & 7) * 4; - - if (spx > 7 && spx < 161) { - T * const buf = buffer_line + spx - 8; - unsigned color; - - if ((color = bytes >> 14 )) - buf[0] = palette[color]; - if ((color = bytes >> 12 & 3)) - buf[1] = palette[color]; - if ((color = bytes >> 10 & 3)) - buf[2] = palette[color]; - if ((color = bytes >> 8 & 3)) - buf[3] = palette[color]; - if ((color = bytes >> 6 & 3)) - buf[4] = palette[color]; - if ((color = bytes >> 4 & 3)) - buf[5] = palette[color]; - if ((color = bytes >> 2 & 3)) - buf[6] = palette[color]; - if ((color = bytes & 3)) - buf[7] = palette[color]; - } else { - const unsigned end = spx >= 160 ? 160 : spx; - unsigned xpos = spx <= 8 ? 0 : (spx - 8); - unsigned shift = (7 - (xpos + 8 - spx)) * 2; - - while (xpos < end) { - if (const unsigned color = bytes >> shift & 3) - buffer_line[xpos] = palette[color]; - - shift -= 2; - ++xpos; - } - } - } - } -} - - -//shoud work for the window too, if -wx is passed as scx. -//tilemap and tiledata need to be offset to the right line -template -void LCD::bg_drawPixels(T * const buffer_line, unsigned xpos, const unsigned end, const unsigned scx, unsigned tilemappos, - const unsigned char *const tilemap, const unsigned char *const tiledata) -{ - const unsigned sign = tileIndexSign; - unsigned shift = (7 - ((scx + xpos) & 7)) * 2; - T *buf = buffer_line + xpos; - T *const bufend = buffer_line + end; - - while (buf < bufend) { - if ((tilemappos & 7) || bufend - buf < 8) { - const unsigned tile = tilemap[tilemappos >> 3 & 0x1F]; - const unsigned char *const dataptr = tiledata + tile * 16 - (tile & sign) * 32; - const unsigned data = expand_lut[dataptr[0]] + expand_lut[dataptr[1]] * 2; - - do { - *buf++ = bgPalette[data >> shift & 3]; - shift = (shift - 2) & 15; - } while ((++tilemappos & 7) && buf < bufend); - } - - while (bufend - buf > 7) { - const unsigned tile = tilemap[tilemappos >> 3 & 0x1F]; - const unsigned char *const dataptr = tiledata + tile * 16 - (tile & sign) * 32; - const unsigned data = expand_lut[dataptr[0]] + expand_lut[dataptr[1]] * 2; - buf[0] = bgPalette[data >> shift & 3]; - buf[1] = bgPalette[data >> ((shift - 2) & 15) & 3]; - buf[2] = bgPalette[data >> ((shift - 4) & 15) & 3]; - buf[3] = bgPalette[data >> ((shift - 6) & 15) & 3]; - buf[4] = bgPalette[data >> ((shift - 8) & 15) & 3]; - buf[5] = bgPalette[data >> ((shift - 10) & 15) & 3]; - buf[6] = bgPalette[data >> ((shift - 12) & 15) & 3]; - buf[7] = bgPalette[data >> ((shift - 14) & 15) & 3]; - buf += 8; - tilemappos += 8; - } - } -} - -static unsigned prioritizedBG_mask(const unsigned spx, const unsigned bgStart, const unsigned bgEnd, const unsigned scx, - const unsigned char *const tilemap, const unsigned char *const tiledata, const unsigned sign) { - const unsigned spStart = spx < bgStart + 8 ? bgStart + 8 - spx : 0; - - unsigned bgbyte; - - { - const unsigned pos = scx + spx - 8 + spStart; - unsigned tile = tilemap[pos >> 3 & 0x1F]; - const unsigned char *data = tiledata + tile * 16 - (tile & sign) * 32; - bgbyte = data[0] | data[1]; - const unsigned offset = pos & 7; - - if (offset) { - bgbyte <<= offset; - tile = tilemap[((pos >> 3) + 1) & 0x1F]; - data = tiledata + tile * 16 - (tile & sign) * 32; - bgbyte |= (data[0] | data[1]) >> (8 - offset); - } - } - - bgbyte >>= spStart; - const unsigned spEnd = spx > bgEnd ? bgEnd + 8 - spx : 8; - const unsigned mask = ~bgbyte | 0xFF >> spEnd; - - return mask; -} - -template -void LCD::drawSprites(T * const buffer_line, const unsigned ypos) { - const unsigned scy = scReader.scy() + ypos /*& 0xFF*/; - const unsigned wx = win.wxReader.wx() < 7 ? 0 : win.wxReader.wx() - 7; - const bool enableWindow = win.enabled(ypos); - const unsigned char *const spriteMapLine = spriteMapper.sprites(ypos); - - for (int i = spriteMapper.numSprites(ypos) - 1; i >= 0; --i) { - const unsigned spNrX2 = spriteMapLine[i]; - const unsigned spx = spriteMapper.posbuf()[spNrX2 + 1]; - - if (spx < 168 && spx) { - unsigned spLine = ypos + 16 - spriteMapper.posbuf()[spNrX2]; - unsigned spTile = spriteMapper.oamram()[spNrX2 * 2 + 2]; - const unsigned attributes = spriteMapper.oamram()[spNrX2 * 2 + 3]; - - if (spriteMapper.largeSprites(spNrX2 >> 1)) { - if (attributes & 0x40) //yflip - spLine = 15 - spLine; - - if (spLine < 8) - spTile &= 0xFE; - else { - spLine -= 8; - spTile |= 0x01; - } - } else { - if (attributes & 0x40) //yflip - spLine = 7 - spLine; - } - - const unsigned char *const data = vram + spTile * 16 + spLine * 2; - - unsigned byte1 = data[0]; - unsigned byte2 = data[1]; - - if (attributes & 0x20) { - byte1 = xflipt[byte1]; - byte2 = xflipt[byte2]; - } - - //(Sprites with priority-bit are still allowed to cover other sprites according to GBdev-faq.) - if (attributes & 0x80) { - unsigned mask = 0xFF; - - if (bgEnable && !(enableWindow && (wx == 0 || spx >= wx + 8u))) - mask = prioritizedBG_mask(spx, 0, enableWindow ? wx : 160, scReader.scx(), - bgTileMap + ((scy & 0xF8) << 2), bgTileData + ((scy & 7) << 1), tileIndexSign); - if (enableWindow && spx > wx) - mask &= prioritizedBG_mask(spx, wx, 160, 0u - wx, wdTileMap + ((winYPos & 0xF8) << 2), bgTileData + ((winYPos & 7) << 1), tileIndexSign); - - byte1 &= mask; - byte2 &= mask; - } - - const unsigned bytes = expand_lut[byte1] + expand_lut[byte2] * 2; - const unsigned long *const palette = spPalette + ((attributes >> 2) & 4); - - if (spx > 7 && spx < 161) { - T * const buf = buffer_line + spx - 8; - unsigned color; - - if ((color = bytes >> 14 )) - buf[0] = palette[color]; - if ((color = bytes >> 12 & 3)) - buf[1] = palette[color]; - if ((color = bytes >> 10 & 3)) - buf[2] = palette[color]; - if ((color = bytes >> 8 & 3)) - buf[3] = palette[color]; - if ((color = bytes >> 6 & 3)) - buf[4] = palette[color]; - if ((color = bytes >> 4 & 3)) - buf[5] = palette[color]; - if ((color = bytes >> 2 & 3)) - buf[6] = palette[color]; - if ((color = bytes & 3)) - buf[7] = palette[color]; - } else { - const unsigned end = spx >= 160 ? 160 : spx; - unsigned xpos = spx <= 8 ? 0 : (spx - 8); - unsigned shift = (7 - (xpos + 8 - spx)) * 2; - - while (xpos < end) { - if (const unsigned color = bytes >> shift & 3) - buffer_line[xpos] = palette[color]; - - shift -= 2; - ++xpos; - } - } - } - } -} diff --git a/supergameboy/libgambatte/src/video.h b/supergameboy/libgambatte/src/video.h deleted file mode 100644 index 7271d1b1..00000000 --- a/supergameboy/libgambatte/src/video.h +++ /dev/null @@ -1,293 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef VIDEO_H -#define VIDEO_H - -namespace Gambatte { -class VideoBlitter; -struct FilterInfo; -} - -class Filter; -class SaveState; - -#include -#include -#include "event_queue.h" -#include "videoblitter.h" -#include "array.h" -#include "int.h" -#include "colorconversion.h" -#include "osd_element.h" - -#include "video/video_event_comparer.h" -#include "video/ly_counter.h" -#include "video/window.h" -#include "video/scx_reader.h" -#include "video/sprite_mapper.h" -#include "video/sc_reader.h" -#include "video/break_event.h" -#include "video/mode3_event.h" - -#include "video/lyc_irq.h" -#include "video/mode0_irq.h" -#include "video/mode1_irq.h" -#include "video/mode2_irq.h" -#include "video/irq_event.h" -#include "video/m3_extra_cycles.h" - -class LCD { - //static const uint8_t xflipt[0x100]; - unsigned long dmgColorsRgb32[3 * 4]; - unsigned long dmgColorsRgb16[3 * 4]; - unsigned long dmgColorsUyvy[3 * 4]; - - unsigned long bgPalette[8 * 4]; - unsigned long spPalette[8 * 4]; - - unsigned char bgpData[8 * 8]; - unsigned char objpData[8 * 8]; - - const unsigned char *const vram; - const unsigned char *bgTileData; - const unsigned char *bgTileMap; - const unsigned char *wdTileMap; - - Gambatte::VideoBlitter *vBlitter; - Filter *filter; - - void *dbuffer; - void (LCD::*draw)(unsigned xpos, unsigned ypos, unsigned endX); - unsigned long (*gbcToFormat)(unsigned bgr15); - const unsigned long *dmgColors; - - unsigned long lastUpdate; - unsigned long videoCycles; - - unsigned dpitch; - unsigned winYPos; - - event_queue m3EventQueue; - event_queue irqEventQueue; - event_queue vEventQueue; - - LyCounter lyCounter; - Window win; - ScxReader scxReader; - SpriteMapper spriteMapper; - M3ExtraCycles m3ExtraCycles; - ScReader scReader; - BreakEvent breakEvent; - Mode3Event mode3Event; - - LycIrq lycIrq; - Mode0Irq mode0Irq; - Mode1Irq mode1Irq; - Mode2Irq mode2Irq; - IrqEvent irqEvent; - - Gambatte::PixelBuffer pb; - Array tmpbuf; - Rgb32ToUyvy rgb32ToUyvy; - std::auto_ptr osdElement; - - std::vector filters; - - unsigned char drawStartCycle; - unsigned char scReadOffset; - unsigned char ifReg; - unsigned char tileIndexSign; - unsigned char statReg; - - bool doubleSpeed; - bool enabled; - bool cgb; - bool bgEnable; - bool spriteEnable; - - static void setDmgPalette(unsigned long *palette, const unsigned long *dmgColors, unsigned data); - void setDmgPaletteColor(unsigned index, unsigned long rgb32); - static unsigned long gbcToRgb32(unsigned bgr15); - static unsigned long gbcToRgb16(unsigned bgr15); - static unsigned long gbcToUyvy(unsigned bgr15); - - void refreshPalettes(); - void setDBuffer(); - void resetVideoState(unsigned long cycleCounter); - - void setDoubleSpeed(bool enabled); - - void event(); - - bool cgbpAccessible(unsigned long cycleCounter); - bool isMode0IrqPeriod(unsigned long cycleCounter); - bool isMode2IrqPeriod(unsigned long cycleCounter); - bool isLycIrqPeriod(unsigned lycReg, unsigned endCycles, unsigned long cycleCounter); - bool isMode1IrqPeriod(unsigned long cycleCounter); - - template void bg_drawPixels(T *buffer_line, unsigned xpos, unsigned end, unsigned scx, unsigned tilemappos, - const unsigned char *tilemap, const unsigned char *tiledata); - template void drawSprites(T *buffer_line, unsigned ypos); - - template void cgb_bg_drawPixels(T *buffer_line, unsigned xpos, unsigned end, unsigned scx, unsigned tilemappos, - const unsigned char *tilemap, const unsigned char *tiledata, unsigned tileline); - template void cgb_drawSprites(T *buffer_line, unsigned ypos); - - void null_draw(unsigned xpos, unsigned ypos, unsigned endX); - template void dmg_draw(unsigned xpos, unsigned ypos, unsigned endX); - template void cgb_draw(unsigned xpos, unsigned ypos, unsigned endX); - - void do_update(unsigned cycles); - -public: - void update(unsigned long cycleCounter); - - LCD(const unsigned char *oamram, const unsigned char *vram_in); - ~LCD(); - void reset(const unsigned char *oamram, bool cgb); - void setStatePtrs(SaveState &state); - void saveState(SaveState &state) const; - void loadState(const SaveState &state, const unsigned char *oamram); - void setVideoBlitter(Gambatte::VideoBlitter *vb); - void videoBufferChange(); - void setVideoFilter(unsigned n); - std::vector filterInfo() const; - unsigned videoWidth() const; - unsigned videoHeight() const; - void setDmgPaletteColor(unsigned palNum, unsigned colorNum, unsigned long rgb32); - - void setOsdElement(std::auto_ptr osdElement) { - this->osdElement = osdElement; - } - - void wdTileMapSelectChange(bool newValue, unsigned long cycleCounter); - void bgTileMapSelectChange(bool newValue, unsigned long cycleCounter); - void bgTileDataSelectChange(bool newValue, unsigned long cycleCounter); - void bgEnableChange(bool newValue, unsigned long cycleCounter); - void spriteEnableChange(bool newValue, unsigned long cycleCounter); - - void dmgBgPaletteChange(const unsigned data, const unsigned long cycleCounter) { - update(cycleCounter); - bgpData[0] = data; - setDmgPalette(bgPalette, dmgColors, data); - } - - void dmgSpPalette1Change(const unsigned data, const unsigned long cycleCounter) { - update(cycleCounter); - objpData[0] = data; - setDmgPalette(spPalette, dmgColors + 4, data); - } - - void dmgSpPalette2Change(const unsigned data, const unsigned long cycleCounter) { - update(cycleCounter); - objpData[1] = data; - setDmgPalette(spPalette + 4, dmgColors + 8, data); - } - - void cgbBgColorChange(unsigned index, const unsigned data, const unsigned long cycleCounter) { - if (bgpData[index] != data && cgbpAccessible(cycleCounter)) { - update(cycleCounter); - bgpData[index] = data; - index >>= 1; - bgPalette[index] = (*gbcToFormat)(bgpData[index << 1] | bgpData[(index << 1) + 1] << 8); - } - } - - void cgbSpColorChange(unsigned index, const unsigned data, const unsigned long cycleCounter) { - if (objpData[index] != data && cgbpAccessible(cycleCounter)) { - update(cycleCounter); - objpData[index] = data; - index >>= 1; - spPalette[index] = (*gbcToFormat)(objpData[index << 1] | objpData[(index << 1) + 1] << 8); - } - } - - unsigned cgbBgColorRead(const unsigned index, const unsigned long cycleCounter) { - return cgb & cgbpAccessible(cycleCounter) ? bgpData[index] : 0xFF; - } - - unsigned cgbSpColorRead(const unsigned index, const unsigned long cycleCounter) { - return cgb & cgbpAccessible(cycleCounter) ? objpData[index] : 0xFF; - } - - void updateScreen(unsigned long cc); - void enableChange(unsigned long cycleCounter); - void preResetCounter(unsigned long cycleCounter); - void postResetCounter(unsigned long oldCC, unsigned long cycleCounter); - void preSpeedChange(unsigned long cycleCounter); - void postSpeedChange(unsigned long cycleCounter); -// unsigned get_mode(unsigned cycleCounter) /*const*/; - bool vramAccessible(unsigned long cycleCounter); - bool oamAccessible(unsigned long cycleCounter); - void weChange(bool newValue, unsigned long cycleCounter); - void wxChange(unsigned newValue, unsigned long cycleCounter); - void wyChange(unsigned newValue, unsigned long cycleCounter); - void oamChange(unsigned long cycleCounter); - void oamChange(const unsigned char *oamram, unsigned long cycleCounter); - void scxChange(unsigned newScx, unsigned long cycleCounter); - void scyChange(unsigned newValue, unsigned long cycleCounter); - void spriteSizeChange(bool newLarge, unsigned long cycleCounter); - - void vramChange(const unsigned long cycleCounter) { - update(cycleCounter); - } - - unsigned get_stat(unsigned lycReg, unsigned long cycleCounter); - - unsigned getLyReg(const unsigned long cycleCounter) { - unsigned lyReg = 0; - - if (enabled) { - if (cycleCounter >= lyCounter.time()) - update(cycleCounter); - - lyReg = lyCounter.ly(); - - if (lyCounter.time() - cycleCounter <= 4) { - if (lyReg == 153) - lyReg = 0; - else - ++lyReg; - } else if (lyReg == 153) - lyReg = 0; - } - - return lyReg; - } - - unsigned long nextMode1IrqTime() const { - return mode1Irq.time(); - } - - void lyWrite(unsigned long cycleCounter); - void lcdstatChange(unsigned data, unsigned long cycleCounter); - void lycRegChange(unsigned data, unsigned long cycleCounter); - unsigned long nextIrqEvent() const; - unsigned getIfReg(unsigned long cycleCounter); - void setIfReg(unsigned ifReg_in, unsigned long cycleCounter); - - unsigned long nextHdmaTime(unsigned long cycleCounter); - bool isHdmaPeriod(unsigned long cycleCounter); - - unsigned long nextHdmaTimeInvalid() const { - return mode3Event.time(); - } -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/basic_add_event.cpp b/supergameboy/libgambatte/src/video/basic_add_event.cpp deleted file mode 100644 index 4bc57a09..00000000 --- a/supergameboy/libgambatte/src/video/basic_add_event.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "basic_add_event.h" -#include "../event_queue.h" - -void addEvent(event_queue &q, VideoEvent *const e, const unsigned long newTime) { - const unsigned long oldTime = e->time(); - - if (oldTime != newTime) { - e->setTime(newTime); - - if (newTime < oldTime) { - if (oldTime == VideoEvent::DISABLED_TIME) - q.push(e); - else - q.dec(e, e); - } else { - if (newTime == VideoEvent::DISABLED_TIME) - q.remove(e); - else - q.inc(e, e); - } - } -} - -void addUnconditionalEvent(event_queue &q, VideoEvent *const e, const unsigned long newTime) { - const unsigned long oldTime = e->time(); - - e->setTime(newTime); - - if (newTime < oldTime) { - if (oldTime == VideoEvent::DISABLED_TIME) - q.push(e); - else - q.dec(e, e); - } else if (oldTime != newTime) { - q.inc(e, e); - } -} - -void addFixedtimeEvent(event_queue &q, VideoEvent *const e, const unsigned long newTime) { - const unsigned long oldTime = e->time(); - - if (oldTime != newTime) { - e->setTime(newTime); - - if (oldTime == VideoEvent::DISABLED_TIME) - q.push(e); - else - q.remove(e); - } -} - -void addUnconditionalFixedtimeEvent(event_queue &q, VideoEvent *const e, const unsigned long newTime) { - if (e->time() == VideoEvent::DISABLED_TIME) { - e->setTime(newTime); - q.push(e); - } -} diff --git a/supergameboy/libgambatte/src/video/basic_add_event.h b/supergameboy/libgambatte/src/video/basic_add_event.h deleted file mode 100644 index 780d7191..00000000 --- a/supergameboy/libgambatte/src/video/basic_add_event.h +++ /dev/null @@ -1,56 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef BASIC_ADD_EVENT_H -#define BASIC_ADD_EVENT_H - -template class event_queue; - -#include "video_event.h" -#include "video_event_comparer.h" - -/*template -static inline void addEvent(T &event, const LyCounter &lyCounter, const unsigned long cycleCounter, event_queue &queue) { - if (event.time() == VideoEvent::DISABLED_TIME) { - event.schedule(lyCounter, cycleCounter); - queue.push(&event); - } -} - -template -static inline void addEvent(T &event, const unsigned data, const LyCounter &lyCounter, const unsigned long cycleCounter, event_queue &queue) { - if (event.time() == VideoEvent::DISABLED_TIME) { - event.schedule(data, lyCounter, cycleCounter); - queue.push(&event); - } -} - -template -static inline void addEvent(T &event, const unsigned data1, const unsigned data2, const LyCounter &lyCounter, const unsigned long cycleCounter, event_queue &queue) { - if (event.time() == VideoEvent::DISABLED_TIME) { - event.schedule(data1, data2, lyCounter, cycleCounter); - queue.push(&event); - } -}*/ - -void addEvent(event_queue &q, VideoEvent *e, unsigned long newTime); -void addUnconditionalEvent(event_queue &q, VideoEvent *e, unsigned long newTime); -void addFixedtimeEvent(event_queue &q, VideoEvent *e, unsigned long newTime); -void addUnconditionalFixedtimeEvent(event_queue &q, VideoEvent *e, unsigned long newTime); - -#endif diff --git a/supergameboy/libgambatte/src/video/break_event.cpp b/supergameboy/libgambatte/src/video/break_event.cpp deleted file mode 100644 index e6e7ffbf..00000000 --- a/supergameboy/libgambatte/src/video/break_event.cpp +++ /dev/null @@ -1,35 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "break_event.h" - -BreakEvent::BreakEvent(unsigned char &drawStartCycle_in, unsigned char &scReadOffset_in) : - VideoEvent(3), - drawStartCycle(drawStartCycle_in), - scReadOffset(scReadOffset_in) -{ - setDoubleSpeed(false); - setScxSource(0); -} - -void BreakEvent::doEvent() { - scReadOffset = baseCycle; - drawStartCycle = baseCycle + (scxSrc & 7); - - setTime(DISABLED_TIME); -} diff --git a/supergameboy/libgambatte/src/video/break_event.h b/supergameboy/libgambatte/src/video/break_event.h deleted file mode 100644 index 9e7dcb82..00000000 --- a/supergameboy/libgambatte/src/video/break_event.h +++ /dev/null @@ -1,59 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef BREAK_EVENT_H -#define BREAK_EVENT_H - -#include "video_event.h" -#include "ly_counter.h" -#include "basic_add_event.h" - -class BreakEvent : public VideoEvent { - unsigned char &drawStartCycle; - unsigned char &scReadOffset; - - unsigned char scxSrc; - unsigned char baseCycle; - -public: - BreakEvent(unsigned char &drawStartCycle_in, unsigned char &scReadOffset_in); - - void doEvent(); - - static unsigned long schedule(const LyCounter &lyCounter) { - return lyCounter.time(); - } - - void setDoubleSpeed(const bool dS) { - baseCycle = 90 + dS * 4; - } - - void setScxSource(const unsigned scxSrc_in) { - scxSrc = scxSrc_in; - } -}; - -static inline void addEvent(event_queue &q, BreakEvent *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, BreakEvent *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -#endif diff --git a/supergameboy/libgambatte/src/video/filters/catrom2x.cpp b/supergameboy/libgambatte/src/video/filters/catrom2x.cpp deleted file mode 100644 index 53a4c931..00000000 --- a/supergameboy/libgambatte/src/video/filters/catrom2x.cpp +++ /dev/null @@ -1,194 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "catrom2x.h" -#include "filterinfo.h" -#include - -struct Colorsum { - Gambatte::uint_least32_t r, g, b; -}; - -static void merge_columns(Gambatte::uint_least32_t *dest, const Colorsum *sums) { - unsigned w = 160; - - 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 unsigned pitch, const Gambatte::uint_least32_t *sline) { - Colorsum sums[163]; - - for (unsigned h = 144; h--;) { - { - const Gambatte::uint_least32_t *s = sline; - Colorsum *sum = sums; - unsigned n = 163; - - 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 = 163; - - 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*163]; - rsum -= pixel >> 16; - gsum -= pixel & 0x00FF00; - bsum -= pixel & 0x0000FF; - - pixel = s[1*163]; - rsum += (pixel >> 16) * 9; - gsum += (pixel & 0x00FF00) * 9; - bsum += (pixel & 0x0000FF) * 9; - - pixel = s[2*163]; - 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 += 163; - } -} - -Catrom2x::Catrom2x() { - buffer = NULL; -} - -Catrom2x::~Catrom2x() { - delete []buffer; -} - -void Catrom2x::init() { - delete []buffer; - - buffer = new Gambatte::uint_least32_t[147 * 163]; - std::memset(buffer, 0, 147ul * 163 * sizeof(Gambatte::uint_least32_t)); -} - -void Catrom2x::outit() { - delete []buffer; - buffer = NULL; -} - -const Gambatte::FilterInfo& Catrom2x::info() { - static Gambatte::FilterInfo fInfo = { "Bicubic Catmull-Rom Spline 2x", 160 * 2, 144 * 2 }; - - return fInfo; -} - -Gambatte::uint_least32_t* Catrom2x::inBuffer() { - return buffer + 164; -} - -unsigned Catrom2x::inPitch() { - return 163; -} - -void Catrom2x::filter(Gambatte::uint_least32_t *const dbuffer, const unsigned pitch) { - ::filter(dbuffer, pitch, buffer + 163); -} diff --git a/supergameboy/libgambatte/src/video/filters/catrom2x.h b/supergameboy/libgambatte/src/video/filters/catrom2x.h deleted file mode 100644 index df657f04..00000000 --- a/supergameboy/libgambatte/src/video/filters/catrom2x.h +++ /dev/null @@ -1,40 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef CATROM2X_H -#define CATROM2X_H - -#include "filter.h" - -struct FilterInfo; - -class Catrom2x : public Filter { - Gambatte::uint_least32_t *buffer; - -public: - Catrom2x(); - ~Catrom2x(); - void init(); - void outit(); - const Gambatte::FilterInfo& info(); - void filter(Gambatte::uint_least32_t *dbuffer, unsigned pitch); - Gambatte::uint_least32_t* inBuffer(); - unsigned inPitch(); -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/filters/catrom3x.cpp b/supergameboy/libgambatte/src/video/filters/catrom3x.cpp deleted file mode 100644 index 09a03f6a..00000000 --- a/supergameboy/libgambatte/src/video/filters/catrom3x.cpp +++ /dev/null @@ -1,360 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "catrom3x.h" -#include "filterinfo.h" -#include - -struct Colorsum { - Gambatte::uint_least32_t r, g, b; -}; - -static void merge_columns(Gambatte::uint_least32_t *dest, const Colorsum *sums) { - unsigned w = 160; - - 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; - else if (rsum > 6869) - rsum = 0xFF0000; - else { - rsum *= 607; - rsum <<= 2; - rsum += 0x008000; - rsum &= 0xFF0000; - } - - if (gsum & 0x80000000) - gsum = 0; - else if (gsum > 1758567) - gsum = 0xFF00; - else { - gsum *= 607; - gsum >>= 14; - gsum += 0x000080; - gsum &= 0x00FF00; - } - - if (bsum & 0x80000000) - bsum = 0; - else if (bsum > 6869) - bsum = 0xFF; - else { - bsum *= 607; - bsum += 8192; - bsum >>= 14; - } - - /*rsum/=27; - rsum<<=8; - gsum/=27; - gsum<<=5; - bsum<<=4; - bsum+=27; - bsum/=54; - rsum+=0x008000; - gsum+=0x000080; - - 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 * 21; - Gambatte::uint_least32_t gsum = sums[1].g * 21; - Gambatte::uint_least32_t bsum = sums[1].b * 21; - - rsum -= sums[0].r << 1; - gsum -= sums[0].g << 1; - bsum -= sums[0].b << 1; - - 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; - else if (rsum > 185578) - rsum = 0xFF0000; - else { - rsum *= 719; - rsum >>= 3; - rsum += 0x008000; - rsum &= 0xFF0000; - } - - if (gsum & 0x80000000) - gsum = 0; - else if (gsum > 47508223) - gsum = 0x00FF00; - else { - gsum >>= 8; - gsum *= 719; - gsum >>= 11; - gsum += 0x000080; - gsum &= 0x00FF00; - } - - if (bsum & 0x80000000) - bsum = 0; - else if (bsum > 185578) - bsum = 0x0000FF; - else { - bsum *= 719; - bsum += 0x040000; - bsum >>= 19; - } - - /*rsum/=729; - rsum<<=8; - gsum/=729; - gsum<<=5; - bsum<<=4; - bsum+=729; - bsum/=1458; - rsum+=0x008000; - gsum+=0x000080; - - 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 * 21; - gsum += sums[2].g * 21; - bsum += sums[2].b * 21; - - rsum -= sums[3].r << 1; - gsum -= sums[3].g << 1; - bsum -= sums[3].b << 1; - - if (rsum & 0x80000000) - rsum = 0; - else if (rsum > 185578) - rsum = 0xFF0000; - else { - rsum *= 719; - rsum >>= 3; - rsum += 0x008000; - rsum &= 0xFF0000; - } - - if (gsum & 0x80000000) - gsum = 0; - else if (gsum > 47508223) - gsum = 0xFF00; - else { - gsum >>= 8; - gsum *= 719; - gsum >>= 11; - gsum += 0x000080; - gsum &= 0x00FF00; - } - - if (bsum & 0x80000000) - bsum = 0; - else if (bsum > 185578) - bsum = 0x0000FF; - else { - bsum *= 719; - bsum += 0x040000; - bsum >>= 19; - } - - /*rsum/=729; - rsum<<=8; - gsum/=729; - gsum<<=5; - bsum<<=4; - bsum+=729; - bsum/=1458; - rsum+=0x008000; - gsum+=0x000080; - - 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 unsigned pitch, const Gambatte::uint_least32_t *sline) { - Colorsum sums[163]; - - for (unsigned h = 144; h--;) { - { - const Gambatte::uint_least32_t *s = sline; - Colorsum *sum = sums; - unsigned n = 163; - - while (n--) { - const unsigned long pixel = *s; - sum->r = (pixel >> 16) * 27; - sum->g = (pixel & 0x00FF00) * 27; - sum->b = (pixel & 0x0000FF) * 27; - - ++s; - ++sum; - } - } - - merge_columns(dline, sums); - dline += pitch; - - { - const Gambatte::uint_least32_t *s = sline; - Colorsum *sum = sums; - unsigned n = 163; - - while (n--) { - unsigned long pixel = *s; - unsigned long rsum = (pixel >> 16) * 21; - unsigned long gsum = (pixel & 0x00FF00) * 21; - unsigned long bsum = (pixel & 0x0000FF) * 21; - - pixel = s[-1 * 163]; - rsum -= (pixel >> 16) << 1; - pixel <<= 1; - gsum -= pixel & 0x01FE00; - bsum -= pixel & 0x0001FE; - - pixel = s[1 * 163]; - rsum += (pixel >> 16) * 9; - gsum += (pixel & 0x00FF00) * 9; - bsum += (pixel & 0x0000FF) * 9; - - pixel = s[2 * 163]; - 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; - - { - const Gambatte::uint_least32_t *s = sline; - Colorsum *sum = sums; - unsigned n = 163; - - 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 * 163]; - rsum -= pixel >> 16; - gsum -= pixel & 0x00FF00; - bsum -= pixel & 0x0000FF; - - pixel = s[1 * 163]; - rsum += (pixel >> 16) * 21; - gsum += (pixel & 0x00FF00) * 21; - bsum += (pixel & 0x0000FF) * 21; - - pixel = s[2 * 163]; - rsum -= (pixel >> 16) << 1; - pixel <<= 1; - gsum -= pixel & 0x01FE00; - bsum -= pixel & 0x0001FE; - - sum->r = rsum; - sum->g = gsum; - sum->b = bsum; - - ++s; - ++sum; - } - } - - merge_columns(dline, sums); - dline += pitch; - sline += 163; - } -} - -Catrom3x::Catrom3x() { - buffer = NULL; -} - -Catrom3x::~Catrom3x() { - delete []buffer; -} - -void Catrom3x::init() { - delete []buffer; - - buffer = new Gambatte::uint_least32_t[147 * 163]; - std::memset(buffer, 0, 147ul * 163 * sizeof(Gambatte::uint_least32_t)); -} - -void Catrom3x::outit() { - delete []buffer; - buffer = NULL; -} - -const Gambatte::FilterInfo& Catrom3x::info() { - static Gambatte::FilterInfo fInfo = { "Bicubic Catmull-Rom Spline 3x", 160 * 3, 144 * 3 }; - - return fInfo; -} - -Gambatte::uint_least32_t* Catrom3x::inBuffer() { - return buffer + 164; -} - -unsigned Catrom3x::inPitch() { - return 163; -} - -void Catrom3x::filter(Gambatte::uint_least32_t *const dbuffer, const unsigned pitch) { - ::filter(dbuffer, pitch, buffer + 163); -} diff --git a/supergameboy/libgambatte/src/video/filters/catrom3x.h b/supergameboy/libgambatte/src/video/filters/catrom3x.h deleted file mode 100644 index 64f47827..00000000 --- a/supergameboy/libgambatte/src/video/filters/catrom3x.h +++ /dev/null @@ -1,40 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef CATROM3X_H -#define CATROM3X_H - -#include "filter.h" - -struct FilterInfo; - -class Catrom3x : public Filter { - Gambatte::uint_least32_t *buffer; - -public: - Catrom3x(); - ~Catrom3x(); - void init(); - void outit(); - const Gambatte::FilterInfo& info(); - void filter(Gambatte::uint_least32_t *dbuffer, unsigned pitch); - Gambatte::uint_least32_t* inBuffer(); - unsigned inPitch(); -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/filters/filter.h b/supergameboy/libgambatte/src/video/filters/filter.h deleted file mode 100644 index 72e3bf7d..00000000 --- a/supergameboy/libgambatte/src/video/filters/filter.h +++ /dev/null @@ -1,39 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef FILTER_H -#define FILTER_H - -#include "int.h" - -namespace Gambatte { -struct FilterInfo; -} - -class Filter { -public: - virtual ~Filter() {} - virtual void init() {}; - virtual void outit() {}; - virtual const Gambatte::FilterInfo& info() = 0; - virtual void filter(Gambatte::uint_least32_t *dbuffer, unsigned pitch) = 0; - virtual Gambatte::uint_least32_t* inBuffer() = 0; - virtual unsigned inPitch() = 0; -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/filters/kreed2xsai.cpp b/supergameboy/libgambatte/src/video/filters/kreed2xsai.cpp deleted file mode 100644 index 70c261b3..00000000 --- a/supergameboy/libgambatte/src/video/filters/kreed2xsai.cpp +++ /dev/null @@ -1,243 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * Copyright (C) 1999 Derek Liauw Kie Fa (Kreed) * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "kreed2xsai.h" -#include "filterinfo.h" -#include - -static inline int getResult1(const unsigned long a, const unsigned long b, const unsigned long c, const unsigned long d) { - 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; -} - -static inline int getResult2(const unsigned long a, const unsigned long b, const unsigned long c, const unsigned long d) { - 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; -} - -static inline unsigned long interpolate(const unsigned long a, const unsigned long b) { - return (a + b - ((a ^ b) & 0x010101)) >> 1; -} - -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; -} - -static void filter(Gambatte::uint_least32_t *dstPtr, const unsigned dstPitch, - const Gambatte::uint_least32_t *srcPtr, const unsigned srcPitch, const unsigned width, unsigned height) -{ - while (height--) { - 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 - // H|C D|L - // M|N O|P - colorI = *(bP - srcPitch - 1); - 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 - && colorB != colorE && colorB == colorJ)) { - product = colorA; - } else { - product = interpolate(colorA, colorB); - } - - if ((colorA == colorG && colorC == colorO) || - (colorA == colorB && colorA == colorH - && colorG != colorC && colorC == colorM)) { - product1 = colorA; - } else { - product1 = interpolate(colorA, colorC); - } - product2 = colorA; - } else if (colorB == colorC && colorA != colorD) { - if ((colorB == colorF && colorA == colorH) || - (colorB == colorE && colorB == colorD - && colorA != colorF && colorA == colorI)) { - product = colorB; - } else { - product = interpolate(colorA, colorB); - } - - if ((colorC == colorH && colorA == colorF) || - (colorC == colorG && colorC == colorD - && colorA != colorH && colorA == colorI)) { - product1 = colorC; - } else { - product1 = interpolate(colorA, colorC); - } - product2 = colorB; - } else if (colorA == colorD && colorB == colorC) { - if (colorA == colorB) { - product = colorA; - product1 = colorA; - 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) - product2 = colorB; - else { - product2 = qInterpolate(colorA, colorB, colorC, colorD); - } - } - } else { - product2 = qInterpolate(colorA, colorB, colorC, colorD); - - if (colorA == colorC && colorA == colorF - && colorB != colorE && colorB == colorJ) { - product = colorA; - } else if (colorB == colorE && colorB == colorD - && colorA != colorF && colorA == colorI) { - product = colorB; - } else { - product = interpolate(colorA, colorB); - } - - if (colorA == colorB && colorA == colorH - && colorG != colorC && colorC == colorM) { - product1 = colorA; - } else if (colorC == colorG && colorC == colorD - && colorA != colorH && colorA == colorI) { - product1 = colorC; - } else { - product1 = interpolate(colorA, colorC); - } - } - *dP = colorA; - *(dP + 1) = product; - *(dP + dstPitch) = product1; - *(dP + dstPitch + 1) = product2; - - ++bP; - dP += 2; - } - - srcPtr += srcPitch; - dstPtr += dstPitch * 2; - } -} - -Kreed_2xSaI::Kreed_2xSaI() { - buffer = NULL; -} - -Kreed_2xSaI::~Kreed_2xSaI() { - delete []buffer; -} - -void Kreed_2xSaI::init() { - delete []buffer; - - buffer = new Gambatte::uint_least32_t[145 * 161]; - std::memset(buffer, 0, 145ul * 161 * sizeof(Gambatte::uint_least32_t)); -} - -void Kreed_2xSaI::outit() { - delete []buffer; - buffer = NULL; -} - -const Gambatte::FilterInfo& Kreed_2xSaI::info() { - static Gambatte::FilterInfo fInfo = { "Kreed's 2xSaI", 160 * 2, 144 * 2 }; - - return fInfo; -} - -Gambatte::uint_least32_t* Kreed_2xSaI::inBuffer() { - return buffer; -} - -unsigned Kreed_2xSaI::inPitch() { - return 161; -} - -void Kreed_2xSaI::filter(Gambatte::uint_least32_t *const dbuffer, const unsigned pitch) { - ::filter(dbuffer, pitch, buffer, 161, 160, 144); -} diff --git a/supergameboy/libgambatte/src/video/filters/kreed2xsai.h b/supergameboy/libgambatte/src/video/filters/kreed2xsai.h deleted file mode 100644 index f2feffc0..00000000 --- a/supergameboy/libgambatte/src/video/filters/kreed2xsai.h +++ /dev/null @@ -1,40 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef KREED2XSAI_H -#define KREED2XSAI_H - -#include "filter.h" - -struct FilterInfo; - -class Kreed_2xSaI : public Filter { - Gambatte::uint_least32_t *buffer; - -public: - Kreed_2xSaI(); - ~Kreed_2xSaI(); - void init(); - void outit(); - const Gambatte::FilterInfo& info(); - void filter(Gambatte::uint_least32_t *dbuffer, unsigned pitch); - Gambatte::uint_least32_t* inBuffer(); - unsigned inPitch(); -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/filters/maxsthq2x.cpp b/supergameboy/libgambatte/src/video/filters/maxsthq2x.cpp deleted file mode 100644 index a818d62a..00000000 --- a/supergameboy/libgambatte/src/video/filters/maxsthq2x.cpp +++ /dev/null @@ -1,2875 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * Copyright (C) 2003 MaxSt * - * maxst@hiend3d.com * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ -#include "maxsthq2x.h" -#include "filterinfo.h" -#include - -static /*inline*/ unsigned long Interp1(const unsigned long c1, const unsigned long c2) { - const unsigned long lowbits = ((c1 & 0x030303) * 3 + (c2 & 0x030303)) & 0x030303; - - return (c1 * 3 + c2 - lowbits) >> 2; -} - -static /*inline*/ unsigned long Interp2(const unsigned long c1, const unsigned long c2, const unsigned long c3) { - const unsigned long lowbits = ((c1 * 2 & 0x020202) + (c2 & 0x030303) + (c3 & 0x030303)) & 0x030303; - - return (c1 * 2 + c2 + c3 - lowbits) >> 2; -} - -static /*inline*/ unsigned long Interp6(const unsigned long c1, const unsigned long c2, const unsigned long c3) { - const unsigned long lowbits = ((c1 & 0x070707) * 5 + (c2 * 2 & 0x060606) + (c3 & 0x070707)) & 0x070707; - - return ((c1 * 5 + c2 * 2 + c3) - lowbits) >> 3; -} - -static /*inline*/ unsigned long Interp7(const unsigned long c1, const unsigned long c2, const unsigned long c3) { - const unsigned long lowbits = ((c1 & 0x070707) * 6 + (c2 & 0x070707) + (c3 & 0x070707)) & 0x070707; - - return ((c1 * 6 + c2 + c3) - lowbits) >> 3; -} - -static /*inline*/ unsigned long Interp9(unsigned long c1, const unsigned long c2, const unsigned long c3) { - const unsigned lowbits = ((c1 * 2 & 0x070707) + ((c2 & 0x070707) + (c3 & 0x070707)) * 3) & 0x070707; - - return (c1 * 2 + (c2 + c3) * 3 - lowbits) >> 3; -} - -static /*inline*/ unsigned long Interp10(const unsigned long c1, const unsigned long c2, const unsigned long c3) { - const unsigned lowbits = ((c1 & 0x0F0F0F) * 14 + (c2 & 0x0F0F0F) + (c3 & 0x0F0F0F)) & 0x0F0F0F; - - return (c1 * 14 + c2 + c3 - lowbits) >> 4; -} - -#define PIXEL00_0 *pOut = w[5]; -#define PIXEL00_10 *pOut = Interp1(w[5], w[1]); -#define PIXEL00_11 *pOut = Interp1(w[5], w[4]); -#define PIXEL00_12 *pOut = Interp1(w[5], w[2]); -#define PIXEL00_20 *pOut = Interp2(w[5], w[4], w[2]); -#define PIXEL00_21 *pOut = Interp2(w[5], w[1], w[2]); -#define PIXEL00_22 *pOut = Interp2(w[5], w[1], w[4]); -#define PIXEL00_60 *pOut = Interp6(w[5], w[2], w[4]); -#define PIXEL00_61 *pOut = Interp6(w[5], w[4], w[2]); -#define PIXEL00_70 *pOut = Interp7(w[5], w[4], w[2]); -#define PIXEL00_90 *pOut = Interp9(w[5], w[4], w[2]); -#define PIXEL00_100 *pOut = Interp10(w[5], w[4], w[2]); -#define PIXEL01_0 *(pOut+1) = w[5]; -#define PIXEL01_10 *(pOut+1) = Interp1(w[5], w[3]); -#define PIXEL01_11 *(pOut+1) = Interp1(w[5], w[2]); -#define PIXEL01_12 *(pOut+1) = Interp1(w[5], w[6]); -#define PIXEL01_20 *(pOut+1) = Interp2(w[5], w[2], w[6]); -#define PIXEL01_21 *(pOut+1) = Interp2(w[5], w[3], w[6]); -#define PIXEL01_22 *(pOut+1) = Interp2(w[5], w[3], w[2]); -#define PIXEL01_60 *(pOut+1) = Interp6(w[5], w[6], w[2]); -#define PIXEL01_61 *(pOut+1) = Interp6(w[5], w[2], w[6]); -#define PIXEL01_70 *(pOut+1) = Interp7(w[5], w[2], w[6]); -#define PIXEL01_90 *(pOut+1) = Interp9(w[5], w[2], w[6]); -#define PIXEL01_100 *(pOut+1) = Interp10(w[5], w[2], w[6]); -#define PIXEL10_0 *(pOut+dstPitch) = w[5]; -#define PIXEL10_10 *(pOut+dstPitch) = Interp1(w[5], w[7]); -#define PIXEL10_11 *(pOut+dstPitch) = Interp1(w[5], w[8]); -#define PIXEL10_12 *(pOut+dstPitch) = Interp1(w[5], w[4]); -#define PIXEL10_20 *(pOut+dstPitch) = Interp2(w[5], w[8], w[4]); -#define PIXEL10_21 *(pOut+dstPitch) = Interp2(w[5], w[7], w[4]); -#define PIXEL10_22 *(pOut+dstPitch) = Interp2(w[5], w[7], w[8]); -#define PIXEL10_60 *(pOut+dstPitch) = Interp6(w[5], w[4], w[8]); -#define PIXEL10_61 *(pOut+dstPitch) = Interp6(w[5], w[8], w[4]); -#define PIXEL10_70 *(pOut+dstPitch) = Interp7(w[5], w[8], w[4]); -#define PIXEL10_90 *(pOut+dstPitch) = Interp9(w[5], w[8], w[4]); -#define PIXEL10_100 *(pOut+dstPitch) = Interp10(w[5], w[8], w[4]); -#define PIXEL11_0 *(pOut+dstPitch+1) = w[5]; -#define PIXEL11_10 *(pOut+dstPitch+1) = Interp1(w[5], w[9]); -#define PIXEL11_11 *(pOut+dstPitch+1) = Interp1(w[5], w[6]); -#define PIXEL11_12 *(pOut+dstPitch+1) = Interp1(w[5], w[8]); -#define PIXEL11_20 *(pOut+dstPitch+1) = Interp2(w[5], w[6], w[8]); -#define PIXEL11_21 *(pOut+dstPitch+1) = Interp2(w[5], w[9], w[8]); -#define PIXEL11_22 *(pOut+dstPitch+1) = Interp2(w[5], w[9], w[6]); -#define PIXEL11_60 *(pOut+dstPitch+1) = Interp6(w[5], w[8], w[6]); -#define PIXEL11_61 *(pOut+dstPitch+1) = Interp6(w[5], w[6], w[8]); -#define PIXEL11_70 *(pOut+dstPitch+1) = Interp7(w[5], w[6], w[8]); -#define PIXEL11_90 *(pOut+dstPitch+1) = Interp9(w[5], w[6], w[8]); -#define PIXEL11_100 *(pOut+dstPitch+1) = Interp10(w[5], w[6], w[8]); - -static /*inline*/ bool Diff(const unsigned long w1, const unsigned long w2) { - const unsigned rdiff = (w1 >> 16) - (w2 >> 16); - const unsigned gdiff = (w1 >> 8 & 0xFF) - (w2 >> 8 & 0xFF); - const unsigned bdiff = (w1 & 0xFF) - (w2 & 0xFF); - - return rdiff + gdiff + bdiff + 0xC0U > 0xC0U * 2 || - rdiff - bdiff + 0x1CU > 0x1CU * 2 || - gdiff * 2 - rdiff - bdiff + 0x30U > 0x30U * 2; -} - -static void filter(Gambatte::uint_least32_t *pOut, const unsigned dstPitch, - const Gambatte::uint_least32_t *pIn, const unsigned Xres, const unsigned Yres) -{ - unsigned long w[10]; - - // +----+----+----+ - // | | | | - // | w1 | w2 | w3 | - // +----+----+----+ - // | | | | - // | w4 | w5 | w6 | - // +----+----+----+ - // | | | | - // | w7 | w8 | w9 | - // +----+----+----+ - - for (unsigned j = 0; j < Yres; j++) { - const unsigned prevline = j > 0 ? Xres : 0; - const unsigned nextline = j < Yres - 1 ? Xres : 0; - - for (unsigned i = 0; i < Xres; i++) { - w[2] = *(pIn - prevline); - w[5] = *(pIn); - w[8] = *(pIn + nextline); - - if (i > 0) { - w[1] = *(pIn - prevline - 1); - w[4] = *(pIn - 1); - w[7] = *(pIn + nextline - 1); - } else { - w[1] = w[2]; - w[4] = w[5]; - w[7] = w[8]; - } - - if (i < Xres - 1) { - w[3] = *(pIn - prevline + 1); - w[6] = *(pIn + 1); - w[9] = *(pIn + nextline + 1); - } else { - w[3] = w[2]; - w[6] = w[5]; - w[9] = w[8]; - } - - unsigned pattern = 0; - - { - unsigned flag = 1; - - const unsigned r1 = w[5] >> 16; - const unsigned g1 = w[5] >> 8 & 0xFF; - const unsigned b1 = w[5] & 0xFF; - - for (unsigned k = 1; k < 10; ++k) { - if (k == 5) continue; - - if (w[k] != w[5]) { - const unsigned rdiff = r1 - (w[k] >> 16); - const unsigned gdiff = g1 - (w[k] >> 8 & 0xFF); - const unsigned bdiff = b1 - (w[k] & 0xFF); - - if (rdiff + gdiff + bdiff + 0xC0U > 0xC0U * 2 || - rdiff - bdiff + 0x1CU > 0x1CU * 2 || - gdiff * 2 - rdiff - bdiff + 0x30U > 0x30U * 2) - pattern |= flag; - } - - flag <<= 1; - } - } - - switch (pattern) - { - case 0: - case 1: - case 4: - case 32: - case 128: - case 5: - case 132: - case 160: - case 33: - case 129: - case 36: - case 133: - case 164: - case 161: - case 37: - case 165: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_20 - PIXEL11_20 - break; - } - case 2: - case 34: - case 130: - case 162: - { - PIXEL00_22 - PIXEL01_21 - PIXEL10_20 - PIXEL11_20 - break; - } - case 16: - case 17: - case 48: - case 49: - { - PIXEL00_20 - PIXEL01_22 - PIXEL10_20 - PIXEL11_21 - break; - } - case 64: - case 65: - case 68: - case 69: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_21 - PIXEL11_22 - break; - } - case 8: - case 12: - case 136: - case 140: - { - PIXEL00_21 - PIXEL01_20 - PIXEL10_22 - PIXEL11_20 - break; - } - case 3: - case 35: - case 131: - case 163: - { - PIXEL00_11 - PIXEL01_21 - PIXEL10_20 - PIXEL11_20 - break; - } - case 6: - case 38: - case 134: - case 166: - { - PIXEL00_22 - PIXEL01_12 - PIXEL10_20 - PIXEL11_20 - break; - } - case 20: - case 21: - case 52: - case 53: - { - PIXEL00_20 - PIXEL01_11 - PIXEL10_20 - PIXEL11_21 - break; - } - case 144: - case 145: - case 176: - case 177: - { - PIXEL00_20 - PIXEL01_22 - PIXEL10_20 - PIXEL11_12 - break; - } - case 192: - case 193: - case 196: - case 197: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_21 - PIXEL11_11 - break; - } - case 96: - case 97: - case 100: - case 101: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_12 - PIXEL11_22 - break; - } - case 40: - case 44: - case 168: - case 172: - { - PIXEL00_21 - PIXEL01_20 - PIXEL10_11 - PIXEL11_20 - break; - } - case 9: - case 13: - case 137: - case 141: - { - PIXEL00_12 - PIXEL01_20 - PIXEL10_22 - PIXEL11_20 - break; - } - case 18: - case 50: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_20 - } - PIXEL10_20 - PIXEL11_21 - break; - } - case 80: - case 81: - { - PIXEL00_20 - PIXEL01_22 - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_20 - } - break; - } - case 72: - case 76: - { - PIXEL00_21 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 10: - case 138: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - PIXEL10_22 - PIXEL11_20 - break; - } - case 66: - { - PIXEL00_22 - PIXEL01_21 - PIXEL10_21 - PIXEL11_22 - break; - } - case 24: - { - PIXEL00_21 - PIXEL01_22 - PIXEL10_22 - PIXEL11_21 - break; - } - case 7: - case 39: - case 135: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_20 - PIXEL11_20 - break; - } - case 148: - case 149: - case 180: - { - PIXEL00_20 - PIXEL01_11 - PIXEL10_20 - PIXEL11_12 - break; - } - case 224: - case 228: - case 225: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_12 - PIXEL11_11 - break; - } - case 41: - case 169: - case 45: - { - PIXEL00_12 - PIXEL01_20 - PIXEL10_11 - PIXEL11_20 - break; - } - case 22: - case 54: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_20 - PIXEL11_21 - break; - } - case 208: - case 209: - { - PIXEL00_20 - PIXEL01_22 - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 104: - case 108: - { - PIXEL00_21 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 11: - case 139: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - PIXEL10_22 - PIXEL11_20 - break; - } - case 19: - case 51: - { - if (Diff(w[2], w[6])) - { - PIXEL00_11 - PIXEL01_10 - } - else - { - PIXEL00_60 - PIXEL01_90 - } - PIXEL10_20 - PIXEL11_21 - break; - } - case 146: - case 178: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - PIXEL11_12 - } - else - { - PIXEL01_90 - PIXEL11_61 - } - PIXEL10_20 - break; - } - case 84: - case 85: - { - PIXEL00_20 - if (Diff(w[6], w[8])) - { - PIXEL01_11 - PIXEL11_10 - } - else - { - PIXEL01_60 - PIXEL11_90 - } - PIXEL10_21 - break; - } - case 112: - case 113: - { - PIXEL00_20 - PIXEL01_22 - if (Diff(w[6], w[8])) - { - PIXEL10_12 - PIXEL11_10 - } - else - { - PIXEL10_61 - PIXEL11_90 - } - break; - } - case 200: - case 204: - { - PIXEL00_21 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - PIXEL11_11 - } - else - { - PIXEL10_90 - PIXEL11_60 - } - break; - } - case 73: - case 77: - { - if (Diff(w[8], w[4])) - { - PIXEL00_12 - PIXEL10_10 - } - else - { - PIXEL00_61 - PIXEL10_90 - } - PIXEL01_20 - PIXEL11_22 - break; - } - case 42: - case 170: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - PIXEL10_11 - } - else - { - PIXEL00_90 - PIXEL10_60 - } - PIXEL01_21 - PIXEL11_20 - break; - } - case 14: - case 142: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - PIXEL01_12 - } - else - { - PIXEL00_90 - PIXEL01_61 - } - PIXEL10_22 - PIXEL11_20 - break; - } - case 67: - { - PIXEL00_11 - PIXEL01_21 - PIXEL10_21 - PIXEL11_22 - break; - } - case 70: - { - PIXEL00_22 - PIXEL01_12 - PIXEL10_21 - PIXEL11_22 - break; - } - case 28: - { - PIXEL00_21 - PIXEL01_11 - PIXEL10_22 - PIXEL11_21 - break; - } - case 152: - { - PIXEL00_21 - PIXEL01_22 - PIXEL10_22 - PIXEL11_12 - break; - } - case 194: - { - PIXEL00_22 - PIXEL01_21 - PIXEL10_21 - PIXEL11_11 - break; - } - case 98: - { - PIXEL00_22 - PIXEL01_21 - PIXEL10_12 - PIXEL11_22 - break; - } - case 56: - { - PIXEL00_21 - PIXEL01_22 - PIXEL10_11 - PIXEL11_21 - break; - } - case 25: - { - PIXEL00_12 - PIXEL01_22 - PIXEL10_22 - PIXEL11_21 - break; - } - case 26: - case 31: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_22 - PIXEL11_21 - break; - } - case 82: - case 214: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 88: - case 248: - { - PIXEL00_21 - PIXEL01_22 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 74: - case 107: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 27: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_10 - PIXEL10_22 - PIXEL11_21 - break; - } - case 86: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_21 - PIXEL11_10 - break; - } - case 216: - { - PIXEL00_21 - PIXEL01_22 - PIXEL10_10 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 106: - { - PIXEL00_10 - PIXEL01_21 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 30: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_22 - PIXEL11_21 - break; - } - case 210: - { - PIXEL00_22 - PIXEL01_10 - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 120: - { - PIXEL00_21 - PIXEL01_22 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_10 - break; - } - case 75: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - PIXEL10_10 - PIXEL11_22 - break; - } - case 29: - { - PIXEL00_12 - PIXEL01_11 - PIXEL10_22 - PIXEL11_21 - break; - } - case 198: - { - PIXEL00_22 - PIXEL01_12 - PIXEL10_21 - PIXEL11_11 - break; - } - case 184: - { - PIXEL00_21 - PIXEL01_22 - PIXEL10_11 - PIXEL11_12 - break; - } - case 99: - { - PIXEL00_11 - PIXEL01_21 - PIXEL10_12 - PIXEL11_22 - break; - } - case 57: - { - PIXEL00_12 - PIXEL01_22 - PIXEL10_11 - PIXEL11_21 - break; - } - case 71: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_21 - PIXEL11_22 - break; - } - case 156: - { - PIXEL00_21 - PIXEL01_11 - PIXEL10_22 - PIXEL11_12 - break; - } - case 226: - { - PIXEL00_22 - PIXEL01_21 - PIXEL10_12 - PIXEL11_11 - break; - } - case 60: - { - PIXEL00_21 - PIXEL01_11 - PIXEL10_11 - PIXEL11_21 - break; - } - case 195: - { - PIXEL00_11 - PIXEL01_21 - PIXEL10_21 - PIXEL11_11 - break; - } - case 102: - { - PIXEL00_22 - PIXEL01_12 - PIXEL10_12 - PIXEL11_22 - break; - } - case 153: - { - PIXEL00_12 - PIXEL01_22 - PIXEL10_22 - PIXEL11_12 - break; - } - case 58: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_11 - PIXEL11_21 - break; - } - case 83: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 92: - { - PIXEL00_21 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 202: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - PIXEL01_21 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - PIXEL11_11 - break; - } - case 78: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - PIXEL11_22 - break; - } - case 154: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_22 - PIXEL11_12 - break; - } - case 114: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 89: - { - PIXEL00_12 - PIXEL01_22 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 90: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 55: - case 23: - { - if (Diff(w[2], w[6])) - { - PIXEL00_11 - PIXEL01_0 - } - else - { - PIXEL00_60 - PIXEL01_90 - } - PIXEL10_20 - PIXEL11_21 - break; - } - case 182: - case 150: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - PIXEL11_12 - } - else - { - PIXEL01_90 - PIXEL11_61 - } - PIXEL10_20 - break; - } - case 213: - case 212: - { - PIXEL00_20 - if (Diff(w[6], w[8])) - { - PIXEL01_11 - PIXEL11_0 - } - else - { - PIXEL01_60 - PIXEL11_90 - } - PIXEL10_21 - break; - } - case 241: - case 240: - { - PIXEL00_20 - PIXEL01_22 - if (Diff(w[6], w[8])) - { - PIXEL10_12 - PIXEL11_0 - } - else - { - PIXEL10_61 - PIXEL11_90 - } - break; - } - case 236: - case 232: - { - PIXEL00_21 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - PIXEL11_11 - } - else - { - PIXEL10_90 - PIXEL11_60 - } - break; - } - case 109: - case 105: - { - if (Diff(w[8], w[4])) - { - PIXEL00_12 - PIXEL10_0 - } - else - { - PIXEL00_61 - PIXEL10_90 - } - PIXEL01_20 - PIXEL11_22 - break; - } - case 171: - case 43: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - PIXEL10_11 - } - else - { - PIXEL00_90 - PIXEL10_60 - } - PIXEL01_21 - PIXEL11_20 - break; - } - case 143: - case 15: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - PIXEL01_12 - } - else - { - PIXEL00_90 - PIXEL01_61 - } - PIXEL10_22 - PIXEL11_20 - break; - } - case 124: - { - PIXEL00_21 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_10 - break; - } - case 203: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - PIXEL10_10 - PIXEL11_11 - break; - } - case 62: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_11 - PIXEL11_21 - break; - } - case 211: - { - PIXEL00_11 - PIXEL01_10 - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 118: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_12 - PIXEL11_10 - break; - } - case 217: - { - PIXEL00_12 - PIXEL01_22 - PIXEL10_10 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 110: - { - PIXEL00_10 - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 155: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_10 - PIXEL10_22 - PIXEL11_12 - break; - } - case 188: - { - PIXEL00_21 - PIXEL01_11 - PIXEL10_11 - PIXEL11_12 - break; - } - case 185: - { - PIXEL00_12 - PIXEL01_22 - PIXEL10_11 - PIXEL11_12 - break; - } - case 61: - { - PIXEL00_12 - PIXEL01_11 - PIXEL10_11 - PIXEL11_21 - break; - } - case 157: - { - PIXEL00_12 - PIXEL01_11 - PIXEL10_22 - PIXEL11_12 - break; - } - case 103: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_12 - PIXEL11_22 - break; - } - case 227: - { - PIXEL00_11 - PIXEL01_21 - PIXEL10_12 - PIXEL11_11 - break; - } - case 230: - { - PIXEL00_22 - PIXEL01_12 - PIXEL10_12 - PIXEL11_11 - break; - } - case 199: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_21 - PIXEL11_11 - break; - } - case 220: - { - PIXEL00_21 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 158: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_22 - PIXEL11_12 - break; - } - case 234: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - PIXEL01_21 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_11 - break; - } - case 242: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 59: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_11 - PIXEL11_21 - break; - } - case 121: - { - PIXEL00_12 - PIXEL01_22 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 87: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 79: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - PIXEL11_22 - break; - } - case 122: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 94: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 218: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 91: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 229: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_12 - PIXEL11_11 - break; - } - case 167: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_20 - PIXEL11_20 - break; - } - case 173: - { - PIXEL00_12 - PIXEL01_20 - PIXEL10_11 - PIXEL11_20 - break; - } - case 181: - { - PIXEL00_20 - PIXEL01_11 - PIXEL10_20 - PIXEL11_12 - break; - } - case 186: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_11 - PIXEL11_12 - break; - } - case 115: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 93: - { - PIXEL00_12 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 206: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - PIXEL11_11 - break; - } - case 205: - case 201: - { - PIXEL00_12 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - PIXEL11_11 - break; - } - case 174: - case 46: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - PIXEL01_12 - PIXEL10_11 - PIXEL11_20 - break; - } - case 179: - case 147: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_20 - PIXEL11_12 - break; - } - case 117: - case 116: - { - PIXEL00_20 - PIXEL01_11 - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 189: - { - PIXEL00_12 - PIXEL01_11 - PIXEL10_11 - PIXEL11_12 - break; - } - case 231: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_12 - PIXEL11_11 - break; - } - case 126: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_10 - break; - } - case 219: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_10 - PIXEL10_10 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 125: - { - if (Diff(w[8], w[4])) - { - PIXEL00_12 - PIXEL10_0 - } - else - { - PIXEL00_61 - PIXEL10_90 - } - PIXEL01_11 - PIXEL11_10 - break; - } - case 221: - { - PIXEL00_12 - if (Diff(w[6], w[8])) - { - PIXEL01_11 - PIXEL11_0 - } - else - { - PIXEL01_60 - PIXEL11_90 - } - PIXEL10_10 - break; - } - case 207: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - PIXEL01_12 - } - else - { - PIXEL00_90 - PIXEL01_61 - } - PIXEL10_10 - PIXEL11_11 - break; - } - case 238: - { - PIXEL00_10 - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - PIXEL11_11 - } - else - { - PIXEL10_90 - PIXEL11_60 - } - break; - } - case 190: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - PIXEL11_12 - } - else - { - PIXEL01_90 - PIXEL11_61 - } - PIXEL10_11 - break; - } - case 187: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - PIXEL10_11 - } - else - { - PIXEL00_90 - PIXEL10_60 - } - PIXEL01_10 - PIXEL11_12 - break; - } - case 243: - { - PIXEL00_11 - PIXEL01_10 - if (Diff(w[6], w[8])) - { - PIXEL10_12 - PIXEL11_0 - } - else - { - PIXEL10_61 - PIXEL11_90 - } - break; - } - case 119: - { - if (Diff(w[2], w[6])) - { - PIXEL00_11 - PIXEL01_0 - } - else - { - PIXEL00_60 - PIXEL01_90 - } - PIXEL10_12 - PIXEL11_10 - break; - } - case 237: - case 233: - { - PIXEL00_12 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - PIXEL11_11 - break; - } - case 175: - case 47: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - PIXEL01_12 - PIXEL10_11 - PIXEL11_20 - break; - } - case 183: - case 151: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_20 - PIXEL11_12 - break; - } - case 245: - case 244: - { - PIXEL00_20 - PIXEL01_11 - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 250: - { - PIXEL00_10 - PIXEL01_10 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 123: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_10 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_10 - break; - } - case 95: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_10 - PIXEL11_10 - break; - } - case 222: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_10 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 252: - { - PIXEL00_21 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 249: - { - PIXEL00_12 - PIXEL01_22 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 235: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - PIXEL11_11 - break; - } - case 111: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 63: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_11 - PIXEL11_21 - break; - } - case 159: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_22 - PIXEL11_12 - break; - } - case 215: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 246: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 254: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 253: - { - PIXEL00_12 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 251: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_10 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 239: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - PIXEL11_11 - break; - } - case 127: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_10 - break; - } - case 191: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_11 - PIXEL11_12 - break; - } - case 223: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_10 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 247: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 255: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - } - ++pIn; - pOut += 2; - } - pOut += dstPitch * 2 - Xres * 2; - } -} - -MaxSt_Hq2x::MaxSt_Hq2x() { - buffer = NULL; -} - -MaxSt_Hq2x::~MaxSt_Hq2x() { - outit(); -} - -void MaxSt_Hq2x::init() { - delete []buffer; - buffer = new Gambatte::uint_least32_t[144 * 160]; -} - -void MaxSt_Hq2x::outit() { - delete []buffer; - buffer = NULL; -} - -const Gambatte::FilterInfo& MaxSt_Hq2x::info() { - static const Gambatte::FilterInfo fInfo = { "MaxSt's Hq2x", 160 * 2, 144 * 2 }; - return fInfo; -} - -Gambatte::uint_least32_t* MaxSt_Hq2x::inBuffer() { - return buffer; -} - -unsigned MaxSt_Hq2x::inPitch() { - return 160; -} - -void MaxSt_Hq2x::filter(Gambatte::uint_least32_t *const dbuffer, const unsigned pitch) { - ::filter(dbuffer, pitch, buffer, 160, 144); -} diff --git a/supergameboy/libgambatte/src/video/filters/maxsthq2x.h b/supergameboy/libgambatte/src/video/filters/maxsthq2x.h deleted file mode 100644 index ca2cf411..00000000 --- a/supergameboy/libgambatte/src/video/filters/maxsthq2x.h +++ /dev/null @@ -1,41 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef MAXSTHQ2X_H -#define MAXSTHQ2X_H - -#include "filter.h" - -struct FilterInfo; - -class MaxSt_Hq2x : public Filter { - Gambatte::uint_least32_t *buffer; - -public: - MaxSt_Hq2x(); - ~MaxSt_Hq2x(); - void init(); - void outit(); - const Gambatte::FilterInfo& info(); - void filter(Gambatte::uint_least32_t *dbuffer, unsigned pitch); - Gambatte::uint_least32_t* inBuffer(); - unsigned inPitch(); -}; - - -#endif diff --git a/supergameboy/libgambatte/src/video/filters/maxsthq3x.cpp b/supergameboy/libgambatte/src/video/filters/maxsthq3x.cpp deleted file mode 100644 index 996a221e..00000000 --- a/supergameboy/libgambatte/src/video/filters/maxsthq3x.cpp +++ /dev/null @@ -1,3845 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * Copyright (C) 2003 MaxSt * - * maxst@hiend3d.com * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "maxsthq3x.h" -#include "filterinfo.h" -#include - -static /*inline*/ unsigned long Interp1(const unsigned long c1, const unsigned long c2) { - const unsigned long lowbits = ((c1 & 0x030303) * 3 + (c2 & 0x030303)) & 0x030303; - - return (c1 * 3 + c2 - lowbits) >> 2; -} - -static /*inline*/ unsigned long Interp2(const unsigned long c1, const unsigned long c2, const unsigned long c3) { - const unsigned long lowbits = ((c1 * 2 & 0x020202) + (c2 & 0x030303) + (c3 & 0x030303)) & 0x030303; - - return (c1 * 2 + c2 + c3 - lowbits) >> 2; -} - -static /*inline*/ unsigned long Interp3(const unsigned long c1, const unsigned long c2) { - const unsigned long lowbits = ((c1 & 0x070707) * 7 + (c2 & 0x070707)) & 0x070707; - - return (c1 * 7 + c2 - lowbits) >> 3; -} - -static /*inline*/ unsigned long Interp4(const unsigned long c1, const unsigned long c2, const unsigned long c3) { - const unsigned long lowbits = ((c1 * 2 & 0x0E0E0E) + ((c2 & 0x0F0F0F) + (c3 & 0x0F0F0F)) * 7) & 0x0F0F0F; - - return (c1 * 2 + (c2 + c3) * 7 - lowbits) >> 4; -} - -static /*inline*/ unsigned long Interp5(const unsigned long c1, const unsigned long c2) { - return (c1 + c2 - ((c1 ^ c2) & 0x010101)) >> 1; -} - -#define PIXEL00_1M *pOut = Interp1(w[5], w[1]); -#define PIXEL00_1U *pOut = Interp1(w[5], w[2]); -#define PIXEL00_1L *pOut = Interp1(w[5], w[4]); -#define PIXEL00_2 *pOut = Interp2(w[5], w[4], w[2]); -#define PIXEL00_4 *pOut = Interp4(w[5], w[4], w[2]); -#define PIXEL00_5 *pOut = Interp5(w[4], w[2]); -#define PIXEL00_C *pOut = w[5]; - -#define PIXEL01_1 *(pOut+1) = Interp1(w[5], w[2]); -#define PIXEL01_3 *(pOut+1) = Interp3(w[5], w[2]); -#define PIXEL01_6 *(pOut+1) = Interp1(w[2], w[5]); -#define PIXEL01_C *(pOut+1) = w[5]; - -#define PIXEL02_1M *(pOut+2) = Interp1(w[5], w[3]); -#define PIXEL02_1U *(pOut+2) = Interp1(w[5], w[2]); -#define PIXEL02_1R *(pOut+2) = Interp1(w[5], w[6]); -#define PIXEL02_2 *(pOut+2) = Interp2(w[5], w[2], w[6]); -#define PIXEL02_4 *(pOut+2) = Interp4(w[5], w[2], w[6]); -#define PIXEL02_5 *(pOut+2) = Interp5(w[2], w[6]); -#define PIXEL02_C *(pOut+2) = w[5]; - -#define PIXEL10_1 *(pOut+dstPitch) = Interp1(w[5], w[4]); -#define PIXEL10_3 *(pOut+dstPitch) = Interp3(w[5], w[4]); -#define PIXEL10_6 *(pOut+dstPitch) = Interp1(w[4], w[5]); -#define PIXEL10_C *(pOut+dstPitch) = w[5]; - -#define PIXEL11 *(pOut+dstPitch+1) = w[5]; - -#define PIXEL12_1 *(pOut+dstPitch+2) = Interp1(w[5], w[6]); -#define PIXEL12_3 *(pOut+dstPitch+2) = Interp3(w[5], w[6]); -#define PIXEL12_6 *(pOut+dstPitch+2) = Interp1(w[6], w[5]); -#define PIXEL12_C *(pOut+dstPitch+2) = w[5]; - -#define PIXEL20_1M *(pOut+dstPitch*2) = Interp1(w[5], w[7]); -#define PIXEL20_1D *(pOut+dstPitch*2) = Interp1(w[5], w[8]); -#define PIXEL20_1L *(pOut+dstPitch*2) = Interp1(w[5], w[4]); -#define PIXEL20_2 *(pOut+dstPitch*2) = Interp2(w[5], w[8], w[4]); -#define PIXEL20_4 *(pOut+dstPitch*2) = Interp4(w[5], w[8], w[4]); -#define PIXEL20_5 *(pOut+dstPitch*2) = Interp5(w[8], w[4]); -#define PIXEL20_C *(pOut+dstPitch*2) = w[5]; - -#define PIXEL21_1 *(pOut+dstPitch*2+1) = Interp1(w[5], w[8]); -#define PIXEL21_3 *(pOut+dstPitch*2+1) = Interp3(w[5], w[8]); -#define PIXEL21_6 *(pOut+dstPitch*2+1) = Interp1(w[8], w[5]); -#define PIXEL21_C *(pOut+dstPitch*2+1) = w[5]; - -#define PIXEL22_1M *(pOut+dstPitch*2+2) = Interp1(w[5], w[9]); -#define PIXEL22_1D *(pOut+dstPitch*2+2) = Interp1(w[5], w[8]); -#define PIXEL22_1R *(pOut+dstPitch*2+2) = Interp1(w[5], w[6]); -#define PIXEL22_2 *(pOut+dstPitch*2+2) = Interp2(w[5], w[6], w[8]); -#define PIXEL22_4 *(pOut+dstPitch*2+2) = Interp4(w[5], w[6], w[8]); -#define PIXEL22_5 *(pOut+dstPitch*2+2) = Interp5(w[6], w[8]); -#define PIXEL22_C *(pOut+dstPitch*2+2) = w[5]; - -static /*inline*/ bool Diff(const unsigned long w1, const unsigned long w2) { - const unsigned rdiff = (w1 >> 16) - (w2 >> 16); - const unsigned gdiff = (w1 >> 8 & 0xFF) - (w2 >> 8 & 0xFF); - const unsigned bdiff = (w1 & 0xFF) - (w2 & 0xFF); - - return rdiff + gdiff + bdiff + 0xC0U > 0xC0U * 2 || - rdiff - bdiff + 0x1CU > 0x1CU * 2 || - gdiff * 2 - rdiff - bdiff + 0x30U > 0x30U * 2; -} - -static void filter(Gambatte::uint_least32_t *pOut, const unsigned dstPitch, - const Gambatte::uint_least32_t *pIn, const unsigned Xres, const unsigned Yres) -{ - unsigned long w[10]; - - // +----+----+----+ - // | | | | - // | w1 | w2 | w3 | - // +----+----+----+ - // | | | | - // | w4 | w5 | w6 | - // +----+----+----+ - // | | | | - // | w7 | w8 | w9 | - // +----+----+----+ - - for (unsigned j = 0; j < Yres; j++) { - const unsigned prevline = j > 0 ? Xres : 0; - const unsigned nextline = j < Yres - 1 ? Xres : 0; - - for (unsigned i = 0; i < Xres; i++) { - w[2] = *(pIn - prevline); - w[5] = *(pIn); - w[8] = *(pIn + nextline); - - if (i > 0) { - w[1] = *(pIn - prevline - 1); - w[4] = *(pIn - 1); - w[7] = *(pIn + nextline - 1); - } else { - w[1] = w[2]; - w[4] = w[5]; - w[7] = w[8]; - } - - if (i < Xres - 1) { - w[3] = *(pIn - prevline + 1); - w[6] = *(pIn + 1); - w[9] = *(pIn + nextline + 1); - } else { - w[3] = w[2]; - w[6] = w[5]; - w[9] = w[8]; - } - - unsigned pattern = 0; - - { - unsigned flag = 1; - - const unsigned r1 = w[5] >> 16; - const unsigned g1 = w[5] >> 8 & 0xFF; - const unsigned b1 = w[5] & 0xFF; - - for (unsigned k = 1; k < 10; ++k) { - if (k == 5) continue; - - if (w[k] != w[5]) { - const unsigned rdiff = r1 - (w[k] >> 16); - const unsigned gdiff = g1 - (w[k] >> 8 & 0xFF); - const unsigned bdiff = b1 - (w[k] & 0xFF); - - if (rdiff + gdiff + bdiff + 0xC0U > 0xC0U * 2 || - rdiff - bdiff + 0x1CU > 0x1CU * 2 || - gdiff * 2 - rdiff - bdiff + 0x30U > 0x30U * 2) - pattern |= flag; - } - - flag <<= 1; - } - } - - switch (pattern) - { - case 0: - case 1: - case 4: - case 32: - case 128: - case 5: - case 132: - case 160: - case 33: - case 129: - case 36: - case 133: - case 164: - case 161: - case 37: - case 165: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_2 - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_2 - PIXEL21_1 - PIXEL22_2 - break; - } - case 2: - case 34: - case 130: - case 162: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_2 - PIXEL21_1 - PIXEL22_2 - break; - } - case 16: - case 17: - case 48: - case 49: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_2 - PIXEL21_1 - PIXEL22_1M - break; - } - case 64: - case 65: - case 68: - case 69: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_2 - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1M - break; - } - case 8: - case 12: - case 136: - case 140: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_2 - PIXEL10_C - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_1 - PIXEL22_2 - break; - } - case 3: - case 35: - case 131: - case 163: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_2 - PIXEL21_1 - PIXEL22_2 - break; - } - case 6: - case 38: - case 134: - case 166: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_2 - PIXEL21_1 - PIXEL22_2 - break; - } - case 20: - case 21: - case 52: - case 53: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_1U - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_2 - PIXEL21_1 - PIXEL22_1M - break; - } - case 144: - case 145: - case 176: - case 177: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_2 - PIXEL21_1 - PIXEL22_1D - break; - } - case 192: - case 193: - case 196: - case 197: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_2 - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1R - break; - } - case 96: - case 97: - case 100: - case 101: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_2 - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1M - break; - } - case 40: - case 44: - case 168: - case 172: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_2 - PIXEL10_C - PIXEL11 - PIXEL12_1 - PIXEL20_1D - PIXEL21_1 - PIXEL22_2 - break; - } - case 9: - case 13: - case 137: - case 141: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_2 - PIXEL10_C - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_1 - PIXEL22_2 - break; - } - case 18: - case 50: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_1M - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_4 - PIXEL12_3 - } - PIXEL10_1 - PIXEL11 - PIXEL20_2 - PIXEL21_1 - PIXEL22_1M - break; - } - case 80: - case 81: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_1M - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 72: - case 76: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_2 - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_1M - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 10: - case 138: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL01_3 - PIXEL10_3 - } - PIXEL02_1M - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_1 - PIXEL22_2 - break; - } - case 66: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1M - break; - } - case 24: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1M - break; - } - case 7: - case 39: - case 135: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_2 - PIXEL21_1 - PIXEL22_2 - break; - } - case 148: - case 149: - case 180: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_1U - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_2 - PIXEL21_1 - PIXEL22_1D - break; - } - case 224: - case 228: - case 225: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_2 - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1R - break; - } - case 41: - case 169: - case 45: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_2 - PIXEL10_C - PIXEL11 - PIXEL12_1 - PIXEL20_1D - PIXEL21_1 - PIXEL22_2 - break; - } - case 22: - case 54: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_4 - PIXEL12_3 - } - PIXEL10_1 - PIXEL11 - PIXEL20_2 - PIXEL21_1 - PIXEL22_1M - break; - } - case 208: - case 209: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 104: - case 108: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_2 - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 11: - case 139: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL01_3 - PIXEL10_3 - } - PIXEL02_1M - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_1 - PIXEL22_2 - break; - } - case 19: - case 51: - { - if (Diff(w[2], w[6])) - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1M - PIXEL12_C - } - else - { - PIXEL00_2 - PIXEL01_6 - PIXEL02_5 - PIXEL12_1 - } - PIXEL10_1 - PIXEL11 - PIXEL20_2 - PIXEL21_1 - PIXEL22_1M - break; - } - case 146: - case 178: - { - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_1M - PIXEL12_C - PIXEL22_1D - } - else - { - PIXEL01_1 - PIXEL02_5 - PIXEL12_6 - PIXEL22_2 - } - PIXEL00_1M - PIXEL10_1 - PIXEL11 - PIXEL20_2 - PIXEL21_1 - break; - } - case 84: - case 85: - { - if (Diff(w[6], w[8])) - { - PIXEL02_1U - PIXEL12_C - PIXEL21_C - PIXEL22_1M - } - else - { - PIXEL02_2 - PIXEL12_6 - PIXEL21_1 - PIXEL22_5 - } - PIXEL00_2 - PIXEL01_1 - PIXEL10_1 - PIXEL11 - PIXEL20_1M - break; - } - case 112: - case 113: - { - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL20_1L - PIXEL21_C - PIXEL22_1M - } - else - { - PIXEL12_1 - PIXEL20_2 - PIXEL21_6 - PIXEL22_5 - } - PIXEL00_2 - PIXEL01_1 - PIXEL02_1M - PIXEL10_1 - PIXEL11 - break; - } - case 200: - case 204: - { - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_1M - PIXEL21_C - PIXEL22_1R - } - else - { - PIXEL10_1 - PIXEL20_5 - PIXEL21_6 - PIXEL22_2 - } - PIXEL00_1M - PIXEL01_1 - PIXEL02_2 - PIXEL11 - PIXEL12_1 - break; - } - case 73: - case 77: - { - if (Diff(w[8], w[4])) - { - PIXEL00_1U - PIXEL10_C - PIXEL20_1M - PIXEL21_C - } - else - { - PIXEL00_2 - PIXEL10_6 - PIXEL20_5 - PIXEL21_1 - } - PIXEL01_1 - PIXEL02_2 - PIXEL11 - PIXEL12_1 - PIXEL22_1M - break; - } - case 42: - case 170: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - PIXEL01_C - PIXEL10_C - PIXEL20_1D - } - else - { - PIXEL00_5 - PIXEL01_1 - PIXEL10_6 - PIXEL20_2 - } - PIXEL02_1M - PIXEL11 - PIXEL12_1 - PIXEL21_1 - PIXEL22_2 - break; - } - case 14: - case 142: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1R - PIXEL10_C - } - else - { - PIXEL00_5 - PIXEL01_6 - PIXEL02_2 - PIXEL10_1 - } - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_1 - PIXEL22_2 - break; - } - case 67: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1M - break; - } - case 70: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1M - break; - } - case 28: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1M - break; - } - case 152: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1D - break; - } - case 194: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1R - break; - } - case 98: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1M - break; - } - case 56: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1M - break; - } - case 25: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1M - break; - } - case 26: - case 31: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL10_3 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL02_4 - PIXEL12_3 - } - PIXEL11 - PIXEL20_1M - PIXEL21_1 - PIXEL22_1M - break; - } - case 82: - case 214: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - } - else - { - PIXEL01_3 - PIXEL02_4 - } - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 88: - case 248: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1M - PIXEL11 - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - } - else - { - PIXEL10_3 - PIXEL20_4 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL22_4 - } - break; - } - case 74: - case 107: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - } - else - { - PIXEL00_4 - PIXEL01_3 - } - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 27: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL01_3 - PIXEL10_3 - } - PIXEL02_1M - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1M - break; - } - case 86: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_4 - PIXEL12_3 - } - PIXEL10_1 - PIXEL11 - PIXEL20_1M - PIXEL21_C - PIXEL22_1M - break; - } - case 216: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 106: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1M - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 30: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_4 - PIXEL12_3 - } - PIXEL10_C - PIXEL11 - PIXEL20_1M - PIXEL21_1 - PIXEL22_1M - break; - } - case 210: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 120: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1M - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 75: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL01_3 - PIXEL10_3 - } - PIXEL02_1M - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1M - break; - } - case 29: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1M - break; - } - case 198: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1R - break; - } - case 184: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1D - break; - } - case 99: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1M - break; - } - case 57: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1M - break; - } - case 71: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1M - break; - } - case 156: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1D - break; - } - case 226: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1R - break; - } - case 60: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1M - break; - } - case 195: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1R - break; - } - case 102: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1M - break; - } - case 153: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1D - break; - } - case 58: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1M - break; - } - case 83: - { - PIXEL00_1L - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 92: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 202: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - PIXEL22_1R - break; - } - case 78: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - PIXEL02_1R - PIXEL10_C - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - PIXEL22_1M - break; - } - case 154: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1D - break; - } - case 114: - { - PIXEL00_1M - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_1L - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 89: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 90: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL10_C - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 55: - case 23: - { - if (Diff(w[2], w[6])) - { - PIXEL00_1L - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL00_2 - PIXEL01_6 - PIXEL02_5 - PIXEL12_1 - } - PIXEL10_1 - PIXEL11 - PIXEL20_2 - PIXEL21_1 - PIXEL22_1M - break; - } - case 182: - case 150: - { - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - PIXEL22_1D - } - else - { - PIXEL01_1 - PIXEL02_5 - PIXEL12_6 - PIXEL22_2 - } - PIXEL00_1M - PIXEL10_1 - PIXEL11 - PIXEL20_2 - PIXEL21_1 - break; - } - case 213: - case 212: - { - if (Diff(w[6], w[8])) - { - PIXEL02_1U - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL02_2 - PIXEL12_6 - PIXEL21_1 - PIXEL22_5 - } - PIXEL00_2 - PIXEL01_1 - PIXEL10_1 - PIXEL11 - PIXEL20_1M - break; - } - case 241: - case 240: - { - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL20_1L - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_1 - PIXEL20_2 - PIXEL21_6 - PIXEL22_5 - } - PIXEL00_2 - PIXEL01_1 - PIXEL02_1M - PIXEL10_1 - PIXEL11 - break; - } - case 236: - case 232: - { - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - PIXEL22_1R - } - else - { - PIXEL10_1 - PIXEL20_5 - PIXEL21_6 - PIXEL22_2 - } - PIXEL00_1M - PIXEL01_1 - PIXEL02_2 - PIXEL11 - PIXEL12_1 - break; - } - case 109: - case 105: - { - if (Diff(w[8], w[4])) - { - PIXEL00_1U - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL00_2 - PIXEL10_6 - PIXEL20_5 - PIXEL21_1 - } - PIXEL01_1 - PIXEL02_2 - PIXEL11 - PIXEL12_1 - PIXEL22_1M - break; - } - case 171: - case 43: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - PIXEL20_1D - } - else - { - PIXEL00_5 - PIXEL01_1 - PIXEL10_6 - PIXEL20_2 - } - PIXEL02_1M - PIXEL11 - PIXEL12_1 - PIXEL21_1 - PIXEL22_2 - break; - } - case 143: - case 15: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL02_1R - PIXEL10_C - } - else - { - PIXEL00_5 - PIXEL01_6 - PIXEL02_2 - PIXEL10_1 - } - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_1 - PIXEL22_2 - break; - } - case 124: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1U - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 203: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL01_3 - PIXEL10_3 - } - PIXEL02_1M - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1R - break; - } - case 62: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_4 - PIXEL12_3 - } - PIXEL10_C - PIXEL11 - PIXEL20_1D - PIXEL21_1 - PIXEL22_1M - break; - } - case 211: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 118: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_4 - PIXEL12_3 - } - PIXEL10_1 - PIXEL11 - PIXEL20_1L - PIXEL21_C - PIXEL22_1M - break; - } - case 217: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 110: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1R - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 155: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL01_3 - PIXEL10_3 - } - PIXEL02_1M - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1D - break; - } - case 188: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1D - break; - } - case 185: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1D - break; - } - case 61: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1M - break; - } - case 157: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1D - break; - } - case 103: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1M - break; - } - case 227: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1R - break; - } - case 230: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1R - break; - } - case 199: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1R - break; - } - case 220: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 158: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_4 - PIXEL12_3 - } - PIXEL10_C - PIXEL11 - PIXEL20_1M - PIXEL21_1 - PIXEL22_1D - break; - } - case 234: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - PIXEL02_1M - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1R - break; - } - case 242: - { - PIXEL00_1M - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL10_1 - PIXEL11 - PIXEL20_1L - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 59: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL01_3 - PIXEL10_3 - } - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1M - break; - } - case 121: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1M - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_4 - PIXEL21_3 - } - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 87: - { - PIXEL00_1L - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_4 - PIXEL12_3 - } - PIXEL10_1 - PIXEL11 - PIXEL20_1M - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 79: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL01_3 - PIXEL10_3 - } - PIXEL02_1R - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - PIXEL22_1M - break; - } - case 122: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_4 - PIXEL21_3 - } - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 94: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_4 - PIXEL12_3 - } - PIXEL10_C - PIXEL11 - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 218: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL10_C - PIXEL11 - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 91: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL01_3 - PIXEL10_3 - } - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 229: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_2 - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1R - break; - } - case 167: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_2 - PIXEL21_1 - PIXEL22_2 - break; - } - case 173: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_2 - PIXEL10_C - PIXEL11 - PIXEL12_1 - PIXEL20_1D - PIXEL21_1 - PIXEL22_2 - break; - } - case 181: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_1U - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_2 - PIXEL21_1 - PIXEL22_1D - break; - } - case 186: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1D - break; - } - case 115: - { - PIXEL00_1L - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_1L - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 93: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 206: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - PIXEL02_1R - PIXEL10_C - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - PIXEL22_1R - break; - } - case 205: - case 201: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_2 - PIXEL10_C - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL20_1M - } - else - { - PIXEL20_2 - } - PIXEL21_C - PIXEL22_1R - break; - } - case 174: - case 46: - { - if (Diff(w[4], w[2])) - { - PIXEL00_1M - } - else - { - PIXEL00_2 - } - PIXEL01_C - PIXEL02_1R - PIXEL10_C - PIXEL11 - PIXEL12_1 - PIXEL20_1D - PIXEL21_1 - PIXEL22_2 - break; - } - case 179: - case 147: - { - PIXEL00_1L - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_1M - } - else - { - PIXEL02_2 - } - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_2 - PIXEL21_1 - PIXEL22_1D - break; - } - case 117: - case 116: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_1U - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_1L - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_1M - } - else - { - PIXEL22_2 - } - break; - } - case 189: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1D - break; - } - case 231: - { - PIXEL00_1L - PIXEL01_C - PIXEL02_1R - PIXEL10_1 - PIXEL11 - PIXEL12_1 - PIXEL20_1L - PIXEL21_C - PIXEL22_1R - break; - } - case 126: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_4 - PIXEL12_3 - } - PIXEL11 - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 219: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL01_3 - PIXEL10_3 - } - PIXEL02_1M - PIXEL11 - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 125: - { - if (Diff(w[8], w[4])) - { - PIXEL00_1U - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL00_2 - PIXEL10_6 - PIXEL20_5 - PIXEL21_1 - } - PIXEL01_1 - PIXEL02_1U - PIXEL11 - PIXEL12_C - PIXEL22_1M - break; - } - case 221: - { - if (Diff(w[6], w[8])) - { - PIXEL02_1U - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL02_2 - PIXEL12_6 - PIXEL21_1 - PIXEL22_5 - } - PIXEL00_1U - PIXEL01_1 - PIXEL10_C - PIXEL11 - PIXEL20_1M - break; - } - case 207: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL02_1R - PIXEL10_C - } - else - { - PIXEL00_5 - PIXEL01_6 - PIXEL02_2 - PIXEL10_1 - } - PIXEL11 - PIXEL12_1 - PIXEL20_1M - PIXEL21_C - PIXEL22_1R - break; - } - case 238: - { - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - PIXEL22_1R - } - else - { - PIXEL10_1 - PIXEL20_5 - PIXEL21_6 - PIXEL22_2 - } - PIXEL00_1M - PIXEL01_C - PIXEL02_1R - PIXEL11 - PIXEL12_1 - break; - } - case 190: - { - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - PIXEL22_1D - } - else - { - PIXEL01_1 - PIXEL02_5 - PIXEL12_6 - PIXEL22_2 - } - PIXEL00_1M - PIXEL10_C - PIXEL11 - PIXEL20_1D - PIXEL21_1 - break; - } - case 187: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - PIXEL20_1D - } - else - { - PIXEL00_5 - PIXEL01_1 - PIXEL10_6 - PIXEL20_2 - } - PIXEL02_1M - PIXEL11 - PIXEL12_C - PIXEL21_1 - PIXEL22_1D - break; - } - case 243: - { - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL20_1L - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_1 - PIXEL20_2 - PIXEL21_6 - PIXEL22_5 - } - PIXEL00_1L - PIXEL01_C - PIXEL02_1M - PIXEL10_1 - PIXEL11 - break; - } - case 119: - { - if (Diff(w[2], w[6])) - { - PIXEL00_1L - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL00_2 - PIXEL01_6 - PIXEL02_5 - PIXEL12_1 - } - PIXEL10_1 - PIXEL11 - PIXEL20_1L - PIXEL21_C - PIXEL22_1M - break; - } - case 237: - case 233: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_2 - PIXEL10_C - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL20_C - } - else - { - PIXEL20_2 - } - PIXEL21_C - PIXEL22_1R - break; - } - case 175: - case 47: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - } - else - { - PIXEL00_2 - } - PIXEL01_C - PIXEL02_1R - PIXEL10_C - PIXEL11 - PIXEL12_1 - PIXEL20_1D - PIXEL21_1 - PIXEL22_2 - break; - } - case 183: - case 151: - { - PIXEL00_1L - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_C - } - else - { - PIXEL02_2 - } - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_2 - PIXEL21_1 - PIXEL22_1D - break; - } - case 245: - case 244: - { - PIXEL00_2 - PIXEL01_1 - PIXEL02_1U - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_1L - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_C - } - else - { - PIXEL22_2 - } - break; - } - case 250: - { - PIXEL00_1M - PIXEL01_C - PIXEL02_1M - PIXEL11 - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - } - else - { - PIXEL10_3 - PIXEL20_4 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL22_4 - } - break; - } - case 123: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - } - else - { - PIXEL00_4 - PIXEL01_3 - } - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 95: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL10_3 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL02_4 - PIXEL12_3 - } - PIXEL11 - PIXEL20_1M - PIXEL21_C - PIXEL22_1M - break; - } - case 222: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - } - else - { - PIXEL01_3 - PIXEL02_4 - } - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 252: - { - PIXEL00_1M - PIXEL01_1 - PIXEL02_1U - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - } - else - { - PIXEL10_3 - PIXEL20_4 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_C - } - else - { - PIXEL22_2 - } - break; - } - case 249: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1M - PIXEL10_C - PIXEL11 - if (Diff(w[8], w[4])) - { - PIXEL20_C - } - else - { - PIXEL20_2 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL22_4 - } - break; - } - case 235: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - } - else - { - PIXEL00_4 - PIXEL01_3 - } - PIXEL02_1M - PIXEL10_C - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL20_C - } - else - { - PIXEL20_2 - } - PIXEL21_C - PIXEL22_1R - break; - } - case 111: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - } - else - { - PIXEL00_2 - } - PIXEL01_C - PIXEL02_1R - PIXEL10_C - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 63: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - } - else - { - PIXEL00_2 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL02_4 - PIXEL12_3 - } - PIXEL10_C - PIXEL11 - PIXEL20_1D - PIXEL21_1 - PIXEL22_1M - break; - } - case 159: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL10_3 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_C - } - else - { - PIXEL02_2 - } - PIXEL11 - PIXEL12_C - PIXEL20_1M - PIXEL21_1 - PIXEL22_1D - break; - } - case 215: - { - PIXEL00_1L - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_C - } - else - { - PIXEL02_2 - } - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 246: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - } - else - { - PIXEL01_3 - PIXEL02_4 - } - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_1L - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_C - } - else - { - PIXEL22_2 - } - break; - } - case 254: - { - PIXEL00_1M - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - } - else - { - PIXEL01_3 - PIXEL02_4 - } - PIXEL11 - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - } - else - { - PIXEL10_3 - PIXEL20_4 - } - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL21_3 - PIXEL22_2 - } - break; - } - case 253: - { - PIXEL00_1U - PIXEL01_1 - PIXEL02_1U - PIXEL10_C - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL20_C - } - else - { - PIXEL20_2 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_C - } - else - { - PIXEL22_2 - } - break; - } - case 251: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - } - else - { - PIXEL00_4 - PIXEL01_3 - } - PIXEL02_1M - PIXEL11 - if (Diff(w[8], w[4])) - { - PIXEL10_C - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL10_3 - PIXEL20_2 - PIXEL21_3 - } - if (Diff(w[6], w[8])) - { - PIXEL12_C - PIXEL22_C - } - else - { - PIXEL12_3 - PIXEL22_4 - } - break; - } - case 239: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - } - else - { - PIXEL00_2 - } - PIXEL01_C - PIXEL02_1R - PIXEL10_C - PIXEL11 - PIXEL12_1 - if (Diff(w[8], w[4])) - { - PIXEL20_C - } - else - { - PIXEL20_2 - } - PIXEL21_C - PIXEL22_1R - break; - } - case 127: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL01_C - PIXEL10_C - } - else - { - PIXEL00_2 - PIXEL01_3 - PIXEL10_3 - } - if (Diff(w[2], w[6])) - { - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL02_4 - PIXEL12_3 - } - PIXEL11 - if (Diff(w[8], w[4])) - { - PIXEL20_C - PIXEL21_C - } - else - { - PIXEL20_4 - PIXEL21_3 - } - PIXEL22_1M - break; - } - case 191: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - } - else - { - PIXEL00_2 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_C - } - else - { - PIXEL02_2 - } - PIXEL10_C - PIXEL11 - PIXEL12_C - PIXEL20_1D - PIXEL21_1 - PIXEL22_1D - break; - } - case 223: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - PIXEL10_C - } - else - { - PIXEL00_4 - PIXEL10_3 - } - if (Diff(w[2], w[6])) - { - PIXEL01_C - PIXEL02_C - PIXEL12_C - } - else - { - PIXEL01_3 - PIXEL02_2 - PIXEL12_3 - } - PIXEL11 - PIXEL20_1M - if (Diff(w[6], w[8])) - { - PIXEL21_C - PIXEL22_C - } - else - { - PIXEL21_3 - PIXEL22_4 - } - break; - } - case 247: - { - PIXEL00_1L - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_C - } - else - { - PIXEL02_2 - } - PIXEL10_1 - PIXEL11 - PIXEL12_C - PIXEL20_1L - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_C - } - else - { - PIXEL22_2 - } - break; - } - case 255: - { - if (Diff(w[4], w[2])) - { - PIXEL00_C - } - else - { - PIXEL00_2 - } - PIXEL01_C - if (Diff(w[2], w[6])) - { - PIXEL02_C - } - else - { - PIXEL02_2 - } - PIXEL10_C - PIXEL11 - PIXEL12_C - if (Diff(w[8], w[4])) - { - PIXEL20_C - } - else - { - PIXEL20_2 - } - PIXEL21_C - if (Diff(w[6], w[8])) - { - PIXEL22_C - } - else - { - PIXEL22_2 - } - break; - } - } - ++pIn; - pOut += 3; - } - pOut += dstPitch * 3 - Xres * 3; - } -} - -MaxSt_Hq3x::MaxSt_Hq3x() { - buffer = NULL; -} - -MaxSt_Hq3x::~MaxSt_Hq3x() { - outit(); -} - -void MaxSt_Hq3x::init() { - delete []buffer; - buffer = new Gambatte::uint_least32_t[144 * 160]; -} - -void MaxSt_Hq3x::outit() { - delete []buffer; - buffer = NULL; -} - -const Gambatte::FilterInfo& MaxSt_Hq3x::info() { - static const Gambatte::FilterInfo fInfo = { "MaxSt's Hq3x", 160 * 3, 144 * 3 }; - return fInfo; -} - -Gambatte::uint_least32_t* MaxSt_Hq3x::inBuffer() { - return buffer; -} - -unsigned MaxSt_Hq3x::inPitch() { - return 160; -} - -void MaxSt_Hq3x::filter(Gambatte::uint_least32_t *const dbuffer, const unsigned pitch) { - ::filter(dbuffer, pitch, buffer, 160, 144); -} diff --git a/supergameboy/libgambatte/src/video/filters/maxsthq3x.h b/supergameboy/libgambatte/src/video/filters/maxsthq3x.h deleted file mode 100644 index 9e1f51d6..00000000 --- a/supergameboy/libgambatte/src/video/filters/maxsthq3x.h +++ /dev/null @@ -1,40 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef MAXSTHQ3X_H -#define MAXSTHQ3X_H - -#include "filter.h" - -struct FilterInfo; - -class MaxSt_Hq3x : public Filter { - Gambatte::uint_least32_t *buffer; - -public: - MaxSt_Hq3x(); - ~MaxSt_Hq3x(); - void init(); - void outit(); - const Gambatte::FilterInfo& info(); - void filter(Gambatte::uint_least32_t *dbuffer, unsigned pitch); - Gambatte::uint_least32_t* inBuffer(); - unsigned inPitch(); -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/irq_event.cpp b/supergameboy/libgambatte/src/video/irq_event.cpp deleted file mode 100644 index 358f1daf..00000000 --- a/supergameboy/libgambatte/src/video/irq_event.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "irq_event.h" - -IrqEvent::IrqEvent(event_queue &irqEventQueue_in) : - VideoEvent(11), - irqEventQueue(irqEventQueue_in) -{ -} - -void IrqEvent::doEvent() { - irqEventQueue.top()->doEvent(); - - if (irqEventQueue.top()->time() == DISABLED_TIME) - irqEventQueue.pop(); - else - irqEventQueue.modify_root(irqEventQueue.top()); - - setTime(schedule(irqEventQueue)); -} diff --git a/supergameboy/libgambatte/src/video/irq_event.h b/supergameboy/libgambatte/src/video/irq_event.h deleted file mode 100644 index c8a5b991..00000000 --- a/supergameboy/libgambatte/src/video/irq_event.h +++ /dev/null @@ -1,52 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ -#ifndef VIDEO_IRQ_EVENT_H -#define VIDEO_IRQ_EVENT_H - -#include "../event_queue.h" -#include "video_event.h" -#include "video_event_comparer.h" -#include "basic_add_event.h" - -class IrqEvent : public VideoEvent { - event_queue &irqEventQueue; - -public: - IrqEvent(event_queue &irqEventQueue_in); - - void doEvent(); - - static unsigned long schedule(const event_queue &irqEventQueue) { - return irqEventQueue.top()->time(); - } - - void schedule() { - setTime(irqEventQueue.top()->time()); - } -}; - -static inline void addEvent(event_queue &q, IrqEvent *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, IrqEvent *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -#endif diff --git a/supergameboy/libgambatte/src/video/ly_counter.cpp b/supergameboy/libgambatte/src/video/ly_counter.cpp deleted file mode 100644 index 5d5b6d98..00000000 --- a/supergameboy/libgambatte/src/video/ly_counter.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "ly_counter.h" -#include "../savestate.h" - -LyCounter::LyCounter() : VideoEvent(0) { - setDoubleSpeed(false); - reset(0, 0); -} - -void LyCounter::doEvent() { - ++ly_; - - if (ly_ == 154) - ly_ = 0; - - setTime(time() + lineTime_); -} - -unsigned long LyCounter::nextLineCycle(const unsigned lineCycle, const unsigned long cycleCounter) const { - unsigned long tmp = time() + (lineCycle << ds); - - if (tmp - cycleCounter > lineTime_) - tmp -= lineTime_; - - return tmp; -} - -unsigned long LyCounter::nextFrameCycle(const unsigned long frameCycle, const unsigned long cycleCounter) const { - unsigned long tmp = time() + (((153U - ly()) * 456U + frameCycle) << ds); - - if (tmp - cycleCounter > 70224U << ds) - tmp -= 70224U << ds; - - return tmp; -} - -void LyCounter::reset(const unsigned long videoCycles, const unsigned long lastUpdate) { - ly_ = videoCycles / 456; - setTime(lastUpdate + ((456 - (videoCycles - ly_ * 456ul)) << isDoubleSpeed())); -} - -void LyCounter::setDoubleSpeed(const bool ds_in) { - ds = ds_in; - lineTime_ = 456U << ds_in; -} diff --git a/supergameboy/libgambatte/src/video/ly_counter.h b/supergameboy/libgambatte/src/video/ly_counter.h deleted file mode 100644 index 2b795fb8..00000000 --- a/supergameboy/libgambatte/src/video/ly_counter.h +++ /dev/null @@ -1,69 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef LY_COUNTER_H -#define LY_COUNTER_H - -class SaveState; - -#include "video_event.h" -#include "basic_add_event.h" - -class LyCounter : public VideoEvent { - unsigned short lineTime_; - unsigned char ly_; - bool ds; - -public: - LyCounter(); - - void doEvent(); - - bool isDoubleSpeed() const { - return ds; - } - - unsigned lineCycles(const unsigned long cc) const { - return 456u - ((time() - cc) >> isDoubleSpeed()); - } - - unsigned lineTime() const { - return lineTime_; - } - - unsigned ly() const { - return ly_; - } - - unsigned long nextLineCycle(unsigned lineCycle, unsigned long cycleCounter) const; - unsigned long nextFrameCycle(unsigned long frameCycle, unsigned long cycleCounter) const; - - void reset(unsigned long videoCycles, unsigned long lastUpdate); - - void setDoubleSpeed(bool ds_in); -}; - -static inline void addEvent(event_queue &q, LyCounter *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, LyCounter *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -#endif diff --git a/supergameboy/libgambatte/src/video/lyc_irq.cpp b/supergameboy/libgambatte/src/video/lyc_irq.cpp deleted file mode 100644 index eb81d41b..00000000 --- a/supergameboy/libgambatte/src/video/lyc_irq.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "lyc_irq.h" - -LycIrq::LycIrq(unsigned char &ifReg_in) : - VideoEvent(1), - ifReg(ifReg_in) -{ - setDoubleSpeed(false); - setM2IrqEnabled(false); - setLycReg(0); - setSkip(false); -} - -void LycIrq::doEvent() { - if (!skip && (!m2IrqEnabled || lycReg_ > 143 || lycReg_ == 0)) - ifReg |= 0x2; - - skip = false; - - setTime(time() + frameTime); -} - -unsigned long LycIrq::schedule(const unsigned statReg, const unsigned lycReg, const LyCounter &lyCounter, const unsigned long cycleCounter) { - return ((statReg & 0x40) && lycReg < 154) ? lyCounter.nextFrameCycle(lycReg ? lycReg * 456 : 153 * 456 + 8, cycleCounter) : static_cast(DISABLED_TIME); -} diff --git a/supergameboy/libgambatte/src/video/lyc_irq.h b/supergameboy/libgambatte/src/video/lyc_irq.h deleted file mode 100644 index ed93fdda..00000000 --- a/supergameboy/libgambatte/src/video/lyc_irq.h +++ /dev/null @@ -1,67 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef VIDEO_LYC_IRQ_H -#define VIDEO_LYC_IRQ_H - -#include "ly_counter.h" - -class LycIrq : public VideoEvent { - unsigned char &ifReg; - unsigned long frameTime; - unsigned char lycReg_; - bool m2IrqEnabled; - bool skip; - -public: - LycIrq(unsigned char &ifReg_in); - - void doEvent(); - - unsigned lycReg() const { - return lycReg_; - } - - static unsigned long schedule(unsigned statReg, unsigned lycReg, const LyCounter &lyCounter, unsigned long cycleCounter); - - void setDoubleSpeed(const bool ds) { - frameTime = 70224 << ds; - } - - void setLycReg(const unsigned lycReg_in) { - lycReg_ = lycReg_in; - } - - void setM2IrqEnabled(const bool enabled) { - m2IrqEnabled = enabled; - } - - void setSkip(const bool skip) { - this->skip = skip; - } - - bool skips() const { - return skip; - } - - bool isSkipPeriod(const unsigned long cycleCounter, const bool doubleSpeed) const { - return lycReg_ > 0 && time() - cycleCounter > 4U >> doubleSpeed && time() - cycleCounter < 9; - } -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/m3_extra_cycles.cpp b/supergameboy/libgambatte/src/video/m3_extra_cycles.cpp deleted file mode 100644 index de4eadb7..00000000 --- a/supergameboy/libgambatte/src/video/m3_extra_cycles.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "m3_extra_cycles.h" -#include "scx_reader.h" -#include "window.h" -#include "sprite_mapper.h" -#include "../insertion_sort.h" - -M3ExtraCycles::M3ExtraCycles(const SpriteMapper &spriteMapper, - const ScxReader &scxReader, - const Window &win) : - spriteMapper(spriteMapper), - scxReader(scxReader), - win(win) -{ - invalidateCache(); -} - -static const unsigned char* addLineCycles(const unsigned char *const start, const unsigned char *const end, - const unsigned maxSpx, const unsigned scwxAnd7, const unsigned char *const posbuf_plus1, unsigned char *cycles_out) { - unsigned sum = 0; - - const unsigned char *a = start; - - for (; a < end; ++a) { - const unsigned spx = posbuf_plus1[*a]; - - if (spx > maxSpx) - break; - - unsigned cycles = 6; - const unsigned posAnd7 = (scwxAnd7 + spx) & 7; - - if (posAnd7 < 5) { - cycles = 11 - posAnd7; - - for (const unsigned char *b = a; b > start;) { - const unsigned bSpx = posbuf_plus1[*--b]; - - if (spx - bSpx > 4U) - break; - - if (((scwxAnd7 + bSpx) & 7) < 4 || spx == bSpx) { - cycles = 6; - break; - } - } - } - - sum += cycles; - } - - *cycles_out += sum; - - return a; -} - -void M3ExtraCycles::updateLine(const unsigned ly) const { - const bool windowEnabled = win.enabled(ly); - - cycles[ly] = windowEnabled ? scxReader.scxAnd7() + 6 : scxReader.scxAnd7(); - - const unsigned numSprites = spriteMapper.numSprites(ly); - - if (numSprites == 0) - return; - - unsigned char sortBuf[10]; - const unsigned char *tmp = spriteMapper.sprites(ly); - - if (spriteMapper.isCgb()) { - std::memcpy(sortBuf, tmp, sizeof(sortBuf)); - insertionSort(sortBuf, sortBuf + numSprites, SpriteMapper::SpxLess(spriteMapper.posbuf())); - tmp = sortBuf; - } - - const unsigned char *const tmpend = tmp + numSprites; - const unsigned char *const posbuf_plus1 = spriteMapper.posbuf() + 1; - - if (windowEnabled) { - addLineCycles(addLineCycles(tmp, tmpend, win.wxReader.wx(), scxReader.scxAnd7(), posbuf_plus1, cycles + ly), - tmpend, 167, 7 - win.wxReader.wx(), posbuf_plus1, cycles + ly); - } else - addLineCycles(tmp, tmpend, 167, scxReader.scxAnd7(), posbuf_plus1, cycles + ly); -} diff --git a/supergameboy/libgambatte/src/video/m3_extra_cycles.h b/supergameboy/libgambatte/src/video/m3_extra_cycles.h deleted file mode 100644 index 8a7f1470..00000000 --- a/supergameboy/libgambatte/src/video/m3_extra_cycles.h +++ /dev/null @@ -1,56 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef VIDEO_M3_EXTRA_CYCLES_H -#define VIDEO_M3_EXTRA_CYCLES_H - -class ScxReader; -class Window; -class SpriteMapper; - -#include - -class M3ExtraCycles { - enum { CYCLES_INVALID = 0xFF }; - - mutable unsigned char cycles[144]; - - const SpriteMapper &spriteMapper; - const ScxReader &scxReader; - const Window &win; - - void updateLine(unsigned ly) const; - -public: - M3ExtraCycles(const SpriteMapper &spriteMapper, - const ScxReader &scxReader_in, - const Window &win); - - void invalidateCache() { - std::memset(cycles, CYCLES_INVALID, sizeof(cycles)); - } - - unsigned operator()(const unsigned ly) const { - if (cycles[ly] == CYCLES_INVALID) - updateLine(ly); - - return cycles[ly]; - } -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/mode0_irq.cpp b/supergameboy/libgambatte/src/video/mode0_irq.cpp deleted file mode 100644 index 041d3db1..00000000 --- a/supergameboy/libgambatte/src/video/mode0_irq.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ -#include "mode0_irq.h" - -#include "ly_counter.h" -#include "lyc_irq.h" -#include "m3_extra_cycles.h" - -Mode0Irq::Mode0Irq(const LyCounter &lyCounter_in, const LycIrq &lycIrq_in, - const M3ExtraCycles &m3ExtraCycles_in, unsigned char &ifReg_in) : - VideoEvent(0), - lyCounter(lyCounter_in), - lycIrq(lycIrq_in), - m3ExtraCycles(m3ExtraCycles_in), - ifReg(ifReg_in) -{ -} - -static unsigned baseCycle(const bool ds) { - return 80 + 169 + ds * 3 + 1 - ds; -} - -void Mode0Irq::doEvent() { - if (lycIrq.time() == DISABLED_TIME || lyCounter.ly() != lycIrq.lycReg()) - ifReg |= 2; - - unsigned long nextTime = lyCounter.time(); - unsigned nextLy = lyCounter.ly() + 1; - - if (nextLy == 144) { - nextLy = 0; - nextTime += lyCounter.lineTime() * 10; - } - - nextTime += (baseCycle(lyCounter.isDoubleSpeed()) + m3ExtraCycles(nextLy)) << lyCounter.isDoubleSpeed(); - - setTime(nextTime); -} - -void Mode0Irq::mode3CyclesChange() { - unsigned long nextTime = lyCounter.time() - lyCounter.lineTime(); - unsigned nextLy = lyCounter.ly(); - - if (time() > lyCounter.time()) { - nextTime += lyCounter.lineTime(); - ++nextLy; - - if (nextLy > 143) { - nextTime += lyCounter.lineTime() * (154 - nextLy); - nextLy = 0; - } - } - - nextTime += (baseCycle(lyCounter.isDoubleSpeed()) + m3ExtraCycles(nextLy)) << lyCounter.isDoubleSpeed(); - - setTime(nextTime); -} - -unsigned long Mode0Irq::schedule(const unsigned statReg, const M3ExtraCycles &m3ExtraCycles, const LyCounter &lyCounter, const unsigned long cycleCounter) { - if (!(statReg & 0x08)) - return DISABLED_TIME; - - unsigned line = lyCounter.ly(); - int next = static_cast(baseCycle(lyCounter.isDoubleSpeed())) - static_cast(lyCounter.lineCycles(cycleCounter)); - - if (line < 144 && next + static_cast(m3ExtraCycles(line)) <= 0) { - next += 456; - ++line; - } - - if (line > 143) { - next += (154 - line) * 456; - line = 0; - } - - next += m3ExtraCycles(line); - - return cycleCounter + (static_cast(next) << lyCounter.isDoubleSpeed()); -} diff --git a/supergameboy/libgambatte/src/video/mode0_irq.h b/supergameboy/libgambatte/src/video/mode0_irq.h deleted file mode 100644 index bc5f1540..00000000 --- a/supergameboy/libgambatte/src/video/mode0_irq.h +++ /dev/null @@ -1,42 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef VIDEO_MODE0_IRQ_H -#define VIDEO_MODE0_IRQ_H - -class LycIrq; -class M3ExtraCycles; - -#include "ly_counter.h" - -class Mode0Irq : public VideoEvent { - const LyCounter &lyCounter; - const LycIrq &lycIrq; - const M3ExtraCycles &m3ExtraCycles; - unsigned char &ifReg; - -public: - Mode0Irq(const LyCounter &lyCounter_in, const LycIrq &lycIrq_in, - const M3ExtraCycles &m3ExtraCycles_in, unsigned char &ifReg_in); - - void doEvent(); - void mode3CyclesChange(); - static unsigned long schedule(unsigned statReg, const M3ExtraCycles &m3ExtraCycles, const LyCounter &lyCounter, unsigned long cycleCounter); -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/mode1_irq.cpp b/supergameboy/libgambatte/src/video/mode1_irq.cpp deleted file mode 100644 index ddafe25c..00000000 --- a/supergameboy/libgambatte/src/video/mode1_irq.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "mode1_irq.h" - -Mode1Irq::Mode1Irq(unsigned char &ifReg_in) : - VideoEvent(0), - ifReg(ifReg_in) -{ - setDoubleSpeed(false); - setM1StatIrqEnabled(false); -} - -void Mode1Irq::doEvent() { - ifReg |= flags; - - setTime(time() + frameTime); -} diff --git a/supergameboy/libgambatte/src/video/mode1_irq.h b/supergameboy/libgambatte/src/video/mode1_irq.h deleted file mode 100644 index f4e6270f..00000000 --- a/supergameboy/libgambatte/src/video/mode1_irq.h +++ /dev/null @@ -1,56 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef VIDEO_MODE1_IRQ_H -#define VIDEO_MODE1_IRQ_H - -#include "ly_counter.h" -#include "basic_add_event.h" - -class Mode1Irq : public VideoEvent { - unsigned char &ifReg; - unsigned long frameTime; - unsigned char flags; - -public: - Mode1Irq(unsigned char &ifReg_in); - - void doEvent(); - - static unsigned long schedule(const LyCounter &lyCounter, unsigned long cycleCounter) { - return lyCounter.nextFrameCycle(144 * 456, cycleCounter); - } - - void setDoubleSpeed(const bool ds) { - frameTime = 70224 << ds; - } - - void setM1StatIrqEnabled(const bool enabled) { - flags = (enabled * 2) | 1; - } -}; - -static inline void addEvent(event_queue &q, Mode1Irq *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, Mode1Irq *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -#endif diff --git a/supergameboy/libgambatte/src/video/mode2_irq.cpp b/supergameboy/libgambatte/src/video/mode2_irq.cpp deleted file mode 100644 index b1a419ea..00000000 --- a/supergameboy/libgambatte/src/video/mode2_irq.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "mode2_irq.h" - -#include "ly_counter.h" -#include "lyc_irq.h" - -Mode2Irq::Mode2Irq(const LyCounter &lyCounter_in, const LycIrq &lycIrq_in, - unsigned char &ifReg_in) : - VideoEvent(0), - lyCounter(lyCounter_in), - lycIrq(lycIrq_in), - ifReg(ifReg_in) -{ -} - -void Mode2Irq::doEvent() { - const unsigned ly = lyCounter.time() - time() < 8 ? (lyCounter.ly() == 153 ? 0 : lyCounter.ly() + 1) : lyCounter.ly(); - - if (lycIrq.time() == DISABLED_TIME || (lycIrq.lycReg() != 0 && ly != (lycIrq.lycReg() + 1U)) || (lycIrq.lycReg() == 0 && ly > 1)) - ifReg |= 2; - - setTime(time() + lyCounter.lineTime()); - - if (ly == 0) - setTime(time() - 4); - else if (ly == 143) - setTime(time() + lyCounter.lineTime() * 10 + 4); -} - -unsigned long Mode2Irq::schedule(const unsigned statReg, const LyCounter &lyCounter, const unsigned long cycleCounter) { - if ((statReg & 0x28) != 0x20) - return DISABLED_TIME; - - unsigned next = lyCounter.time() - cycleCounter; - - if (lyCounter.ly() >= 143 || (lyCounter.ly() == 142 && next <= 4)) { - next += (153u - lyCounter.ly()) * lyCounter.lineTime(); - } else { - if (next <= 4) - next += lyCounter.lineTime(); - - next -= 4; - } - - return cycleCounter + next; -} diff --git a/supergameboy/libgambatte/src/video/mode2_irq.h b/supergameboy/libgambatte/src/video/mode2_irq.h deleted file mode 100644 index 2ea86055..00000000 --- a/supergameboy/libgambatte/src/video/mode2_irq.h +++ /dev/null @@ -1,40 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef VIDEO_MODE2_IRQ_H -#define VIDEO_MODE2_IRQ_H - -class LycIrq; - -#include "ly_counter.h" -#include "basic_add_event.h" - -class Mode2Irq : public VideoEvent { - const LyCounter &lyCounter; - const LycIrq &lycIrq; - unsigned char &ifReg; - -public: - Mode2Irq(const LyCounter &lyCounter_in, const LycIrq &lycIrq_in, - unsigned char &ifReg_in); - - void doEvent(); - static unsigned long schedule(unsigned statReg, const LyCounter &lyCounter, unsigned long cycleCounter); -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/mode3_event.cpp b/supergameboy/libgambatte/src/video/mode3_event.cpp deleted file mode 100644 index 84502315..00000000 --- a/supergameboy/libgambatte/src/video/mode3_event.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "mode3_event.h" -#include "mode0_irq.h" -#include "irq_event.h" - -Mode3Event::Mode3Event(event_queue &m3EventQueue_in, - event_queue &vEventQueue_in, - Mode0Irq &mode0Irq_in, IrqEvent &irqEvent_in) : - VideoEvent(1), - m3EventQueue(m3EventQueue_in), - vEventQueue(vEventQueue_in), - mode0Irq(mode0Irq_in), - irqEvent(irqEvent_in) -{ -} - -void Mode3Event::doEvent() { - m3EventQueue.top()->doEvent(); - - if (m3EventQueue.top()->time() == DISABLED_TIME) - m3EventQueue.pop(); - else - m3EventQueue.modify_root(m3EventQueue.top()); - - if (mode0Irq.time() != DISABLED_TIME) { - const unsigned long oldTime = mode0Irq.time(); - mode0Irq.mode3CyclesChange(); - - if (mode0Irq.time() != oldTime) { - // position in irqEventQueue should remain the same. - // The same may be possible for vEventQueue, with some precautions. - if (irqEvent.time() == oldTime) { - irqEvent.schedule(); - - if (mode0Irq.time() > oldTime) - vEventQueue.inc(&irqEvent, &irqEvent); - else - vEventQueue.dec(&irqEvent, &irqEvent); - } - - } - } - - setTime(schedule(m3EventQueue)); -} diff --git a/supergameboy/libgambatte/src/video/mode3_event.h b/supergameboy/libgambatte/src/video/mode3_event.h deleted file mode 100644 index 7f9aedc6..00000000 --- a/supergameboy/libgambatte/src/video/mode3_event.h +++ /dev/null @@ -1,47 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef MODE3_EVENT_H -#define MODE3_EVENT_H - -class Mode0Irq; -class IrqEvent; - -#include "video_event.h" -#include "video_event_comparer.h" -#include "../event_queue.h" - -class Mode3Event : public VideoEvent { - event_queue &m3EventQueue; - event_queue &vEventQueue; - Mode0Irq &mode0Irq; - IrqEvent &irqEvent; - -public: - Mode3Event(event_queue &m3EventQueue_in, - event_queue &vEventQueue_in, - Mode0Irq &mode0Irq_in, IrqEvent &irqEvent_in); - - void doEvent(); - - static unsigned long schedule(const event_queue &m3EventQueue) { - return m3EventQueue.empty() ? static_cast(DISABLED_TIME) : m3EventQueue.top()->time(); - } -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/sc_reader.cpp b/supergameboy/libgambatte/src/video/sc_reader.cpp deleted file mode 100644 index fff2f66c..00000000 --- a/supergameboy/libgambatte/src/video/sc_reader.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "sc_reader.h" - -#include "../event_queue.h" -#include "../savestate.h" - -ScReader::ScReader() : VideoEvent(2) { - setDoubleSpeed(false); - setScxSource(0); - setScySource(0); - scx_[1] = scx_[0] = scxSrc; - scy_[1] = scy_[0] = scySrc; -} - -void ScReader::doEvent() { - scy_[0] = scy_[1]; - scy_[1] = scySrc; - scx_[0] = scx_[1]; - scx_[1] = scxSrc; - - if ((scy_[0] ^ scy_[1]) | (scx_[0] ^ scx_[1])) - setTime(time() + incCycles); - else - setTime(DISABLED_TIME); - -} - -void ScReader::saveState(SaveState &state) const { - state.ppu.scx[0] = scx_[0]; - state.ppu.scx[1] = scx_[1]; - state.ppu.scy[0] = scy_[0]; - state.ppu.scy[1] = scy_[1]; -} - -void ScReader::loadState(const SaveState &state) { - scx_[0] = state.ppu.scx[0]; - scx_[1] = state.ppu.scx[1]; - scy_[0] = state.ppu.scy[0]; - scy_[1] = state.ppu.scy[1]; -} - -void ScReader::setDoubleSpeed(const bool dS_in) { - dS = dS_in; - incCycles = 8u << dS_in; -} diff --git a/supergameboy/libgambatte/src/video/sc_reader.h b/supergameboy/libgambatte/src/video/sc_reader.h deleted file mode 100644 index 0d7ef7d1..00000000 --- a/supergameboy/libgambatte/src/video/sc_reader.h +++ /dev/null @@ -1,77 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef SC_READER_H -#define SC_READER_H - -class SaveState; -template class event_queue; - -#include "video_event.h" -#include "video_event_comparer.h" -#include "basic_add_event.h" - -class ScReader : public VideoEvent { - unsigned char scx_[2]; - unsigned char scy_[2]; - - unsigned char scxSrc; - unsigned char scySrc; - unsigned char incCycles; - bool dS; - -public: - ScReader(); - - void doEvent(); - - unsigned scx() const { - return /*(*/scx_[0]/* & ~0x7) | (scxSrc & 0x7)*/; - } - - unsigned scy() const { - return scy_[0]; - } - - static unsigned long schedule(const unsigned long lastUpdate, const unsigned long videoCycles, const unsigned scReadOffset, const bool dS) { - return lastUpdate + ((8u - ((videoCycles - scReadOffset) & 7)) << dS); - } - - void setDoubleSpeed(bool dS_in); - - void setScxSource(const unsigned scxSrc_in) { - scxSrc = scxSrc_in; - } - - void setScySource(const unsigned scySrc_in) { - scySrc = scySrc_in; - } - - void saveState(SaveState &state) const; - void loadState(const SaveState &state); -}; - -static inline void addEvent(event_queue &q, ScReader *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, ScReader *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -#endif diff --git a/supergameboy/libgambatte/src/video/scx_reader.cpp b/supergameboy/libgambatte/src/video/scx_reader.cpp deleted file mode 100644 index 6baa97f9..00000000 --- a/supergameboy/libgambatte/src/video/scx_reader.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "scx_reader.h" - -#include "../event_queue.h" -#include "m3_extra_cycles.h" -#include "../savestate.h" - -ScxReader::ScxReader(event_queue &m3EventQueue_in, -// VideoEvent &wyReader3_in, - VideoEvent &wxReader_in, - VideoEvent &weEnableChecker_in, - VideoEvent &weDisableChecker_in, - M3ExtraCycles &m3ExtraCycles) : - VideoEvent(1), - m3EventQueue(m3EventQueue_in), -// wyReader3(wyReader3_in), - wxReader(wxReader_in), - weEnableChecker(weEnableChecker_in), - weDisableChecker(weDisableChecker_in), - m3ExtraCycles(m3ExtraCycles) -{ - setDoubleSpeed(false); - setSource(0); - scxAnd7_ = src; -} - -static void rescheduleEvent(event_queue &m3EventQueue, VideoEvent& event, const unsigned long diff) { - if (event.time() != VideoEvent::DISABLED_TIME) { - event.setTime(event.time() + diff); - (diff & 0x10) ? m3EventQueue.dec(&event, &event) : m3EventQueue.inc(&event, &event); - } -} - -void ScxReader::doEvent() { - const unsigned long diff = (static_cast(src) - static_cast(scxAnd7_)) << dS; - scxAnd7_ = src; - -// rescheduleEvent(m3EventQueue, wyReader3, diff); - rescheduleEvent(m3EventQueue, wxReader, diff); - rescheduleEvent(m3EventQueue, weEnableChecker, diff); - rescheduleEvent(m3EventQueue, weDisableChecker, diff); - - m3ExtraCycles.invalidateCache(); - - setTime(DISABLED_TIME); -} - -void ScxReader::saveState(SaveState &state) const { - state.ppu.scxAnd7 = scxAnd7_; -} - -void ScxReader::loadState(const SaveState &state) { - scxAnd7_ = state.ppu.scxAnd7; -} diff --git a/supergameboy/libgambatte/src/video/scx_reader.h b/supergameboy/libgambatte/src/video/scx_reader.h deleted file mode 100644 index f92f8b2b..00000000 --- a/supergameboy/libgambatte/src/video/scx_reader.h +++ /dev/null @@ -1,85 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef SCX_READER_H -#define SCX_READER_H - -template class event_queue; -class M3ExtraCycles; -class SaveState; - -#include "video_event.h" -#include "video_event_comparer.h" -#include "ly_counter.h" -#include "basic_add_event.h" - -class ScxReader : public VideoEvent { - event_queue &m3EventQueue; -// VideoEvent &wyReader3; - VideoEvent &wxReader; - VideoEvent &weEnableChecker; - VideoEvent &weDisableChecker; - M3ExtraCycles &m3ExtraCycles; - - unsigned char scxAnd7_; - unsigned char src; - bool dS; - -public: - ScxReader(event_queue &m3EventQueue_in, -// VideoEvent &wyReader3_in, - VideoEvent &wxReader_in, - VideoEvent &weEnableChecker_in, - VideoEvent &weDisableChecker_in, - M3ExtraCycles &m3ExtraCycles); - - void doEvent(); - - unsigned getSource() const { - return src; - } - - static unsigned long schedule(const LyCounter &lyCounter, const unsigned long cycleCounter) { - return lyCounter.nextLineCycle(82 + lyCounter.isDoubleSpeed() * 3, cycleCounter); - } - - unsigned scxAnd7() const { - return scxAnd7_; - } - - void setDoubleSpeed(const bool dS_in) { - dS = dS_in; - } - - void setSource(const unsigned scxSrc) { - src = scxSrc & 7; - } - - void saveState(SaveState &state) const; - void loadState(const SaveState &state); -}; - -static inline void addEvent(event_queue &q, ScxReader *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, ScxReader *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -#endif diff --git a/supergameboy/libgambatte/src/video/sprite_mapper.cpp b/supergameboy/libgambatte/src/video/sprite_mapper.cpp deleted file mode 100644 index f1e9cd97..00000000 --- a/supergameboy/libgambatte/src/video/sprite_mapper.cpp +++ /dev/null @@ -1,187 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre AamÃ¥s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "sprite_mapper.h" -#include "m3_extra_cycles.h" -#include "../insertion_sort.h" -#include - -#include - -SpriteMapper::OamReader::OamReader(const LyCounter &lyCounter, const unsigned char *oamram) -: lyCounter(lyCounter), oamram(oamram) { - reset(oamram); -} - -void SpriteMapper::OamReader::reset(const unsigned char *const oamram) { - this->oamram = oamram; - setLargeSpritesSrc(false); - lu = 0; - lastChange = 0xFF; - std::fill_n(szbuf, 40, largeSpritesSrc); - - unsigned pos = 0; - unsigned distance = 80; - - while (distance--) { - buf[pos] = oamram[((pos * 2) & ~3) | (pos & 1)]; - ++pos; - } -} - -static unsigned toPosCycles(const unsigned long cc, const LyCounter &lyCounter) { - unsigned lc = lyCounter.lineCycles(cc) + 4 - lyCounter.isDoubleSpeed() * 3u; - - if (lc >= 456) - lc -= 456; - - return lc >> 1; -} - -void SpriteMapper::OamReader::update(const unsigned long cc) { - if (cc > lu) { - if (changed()) { - const unsigned lulc = toPosCycles(lu, lyCounter); - - unsigned pos = std::min(lulc, 40u); - unsigned distance = 40; - - if ((cc - lu) >> lyCounter.isDoubleSpeed() < 456) { - const unsigned cclc = toPosCycles(cc, lyCounter); - - distance = std::min(cclc, 40u) - pos + (cclc < lulc ? 40 : 0); - } - - { - const unsigned targetDistance = lastChange - pos + (lastChange <= pos ? 40 : 0); - - if (targetDistance <= distance) { - distance = targetDistance; - lastChange = 0xFF; - } - } - - while (distance--) { - if (pos >= 40) - pos = 0; - - szbuf[pos] = largeSpritesSrc; - buf[pos * 2] = oamram[pos * 4]; - buf[pos * 2 + 1] = oamram[pos * 4 + 1]; - - ++pos; - } - } - - lu = cc; - } -} - -void SpriteMapper::OamReader::change(const unsigned long cc) { - update(cc); - lastChange = std::min(toPosCycles(lu, lyCounter), 40u); -} - -void SpriteMapper::OamReader::setStatePtrs(SaveState &state) { - state.ppu.oamReaderBuf.set(buf, sizeof buf); - state.ppu.oamReaderSzbuf.set(szbuf, sizeof(szbuf) / sizeof(bool)); -} - -void SpriteMapper::OamReader::enableDisplay(const unsigned long cc) { - std::memset(buf, 0x00, sizeof(buf)); - std::fill(szbuf, szbuf + 40, false); - lu = cc + 160; - lastChange = 40; -} - -bool SpriteMapper::OamReader::oamAccessible(const unsigned long cycleCounter, const M3ExtraCycles &m3ExtraCycles) const { - unsigned ly = lyCounter.ly(); - unsigned lc = lyCounter.lineCycles(cycleCounter) + 4 - lyCounter.isDoubleSpeed() * 3u; - - if (lc >= 456) { - lc -= 456; - ++ly; - } - - return cycleCounter < lu || ly >= 144 || lc >= 80 + 173 + m3ExtraCycles(ly); -} - -SpriteMapper::SpriteMapper(M3ExtraCycles &m3ExtraCycles, - const LyCounter &lyCounter, - const unsigned char *const oamram) : - VideoEvent(2), - m3ExtraCycles(m3ExtraCycles), - oamReader(lyCounter, oamram), - cgb(false) -{ - clearMap(); -} - -void SpriteMapper::reset(const unsigned char *const oamram, const bool cgb_in) { - oamReader.reset(oamram); - cgb = cgb_in; - clearMap(); -} - -void SpriteMapper::clearMap() { - std::memset(num, cgb ? 0 : NEED_SORTING_MASK, sizeof(num)); -} - -void SpriteMapper::mapSprites() { - clearMap(); - - for (unsigned i = 0x00; i < 0x50; i += 2) { - const unsigned spriteHeight = 8u << largeSprites(i >> 1); - const unsigned bottom_pos = posbuf()[i] - (17u - spriteHeight); - - if (bottom_pos >= 143 + spriteHeight) - continue; - - unsigned char *map = spritemap; - unsigned char *n = num; - - if (bottom_pos >= spriteHeight) { - const unsigned startly = bottom_pos + 1 - spriteHeight; - n += startly; - map += startly * 10; - } - - unsigned char *const end = num + (bottom_pos >= 143 ? 143 : bottom_pos); - - do { - if ((*n & ~NEED_SORTING_MASK) < 10) - map[(*n)++ & ~NEED_SORTING_MASK] = i; - - map += 10; - ++n; - } while (n <= end); - } - - m3ExtraCycles.invalidateCache(); -} - -void SpriteMapper::sortLine(const unsigned ly) const { - num[ly] &= ~NEED_SORTING_MASK; - insertionSort(spritemap + ly * 10, spritemap + ly * 10 + num[ly], SpxLess(posbuf())); -} - -void SpriteMapper::doEvent() { - oamReader.update(time()); - mapSprites(); - setTime(oamReader.changed() ? time() + oamReader.lyCounter.lineTime() : static_cast(DISABLED_TIME)); -} diff --git a/supergameboy/libgambatte/src/video/sprite_mapper.h b/supergameboy/libgambatte/src/video/sprite_mapper.h deleted file mode 100644 index 25b8090b..00000000 --- a/supergameboy/libgambatte/src/video/sprite_mapper.h +++ /dev/null @@ -1,148 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef SPRITE_MAPPER_H -#define SPRITE_MAPPER_H - -#include "video_event.h" -//#include "video_event_comparer.h" -#include "ly_counter.h" -#include "basic_add_event.h" -#include "../savestate.h" - -class M3ExtraCycles; -class SaveState; - -class SpriteMapper : public VideoEvent { - class OamReader { - unsigned char buf[80]; - bool szbuf[40]; - - public: - const LyCounter &lyCounter; - - private: - const unsigned char *oamram; - unsigned long lu; - unsigned char lastChange; - bool largeSpritesSrc; - - public: - OamReader(const LyCounter &lyCounter, const unsigned char *oamram); - void reset(const unsigned char *oamram); - void change(unsigned long cc); - void change(const unsigned char *oamram, unsigned long cc) { change(cc); this->oamram = oamram; } - bool changed() const { return lastChange != 0xFF; } - bool largeSprites(unsigned spNr) const { return szbuf[spNr]; } - const unsigned char *oam() const { return oamram; } - void resetCycleCounter(const unsigned long oldCc, const unsigned long newCc) { lu = lu + newCc - oldCc; } - void setLargeSpritesSrc(const bool src) { largeSpritesSrc = src; } - void update(unsigned long cc); - const unsigned char *spritePosBuf() const { return buf; } - void setStatePtrs(SaveState &state); - void enableDisplay(unsigned long cc); - void saveState(SaveState &state) const { state.ppu.enableDisplayM0Time = lu; } - void loadState(const SaveState &state) { lu = state.ppu.enableDisplayM0Time; } - void resetVideoState() { change(lu); } - bool oamAccessible(unsigned long cycleCounter, const M3ExtraCycles &m3ExtraCycles) const; - bool inactivePeriodAfterDisplayEnable(const unsigned long cc) const { return cc < lu; } - }; - - enum { NEED_SORTING_MASK = 0x80 }; - -public: - class SpxLess { - const unsigned char *const posbuf_plus1; - - public: - SpxLess(const unsigned char *const posbuf) : posbuf_plus1(posbuf + 1) {} - - bool operator()(const unsigned char l, const unsigned char r) const { - return posbuf_plus1[l] < posbuf_plus1[r]; - } - }; - -private: - mutable unsigned char spritemap[144*10]; - mutable unsigned char num[144]; - - M3ExtraCycles &m3ExtraCycles; - OamReader oamReader; - - bool cgb; - - void clearMap(); - void mapSprites(); - void sortLine(unsigned ly) const; - -public: - SpriteMapper(M3ExtraCycles &m3ExtraCycles, - const LyCounter &lyCounter, - const unsigned char *oamram_in); - void reset(const unsigned char *oamram, bool cgb_in); - void doEvent(); - bool isCgb() const { return cgb; } - bool largeSprites(unsigned spNr) const { return oamReader.largeSprites(spNr); } - unsigned numSprites(const unsigned ly) const { return num[ly] & ~NEED_SORTING_MASK; } - void oamChange(const unsigned long cc) { oamReader.change(cc); } - void oamChange(const unsigned char *oamram, const unsigned long cc) { oamReader.change(oamram, cc); } - const unsigned char *oamram() const { return oamReader.oam(); } - const unsigned char *posbuf() const { return oamReader.spritePosBuf(); } - void preCounterChange(const unsigned long cc) { oamReader.update(cc); } - - void resetCycleCounter(const unsigned long oldCc, const unsigned long newCc) { - oamReader.resetCycleCounter(oldCc, newCc); - } - - static unsigned long schedule(const LyCounter &lyCounter, const unsigned long cycleCounter) { - return lyCounter.nextLineCycle(80, cycleCounter); - } - - void setLargeSpritesSource(const bool src) { oamReader.setLargeSpritesSrc(src); } - - const unsigned char* sprites(const unsigned ly) const { - if (num[ly] & NEED_SORTING_MASK) - sortLine(ly); - - return spritemap + ly * 10; - } - - void setStatePtrs(SaveState &state) { oamReader.setStatePtrs(state); } - void enableDisplay(unsigned long cc) { oamReader.enableDisplay(cc); } - void saveState(SaveState &state) const { oamReader.saveState(state); } - void loadState(const SaveState &state) { oamReader.loadState(state); } - void resetVideoState() { oamReader.resetVideoState(); } - - bool oamAccessible(unsigned long cycleCounter) const { - return oamReader.oamAccessible(cycleCounter, m3ExtraCycles); - } - - bool inactivePeriodAfterDisplayEnable(const unsigned long cc) const { - return oamReader.inactivePeriodAfterDisplayEnable(cc); - } -}; - -static inline void addEvent(event_queue &q, SpriteMapper *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, SpriteMapper *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -#endif diff --git a/supergameboy/libgambatte/src/video/video_event.h b/supergameboy/libgambatte/src/video/video_event.h deleted file mode 100644 index fb64d5b2..00000000 --- a/supergameboy/libgambatte/src/video/video_event.h +++ /dev/null @@ -1,50 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef VIDEO_EVENT_H -#define VIDEO_EVENT_H - -class VideoEvent { - unsigned long time_; - const unsigned char priority_; - -public: - enum { DISABLED_TIME = 0xFFFFFFFFu }; - - VideoEvent(const unsigned priority_in) : - time_(DISABLED_TIME), - priority_(priority_in) - {} - - virtual ~VideoEvent() {} - virtual void doEvent() = 0; - - unsigned priority() const { - return priority_; - } - - unsigned long time() const { - return time_; - } - - void setTime(const unsigned long time_in) { - time_ = time_in; - } -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/video_event_comparer.h b/supergameboy/libgambatte/src/video/video_event_comparer.h deleted file mode 100644 index 4eb25969..00000000 --- a/supergameboy/libgambatte/src/video/video_event_comparer.h +++ /dev/null @@ -1,31 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef VIDEO_EVENT_COMPARER_H -#define VIDEO_EVENT_COMPARER_H - -#include "video_event.h" - -class VideoEventComparer { -public: - bool less(const VideoEvent *const a, const VideoEvent *const b) const { - return a->time() < b->time() || (a->time() == b->time() && a->priority() < b->priority()); - } -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/we.cpp b/supergameboy/libgambatte/src/video/we.cpp deleted file mode 100644 index d5e66c47..00000000 --- a/supergameboy/libgambatte/src/video/we.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "we.h" -#include "../savestate.h" - -We::WeEnableChecker::WeEnableChecker(We &we) : - VideoEvent(8), - we(we) -{} - -void We::WeEnableChecker::doEvent() { - we.set(we.src_); - - setTime(DISABLED_TIME); -} - -We::WeDisableChecker::WeDisableChecker(We &we) : - VideoEvent(9), - we(we) -{} - -void We::WeDisableChecker::doEvent() { - we.set(we.we_ & we.src_); - - setTime(DISABLED_TIME); -} - -We::We(M3ExtraCycles &m3ExtraCycles) : - m3ExtraCycles_(m3ExtraCycles), - enableChecker_(*this), - disableChecker_(*this) -{ - setSource(false); - we_ = src_; -} - -void We::saveState(SaveState &state) const { - state.ppu.lcdc = (state.ppu.lcdc & ~0x20) | we_ << 5; -} - -void We::loadState(const SaveState &state) { - we_ = state.ppu.lcdc >> 5 & 1; -} diff --git a/supergameboy/libgambatte/src/video/we.h b/supergameboy/libgambatte/src/video/we.h deleted file mode 100644 index d800ca11..00000000 --- a/supergameboy/libgambatte/src/video/we.h +++ /dev/null @@ -1,118 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef WE_H -#define WE_H - -class SaveState; - -#include "video_event.h" -#include "ly_counter.h" -#include "m3_extra_cycles.h" -#include "basic_add_event.h" - -class We { -public: - class WeEnableChecker : public VideoEvent { - We &we; - - public: - WeEnableChecker(We &we); - - void doEvent(); - - static unsigned long schedule(const unsigned scxAnd7, const unsigned wx, const LyCounter &lyCounter, const unsigned long cycleCounter) { - return lyCounter.nextLineCycle(scxAnd7 + 82 + wx + lyCounter.isDoubleSpeed() * 3, cycleCounter); - } - }; - - class WeDisableChecker : public VideoEvent { - We &we; - - public: - WeDisableChecker(We &we); - - void doEvent(); - - static unsigned long schedule(const unsigned scxAnd7, const unsigned wx, const LyCounter &lyCounter, const unsigned long cycleCounter) { - return lyCounter.nextLineCycle(scxAnd7 + 88 + wx + lyCounter.isDoubleSpeed() * 3, cycleCounter); - } - }; - - friend class WeEnableChecker; - friend class WeDisableChecker; - -private: - M3ExtraCycles &m3ExtraCycles_; - WeEnableChecker enableChecker_; - WeDisableChecker disableChecker_; - - bool we_; - bool src_; - - void set(const bool value) { - if (we_ != value) - m3ExtraCycles_.invalidateCache(); - - we_ = value; - } - -public: - We(M3ExtraCycles &m3ExtraCycles); - - WeDisableChecker& disableChecker() { - return disableChecker_; - } - - WeEnableChecker& enableChecker() { - return enableChecker_; - } - - bool getSource() const { - return src_; - } - - void setSource(const bool src) { - src_ = src; - } - - bool value() const { - return we_; - } - - void saveState(SaveState &state) const; - void loadState(const SaveState &state); -}; - -static inline void addEvent(event_queue &q, We::WeEnableChecker *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, We::WeEnableChecker *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -static inline void addEvent(event_queue &q, We::WeDisableChecker *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, We::WeDisableChecker *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -#endif diff --git a/supergameboy/libgambatte/src/video/we_master_checker.cpp b/supergameboy/libgambatte/src/video/we_master_checker.cpp deleted file mode 100644 index bff81585..00000000 --- a/supergameboy/libgambatte/src/video/we_master_checker.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "we_master_checker.h" - -#include "event_queue.h" -#include "wy.h" -#include "basic_add_event.h" -#include "../savestate.h" - -WeMasterChecker::WeMasterChecker(event_queue &m3EventQueue_in, - Wy &wy_in, - const LyCounter &lyCounter_in, - M3ExtraCycles &m3ExtraCycles) : - VideoEvent(10), - m3EventQueue(m3EventQueue_in), - wy(wy_in), - lyCounter(lyCounter_in), - m3ExtraCycles(m3ExtraCycles) -{ - weMaster_ = false; -} - -void WeMasterChecker::doEvent() { -// if (wy.value() >= lyCounter.ly()) { - if (!weMaster_ /*&& src */&& wy.value() == lyCounter.ly()) { - wy.weirdAssWeMasterEnableOnWyLineCase(); - addEvent(m3EventQueue, &wy.reader4(), Wy::WyReader4::schedule(lyCounter, time())); - } - - set(true); -// } - - setTime(time() + (70224U << lyCounter.isDoubleSpeed())); -} - -void WeMasterChecker::saveState(SaveState &state) const { - state.ppu.weMaster = weMaster_; -} - -void WeMasterChecker::loadState(const SaveState &state) { - weMaster_ = state.ppu.weMaster; -} diff --git a/supergameboy/libgambatte/src/video/we_master_checker.h b/supergameboy/libgambatte/src/video/we_master_checker.h deleted file mode 100644 index cf1f1209..00000000 --- a/supergameboy/libgambatte/src/video/we_master_checker.h +++ /dev/null @@ -1,73 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef WE_MASTER_CHECKER_H -#define WE_MASTER_CHECKER_H - -template class event_queue; -class Wy; -class SaveState; - -#include "video_event.h" -#include "video_event_comparer.h" -#include "ly_counter.h" -#include "m3_extra_cycles.h" - -class WeMasterChecker : public VideoEvent { - event_queue &m3EventQueue; - Wy &wy; - const LyCounter &lyCounter; - M3ExtraCycles &m3ExtraCycles; - - bool weMaster_; - - void set(const bool value) { - if (weMaster_ != value) - m3ExtraCycles.invalidateCache(); - - weMaster_ = value; - } - -public: - WeMasterChecker(event_queue &m3EventQueue_in, - Wy &wy_in, - const LyCounter &lyCounter_in, - M3ExtraCycles &m3ExtraCycles); - - void doEvent(); - - static unsigned long schedule(const unsigned wySrc, const bool weSrc, const LyCounter &lyCounter, const unsigned long cycleCounter) { - if (weSrc && wySrc < 143) - return lyCounter.nextFrameCycle(wySrc * 456ul + 448 + lyCounter.isDoubleSpeed() * 4, cycleCounter); - else - return DISABLED_TIME; - } - - void unset() { - set(false); - } - - bool weMaster() const { - return weMaster_; - } - - void saveState(SaveState &state) const; - void loadState(const SaveState &state); -}; - -#endif diff --git a/supergameboy/libgambatte/src/video/window.h b/supergameboy/libgambatte/src/video/window.h deleted file mode 100644 index 790d612c..00000000 --- a/supergameboy/libgambatte/src/video/window.h +++ /dev/null @@ -1,47 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef WINDOW_H -#define WINDOW_H - -#include "we.h" -#include "we_master_checker.h" -#include "wy.h" -#include "wx_reader.h" - -struct Window { - We we; - WeMasterChecker weMasterChecker; - Wy wyReg; - WxReader wxReader; - - Window(event_queue &m3EventQueue, - const LyCounter &lyCounter, - M3ExtraCycles &m3ExtraCycles) : - we(m3ExtraCycles), - weMasterChecker(m3EventQueue, wyReg, lyCounter, m3ExtraCycles), - wyReg(lyCounter, weMasterChecker, m3ExtraCycles), - wxReader(m3EventQueue, we.enableChecker(), we.disableChecker(), m3ExtraCycles) - {} - - bool enabled(const unsigned ly) const { - return we.value() && wxReader.wx() < 0xA7 && ly >= wyReg.value() && (weMasterChecker.weMaster() || ly == wyReg.value()); - } -}; - -#endif /*WINDOW_H*/ diff --git a/supergameboy/libgambatte/src/video/wx_reader.cpp b/supergameboy/libgambatte/src/video/wx_reader.cpp deleted file mode 100644 index 80a6b640..00000000 --- a/supergameboy/libgambatte/src/video/wx_reader.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aam�s * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "wx_reader.h" - -#include "../event_queue.h" -#include "m3_extra_cycles.h" -#include "../savestate.h" - -WxReader::WxReader(event_queue &m3EventQueue, - VideoEvent &weEnableChecker, - VideoEvent &weDisableChecker, - M3ExtraCycles &m3ExtraCycles) : -VideoEvent(7), -m3EventQueue(m3EventQueue), -weEnableChecker(weEnableChecker), -weDisableChecker(weDisableChecker), -m3ExtraCycles(m3ExtraCycles) -{ - setDoubleSpeed(false); - setSource(0); - wx_ = src_; -} - -static void rescheduleEvent(event_queue &m3EventQueue, VideoEvent& event, const unsigned long diff) { - if (event.time() != VideoEvent::DISABLED_TIME) { - event.setTime(event.time() + diff); - (diff & 0x200) ? m3EventQueue.dec(&event, &event) : m3EventQueue.inc(&event, &event); - } -} - -void WxReader::doEvent() { - const unsigned long diff = (static_cast(src_) - static_cast(wx_)) << dS; - wx_ = src_; - - rescheduleEvent(m3EventQueue, weEnableChecker, diff); - rescheduleEvent(m3EventQueue, weDisableChecker, diff); - - m3ExtraCycles.invalidateCache(); - - setTime(DISABLED_TIME); -} - -void WxReader::saveState(SaveState &state) const { - state.ppu.wx = wx_; -} - -void WxReader::loadState(const SaveState &state) { - wx_ = state.ppu.wx; -} diff --git a/supergameboy/libgambatte/src/video/wx_reader.h b/supergameboy/libgambatte/src/video/wx_reader.h deleted file mode 100644 index 1681f8a4..00000000 --- a/supergameboy/libgambatte/src/video/wx_reader.h +++ /dev/null @@ -1,83 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef WX_READER_H -#define WX_READER_H - -template class event_queue; -class M3ExtraCycles; -class SaveState; - -#include "video_event.h" -#include "video_event_comparer.h" -#include "ly_counter.h" -#include "basic_add_event.h" -#include - -class WxReader : public VideoEvent { - event_queue &m3EventQueue; - VideoEvent &weEnableChecker; - VideoEvent &weDisableChecker; - M3ExtraCycles &m3ExtraCycles; - - unsigned char wx_; - unsigned char src_; - bool dS; - -public: - WxReader(event_queue &m3EventQueue_in, - VideoEvent &weEnableChecker_in, - VideoEvent &weDisableChecker_in, - M3ExtraCycles &m3ExtraCycles); - - void doEvent(); - - unsigned getSource() const { - return src_; - } - - unsigned wx() const { - return wx_; - } - - void setDoubleSpeed(const bool dS_in) { - dS = dS_in; - } - - void setSource(const unsigned src) { - src_ = src; - } - - static unsigned long schedule(const unsigned scxAnd7, const LyCounter &lyCounter, const WxReader &wxReader, const unsigned long cycleCounter) { - return lyCounter.nextLineCycle(scxAnd7 + 82 + lyCounter.isDoubleSpeed() * 3 + std::min(wxReader.getSource(), wxReader.wx()), cycleCounter); - //setTime(lyCounter.nextLineCycle(scxAnd7 + 89 + lyCounter.isDoubleSpeed() * 3, cycleCounter)); - } - - void saveState(SaveState &state) const; - void loadState(const SaveState &state); -}; - -static inline void addEvent(event_queue &q, WxReader *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, WxReader *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -#endif diff --git a/supergameboy/libgambatte/src/video/wy.cpp b/supergameboy/libgambatte/src/video/wy.cpp deleted file mode 100644 index 64a5f725..00000000 --- a/supergameboy/libgambatte/src/video/wy.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "wy.h" - -#include "we_master_checker.h" -#include "scx_reader.h" -#include "../event_queue.h" -#include "../savestate.h" - -Wy::WyReader1::WyReader1(Wy &wy, const WeMasterChecker &weMasterChecker) : - VideoEvent(3), - wy(wy), - weMasterChecker(weMasterChecker) -{} - -void Wy::WyReader1::doEvent() { - if (wy.src_ >= wy.lyCounter.ly() && /*wy >= lyCounter.ly()*/ !weMasterChecker.weMaster()) - wy.set(wy.src_); - - setTime(DISABLED_TIME); -} - -Wy::WyReader2::WyReader2(Wy &wy) : - VideoEvent(4), - wy(wy) -{} - -void Wy::WyReader2::doEvent() { - if (wy.wy_ == wy.lyCounter.ly() + 1 - wy.lyCounter.isDoubleSpeed() && wy.src_ > wy.wy_) - wy.set(wy.src_); - - setTime(DISABLED_TIME); -} - -Wy::WyReader3::WyReader3(Wy &wy) : - VideoEvent(5), - wy(wy) -{} - -void Wy::WyReader3::doEvent() { - if (wy.src_ == wy.lyCounter.ly() && wy.wy_ > wy.lyCounter.ly()) - wy.set(wy.src_); - - setTime(DISABLED_TIME); -} - -unsigned long Wy::WyReader3::schedule(const unsigned wxSrc, const ScxReader &scxReader, const LyCounter &lyCounter, const unsigned long cycleCounter) { - const unsigned curLineCycle = 456 - ((lyCounter.time() - cycleCounter) >> lyCounter.isDoubleSpeed()); - const unsigned baseTime = 78 + lyCounter.isDoubleSpeed() * 6 + wxSrc; - - if (curLineCycle >= 82U + lyCounter.isDoubleSpeed() * 3) { - if (baseTime + scxReader.scxAnd7() > curLineCycle) - return lyCounter.time() + ((baseTime + scxReader.scxAnd7()) << lyCounter.isDoubleSpeed()) - lyCounter.lineTime(); - else - return lyCounter.time() + ((baseTime + scxReader.getSource()) << lyCounter.isDoubleSpeed()); - } else - return lyCounter.nextLineCycle(baseTime + scxReader.getSource(), cycleCounter); -} - -Wy::WyReader4::WyReader4(Wy &wy) : - VideoEvent(6), - wy(wy) -{} - -void Wy::WyReader4::doEvent() { - wy.set(wy.src_); - - setTime(DISABLED_TIME); -} - -Wy::Wy(const LyCounter &lyCounter, const WeMasterChecker &weMasterChecker, M3ExtraCycles &m3ExtraCycles) : - lyCounter(lyCounter), - m3ExtraCycles(m3ExtraCycles), - reader1_(*this, weMasterChecker), - reader2_(*this), - reader3_(*this), - reader4_(*this) -{ - setSource(0); - wy_ = src_; -} - -void Wy::saveState(SaveState &state) const { - state.ppu.wy = wy_; -} - -void Wy::loadState(const SaveState &state) { - wy_ = state.ppu.wy; -} diff --git a/supergameboy/libgambatte/src/video/wy.h b/supergameboy/libgambatte/src/video/wy.h deleted file mode 100644 index 2a1033f9..00000000 --- a/supergameboy/libgambatte/src/video/wy.h +++ /dev/null @@ -1,187 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2007 by Sindre Aamås * - * aamas@stud.ntnu.no * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License version 2 for more details. * - * * - * You should have received a copy of the GNU General Public License * - * version 2 along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef WY_H -#define WY_H - -class WeMasterChecker; -class ScxReader; -template class event_queue; -class SaveState; - -#include "video_event.h" -#include "video_event_comparer.h" -#include "ly_counter.h" -#include "m3_extra_cycles.h" -#include "basic_add_event.h" - -class Wy { -public: - class WyReader1 : public VideoEvent { - Wy &wy; - const WeMasterChecker &weMasterChecker; - - public: - WyReader1(Wy &wy, const WeMasterChecker &weMasterChecker); - - void doEvent(); - - static unsigned long schedule(const LyCounter &lyCounter, const unsigned long cycleCounter) { - return lyCounter.nextLineCycle(448 + lyCounter.isDoubleSpeed() * 4, cycleCounter); - } - }; - - class WyReader2 : public VideoEvent { - Wy &wy; - - public: - WyReader2(Wy &wy); - - void doEvent(); - - static unsigned long schedule(const LyCounter &lyCounter, const unsigned long cycleCounter) { - return lyCounter.isDoubleSpeed() ? lyCounter.time() : lyCounter.nextLineCycle(452, cycleCounter); - } - }; - - class WyReader3 : public VideoEvent { - Wy &wy; - - public: - WyReader3(Wy &wy); - - void doEvent(); - static unsigned long schedule(unsigned wxSrc, const ScxReader &scxReader, const LyCounter &lyCounter, unsigned long cycleCounter); - - //void schedule(const unsigned scxAnd7, const LyCounter &lyCounter, const unsigned cycleCounter) { - // setTime(lyCounter.nextLineCycle(scxAnd7 + 85 + lyCounter.isDoubleSpeed() * 6, cycleCounter)); - //} - }; - - class WyReader4 : public VideoEvent { - Wy &wy; - - public: - WyReader4(Wy &wy); - - void doEvent(); - - static unsigned long schedule(const LyCounter &lyCounter, const unsigned long cycleCounter) { - return lyCounter.nextFrameCycle(lyCounter.isDoubleSpeed() * 4, cycleCounter); - } - }; - - friend class WyReader1; - friend class WyReader2; - friend class WyReader3; - friend class WyReader4; - -private: - const LyCounter &lyCounter; - M3ExtraCycles &m3ExtraCycles; - WyReader1 reader1_; - WyReader2 reader2_; - WyReader3 reader3_; - WyReader4 reader4_; - - unsigned char wy_; - unsigned char src_; - - void set(const unsigned char value) { - if (wy_ != value) - m3ExtraCycles.invalidateCache(); - - wy_ = value; - } - -public: - Wy(const LyCounter &lyCounter, const WeMasterChecker &weMasterChecker, M3ExtraCycles &m3ExtraCycles); - - WyReader1& reader1() { - return reader1_; - } - - WyReader2& reader2() { - return reader2_; - } - - WyReader3& reader3() { - return reader3_; - } - - WyReader4& reader4() { - return reader4_; - } - - unsigned getSource() const { - return src_; - } - - void setSource(const unsigned src) { - src_ = src; - } - - //void setValue(const unsigned val) { - // wy_ = val; - //} - - unsigned value() const { - return wy_; - } - - void weirdAssWeMasterEnableOnWyLineCase() { - set(wy_ + 1); - } - - void saveState(SaveState &state) const; - void loadState(const SaveState &state); -}; - -static inline void addEvent(event_queue &q, Wy::WyReader1 *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, Wy::WyReader1 *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -static inline void addEvent(event_queue &q, Wy::WyReader2 *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, Wy::WyReader2 *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -static inline void addEvent(event_queue &q, Wy::WyReader3 *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, Wy::WyReader3 *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -static inline void addEvent(event_queue &q, Wy::WyReader4 *const e, const unsigned long newTime) { - addUnconditionalEvent(q, e, newTime); -} - -static inline void addFixedtimeEvent(event_queue &q, Wy::WyReader4 *const e, const unsigned long newTime) { - addUnconditionalFixedtimeEvent(q, e, newTime); -} - -#endif diff --git a/supergameboy/nall/Makefile b/supergameboy/nall/Makefile deleted file mode 100644 index 8149bf15..00000000 --- a/supergameboy/nall/Makefile +++ /dev/null @@ -1,107 +0,0 @@ -# Makefile -# author: byuu -# license: public domain - -[A-Z] = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z -[a-z] = a b c d e f g h i j k l m n o p q r s t u v w x y z -[0-9] = 0 1 2 3 4 5 6 7 8 9 -[markup] = ` ~ ! @ \# $$ % ^ & * ( ) - _ = + [ { ] } \ | ; : ' " , < . > / ? -[all] = $([A-Z]) $([a-z]) $([0-9]) $([markup]) -[space] := -[space] += - -##### -# platform detection -##### - -ifeq ($(platform),) - uname := $(shell uname -a) - ifeq ($(uname),) - platform := win - delete = del $(subst /,\,$1) - else ifneq ($(findstring Darwin,$(uname)),) - platform := osx - delete = rm -f $1 - else - platform := x - delete = rm -f $1 - endif -endif - -ifeq ($(compiler),) - ifeq ($(platform),osx) - compiler := gcc-4.2 - else - compiler := gcc - endif -endif - -ifeq ($(prefix),) - prefix := /usr/local -endif - -##### -# function rwildcard(directory, pattern) -##### -rwildcard = \ - $(strip \ - $(filter $(if $2,$2,%), \ - $(foreach f, \ - $(wildcard $1*), \ - $(eval t = $(call rwildcard,$f/)) \ - $(if $t,$t,$f) \ - ) \ - ) \ - ) - -##### -# function strtr(source, from, to) -##### -strtr = \ - $(eval __temp := $1) \ - $(strip \ - $(foreach c, \ - $(join $(addsuffix :,$2),$3), \ - $(eval __temp := \ - $(subst $(word 1,$(subst :, ,$c)),$(word 2,$(subst :, ,$c)),$(__temp)) \ - ) \ - ) \ - $(__temp) \ - ) - -##### -# function strupper(source) -##### -strupper = $(call strtr,$1,$([a-z]),$([A-Z])) - -##### -# function strlower(source) -##### -strlower = $(call strtr,$1,$([A-Z]),$([a-z])) - -##### -# function strlen(source) -##### -strlen = \ - $(eval __temp := $(subst $([space]),_,$1)) \ - $(words \ - $(strip \ - $(foreach c, \ - $([all]), \ - $(eval __temp := \ - $(subst $c,$c ,$(__temp)) \ - ) \ - ) \ - $(__temp) \ - ) \ - ) - -##### -# function streq(source) -##### -streq = $(if $(filter-out xx,x$(subst $1,,$2)$(subst $2,,$1)x),,1) - -##### -# function strne(source) -##### -strne = $(if $(filter-out xx,x$(subst $1,,$2)$(subst $2,,$1)x),1,) diff --git a/supergameboy/nall/algorithm.hpp b/supergameboy/nall/algorithm.hpp deleted file mode 100644 index cdc48dcf..00000000 --- a/supergameboy/nall/algorithm.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef NALL_ALGORITHM_HPP -#define NALL_ALGORITHM_HPP - -#undef min -#undef max - -namespace nall { - template T min(const T &t, const U &u) { - return t < u ? t : u; - } - - template T max(const T &t, const U &u) { - return t > u ? t : u; - } - - //pseudo-random number generator - inline unsigned prng() { - static unsigned n = 0; - return n = (n >> 1) ^ (((n & 1) - 1) & 0xedb88320); - } -} - -#endif diff --git a/supergameboy/nall/any.hpp b/supergameboy/nall/any.hpp deleted file mode 100644 index 9689af13..00000000 --- a/supergameboy/nall/any.hpp +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef NALL_ANY_HPP -#define NALL_ANY_HPP - -#include -#include -#include - -namespace nall { - class any { - public: - bool empty() const { return container; } - const std::type_info& type() const { return container ? container->type() : typeid(void); } - - template any& operator=(const T& value_) { - typedef typename static_if< - is_array::value, - typename remove_extent::type>::type*, - T - >::type auto_t; - - if(type() == typeid(auto_t)) { - static_cast*>(container)->value = (auto_t)value_; - } else { - if(container) delete container; - container = new holder((auto_t)value_); - } - - return *this; - } - - any() : container(0) {} - template any(const T& value_) : container(0) { operator=(value_); } - - private: - struct placeholder { - virtual const std::type_info& type() const = 0; - } *container; - - template struct holder : placeholder { - T value; - const std::type_info& type() const { return typeid(T); } - holder(const T& value_) : value(value_) {} - }; - - template friend T any_cast(any&); - template friend T any_cast(const any&); - template friend T* any_cast(any*); - template friend const T* any_cast(const any*); - }; - - template T any_cast(any &value) { - typedef typename remove_reference::type nonref; - if(value.type() != typeid(nonref)) throw; - return static_cast*>(value.container)->value; - } - - template T any_cast(const any &value) { - typedef const typename remove_reference::type nonref; - if(value.type() != typeid(nonref)) throw; - return static_cast*>(value.container)->value; - } - - template T* any_cast(any *value) { - if(!value || value->type() != typeid(T)) return 0; - return &static_cast*>(value->container)->value; - } - - template const T* any_cast(const any *value) { - if(!value || value->type() != typeid(T)) return 0; - return &static_cast*>(value->container)->value; - } -} - -#endif diff --git a/supergameboy/nall/array.hpp b/supergameboy/nall/array.hpp deleted file mode 100644 index 392b5bc0..00000000 --- a/supergameboy/nall/array.hpp +++ /dev/null @@ -1,118 +0,0 @@ -#ifndef NALL_ARRAY_HPP -#define NALL_ARRAY_HPP - -#include -#include -#include -#include -#include -#include - -namespace nall { - //dynamic vector array - //neither constructor nor destructor is ever invoked; - //thus, this should only be used for POD objects. - template class array { - protected: - T *pool; - unsigned poolsize, buffersize; - - public: - unsigned size() const { return buffersize; } - unsigned capacity() const { return poolsize; } - - void reset() { - if(pool) free(pool); - pool = 0; - poolsize = 0; - buffersize = 0; - } - - void reserve(unsigned newsize) { - if(newsize == poolsize) return; - - pool = (T*)realloc(pool, newsize * sizeof(T)); - poolsize = newsize; - buffersize = min(buffersize, newsize); - } - - void resize(unsigned newsize) { - if(newsize > poolsize) reserve(bit::round(newsize)); //round reserve size up to power of 2 - buffersize = newsize; - } - - T* get(unsigned minsize = 0) { - if(minsize > buffersize) resize(minsize); - if(minsize > buffersize) throw "array[] out of bounds"; - return pool; - } - - void add(const T data) { - operator[](buffersize) = data; - } - - signed find(const T data) { - for(unsigned i = 0; i < size(); i++) if(pool[i] == data) return i; - return -1; //not found - } - - void clear() { - memset(pool, 0, buffersize * sizeof(T)); - } - - array() : pool(0), poolsize(0), buffersize(0) { - } - - array(std::initializer_list list) : pool(0), poolsize(0), buffersize(0) { - for(const T *p = list.begin(); p != list.end(); ++p) add(*p); - } - - ~array() { - reset(); - } - - //copy - array& operator=(const array &source) { - if(pool) free(pool); - buffersize = source.buffersize; - poolsize = source.poolsize; - pool = (T*)malloc(sizeof(T) * poolsize); //allocate entire pool size, - memcpy(pool, source.pool, sizeof(T) * buffersize); //... but only copy used pool objects - return *this; - } - - array(const array &source) : pool(0) { - operator=(source); - } - - //move - array& operator=(array &&source) { - if(pool) free(pool); - pool = source.pool; - poolsize = source.poolsize; - buffersize = source.buffersize; - source.pool = 0; - return *this; - } - - array(array &&source) { - operator=(move(source)); - } - - //index - inline T& operator[](unsigned index) { - if(index >= buffersize) resize(index + 1); - if(index >= buffersize) throw "array[] out of bounds"; - return pool[index]; - } - - inline const T& operator[](unsigned index) const { - if(index >= buffersize) throw "array[] out of bounds"; - return pool[index]; - } - }; - - template struct has_size> { enum { value = true }; }; -} - -#endif diff --git a/supergameboy/nall/base64.hpp b/supergameboy/nall/base64.hpp deleted file mode 100644 index e41c87b7..00000000 --- a/supergameboy/nall/base64.hpp +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef NALL_BASE64_HPP -#define NALL_BASE64_HPP - -#include -#include - -namespace nall { - class base64 { - public: - static bool encode(char *&output, const uint8_t* input, unsigned inlength) { - output = new char[inlength * 8 / 6 + 6](); - - unsigned i = 0, o = 0; - while(i < inlength) { - switch(i % 3) { - case 0: { - output[o++] = enc(input[i] >> 2); - output[o] = enc((input[i] & 3) << 4); - } break; - - case 1: { - uint8_t prev = dec(output[o]); - output[o++] = enc(prev + (input[i] >> 4)); - output[o] = enc((input[i] & 15) << 2); - } break; - - case 2: { - uint8_t prev = dec(output[o]); - output[o++] = enc(prev + (input[i] >> 6)); - output[o++] = enc(input[i] & 63); - } break; - } - - i++; - } - - return true; - } - - static bool decode(uint8_t *&output, unsigned &outlength, const char *input) { - unsigned inlength = strlen(input), infix = 0; - output = new uint8_t[inlength](); - - unsigned i = 0, o = 0; - while(i < inlength) { - uint8_t x = dec(input[i]); - - switch(i++ & 3) { - case 0: { - output[o] = x << 2; - } break; - - case 1: { - output[o++] |= x >> 4; - output[o] = (x & 15) << 4; - } break; - - case 2: { - output[o++] |= x >> 2; - output[o] = (x & 3) << 6; - } break; - - case 3: { - output[o++] |= x; - } break; - } - } - - outlength = o; - return true; - } - - private: - static char enc(uint8_t n) { - static char lookup_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; - return lookup_table[n & 63]; - } - - static uint8_t dec(char n) { - if(n >= 'A' && n <= 'Z') return n - 'A'; - if(n >= 'a' && n <= 'z') return n - 'a' + 26; - if(n >= '0' && n <= '9') return n - '0' + 52; - if(n == '-') return 62; - if(n == '_') return 63; - return 0; - } - }; -} - -#endif diff --git a/supergameboy/nall/bit.hpp b/supergameboy/nall/bit.hpp deleted file mode 100644 index 169fc144..00000000 --- a/supergameboy/nall/bit.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef NALL_BIT_HPP -#define NALL_BIT_HPP - -namespace nall { - template inline unsigned uclamp(const unsigned x) { - enum { y = (1U << bits) - 1 }; - return y + ((x - y) & -(x < y)); //min(x, y); - } - - template inline unsigned uclip(const unsigned x) { - enum { m = (1U << bits) - 1 }; - return (x & m); - } - - template inline signed sclamp(const signed x) { - enum { b = 1U << (bits - 1), m = (1U << (bits - 1)) - 1 }; - return (x > m) ? m : (x < -b) ? -b : x; - } - - template inline signed sclip(const signed x) { - enum { b = 1U << (bits - 1), m = (1U << bits) - 1 }; - return ((x & m) ^ b) - b; - } - - namespace bit { - //lowest(0b1110) == 0b0010 - template inline T lowest(const T x) { - return x & -x; - } - - //clear_lowest(0b1110) == 0b1100 - template inline T clear_lowest(const T x) { - return x & (x - 1); - } - - //set_lowest(0b0101) == 0b0111 - template inline T set_lowest(const T x) { - return x | (x + 1); - } - - //round up to next highest single bit: - //round(15) == 16, round(16) == 16, round(17) == 32 - inline unsigned round(unsigned x) { - if((x & (x - 1)) == 0) return x; - while(x & (x - 1)) x &= x - 1; - return x << 1; - } - } -} - -#endif diff --git a/supergameboy/nall/concept.hpp b/supergameboy/nall/concept.hpp deleted file mode 100644 index 2949cd5e..00000000 --- a/supergameboy/nall/concept.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef NALL_CONCEPT_HPP -#define NALL_CONCEPT_HPP - -namespace nall { - //unsigned count() const; - template struct has_count { enum { value = false }; }; - - //unsigned length() const; - template struct has_length { enum { value = false }; }; - - //unsigned size() const; - template struct has_size { enum { value = false }; }; -} - -#endif diff --git a/supergameboy/nall/config.hpp b/supergameboy/nall/config.hpp deleted file mode 100644 index 31ae4e00..00000000 --- a/supergameboy/nall/config.hpp +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef NALL_CONFIG_HPP -#define NALL_CONFIG_HPP - -#include -#include -#include - -namespace nall { - namespace configuration_traits { - template struct is_boolean { enum { value = false }; }; - template<> struct is_boolean { enum { value = true }; }; - - template struct is_signed { enum { value = false }; }; - template<> struct is_signed { enum { value = true }; }; - - template struct is_unsigned { enum { value = false }; }; - template<> struct is_unsigned { enum { value = true }; }; - - template struct is_double { enum { value = false }; }; - template<> struct is_double { enum { value = true }; }; - - template struct is_string { enum { value = false }; }; - template<> struct is_string { enum { value = true }; }; - } - - class configuration { - public: - enum type_t { boolean_t, signed_t, unsigned_t, double_t, string_t, unknown_t }; - struct item_t { - uintptr_t data; - string name; - string desc; - type_t type; - - string get() const { - switch(type) { - case boolean_t: return string() << *(bool*)data; - case signed_t: return string() << *(signed*)data; - case unsigned_t: return string() << *(unsigned*)data; - case double_t: return string() << *(double*)data; - case string_t: return string() << "\"" << *(string*)data << "\""; - } - return "???"; - } - - void set(string s) { - switch(type) { - case boolean_t: *(bool*)data = (s == "true"); break; - case signed_t: *(signed*)data = strsigned(s); break; - case unsigned_t: *(unsigned*)data = strunsigned(s); break; - case double_t: *(double*)data = strdouble(s); break; - case string_t: trim(s, "\""); *(string*)data = s; break; - } - } - }; - linear_vector list; - - template - void attach(T &data, const char *name, const char *desc = "") { - unsigned n = list.size(); - list[n].data = (uintptr_t)&data; - list[n].name = name; - list[n].desc = desc; - - if(configuration_traits::is_boolean::value) list[n].type = boolean_t; - else if(configuration_traits::is_signed::value) list[n].type = signed_t; - else if(configuration_traits::is_unsigned::value) list[n].type = unsigned_t; - else if(configuration_traits::is_double::value) list[n].type = double_t; - else if(configuration_traits::is_string::value) list[n].type = string_t; - else list[n].type = unknown_t; - } - - virtual bool load(const char *filename) { - string data; - if(data.readfile(filename) == true) { - data.replace("\r", ""); - lstring line; - line.split("\n", data); - - for(unsigned i = 0; i < line.size(); i++) { - int position = qstrpos(line[i], "#"); - if(position >= 0) line[i][position] = 0; - if(qstrpos(line[i], " = ") < 0) continue; - - lstring part; - part.qsplit(" = ", line[i]); - trim(part[0]); - trim(part[1]); - - for(unsigned n = 0; n < list.size(); n++) { - if(part[0] == list[n].name) { - list[n].set(part[1]); - break; - } - } - } - - return true; - } else { - return false; - } - } - - virtual bool save(const char *filename) const { - file fp; - if(fp.open(filename, file::mode_write)) { - for(unsigned i = 0; i < list.size(); i++) { - string output; - output << list[i].name << " = " << list[i].get(); - if(list[i].desc != "") output << " # " << list[i].desc; - output << "\r\n"; - fp.print(output); - } - - fp.close(); - return true; - } else { - return false; - } - } - }; -} - -#endif diff --git a/supergameboy/nall/crc32.hpp b/supergameboy/nall/crc32.hpp deleted file mode 100644 index ad36fbf6..00000000 --- a/supergameboy/nall/crc32.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef NALL_CRC32_HPP -#define NALL_CRC32_HPP - -#include - -namespace nall { - const uint32_t crc32_table[256] = { - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, - 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, - 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, - 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, - 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, - 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, - 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, - 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, - 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, - 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, - 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, - 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, - 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, - 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, - 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, - 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, - 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, - 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, - 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, - 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, - 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, - 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, - 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, - 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, - 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, - 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, - 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, - 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, - 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, - 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, - 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, - 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, - 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, - 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, - 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, - 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, - 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, - 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, - 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, - 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, - 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, - 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d - }; - - inline uint32_t crc32_adjust(uint32_t crc32, uint8_t input) { - return ((crc32 >> 8) & 0x00ffffff) ^ crc32_table[(crc32 ^ input) & 0xff]; - } - - inline uint32_t crc32_calculate(const uint8_t *data, unsigned length) { - uint32_t crc32 = ~0; - for(unsigned i = 0; i < length; i++) { - crc32 = crc32_adjust(crc32, data[i]); - } - return ~crc32; - } -} - -#endif diff --git a/supergameboy/nall/detect.hpp b/supergameboy/nall/detect.hpp deleted file mode 100644 index b4991aaf..00000000 --- a/supergameboy/nall/detect.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef NALL_DETECT_HPP -#define NALL_DETECT_HPP - -/* Compiler detection */ - -#if defined(__GNUC__) - #define COMPILER_GCC -#elif defined(_MSC_VER) - #define COMPILER_VISUALC -#endif - -/* Platform detection */ - -#if defined(_WIN32) - #define PLATFORM_WIN -#elif defined(__APPLE__) - #define PLATFORM_OSX -#elif defined(linux) || defined(__sun__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) - #define PLATFORM_X -#endif - -/* Endian detection */ - -#if defined(__i386__) || defined(__amd64__) || defined(_M_IX86) || defined(_M_AMD64) - #define ARCH_LSB -#elif defined(__powerpc__) || defined(_M_PPC) || defined(__BIG_ENDIAN__) - #define ARCH_MSB -#endif - -#endif diff --git a/supergameboy/nall/dictionary.hpp b/supergameboy/nall/dictionary.hpp deleted file mode 100644 index f14e2095..00000000 --- a/supergameboy/nall/dictionary.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef NALL_DICTIONARY_HPP -#define NALL_DICTIONARY_HPP - -#include -#include -#include - -namespace nall { - class dictionary { - public: - string operator[](const char *input) { - for(unsigned i = 0; i < index_input.size(); i++) { - if(index_input[i] == input) return index_output[i]; - } - - //no match, use input; remove input identifier, if one exists - if(strbegin(input, "{{")) { - int pos = strpos(input, "}}"); - if(pos >= 0) { - string temp = substr(input, pos + 2); - return temp; - } - } - - return input; - } - - bool import(const char *filename) { - string data; - if(data.readfile(filename) == false) return false; - ltrim_once(data, "\xef\xbb\xbf"); //remove UTF-8 marker, if it exists - data.replace("\r", ""); - - lstring line; - line.split("\n", data); - for(unsigned i = 0; i < line.size(); i++) { - lstring part; - //format: "Input" = "Output" - part.qsplit("=", line[i]); - if(part.size() != 2) continue; - - //remove whitespace - trim(part[0]); - trim(part[1]); - - //remove quotes - trim_once(part[0], "\""); - trim_once(part[1], "\""); - - unsigned n = index_input.size(); - index_input[n] = part[0]; - index_output[n] = part[1]; - } - - return true; - } - - void reset() { - index_input.reset(); - index_output.reset(); - } - - ~dictionary() { - reset(); - } - - dictionary& operator=(const dictionary&) = delete; - dictionary(const dictionary&) = delete; - - protected: - lstring index_input; - lstring index_output; - }; -} - -#endif diff --git a/supergameboy/nall/dl.hpp b/supergameboy/nall/dl.hpp deleted file mode 100644 index 22acf51f..00000000 --- a/supergameboy/nall/dl.hpp +++ /dev/null @@ -1,119 +0,0 @@ -#ifndef NALL_DL_HPP -#define NALL_DL_HPP - -//dynamic linking support - -#include -#include -#include -#include - -#if defined(PLATFORM_X) || defined(PLATFORM_OSX) - #include -#elif defined(PLATFORM_WIN) - #include - #include -#endif - -namespace nall { - struct library { - bool opened() const { return handle; } - bool open(const char*); - void* sym(const char*); - void close(); - - library() : handle(0) {} - ~library() { close(); } - - library& operator=(const library&) = delete; - library(const library&) = delete; - - private: - uintptr_t handle; - }; - - #if defined(PLATFORM_X) - inline bool library::open(const char *name) { - if(handle) close(); - char *t = new char[strlen(name) + 256]; - strcpy(t, "lib"); - strcat(t, name); - strcat(t, ".so"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - if(!handle) { - strcpy(t, "/usr/local/lib/lib"); - strcat(t, name); - strcat(t, ".so"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - } - delete[] t; - return handle; - } - - inline void* library::sym(const char *name) { - if(!handle) return 0; - return dlsym((void*)handle, name); - } - - inline void library::close() { - if(!handle) return; - dlclose((void*)handle); - handle = 0; - } - #elif defined(PLATFORM_OSX) - inline bool library::open(const char *name) { - if(handle) close(); - char *t = new char[strlen(name) + 256]; - strcpy(t, "lib"); - strcat(t, name); - strcat(t, ".dylib"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - if(!handle) { - strcpy(t, "/usr/local/lib/lib"); - strcat(t, name); - strcat(t, ".dylib"); - handle = (uintptr_t)dlopen(t, RTLD_LAZY); - } - delete[] t; - return handle; - } - - inline void* library::sym(const char *name) { - if(!handle) return 0; - return dlsym((void*)handle, name); - } - - inline void library::close() { - if(!handle) return; - dlclose((void*)handle); - handle = 0; - } - #elif defined(PLATFORM_WIN) - inline bool library::open(const char *name) { - if(handle) close(); - char *t = new char[strlen(name) + 8]; - strcpy(t, name); - strcat(t, ".dll"); - handle = (uintptr_t)LoadLibraryW(utf16_t(t)); - delete[] t; - return handle; - } - - inline void* library::sym(const char *name) { - if(!handle) return 0; - return (void*)GetProcAddress((HMODULE)handle, name); - } - - inline void library::close() { - if(!handle) return; - FreeLibrary((HMODULE)handle); - handle = 0; - } - #else - inline bool library::open(const char*) { return false; } - inline void* library::sym(const char*) { return 0; } - inline void library::close() {} - #endif -}; - -#endif diff --git a/supergameboy/nall/endian.hpp b/supergameboy/nall/endian.hpp deleted file mode 100644 index 40d15633..00000000 --- a/supergameboy/nall/endian.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef NALL_ENDIAN_HPP -#define NALL_ENDIAN_HPP - -#if !defined(ARCH_MSB) - //little-endian: uint8_t[] { 0x01, 0x02, 0x03, 0x04 } == 0x04030201 - #define order_lsb2(a,b) a,b - #define order_lsb3(a,b,c) a,b,c - #define order_lsb4(a,b,c,d) a,b,c,d - #define order_lsb5(a,b,c,d,e) a,b,c,d,e - #define order_lsb6(a,b,c,d,e,f) a,b,c,d,e,f - #define order_lsb7(a,b,c,d,e,f,g) a,b,c,d,e,f,g - #define order_lsb8(a,b,c,d,e,f,g,h) a,b,c,d,e,f,g,h - #define order_msb2(a,b) b,a - #define order_msb3(a,b,c) c,b,a - #define order_msb4(a,b,c,d) d,c,b,a - #define order_msb5(a,b,c,d,e) e,d,c,b,a - #define order_msb6(a,b,c,d,e,f) f,e,d,c,b,a - #define order_msb7(a,b,c,d,e,f,g) g,f,e,d,c,b,a - #define order_msb8(a,b,c,d,e,f,g,h) h,g,f,e,d,c,b,a -#else - //big-endian: uint8_t[] { 0x01, 0x02, 0x03, 0x04 } == 0x01020304 - #define order_lsb2(a,b) b,a - #define order_lsb3(a,b,c) c,b,a - #define order_lsb4(a,b,c,d) d,c,b,a - #define order_lsb5(a,b,c,d,e) e,d,c,b,a - #define order_lsb6(a,b,c,d,e,f) f,e,d,c,b,a - #define order_lsb7(a,b,c,d,e,f,g) g,f,e,d,c,b,a - #define order_lsb8(a,b,c,d,e,f,g,h) h,g,f,e,d,c,b,a - #define order_msb2(a,b) a,b - #define order_msb3(a,b,c) a,b,c - #define order_msb4(a,b,c,d) a,b,c,d - #define order_msb5(a,b,c,d,e) a,b,c,d,e - #define order_msb6(a,b,c,d,e,f) a,b,c,d,e,f - #define order_msb7(a,b,c,d,e,f,g) a,b,c,d,e,f,g - #define order_msb8(a,b,c,d,e,f,g,h) a,b,c,d,e,f,g,h -#endif - -#endif diff --git a/supergameboy/nall/file.hpp b/supergameboy/nall/file.hpp deleted file mode 100644 index 4c8ca8ee..00000000 --- a/supergameboy/nall/file.hpp +++ /dev/null @@ -1,259 +0,0 @@ -#ifndef NALL_FILE_HPP -#define NALL_FILE_HPP - -#include -#include - -#if !defined(_WIN32) - #include -#else - #include -#endif - -#include -#include -#include - -namespace nall { - inline FILE* fopen_utf8(const char *utf8_filename, const char *mode) { - #if !defined(_WIN32) - return fopen(utf8_filename, mode); - #else - return _wfopen(utf16_t(utf8_filename), utf16_t(mode)); - #endif - } - - class file { - public: - enum FileMode { mode_read, mode_write, mode_readwrite, mode_writeread }; - enum SeekMode { seek_absolute, seek_relative }; - - uint8_t read() { - if(!fp) return 0xff; //file not open - if(file_mode == mode_write) return 0xff; //reads not permitted - if(file_offset >= file_size) return 0xff; //cannot read past end of file - buffer_sync(); - return buffer[(file_offset++) & buffer_mask]; - } - - uintmax_t readl(unsigned length = 1) { - uintmax_t data = 0; - for(int i = 0; i < length; i++) { - data |= (uintmax_t)read() << (i << 3); - } - return data; - } - - uintmax_t readm(unsigned length = 1) { - uintmax_t data = 0; - while(length--) { - data <<= 8; - data |= read(); - } - return data; - } - - void read(uint8_t *buffer, unsigned length) { - while(length--) *buffer++ = read(); - } - - void write(uint8_t data) { - if(!fp) return; //file not open - if(file_mode == mode_read) return; //writes not permitted - buffer_sync(); - buffer[(file_offset++) & buffer_mask] = data; - buffer_dirty = true; - if(file_offset > file_size) file_size = file_offset; - } - - void writel(uintmax_t data, unsigned length = 1) { - while(length--) { - write(data); - data >>= 8; - } - } - - void writem(uintmax_t data, unsigned length = 1) { - for(int i = length - 1; i >= 0; i--) { - write(data >> (i << 3)); - } - } - - void write(const uint8_t *buffer, unsigned length) { - while(length--) write(*buffer++); - } - - void print(const char *string) { - if(!string) return; - while(*string) write(*string++); - } - - void flush() { - buffer_flush(); - fflush(fp); - } - - void seek(int offset, SeekMode mode = seek_absolute) { - if(!fp) return; //file not open - buffer_flush(); - - uintmax_t req_offset = file_offset; - switch(mode) { - case seek_absolute: req_offset = offset; break; - case seek_relative: req_offset += offset; break; - } - - if(req_offset < 0) req_offset = 0; //cannot seek before start of file - if(req_offset > file_size) { - if(file_mode == mode_read) { //cannot seek past end of file - req_offset = file_size; - } else { //pad file to requested location - file_offset = file_size; - while(file_size < req_offset) write(0x00); - } - } - - file_offset = req_offset; - } - - int offset() { - if(!fp) return -1; //file not open - return file_offset; - } - - int size() { - if(!fp) return -1; //file not open - return file_size; - } - - bool truncate(unsigned size) { - if(!fp) return false; //file not open - #if !defined(_WIN32) - return ftruncate(fileno(fp), size) == 0; - #else - return _chsize(fileno(fp), size) == 0; - #endif - } - - bool end() { - if(!fp) return true; //file not open - return file_offset >= file_size; - } - - static bool exists(const char *fn) { - #if !defined(_WIN32) - FILE *fp = fopen(fn, "rb"); - #else - FILE *fp = _wfopen(utf16_t(fn), L"rb"); - #endif - if(fp) { - fclose(fp); - return true; - } - return false; - } - - static unsigned size(const char *fn) { - #if !defined(_WIN32) - FILE *fp = fopen(fn, "rb"); - #else - FILE *fp = _wfopen(utf16_t(fn), L"rb"); - #endif - unsigned filesize = 0; - if(fp) { - fseek(fp, 0, SEEK_END); - filesize = ftell(fp); - fclose(fp); - } - return filesize; - } - - bool open() { - return fp; - } - - bool open(const char *fn, FileMode mode) { - if(fp) return false; - - switch(file_mode = mode) { - #if !defined(_WIN32) - case mode_read: fp = fopen(fn, "rb"); break; - case mode_write: fp = fopen(fn, "wb+"); break; //need read permission for buffering - case mode_readwrite: fp = fopen(fn, "rb+"); break; - case mode_writeread: fp = fopen(fn, "wb+"); break; - #else - case mode_read: fp = _wfopen(utf16_t(fn), L"rb"); break; - case mode_write: fp = _wfopen(utf16_t(fn), L"wb+"); break; - case mode_readwrite: fp = _wfopen(utf16_t(fn), L"rb+"); break; - case mode_writeread: fp = _wfopen(utf16_t(fn), L"wb+"); break; - #endif - } - if(!fp) return false; - buffer_offset = -1; //invalidate buffer - file_offset = 0; - fseek(fp, 0, SEEK_END); - file_size = ftell(fp); - fseek(fp, 0, SEEK_SET); - return true; - } - - void close() { - if(!fp) return; - buffer_flush(); - fclose(fp); - fp = 0; - } - - file() { - memset(buffer, 0, sizeof buffer); - buffer_offset = -1; - buffer_dirty = false; - fp = 0; - file_offset = 0; - file_size = 0; - file_mode = mode_read; - } - - ~file() { - close(); - } - - file& operator=(const file&) = delete; - file(const file&) = delete; - - private: - enum { buffer_size = 1 << 12, buffer_mask = buffer_size - 1 }; - char buffer[buffer_size]; - int buffer_offset; - bool buffer_dirty; - FILE *fp; - unsigned file_offset; - unsigned file_size; - FileMode file_mode; - - void buffer_sync() { - if(!fp) return; //file not open - if(buffer_offset != (file_offset & ~buffer_mask)) { - buffer_flush(); - buffer_offset = file_offset & ~buffer_mask; - fseek(fp, buffer_offset, SEEK_SET); - unsigned length = (buffer_offset + buffer_size) <= file_size ? buffer_size : (file_size & buffer_mask); - if(length) unsigned unused = fread(buffer, 1, length, fp); - } - } - - void buffer_flush() { - if(!fp) return; //file not open - if(file_mode == mode_read) return; //buffer cannot be written to - if(buffer_offset < 0) return; //buffer unused - if(buffer_dirty == false) return; //buffer unmodified since read - fseek(fp, buffer_offset, SEEK_SET); - unsigned length = (buffer_offset + buffer_size) <= file_size ? buffer_size : (file_size & buffer_mask); - if(length) unsigned unused = fwrite(buffer, 1, length, fp); - buffer_offset = -1; //invalidate buffer - buffer_dirty = false; - } - }; -} - -#endif diff --git a/supergameboy/nall/filemap.hpp b/supergameboy/nall/filemap.hpp deleted file mode 100644 index a05f0eb7..00000000 --- a/supergameboy/nall/filemap.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef NALL_FILEMAP_HPP -#define NALL_FILEMAP_HPP - -#include -#include - -#include -#include -#if defined(_WIN32) - #include -#else - #include - #include - #include - #include - #include -#endif - -namespace nall { - class filemap { - public: - enum filemode { mode_read, mode_write, mode_readwrite, mode_writeread }; - - bool open(const char *filename, filemode mode) { return p_open(filename, mode); } - void close() { return p_close(); } - unsigned size() const { return p_size; } - uint8_t* handle() { return p_handle; } - const uint8_t* handle() const { return p_handle; } - filemap() : p_size(0), p_handle(0) { p_ctor(); } - ~filemap() { p_dtor(); } - - private: - unsigned p_size; - uint8_t *p_handle; - - #if defined(_WIN32) - //============= - //MapViewOfFile - //============= - - HANDLE p_filehandle, p_maphandle; - - bool p_open(const char *filename, filemode mode) { - int desired_access, creation_disposition, flprotect, map_access; - - switch(mode) { - default: return false; - case mode_read: - desired_access = GENERIC_READ; - creation_disposition = OPEN_EXISTING; - flprotect = PAGE_READONLY; - map_access = FILE_MAP_READ; - break; - case mode_write: - //write access requires read access - desired_access = GENERIC_WRITE; - creation_disposition = CREATE_ALWAYS; - flprotect = PAGE_READWRITE; - map_access = FILE_MAP_ALL_ACCESS; - break; - case mode_readwrite: - desired_access = GENERIC_READ | GENERIC_WRITE; - creation_disposition = OPEN_EXISTING; - flprotect = PAGE_READWRITE; - map_access = FILE_MAP_ALL_ACCESS; - break; - case mode_writeread: - desired_access = GENERIC_READ | GENERIC_WRITE; - creation_disposition = CREATE_NEW; - flprotect = PAGE_READWRITE; - map_access = FILE_MAP_ALL_ACCESS; - break; - } - - p_filehandle = CreateFileW(utf16_t(filename), desired_access, FILE_SHARE_READ, NULL, - creation_disposition, FILE_ATTRIBUTE_NORMAL, NULL); - if(p_filehandle == INVALID_HANDLE_VALUE) return false; - - p_size = GetFileSize(p_filehandle, NULL); - - p_maphandle = CreateFileMapping(p_filehandle, NULL, flprotect, 0, p_size, NULL); - if(p_maphandle == INVALID_HANDLE_VALUE) { - CloseHandle(p_filehandle); - p_filehandle = INVALID_HANDLE_VALUE; - return false; - } - - p_handle = (uint8_t*)MapViewOfFile(p_maphandle, map_access, 0, 0, p_size); - return p_handle; - } - - void p_close() { - if(p_handle) { - UnmapViewOfFile(p_handle); - p_handle = 0; - } - - if(p_maphandle != INVALID_HANDLE_VALUE) { - CloseHandle(p_maphandle); - p_maphandle = INVALID_HANDLE_VALUE; - } - - if(p_filehandle != INVALID_HANDLE_VALUE) { - CloseHandle(p_filehandle); - p_filehandle = INVALID_HANDLE_VALUE; - } - } - - void p_ctor() { - p_filehandle = INVALID_HANDLE_VALUE; - p_maphandle = INVALID_HANDLE_VALUE; - } - - void p_dtor() { - close(); - } - - #else - //==== - //mmap - //==== - - int p_fd; - - bool p_open(const char *filename, filemode mode) { - int open_flags, mmap_flags; - - switch(mode) { - default: return false; - case mode_read: - open_flags = O_RDONLY; - mmap_flags = PROT_READ; - break; - case mode_write: - open_flags = O_RDWR | O_CREAT; //mmap() requires read access - mmap_flags = PROT_WRITE; - break; - case mode_readwrite: - open_flags = O_RDWR; - mmap_flags = PROT_READ | PROT_WRITE; - break; - case mode_writeread: - open_flags = O_RDWR | O_CREAT; - mmap_flags = PROT_READ | PROT_WRITE; - break; - } - - p_fd = ::open(filename, open_flags); - if(p_fd < 0) return false; - - struct stat p_stat; - fstat(p_fd, &p_stat); - p_size = p_stat.st_size; - - p_handle = (uint8_t*)mmap(0, p_size, mmap_flags, MAP_SHARED, p_fd, 0); - if(p_handle == MAP_FAILED) { - p_handle = 0; - ::close(p_fd); - p_fd = -1; - return false; - } - - return p_handle; - } - - void p_close() { - if(p_handle) { - munmap(p_handle, p_size); - p_handle = 0; - } - - if(p_fd >= 0) { - ::close(p_fd); - p_fd = -1; - } - } - - void p_ctor() { - p_fd = -1; - } - - void p_dtor() { - p_close(); - } - - #endif - }; -} - -#endif diff --git a/supergameboy/nall/foreach.hpp b/supergameboy/nall/foreach.hpp deleted file mode 100644 index 39ca7f5f..00000000 --- a/supergameboy/nall/foreach.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef NALL_FOREACH_HPP -#define NALL_FOREACH_HPP - -#undef foreach -#define foreach(iter, object) \ - for(unsigned foreach_counter = 0, foreach_limit = foreach_size(object), foreach_once = 0, foreach_broken = 0; foreach_counter < foreach_limit && foreach_broken == 0; foreach_counter++, foreach_once = 0) \ - for(auto &iter = object[foreach_counter]; foreach_once == 0 && (foreach_broken = 1); foreach_once++, foreach_broken = 0) - -#include -#include -#include - -namespace nall { - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return object.count(); - } - - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return object.length(); - } - - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return object.size(); - } - - template unsigned foreach_size(const T& object, typename mp_enable_if>::type = 0) { - return sizeof(T) / sizeof(typename remove_extent::type); - } -} - -#endif diff --git a/supergameboy/nall/function.hpp b/supergameboy/nall/function.hpp deleted file mode 100644 index 58fe349f..00000000 --- a/supergameboy/nall/function.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef NALL_FUNCTION_HPP -#define NALL_FUNCTION_HPP - -#include - -//prologue - -#define TN typename - -namespace nall { - template class function; -} - -//parameters = 0 - -#define cat(n) n -#define TL typename R -#define PL -#define CL - -#include "function.hpp" - -//parameters = 1 - -#define cat(n) , n -#define TL TN R, TN P1 -#define PL P1 p1 -#define CL p1 - -#include "function.hpp" - -//parameters = 2 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2 -#define PL P1 p1, P2 p2 -#define CL p1, p2 - -#include "function.hpp" - -//parameters = 3 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3 -#define PL P1 p1, P2 p2, P3 p3 -#define CL p1, p2, p3 - -#include "function.hpp" - -//parameters = 4 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4 -#define PL P1 p1, P2 p2, P3 p3, P4 p4 -#define CL p1, p2, p3, p4 - -#include "function.hpp" - -//parameters = 5 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5 -#define CL p1, p2, p3, p4, p5 - -#include "function.hpp" - -//parameters = 6 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5, TN P6 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6 -#define CL p1, p2, p3, p4, p5, p6 - -#include "function.hpp" - -//parameters = 7 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5, TN P6, TN P7 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7 -#define CL p1, p2, p3, p4, p5, p6, p7 - -#include "function.hpp" - -//parameters = 8 - -#define cat(n) , n -#define TL TN R, TN P1, TN P2, TN P3, TN P4, TN P5, TN P6, TN P7, TN P8 -#define PL P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8 -#define CL p1, p2, p3, p4, p5, p6, p7, p8 - -#include "function.hpp" - -//epilogue - -#undef TN -#define NALL_FUNCTION_T - -#elif !defined(NALL_FUNCTION_T) - -//function implementation template class - -namespace nall { - template - class function { - private: - struct base1 { virtual void func1(PL) {} }; - struct base2 { virtual void func2(PL) {} }; - struct derived : base1, virtual base2 {}; - - struct data_t { - R (*fn_call)(const data_t& cat(PL)); - union { - R (*fn_global)(PL); - struct { - R (derived::*fn_member)(PL); - void *object; - }; - }; - } data; - - static R fn_call_global(const data_t &d cat(PL)) { - return d.fn_global(CL); - } - - template - static R fn_call_member(const data_t &d cat(PL)) { - return (((C*)d.object)->*((R (C::*&)(PL))d.fn_member))(CL); - } - - public: - R operator()(PL) const { return data.fn_call(data cat(CL)); } - operator bool() const { return data.fn_call; } - - function() { data.fn_call = 0; } - - function(void *fn) { - data.fn_call = fn ? &fn_call_global : 0; - data.fn_global = (R (*)(PL))fn; - } - - function(R (*fn)(PL)) { - data.fn_call = &fn_call_global; - data.fn_global = fn; - } - - template - function(R (C::*fn)(PL), C *obj) { - data.fn_call = &fn_call_member; - (R (C::*&)(PL))data.fn_member = fn; - assert(sizeof data.fn_member >= sizeof fn); - data.object = obj; - } - - template - function(R (C::*fn)(PL) const, C *obj) { - data.fn_call = &fn_call_member; - (R (C::*&)(PL))data.fn_member = (R (C::*&)(PL))fn; - assert(sizeof data.fn_member >= sizeof fn); - data.object = obj; - } - - function& operator=(void *fn) { return operator=(function(fn)); } - function& operator=(const function &source) { memcpy(&data, &source.data, sizeof(data_t)); return *this; } - function(const function &source) { memcpy(&data, &source.data, sizeof(data_t)); } - }; - - template - function bind(R (*fn)(PL)) { - return function(fn); - } - - template - function bind(R (C::*fn)(PL), C *obj) { - return function(fn, obj); - } - - template - function bind(R (C::*fn)(PL) const, C *obj) { - return function(fn, obj); - } -} - -#undef cat -#undef TL -#undef PL -#undef CL - -#endif diff --git a/supergameboy/nall/input.hpp b/supergameboy/nall/input.hpp deleted file mode 100644 index b3ce9ebf..00000000 --- a/supergameboy/nall/input.hpp +++ /dev/null @@ -1,386 +0,0 @@ -#ifndef NALL_INPUT_HPP -#define NALL_INPUT_HPP - -#include -#include -#include - -#include -#include - -namespace nall { - -struct Keyboard; -Keyboard& keyboard(unsigned = 0); - -static const char KeyboardScancodeName[][64] = { - "Escape", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", - "PrintScreen", "ScrollLock", "Pause", "Tilde", - "Num1", "Num2", "Num3", "Num4", "Num5", "Num6", "Num7", "Num8", "Num9", "Num0", - "Dash", "Equal", "Backspace", - "Insert", "Delete", "Home", "End", "PageUp", "PageDown", - "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", - "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", - "LeftBracket", "RightBracket", "Backslash", "Semicolon", "Apostrophe", "Comma", "Period", "Slash", - "Keypad1", "Keypad2", "Keypad3", "Keypad4", "Keypad5", "Keypad6", "Keypad7", "Keypad8", "Keypad9", "Keypad0", - "Point", "Enter", "Add", "Subtract", "Multiply", "Divide", - "NumLock", "CapsLock", - "Up", "Down", "Left", "Right", - "Tab", "Return", "Spacebar", "Menu", - "Shift", "Control", "Alt", "Super", -}; - -struct Keyboard { - const unsigned ID; - enum { Base = 1 }; - enum { Count = 8, Size = 128 }; - - enum Scancode { - Escape, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, - PrintScreen, ScrollLock, Pause, Tilde, - Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9, Num0, - Dash, Equal, Backspace, - Insert, Delete, Home, End, PageUp, PageDown, - A, B, C, D, E, F, G, H, I, J, K, L, M, - N, O, P, Q, R, S, T, U, V, W, X, Y, Z, - LeftBracket, RightBracket, Backslash, Semicolon, Apostrophe, Comma, Period, Slash, - Keypad1, Keypad2, Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9, Keypad0, - Point, Enter, Add, Subtract, Multiply, Divide, - NumLock, CapsLock, - Up, Down, Left, Right, - Tab, Return, Spacebar, Menu, - Shift, Control, Alt, Super, - Limit, - }; - - static signed numberDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).belongsTo(scancode)) return i; - } - return -1; - } - - static signed keyDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isKey(scancode)) return scancode - keyboard(i).key(Escape); - } - return -1; - } - - static signed modifierDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isModifier(scancode)) return scancode - keyboard(i).key(Shift); - } - return -1; - } - - static bool isAnyKey(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isKey(scancode)) return true; - } - return false; - } - - static bool isAnyModifier(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(keyboard(i).isModifier(scancode)) return true; - } - return false; - } - - static uint16_t decode(const char *name) { - string s(name); - if(!strbegin(name, "KB")) return 0; - ltrim(s, "KB"); - unsigned id = strunsigned(s); - int pos = strpos(s, "::"); - if(pos < 0) return 0; - s = substr(s, pos + 2); - for(unsigned i = 0; i < Limit; i++) { - if(s == KeyboardScancodeName[i]) return Base + Size * id + i; - } - return 0; - } - - string encode(uint16_t code) const { - unsigned index = 0; - for(unsigned i = 0; i < Count; i++) { - if(code >= Base + Size * i && code < Base + Size * (i + 1)) { - index = code - (Base + Size * i); - break; - } - } - return string() << "KB" << ID << "::" << KeyboardScancodeName[index]; - } - - uint16_t operator[](Scancode code) const { return Base + ID * Size + code; } - uint16_t key(unsigned id) const { return Base + Size * ID + id; } - bool isKey(unsigned id) const { return id >= key(Escape) && id <= key(Menu); } - bool isModifier(unsigned id) const { return id >= key(Shift) && id <= key(Super); } - bool belongsTo(uint16_t scancode) const { return isKey(scancode) || isModifier(scancode); } - - Keyboard(unsigned ID_) : ID(ID_) {} -}; - -inline Keyboard& keyboard(unsigned id) { - static Keyboard kb0(0), kb1(1), kb2(2), kb3(3), kb4(4), kb5(5), kb6(6), kb7(7); - switch(id) { default: - case 0: return kb0; case 1: return kb1; case 2: return kb2; case 3: return kb3; - case 4: return kb4; case 5: return kb5; case 6: return kb6; case 7: return kb7; - } -} - -static const char MouseScancodeName[][64] = { - "Xaxis", "Yaxis", "Zaxis", - "Button0", "Button1", "Button2", "Button3", "Button4", "Button5", "Button6", "Button7", -}; - -struct Mouse; -Mouse& mouse(unsigned = 0); - -struct Mouse { - const unsigned ID; - enum { Base = Keyboard::Base + Keyboard::Size * Keyboard::Count }; - enum { Count = 8, Size = 16 }; - enum { Axes = 3, Buttons = 8 }; - - enum Scancode { - Xaxis, Yaxis, Zaxis, - Button0, Button1, Button2, Button3, Button4, Button5, Button6, Button7, - Limit, - }; - - static signed numberDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).belongsTo(scancode)) return i; - } - return -1; - } - - static signed axisDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isAxis(scancode)) return scancode - mouse(i).axis(0); - } - return -1; - } - - static signed buttonDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isButton(scancode)) return scancode - mouse(i).button(0); - } - return -1; - } - - static bool isAnyAxis(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isAxis(scancode)) return true; - } - return false; - } - - static bool isAnyButton(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(mouse(i).isButton(scancode)) return true; - } - return false; - } - - static uint16_t decode(const char *name) { - string s(name); - if(!strbegin(name, "MS")) return 0; - ltrim(s, "MS"); - unsigned id = strunsigned(s); - int pos = strpos(s, "::"); - if(pos < 0) return 0; - s = substr(s, pos + 2); - for(unsigned i = 0; i < Limit; i++) { - if(s == MouseScancodeName[i]) return Base + Size * id + i; - } - return 0; - } - - string encode(uint16_t code) const { - unsigned index = 0; - for(unsigned i = 0; i < Count; i++) { - if(code >= Base + Size * i && code < Base + Size * (i + 1)) { - index = code - (Base + Size * i); - break; - } - } - return string() << "MS" << ID << "::" << MouseScancodeName[index]; - } - - uint16_t operator[](Scancode code) const { return Base + ID * Size + code; } - uint16_t axis(unsigned id) const { return Base + Size * ID + Xaxis + id; } - uint16_t button(unsigned id) const { return Base + Size * ID + Button0 + id; } - bool isAxis(unsigned id) const { return id >= axis(0) && id <= axis(2); } - bool isButton(unsigned id) const { return id >= button(0) && id <= button(7); } - bool belongsTo(uint16_t scancode) const { return isAxis(scancode) || isButton(scancode); } - - Mouse(unsigned ID_) : ID(ID_) {} -}; - -inline Mouse& mouse(unsigned id) { - static Mouse ms0(0), ms1(1), ms2(2), ms3(3), ms4(4), ms5(5), ms6(6), ms7(7); - switch(id) { default: - case 0: return ms0; case 1: return ms1; case 2: return ms2; case 3: return ms3; - case 4: return ms4; case 5: return ms5; case 6: return ms6; case 7: return ms7; - } -} - -static const char JoypadScancodeName[][64] = { - "Hat0", "Hat1", "Hat2", "Hat3", "Hat4", "Hat5", "Hat6", "Hat7", - "Axis0", "Axis1", "Axis2", "Axis3", "Axis4", "Axis5", "Axis6", "Axis7", - "Axis8", "Axis9", "Axis10", "Axis11", "Axis12", "Axis13", "Axis14", "Axis15", - "Button0", "Button1", "Button2", "Button3", "Button4", "Button5", "Button6", "Button7", - "Button8", "Button9", "Button10", "Button11", "Button12", "Button13", "Button14", "Button15", - "Button16", "Button17", "Button18", "Button19", "Button20", "Button21", "Button22", "Button23", - "Button24", "Button25", "Button26", "Button27", "Button28", "Button29", "Button30", "Button31", -}; - -struct Joypad; -Joypad& joypad(unsigned = 0); - -struct Joypad { - const unsigned ID; - enum { Base = Mouse::Base + Mouse::Size * Mouse::Count }; - enum { Count = 8, Size = 64 }; - enum { Hats = 8, Axes = 16, Buttons = 32 }; - - enum Scancode { - Hat0, Hat1, Hat2, Hat3, Hat4, Hat5, Hat6, Hat7, - Axis0, Axis1, Axis2, Axis3, Axis4, Axis5, Axis6, Axis7, - Axis8, Axis9, Axis10, Axis11, Axis12, Axis13, Axis14, Axis15, - Button0, Button1, Button2, Button3, Button4, Button5, Button6, Button7, - Button8, Button9, Button10, Button11, Button12, Button13, Button14, Button15, - Button16, Button17, Button18, Button19, Button20, Button21, Button22, Button23, - Button24, Button25, Button26, Button27, Button28, Button29, Button30, Button31, - Limit, - }; - - enum Hat { HatCenter = 0, HatUp = 1, HatRight = 2, HatDown = 4, HatLeft = 8 }; - - static signed numberDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).belongsTo(scancode)) return i; - } - return -1; - } - - static signed hatDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isHat(scancode)) return scancode - joypad(i).hat(0); - } - return -1; - } - - static signed axisDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isAxis(scancode)) return scancode - joypad(i).axis(0); - } - return -1; - } - - static signed buttonDecode(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isButton(scancode)) return scancode - joypad(i).button(0); - } - return -1; - } - - static bool isAnyHat(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isHat(scancode)) return true; - } - return false; - } - - static bool isAnyAxis(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isAxis(scancode)) return true; - } - return false; - } - - static bool isAnyButton(uint16_t scancode) { - for(unsigned i = 0; i < Count; i++) { - if(joypad(i).isButton(scancode)) return true; - } - return false; - } - - static uint16_t decode(const char *name) { - string s(name); - if(!strbegin(name, "JP")) return 0; - ltrim(s, "JP"); - unsigned id = strunsigned(s); - int pos = strpos(s, "::"); - if(pos < 0) return 0; - s = substr(s, pos + 2); - for(unsigned i = 0; i < Limit; i++) { - if(s == JoypadScancodeName[i]) return Base + Size * id + i; - } - return 0; - } - - string encode(uint16_t code) const { - unsigned index = 0; - for(unsigned i = 0; i < Count; i++) { - if(code >= Base + Size * i && code < Base + Size * (i + 1)) { - index = code - (Base + Size * i); - } - } - return string() << "JP" << ID << "::" << JoypadScancodeName[index]; - } - - uint16_t operator[](Scancode code) const { return Base + ID * Size + code; } - uint16_t hat(unsigned id) const { return Base + Size * ID + Hat0 + id; } - uint16_t axis(unsigned id) const { return Base + Size * ID + Axis0 + id; } - uint16_t button(unsigned id) const { return Base + Size * ID + Button0 + id; } - bool isHat(unsigned id) const { return id >= hat(0) && id <= hat(7); } - bool isAxis(unsigned id) const { return id >= axis(0) && id <= axis(15); } - bool isButton(unsigned id) const { return id >= button(0) && id <= button(31); } - bool belongsTo(uint16_t scancode) const { return isHat(scancode) || isAxis(scancode) || isButton(scancode); } - - Joypad(unsigned ID_) : ID(ID_) {} -}; - -inline Joypad& joypad(unsigned id) { - static Joypad jp0(0), jp1(1), jp2(2), jp3(3), jp4(4), jp5(5), jp6(6), jp7(7); - switch(id) { default: - case 0: return jp0; case 1: return jp1; case 2: return jp2; case 3: return jp3; - case 4: return jp4; case 5: return jp5; case 6: return jp6; case 7: return jp7; - } -} - -struct Scancode { - enum { None = 0, Limit = Joypad::Base + Joypad::Size * Joypad::Count }; - - static uint16_t decode(const char *name) { - uint16_t code; - code = Keyboard::decode(name); - if(code) return code; - code = Mouse::decode(name); - if(code) return code; - code = Joypad::decode(name); - if(code) return code; - return None; - } - - static string encode(uint16_t code) { - for(unsigned i = 0; i < Keyboard::Count; i++) { - if(keyboard(i).belongsTo(code)) return keyboard(i).encode(code); - } - for(unsigned i = 0; i < Mouse::Count; i++) { - if(mouse(i).belongsTo(code)) return mouse(i).encode(code); - } - for(unsigned i = 0; i < Joypad::Count; i++) { - if(joypad(i).belongsTo(code)) return joypad(i).encode(code); - } - return "None"; - } -}; - -} - -#endif diff --git a/supergameboy/nall/lzss.hpp b/supergameboy/nall/lzss.hpp deleted file mode 100644 index 202bc814..00000000 --- a/supergameboy/nall/lzss.hpp +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef NALL_LZSS_HPP -#define NALL_LZSS_HPP - -#include -#include -#include - -namespace nall { - class lzss { - public: - static bool encode(uint8_t *&output, unsigned &outlength, const uint8_t *input, unsigned inlength) { - output = new(zeromemory) uint8_t[inlength * 9 / 8 + 9]; - - unsigned i = 0, o = 0; - while(i < inlength) { - unsigned flagoffset = o++; - uint8_t flag = 0x00; - - for(unsigned b = 0; b < 8 && i < inlength; b++) { - unsigned longest = 0, pointer; - for(unsigned index = 1; index < 4096; index++) { - unsigned count = 0; - while(true) { - if(count >= 15 + 3) break; //verify pattern match is not longer than max length - if(i + count >= inlength) break; //verify pattern match does not read past end of input - if(i + count < index) break; //verify read is not before start of input - if(input[i + count] != input[i + count - index]) break; //verify pattern still matches - count++; - } - - if(count > longest) { - longest = count; - pointer = index; - } - } - - if(longest < 3) output[o++] = input[i++]; - else { - flag |= 1 << b; - uint16_t x = ((longest - 3) << 12) + pointer; - output[o++] = x; - output[o++] = x >> 8; - i += longest; - } - } - - output[flagoffset] = flag; - } - - outlength = o; - return true; - } - - static bool decode(uint8_t *&output, const uint8_t *input, unsigned length) { - output = new(zeromemory) uint8_t[length]; - - unsigned i = 0, o = 0; - while(o < length) { - uint8_t flag = input[i++]; - - for(unsigned b = 0; b < 8 && o < length; b++) { - if(!(flag & (1 << b))) output[o++] = input[i++]; - else { - uint16_t offset = input[i++]; - offset += input[i++] << 8; - uint16_t lookuplength = (offset >> 12) + 3; - offset &= 4095; - for(unsigned index = 0; index < lookuplength && o + index < length; index++) { - output[o + index] = output[o + index - offset]; - } - o += lookuplength; - } - } - } - - return true; - } - }; -} - -#endif diff --git a/supergameboy/nall/moduloarray.hpp b/supergameboy/nall/moduloarray.hpp deleted file mode 100644 index be549ae9..00000000 --- a/supergameboy/nall/moduloarray.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef NALL_MODULO_HPP -#define NALL_MODULO_HPP - -#include - -namespace nall { - template class modulo_array { - public: - inline T operator[](int index) const { - return buffer[size + index]; - } - - inline T read(int index) const { - return buffer[size + index]; - } - - inline void write(unsigned index, const T value) { - buffer[index] = - buffer[index + size] = - buffer[index + size + size] = value; - } - - void serialize(serializer &s) { - s.array(buffer, size * 3); - } - - modulo_array() { - buffer = new T[size * 3](); - } - - ~modulo_array() { - delete[] buffer; - } - - private: - T *buffer; - }; -} - -#endif diff --git a/supergameboy/nall/platform.hpp b/supergameboy/nall/platform.hpp deleted file mode 100644 index 68ed37ce..00000000 --- a/supergameboy/nall/platform.hpp +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef NALL_PLATFORM_HPP -#define NALL_PLATFORM_HPP - -#include - -//========================= -//standard platform headers -//========================= - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(_WIN32) - #include - #include - #include - #undef interface -#else - #include - #include - #include -#endif - -//================== -//warning supression -//================== - -//Visual C++ -#if defined(_MSC_VER) - //disable libc "deprecation" warnings - #pragma warning(disable:4996) -#endif - -//================ -//POSIX compliance -//================ - -#if defined(_MSC_VER) - #define PATH_MAX _MAX_PATH - #define va_copy(dest, src) ((dest) = (src)) -#endif - -#if defined(_WIN32) - #define getcwd _getcwd - #define ftruncate _chsize - #define putenv _putenv - #define mkdir(n, m) _wmkdir(nall::utf16_t(n)) - #define rmdir _rmdir - #define vsnprintf _vsnprintf - #define usleep(n) Sleep(n / 1000) -#endif - -//================ -//inline expansion -//================ - -#if defined(__GNUC__) - #define noinline __attribute__((noinline)) - #define inline inline - #define alwaysinline inline __attribute__((always_inline)) -#elif defined(_MSC_VER) - #define noinline __declspec(noinline) - #define inline inline - #define alwaysinline inline __forceinline -#else - #define noinline - #define inline inline - #define alwaysinline inline -#endif - -#endif - diff --git a/supergameboy/nall/priorityqueue.hpp b/supergameboy/nall/priorityqueue.hpp deleted file mode 100644 index 7104e791..00000000 --- a/supergameboy/nall/priorityqueue.hpp +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef NALL_PRIORITYQUEUE_HPP -#define NALL_PRIORITYQUEUE_HPP - -#include -#include -#include -#include - -namespace nall { - template void priority_queue_nocallback(type_t) {} - - //priority queue implementation using binary min-heap array; - //does not require normalize() function. - //O(1) find (tick) - //O(log n) insert (enqueue) - //O(log n) remove (dequeue) - template class priority_queue { - public: - inline void tick(unsigned ticks) { - basecounter += ticks; - while(heapsize && gte(basecounter, heap[0].counter)) callback(dequeue()); - } - - //counter is relative to current time (eg enqueue(64, ...) fires in 64 ticks); - //counter cannot exceed std::numeric_limits::max() >> 1. - void enqueue(unsigned counter, type_t event) { - unsigned child = heapsize++; - counter += basecounter; - - while(child) { - unsigned parent = (child - 1) >> 1; - if(gte(counter, heap[parent].counter)) break; - - heap[child].counter = heap[parent].counter; - heap[child].event = heap[parent].event; - child = parent; - } - - heap[child].counter = counter; - heap[child].event = event; - } - - type_t dequeue() { - type_t event(heap[0].event); - unsigned parent = 0; - unsigned counter = heap[--heapsize].counter; - - while(true) { - unsigned child = (parent << 1) + 1; - if(child >= heapsize) break; - if(child + 1 < heapsize && gte(heap[child].counter, heap[child + 1].counter)) child++; - if(gte(heap[child].counter, counter)) break; - - heap[parent].counter = heap[child].counter; - heap[parent].event = heap[child].event; - parent = child; - } - - heap[parent].counter = counter; - heap[parent].event = heap[heapsize].event; - return event; - } - - void reset() { - basecounter = 0; - heapsize = 0; - } - - void serialize(serializer &s) { - s.integer(basecounter); - s.integer(heapsize); - for(unsigned n = 0; n < heapcapacity; n++) { - s.integer(heap[n].counter); - s.integer(heap[n].event); - } - } - - priority_queue(unsigned size, function callback_ = &priority_queue_nocallback) - : callback(callback_) { - heap = new heap_t[size]; - heapcapacity = size; - reset(); - } - - ~priority_queue() { - delete[] heap; - } - - priority_queue& operator=(const priority_queue&) = delete; - priority_queue(const priority_queue&) = delete; - - private: - function callback; - unsigned basecounter; - unsigned heapsize; - unsigned heapcapacity; - struct heap_t { - unsigned counter; - type_t event; - } *heap; - - //return true if x is greater than or equal to y - inline bool gte(unsigned x, unsigned y) { - return x - y < (std::numeric_limits::max() >> 1); - } - }; -} - -#endif diff --git a/supergameboy/nall/property.hpp b/supergameboy/nall/property.hpp deleted file mode 100644 index 6fd33acd..00000000 --- a/supergameboy/nall/property.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef NALL_PROPERTY_HPP -#define NALL_PROPERTY_HPP - -//nall::property implements ownership semantics into container classes -//example: property::readonly implies that only owner has full -//access to type; and all other code has readonly access. -// -//this code relies on extended friend semantics from C++0x to work, as it -//declares a friend class via a template paramter. it also exploits a bug in -//G++ 4.x to work even in C++98 mode. -// -//if compiling elsewhere, simply remove the friend class and private semantics - -//property can be used either of two ways: -//struct foo { -// property::readonly x; -// property::readwrite y; -//}; -//-or- -//struct foo : property { -// readonly x; -// readwrite y; -//}; - -//return types are const T& (byref) instead fo T (byval) to avoid major speed -//penalties for objects with expensive copy constructors - -//operator-> provides access to underlying object type: -//readonly foo; -//foo->bar(); -//... will call Object::bar(); - -//operator='s reference is constant so as to avoid leaking a reference handle -//that could bypass access restrictions - -//both constant and non-constant operators are provided, though it may be -//necessary to cast first, for instance: -//struct foo : property { readonly bar; } object; -//int main() { int value = const_cast(object); } - -//writeonly is useful for objects that have non-const reads, but const writes. -//however, to avoid leaking handles, the interface is very restricted. the only -//way to write is via operator=, which requires conversion via eg copy -//constructor. example: -//struct foo { -// foo(bool value) { ... } -//}; -//writeonly bar; -//bar = true; - -namespace nall { - template struct property { - template struct traits { typedef T type; }; - - template struct readonly { - const T* operator->() const { return &value; } - const T& operator()() const { return value; } - operator const T&() const { return value; } - private: - T* operator->() { return &value; } - operator T&() { return value; } - const T& operator=(const T& value_) { return value = value_; } - T value; - friend class traits::type; - }; - - template struct writeonly { - void operator=(const T& value_) { value = value_; } - private: - const T* operator->() const { return &value; } - const T& operator()() const { return value; } - operator const T&() const { return value; } - T* operator->() { return &value; } - operator T&() { return value; } - T value; - friend class traits::type; - }; - - template struct readwrite { - const T* operator->() const { return &value; } - const T& operator()() const { return value; } - operator const T&() const { return value; } - T* operator->() { return &value; } - operator T&() { return value; } - const T& operator=(const T& value_) { return value = value_; } - T value; - }; - }; -} - -#endif diff --git a/supergameboy/nall/qt/Makefile b/supergameboy/nall/qt/Makefile deleted file mode 100644 index 69e84960..00000000 --- a/supergameboy/nall/qt/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -# requires nall/Makefile - -# imports: -# $(qtlibs) -- list of Qt components to link against - -# exports the following symbols: -# $(moc) -- meta-object compiler -# $(rcc) -- resource compiler -# $(qtinc) -- includes for compiling -# $(qtlib) -- libraries for linking - -ifeq ($(moc),) -moc := moc -endif - -ifeq ($(rcc),) -rcc := rcc -endif - -ifeq ($(platform),x) - qtinc := `pkg-config --cflags $(qtlibs)` - qtlib := `pkg-config --libs $(qtlibs)` -else ifeq ($(platform),osx) - qtinc := $(foreach lib,$(qtlibs),-I/Library/Frameworks/$(lib).framework/Versions/4/Headers) - - qtlib := -L/Library/Frameworks - qtlib += $(foreach lib,$(qtlibs),-framework $(lib)) - qtlib += -framework Carbon - qtlib += -framework Cocoa - qtlib += -framework OpenGL - qtlib += -framework AppKit - qtlib += -framework ApplicationServices -else ifeq ($(platform),win) - ifeq ($(qtpath),) - # find Qt install directory from PATH environment variable - qtpath := $(foreach path,$(subst ;, ,$(PATH)),$(if $(wildcard $(path)/$(moc).exe),$(path))) - qtpath := $(strip $(qtpath)) - qtpath := $(subst \,/,$(qtpath)) - qtpath := $(patsubst %/bin,%,$(qtpath)) - endif - - qtinc := -I$(qtpath)/include - qtinc += $(foreach lib,$(qtlibs),-I$(qtpath)/include/$(lib)) - - qtlib := -L$(qtpath)/lib - qtlib += -L$(qtpath)/plugins/imageformats - - qtlib += $(foreach lib,$(qtlibs),-l$(lib)4) - qtlib += -lmingw32 -lqtmain -lcomdlg32 -loleaut32 -limm32 -lwinmm - qtlib += -lwinspool -lmsimg32 -lole32 -ladvapi32 -lws2_32 -luuid -lgdi32 - qtlib += $(foreach lib,$(qtlibs),-l$(lib)4) - - # optional image-file support: - # qtlib += -lqjpeg -lqmng -endif diff --git a/supergameboy/nall/qt/check-action.moc.hpp b/supergameboy/nall/qt/check-action.moc.hpp deleted file mode 100644 index db378fe9..00000000 --- a/supergameboy/nall/qt/check-action.moc.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef NALL_QT_CHECKACTION_HPP -#define NALL_QT_CHECKACTION_HPP - -namespace nall { - -class CheckAction : public QAction { - Q_OBJECT - -public: - bool isChecked() const; - void setChecked(bool); - void toggleChecked(); - CheckAction(const QString&, QObject*); - -protected slots: - -protected: - bool checked; -}; - -inline bool CheckAction::isChecked() const { - return checked; -} - -inline void CheckAction::setChecked(bool checked_) { - checked = checked_; - if(checked) setIcon(QIcon(":/16x16/item-check-on.png")); - else setIcon(QIcon(":/16x16/item-check-off.png")); -} - -inline void CheckAction::toggleChecked() { - setChecked(!isChecked()); -} - -inline CheckAction::CheckAction(const QString &text, QObject *parent) : QAction(text, parent) { - setChecked(false); -} - -} - -#endif diff --git a/supergameboy/nall/qt/concept.hpp b/supergameboy/nall/qt/concept.hpp deleted file mode 100644 index 51cacef4..00000000 --- a/supergameboy/nall/qt/concept.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef NALL_QT_CONCEPT_HPP -#define NALL_QT_CONCEPT_HPP - -#include - -namespace nall { - template struct has_count> { enum { value = true }; }; -} - -#endif diff --git a/supergameboy/nall/qt/file-dialog.moc.hpp b/supergameboy/nall/qt/file-dialog.moc.hpp deleted file mode 100644 index bcccfaf5..00000000 --- a/supergameboy/nall/qt/file-dialog.moc.hpp +++ /dev/null @@ -1,392 +0,0 @@ -#ifndef NALL_QT_FILEDIALOG_HPP -#define NALL_QT_FILEDIALOG_HPP - -#include -#include -#include - -namespace nall { - -class FileDialog; - -class NewFolderDialog : public Window { - Q_OBJECT - -public: - void show(); - NewFolderDialog(FileDialog*); - -protected slots: - void createFolderAction(); - -protected: - FileDialog *parent; - QVBoxLayout *layout; - QLineEdit *folderNameEdit; - QHBoxLayout *controlLayout; - QPushButton *okButton; - QPushButton *cancelButton; -}; - -class FileView : public QListView { - Q_OBJECT - -protected: - void keyPressEvent(QKeyEvent*); - -signals: - void changed(const QModelIndex&); - void browseUp(); - -protected slots: - void currentChanged(const QModelIndex&, const QModelIndex&); -}; - -class FileDialog : public Window { - Q_OBJECT - -public: - void showLoad(); - void showSave(); - void showFolder(); - - void setPath(string path); - void setNameFilters(const string &filters); - FileDialog(); - -signals: - void changed(const string&); - void activated(const string&); - void accepted(const string&); - void rejected(); - -protected slots: - void fileViewChange(const QModelIndex&); - void fileViewActivate(const QModelIndex&); - void pathBoxChanged(); - void filterBoxChanged(); - void createNewFolder(); - void browseUp(); - void acceptAction(); - void rejectAction(); - -protected: - NewFolderDialog *newFolderDialog; - QVBoxLayout *layout; - QHBoxLayout *navigationLayout; - QComboBox *pathBox; - QPushButton *newFolderButton; - QPushButton *upFolderButton; - QHBoxLayout *browseLayout; - QFileSystemModel *fileSystemModel; - FileView *fileView; - QGroupBox *previewFrame; - QLineEdit *fileNameEdit; - QHBoxLayout *controlLayout; - QComboBox *filterBox; - QPushButton *optionsButton; - QPushButton *acceptButton; - QPushButton *rejectButton; - bool lock; - void createFolderAction(const string &name); - void closeEvent(QCloseEvent*); - - friend class NewFolderDialog; -}; - -inline void NewFolderDialog::show() { - folderNameEdit->setText(""); - Window::show(); - folderNameEdit->setFocus(); -} - -inline void NewFolderDialog::createFolderAction() { - string name = folderNameEdit->text().toUtf8().constData(); - if(name == "") { - folderNameEdit->setFocus(); - } else { - parent->createFolderAction(name); - close(); - } -} - -inline NewFolderDialog::NewFolderDialog(FileDialog *fileDialog) : parent(fileDialog) { - setMinimumWidth(240); - setWindowTitle("Create New Folder"); - - layout = new QVBoxLayout; - layout->setAlignment(Qt::AlignTop); - layout->setMargin(5); - layout->setSpacing(5); - setLayout(layout); - - folderNameEdit = new QLineEdit; - layout->addWidget(folderNameEdit); - - controlLayout = new QHBoxLayout; - controlLayout->setAlignment(Qt::AlignRight); - layout->addLayout(controlLayout); - - okButton = new QPushButton("Ok"); - controlLayout->addWidget(okButton); - - cancelButton = new QPushButton("Cancel"); - controlLayout->addWidget(cancelButton); - - connect(folderNameEdit, SIGNAL(returnPressed()), this, SLOT(createFolderAction())); - connect(okButton, SIGNAL(released()), this, SLOT(createFolderAction())); - connect(cancelButton, SIGNAL(released()), this, SLOT(close())); -} - -inline void FileView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous) { - QAbstractItemView::currentChanged(current, previous); - emit changed(current); -} - -inline void FileView::keyPressEvent(QKeyEvent *event) { - //enhance consistency: force OS X to act like Windows and Linux; enter = activate item - if(event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) { - emit activated(currentIndex()); - return; - } - - //simulate popular file manager behavior; backspace = go up one directory - if(event->key() == Qt::Key_Backspace) { - emit browseUp(); - return; - } - - //fallback: unrecognized keypresses get handled by the widget itself - QListView::keyPressEvent(event); -} - -inline void FileDialog::showLoad() { - acceptButton->setText("Load"); - fileNameEdit->hide(); - filterBox->show(); - show(); -} - -inline void FileDialog::showSave() { - acceptButton->setText("Save"); - fileNameEdit->show(); - filterBox->show(); - show(); -} - -inline void FileDialog::showFolder() { - acceptButton->setText("Choose"); - fileNameEdit->hide(); - filterBox->hide(); - setNameFilters("Folders ()"); - show(); -} - -inline void FileDialog::fileViewChange(const QModelIndex &index) { - string path = fileSystemModel->filePath(index).toUtf8().constData(); - if(path == fileSystemModel->rootPath().toUtf8().constData()) path = ""; - fileNameEdit->setText(notdir(path)); - emit changed(path); -} - -inline void FileDialog::fileViewActivate(const QModelIndex &index) { - string path = fileSystemModel->filePath(index).toUtf8().constData(); - if(fileSystemModel->isDir(index)) { - emit activated(path); - setPath(path); - } else { - emit activated(path); - close(); - } -} - -inline void FileDialog::pathBoxChanged() { - if(lock) return; - setPath(pathBox->currentText().toUtf8().constData()); -} - -inline void FileDialog::filterBoxChanged() { - if(lock) return; - string filters = filterBox->currentText().toUtf8().constData(); - if(filters.length() == 0) { - fileSystemModel->setNameFilters(QStringList() << "*"); - } else { - filters = substr(filters, strpos(filters, "(")); - ltrim(filters, "("); - rtrim(filters, ")"); - lstring part; - part.split(" ", filters); - QStringList list; - for(unsigned i = 0; i < part.size(); i++) list << part[i]; - fileSystemModel->setNameFilters(list); - } -} - -inline void FileDialog::createNewFolder() { - newFolderDialog->show(); -} - -inline void FileDialog::browseUp() { - if(pathBox->count() > 1) pathBox->setCurrentIndex(1); -} - -inline void FileDialog::setPath(string path) { - lock = true; - newFolderDialog->close(); - - if(QDir(path).exists()) { - newFolderButton->setEnabled(true); - } else { - newFolderButton->setEnabled(false); - path = ""; - } - - fileSystemModel->setRootPath(path); - fileView->setRootIndex(fileSystemModel->index(path)); - fileView->setCurrentIndex(fileView->rootIndex()); - fileView->setFocus(); - - pathBox->clear(); - if(path.length() > 0) { - QDir directory(path); - while(true) { - pathBox->addItem(directory.absolutePath()); - if(directory.isRoot()) break; - directory.cdUp(); - } - } - pathBox->addItem(""); - fileNameEdit->setText(""); - - lock = false; -} - -inline void FileDialog::setNameFilters(const string &filters) { - lock = true; - - lstring list; - list.split("\n", filters); - - filterBox->clear(); - for(unsigned i = 0; i < list.size(); i++) { - filterBox->addItem(list[i]); - } - - lock = false; - filterBoxChanged(); -} - -inline void FileDialog::acceptAction() { - string path = fileSystemModel->rootPath().toUtf8().constData(); - path << "/" << notdir(fileNameEdit->text().toUtf8().constData()); - rtrim(path, "/"); - if(QDir(path).exists()) { - emit accepted(path); - setPath(path); - } else { - emit accepted(path); - close(); - } -} - -inline void FileDialog::rejectAction() { - emit rejected(); - close(); -} - -inline void FileDialog::createFolderAction(const string &name) { - string path = fileSystemModel->rootPath().toUtf8().constData(); - path << "/" << notdir(name); - mkdir(path, 0755); -} - -inline void FileDialog::closeEvent(QCloseEvent *event) { - newFolderDialog->close(); - Window::closeEvent(event); -} - -inline FileDialog::FileDialog() { - newFolderDialog = new NewFolderDialog(this); - resize(640, 360); - - layout = new QVBoxLayout; - layout->setMargin(5); - layout->setSpacing(5); - setLayout(layout); - - navigationLayout = new QHBoxLayout; - layout->addLayout(navigationLayout); - - pathBox = new QComboBox; - pathBox->setEditable(true); - pathBox->setMinimumContentsLength(16); - pathBox->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); - pathBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - navigationLayout->addWidget(pathBox); - - newFolderButton = new QPushButton; - newFolderButton->setIconSize(QSize(16, 16)); - newFolderButton->setIcon(QIcon(":/16x16/folder-new.png")); - navigationLayout->addWidget(newFolderButton); - - upFolderButton = new QPushButton; - upFolderButton->setIconSize(QSize(16, 16)); - upFolderButton->setIcon(QIcon(":/16x16/go-up.png")); - navigationLayout->addWidget(upFolderButton); - - browseLayout = new QHBoxLayout; - layout->addLayout(browseLayout); - - fileSystemModel = new QFileSystemModel; - fileSystemModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); - fileSystemModel->setNameFilterDisables(false); - - fileView = new FileView; - fileView->setMinimumWidth(320); - fileView->setModel(fileSystemModel); - fileView->setIconSize(QSize(16, 16)); - browseLayout->addWidget(fileView); - - previewFrame = new QGroupBox; - previewFrame->hide(); - browseLayout->addWidget(previewFrame); - - fileNameEdit = new QLineEdit; - layout->addWidget(fileNameEdit); - - controlLayout = new QHBoxLayout; - controlLayout->setAlignment(Qt::AlignRight); - layout->addLayout(controlLayout); - - filterBox = new QComboBox; - filterBox->setMinimumContentsLength(16); - filterBox->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); - filterBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - controlLayout->addWidget(filterBox); - - optionsButton = new QPushButton("Options"); - optionsButton->hide(); - controlLayout->addWidget(optionsButton); - - acceptButton = new QPushButton("Ok"); - controlLayout->addWidget(acceptButton); - - rejectButton = new QPushButton("Cancel"); - controlLayout->addWidget(rejectButton); - - lock = false; - connect(pathBox, SIGNAL(currentIndexChanged(int)), this, SLOT(pathBoxChanged())); - connect(newFolderButton, SIGNAL(released()), this, SLOT(createNewFolder())); - connect(upFolderButton, SIGNAL(released()), this, SLOT(browseUp())); - connect(fileView, SIGNAL(changed(const QModelIndex&)), this, SLOT(fileViewChange(const QModelIndex&))); - connect(fileView, SIGNAL(activated(const QModelIndex&)), this, SLOT(fileViewActivate(const QModelIndex&))); - connect(fileView, SIGNAL(browseUp()), this, SLOT(browseUp())); - connect(fileNameEdit, SIGNAL(returnPressed()), this, SLOT(acceptAction())); - connect(filterBox, SIGNAL(currentIndexChanged(int)), this, SLOT(filterBoxChanged())); - connect(acceptButton, SIGNAL(released()), this, SLOT(acceptAction())); - connect(rejectButton, SIGNAL(released()), this, SLOT(rejectAction())); -} - -} - -#endif diff --git a/supergameboy/nall/qt/hex-editor.moc.hpp b/supergameboy/nall/qt/hex-editor.moc.hpp deleted file mode 100644 index d59f4be9..00000000 --- a/supergameboy/nall/qt/hex-editor.moc.hpp +++ /dev/null @@ -1,173 +0,0 @@ -#ifndef NALL_QT_HEXEDITOR_HPP -#define NALL_QT_HEXEDITOR_HPP - -#include -#include -#include - -namespace nall { - -class HexEditor : public QTextEdit { - Q_OBJECT - -public: - function reader; - function writer; - - void setColumns(unsigned columns); - void setRows(unsigned rows); - void setOffset(unsigned offset); - void setSize(unsigned size); - unsigned lineWidth() const; - void refresh(); - - HexEditor(); - -protected slots: - void scrolled(); - -protected: - QHBoxLayout *layout; - QScrollBar *scrollBar; - unsigned editorColumns; - unsigned editorRows; - unsigned editorOffset; - unsigned editorSize; - bool lock; - - void keyPressEvent(QKeyEvent*); -}; - -inline void HexEditor::keyPressEvent(QKeyEvent *event) { - QTextCursor cursor = textCursor(); - unsigned x = cursor.position() % lineWidth(); - unsigned y = cursor.position() / lineWidth(); - - int hexCode = -1; - switch(event->key()) { - case Qt::Key_0: hexCode = 0; break; - case Qt::Key_1: hexCode = 1; break; - case Qt::Key_2: hexCode = 2; break; - case Qt::Key_3: hexCode = 3; break; - case Qt::Key_4: hexCode = 4; break; - case Qt::Key_5: hexCode = 5; break; - case Qt::Key_6: hexCode = 6; break; - case Qt::Key_7: hexCode = 7; break; - case Qt::Key_8: hexCode = 8; break; - case Qt::Key_9: hexCode = 9; break; - case Qt::Key_A: hexCode = 10; break; - case Qt::Key_B: hexCode = 11; break; - case Qt::Key_C: hexCode = 12; break; - case Qt::Key_D: hexCode = 13; break; - case Qt::Key_E: hexCode = 14; break; - case Qt::Key_F: hexCode = 15; break; - } - - if(cursor.hasSelection() == false && hexCode != -1) { - bool cursorOffsetValid = (x >= 11 && ((x - 11) % 3) != 2); - if(cursorOffsetValid) { - bool nibble = (x - 11) % 3; //0 = top nibble, 1 = bottom nibble - unsigned cursorOffset = y * editorColumns + ((x - 11) / 3); - unsigned effectiveOffset = editorOffset + cursorOffset; - if(effectiveOffset >= editorSize) effectiveOffset %= editorSize; - - uint8_t data = reader ? reader(effectiveOffset) : 0x00; - data &= (nibble == 0 ? 0x0f : 0xf0); - data |= (nibble == 0 ? (hexCode << 4) : (hexCode << 0)); - if(writer) writer(effectiveOffset, data); - refresh(); - - cursor.setPosition(y * lineWidth() + x + 1); //advance cursor - setTextCursor(cursor); - } - } else { - //allow navigation keys to move cursor, but block text input - setTextInteractionFlags(Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse); - QTextEdit::keyPressEvent(event); - setTextInteractionFlags(Qt::TextEditorInteraction); - } -} - -inline void HexEditor::setColumns(unsigned columns) { - editorColumns = columns; -} - -inline void HexEditor::setRows(unsigned rows) { - editorRows = rows; - scrollBar->setPageStep(editorRows); -} - -inline void HexEditor::setOffset(unsigned offset) { - lock = true; - editorOffset = offset; - scrollBar->setSliderPosition(editorOffset / editorColumns); - lock = false; -} - -inline void HexEditor::setSize(unsigned size) { - editorSize = size; - bool indivisible = (editorSize % editorColumns) != 0; //add one for incomplete row - scrollBar->setRange(0, editorSize / editorColumns + indivisible - editorRows); -} - -inline unsigned HexEditor::lineWidth() const { - return 11 + 3 * editorColumns; -} - -inline void HexEditor::refresh() { - string output; - char temp[256]; - unsigned offset = editorOffset; - - for(unsigned y = 0; y < editorRows; y++) { - if(offset >= editorSize) break; - sprintf(temp, "%.4x:%.4x", (offset >> 16) & 0xffff, (offset >> 0) & 0xffff); - output << "" << temp << "  "; - - for(unsigned x = 0; x < editorColumns; x++) { - if(offset >= editorSize) break; - sprintf(temp, "%.2x", reader ? reader(offset) : 0x00); - offset++; - output << "" << temp << ""; - if(x != (editorColumns - 1)) output << " "; - } - - if(y != (editorRows - 1)) output << "
"; - } - - setHtml(output); -} - -inline void HexEditor::scrolled() { - if(lock) return; - unsigned offset = scrollBar->sliderPosition(); - editorOffset = offset * editorColumns; - refresh(); -} - -inline HexEditor::HexEditor() { - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - - layout = new QHBoxLayout; - layout->setAlignment(Qt::AlignRight); - layout->setMargin(0); - layout->setSpacing(0); - setLayout(layout); - - scrollBar = new QScrollBar(Qt::Vertical); - scrollBar->setSingleStep(1); - layout->addWidget(scrollBar); - - lock = false; - connect(scrollBar, SIGNAL(actionTriggered(int)), this, SLOT(scrolled())); - - setColumns(16); - setRows(16); - setSize(0); - setOffset(0); -} - -} - -#endif diff --git a/supergameboy/nall/qt/radio-action.moc.hpp b/supergameboy/nall/qt/radio-action.moc.hpp deleted file mode 100644 index a2bbca48..00000000 --- a/supergameboy/nall/qt/radio-action.moc.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef NALL_QT_RADIOACTION_HPP -#define NALL_QT_RADIOACTION_HPP - -namespace nall { - -class RadioAction : public QAction { - Q_OBJECT - -public: - bool isChecked() const; - void setChecked(bool); - void toggleChecked(); - RadioAction(const QString&, QObject*); - -protected slots: - -protected: - bool checked; -}; - -inline bool RadioAction::isChecked() const { - return checked; -} - -inline void RadioAction::setChecked(bool checked_) { - checked = checked_; - if(checked) setIcon(QIcon(":/16x16/item-radio-on.png")); - else setIcon(QIcon(":/16x16/item-radio-off.png")); -} - -inline void RadioAction::toggleChecked() { - setChecked(!isChecked()); -} - -inline RadioAction::RadioAction(const QString &text, QObject *parent) : QAction(text, parent) { - setChecked(false); -} - -} - -#endif diff --git a/supergameboy/nall/qt/window.moc.hpp b/supergameboy/nall/qt/window.moc.hpp deleted file mode 100644 index 0d3bf390..00000000 --- a/supergameboy/nall/qt/window.moc.hpp +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef NALL_QT_WINDOW_HPP -#define NALL_QT_WINDOW_HPP - -#include -#include - -namespace nall { - -class Window : public QWidget { - Q_OBJECT - -public: - void setGeometryString(string *geometryString); - void setCloseOnEscape(bool); - void show(); - void hide(); - void shrink(); - - Window(); - -protected slots: - -protected: - string *geometryString; - bool closeOnEscape; - void keyReleaseEvent(QKeyEvent *event); - void closeEvent(QCloseEvent *event); -}; - -inline void Window::setGeometryString(string *geometryString_) { - geometryString = geometryString_; - if(geometryString && isVisible() == false) { - uint8_t *data; - unsigned length; - base64::decode(data, length, *geometryString); - QByteArray array((const char*)data, length); - delete[] data; - restoreGeometry(array); - } -} - -inline void Window::setCloseOnEscape(bool value) { - closeOnEscape = value; -} - -inline void Window::show() { - if(geometryString && isVisible() == false) { - uint8_t *data; - unsigned length; - base64::decode(data, length, *geometryString); - QByteArray array((const char*)data, length); - delete[] data; - restoreGeometry(array); - } - QWidget::show(); - QApplication::processEvents(); - activateWindow(); - raise(); -} - -inline void Window::hide() { - if(geometryString && isVisible() == true) { - char *data; - QByteArray geometry = saveGeometry(); - base64::encode(data, (const uint8_t*)geometry.data(), geometry.length()); - *geometryString = data; - delete[] data; - } - QWidget::hide(); -} - -inline void Window::shrink() { - if(isFullScreen()) return; - - for(unsigned i = 0; i < 2; i++) { - resize(0, 0); - usleep(2000); - QApplication::processEvents(); - } -} - -inline void Window::keyReleaseEvent(QKeyEvent *event) { - if(closeOnEscape && (event->key() == Qt::Key_Escape)) close(); - QWidget::keyReleaseEvent(event); -} - -inline void Window::closeEvent(QCloseEvent *event) { - if(geometryString) { - char *data; - QByteArray geometry = saveGeometry(); - base64::encode(data, (const uint8_t*)geometry.data(), geometry.length()); - *geometryString = data; - delete[] data; - } - QWidget::closeEvent(event); -} - -inline Window::Window() { - geometryString = 0; - closeOnEscape = true; -} - -} - -#endif diff --git a/supergameboy/nall/serial.hpp b/supergameboy/nall/serial.hpp deleted file mode 100644 index 6f5cf6d6..00000000 --- a/supergameboy/nall/serial.hpp +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef NALL_SERIAL_HPP -#define NALL_SERIAL_HPP - -#include -#include -#include -#include - -#include - -namespace nall { - class serial { - public: - //-1 on error, otherwise return bytes read - int read(uint8_t *data, unsigned length) { - if(port_open == false) return -1; - return ::read(port, (void*)data, length); - } - - //-1 on error, otherwise return bytes written - int write(const uint8_t *data, unsigned length) { - if(port_open == false) return -1; - return ::write(port, (void*)data, length); - } - - bool open(const char *portname, unsigned rate) { - close(); - - port = ::open(portname, O_RDWR | O_NOCTTY | O_NDELAY | O_NONBLOCK); - if(port == -1) return false; - - if(ioctl(port, TIOCEXCL) == -1) { close(); return false; } - if(fcntl(port, F_SETFL, 0) == -1) { close(); return false; } - if(tcgetattr(port, &original_attr) == -1) { close(); return false; } - - termios attr = original_attr; - cfmakeraw(&attr); - cfsetspeed(&attr, rate); - - attr.c_lflag &=~ (ECHO | ECHONL | ISIG | ICANON | IEXTEN); - attr.c_iflag &=~ (BRKINT | PARMRK | INPCK | ISTRIP | INLCR | IGNCR | ICRNL | IXON | IXOFF | IXANY); - attr.c_iflag |= (IGNBRK | IGNPAR); - attr.c_oflag &=~ (OPOST); - attr.c_cflag &=~ (CSIZE | CSTOPB | PARENB); - attr.c_cflag |= (CS8 | CREAD | CLOCAL); - attr.c_cc[VTIME] = attr.c_cc[VMIN] = 0; - - if(tcsetattr(port, TCSANOW, &attr) == -1) { close(); return false; } - return port_open = true; - } - - void close() { - if(port != -1) { - tcdrain(port); - if(port_open == true) { - tcsetattr(port, TCSANOW, &original_attr); - port_open = false; - } - ::close(port); - port = -1; - } - } - - serial() { - port = -1; - port_open = false; - } - - ~serial() { - close(); - } - - private: - int port; - bool port_open; - termios original_attr; - }; -} - -#endif diff --git a/supergameboy/nall/serializer.hpp b/supergameboy/nall/serializer.hpp deleted file mode 100644 index 49b0964e..00000000 --- a/supergameboy/nall/serializer.hpp +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef NALL_SERIALIZER_HPP -#define NALL_SERIALIZER_HPP - -#include -#include -#include - -namespace nall { - //serializer: a class designed to save and restore the state of classes. - // - //benefits: - //- data() will be portable in size (it is not necessary to specify type sizes.) - //- data() will be portable in endianness (always stored internally as little-endian.) - //- one serialize function can both save and restore class states. - // - //caveats: - //- only plain-old-data can be stored. complex classes must provide serialize(serializer&); - //- floating-point usage is not portable across platforms - class serializer { - public: - enum mode_t { Load, Save, Size }; - - mode_t mode() const { - return imode; - } - - const uint8_t* data() const { - return idata; - } - - unsigned size() const { - return isize; - } - - unsigned capacity() const { - return icapacity; - } - - template void floatingpoint(T &value) { - enum { size = sizeof(T) }; - //this is rather dangerous, and not cross-platform safe; - //but there is no standardized way to export FP-values - uint8_t *p = (uint8_t*)&value; - if(imode == Save) { - for(unsigned n = 0; n < size; n++) idata[isize++] = p[n]; - } else if(imode == Load) { - for(unsigned n = 0; n < size; n++) p[n] = idata[isize++]; - } else { - isize += size; - } - } - - template void integer(T &value) { - enum { size = is_bool::value ? 1 : sizeof(T) }; - if(imode == Save) { - for(unsigned n = 0; n < size; n++) idata[isize++] = value >> (n << 3); - } else if(imode == Load) { - value = 0; - for(unsigned n = 0; n < size; n++) value |= idata[isize++] << (n << 3); - } else if(imode == Size) { - isize += size; - } - } - - template void array(T &array) { - enum { size = sizeof(T) / sizeof(typename remove_extent::type) }; - for(unsigned n = 0; n < size; n++) integer(array[n]); - } - - template void array(T array, unsigned size) { - for(unsigned n = 0; n < size; n++) integer(array[n]); - } - - //copy - serializer& operator=(const serializer &s) { - if(idata) delete[] idata; - - imode = s.imode; - idata = new uint8_t[s.icapacity]; - isize = s.isize; - icapacity = s.icapacity; - - memcpy(idata, s.idata, s.icapacity); - return *this; - } - - serializer(const serializer &s) : idata(0) { - operator=(s); - } - - //move - serializer& operator=(serializer &&s) { - if(idata) delete[] idata; - - imode = s.imode; - idata = s.idata; - isize = s.isize; - icapacity = s.icapacity; - - s.idata = 0; - return *this; - } - - serializer(serializer &&s) { - operator=(move(s)); - } - - //construction - serializer() { - imode = Size; - idata = 0; - isize = 0; - } - - serializer(unsigned capacity) { - imode = Save; - idata = new uint8_t[capacity](); - isize = 0; - icapacity = capacity; - } - - serializer(const uint8_t *data, unsigned capacity) { - imode = Load; - idata = new uint8_t[capacity]; - isize = 0; - icapacity = capacity; - memcpy(idata, data, capacity); - } - - ~serializer() { - if(idata) delete[] idata; - } - - private: - mode_t imode; - uint8_t *idata; - unsigned isize; - unsigned icapacity; - }; - -}; - -#endif diff --git a/supergameboy/nall/sha256.hpp b/supergameboy/nall/sha256.hpp deleted file mode 100644 index 7f41f04e..00000000 --- a/supergameboy/nall/sha256.hpp +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef NALL_SHA256_HPP -#define NALL_SHA256_HPP - -//author: vladitx - -namespace nall { - #define PTR(t, a) ((t*)(a)) - - #define SWAP32(x) ((uint32_t)( \ - (((uint32_t)(x) & 0x000000ff) << 24) | \ - (((uint32_t)(x) & 0x0000ff00) << 8) | \ - (((uint32_t)(x) & 0x00ff0000) >> 8) | \ - (((uint32_t)(x) & 0xff000000) >> 24) \ - )) - - #define ST32(a, d) *PTR(uint32_t, a) = (d) - #define ST32BE(a, d) ST32(a, SWAP32(d)) - - #define LD32(a) *PTR(uint32_t, a) - #define LD32BE(a) SWAP32(LD32(a)) - - #define LSL32(x, n) ((uint32_t)(x) << (n)) - #define LSR32(x, n) ((uint32_t)(x) >> (n)) - #define ROR32(x, n) (LSR32(x, n) | LSL32(x, 32 - (n))) - - //first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19 - static const uint32_t T_H[8] = { - 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, - }; - - //first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311 - static const uint32_t T_K[64] = { - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, - }; - - struct sha256_ctx { - uint8_t in[64]; - unsigned inlen; - - uint32_t w[64]; - uint32_t h[8]; - uint64_t len; - }; - - void sha256_init(sha256_ctx *p) { - memset(p, 0, sizeof(sha256_ctx)); - memcpy(p->h, T_H, sizeof(T_H)); - } - - static void sha256_block(sha256_ctx *p) { - unsigned i; - uint32_t s0, s1; - uint32_t a, b, c, d, e, f, g, h; - uint32_t t1, t2, maj, ch; - - for(i = 0; i < 16; i++) p->w[i] = LD32BE(p->in + i * 4); - - for(i = 16; i < 64; i++) { - s0 = ROR32(p->w[i - 15], 7) ^ ROR32(p->w[i - 15], 18) ^ LSR32(p->w[i - 15], 3); - s1 = ROR32(p->w[i - 2], 17) ^ ROR32(p->w[i - 2], 19) ^ LSR32(p->w[i - 2], 10); - p->w[i] = p->w[i - 16] + s0 + p->w[i - 7] + s1; - } - - a = p->h[0]; b = p->h[1]; c = p->h[2]; d = p->h[3]; - e = p->h[4]; f = p->h[5]; g = p->h[6]; h = p->h[7]; - - for(i = 0; i < 64; i++) { - s0 = ROR32(a, 2) ^ ROR32(a, 13) ^ ROR32(a, 22); - maj = (a & b) ^ (a & c) ^ (b & c); - t2 = s0 + maj; - s1 = ROR32(e, 6) ^ ROR32(e, 11) ^ ROR32(e, 25); - ch = (e & f) ^ (~e & g); - t1 = h + s1 + ch + T_K[i] + p->w[i]; - - h = g; g = f; f = e; e = d + t1; - d = c; c = b; b = a; a = t1 + t2; - } - - p->h[0] += a; p->h[1] += b; p->h[2] += c; p->h[3] += d; - p->h[4] += e; p->h[5] += f; p->h[6] += g; p->h[7] += h; - - //next block - p->inlen = 0; - } - - void sha256_chunk(sha256_ctx *p, const uint8_t *s, unsigned len) { - unsigned l; - p->len += len; - - while(len) { - l = 64 - p->inlen; - l = (len < l) ? len : l; - - memcpy(p->in + p->inlen, s, l); - s += l; - p->inlen += l; - len -= l; - - if(p->inlen == 64) sha256_block(p); - } - } - - void sha256_final(sha256_ctx *p) { - uint64_t len; - p->in[p->inlen++] = 0x80; - - if(p->inlen > 56) { - memset(p->in + p->inlen, 0, 64 - p->inlen); - sha256_block(p); - } - - memset(p->in + p->inlen, 0, 56 - p->inlen); - - len = p->len << 3; - ST32BE(p->in + 56, len >> 32); - ST32BE(p->in + 60, len); - sha256_block(p); - } - - void sha256_hash(sha256_ctx *p, uint8_t *s) { - uint32_t *t = (uint32_t*)s; - for(unsigned i = 0; i < 8; i++) ST32BE(t++, p->h[i]); - } - - #undef PTR - #undef SWAP32 - #undef ST32 - #undef ST32BE - #undef LD32 - #undef LD32BE - #undef LSL32 - #undef LSR32 - #undef ROR32 -} - -#endif diff --git a/supergameboy/nall/sort.hpp b/supergameboy/nall/sort.hpp deleted file mode 100644 index 23c317a5..00000000 --- a/supergameboy/nall/sort.hpp +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef NALL_SORT_HPP -#define NALL_SORT_HPP - -#include - -//class: merge sort -//average: O(n log n) -//worst: O(n log n) -//memory: O(n) -//stack: O(log n) -//stable?: yes - -//notes: -//there are two primary reasons for choosing merge sort -//over the (usually) faster quick sort*: -//1: it is a stable sort. -//2: it lacks O(n^2) worst-case overhead. -//(* which is also O(n log n) in the average case.) - -namespace nall { - template - void sort(T list[], unsigned length) { - if(length <= 1) return; //nothing to sort - - //use insertion sort to quickly sort smaller blocks - if(length < 64) { - for(unsigned i = 0; i < length; i++) { - unsigned min = i; - for(unsigned j = i + 1; j < length; j++) { - if(list[j] < list[min]) min = j; - } - if(min != i) swap(list[i], list[min]); - } - return; - } - - //split list in half and recursively sort both - unsigned middle = length / 2; - sort(list, middle); - sort(list + middle, length - middle); - - //left and right are sorted here; perform merge sort - T *buffer = new T[length]; - unsigned offset = 0; - unsigned left = 0; - unsigned right = middle; - while(left < middle && right < length) { - if(list[left] < list[right]) { - buffer[offset++] = list[left++]; - } else { - buffer[offset++] = list[right++]; - } - } - while(left < middle) buffer[offset++] = list[left++]; - while(right < length) buffer[offset++] = list[right++]; - - for(unsigned i = 0; i < length; i++) list[i] = buffer[i]; - delete[] buffer; - } -} - -#endif diff --git a/supergameboy/nall/static.hpp b/supergameboy/nall/static.hpp deleted file mode 100644 index 4acb9fd0..00000000 --- a/supergameboy/nall/static.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef NALL_STATIC_HPP -#define NALL_STATIC_HPP - -namespace nall { - template struct static_if { typedef T type; }; - template struct static_if { typedef F type; }; - template struct mp_static_if { typedef typename static_if::type type; }; - - template struct static_and { enum { value = false }; }; - template<> struct static_and { enum { value = true }; }; - template struct mp_static_and { enum { value = static_and::value }; }; - - template struct static_or { enum { value = false }; }; - template<> struct static_or { enum { value = true }; }; - template<> struct static_or { enum { value = true }; }; - template<> struct static_or { enum { value = true }; }; - template struct mp_static_or { enum { value = static_or::value }; }; -} - -#endif diff --git a/supergameboy/nall/stdint.hpp b/supergameboy/nall/stdint.hpp deleted file mode 100644 index d8b6c788..00000000 --- a/supergameboy/nall/stdint.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef NALL_STDINT_HPP -#define NALL_STDINT_HPP - -#include - -#if defined(_MSC_VER) - typedef signed char int8_t; - typedef signed short int16_t; - typedef signed int int32_t; - typedef signed long long int64_t; - typedef int64_t intmax_t; - #if defined(_WIN64) - typedef int64_t intptr_t; - #else - typedef int32_t intptr_t; - #endif - - typedef unsigned char uint8_t; - typedef unsigned short uint16_t; - typedef unsigned int uint32_t; - typedef unsigned long long uint64_t; - typedef uint64_t uintmax_t; - #if defined(_WIN64) - typedef uint64_t uintptr_t; - #else - typedef uint32_t uintptr_t; - #endif -#else - #include -#endif - -namespace nall { - static_assert(sizeof(int8_t) == 1, "int8_t is not of the correct size" ); - static_assert(sizeof(int16_t) == 2, "int16_t is not of the correct size"); - static_assert(sizeof(int32_t) == 4, "int32_t is not of the correct size"); - static_assert(sizeof(int64_t) == 8, "int64_t is not of the correct size"); - - static_assert(sizeof(uint8_t) == 1, "int8_t is not of the correct size" ); - static_assert(sizeof(uint16_t) == 2, "int16_t is not of the correct size"); - static_assert(sizeof(uint32_t) == 4, "int32_t is not of the correct size"); - static_assert(sizeof(uint64_t) == 8, "int64_t is not of the correct size"); -} - -#endif diff --git a/supergameboy/nall/string.hpp b/supergameboy/nall/string.hpp deleted file mode 100644 index 65a4a4b8..00000000 --- a/supergameboy/nall/string.hpp +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef NALL_STRING_HPP -#define NALL_STRING_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace nall { - template<> struct has_length { enum { value = true }; }; - template<> struct has_size { enum { value = true }; }; -} - -#endif diff --git a/supergameboy/nall/string/base.hpp b/supergameboy/nall/string/base.hpp deleted file mode 100644 index b9230fe4..00000000 --- a/supergameboy/nall/string/base.hpp +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef NALL_STRING_BASE_HPP -#define NALL_STRING_BASE_HPP - -#include -#include -#include -#include -#include -#include -#include -#include - -inline char chrlower(char c); -inline char chrupper(char c); -inline int stricmp(const char *dest, const char *src); -inline int strpos (const char *str, const char *key); -inline int qstrpos(const char *str, const char *key); -inline bool strbegin (const char *str, const char *key); -inline bool stribegin(const char *str, const char *key); -inline bool strend (const char *str, const char *key); -inline bool striend(const char *str, const char *key); -inline char* strlower(char *str); -inline char* strupper(char *str); -inline char* strtr(char *dest, const char *before, const char *after); -inline uintmax_t strhex (const char *str); -inline intmax_t strsigned (const char *str); -inline uintmax_t strunsigned(const char *str); -inline uintmax_t strbin (const char *str); -inline double strdouble (const char *str); -inline bool match(const char *pattern, const char *str); -inline bool strint (const char *str, int &result); -inline bool strmath(const char *str, int &result); -inline size_t strlcpy(char *dest, const char *src, size_t length); -inline size_t strlcat(char *dest, const char *src, size_t length); -inline char* ltrim(char *str, const char *key = " "); -inline char* rtrim(char *str, const char *key = " "); -inline char* trim (char *str, const char *key = " "); -inline char* ltrim_once(char *str, const char *key = " "); -inline char* rtrim_once(char *str, const char *key = " "); -inline char* trim_once (char *str, const char *key = " "); - -namespace nall { - class string; - template inline string to_string(T); - - class string { - public: - inline void reserve(size_t); - inline unsigned length() const; - - inline string& assign(const char*); - inline string& append(const char*); - template inline string& operator= (T value); - template inline string& operator<<(T value); - - inline operator const char*() const; - inline char* operator()(); - inline char& operator[](int); - - inline bool operator==(const char*) const; - inline bool operator!=(const char*) const; - inline bool operator< (const char*) const; - inline bool operator<=(const char*) const; - inline bool operator> (const char*) const; - inline bool operator>=(const char*) const; - - inline string(); - inline string(const char*); - inline string(const string&); - inline string(string&&); - inline string& operator=(const string&); - inline string& operator=(string&&); - inline ~string(); - - inline bool readfile(const char*); - inline string& replace (const char*, const char*); - inline string& qreplace(const char*, const char*); - - protected: - char *data; - size_t size; - - #if defined(QT_CORE_LIB) - public: - inline operator QString() const; - #endif - }; - - class lstring : public linear_vector { - public: - template inline lstring& operator<<(T value); - - inline int find(const char*); - inline void split (const char*, const char*, unsigned = 0); - inline void qsplit(const char*, const char*, unsigned = 0); - - lstring(); - lstring(std::initializer_list); - }; - - template inline string sprint(const char *s, Args... args); - template inline void print(const char *s, Args... args); -}; - -inline size_t strlcpy(nall::string &dest, const char *src, size_t length); -inline size_t strlcat(nall::string &dest, const char *src, size_t length); - -inline nall::string& strlower(nall::string &str); -inline nall::string& strupper(nall::string &str); -inline nall::string& strtr(nall::string &dest, const char *before, const char *after); -inline nall::string& ltrim(nall::string &str, const char *key = " "); -inline nall::string& rtrim(nall::string &str, const char *key = " "); -inline nall::string& trim (nall::string &str, const char *key = " "); -inline nall::string& ltrim_once(nall::string &str, const char *key = " "); -inline nall::string& rtrim_once(nall::string &str, const char *key = " "); -inline nall::string& trim_once (nall::string &str, const char *key = " "); - -inline nall::string substr(const char *src, size_t start = 0, size_t length = 0); -template inline nall::string strhex(uintmax_t value); -template inline nall::string strsigned(intmax_t value); -template inline nall::string strunsigned(uintmax_t value); -template inline nall::string strbin(uintmax_t value); -inline size_t strdouble(char *str, double value); -inline nall::string strdouble(double value); - -#endif diff --git a/supergameboy/nall/string/cast.hpp b/supergameboy/nall/string/cast.hpp deleted file mode 100644 index 7433073d..00000000 --- a/supergameboy/nall/string/cast.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef NALL_STRING_CAST_HPP -#define NALL_STRING_CAST_HPP - -namespace nall { - //this is needed, as C++0x does not support explicit template specialization inside classes - template<> inline string to_string (bool v) { return v ? "true" : "false"; } - template<> inline string to_string (signed int v) { return strsigned(v); } - template<> inline string to_string (unsigned int v) { return strunsigned(v); } - template<> inline string to_string (double v) { return strdouble(v); } - template<> inline string to_string (char *v) { return v; } - template<> inline string to_string (const char *v) { return v; } - template<> inline string to_string (string v) { return v; } - template<> inline string to_string(const string &v) { return v; } - - template string& string::operator= (T value) { return assign(to_string(value)); } - template string& string::operator<<(T value) { return append(to_string(value)); } - - template lstring& lstring::operator<<(T value) { - operator[](size()).assign(to_string(value)); - return *this; - } - - #if defined(QT_CORE_LIB) - template<> inline string to_string(const QString &v) { return v.toUtf8().constData(); } - string::operator QString() const { return QString::fromUtf8(*this); } - #endif -} - -#endif diff --git a/supergameboy/nall/string/compare.hpp b/supergameboy/nall/string/compare.hpp deleted file mode 100644 index 23d2ee39..00000000 --- a/supergameboy/nall/string/compare.hpp +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef NALL_STRING_COMPARE_HPP -#define NALL_STRING_COMPARE_HPP - -char chrlower(char c) { - return (c >= 'A' && c <= 'Z') ? c + ('a' - 'A') : c; -} - -char chrupper(char c) { - return (c >= 'a' && c <= 'z') ? c - ('a' - 'A') : c; -} - -int stricmp(const char *dest, const char *src) { - while(*dest) { - if(chrlower(*dest) != chrlower(*src)) break; - dest++; - src++; - } - - return (int)chrlower(*dest) - (int)chrlower(*src); -} - -int strpos(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return -1; - for(int i = 0; i <= ssl - ksl; i++) { - if(!memcmp(str + i, key, ksl)) { - return i; - } - } - return -1; -} - -int qstrpos(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return -1; - for(int i = 0; i <= ssl - ksl;) { - uint8_t x = str[i]; - if(x == '\"' || x == '\'') { - uint8_t z = i++; - while(str[i] != x && i < ssl) i++; - if(i >= ssl) i = z; - } - if(!memcmp(str + i, key, ksl)) { - return i; - } else { - i++; - } - } - return -1; -} - -bool strbegin(const char *str, const char *key) { - int i, ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - return (!memcmp(str, key, ksl)); -} - -bool stribegin(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - for(int i = 0; i < ksl; i++) { - if(str[i] >= 'A' && str[i] <= 'Z') { - if(str[i] != key[i] && str[i]+0x20 != key[i])return false; - } else if(str[i] >= 'a' && str[i] <= 'z') { - if(str[i] != key[i] && str[i]-0x20 != key[i])return false; - } else { - if(str[i] != key[i])return false; - } - } - return true; -} - -bool strend(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - return (!memcmp(str + ssl - ksl, key, ksl)); -} - -bool striend(const char *str, const char *key) { - int ssl = strlen(str), ksl = strlen(key); - - if(ksl > ssl) return false; - for(int i = ssl - ksl, z = 0; i < ssl; i++, z++) { - if(str[i] >= 'A' && str[i] <= 'Z') { - if(str[i] != key[z] && str[i]+0x20 != key[z])return false; - } else if(str[i] >= 'a' && str[i] <= 'z') { - if(str[i] != key[z] && str[i]-0x20 != key[z])return false; - } else { - if(str[i] != key[z])return false; - } - } - return true; -} - -#endif diff --git a/supergameboy/nall/string/convert.hpp b/supergameboy/nall/string/convert.hpp deleted file mode 100644 index a34c3f14..00000000 --- a/supergameboy/nall/string/convert.hpp +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef NALL_STRING_CONVERT_HPP -#define NALL_STRING_CONVERT_HPP - -char* strlower(char *str) { - if(!str) return 0; - int i = 0; - while(str[i]) { - str[i] = chrlower(str[i]); - i++; - } - return str; -} - -char* strupper(char *str) { - if(!str) return 0; - int i = 0; - while(str[i]) { - str[i] = chrupper(str[i]); - i++; - } - return str; -} - -char* strtr(char *dest, const char *before, const char *after) { - if(!dest || !before || !after) return dest; - int sl = strlen(dest), bsl = strlen(before), asl = strlen(after); - - if(bsl != asl || bsl == 0) return dest; //patterns must be the same length for 1:1 replace - for(unsigned i = 0; i < sl; i++) { - for(unsigned l = 0; l < bsl; l++) { - if(dest[i] == before[l]) { - dest[i] = after[l]; - break; - } - } - } - - return dest; -} - -uintmax_t strhex(const char *str) { - if(!str) return 0; - uintmax_t result = 0; - - //skip hex identifiers 0x and $, if present - if(*str == '0' && (*(str + 1) == 'X' || *(str + 1) == 'x')) str += 2; - else if(*str == '$') str++; - - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else if(x >= 'A' && x <= 'F') x -= 'A' - 10; - else if(x >= 'a' && x <= 'f') x -= 'a' - 10; - else break; //stop at first invalid character - result = result * 16 + x; - } - - return result; -} - -intmax_t strsigned(const char *str) { - if(!str) return 0; - intmax_t result = 0; - bool negate = false; - - //check for negation - if(*str == '-') { - negate = true; - str++; - } - - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else break; //stop at first invalid character - result = result * 10 + x; - } - - return !negate ? result : -result; -} - -uintmax_t strunsigned(const char *str) { - if(!str) return 0; - uintmax_t result = 0; - - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else break; //stop at first invalid character - result = result * 10 + x; - } - - return result; -} - -uintmax_t strbin(const char *str) { - if(!str) return 0; - uintmax_t result = 0; - - //skip bin identifiers 0b and %, if present - if(*str == '0' && (*(str + 1) == 'B' || *(str + 1) == 'b')) str += 2; - else if(*str == '%') str++; - - while(*str) { - uint8_t x = *str++; - if(x == '0' || x == '1') x -= '0'; - else break; //stop at first invalid character - result = result * 2 + x; - } - - return result; -} - -double strdouble(const char *str) { - if(!str) return 0.0; - bool negate = false; - - //check for negation - if(*str == '-') { - negate = true; - str++; - } - - intmax_t result_integral = 0; - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else if(x == '.') break; //break loop and read fractional part - else return (double)result_integral; //invalid value, assume no fractional part - result_integral = result_integral * 10 + x; - } - - intmax_t result_fractional = 0; - while(*str) { - uint8_t x = *str++; - if(x >= '0' && x <= '9') x -= '0'; - else break; //stop at first invalid character - result_fractional = result_fractional * 10 + x; - } - - //calculate fractional portion - double result = (double)result_fractional; - while((uintmax_t)result > 0) result /= 10.0; - result += (double)result_integral; - - return !negate ? result : -result; -} - -#endif diff --git a/supergameboy/nall/string/core.hpp b/supergameboy/nall/string/core.hpp deleted file mode 100644 index 5881018b..00000000 --- a/supergameboy/nall/string/core.hpp +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef NALL_STRING_CORE_HPP -#define NALL_STRING_CORE_HPP - -namespace nall { - -void string::reserve(size_t size_) { - if(size_ > size) { - size = size_; - data = (char*)realloc(data, size + 1); - data[size] = 0; - } -} - -unsigned string::length() const { - return strlen(data); -} - -string& string::assign(const char *s) { - unsigned length = strlen(s); - reserve(length); - strcpy(data, s); - return *this; -} - -string& string::append(const char *s) { - unsigned length = strlen(data) + strlen(s); - reserve(length); - strcat(data, s); - return *this; -} - -string::operator const char*() const { - return data; -} - -char* string::operator()() { - return data; -} - -char& string::operator[](int index) { - reserve(index); - return data[index]; -} - -bool string::operator==(const char *str) const { return strcmp(data, str) == 0; } -bool string::operator!=(const char *str) const { return strcmp(data, str) != 0; } -bool string::operator< (const char *str) const { return strcmp(data, str) < 0; } -bool string::operator<=(const char *str) const { return strcmp(data, str) <= 0; } -bool string::operator> (const char *str) const { return strcmp(data, str) > 0; } -bool string::operator>=(const char *str) const { return strcmp(data, str) >= 0; } - -string::string() { - size = 64; - data = (char*)malloc(size + 1); - *data = 0; -} - -string::string(const char *value) { - size = strlen(value); - data = strdup(value); -} - -string::string(const string &value) { - size = strlen(value); - data = strdup(value); -} - -string::string(string &&source) { - size = source.size; - data = source.data; - source.data = 0; -} - -string& string::operator=(const string &value) { - assign(value); - return *this; -} - -string& string::operator=(string &&source) { - if(data) free(data); - size = source.size; - data = source.data; - source.data = 0; - return *this; -} - -string::~string() { - free(data); -} - -bool string::readfile(const char *filename) { - assign(""); - - #if !defined(_WIN32) - FILE *fp = fopen(filename, "rb"); - #else - FILE *fp = _wfopen(nall::utf16_t(filename), L"rb"); - #endif - if(!fp) return false; - - fseek(fp, 0, SEEK_END); - size_t size = ftell(fp); - rewind(fp); - char *fdata = new char[size + 1]; - unsigned unused = fread(fdata, 1, size, fp); - fclose(fp); - fdata[size] = 0; - assign(fdata); - delete[] fdata; - - return true; -} - -int lstring::find(const char *key) { - for(unsigned i = 0; i < size(); i++) { - if(operator[](i) == key) return i; - } - return -1; -} - -inline lstring::lstring() { -} - -inline lstring::lstring(std::initializer_list list) { - for(const string *s = list.begin(); s != list.end(); ++s) { - operator<<(*s); - } -} - -} - -#endif diff --git a/supergameboy/nall/string/filename.hpp b/supergameboy/nall/string/filename.hpp deleted file mode 100644 index e26493c9..00000000 --- a/supergameboy/nall/string/filename.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef NALL_FILENAME_HPP -#define NALL_FILENAME_HPP - -namespace nall { - // "foo/bar.c" -> "foo/", "bar.c" -> "./" - inline string dir(char const *name) { - string result = name; - for(signed i = strlen(result); i >= 0; i--) { - if(result[i] == '/' || result[i] == '\\') { - result[i + 1] = 0; - break; - } - if(i == 0) result = "./"; - } - return result; - } - - // "foo/bar.c" -> "bar.c" - inline string notdir(char const *name) { - for(signed i = strlen(name); i >= 0; i--) { - if(name[i] == '/' || name[i] == '\\') { - name += i + 1; - break; - } - } - string result = name; - return result; - } - - // "foo/bar.c" -> "foo/bar" - inline string basename(char const *name) { - string result = name; - for(signed i = strlen(result); i >= 0; i--) { - if(result[i] == '/' || result[i] == '\\') { - //file has no extension - break; - } - - if(result[i] == '.') { - result[i] = 0; - break; - } - } - return result; - } - - // "foo/bar.c" -> "c" - inline string extension(char const *name) { - for(signed i = strlen(name); i >= 0; i--) { - if(name[i] == '.') { - name += i + 1; - break; - } - } - string result = name; - return result; - } -} - -#endif diff --git a/supergameboy/nall/string/match.hpp b/supergameboy/nall/string/match.hpp deleted file mode 100644 index 70184fec..00000000 --- a/supergameboy/nall/string/match.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef NALL_STRING_MATCH_HPP -#define NALL_STRING_MATCH_HPP - -bool match(const char *p, const char *s) { - const char *p_ = 0, *s_ = 0; - - for(;;) { - if(!*s) { - while(*p == '*') p++; - return !*p; - } - - //wildcard match - if(*p == '*') { - p_ = p++, s_ = s; - continue; - } - - //any match - if(*p == '?') { - p++, s++; - continue; - } - - //ranged match - if(*p == '{') { - #define pattern(name_, rule_) \ - if(strbegin(p, name_)) { \ - if(rule_) { \ - p += sizeof(name_) - 1, s++; \ - continue; \ - } \ - goto failure; \ - } - - pattern("{alpha}", (*s >= 'A' && *s <= 'Z') || (*s >= 'a' && *s <= 'z')) - pattern("{alphanumeric}", (*s >= 'A' && *s <= 'Z') || (*s >= 'a' && *s <= 'z') || (*s >= '0' && *s <= '9')) - pattern("{binary}", (*s == '0' || *s == '1')) - pattern("{hex}", (*s >= '0' && *s <= '9') || (*s >= 'A' && *s <= 'F') || (*s >= 'a' && *s <= 'f')) - pattern("{lowercase}", (*s >= 'a' && *s <= 'z')) - pattern("{numeric}", (*s >= '0' && *s <= '9')) - pattern("{uppercase}", (*s >= 'A' && *s <= 'Z')) - pattern("{whitespace}", (*s == ' ' || *s == '\t')) - - #undef pattern - goto failure; - } - - //reserved character match - if(*p == '\\') { - p++; - //fallthrough - } - - //literal match - if(*p == *s) { - p++, *s++; - continue; - } - - //attempt wildcard rematch - failure: - if(p_) { - p = p_, s = s_ + 1; - continue; - } - - return false; - } -} - -#endif diff --git a/supergameboy/nall/string/math.hpp b/supergameboy/nall/string/math.hpp deleted file mode 100644 index 604b083e..00000000 --- a/supergameboy/nall/string/math.hpp +++ /dev/null @@ -1,160 +0,0 @@ -#ifndef NALL_STRING_MATH_HPP -#define NALL_STRING_MATH_HPP - -static int eval_integer(const char *&s) { - if(!*s) throw "unrecognized_integer"; - int value = 0, x = *s, y = *(s + 1); - - //hexadecimal - if(x == '0' && (y == 'X' || y == 'x')) { - s += 2; - while(true) { - if(*s >= '0' && *s <= '9') { value = value * 16 + (*s++ - '0'); continue; } - if(*s >= 'A' && *s <= 'F') { value = value * 16 + (*s++ - 'A' + 10); continue; } - if(*s >= 'a' && *s <= 'f') { value = value * 16 + (*s++ - 'a' + 10); continue; } - return value; - } - } - - //binary - if(x == '0' && (y == 'B' || y == 'b')) { - s += 2; - while(true) { - if(*s == '0' || *s == '1') { value = value * 2 + (*s++ - '0'); continue; } - return value; - } - } - - //octal (or decimal '0') - if(x == '0') { - s += 1; - while(true) { - if(*s >= '0' && *s <= '7') { value = value * 8 + (*s++ - '0'); continue; } - return value; - } - } - - //decimal - if(x >= '0' && x <= '9') { - while(true) { - if(*s >= '0' && *s <= '9') { value = value * 10 + (*s++ - '0'); continue; } - return value; - } - } - - //char - if(x == '\'' && y != '\'') { - s += 1; - while(true) { - value = value * 256 + *s++; - if(*s == '\'') { s += 1; return value; } - if(!*s) throw "mismatched_char"; - } - } - - throw "unrecognized_integer"; -} - -static int eval(const char *&s, int depth = 0) { - while(*s == ' ' || *s == '\t') s++; //trim whitespace - if(!*s) throw "unrecognized_token"; - int value = 0, x = *s, y = *(s + 1); - - if(*s == '(') { - value = eval(++s, 1); - if(*s++ != ')') throw "mismatched_group"; - } - - else if(x == '!') value = !eval(++s, 13); - else if(x == '~') value = ~eval(++s, 13); - else if(x == '+') value = +eval(++s, 13); - else if(x == '-') value = -eval(++s, 13); - - else if((x >= '0' && x <= '9') || x == '\'') value = eval_integer(s); - - else throw "unrecognized_token"; - - while(true) { - while(*s == ' ' || *s == '\t') s++; //trim whitespace - if(!*s) break; - x = *s, y = *(s + 1); - - if(depth >= 13) break; - if(x == '*') { value *= eval(++s, 13); continue; } - if(x == '/') { value /= eval(++s, 13); continue; } - if(x == '%') { value %= eval(++s, 13); continue; } - - if(depth >= 12) break; - if(x == '+') { value += eval(++s, 12); continue; } - if(x == '-') { value -= eval(++s, 12); continue; } - - if(depth >= 11) break; - if(x == '<' && y == '<') { value <<= eval(++++s, 11); continue; } - if(x == '>' && y == '>') { value >>= eval(++++s, 11); continue; } - - if(depth >= 10) break; - if(x == '<' && y == '=') { value = value <= eval(++++s, 10); continue; } - if(x == '>' && y == '=') { value = value >= eval(++++s, 10); continue; } - if(x == '<') { value = value < eval(++s, 10); continue; } - if(x == '>') { value = value > eval(++s, 10); continue; } - - if(depth >= 9) break; - if(x == '=' && y == '=') { value = value == eval(++++s, 9); continue; } - if(x == '!' && y == '=') { value = value != eval(++++s, 9); continue; } - - if(depth >= 8) break; - if(x == '&' && y != '&') { value = value & eval(++s, 8); continue; } - - if(depth >= 7) break; - if(x == '^' && y != '^') { value = value ^ eval(++s, 7); continue; } - - if(depth >= 6) break; - if(x == '|' && y != '|') { value = value | eval(++s, 6); continue; } - - if(depth >= 5) break; - if(x == '&' && y == '&') { value = eval(++++s, 5) && value; continue; } - - if(depth >= 4) break; - if(x == '^' && y == '^') { value = (!eval(++++s, 4) != !value); continue; } - - if(depth >= 3) break; - if(x == '|' && y == '|') { value = eval(++++s, 3) || value; continue; } - - if(x == '?') { - int lhs = eval(++s, 2); - if(*s != ':') throw "mismatched_ternary"; - int rhs = eval(++s, 2); - value = value ? lhs : rhs; - continue; - } - if(depth >= 2) break; - - if(depth > 0 && x == ')') break; - - throw "unrecognized_token"; - } - - return value; -} - -bool strint(const char *s, int &result) { - try { - result = eval_integer(s); - return true; - } catch(const char*) { - result = 0; - return false; - } -} - -bool strmath(const char *s, int &result) { - try { - result = eval(s); - return true; - } catch(const char*) { - result = 0; - return false; - } -} - -#endif diff --git a/supergameboy/nall/string/replace.hpp b/supergameboy/nall/string/replace.hpp deleted file mode 100644 index db405a9b..00000000 --- a/supergameboy/nall/string/replace.hpp +++ /dev/null @@ -1,103 +0,0 @@ -#ifndef NALL_STRING_REPLACE_HPP -#define NALL_STRING_REPLACE_HPP - -namespace nall { - -string& string::replace(const char *key, const char *token) { - int i, z, ksl = strlen(key), tsl = strlen(token), ssl = length(); - unsigned int replace_count = 0, size = ssl; - char *buffer; - - if(ksl <= ssl) { - if(tsl > ksl) { //the new string may be longer than the old string... - for(i = 0; i <= ssl - ksl;) { //so let's find out how big of a string we'll need... - if(!memcmp(data + i, key, ksl)) { - replace_count++; - i += ksl; - } else i++; - } - size = ssl + ((tsl - ksl) * replace_count); - reserve(size); - } - - buffer = new char[size + 1]; - for(i = z = 0; i < ssl;) { - if(i <= ssl - ksl) { - if(!memcmp(data + i, key, ksl)) { - memcpy(buffer + z, token, tsl); - z += tsl; - i += ksl; - } else buffer[z++] = data[i++]; - } else buffer[z++] = data[i++]; - } - buffer[z] = 0; - - assign(buffer); - delete[] buffer; - } - - return *this; -} - -string& string::qreplace(const char *key, const char *token) { - int i, l, z, ksl = strlen(key), tsl = strlen(token), ssl = length(); - unsigned int replace_count = 0, size = ssl; - uint8_t x; - char *buffer; - - if(ksl <= ssl) { - if(tsl > ksl) { - for(i = 0; i <= ssl - ksl;) { - x = data[i]; - if(x == '\"' || x == '\'') { - l = i; - i++; - while(data[i++] != x) { - if(i == ssl) { - i = l; - break; - } - } - } - if(!memcmp(data + i, key, ksl)) { - replace_count++; - i += ksl; - } else i++; - } - size = ssl + ((tsl - ksl) * replace_count); - reserve(size); - } - - buffer = new char[size + 1]; - for(i = z = 0; i < ssl;) { - x = data[i]; - if(x == '\"' || x == '\'') { - l = i++; - while(data[i] != x && i < ssl)i++; - if(i >= ssl)i = l; - else { - memcpy(buffer + z, data + l, i - l); - z += i - l; - } - } - if(i <= ssl - ksl) { - if(!memcmp(data + i, key, ksl)) { - memcpy(buffer + z, token, tsl); - z += tsl; - i += ksl; - replace_count++; - } else buffer[z++] = data[i++]; - } else buffer[z++] = data[i++]; - } - buffer[z] = 0; - - assign(buffer); - delete[] buffer; - } - - return *this; -} - -}; - -#endif diff --git a/supergameboy/nall/string/split.hpp b/supergameboy/nall/string/split.hpp deleted file mode 100644 index bb77dfcd..00000000 --- a/supergameboy/nall/string/split.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef NALL_STRING_SPLIT_HPP -#define NALL_STRING_SPLIT_HPP - -namespace nall { - -void lstring::split(const char *key, const char *src, unsigned limit) { - reset(); - - int ssl = strlen(src), ksl = strlen(key); - int lp = 0, split_count = 0; - - for(int i = 0; i <= ssl - ksl;) { - if(!memcmp(src + i, key, ksl)) { - strlcpy(operator[](split_count++), src + lp, i - lp + 1); - i += ksl; - lp = i; - if(!--limit) break; - } else i++; - } - - operator[](split_count++) = src + lp; -} - -void lstring::qsplit(const char *key, const char *src, unsigned limit) { - reset(); - - int ssl = strlen(src), ksl = strlen(key); - int lp = 0, split_count = 0; - - for(int i = 0; i <= ssl - ksl;) { - uint8_t x = src[i]; - - if(x == '\"' || x == '\'') { - int z = i++; //skip opening quote - while(i < ssl && src[i] != x) i++; - if(i >= ssl) i = z; //failed match, rewind i - else { - i++; //skip closing quote - continue; //restart in case next char is also a quote - } - } - - if(!memcmp(src + i, key, ksl)) { - strlcpy(operator[](split_count++), src + lp, i - lp + 1); - i += ksl; - lp = i; - if(!--limit) break; - } else i++; - } - - operator[](split_count++) = src + lp; -} - -}; - -#endif diff --git a/supergameboy/nall/string/strl.hpp b/supergameboy/nall/string/strl.hpp deleted file mode 100644 index 329e8520..00000000 --- a/supergameboy/nall/string/strl.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef NALL_STRING_STRL_HPP -#define NALL_STRING_STRL_HPP - -//strlcpy, strlcat based on OpenBSD implementation by Todd C. Miller - -//return = strlen(src) -size_t strlcpy(char *dest, const char *src, size_t length) { - char *d = dest; - const char *s = src; - size_t n = length; - - if(n) { - while(--n && (*d++ = *s++)); //copy as many bytes as possible, or until null terminator reached - } - - if(!n) { - if(length) *d = 0; - while(*s++); //traverse rest of s, so that s - src == strlen(src) - } - - return (s - src - 1); //return length of copied string, sans null terminator -} - -//return = strlen(src) + min(length, strlen(dest)) -size_t strlcat(char *dest, const char *src, size_t length) { - char *d = dest; - const char *s = src; - size_t n = length; - - while(n-- && *d) d++; //find end of dest - size_t dlength = d - dest; - n = length - dlength; //subtract length of dest from maximum string length - - if(!n) return dlength + strlen(s); - - while(*s) { - if(n != 1) { - *d++ = *s; - n--; - } - s++; - } - *d = 0; - - return dlength + (s - src); //return length of resulting string, sans null terminator -} - -#endif diff --git a/supergameboy/nall/string/trim.hpp b/supergameboy/nall/string/trim.hpp deleted file mode 100644 index 8f218c54..00000000 --- a/supergameboy/nall/string/trim.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef NALL_STRING_TRIM_HPP -#define NALL_STRING_TRIM_HPP - -char* ltrim(char *str, const char *key) { - if(!key || !*key) return str; - while(strbegin(str, key)) { - char *dest = str, *src = str + strlen(key); - while(true) { - *dest = *src++; - if(!*dest) break; - dest++; - } - } - return str; -} - -char* rtrim(char *str, const char *key) { - if(!key || !*key) return str; - while(strend(str, key)) str[strlen(str) - strlen(key)] = 0; - return str; -} - -char* trim(char *str, const char *key) { - return ltrim(rtrim(str, key), key); -} - -char* ltrim_once(char *str, const char *key) { - if(!key || !*key) return str; - if(strbegin(str, key)) { - char *dest = str, *src = str + strlen(key); - while(true) { - *dest = *src++; - if(!*dest) break; - dest++; - } - } - return str; -} - -char* rtrim_once(char *str, const char *key) { - if(!key || !*key) return str; - if(strend(str, key)) str[strlen(str) - strlen(key)] = 0; - return str; -} - -char* trim_once(char *str, const char *key) { - return ltrim_once(rtrim_once(str, key), key); -} - -#endif diff --git a/supergameboy/nall/string/utility.hpp b/supergameboy/nall/string/utility.hpp deleted file mode 100644 index c050446b..00000000 --- a/supergameboy/nall/string/utility.hpp +++ /dev/null @@ -1,165 +0,0 @@ -#ifndef NALL_STRING_UTILITY_HPP -#define NALL_STRING_UTILITY_HPP - -size_t strlcpy(nall::string &dest, const char *src, size_t length) { - dest.reserve(length); - return strlcpy(dest(), src, length); -} - -size_t strlcat(nall::string &dest, const char *src, size_t length) { - dest.reserve(length); - return strlcat(dest(), src, length); -} - -nall::string substr(const char *src, size_t start, size_t length) { - nall::string dest; - if(length == 0) { - //copy entire string - dest = src + start; - } else { - //copy partial string - strlcpy(dest, src + start, length + 1); - } - return dest; -} - -/* very simplistic wrappers to return nall::string& instead of char* type */ - -nall::string& strlower(nall::string &str) { strlower(str()); return str; } -nall::string& strupper(nall::string &str) { strupper(str()); return str; } -nall::string& strtr(nall::string &dest, const char *before, const char *after) { strtr(dest(), before, after); return dest; } -nall::string& ltrim(nall::string &str, const char *key) { ltrim(str(), key); return str; } -nall::string& rtrim(nall::string &str, const char *key) { rtrim(str(), key); return str; } -nall::string& trim (nall::string &str, const char *key) { trim (str(), key); return str; } -nall::string& ltrim_once(nall::string &str, const char *key) { ltrim_once(str(), key); return str; } -nall::string& rtrim_once(nall::string &str, const char *key) { rtrim_once(str(), key); return str; } -nall::string& trim_once (nall::string &str, const char *key) { trim_once (str(), key); return str; } - -/* arithmetic <> string */ - -template nall::string strhex(uintmax_t value) { - nall::string output; - unsigned offset = 0; - - //render string backwards, as we do not know its length yet - do { - unsigned n = value & 15; - output[offset++] = n < 10 ? '0' + n : 'a' + n - 10; - value >>= 4; - } while(value); - - while(offset < length) output[offset++] = padding; - output[offset--] = 0; - - //reverse the string in-place - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -template nall::string strsigned(intmax_t value) { - nall::string output; - unsigned offset = 0; - - bool negative = value < 0; - if(negative) value = abs(value); - - do { - unsigned n = value % 10; - output[offset++] = '0' + n; - value /= 10; - } while(value); - - while(offset < length) output[offset++] = padding; - if(negative) output[offset++] = '-'; - output[offset--] = 0; - - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -template nall::string strunsigned(uintmax_t value) { - nall::string output; - unsigned offset = 0; - - do { - unsigned n = value % 10; - output[offset++] = '0' + n; - value /= 10; - } while(value); - - while(offset < length) output[offset++] = padding; - output[offset--] = 0; - - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -template nall::string strbin(uintmax_t value) { - nall::string output; - unsigned offset = 0; - - do { - unsigned n = value & 1; - output[offset++] = '0' + n; - value >>= 1; - } while(value); - - while(offset < length) output[offset++] = padding; - output[offset--] = 0; - - for(unsigned i = 0; i < (offset + 1) >> 1; i++) { - char temp = output[i]; - output[i] = output[offset - i]; - output[offset - i] = temp; - } - - return output; -} - -//using sprintf is certainly not the most ideal method to convert -//a double to a string ... but attempting to parse a double by -//hand, digit-by-digit, results in subtle rounding errors. -size_t strdouble(char *str, double value) { - char buffer[256]; - sprintf(buffer, "%f", value); - - //remove excess 0's in fraction (2.500000 -> 2.5) - for(char *p = buffer; *p; p++) { - if(*p == '.') { - char *p = buffer + strlen(buffer) - 1; - while(*p == '0') { - if(*(p - 1) != '.') *p = 0; //... but not for eg 1.0 -> 1. - p--; - } - break; - } - } - - unsigned length = strlen(buffer); - if(str) strcpy(str, buffer); - return length + 1; -} - -nall::string strdouble(double value) { - nall::string temp; - temp.reserve(strdouble(0, value)); - strdouble(temp(), value); - return temp; -} - -#endif diff --git a/supergameboy/nall/string/variadic.hpp b/supergameboy/nall/string/variadic.hpp deleted file mode 100644 index e707b487..00000000 --- a/supergameboy/nall/string/variadic.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef NALL_STRING_VARIADIC_HPP -#define NALL_STRING_VARIADIC_HPP - -namespace nall { - static void sprint(string &output, unsigned &offset, const char *&s) { - while(*s) output[offset++] = *s++; - } - - template - static void sprint(string &output, unsigned &offset, const char *&s, T value, Args... args) { - while(*s) { - if(*s == '$') { - string data = to_string(value); - unsigned i = 0; - while(data[i]) output[offset++] = data[i++]; - sprint(output, offset, ++s, args...); - return; - } else { - output[offset++] = *s++; - } - } - } - - template inline string sprint(const char *s, Args... args) { - string output; - unsigned offset = 0; - sprint(output, offset, s, args...); - output[offset] = 0; - return output; - } - - template inline void print(const char *s, Args... args) { - printf("%s", (const char*)sprint(s, args...)); - } -} - -#endif diff --git a/supergameboy/nall/string/xml.hpp b/supergameboy/nall/string/xml.hpp deleted file mode 100644 index 30d6bae6..00000000 --- a/supergameboy/nall/string/xml.hpp +++ /dev/null @@ -1,268 +0,0 @@ -#ifndef NALL_STRING_XML_HPP -#define NALL_STRING_XML_HPP - -//XML subset parser -//version 0.04 - -#include - -namespace nall { - -struct xml_attribute { - string name; - string content; - virtual string parse() const; -}; - -struct xml_element : xml_attribute { - string parse() const; - array attribute; - array element; - ~xml_element(); - -protected: - void parse_doctype(const char *&data); - bool parse_head(string data); - bool parse_body(const char *&data); - friend xml_element *xml_parse(const char *data); -}; - -inline string xml_attribute::parse() const { - string data; - unsigned offset = 0; - - const char *source = content; - while(*source) { - if(*source == '&') { - if(strbegin(source, "<")) { data[offset++] = '<'; source += 4; continue; } - if(strbegin(source, ">")) { data[offset++] = '>'; source += 4; continue; } - if(strbegin(source, "&")) { data[offset++] = '&'; source += 5; continue; } - if(strbegin(source, "'")) { data[offset++] = '\''; source += 6; continue; } - if(strbegin(source, """)) { data[offset++] = '"'; source += 6; continue; } - } - - //reject illegal characters - if(*source == '&') return ""; - if(*source == '<') return ""; - if(*source == '>') return ""; - - data[offset++] = *source++; - } - - data[offset] = 0; - return data; -} - -inline string xml_element::parse() const { - string data; - unsigned offset = 0; - - const char *source = content; - while(*source) { - if(*source == '&') { - if(strbegin(source, "<")) { data[offset++] = '<'; source += 4; continue; } - if(strbegin(source, ">")) { data[offset++] = '>'; source += 4; continue; } - if(strbegin(source, "&")) { data[offset++] = '&'; source += 5; continue; } - if(strbegin(source, "'")) { data[offset++] = '\''; source += 6; continue; } - if(strbegin(source, """)) { data[offset++] = '"'; source += 6; continue; } - } - - if(strbegin(source, ""); - if(pos == -1) return ""; - source += pos + 3; - continue; - } - - if(strbegin(source, ""); - if(pos == -1) return ""; - string cdata = substr(source, 9, pos - 9); - data << cdata; - offset += strlen(cdata); - - source += offset + 3; - continue; - } - - //reject illegal characters - if(*source == '&') return ""; - if(*source == '<') return ""; - if(*source == '>') return ""; - - data[offset++] = *source++; - } - - data[offset] = 0; - return data; -} - -inline void xml_element::parse_doctype(const char *&data) { - name = "!DOCTYPE"; - const char *content_begin = data; - - signed counter = 0; - while(*data) { - char value = *data++; - if(value == '<') counter++; - if(value == '>') counter--; - if(counter < 0) { - content = substr(content_begin, 0, data - content_begin - 1); - return; - } - } - throw "..."; -} - -inline bool xml_element::parse_head(string data) { - data.qreplace("\t", " "); - data.qreplace("\r", " "); - data.qreplace("\n", " "); - while(qstrpos(data, " ") >= 0) data.qreplace(" ", " "); - data.qreplace(" =", "="); - data.qreplace("= ", "="); - rtrim(data); - - lstring part; - part.qsplit(" ", data); - - name = part[0]; - if(name == "") throw "..."; - - for(unsigned i = 1; i < part.size(); i++) { - lstring side; - side.qsplit("=", part[i]); - if(side.size() != 2) throw "..."; - - xml_attribute *attr = new xml_attribute; - attr->name = side[0]; - attr->content = side[1]; - if(strbegin(attr->content, "\"") && strend(attr->content, "\"")) trim_once(attr->content, "\""); - else if(strbegin(attr->content, "'") && strend(attr->content, "'")) trim_once(attr->content, "'"); - else throw "..."; - attribute.add(attr); - } -} - -inline bool xml_element::parse_body(const char *&data) { - while(true) { - if(!*data) return false; - if(*data++ != '<') continue; - if(*data == '/') return false; - - if(strbegin(data, "!DOCTYPE") == true) { - parse_doctype(data); - return true; - } - - if(strbegin(data, "!--")) { - signed offset = strpos(data, "-->"); - if(offset == -1) throw "..."; - data += offset + 3; - continue; - } - - if(strbegin(data, "![CDATA[")) { - signed offset = strpos(data, "]]>"); - if(offset == -1) throw "..."; - data += offset + 3; - continue; - } - - signed offset = strpos(data, ">"); - if(offset == -1) throw "..."; - - string tag = substr(data, 0, offset); - data += offset + 1; - const char *content_begin = data; - - bool self_terminating = false; - - if(strend(tag, "?") == true) { - self_terminating = true; - rtrim_once(tag, "?"); - } else if(strend(tag, "/") == true) { - self_terminating = true; - rtrim_once(tag, "/"); - } - - parse_head(tag); - if(self_terminating) return true; - - while(*data) { - unsigned index = element.size(); - xml_element *elem = new xml_element; - if(elem->parse_body(data) == false) { - delete elem; - - if(*data == '/') { - signed length = data - content_begin - 1; - if(length > 0) content = substr(content_begin, 0, length); - - data++; - offset = strpos(data, ">"); - if(offset == -1) throw "..."; - - tag = substr(data, 0, offset); - data += offset + 1; - - tag.replace("\t", " "); - tag.replace("\r", " "); - tag.replace("\n", " "); - while(strpos(tag, " ") >= 0) tag.replace(" ", " "); - rtrim(tag); - - if(name != tag) throw "..."; - return true; - } - } else { - element.add(elem); - } - } - } -} - -inline xml_element::~xml_element() { - for(unsigned i = 0; i < attribute.size(); i++) delete attribute[i]; - for(unsigned i = 0; i < element.size(); i++) delete element[i]; -} - -//ensure there is only one root element -inline bool xml_validate(xml_element *document) { - unsigned root_counter = 0; - - for(unsigned i = 0; i < document->element.size(); i++) { - string &name = document->element[i]->name; - if(strbegin(name, "?")) continue; - if(strbegin(name, "!")) continue; - if(++root_counter > 1) return false; - } - - return true; -} - -inline xml_element* xml_parse(const char *data) { - xml_element *self = new xml_element; - - try { - while(*data) { - xml_element *elem = new xml_element; - if(elem->parse_body(data) == false) { - delete elem; - break; - } else { - self->element.add(elem); - } - } - - if(xml_validate(self) == false) throw "..."; - return self; - } catch(const char*) { - delete self; - return 0; - } -} - -} - -#endif diff --git a/supergameboy/nall/traits.hpp b/supergameboy/nall/traits.hpp deleted file mode 100644 index 0e7e0db3..00000000 --- a/supergameboy/nall/traits.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef NALL_TRAITS_HPP -#define NALL_TRAITS_HPP - -namespace nall { - //== - //is - //== - - template struct is_integral { enum { value = false }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - template<> struct is_integral { enum { value = true }; }; - - template struct is_floating_point { enum { value = false }; }; - template<> struct is_floating_point { enum { value = true }; }; - template<> struct is_floating_point { enum { value = true }; }; - template<> struct is_floating_point { enum { value = true }; }; - - template struct is_bool { enum { value = false }; }; - template<> struct is_bool { enum { value = true }; }; - - template struct is_void { enum { value = false }; }; - template<> struct is_void { enum { value = true }; }; - - template struct is_arithmetic { - enum { value = is_integral::value || is_floating_point::value }; - }; - - template struct is_fundamental { - enum { value = is_integral::value || is_floating_point::value || is_void::value }; - }; - - template struct is_compound { - enum { value = !is_fundamental::value }; - }; - - template struct is_array { enum { value = false }; }; - template struct is_array { enum { value = true }; }; - template struct is_array { enum { value = true }; }; - - template struct is_const { enum { value = false }; }; - template struct is_const { enum { value = true }; }; - template struct is_const { enum { value = true }; }; - - template struct is_pointer { enum { value = false }; }; - template struct is_pointer { enum { value = true }; }; - - template struct is_reference { enum { value = false }; }; - template struct is_reference { enum { value = true }; }; - - template struct is_same { enum { value = false }; }; - template struct is_same { enum { value = true }; }; - - //=== - //add - //=== - - template struct add_const { typedef const T type; }; - template struct add_const { typedef const T type; }; - template struct add_const { typedef const T& type; }; - - template struct add_pointer { typedef T* type; }; - template struct add_pointer { typedef T** type; }; - - template struct add_reference { typedef T& type; }; - template struct add_reference { typedef T& type; }; - - //====== - //remove - //====== - - template struct remove_const { typedef T type; }; - template struct remove_const { typedef T type; }; - template struct remove_const { typedef T type; }; - - template struct remove_extent { typedef T type; }; - template struct remove_extent { typedef T type; }; - template struct remove_extent { typedef T type; }; - - template struct remove_pointer { typedef T type; }; - template struct remove_pointer { typedef T type; }; - - template struct remove_reference { typedef T type; }; - template struct remove_reference { typedef T type; }; -} - -#endif diff --git a/supergameboy/nall/ups.hpp b/supergameboy/nall/ups.hpp deleted file mode 100644 index f255ecb3..00000000 --- a/supergameboy/nall/ups.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef NALL_UPS_HPP -#define NALL_UPS_HPP - -#include - -#include -#include -#include -#include - -namespace nall { - class ups { - public: - enum result { - ok, - patch_unreadable, - patch_unwritable, - patch_invalid, - input_invalid, - output_invalid, - patch_crc32_invalid, - input_crc32_invalid, - output_crc32_invalid, - }; - - ups::result create(const char *patch_fn, const uint8_t *x_data, unsigned x_size, const uint8_t *y_data, unsigned y_size) { - if(!fp.open(patch_fn, file::mode_write)) return patch_unwritable; - - crc32 = ~0; - uint32_t x_crc32 = crc32_calculate(x_data, x_size); - uint32_t y_crc32 = crc32_calculate(y_data, y_size); - - //header - write('U'); - write('P'); - write('S'); - write('1'); - encptr(x_size); - encptr(y_size); - - //body - unsigned max_size = max(x_size, y_size); - unsigned relative = 0; - for(unsigned i = 0; i < max_size;) { - uint8_t x = i < x_size ? x_data[i] : 0x00; - uint8_t y = i < y_size ? y_data[i] : 0x00; - - if(x == y) { - i++; - continue; - } - - encptr(i++ - relative); - write(x ^ y); - - while(true) { - if(i >= max_size) { - write(0x00); - break; - } - - x = i < x_size ? x_data[i] : 0x00; - y = i < y_size ? y_data[i] : 0x00; - i++; - write(x ^ y); - if(x == y) break; - } - - relative = i; - } - - //footer - for(unsigned i = 0; i < 4; i++) write(x_crc32 >> (i << 3)); - for(unsigned i = 0; i < 4; i++) write(y_crc32 >> (i << 3)); - uint32_t p_crc32 = ~crc32; - for(unsigned i = 0; i < 4; i++) write(p_crc32 >> (i << 3)); - - fp.close(); - return ok; - } - - ups::result apply(const uint8_t *p_data, unsigned p_size, const uint8_t *x_data, unsigned x_size, uint8_t *&y_data, unsigned &y_size) { - if(p_size < 18) return patch_invalid; - p_buffer = p_data; - - crc32 = ~0; - - //header - if(read() != 'U') return patch_invalid; - if(read() != 'P') return patch_invalid; - if(read() != 'S') return patch_invalid; - if(read() != '1') return patch_invalid; - - unsigned px_size = decptr(); - unsigned py_size = decptr(); - - //mirror - if(x_size != px_size && x_size != py_size) return input_invalid; - y_size = (x_size == px_size) ? py_size : px_size; - y_data = new uint8_t[y_size](); - - for(unsigned i = 0; i < x_size && i < y_size; i++) y_data[i] = x_data[i]; - for(unsigned i = x_size; i < y_size; i++) y_data[i] = 0x00; - - //body - unsigned relative = 0; - while(p_buffer < p_data + p_size - 12) { - relative += decptr(); - - while(true) { - uint8_t x = read(); - if(x && relative < y_size) { - uint8_t y = relative < x_size ? x_data[relative] : 0x00; - y_data[relative] = x ^ y; - } - relative++; - if(!x) break; - } - } - - //footer - unsigned px_crc32 = 0, py_crc32 = 0, pp_crc32 = 0; - for(unsigned i = 0; i < 4; i++) px_crc32 |= read() << (i << 3); - for(unsigned i = 0; i < 4; i++) py_crc32 |= read() << (i << 3); - uint32_t p_crc32 = ~crc32; - for(unsigned i = 0; i < 4; i++) pp_crc32 |= read() << (i << 3); - - uint32_t x_crc32 = crc32_calculate(x_data, x_size); - uint32_t y_crc32 = crc32_calculate(y_data, y_size); - - if(px_size != py_size) { - if(x_size == px_size && x_crc32 != px_crc32) return input_crc32_invalid; - if(x_size == py_size && x_crc32 != py_crc32) return input_crc32_invalid; - if(y_size == px_size && y_crc32 != px_crc32) return output_crc32_invalid; - if(y_size == py_size && y_crc32 != py_crc32) return output_crc32_invalid; - } else { - if(x_crc32 != px_crc32 && x_crc32 != py_crc32) return input_crc32_invalid; - if(y_crc32 != px_crc32 && y_crc32 != py_crc32) return output_crc32_invalid; - if(x_crc32 == y_crc32 && px_crc32 != py_crc32) return output_crc32_invalid; - if(x_crc32 != y_crc32 && px_crc32 == py_crc32) return output_crc32_invalid; - } - - if(p_crc32 != pp_crc32) return patch_crc32_invalid; - return ok; - } - - private: - file fp; - uint32_t crc32; - const uint8_t *p_buffer; - - uint8_t read() { - uint8_t n = *p_buffer++; - crc32 = crc32_adjust(crc32, n); - return n; - } - - void write(uint8_t n) { - fp.write(n); - crc32 = crc32_adjust(crc32, n); - } - - void encptr(uint64_t offset) { - while(true) { - uint64_t x = offset & 0x7f; - offset >>= 7; - if(offset == 0) { - write(0x80 | x); - break; - } - write(x); - offset--; - } - } - - uint64_t decptr() { - uint64_t offset = 0, shift = 1; - while(true) { - uint8_t x = read(); - offset += (x & 0x7f) * shift; - if(x & 0x80) break; - shift <<= 7; - offset += shift; - } - return offset; - } - }; -} - -#endif diff --git a/supergameboy/nall/utf8.hpp b/supergameboy/nall/utf8.hpp deleted file mode 100644 index c66c341a..00000000 --- a/supergameboy/nall/utf8.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef NALL_UTF8_HPP -#define NALL_UTF8_HPP - -//UTF-8 <> UTF-16 conversion -//used only for Win32; Linux, etc use UTF-8 internally - -#if defined(_WIN32) - -#undef _WIN32_WINNT -#define _WIN32_WINNT 0x0501 -#undef NOMINMAX -#define NOMINMAX -#include -#undef interface - -namespace nall { - //UTF-8 to UTF-16 - class utf16_t { - public: - operator wchar_t*() { - return buffer; - } - - operator const wchar_t*() const { - return buffer; - } - - utf16_t(const char *s = "") { - if(!s) s = ""; - unsigned length = MultiByteToWideChar(CP_UTF8, 0, s, -1, 0, 0); - buffer = new wchar_t[length + 1](); - MultiByteToWideChar(CP_UTF8, 0, s, -1, buffer, length); - } - - ~utf16_t() { - delete[] buffer; - } - - private: - wchar_t *buffer; - }; - - //UTF-16 to UTF-8 - class utf8_t { - public: - operator char*() { - return buffer; - } - - operator const char*() const { - return buffer; - } - - utf8_t(const wchar_t *s = L"") { - if(!s) s = L""; - unsigned length = WideCharToMultiByte(CP_UTF8, 0, s, -1, 0, 0, (const char*)0, (BOOL*)0); - buffer = new char[length + 1](); - WideCharToMultiByte(CP_UTF8, 0, s, -1, buffer, length, (const char*)0, (BOOL*)0); - } - - ~utf8_t() { - delete[] buffer; - } - - private: - char *buffer; - }; -} - -#endif //if defined(_WIN32) - -#endif diff --git a/supergameboy/nall/utility.hpp b/supergameboy/nall/utility.hpp deleted file mode 100644 index c15945e1..00000000 --- a/supergameboy/nall/utility.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef NALL_UTILITY_HPP -#define NALL_UTILITY_HPP - -#include - -namespace nall { - template struct identity { - typedef T type; - }; - - template typename remove_reference::type&& move(T &&value) { - return value; - } - - template T&& forward(typename identity::type &&value) { - return value; - } - - template struct enable_if { typedef T type; }; - template struct enable_if {}; - template struct mp_enable_if : enable_if {}; - - template inline void swap(T &x, T &y) { - T temp(move(x)); - x = move(y); - y = move(temp); - } - - template struct base_from_member { - T value; - base_from_member(T value_) : value(value_) {} - }; - - template inline T* allocate(size_t size, const T &value) { - T *array = new T[size]; - for(size_t i = 0; i < size; i++) array[i] = value; - return array; - } -} - -#endif diff --git a/supergameboy/nall/varint.hpp b/supergameboy/nall/varint.hpp deleted file mode 100644 index cc3bb17c..00000000 --- a/supergameboy/nall/varint.hpp +++ /dev/null @@ -1,92 +0,0 @@ -#ifndef NALL_VARINT_HPP -#define NALL_VARINT_HPP - -#include -#include -#include - -namespace nall { - template class uint_t { - private: - enum { bytes = (bits + 7) >> 3 }; //minimum number of bytes needed to store value - typedef typename static_if< - sizeof(int) >= bytes, - unsigned int, - typename static_if< - sizeof(long) >= bytes, - unsigned long, - typename static_if< - sizeof(long long) >= bytes, - unsigned long long, - void - >::type - >::type - >::type T; - static_assert::value> uint_assert; - T data; - - public: - inline operator T() const { return data; } - inline T operator ++(int) { T r = data; data = uclip(data + 1); return r; } - inline T operator --(int) { T r = data; data = uclip(data - 1); return r; } - inline T operator ++() { return data = uclip(data + 1); } - inline T operator --() { return data = uclip(data - 1); } - inline T operator =(const T i) { return data = uclip(i); } - inline T operator |=(const T i) { return data = uclip(data | i); } - inline T operator ^=(const T i) { return data = uclip(data ^ i); } - inline T operator &=(const T i) { return data = uclip(data & i); } - inline T operator<<=(const T i) { return data = uclip(data << i); } - inline T operator>>=(const T i) { return data = uclip(data >> i); } - inline T operator +=(const T i) { return data = uclip(data + i); } - inline T operator -=(const T i) { return data = uclip(data - i); } - inline T operator *=(const T i) { return data = uclip(data * i); } - inline T operator /=(const T i) { return data = uclip(data / i); } - inline T operator %=(const T i) { return data = uclip(data % i); } - - inline uint_t() : data(0) {} - inline uint_t(const T i) : data(uclip(i)) {} - }; - - template class int_t { - private: - enum { bytes = (bits + 7) >> 3 }; //minimum number of bytes needed to store value - typedef typename static_if< - sizeof(int) >= bytes, - signed int, - typename static_if< - sizeof(long) >= bytes, - signed long, - typename static_if< - sizeof(long long) >= bytes, - signed long long, - void - >::type - >::type - >::type T; - static_assert::value> int_assert; - T data; - - public: - inline operator T() const { return data; } - inline T operator ++(int) { T r = data; data = sclip(data + 1); return r; } - inline T operator --(int) { T r = data; data = sclip(data - 1); return r; } - inline T operator ++() { return data = sclip(data + 1); } - inline T operator --() { return data = sclip(data - 1); } - inline T operator =(const T i) { return data = sclip(i); } - inline T operator |=(const T i) { return data = sclip(data | i); } - inline T operator ^=(const T i) { return data = sclip(data ^ i); } - inline T operator &=(const T i) { return data = sclip(data & i); } - inline T operator<<=(const T i) { return data = sclip(data << i); } - inline T operator>>=(const T i) { return data = sclip(data >> i); } - inline T operator +=(const T i) { return data = sclip(data + i); } - inline T operator -=(const T i) { return data = sclip(data - i); } - inline T operator *=(const T i) { return data = sclip(data * i); } - inline T operator /=(const T i) { return data = sclip(data / i); } - inline T operator %=(const T i) { return data = sclip(data % i); } - - inline int_t() : data(0) {} - inline int_t(const T i) : data(sclip(i)) {} - }; -} - -#endif diff --git a/supergameboy/nall/vector.hpp b/supergameboy/nall/vector.hpp deleted file mode 100644 index 8885f93d..00000000 --- a/supergameboy/nall/vector.hpp +++ /dev/null @@ -1,235 +0,0 @@ -#ifndef NALL_VECTOR_HPP -#define NALL_VECTOR_HPP - -#include -#include -#include -#include -#include -#include -#include - -namespace nall { - //linear_vector - //memory: O(capacity * 2) - // - //linear_vector uses placement new + manual destructor calls to create a - //contiguous block of memory for all objects. accessing individual elements - //is fast, though resizing the array incurs significant overhead. - //reserve() overhead is reduced from quadratic time to amortized constant time - //by resizing twice as much as requested. - // - //if objects hold memory address references to themselves (introspection), a - //valid copy constructor will be needed to keep pointers valid. - - template class linear_vector { - protected: - T *pool; - unsigned poolsize, objectsize; - - public: - unsigned size() const { return objectsize; } - unsigned capacity() const { return poolsize; } - - void reset() { - if(pool) { - for(unsigned i = 0; i < objectsize; i++) pool[i].~T(); - free(pool); - } - pool = 0; - poolsize = 0; - objectsize = 0; - } - - void reserve(unsigned newsize) { - newsize = bit::round(newsize); //round to nearest power of two (for amortized growth) - - T *poolcopy = (T*)malloc(newsize * sizeof(T)); - for(unsigned i = 0; i < min(objectsize, newsize); i++) new(poolcopy + i) T(pool[i]); - for(unsigned i = 0; i < objectsize; i++) pool[i].~T(); - free(pool); - pool = poolcopy; - poolsize = newsize; - objectsize = min(objectsize, newsize); - } - - void resize(unsigned newsize) { - if(newsize > poolsize) reserve(newsize); - - if(newsize < objectsize) { - //vector is shrinking; destroy excess objects - for(unsigned i = newsize; i < objectsize; i++) pool[i].~T(); - } else if(newsize > objectsize) { - //vector is expanding; allocate new objects - for(unsigned i = objectsize; i < newsize; i++) new(pool + i) T; - } - - objectsize = newsize; - } - - void add(const T data) { - if(objectsize + 1 > poolsize) reserve(objectsize + 1); - new(pool + objectsize++) T(data); - } - - inline T& operator[](unsigned index) { - if(index >= objectsize) resize(index + 1); - return pool[index]; - } - - inline const T& operator[](unsigned index) const { - if(index >= objectsize) throw "vector[] out of bounds"; - return pool[index]; - } - - //copy - inline linear_vector& operator=(const linear_vector &source) { - reset(); - reserve(source.capacity()); - for(unsigned i = 0; i < source.size(); i++) add(source[i]); - return *this; - } - - linear_vector(const linear_vector &source) { - operator=(source); - } - - //move - inline linear_vector& operator=(linear_vector &&source) { - reset(); - pool = source.pool; - poolsize = source.poolsize; - objectsize = source.objectsize; - source.pool = 0; - return *this; - } - - linear_vector(linear_vector &&source) { - operator=(move(source)); - } - - //construction - linear_vector() : pool(0), poolsize(0), objectsize(0) { - } - - linear_vector(std::initializer_list list) : pool(0), poolsize(0), objectsize(0) { - for(const T *p = list.begin(); p != list.end(); ++p) add(*p); - } - - ~linear_vector() { - reset(); - } - }; - - //pointer_vector - //memory: O(1) - // - //pointer_vector keeps an array of pointers to each vector object. this adds - //significant overhead to individual accesses, but allows for optimal memory - //utilization. - // - //by guaranteeing that the base memory address of each objects never changes, - //this avoids the need for an object to have a valid copy constructor. - - template class pointer_vector { - protected: - T **pool; - unsigned poolsize, objectsize; - - public: - unsigned size() const { return objectsize; } - unsigned capacity() const { return poolsize; } - - void reset() { - if(pool) { - for(unsigned i = 0; i < objectsize; i++) { if(pool[i]) delete pool[i]; } - free(pool); - } - pool = 0; - poolsize = 0; - objectsize = 0; - } - - void reserve(unsigned newsize) { - newsize = bit::round(newsize); //round to nearest power of two (for amortized growth) - - for(unsigned i = newsize; i < objectsize; i++) { - if(pool[i]) { delete pool[i]; pool[i] = 0; } - } - - pool = (T**)realloc(pool, newsize * sizeof(T*)); - for(unsigned i = poolsize; i < newsize; i++) pool[i] = 0; - poolsize = newsize; - objectsize = min(objectsize, newsize); - } - - void resize(unsigned newsize) { - if(newsize > poolsize) reserve(newsize); - - for(unsigned i = newsize; i < objectsize; i++) { - if(pool[i]) { delete pool[i]; pool[i] = 0; } - } - - objectsize = newsize; - } - - void add(const T data) { - if(objectsize + 1 > poolsize) reserve(objectsize + 1); - pool[objectsize++] = new T(data); - } - - inline T& operator[](unsigned index) { - if(index >= objectsize) resize(index + 1); - if(!pool[index]) pool[index] = new T; - return *pool[index]; - } - - inline const T& operator[](unsigned index) const { - if(index >= objectsize || !pool[index]) throw "vector[] out of bounds"; - return *pool[index]; - } - - //copy - inline pointer_vector& operator=(const pointer_vector &source) { - reset(); - reserve(source.capacity()); - for(unsigned i = 0; i < source.size(); i++) add(source[i]); - return *this; - } - - pointer_vector(const pointer_vector &source) { - operator=(source); - } - - //move - inline pointer_vector& operator=(pointer_vector &&source) { - reset(); - pool = source.pool; - poolsize = source.poolsize; - objectsize = source.objectsize; - source.pool = 0; - return *this; - } - - pointer_vector(pointer_vector &&source) { - operator=(move(source)); - } - - //construction - pointer_vector() : pool(0), poolsize(0), objectsize(0) { - } - - pointer_vector(std::initializer_list list) : pool(0), poolsize(0), objectsize(0) { - for(const T *p = list.begin(); p != list.end(); ++p) add(*p); - } - - ~pointer_vector() { - reset(); - } - }; - - template struct has_size> { enum { value = true }; }; - template struct has_size> { enum { value = true }; }; -} - -#endif diff --git a/supergameboy/supergameboy.cpp b/supergameboy/supergameboy.cpp deleted file mode 100644 index 0c011af7..00000000 --- a/supergameboy/supergameboy.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include "supergameboy.hpp" - -#ifdef _WIN32 - #define dllexport __declspec(dllexport) -#else - #define dllexport -#endif - -#include -#include -#include - -#include - -dllexport void sgb_rom(uint8_t *data, unsigned size) { - supergameboy.romdata = data; - supergameboy.romsize = size; -} - -dllexport void sgb_ram(uint8_t *data, unsigned size) { - supergameboy.ramdata = data; - supergameboy.ramsize = size; -} - -dllexport void sgb_rtc(uint8_t *data, unsigned size) { - supergameboy.rtcdata = data; - supergameboy.rtcsize = size; -} - -dllexport bool sgb_init(bool version) { - return supergameboy.init(version); -} - -dllexport void sgb_term() { - supergameboy.term(); -} - -dllexport void sgb_power() { - supergameboy.power(); -} - -dllexport void sgb_reset() { - supergameboy.reset(); -} - -dllexport void sgb_row(unsigned row) { - supergameboy.row(row); -} - -dllexport uint8_t sgb_read(uint16_t addr) { - return supergameboy.read(addr); -} - -dllexport void sgb_write(uint16_t addr, uint8_t data) { - supergameboy.write(addr, data); -} - -dllexport unsigned sgb_run(uint32_t *samplebuffer, unsigned clocks) { - return supergameboy.run(samplebuffer, clocks); -} - -dllexport void sgb_save() { - supergameboy.save(); -} - -dllexport void sgb_serialize(nall::serializer &s) { - supergameboy.serialize(s); -} diff --git a/supergameboy/supergameboy.hpp b/supergameboy/supergameboy.hpp deleted file mode 100644 index 715e4893..00000000 --- a/supergameboy/supergameboy.hpp +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef SUPERGAMEBOY_HPP -#define SUPERGAMEBOY_HPP - -#include -#include -#include -#include - -#include -#include -using namespace nall; - -#include -#include - -extern "C" { - void sgb_rom(uint8_t *data, unsigned size); - void sgb_ram(uint8_t *data, unsigned size); - void sgb_rtc(uint8_t *data, unsigned size); - bool sgb_init(bool version); - void sgb_term(); - void sgb_power(); - void sgb_reset(); - void sgb_row(unsigned row); - uint8_t sgb_read(uint16_t addr); - void sgb_write(uint16_t addr, uint8_t data); - unsigned sgb_run(uint32_t *samplebuffer, unsigned clocks); - void sgb_save(); - void sgb_serialize(nall::serializer &s); -} - -#endif diff --git a/supergameboy/sync.sh b/supergameboy/sync.sh deleted file mode 100644 index 4bbaf34f..00000000 --- a/supergameboy/sync.sh +++ /dev/null @@ -1,2 +0,0 @@ -rm -r nall -cp -r ../nall ./nall

R` z&0_M8PNZ?Qm6XDlw``pS?!1Dj@Dx50`w@A1i2nhS?D#2gHx^OXC44^?B4kUG!ImPN z%5o9vTz0D#1>U3*^A$}Gcw}=E|H#qkoBhs|?G`5q2bD6kk%=w4oO(;oBeJ=X=-V&I zaIa$9CTUJzs|;<8FLwgiSb`EcM3xnh5h#K4YYSj&hOaU0Lbm8G*9wA(C=LMb}}1t08eG7hF?FyQNT-4G_k~lwk#PvDHgPf4Nh>P z<-1{(^*;0d@o4K#`*=NNqx4uFd=qdcL9i1NtyuQ@eU=V^gD z9kj;>0NJAjIZQy4;T>1|kvv#l!-To>+hijs3sCzcUVHdl@y;2HGshj0rFJ;&SmLZb z8%wCYZEF(buAw9u>yaMZkdg_k(l0ab6#W#9fv#vL>bidJbSwunaMX1Vj-ow!=0W~?s9bBg% z2FP3&i_tR{*kW^M?b;WQ2e?Xjju9lMU(6vhF(gwE4asYc+;jMN^{?g^de988Y24y# zitvkO@cfGo=u}Yi{!JCe{+ry?;`n_x-k4JEBQFxs%Bk@XEr&_bUQbP_!Wj73wSTuOYTC5hLveFMt<~tZ zf(s8F?w%j8`dO&uRCouVe=E0njb<~`BxrcyR}KOK*7j7^!s?K;i07?Zv{iApZ%UzR z*m+<*yKCal0&%zv1Nr#rHwLaP%7dypN71@wB}~AdvWzgZBC>BNk=ib zp(d{^!%B>Y(6WwzHnC;tf+!2vAg#6LlEnrzIO7&{j{mn)0^ZR9>oK+NBGUf?aQ&lM zaXki#LRoQBY-w^0=t%qVttsG7du?a+V`+KdpSNA~cGTr6K1Yr5B>mCxu$7K;I{DZA z)-({LYJfM9S1w-*@MhJXh6(N%tLf!x6C04{BjdUXtVnU$4qPF{kwYK@*?UiRwZDD= zN6os-+_;KxZST6KVHKwIOIKo=BK(?*1UVLb`=%~56h7Ak^E&b6mA>Fy2Zm}@@tfww z*Yxu^l&~v%?%Y&4wwUkB(sWK`qXa*mV_2-9oAF452+At7S1NvghlK4kb4d&Z>1GW&)@(TG2TIV<8yUqY@zxa-sSZVHKpnkl|$?*pEo?FNO-HfZ&NRO zB+$Fqm{{|@{)fR9OUJ6igszllJIzIR@lyEWmRYC%vkbmR(|}qmcY)X*?sa_t`HI?S z!xaiDCoCgmkLt1@NX%ZHK$~@W7xPaTu+=TE90H{ykW_EsBnt7T`76;B zl?@0Vb|6G|Ee>?K6BQkTOtm(ZS2%{yh_Bzt1sLZ#QB7yY>{j(7&qTdL0o6X!G~Zg0 zcVHXjSKvs{a}sp8uF&ns9nzRAv5TBZQ5!7mB_CQ*`f_`3Ry-S1LzI$25S95{z&Mtj zN|=i(=tgs1Vs8q8v}26mO)*F{z#7OPNuGQXt|dI>o?`;Er-KPBxuqaUmNfj9oJho3 ze)t=RH{nDoaGsnt=81TtGc1=X{VbYCe?;EEGYbYUhTF&;n~;fvr=o%57vQLXff1R% zp(T2AKWvdpvbAW-Ni{A5;re4FE`hByo^TV$;2W(}#fa}^%3x0c8Q?5+^7psnNRXXm z9+X8C>Tv^~5|~dnJ^``OaWy*;xcm3O)`bHyZ_xUIDCElW(~t_kKAwGOtB{bF68VUz zXXS0fmFg$;@CV82`KQBY-1g_O{A=9(+<7UixE4?em+_g}haTh^*?NF1Kl|K|DquC> ziu(e)0+2u*lT+F|`5QF+iQ9NXQd*!JJH;1kd#DX_6{vvKnBTPjFI%_hwHjAk&UBxr zOF7vzHT=-ti1v%2SH))YT(dN=pm46BCwW)7?6$n%zNma31;X@mDoq_UTZI<0(l@7|* z8PENy2tjbNxK=61(aN&CYM1I%m>t@T6(O84AMahSGq(IL57KB4+-RaZ6+CBvIOZUQIKY3y!^N5S&FsM8WDnpi?nCg6 z{<1yu8&G?HsQpQ1^4QzUO~^l$i$!H+p$!n$(vvv|5mPL}HflkpEJW|yPBT~pQw37g~| zA9dVnO1$oImq}cypOz6?)O{6izl?PfAKk?aYV6G=#W&b0RR%$%?=M}dd>2^@vg&(K) zu&z~uoBLYI#mu|kZ-7+H_8fQcY8p0sig_m}<+Vb&!s5)Q9V=KZ5xbpN`!SWs)QWH8 zkY4e}44t6aCdb~v4=EC&mHm@0%{OhD2e5ATGJ=WLyzQb}YMTCvHq0uZ z<`Tdb^rID&vS@px>X6Io*^4RrCO4^=J>{jRk79^Dt`?(N(c{DRNKbe!+OugldW%Ex ze`{GQy;EZGSqt0>aIv#cN`+Rqfh}krg-o0J<*c1dyU`5i5kHS@iF7;b!q2Wt`m|CD zg%85aRz8%yx}D*&h4u0JQ3EimTW)mFeangCApoW;d$4LhIOpDekn1I>_|f$_t+YkW zE;^dr7n-5qa8tbiQotS!Bun8DZ!)T% zDcUd~jJww@OB|jY;*mMhGw?Usyt2i)(a&^125`W9$846B6$35{R)p^Hp*WE==slh< zJmRz*#|jhPnG&ch|999A9-AG20sb?OM(7zng)kcm3;d7`wd@3oj`0|Lg0zEM!J+gL zP$oyF#d->Q27U}m9kU4Z`@Ri%&-G|lQR^Y3^@j!0V8+JBQxnT?Ky#390%TPA&i}k- z^Dy5$-?hSyrD$^}Q#{k9-gg{tf+`scQ)I(v0Sp2MpHo^NP__X=&NL_mqfb^oWUvd~H`>wk`akvrOU zjBOv!uP~0%!ra&2FqD>wi4Sb`L>eeG1$++JtguCnIUE3v9vF=AhF%LKzlY(acL4tT zraV3}SB(Qpd1=rRi){Xl8vm!VIc&v~BmRb|WMhNC)<>`)N+`{O`{CUX1hy1&@mFDT zFJh;K;p6+v#|bHJdn1VQ-(DGl<qw?iJsRO)m5NjrgODBXTV#&T2WxhA^6Dfoyr4aKKa(Q6|}9S9z)O<{GNaxmEkb9FkCwES$W@XoHJxz)DN z+dfU+s(oW)uEuh{kw-?0eeUTe@F<43?S;6_TCo*Og~gM9d|D+Ol@+VYZ#}J*RcLZ<53=DP*{3F7 zhfaG1a**K+d-V-}kUmzQuJ{}Ji?h_QCxfqeotkEG#&9|`tW=)^vN8|d?F1SHDM!Hk zPN{cM00Y8n?kK&Zf%h&6x!n42=cb$Xn8S`*3{Y?TjwSt$rJSA4O-zUZXgb9IB{r3N z=}7BY#|>dY^$%VQ0j#>KzwM^|%u0yG+NN23iV`Ar^hR`&UE8((BuLKLL8spP`t;*Y zZMZD&_bGf0i1YtFfL><hHrVJ^CpTF_4JZ86#Scxt*6XHolCLR7vr`er2h;gY`)mEa_S7ws0h8OkDFtMQs zcF_Z9>^9AYMDS>S0chX`f{lzozN0r966}Wy1zgz|jOFRXx8nTem@(kFG;DoU5!A`i z8V_YRpZ#=Gax7he5|L*GTaWd9uy=)ynkaV1*U`PEr>x9Xo3ZI`rMbWqW%(FUidMd} z$8X4^iz+@mbBj!sCIu0J0@&KIZ!5lfv3JF=asYj4r!|J7Ecq9`2kpOhqstFld)3i6 z=mDe8C&B-k%a&8a=fdk3DWBIQ=x6bZFVOjUM2>BD(Vvym`y(2ffECL@l!t!a+KLsj z(}dh|sIw7U1j)r$<5-V3fo)X5YsGvx&xI`y(Y)(QrjIvY{1%b{te9Ooae_#}-|Y&C z>0YP5Rp=Ga*@Vre?JxGxs&sxa6Ch9gYN!X@xPIu#eQU!hkTn6RfKwqC{NwU1ZaLV zdh{Q&9>SI)aSfcVtGrm=CduN%zo3V=wbV_A`@}=aqSDY1MYYh6Mc} z0`5BDJXV^3@p8kuj#L;z&im|wRh3~LI7s%A9`wH-)O_3bm@d#y2m#h{x64;(DHxgfOPR5Vex#J{WZzNOMNgx5u4}Wc1Dh zO%_tXn6gBCRpo3$)|VQo>M{hzH>e`@U;hy%QU+B|rbcGOL78^2D|aUgX3DG=E(B10 z)9*Z!jzgyMsm#e^3LL>co-R44t@qT=ne#?U_UF@U^O2TIVmRwpM>5KDUNB{xV&L!Z zo4lvy3vP0Y7;z5T3FFy+xPd}lZcRhjVymDs$2nj&SEkJk070PDi42^zaeXUImDV@T zznUIvS4XY%AWsGVLmOIX+4ogekyk(Q0bWdaMV^qWeb7Q77C4pI1-3l}ucsdmWv@g3 zQ&jzk<~z7VePgbKe0S<5*;be2bBEhT$d)s%5+}y28c;&Alo%mhu;lCnDHb7^BdwHqE3^AAv_k1rxQ(7`(kAKwP4(0h9C;>QR{2 zK_#-6-z#k{L1^`&=WLPJdOdgE~Akf83~6Miytwq zCF7wKdt+bu3SQkoZ0lS5+Fd6Y?oXmg_LDn(=ZAEk+AD;EtUX_2R4A_qU%9F<&YMUvHj{UrF0{6b?#a>eRXx7|*n!<`Vif-`(k(=Hd3(p0{l1^aQyZ@OMF zJ3bw|Q_?84h9{zrd3wG(I#6`44)@~e!kN1JG57A*IZ%tX3{*aV0xz5Y%7-PC2%_D7KH>L z|4rWqobV*2_tAj(Pix)XTS|K>8u?ZiJ20DoHt4eQZCdxw^z>IWNM1xco(7F^Dns2z z1{MBVC}qC^rdhnCz1ubuCY2=Q9qB~nT9vW!+On1Yga$S-WzmZ&Tg;XR z!}5#5j0nae>akQCG=bL#n|qz0fP1|y#5UiRD7ekwLC?Lk$dHk4?H`gt%j9QjjAF7M zTX%qfU>yUA-9fn#DSm7@KgXC@3GG?RG=8Oy%Xg}z2p33&@cF#bBiyI}`(5E*I`o#tGq5>Q~`!#zi^wt)svuCKGCBz0cLk%cq=I|?jt?Ez*t zEj_%$$!1|K=vVX-U=#c~HG?^(m>`o!C@}8tI};0q3_vMP$rXNE)nBkEfL!G)(NuuQ zk;eyHz61L$ng>(KWQ={b(vV$YLBL>do^m)B4ab1$q;U|&INv+#wW7#ov6XeQ|8c#R zPg4M@o~`WvhY}x9nI0OkME}@|j+o#wU4pUx+>Yd9OirqjW5Xp9j%Lg^I8B0i%lS?y zdM6pVM-~?AtN3d40;HP=)G6xMXuDo6=i^vTcxV6Be5vpon8IeJqDz(%6%B60r3`spWW$J1iAXKczQH^jN5S&pNcv2HqW{IwZ4ytv4 zr4&Q_ng_lN$W2hKSjd=^LVJV=JrLn5_hJdifJa9h_*Kz$KpcqIw9=0pI>~Dwql(nB6edhx>vX^VVs90(a1vX3*R8VoBg^TO61K zKIxX=n%(=ybWgG3=5BET?RYoAloFZg8M~URVwOfTaTG2r8qr`CyVTP>$o`gM9o{za zoAP5~2@|k_F}S^P0UG1tNU33a*F22_hzq3esIZ%(%bsFD=7ANiW&fJYk+e$vN_~C~ zoBRJgro=+_>b0xu$|YV|mHJg)J9ue@DvgTA&aT=h&JJBvwh3QGs|2%vv?0!GHmjvX zx8iu^uT0s3<`e4o>8I7LMD;ZyI%zT=z-Y<{T~UTMmOerP6ucGIoD%lRfQdn6x6Pq( zMWX>rpTM&u*nBd5aZ=7St-(Ldb}4b~vJ+X_G0%D^S2}DIaxzO&Irn#k;l$)a^cgYa zC+xZafN#c;FS5L^h*i1K?{{YLO;Z3u{qN+T?_X8n250LuQ*B#=_Joc3;|VshF0kE& zQG}S2_58hy^Vj9%D1oYf)+sMnGd{ZF#OF#x8_=J98w$yTIZM#22W_w4-8etUG)BFm zcTHL^tS2w}6CjPqQkR|<-K;YQmN$b#6$+dTh7hefwo$wK`h19VCuv#-ys}Rm7;>^m zg*gSaZq>{`Q!RK=sEwDzJ8Zv8b*;sxt;jqIzFyK^?Ga^B%8X=aVyqEx-bUZowJJPs z5B|ei-T3r53`z8aXiXV5_{iu>34{Q4xU=*gieswmM=^m*CMp0P_&axM8sDT8k%e-SFUpNyiwe4{Pxc-vZQ1e07N>T4n3{z0O(cQP-U@?IE4l#WEX-W3~#!6A&T$(07#VrP`iPwKT1 z$PTnFQ|99w%C{dD3u(`@YAq1iZLlK1PTg`4blzZnP+gksXwo7^Y<@YdCv#IKqg!B+ zsc573&70-W*irvzG!8VdoT9!;4Ec>M#CvgR$PMb#`X{)d5l2Rrmd~U-jm@2iDRZf7 z<~dZR1H%O@m^#-#m_a_RrSMwl2i%b=yo4B5d?97WZ9{XtCq#=jH4!FjIGv1iI*$pO z8YKO8#r*{UFL!s#h(h?vlc9}ffdn~)3>p3$8W&2}-@rM^7rS&zkGyAK1&aqe6k75i zp9B+ZQA^y_Vg2h#YI62Ya$y^Rz@t5?szK|(xry-Ds$@M{gdlR1KLS0@u!Si0^|geA zTV1}e!7RMT=Mfpy`LP^@m2QgpqH{t(l) z4-hEyor{N|r1HfI<7+M2mv%ER9Z!YIi09^V-D#BJTRAT`ys^-o@A`L5fG3!E7^}#T z4nPQ?N;szb^yFVS$+lATuXJ^3UYn@l$v-agcKcM`&oLXNY^z{$coN9yrpw3n@7&n4c%hQPZI-&W0V;Ae$p}p-J8e;9^ACt zWiB`PF?r3(ecgkQ>876`bl($O_~zp}*G>#fpgL+9=(gqRdvu<2TaHaP(QsXZn47_N zNJVv&!Dt2-v%o{s_{1Cg$7LDLj!LvJX_u!J zP+7V!PKsp5@h9wfHsG?0{yjfs{;CU1*wy(4?R1pA6zp0ta52T~R>LTq$C%$~`q%t& z*T2d10fCpvN%#)v1wTBFG7SYzucYc1Xm6t9Mzeh%2T78emNPE35H`3F6@GPxg5c2ft|zRh^+fQTioTtx^sX4OUqe24^f zF5V}4rx(9D&!}uh`k-2mKzEvnwKyy#e$4X?3IQzhN^DuZm(~sbuI}z`ROqssZhFI+Q0K*Ka#o=DqZ_U&VwQbF83b}5?~tBr!#kI5n?_Xf=*7#-OXn`a8ct-c z&8hA?z{F&GsSkoW-UMc(9M6kg_J+3T;Hoy1| z2|xeNEw5StX8Pd+Fd4GYN{mQ=8C^{d_B5uRS{>jdD_>LWtN@%mX3k$|zZ>5=qFk0D zB&3cnl91Dd@cfpiapk&E^bYI&k0S5u>k%dI$l86eG7-xadAn+9z=|Mok4v|jW)lb8 zxZY?p#6!&yh5kcsy#WcDNNk9gRX+7PqdAHtT+oNV{pzJ!_q!*W4k;zp;zhm!tR zivGrN2mLmnD;8JZn{@=W-AHtK<%_?P6SpR&x`SxqUgDtOb$-_-Xj4!)PI|pY$8KV( z-l-SAq3GSMTy>qv1G5MbwVn(4fL}TVOGkDf4+q`&s0GF>b&wxaiL1EX?HhM&db=+8 zoT&)5d@kN(Pk>7vZq{Us?`n?}qJ}F6AN?+|!3DKf(&>P2QH-^3+rdKo zlJzyn=F8;APwNDn2mJOQiY)3`*qissYmVBl z@AL+L5t}wiq(5C^9*O)~!;Eu03l@_k$)QO+nt~x+np?A)Z`HMdBE;qm>Nf~a1?!~O zx#~xLb%FK$!aKB!(B2v||E=^C+uTe*MGH|rm$nFjzz{w3E2f}o{S(XUquCn56?2M2 zf65S%y|kg`Ze%DC+=)$=R@lT{T&N80) z{UA#PQ;E(Mn^8(*hB`G|fXq@Rvm4o+sl?*5Yd?R;JY-4J;&}I6!`~rIG!habe~*}p zDQrxV;!YM4ja}s*n2+}?9I3d%*=#7`_bhWvN@Ry^Hb2Cd3aHTo;2XvKk?SRoZ}#4U zT|4L652hr+y!ln#Hswk(aJ;K6 zd$|aZt_m;mk?gP=%&urj!1>!%wPiL~kgp03PjD$Nz4-cD+s}6_3z#gQD!_Bd0<7O< zJcRk=Wik)ZToKi_4zSFr45S_pC8Lxas-;&Dvh*eJuwsy<@6EUxmXg5C05hqNU%)Z; zSd{abR2Djcv6}hWP3SXvk7zdstc08yE6`8Tj;&C>VE8(Ey59LwC9mlFYlC-sPMVc0 zn!|X#@ZclGN(o!{RQ)X*PQ@|o`|27As8dfT4-C+$l5%m{tydBa>N4JCZr2m`F zIBRS#EOy)b6= z7~2@zU@U2DWltp$N{oGM8G|gzmNklsP|A{+X|)xiB2&~PI%vpiw0`K-887~%Ue6y$=-s`t?RFQL!jUVGz5b#1%-ZN}+^2F~5W^0T!9V@|JE+`g#_1P5X!NaQ#GJksCs2 zPrmc0PLHl*yDm%ikY7CpD)E>-)X&q*EF}opjB02*XRkWCL%`ogh)JZye;j z7LsZ%Gw+D3LOT0Nov>hc$deTF7YZ1Ma`xmsL_Nk4T@uTTUSGU=@=<6X4@&->!|f6y zvSJ)2+vR+AZIL@b9(UxlqW_+*T@{H6_53_g90axsSi;tbB%e@-H4|G+vJ&&?tI9ag zdQ{aVNU0M#`Tn!?yd0O~^6Vq{f<8g)ze<51jBO1;dGYxr9unz1iafLPh)UKS9g zFPzA`b`6P?E<$z9Xi8Qer7m7RwD_kt&Ixr&+P~7acmg*Lhq-=ZO=ZZ%6U19gJuIQ+ zI@8Iz+$4{+=;t9t3{)@BfJd1-?4w5ZNC_)7y42;WPKH~d_b8Ov!YdSVH5C$Bn;=%@ z&<92CZBd0WLik6cYjVmTsKEQ9ghro{O;_CKru6r}@u9h;sls<($-EbSa%L`n){FnR z$!=y9Y{l_LX-RK88oHoW1JU_(#~zu6`4Be4>V0cA<~czXJ`qx&$eC)YzZ#>yVY6HL zsGa8%;CYDG{5#ZUK8E9RNkN=<@BKS;yYw)MPd1it67_xDbJ|uM?NtK*I*jS|N9Iv) zEJN{nu}Vr^(6usD-@e?sPyMl=Y#7~h7JgaGZ@2V~72d3;E&p6vjIhjKmqtW0fb{wae&9Zy5lL zyaJrDHEJRj!)qeqSWfWmxsJz58AD;n<#{~MhvR^Gl7hjOAfLQ16o9rQa8 zqQ2F()wO! zn1JA()tU5Zf7^k3X<;)DFB#}|FY#-g;_dC{kCo={na)tNKR#XjDl-a`M^eaZ;;Nm7je)h%d5RdU^=(6zK`**;ZNRf5LvTcT% zbje!w^-JWSH-)aB-%0!74EZ`( ziymaH(35ooRCey8247*ln0@m`1uVkz#NKc`{37yB?(S&YJG(Z)ItD|G>bE_zJPp6w z|6<>@1jM~8kaKDnp9(Sbd(INyG04ZR&Bv^5%jAwPpb>ZI*vOj$b2>8o{9i!h)UJaSYVDI@>!3 zr}CLFK)j9;BolI!9{--hv!KF`DNy8mG71a9@O(=nhqq38yB->6vK?`foe~}GiJz7R z1xum~*|{%QcQ_eCgwZo%68TmR@w6ho>54=#@}oQTi*?EiuK;<3X4q%i5iL~4+V_VI zk3USjIq|ueU`1exu@v1AQDwI-$s5mb5O*Jhs9P-$t-x((N3?~a@d-Z zE1BW^#%CjO^w!OOPgt6c)>nHgQM6Y_YtyCUlJ4%`bDQQuZXybkQ;#PZL_>o8y{|dJ z-ujrtkg*9GAj13Gdycsf^U)T^;f0S5ncI&P`jN2iAQHNZ4JeXxS-^oT#3}2qw-;L? zkE`0u*?h3$|8kBzu;-38G2!KPenX=W?~;@)NERukBsW+F>^lH8>?KS%WI%Ju zRP_L(3wM&-kxxV1`D^mJ3IyzGq7VG}kMC{&XweSwNZDUM8~Q|*UOQX1Iwg#_u*7N5 zg50_0k0g{XDd?&^-@6ZN;3{FaPu^bMB3-N9u1KWC!47-sW0|i@IKR?njQ`jK6Lxr~ zBI6CHu2(PC?I-$eUezz_4yLoNZ(&DQ(}207+hpM=oLD`#aJ`tu`Q_lpVwYL3j{M0R zdugUHFcSFD2037#d^1((6hmUJ_ZTZWvgKvlebh?Dga}6C!Lc3Cm;-r;DN=wfV2CFt z20wBCn^0H`(%1`*mVhmC^QS?#PE8Z!KE7Ui+Y^$-1DV zyw?PQZk*GGAq<+WHht#xttK=O3{Haj)aojH6!LAId-**Y;QVp!MF9g}RNds;RJB2W z|26Q3S7SugS+MV(DW-y1;9o!2+1=^^TK3_}RF4E%%VLHxNA*)zRnN#dDBNhZI=^-P zt3C94#%G2|+UIffBzyL`P~H=)?EF^1q0+>~k@dk{b~p5QAu(UaMr2tEmqCo>LM-S@ zlEkt=`ww*K`3>Ao-_6hSnb8Mie(ij*q*ZpYZ0K3Y3!^;JMh#MMJUFKDtC-K)z3_tLB?eYu_r zrIvVauA!&iBsZ7-ek#yd=N)KpAh9M~>PwiR_EGcRDWqh*Q9(lC?P#1G-qSQ1m9c@^ zt09dh)$IU8+cSA!oeV?4uV|zfQ}`Up+2YM|DWE9b!-jWYI+L~X24n(LDh=e$&|3yd zv^BVjlYhe5H+oA3dW=fx*qIrD6 zJPKdcFeaj)PeF&ZJ3AX;8b->j6-q%C?Qv)GWx`08#`0FD-Kt2fHyeMAWET>ve|1!4 z`-$}ba1cjAx+jGEgLZ@L@?lG4cNsZ`lIUQfTHrlpw;1Td1>ODh{Z|{4)|DCeK#OYg zWHaA8!yu+l(Z4S`&#CW{=C^jw``t%HuN;sYe_ZI@E27VWIZZ0<%76!>U25(}?zYDy z?8Y!oR2f++JK?dS^-n7t)Bm zY84zo`8s>q>OP(FM|8nIRlZQZFGf4>( zq(tz!IQ-U|d)LIBo*&^<&^gWJ4B5pEuXCeL?HbLQSd*%gfsV2~toN7E@jinCi$C01 z1n4Pi@he3AC^ap|&kzIQ@X8E>rm`XavQ&U)VB)x1G=228eH7lroKi-saV+^3>JoUe z#=BSMl6L}=PNh7Sr-pH_tLz*v?dT;|dIeg0cqcrkIoP|>AdvWuDu6?retX9=pu~(p zY4i)MGrCXM_w~lRl}abS+T#V(-4O+f#+ma42jbS~9P}xy#1<>~T(R10W9jR}Na?bv zEXkOU)YBVHk{{>UNJt0sG$WGRWN(xbA-S(TYR=y@l4rW|`q{HU)*zqB zLS@&=2%XuJLpSj)d*;A;MptMEz+S(i7=@Z5W{m*Vj8LCuuav|6MVE`>9SGbEOmmZ; zm>}UF`-Jokyu88`r)apS$yAan?TPcNh$HHh4o1&O_+IY)u8P^lN~4B&Q9l3dW96Dm zuzm~=Ry^ys^wJ^JQYseJZsh6pV=ydJ=bLN`wptJ>pP_aF94~uI_T#P~P&`Do`yGZ! zbT{6$gM<}^grVfuwjn&CLZCva2wNDf;BLXqw@u=IS9%GsR3T^EXU~U>=c`6@;5?5`}c`6q&3V0j)Pv&mH zvWLQ&)nkataE_enS00*kUhR}xpAb$9t9Do={v~$(jW&RLb`NHv0ZU*kGHQ}jY$Zz2 z~^}c2>d|naR!5`N48}V*qF#$h3DGFBJxb5ihB2 z6xh4jXS^7TFr;_5s+>SE2`_v@$pwS$XM^}k* zL(}M(vucu zesPCRTy5RO{Fc91@buFKf<8Fh-9ejd*h@n3A9&1RWZvOFafi{Sn64gunvm;PhZzO3 zI-D?dgw-2U`hV!xzgKo z1&#k$j9*!NE21fSVK8q}hKZK;0MxTF!j=BoUPJ?hwVak882s;l|Ms{SYI^Ka5!f$_ z*)4h`2K+PY?}*e#xwS2@&I5~|kkNRx9;i>ZY>t+sU1H9hq)Y}}FIOnMx>4*_@(gUI zItb<4KzJmsGB3M~d7`wg&|8+TvA=d}Z2LO?6>V$ldBNHBLz>V5JkBKWMOZ1#Kzb%# z;UjX9Ds1>^fRim0j>Wqsct2wqP{gjkn4}?}iIXSn(WsrQZPm8JFBX}Av5vilxHMo) zjR8};=kj-yMF3kXCj~dHwqH<{V<^iVi2V6oBT7a=$^|Z{2F$J;XztyT!2V@joC;u4 z0~XIKvD6#D_n#Ft*_ES0%NkR`tuHOg9r>1kC zV;-L5kM_|PvJNBdSpB3r1`p8rEcmn%s_lY7oV`3 z174JV`nHsDJ9;rD$SYaolcKRza7{Xp?yY_8md<5@NxrAtcZ)>Sao@{x{fMiQNk-=m z_kTWpYX!Vrtf_~pRrF`S3_)&DMD~6*QP2$4?df*h*K<`I!(WiaKk3^(FaPj<{wV*P zdQOr`Kt_9|l)*~}$q3LvOYec0m=)v+WR?>;@zgl@n$^kk?^z9$liDx#S}DvdF3;>d zy?lIhhF^Jb8R|1`sBxA_vE4`GH3D$)MCk4FY~F{gQs8A6xkDfo_BrMttfq@pPTJu;WaNr%$>nUA&oU- z!^?=u_SPG75z%ECo7iu;Ke)7W=kr8w?ONF6>HK(r0|S`=HAa=7!ks7 zb9wOJ+Z7j_f)g>Xf8IT&uOag!B-G>VSd5Rw+vrQQZWU{bao)bA@B>+ljZ-2q$j-#i z@yY7%D#c4wHi)fMN2{kQ6_JauWt5_K=YPiB90 zl?vkdy)dwvRW_|Zg~3Tub#L`JQQD-GoMfiImfUNj{Iq&gAZf#I6gpJRw-8rNd?`!y zPR7PoaveCr0-M37c>-6oV)?u*U<-%}w*dW-x>QiS&r5+vK_zJ3a>jp34wwj<*nkSe ziEg9AB?8yEvLB~@%ie5m4m-E)E7FF{v$SYJu<8f5vtrUIf^}#?-{sdMIv*~9nJh6Q zOT747{OGSb3@S($xqol4P$MvZcv7M8?fI(wZ|U=mZxv`YKE=Aw&Gw5Vp5pr#H1yLj ze-HKZG03drP9dmd$H5p^aFwgH;z{v<1#Nkq;C*%t7G8GqX6*bQsDX|j`ZNz*p$~>d zLW=0nT+NjAhH;x?mah0Df}Pfn{hvtN7gh8Lr%a07{T-)o@1yS1KIhYpL0Vm<9ZCuo zYv+ag$T=z=gt}i@KIUG};#J|-+Ia_B<94k92CiEvnCvOWt{Hx<^TM@WLm>-x(gp3R z;FF)y&wqeAJi^?vxi9wClk@TVUU6q$eme!3MU8x{KhEgANiS}Fh!VUhOyG$17iI2oq^OEvKu4s(XC;GQU#T$LwNv4ZaO<`ke_m@p5Kq%Ms_; z@?g_Y4!?X`)yp9QDN>E^@@F|#-BC*Kay9nuzUy=UM-z|bb06@COLf@BJ9Op40OE)> zgU$jAO1(i=p3i+f*Tx*6Z2dmQ_gSBw&8hYN)}E)5gT5>&&cS}4`-?Y;w{(604mg2F z)S?qJ{k)xm{vyqp3w!22UD(G|NHO)^kYLp>zE5GW!~rL3z<9v4%1&$mUa4@Jd@#5k z8{LX-hI=R9C0>|z4J9tXQS%B`vEaSJU0w@8OuE7^ceY_R|B z5)+3FR>4z9xSFG}0o7JQ*bXDKGiOJekblVi^RVLUiHh%v?ZMnnctJM7!(HZv>thZZ zGLOF%3hjJa9GI>&PGb=R=ap z@lj0w3+DSf-#TT(o6`?oJOEIB)oANc{sjO$5kR-u_jkKy8&Qurj5CyP>T>0gf=nbb z+`4dv)!1nFrEynP&*3Jbz=k6LRSb_Jj|L^)Qa3_Y4R?o%?UybwXEMT(>o_ZFOskQd zMM!JN#_%nY_75F_pL&l|l;`V0h*>?6FLunKhK5aP^|44oE8^FB9qPB#Nc`uTV6atC zC|db*ko%ad-vG`G@U%XmE3|rNY@La+{75_@jjaFdt4y)cbOO8~?NNnznnc8{bi!wy z(2uO;<`6h)k0T{Jj3U&60fZ{ez<38P$QJ3eUyp@Pp}C+g6-XGD&eL7d92eRLYBiQs z=~EiT!e9-3cU269VNHCW0z4m+_R@E*8iv)Hey7?EAQly+?`*K%To-@!b{>`mEq!Os zg=Gx+Pw24`kd(dA_H1F;c7XVnqaT;H9dKpibkH`I)w^Z6&nI4|nzC`am+RsV+w$7? ziv`7c3wASxcvx3@od8dO5d&>u+iZk?;QD!r z3cVMhPq8_3i8oYW2T%IMSUV8Q3o)sPqCs6L-O?&($Lj3KUkUyTIsT$B^wzg=G?yJA zF|`!{o4EDiQ!}xPLguF1l7u@Gm)`32cuv1h;g1H56~Omx%kbW0*FiW}_uB^C-cxbW zW20DIUZ~)$|7X*c>2&nlrTbl=h<9>biX|$DVmLzqz!pL6c za>Lo%*=a2}f8aPWzlEOOt2UcXXbiC;Vd70iZaKf5$WiZ1NTKw8{cGk{pu)^CM6wQw z6f={=3h>>K-dwcry(Gd@^R;&|Z(X|DKz#j%>t!>*U^S=$=3)kjgTtdN*h2}sS=qHkhpi97xZy|mt} zz`Vq36B{K^j03JNE#XlnbBZl3dJAdk`=4%D1SgoDbNLu?P4sd_Whnf?wYM}sSiLaF z_C2fOVB1YG{&>J$YbJ46_@w@|1l4C`rClE4F_)KZ_vdL@coJowRwbV*oQraK@S@OV zKlhQ+;!^&_%>4_dj{dvPWct@(!PZD36}Tq9Fdg1(KcSacd-3qs{`Ti`Y~v09UZC*&Fr-lh{Bh+Yb~I;#f8FURWzOz6kwhMitqO^CYrcaD zHVWG#X9G@zTTo4NWb=M^%_Rky%`Oubwk9y%3dM;DIM|C~wB>BY9fu!WCPB}F zCm&@bQf`Z@m|Rglj{>{8HRr&r@XrDsglGL+c;2%axmO^rDg4RTs8c74Vw_H!#Den3 zA6CW}S_5|e%0~Drx|v1a%_f-8>8KDblDvFaR3lg}<#K4p&#z{k8u_aoGthp)}}FDG!_Lcs9yR7qIo%aarOJ&DRjM02C*o01Yl zMb^F9@w*D;yoiU4BdMR~jbur*6c9t&kJlUk4X@czsqq^I#Q%U-VoFFPm#-3REXf?E zyyf7g1zl=)KOmT7_;Mv7^=DckV<%-Qx(Hs?Gtuffs!iB0(_;sZ)<8$ew9MSwIg~Lr4^-$T=%>rWsNs}<||bdga$vm83h(e zNms6_FLxJj8t{^WluMdwn=<@OLLE zgRy6Gfjq@NOdwG${OJtkT-*u7`i-Be@bJtN>qODg{*`XqH7Mi7k$+!eW0oFUNkB)m zqNo=4m`_LSaxhk!Zn-gZA1}q(_b_6254c(!fUlQG_=DC8i2>M%`w34b;lN|ZPYHK* zWqW5ty8D|?Dcz+1yY^B2V43;AY^z`I&pCL>HtaZ5BI=9n!51!nrU`L^0U#|aQao#>>c$9dx=5eDBH^3u z?Q{wjX?vQoA11zJ3QV}9&+byr`bl0^YQ!f9slwxGsP6+pPNWl+k@nt&cSMU1UpYQ( zll1z%eHs60iI85?aO5+Nf<6zI*_=F8C<>>CN8dIAAu{Lo2puW2jFL{1BpVrJla`B^ zq{*c7GiPiN@f%<}MaOWkELwH{o&A{>;8*6=CNHg<-qhJ{$bc1r5zFJ%hAU7z*CH3H zKM{C2+8kil8eLezp0J}`W!TKt{UC&0u#f{~dv;n~T=`lKNIEt3mD`kS8dx@an@aV$ z@DgzMas0s1Utb~$gw8O*=}Z)zw56_R@6&^i5*Nu*M`W z+rg+kzZhS7;4yg|xvUAB++L#>hN{iV84i4EW^~EaXq7Dt2HZdqve0Opr@j68K5?7l z^2!((T1>g|rY}nFA9yDRb{Ydsw0o&#f6p$?F6xGn0Fe=qJ9xpH#oFPVv98`bgVo!*M;_#&J7gS=b6OpD2QFVogHcxdWe{_qWGLsfP-a9 zBq0=W%l2u0sts2yiUOBgvWI?;6bEkP2j(^RHp^OSJ9cX5bm+6h8_L~Z?wh&GL==gb zpkshRa?-~qSS3UQsvTlP&FJqG$J9(DvKk|Q6H^?RG`ShzI3YigWrwlpDzAn=xhAeA z?6%T<*SZM#+|9vz!?NmIi-ld0dFMj5+Z?DIPtfiZM3&))4! zjW&W?)rb-lZ)+}yH|6YqyuaMrCpLQ|lb9J0n%T2TST9%ELw+-J=RvtGxCEtRl(Tdv zLwtD?mU1kBggBY2S$Dy--6nh5IYGvv3RMlB4vj>nO6)z#^7b_ppB9^QBse~DbfoVM zBk63lTlYY(UJQz=@U{18Snfp#{~PKd9ciZk-0b#N&2EBw7pFK8eHYobcW}99cn9ZP z_#nXCe%NY|;V@;+jlQrJV3=P;JUJ=dxc5-v!3zuIF)yI7L6MS7(GUEjnn$P3S9!`| z^_TndpOrJkyBjK*d(YNpxaOB_wN+J$#Bi(hjJ~oNPrln3p%YS9kDK9gcQ=)f4l%m- zT&(Pg&+ge~qHSijt`uWDg{-a7zkuVedbV!ptwSSD%!F9)E49~u8_CM_3X%Z%E`T$h z4$H45lKTU*PTGTyo3sd-p}sTSc%KSn)FlG}A#?nbpC3pBSJ#j#2SW4cB>%nNFmY2N zTQfH*L2UN+5yAUdnm26-+gkL%;+RI-?enP7Gk5>NSA6Wu6JYj;_Ta$W*x9ou_}m~) zp$n%n8%mYyG>UP_+!tu+BNT!#c79D{D8|kuxY!%(Ej-XO0)59}89rMO&Ew$;KYt~e zCz`I>X6*1XK1vx&#urUjHC=iGmB0VA43*s`Ix&Drj+cGVo3Ouyn=ls7xjAqv?y)9~ z_0}-eTYNT!yq`)JxfnkY-7mq%N3vhh!-CqB~#7O2jClSf_M}>+aX9#}twGX^qTqNS2 z^1Opsk=6F?V}U~<%I0V5#JgoOOwz!5VTH${ygOajK($RJ)_t%E2a(6l;j54Q)n-su zwlMSF8-tG$4_O@x@ptlcyM9jfP!0q0!sLlp@kXtWB{(v_UFH?|w}(%mr+L1ob$+IB zvp6&Bb{HhUcG40YUUV$`S0u2pUAcpz>q0L^y*75W^l+)INF1Bm!X59vlhzdPU3q~N zm2aHrHU_)g6pK5m?HD$dc}=}Tl>Da_dW0W%c5Y@$5wct4Sy>a-Id}cGjBf`!p=}ch zmo34)*!g(2%lP^W&@NqNv+O&A4y(myg`a~SjOI_%6A3Pk&hX#47g;rX{}}z5TVQ3# zREPu*xL9aGugjc|2Sq0&-$s5^S!?GZQn4d5=gy}okrMe z<0!G@Ew#MU@|!s?g&#F5cBG6xKMipF?A;@aIss#I?UDsEHuwWKq33JM=tD0xqpN8< z=T{|i=!~NwFP7CjJqnv^MFY2L<+8c0$DOGRhO0QLMUh`iLax_>q2K6P1eF=gI39+L4qSTs04aW12A@-?PNp_GB`<(n7oI!UsWb$`mu_@eB z6>=0_{0y1M(nd*@=~4@%IQehEE( zicFJvXsf@|pT`<%GF%#{ZjHzCu$~}LV?N9g)G3p;8e`n?(3TFdsBYg?l;v^>kf#gv zvDm^~lm)j#M!9lhSLMcOtOc=hV_@5r>s$+`-{8WyR5~5x2$J-FKn52p1g!xLGMC8x zyNV@GR0qm~XXT7VJO(anh7<%?M95;|4r=jlD1Vk|$1m#lD}7GzuS;yUtrGM&CoH7h z6)Djx5QWp&)cfZ`FO=8U>k^e*`Abx0DaMP@P&L1dSWrqxhm2z%SS)rm<2TZUn8Tf3 zxsYQRBelw6$?6DVUY5R}`>7?+#cR^8Wu9s1rnsw~ldPjzLwJG`1d97;+2i}_U}Zep zyH9p$q27x}4nkL^`V*Bg@wIw&O>k~$zJIM=nKd@0ZefYjRAH^f>N=k-?S%E?j?n4b zsBG(gdUkdyOLib6uqS6JE3AMw5aJ2tsI%ymsb`$sbZ!F2313e>XA%yGZg*33@*nS!7OYP?mFdSihD%;2)`itkFqpeY-j3Sv+ zf#a*J8Az&`l$t5=+i#3@E4{Kl^DfEDtyfg zzIGil4yMY1&uOOuL~B1$asTs0V+8#1rI`oO0V1*3R%<%W21Oti= z>Q2vFrk5V%k$IyY9%Bc9LAQgs0YhN75j-SjRkw)$JaC9F8)0*0uTjOwJGEj(V+emd z{YO)LOsI<(_?D-L)++ym%TPcMv{~Y-$N5*Ww?nr_j(R4;2j(~~fDr3?P;1SHkVqloJaL%D6;-GOW?v7Uf*^& zA6&(Rx0K{@ba^&-vGJJ~yPfoJl@& z_kIm5L`zHw&Ea=^P@7R~hnEb5C@A+eAfK0Au;}6Tt@NLvTW9gM1I|W;s0*~yLUbKt zFIcdlRFTSO?d2$ReAkG-jwCL)o$g)lNEOlQ(l{$4c8*<=|Lw4TS8q$`zKFK5LKlJJ zq~GYVfTAnl_Weahr?IN4)+FcyA?sbPb0na8L+v2t(czKs0<#1+w(%Lm2x~*Ceiv~* zN$9HZ(7B~kNI)9b_xcACqL9FR6kt9(EF*bS;j-qWeyn-oYoFIt{Q(htv720hjS0MO z(%-b0{CBklD>oMOH$nhU#c<)Sawp9{$TT1Qd-ttM!jV-`FA+HT;Xt;dPRu$qr!&VY zJD#u^Ap<+x@iF`2R|BnX`nB$hzo@igJ6CrZGb`jPfAA%9RxR&B_q*;V@g_O0f+Q~A z%L&5t*dbk?5x*djAeX_yoI*E{mppr5gf1*0eRrgN2!^)4-zYXJ$qKLor@oQT1tGh_?y0ThQ@l(X2cxSf@NT zpA;Jvsps};T%efy9{*d0qzOq7ew5&Wkb`8%H3+TlALppQ2o5?+jM+?VVjUGR2rb;+ zRP76?+Pr9axq|R`EG^<|`3F(lgI8x7s&;ePk$pY4zg}^sTd=_LjBIA<>o8W{M6E5eLZ<=_8S z$+6X;te(R1fgHOG3E2*s7%!weBU$5hko&59J zGBWTC^d!tVd_!x5-u)89JH<)dGhn>WABMAF)HWNy2flX#EI$soj@Aui`E0A5;#BHE zQk+Ex2QOt((HZF#WND7e^^^t}%P#ohwZ7X^^DpUu&}J(tRQ5~Ay!52o{^;*lVFwOo zROg%apY0RXe0YK*o^-i6BY#xUU@CcJ*OHv9J(O$%-00pDE6`_ncC+tLAa^b)Ir*pW z-wKrt31CS79Z2-OU8ByDhy{-wk@}nL%2t&Js5D~gx7J2?`_>%)u$A)`(coOytkJKh z!)l-YQBFYFzrfT1A!kR~&96AHQpKaNln(td=qILy8FuuOq2dm%hBoNreR#gTv*EX{ zIW=LJH@YtJ0%Ay;0=^yo{hHssm1(_ZS*AmBu46`&?P|}(XR6*!SHy(N&J4N;nWqWg zpW=5u(tvS0S;My~q)jqVBSZ2{{+yA2BN7TdI(^PNZ9l62b3=_668$5e$*bYoB&$b< zBZ=q2S4X&i4n=7c9P>oQOWzPZd=^n<7H7MHpcq0xAgi7YhmWo^2zPz2AP zYgfE7C>0nuU`m<&{eBL*z8gz;5K=R<KFF8|vMCWzpL{cC z!Y*ADaOrJ>ZaRv2yQ;#?FPX< zTYRnWks-7%kFOrEceP^T3gxW3)SV>!!Q2Z5PIIHk{^bb2AH z&YNRWo=(p`w(aa*Rg^WFnwnk9cIj>C(|hRzNlB-FGcI^VCWMBRsOHIGO456zOt4U9 zQR=p~1vY1D(A=LZWs;3>C-`U>zImd5|DPWRW->A~62?5B3LTM%nYvJxds^cOGy%#I z025i2%c_q=49Uu{bb2~Hk1eawr-Ym}*Ud ziw0Bkp`I5(Mkr-6y>%#%WCj6ZC*rLaOWz0=H6&~ZX3PksPY_4D^GEndKJWa z3pshUD@S;)z!Og~%(gV}mjwb%`Ecw&pmeZwbDsI*#z#aOmTVdgcp}~5uUe8ut6Tn$ zRkNT9{Ku-9Kl&f5X8u*`;>Z73HQN8NY8Gu5`~G9qge{H!$Ewj=lK78Rvy}56tET)} z>3^&m-0~_{ov8fG=M|16sD2TOQ5IA`zx+aDTfnwKts46Y*fyvYhJb97vGN7J&358_ zUIViPwQ?^#odne{@4OPwaoEwjEr*P|D zlL0=$*MO3-o1!^VlO99UwlJ`@G>OM}*2j({W){vEA3N&fX;R)j%vD?(k;cXq#`rr7 zD||#_lZDbhL|FXP(SFPRwr&$&I`ikSC!x%1w$;<@&&+BQpw)|cT_u_A3u!b>O{SN`PD4Gm(=rm1bg{WyugcdUo;o}`V6#tR+7d5H{U+|?5bZOsavU^iLaA2pvxZ2w$ggiL zLtOS)Z6eoY(XLgN&f|Fnk2A$K0gblOp|A_dAM-U(#dKH7nLZ-qPC^@!tb$FfEYhKf zY~n*2{pi`rEOcwDcfuj z?KaRSJv{ZOgQD}kkvZ(9u~f66@_d6;BF9SidXBwhivxjN!@>=J1eX+m5!*c}#L|Mj z!ml>UeQ}1LJ686i1BEq9Kq*A@`e%ZT0j1;>QyBQVTZh$66nFtk7_^<U*=TAIl_PRSiGRvuLaMbZ#cx1GI3?JY!TNBu(21?sU1ej!m;U}}<1eaf=G^(j=g>!H zy1tnIBc3wU0l{v6a4^+p4WqX)+X&EJ1gIhSF}#;hYzW&wkW8jv9rK2oA(*;X1BjUn zI2Te@U_uGpVMn?3PXd{U9adgxKkWXN0pj;@{J=T0 z2ng9?B*XK?t0@YeEslVlh(4-g@NN2g7fW%@;a{1?KhOB6^qw~o2{5lSVA26wMX;vs{bC7W#{E6S{B@eji&?4Ob8E3 z5(ieaXPn)C0nhzqSF~5ZYo}xi;$&8|YrmG(ruP7A9NAY@mecuV>rs<$SA4c5yd)5! zWK>b}HbR<-|Guu;*eiM;nMK4v;v}Cs+a@IJbk?>_kU#l2Q_Z{o`8REZ8~5S$ZhN%5 z-diF(lEZ*`^C2B_#|p2=VJiNH!+`td6(iyiT6_9t4Ifu-}Pg4W##^xAXAq9)Sgz z_zhYh#xK~O9KA;{$P46svE*SUfWNqhs4N{XXxMW>ikp?*^Ul@7Df&CcjDA3E)r(%xBW{reK!jyrXOmYP&(<=-K~*-3yN? zyd&3SkP`{zUN|jV@NmQhZQ8ZB4Omnu?;xIICzcu&tq z{T1|DIqzUaH~WSoryQNaSl%;ES_)O#@oS#2DUaQfMdID|lq{SB24lso}y=&0K z@&tl8aA8ngQ&raniBJ}biyaanT1t)%FCBwQ_Mc!UH1|6Vg-}EsxKX;b4Z@se-6$ges$Zg|saw zx=J*e!k`r#UauZ1oh{4(5&^)DgHsUXt%T?#0o81A3xCAUgGO}NX=J#pKes#;VXBhw zY0e&6iP-tcAw*&uvGZpXwscu)p$XhR@gBmL*81wPy40w3h-SAR@*l$56VjGlu>e2# z;&eq=${M;@=#7#}*<)#35p{}BH))Q*ph3RxI4VR->{?yak) zbrs3}MhZ=}86Ab->5yNZl<+CR`O7;#D1dI&ahZIlf~;59cdD4vXDO(6r-T*5hTd)I z9YM5cm#lVsdh3n|n;zBC+?SJNn4Wp@NYN1-{fgi))fa*FcgqX?*2)OaQbGZxC1%mOxgWrDGSazBy zt*)S=z<5(v0~PZpgpa?^If8HTL94GE&TvLJL`;Xc$5R#DrOciCQ`j5uS(i z2d&vEJH6FS0?l=kk{0w0E>XoY?@Y1DkXSDXBlZ!V3i%x799HF1&vrzYan4B6yQKXK z!ReY5rJwL>S~m>+w-L3;h8QODPCAD{dHojTEp+hgo<%A*^GpQ&UP9*((t4*RG|+h#g0 z$(YISP~3!_!+_E|kRhL)Z;?#)oj4~0APfU*;tf*>-XEa6Qy9CZpy5_~5$c!_u4G8v zWww8$JkIH3H1SN7ic=s(rgIm}U>uB3cVbynM8S$L90-BD znU#DY{WRX?pD1tjL;iuECjbX_Jh3<0p1YrcjtBVDSkD7{;s6I`9~G_}a>_i93k$ax zp*=yu0^HXqL=5Y_4*%-={;pOdhKDe$GpxHBsVq!ip4rDk>zeLOY?<|9)poV+lO>v_ zFL$*v#E;72Oe0pkshX^zSV3l$b_St#G1NBH4hgWxQolV7gu_Ix`)cf&F$)oksowyO z`h!J=X@Qny)Xs0`6%ldEL`5bM9VhaBe9*L;^dCl7Ro2A{pdE|j+)z-^u2k30Hi13)&BGjTGG^6EJ>i8d0U-|^}Q zkXR-hHsg2Ty-bHmF5c^jh!52+;p=PV2S6O8v4G*o? zUu(42RTLgv=9mNU*0uISc^p#%tb>UlNdwYJ(RF?t9=FTX;1(2bD*LdzwY#@yoZs5= zC@7DZ5DNll-hYe&v*mdqk-3(#drwYc<9?$`j?Z2P%a*VCY`~Sa$!0sj_T&z^!4X74C_`%NG=i$8a?oK&%e>45##xj~;zd`U6YFaLs@d>A+VT3sMH zU@qHKZ>6g|cILps)-%CbQ(6^z?;PE>P~P=*UfPlY?QKqS8wk15>el}mOUG=BoDT?I z#~O^J7%ZQ9x-q#I_G=+wUzOUQZ|@z?Qe{s!PJa+LM-wVA*Rrtto8__dUzCtf9~I0? z1o4}d7xx57^|nr-|LHlaa6&B*Wdk~%sm37DkPB5L!fxYT3wE?&Rj3}+s}P!sE8q zNJ+vbge7!qG(=VAepk~L<@q8Ho)u{ntemC7BT)3b1LTX73?IEwSJ58*NHfK#Bm-|e zu|=Zl2@L6?);WRPK!mO(!Q(wHlUMS5U;_&;s)kEgKl@U4ITsYS={nU3j!%IC^9d18xi) z)k75Rz$y!M0zn{U?M5PKGa|1h1|mH6=oPu$ejn2X##G8pvT5};j`g&@9LV^SQvUH$ zpZ|IxJfa7#lnb)yfot)6bNzvDJSQQz2mZHmpl(5m|{6d8ZHCxy@HbUzLeBg$qWer4A6k?%cYRd$qN> zPJ5RoI-|SA9(PT0J88i&{P}O^{O5AGWNO}K`c8662jZHK{P&<}(OZW|XXp4z3j@)P z@uvvg2}?*<6zJsgR=0C*|0<_|S*hTnpdnXM(UBkSpU;tFy`b)B>$OfaT_W;$$FFu- zjvttk2k5jv-ZrEy{O*vOtf`0IHiryZ)5by-VE>la>^y&Q8s;>&vb1}oC(&c+%4|Lo zV&xv|KX4uKhGlU)-7w^obBc^n>rf(v$f8=A*mpdgx z$r6&V_hE-X$wKVv*2v!}@TuJPpR&jLI@?9b3Og7wpE0P!Z}&IBwAEB;uN`QJl;SZs zNY{Nh@%w)=?;mjI%OsKG$vd(ll|!5V2KmHaS~l}p8#6?2O>q1@@RtiXG7R;i?*ch8 zki{A9Ec$WKGLlgj6jM?UMd4jnSK7%pOs zW<&R59VYXMpUtVDE0boaCm^U-_wx{Dnldu7yqSuCj{|Pdw5nOOQOdnDL2EK$(3Ani z;|q6OxTZx?rlWxl?L@+XZ-U0DP~DqS=0q{8zi^^b$&ZuM)Q+(%KoroP`@ z`q4<9uyg*N>wL=fauvs&^Qtv{5!K+dXcqvD_|Z$@o*ilSblWv_aDzj5%jVXh(Y5MZ zHveXtXTfZQOk?J_>Xg&uYzeCFGpzRc_v?u7Nw~B?oJt+WAAlIe_2dwoWxs{&Jn_To z{G{~pg_P&mY+c?mb3gBie8}d!J>e%PyCV-ZJ-2)9I}MLsc?=%jRCvOM8Y_GV{^98S z0d0maJW4scQ}M>8<}u4IVS*IOz_9!HTzc`NH)@-*K`!IZuPh^%d50_fg76!irxo1z zf!U(5b6HyUtm$podT&)YV`O@3XCyHX+Swsyn8ZL)op2L$UkA~qblVME^A{K+n&Pl} zOS}RcW;bo#*LM?h2q`_t)OeoaMAzF5E3f|3IV5_$hRE5;dsDu1(PkN* z+gtRSJA*Af>D1RvdPh`L@_Pp!eKhjlOXu3Zoiqpx6L6eh9I2w~3kkmqju1-8CA%k? zcxx(oP`4eUK|!sGSO>1aIoOHgbI%SktV|Sn&T0kt%x<$`tH)n1>IcG8q<04zV(L;j zn}niZl+A3aYy)lN`K$M~R%)}@r7xZ;EgE^}v0|&R8v3GsOeHFKpZD=)UQMv#XEAy2 zP;&>RQnstW)X_ry%%&(mL-`(#r=s2Sq=zvWr=sxOY61)HD$)QuC0P*iPnT`Axs2|= zy6SjN<4r@ZJ|L5(u2v8kk5!&f`Xz9(q6%I0@EqB9LPo-2qB$xucMmc@&T@3`n1i9( za>mf>RnR)$_tkH%K7h!v*DI7X$4juU7=NNJ$p%=>^=gQy2dHjg(oe;J&aKNxuvgQ( zOf{d~S7%zCz0fpaUNo*Zs-`P78Z5z`@Iu2Of&J1All%?8btPd5T&jaZv4e<#4_DF3 z+j+Jn@D%iaDyYc1wLj;h)dnV4Hz|?Pzb1>0ft(Z$a~Gu+)Zwh-tDxkC5(_2_ZW{Py zjT>Yre(~c_@KyIOAE&nQwjG5dOQP&n^D;>`Meg_VL_n!A>DuNHD8I$e?1J_ePewn5Dep7H)*q!ooZbm`J@{Q}wbT`6OE-{m;CNB_zpo!W7d zlNnLIR0W?%ioqQYy#%%?Z{Q@f>C^xGr)2SVedWtXe~cdensnDZY+8Ea;N61IPg{3w zgYFUC6_qyWpM=lW=c&n+Y}?7AW!s#-hfojDPD#SQpADO>Rz9|v7lz+)4fGZ!tS>54 zO3F*YTXi_BW-QMa9$}?Sd+1OPjNo=KQ&mQ1b8F6&-aP$mnww5bPrrAK9f?MruiKUG z_x*FW)E$Edq8-FcdX~fvyXMrzNv18ZJ?AwUE@$~{B*Q@akL*~`ZrknKZYcy9qjo1v zTbF$EI>NZh*uR(}1j)s}*jI2gXqxfUA!=9S9B!URNe$ze+GCp4pG4hM_M)PB{s9kT!qK5&Y{|MpNf4pTu@)?d$tuhfxTLf%dNB zWA&m=s#G(pd1t!*S&R`CZH7{Ye`KFJ4Z9uS zLMe^(Q+wJaa~;kS{99?<;`;N$)0MggRzD_*Ra|@3pZyAWC4ua_f?C(( zq+gQ{RXXY`a%5XH(q#YeI)p``Az8PUR*CmF3Tl@=6gW^acN`@w5^>GTcNY&%ZKxjijzDpAKC-Jaka%oK-<+4_y8yad|ZgxLlq`i zojwQ>sw6!GZedUKUw{F8wX&en4Te{%(l`U>$6DXSi$ONkE*xDg31$ymszG2n$cmh> zJEP~Tp{9GYr*Q<%gZH=M946s%{$)M1)HUroE_YIc~4alMow5CmGGRnBWV&sSJ~9M zdoR}uA+-XyUtF3d1~@WIhs54x`fD)_k$|vBMO>a=1Hk9sTT5pTf%5#aUF|ygrgm!?PL+{OW~knl>3WuFE~3?N9;o zEDAw8>78;NS{7nGOcg>8NL{MW`M0*p@eC2P8W1$9kZ#i;z%D-V3ZuMqeX(O#G1ABS z!cxJ|6U|ewh4KR%5GnBpnp7?UEms9?KWtnE-#vm@b2-G4V4gtOX4O!n0%+B(A3DRbxB*5rY&-EY>j}=%` zf*E@Oum=&?7h*s(1@8?Bg;evT#d!RzNGQ+5&Pvtr>E^RV;A(KbZTczP%YOKpMxyCW z;#LTXpev&kS!}(t?z_*DjDy}R?_LA{a132Q3C=Hj5Mhl)Fo z_t)?80~Vj;idx?3r%J|%&GFV7RSh5u$?zVgi($yhzCY`2B0pIn2-5i9S94ZhSt<=G zo;HD^zOA;tZ^QAxFz4U@+(SPwXpKm-|BVU-LQw%v?Z;&4NmDX!5D_xBa{rxOO4ZjU z-H2E{wJUzRX=zWtHtJp}_?js{Rg-GI#mcJxJt;>AE|IJ$nd~Q(?BXjCX93r$DP#}` z)z3-UX6lX$OYWuc{yF&U(vuG;l6Ri&Qo?9i>SLgIa`Pn5AvvqW5c4PGXAXx-9$Lvkw;PJ4_rZ)ajwewvN zZxrx9VcwJ<#m`z8@o3>KSqv6>XO{EZkWMPaZ_nVN!j26vWH1|6V zqaSw0a{bbakRP@6mQsT1fwzSEr*wH&FPo@-WOixQ6oYu6uCQ8sOy2|aJL%4x1z&B+ zwsq9S%GCG27?KUU=LwHU7fJVc+=?MR%LGDD@AW@)|ACS;3)9&4(Y7tCf>~3=gF349 zX`WeF33J$yjxBm#I!;xQ<*eB=Dt?!Bbx+Y+tM&-{2PEr^vLe;x6G3k8`cJ38wzMP} z>PbcR_a^NEDV1NoPw^{O9^I9l5b3hXIjen$>AQ(_gGshJe$KbrRfQiUF{*&)F}tb? z1HEv?YM$((XY=j!4YZ^`>~S_vr{^T^MQ^L78*PrN!g~Q|khoqbq)@_dNt~#>x%h6o zJjb+kt~y6tNNHu5hMOzt&gYL5<3QCe0Eb!ZMa)?&TSl>Q$fER8He763IXVjjK>PW{ zqI8G<4}ea70Fq)Yc`TFm8YBeR$vxV^Xy!%IJfF_SmG%`(3W0D`nR#3IQ2`>q@wIO8 z^hLkaP+awF~@@(mZpJjxws*9~$2VTu6@01tEKrF^upMZsO zI3gmH$%R#M-tiDWbBp|W0l7Ts3=yXam75_e{5k;59fxupeF9C;NZTy^yqw#^5$ec8 zeCbP7@>|)5<}jBO2>8p!YZ$$f8Qwz@Y7l#ygI7e|y4xE+B&nw&#A0;A6)lhnzhCKVr@pTbUxEYyn6^}R}58TGONmYekK{-DpgY3zaJp# z59Z#!`|o*! z(i{`UxerE&2TBhgewE>nXQ{SUJ0E_vHQz$g3BSQksD~p`k>91GdYv7scsf4S;{9n= z!0iIP@PSV*O?oz9LE7(-@~x?&TdNUXP~@*x)-hv+M}`LI01qNOm^1tEroL+A*yi}N zE7|}j{t_s|ejPszdwg88%vSs9=F@a1;z`C++!LGfTwcW!n+&$C_VmS>Sd@d1FjFyL zPgE=)kT3>|1|Bj95(jQNhwGd-{cr8cgEBYKn`b^j2C5C@kYZJv_)gFNii?9w#bS6d z#}`Meq;rZndntwmTu$ZFCZ=<-j1;6d`W$H^mOC@Zv9!E}`9+=<33a@Rig9|p{QI|K zb4ovC18l@c3kf*U-nyVoPBFc7G-!m=>DrxtEkT6U6XP8=g)fMwq=e3TP&4RWS}Bi6 zoF(cw39++Cri-j-HXM=&kur#N2SV61#lxInECMrgYiy^%#>O@@6U9l~B$J`1ikJk0 z%@X*&a$u5_!+0Lb!n&aCrmprx5nRimuI#Zbt|XY|j2w_gflpUNt7_IVCplqhwek7< zQ=y!fIn7>7zH9M|-yV5~MPE1*3pok%UOKhLX3CAeI_84~_I{=CBupQ=_u)+dK*l-w?=pdJWCId-g~EKQHJ*DLw&C)WrgRl~ zzjp(bPH!7zqq)+QmzR$XQsX(r(3k10G*xkdcfm{Jxw)>CuD22rm@(xgMe(uGc>Z2q zq{F}a-rjzlBmQ{zBMoqejK%khVSqbmE`mR#yLmIwv$HUwZ`rI@pOWC=O@dQB+lgF0 z6f|t?K`Nq?>)BeY=xqgQQ`2olUt;?<8qKnHpB%_F*BNkluRtu2yCCnud zqO?)rV;8s)>s)lECKMTpCz8TosX3JaR1@Pyp79$pNHG-VZ)~7j;acuRZcvtXPgu^r zm-O;(D-?FJUWD04v1%-$Q!bkAe&V*DwRgk#KE)!+pVrPFc16;RkFAi+ zy%6lL0&R0Nqlpf%E9Vc%^h#k&{ox@?gD*)k#ijFBTf`|t3vRE!J8^jk#)g1Z9;soO z9F&q+w1Ia;ZT!y{VkUcNY9~>SRHU6nFXb7D}XT zD-P9Tg#T)i5!s7iQ#CC?BP9H)JrmxhxBK6>KBp?(`2XpOe36D52dQ~(UO1Lj(RIdd zyaCwz`4vYZdJ3KG^e4r{M_T+li`ta$Uj}^!5?_%00PGI5jeD<`z?BcRij;(#Z&^Iq zusz!je`*H-RZdQ^OMc^eRw%Drlevxqu%}g*j5UROX?~O*xIWFqg(EezPEzI7c$B~k zB*pT;#1Ai0AmYB`!rI*W+l{AR@(|)jAMz$SAf~ozado1u+#&$ z1u?xiK>pQ>v?&9so?D>9Z)KMHoU{jv-|~QDXK?!}2noBHL0!lH#i63gYqWt}PKDr^ z`!|{E%xmDsAJ{>@&*72lmidmL#Ur`<+rEX40 z1V3TZCrBAeQbSfqjfNP=U`-3AemiDWe@it-j0hQJG{50pUFAf{({*9E@s?J;oE=0d7>fR1GttUW{LgL89i=%7`5CrC=DB%j#SkWb!@ zw}#@kT1IDmEY#_iCx|*I=bI@gauV6xTY@-~3JY3?Au)-c)z~@ct;6`fJT2fkdPB+pmB5X~NU>jmnhq=TEz&x+OS>6gfXbVmt>&GQ z0ss@kOm8LxaADobOnJbCz4kwK(JX=AEdM?3?WBK^At}x{E}WhPWt8LcCaV*(Y29y^ zYjOOFx8p{`0E|JJSM>K`X=NPlRNU0MfYzbInv(ahd;_|xn(6=qL)JwWIKQZf zXZpYG4#4^8f1SS&Dt4$&thy;d%Nx?_Vq;zeflRfp|?cf*_>_&oM-UXQ8Da2=1O(up4y<8yPqL`}nRTh-;)`5iM0+U)&7DSJ#G-l{v; zY1(6@r)@)6es4-CrFiI!a@Hk?E&tmzse+4P#{pHM&{AnnA}JIg+`vdd)qG!Yzn-b_ zGkm3yaZQ~}`TR}3 zBm#{Jbqjt5bB|Qg!9H;|;k%k5U_=tdJuS`plr zLNRd(06cO%RKnPq1hX_O^ndODmUhDf*6CT`;$g0B*^?ET!-o=j;J_9g@9)X8#a_S< z(qFf<|DRjR6M6uetd+T?GKEd>w5hO__@CE?m({@kdM#eRnj*BWh7X3y_8C(+jom!k z9(WkuUYOv?LJGukrq-YWuXS)S-WX6H$!~dJ^DfH2#KDu@F5lkbS;Z2gDsB9xZ6G#J zJa;H_RPt(o=Ti#GR}?k~jtd(P$I;ako5+XtwkWc7)vp;iEQ#YH0+&AU4q-5dFW+?@ zNj|*jzuo}S?~6NV$r^Cm$jav-c&)9ALliyA;$;%TRg-m@q+9F@pYX?7l#w7w2L4!W z-Q(ObqgA{f8r+PG(ffX)O!tK=mNQ%T$lwb!1>;;C+)z1wYMhXa0=Zz!`At8b>&?A7 zExuJq@f!2wf~>)J$1KACpgGOR>cN|EiEds~X$=#$!q>j#EO0PPl9shDP z1!)XfvHcw0%u-&VB~@(Eewjwib=gTW3d+BqvoUfFJ^5#;reE6e#h~rnnxk@zy-s*c zyi8BG!Pol-z>7)xPiQW92>t$x=iISqc%IkY@xaSQDKC;{KOlM5P=^Ir1kxZ{(d}$x z6sfabYnG)WNb__VxmtkIw)+9j5y#qu&Zf9%8Tvj z9NnIgSS|mRG&6FEIx?;3O-S$5UbBZglB+UyR1}UKY@o8Bf7bRp+x`0|gbKNzC`dS@ zuTlg)iqu9q1=^p_h7`hJm3Fs7oO5Cff{KDr@+j(;jvu8jws7#DvtdA>$&uK1}C^+Zz|5YJobuh z2vPOB0`GU|t6LeE@-*Yq7(tT->h)^m&*t>A#m`aKf7-`{n(CX{MI*`z^`r`n15R4YI3t#Ht}8NEJAB#ki%wfVO{?>!HTC~`9oMhXI{&i$-5X_V`^!t{D6brenQ!viuzg?e1xQ)xF*Wp1 zK?z}Q#NZ<|W z2tc|&NHm_8K-K0w8f~&7+0qlirC=Gea|xfiY=u5*)~J!Z#=1|J8M+faN%I}JqqYgM z*i`zn3)rBnZGZGBVAnE&Itym5r?2+6MkDg`ivFwvhO>st^Aynwo+@(TY zX@T^#lGKD|V;(vu+1;#mwEMVya$qm|+2y5Zbj``W(p3h0bWR4;#^MqM-wlNrA8_$@rq`k>6A(D)%2OFY6(@!WNHo+xn_wOOm@i2JzYE zPD)_5Do7LU_Q%C%?9DYOF$UQyoo-uE2Dy=s!C>=n=2JBowDhC`6OWG=v_Y=%(XP7v z_+0Th=+V^h{wTcs)>_Gp$tV>CB}v0(Hh$+IT+zbHHL+ z^A6{F@mL9O!ri-?VZ!S_@6&@~;yu9-Rtb!zDLg{RzVsdXW;~jjG2tYVipjor?;eWV zz&jLkV0=%;qmtYIwta*A9tT1Hw1gfSqUBOJ>b1`2f%}od5{f|UYz)rj@x79*q%171 zz>VM@gu~+Yn4yTcv+7b(N1||9&b`$x-BGFjzIz*Z^;aV>e&*gxpA-yu5XHpt*(o{_ zPdp8sBJ7y_`xvjC-Yg#v_P_tV8SmoC75s^S#Eb4z*WZj=MCkq&`s*rkFn`9g>HhLg z5q{4uQ1loa3=<~wcffcF<;`)JK)jszNoLTVph8|7e>(tds6bo+N{4W< z8=&B=aYsLhGYwupLpd0~F7ex`T>lx$GuW^iSvmO2sKTzS#CH1${Eg3S1lNcg15I2^ zfY0hA1x%)4k@q_bP~_+%JbrB$0^D)JDfKWzUaBj z6z5_m{;G=%j=vJ8Mu@7YwZKc%o0$Eo7spv#Ky~LUN$7YQxq*eQA!SyP?Lezb9Wbn^ zo~<=D1NzB>ew9Log#q9NX%m@$h8mnet4bT;B_2Qlk+Vu50PRU5v^eYhe5!|f#AN{M z3DS>rvOwFmuYA#3WU}fkHdZzw!FVlX6x*kKsL|xVXjNl(3G|06LipvJF)I;R=(lm@ ziYgx4XR5VG=@ugw7qtf|dW(xK0L!+Y^!HDnCx!oeWagoCp z#0-y^B~1Th_=r8hS!?gH0Zxnyif-;NO4t=E?a6I(36DLi2oTdBukN$$pVWnp*sD4{ zA%o8at!nLr@B&Ta4yRrT&tkbkJc&eD z?cuW*hOMqn&>RGk3OlVx8U9kURtE#goulKw4!d?2+P6#rrD@^8_3=Zd)o@+f4Gd?c?R(L0XF-|83oi`+S7{`wtC5y!O7`w(l*{2ChY+ z2o)Um?lYyjz!jbyP%==wftIo&A_b`ka-MCM7bw6<1w^|EqSx=pg(TNF>NsX@0i}y= zT3Gh|>D*G=n}-IsHZ5vi5l-!e$K@){|BAnJ6ft3>B5sn&v0&Y(5XYeIX)Qa^KilLh#+d_OyQ&rX#Tg}M=^yl-uw9ME-X_z%AJy-T;X8}m*Y zQ4cC^cd;nCq%QNqD)nkIXmmCS1V#s(2ceIo8%zK2>;6v1940hUvog{rQBrjj?mx)g zl7E6%?|_$9oM+6}J|-_k`=qDLy!tk;>d3G|rvI}SJIFjV0x96H9kN5;8Ea?E=h3eA zbU812Q4(azrHLh|;W+S4{MK}u4z*{(iy6!7lLhKBK$h<;80d_1&o@hPGlsj}%4xhj zm?0e)FWtci{?I7@3gsD`UY5>PLYHmSEY=AsZAWZgv8=&y)%2M7#iXwbCsRrsiDSAI zji!ua*u2K{o3918%dIz^Q2mlVdy!CdZr82l9pTA}(#^XgJM_c(^@6&Zq^s542=!N-onC^nK=%S9FkB0pQKb2GJ(F(?4H`WOX=!(iHv zJl&I$z{d(N&MpQvN1;D*0+Iv$6t3+( zW8&@$QrbsN{>TIc&;HyI1^>9U+%<+(ORjft8l4y&AmT~6%edyXCg-CWtcmOuH?xv$ z1y3!^Dxct0&|U=mwC1Z7&gfDfPmN>b!2kB-S)qy3ON}WI?(O^)rwa3hI)^fqS666E z{$i$sstUv5Zeo)2_%XdzpwXRV%Hbed`vFZn}{n^cDhSyUXYd z5mBnuZL+y9PYGaQ(D=lOq}YkZ z(bQ0oQa5j6n%TfR#d>xkshbDrm1?mZzok@V~_&o@iZ@&$QT*1d;2aY?u9eDhT59!CkL;qOqwRBE;Y@8Me* zlf#Z-XQBd>0`_@c5EFgnp zhT;|Rv$G;4^YXQ|vu>==wKY>I*Ieo=xC%YkC-FQMlx(ncV2FI@rdPu5QH@IB#)mfc z2Bo&;?{HFqnPj4|x=9m>Q>-KTc)5o1c4r_eXJwy(A|0j;&lF z2FH#O<7$MoQcg&(bB-;!icO29+Bq>Js=}-0QaHU z@|HDhsvN_IRKq-arJNsIOWaye-#v+#P3b$VU@p<|E6r?EEdAhpdnN?q$(>V?>--8E zxvur-=?ZLr%Hq<1Q%=Upg5B(?O$yYmu{u9u?cRr_%9|-+te8li=ANv()>K>)ME5K}zYrw@bzJpmg7x4$ZjRk3eesbn7yT1@nq^cos}Xk<^0v^98Zvyr8zDG?<>PR1c8vhFCHnOp-oIogCI zbSyte`OX17Ffs>KW@RxYwzjf*zQW&edSy3ju?S`Axs54Z!(rM<6-bc zv&fn*S8{aoplT#sW!s|JCJKJK9Is%}Z`E9D4R+c=Oj#>(XXD<-z`It_j>e zUQn6Iu|x0aukvvRG21zQ{$f|%j`jP`>6+lMHRlc@g$I{fgDHQL2rE=GEs}CAs5-dJ zR5ni*IHRf}9dF5#A^f|elRo#?PaYI__k~BM;EX*WOQhiYnbvoM8kHpU-oQnfI1l5w zRQ)*yb%$EY`U)c`vOw0V$3H=}+fGhtGe8`al(JkXn=8sXuu6J3(h3c|= z@mAB$UU9+lwYNE*l4}P`ElMp|1v(02zp}uOs+G67D?8xO&TH)d!j~VtHu(Lin6)_o zBa7`@C~n_!atS4&qZ!*}jHb=LCoWEzA9THY)sGChYMioMbQI(r=iKdvNDUMy@TI}I zE+^lV9Ldrgq9gw)2~~$AgJ+?T2kM(8h&YtFr5tP&VW41iWWp$#GQ6c^M9Es>Eo^$I z_L17Xy1lWK;n5Jz$)>uZ30lKMYn$@y^^M7m$B}znJk9xY3CMscze;I2j?5e0zGbo{ zdYyngrG6KTGO&N zn4O~(G(x17I~Wb#6dpswzShnO96ZOqk}kd_#K)z5!Jqw zqBC$KVwox8-l@|SZuekP`SHVwqJzi^rwD=dL)m9}U>7ub?=5W9Y#5lt zis(eeMJtyssqm~D_wvJP@rW~OumF4cZ(a##7j$g!tz)4gmN z<=dd0x2<{7EH{eh{f8in(n!lR9?<+StAC-OAKuAQ%-hN0#H4~toQ#4VahvAn=X@g> zP4UfB?;+e*hSYa0zlyGlA)M6H3N6Wt==`)i17iYj(Z@`p+IJJWsEq39N)YoAlD;)m z4g}Y6;}tmm0{4=igI3*R&@W_#bx~xiz0kkrgA%AWH_mg?eupQ_Y0-(%A)o#{@gWRh zBYOS&Oi>f{gk$8(68CRhRCBL37?7ca_dV&n{hr4jzAtD?|3XsuyuHX9Ip$RMRe?p) zMHjSXb9Gcg6a)uz=H|3*aA~7YQY0{!dplD?#vGI&z2+s-TOKys^n&8+ca^e0QP0N~ zmP&Sx>UQDF_e|ihrBzbt6L0(O8}KV@TrZrKH-h20!%>3M-=iR1XNrEW--2Bhs1~^kf`-{80gqD78Ty!$Qy`D4 z8`8;Cp&9W>`>f3UrOLgV-pPb3XZd?=c4f7r^&o-6=E1{?+jiS;C*AF!Rgq%@U8!-9 z&ATk9z!rgmZO1i{8`iY2BMS;JMZ(MdGs7EJ#cvKE@~z+@Ds6@}Bt%*Y<}^$PoQ<`2 zaOsE1eB$8(oYAMoS3B%Arqc>H_|l@Ia#w`Zq;_r>K4mwUfjOXL9%pE8+&8UbGs; zID#z;GjOTA5IP93v&bm1ZUJd!x{<^$;(;x&t+Fwk^=}*eBDiE`B@xKKI4fgK!z5rT ziwp*)t~WLpbAYM2wyMD3N_k5VrvMmbtoOA8!>z>P4dBYO{Z<zF9EO;%@|lmw4N-$_5Hn! zn3Wg;RLEK!5TkWflGby9+cVVLH}v=ZWUeFw>j*EhhB>fdB_dXXsfuLDZPAO^|JFNM zY6rX{Jq8{V-4nO44vEoDJPtC4nad~P|Jr2AUz_d*-fDz?(F3Z6XRsEG*>1T*Y!DeZ zpimZ(iry&fq0AnN9xb29`fJI#e=Q)409Z!xU+c&FYa`45T2|FxTUYbf4%hv)_Zt7& zg;u;G!89Ax2^{En!C!0K_t(Y@{Iy9#e{JS4LJCjk1Wrxjm7UTIr=qiic5!rGOMEWv zb2uCYuXZw>9Cy^+?R;~TdJ%lJ&m_w4?0t3&KViOIbj$PGw{oTZ>{_hU?2QV6vp&0;=S{6ZTpmlD_+gBoD{Cs_a zj+!qVS1kj}xLmHwZ~Xj=3)yt=X|$~43iU+ zdbd!z%D8QGV!y77V!ABS&g*heLw@gF%i-31r3jY*qe7(`MXcM=tu|8xhJtX}fRbL;^boc-N zo^9{V-Q1hp&g~TDeu!-DmD@s8Y8!LE*<#Fcv$;)@Bt?-_ijcV6M{Y{RbrDH&Q=-qV zsEfGbLZ$Yb?|;AZ&+9y1ujhH4^M1e2Iq%mw=XK6G?vT}XlC&@P?sb;Ve@@DtOD1bQ z(NRTb^$RvP6;AC_vcAl@f#W-B#Rk4QH27KT)zhy;$&i}VMvdcrLCT*FVie*JHdfEC ziCk(nU4PH}Q|CPI@-14GsZpm`sGk#c^Qn$W`2EylkZWr4q+AD6;6LZ+FL?CR;^0BI z^I`*cB=&u-PXFj4tspb5T*bU|!T@>V7-2$6LfS1-)#c&8nh$5_(?ep>;TvIdwzvUaMz+Jq|DAvig*- z>YN@fv~?@G>W?b_DnX`%`w9=qt|W?+ipvG1#!r~}sAAcyJw~7R8(C9t&mOmIvU0vb zN6s#(i#-w>=E-r<5;r9GIds1Lr&~19>7Iek`F}blgF_v8Vmu9^U&iqgF^|mJzi%H} z#|)_B{r`liyuqj*ePtVxOhpA$bDV*(SE?l`g9pcpMZI$Q z!kr^J+rvL1#W14QLkMT&yf5ys`^C-T;FZ3;##r8W_XfV8V-2adbI5yWFV^tsSb33O z+^&l8V%@-Rmqd}oq;jF>B(7@0W>B}9Uu>)7JQX~&*Tz*}sC<_ZP<(VknAC=BM@iWp zKHwU6=trctP}zMfa$as{SDQj4MqZP*i#1p_BEpCF+E^7^FNw6R1T>J#0ceM_gh3@} z;X4vOOLGl&(^2=ZPAI=N*Zc<_e(W+yDx3glZ9o7Krrng0i`ZKPAhc1N{qDg~CMvT3 zr6vCa_CQcaAW#t~0E5DzAjB|rR*#Xb#9FBvQ!DebIGo1da8S z<4-lvNFd{*OP&1-j^7Y4S7rD0im1;+Sh_^b>1F+b|qdakMK;aD(Ek1Fy z&-iV$SY%xW+Bn4D_Yy<;@I6%!Fkgg@-%<$Ig3g?^*Mv$zr5PkU{w-0Nv!+HN1Mo5K zP1BHOgVCh;QR!&4Lkz?TBf+LY;U}c~6)_jB9%Q`X zRiCx{0@PYbxIyTv5FCy$$(8S&^iZ$!mF?&_)jVISlYLPSNCLRWWFr=j2 zXmW*&!XCVurY?I%cuk;@=~fsX6eg;$cl8Y-M}D&#UB@$%c)5k1Nfqo;u&Qx5AgT-z zNc4W%+egrYlv3AiEMNZo3#vrYT(zl)iA;n567~-;m15>R30@^vAdr%$MTJC!Mw8-k zR2mH+9ZDn}3FGR27eqwGv%=z>Xq5Q)u=strGf_-TLw6Tj473uBqr}Nagq$%G2n1=- zbc%QAe&f?DV+$M}XJQ-`8%j%{h8Z75Y`x!PIWgiSa5#8;T&QuVD#lo&l>3v#V9?@E z#fLJOVN@nV9Ty4w6l|_g0YAI2P!`7NIV&!T8WD!^XJ9-T6qBvh@I;>&K)>D&Fr}&M z?*+o6{M%Oqt&xTCtWYL%zoi9W7F9rZNQ+9OJbvFFF70~Qb1d)z>!8U#+=VG##0}(p z#&o9H@i2-O!SpKP7Ub=F}RZ3!182gl;QRI1*;#CL`2ZR7^bf&R+9y-T?#BVvyA<1*I z`y|E`F>_IjSP~;7+8k(>dJeEpdBt6CK9sCSW7#4jDE8vy`2M%Qe@UE9VCdOt8W{mF zd+8HS_t+VNG=GN^z{!)!gd{o*lNfvL0M?YDu%c#&#e~K7QKuqQ1N>c$-lAN7T4M?J zV&0)|jqUefz7~Kns8G*1igy@*^?t;N5g)LN`+>QBCJcu)PB1oT?0 z|MvFxbHb|mI(RCVXuVqZ9+w6%b{PXACs-MDi$C_qh86g4F;HrHR2htkiIG+Kerprd zO3qAIIPhNZpV9GmGeg!gA}Yf|7##ajuUQ-0MC@Za=9uE_!MkcOta%UK z>gc$qk&kr7{(Xj+Ghd?5#qmxy6fHQ@(>HA)}O<2RUYp2#SsqyzcBx zE4&i;%t~5(!jzRX=RlM6{q|BVL7TJ_pLfU zl0s#$O$uv5PDDifr*h;Q7@ENhwK6p|G3G}Hon=!o4B+cT7_yi(fQ>!Lc&l_dzFD1q zIzR8JT7;UhPM|qO6E=81@1lA5t?<59A3I+AtqVn0EG*1?#5fxuvy)5hpb=S?CY(^Y zyjwW|=QG1^W`sJtk@~<3c!eK**i!4|zZg2o0}b7(E#4{xJUD*#B2?_Ewv>q=>tZ4K zEIK@?abLHKWY<}cd_UKKVewSID$3HtNmrw8>cc+jliE}Y`|Lcf?~84-878mFCSw(E zRe$f?@vSg(-J1rkQs(AnaovvMK0BQ?$Fpo-Q&!_2DG8@&E_}mE$mwWV*;>6V)NVS= z2)v}F8ZNUZgx%RdRvzO9T9Dy&`y(zIqvSubN6pMO&CH)Ts_6Q(K^pR!-rqERTbHWk zzj~HE>HcvtHb^u*z~i-9P}58;f)Vq5Oj<(25@$J3JfrU;wGXB*7Euj-@lZLuK8lqP z7s43D)IL#|iK0>+x_a+oWM046@|u!0#WEHl{hb*q6!gkIsyQBS9u^y>oEWMbaI7{; z&D!yW)v`YEDd8=nav?up6QQkpK{-6p99m607X`*go(ZqCvPPOprA}qH`AoLjg(g|t zIcd^{l{*zmjn8GG@6Fz}j?l|>_VYE9i*(jW?r#z9kF0HQ3n5T^bU&!ni*=309~bU4 z2@Ur#(&raKt3_5sl-jq<+yA7$$uIG_X+f;LTV&-UHw4x5!Gm}k*Oj(tpPN>ze3Sgm zn?6M+_ko8_CzM|_y5g^g$NP9T`O)5+W34QTh5}j`=69zK<%Hbi@;ns?A$E+AP}3x! zO|na&I#L6cT}-*}=WoO^b;9LN%9dE)t&%J<@eaG3o>=x{L0Mp0Y2Lym#6`u2I#|07 z#k=%cTkky1eC9(~P-Vp>gxSs>h0n!<@hntCh^Q|4cV|RM=o!Em!1bIEDIo&gz+GHa z{}E&h^SEoAQ`S`M9*7?VgD9Jsyj&-OfWS1)^Eqe;hysvJ9u<-j$ir(p?`1lq#P`h$ z@4rAU97&gRC$yEajGu3P4abC2T&Y?KEIx)FMqk^4Ei>Xcsw=S+8YUs0^0Pe={V^mV z0;>|16dJ~SSpl^Y!O)^Mujwy*I92xq6AKHkh^-BkpiyJ7EHq^$VIkHQ`)5=*XE@fE zW^kNm%#JHc>zuBCIta#TS;xmD&}j6~`E1A7(AZ--U2fOCry^J!CdMwDa)@}!-vwFT zKU^WIK6~9_N`&2&tzeR5?2M<7j?CZqC7!kjnAsn|m;n1?NivksSE!lv#Nh*qvCpEG zzK;AG37BNX02K^mCMVZ4`?c+&@i;yBea$YQOkW?k{ZgYa}g_ zf`V-&O}CR=lD^6_%3P9{KEyvE(P)7X{@@4n!|xC&191^$Xo0Ft91dm&Ka8Ph4qnoB zJFi`%+hHP`ewsgI_CIq5ra$uyq!+mRKU??0b2od%sPvby{pp?$o5av(A{V>-Pthri zBv)owOpk;VDNsC#mE{ChcZ<=|Z=~;)eW-~x_y4!Z-7ehq_0v*}D}L!>VpX2+135Ck zX&>C@+~@=^J?i;kO)BG`BMK2(n20dVc2(qLAKjCb@%}02Db6i3gtnPz*EkyyL1obC z^(uDF^h}pYV$|>Ux42y7?c9dh?mkp)`5@cPvD)^Tzd{gTWQ(~~_JrDic^{mGA2)N; zXxW?Nr~#B5aX9khi!w5W#=Mi`tJ3@{fFYmRc6~a6p2&}16q`KI@178sZWO=xK)NEv zXMISb{d7F^9Jri%?923h<3S(#8@WU%L`h+@iMmPV9j7k)MwMYq+ywG%6RMj!G zuRXBUz-#*o#4}M)2+A;jG=e->x!dO%Fjmt9+ca5C-#*V(hv0Wo+YJO?0Tqyfg z)#&c&A1vHaI7+3lQnK=e3GJ+j{EZzUYPty~A+M^ln}sj~=loq2HtqQlE_5=*Dk``AUmEG52~RKSeix#){==V_f_DOEb3P zIrI>v%=@q?M41nCcDs)9>Irv%8Ed3`DkwT;)ZkK0h^66wC)*Z6o_>G&-`?W1>8p>8 zAU_S$PNdiUsQ}vl&_%(T0SMH63y4Ur21V*Wt!sd7)3l1ZFW<@q3*RU3&GfbrAbfiO z{9Um#skpH+$8L-GkA(EzWZc_AxI(}mqw8R4LxD6P1IVU{P;giGi2|UA!qVV8>>l*F zZT7oL5k&|fB@MT?>TNxN1|f3r0u_|B3>*&ZfhoY(Pc(mW0Mv-~1xhFpdAKH^TJe>U zhLMGf0?J6?9UK4=&J{_&e#norM+pH^uG|~lR)2Q_rAcK&J z)Nd4`){(jHYp`9ezdWFT{GS2KVwXE8N!6)&B#gnboR@9}kFM{mtE-j*@(8~ayD4GY zK~$iB(+oQ#cH2?D=Qi}nZkv?7qa9}^WK;}@hiFxa?8-76`H17YGUZ~YGy8XC6LQh} zTEuo`d51ROM}_paB0xj}=85>>U9MEPUOl**BFA-E^we$&_43d(`**7cMw3<4V{zRm zlzM?`@V|E6JA%W%Wro&+|IHMfHhr?&V^B12L((0F*30ca9@|qSB%>Ug@u+Cq`tJ!q!Wr(Mnom8;3NLag0nj6s{YkYjh=V>1vfRH)0gdKt0%8nF$C zvu;Ah&{vX11vhzaXq_;}P&e*Dxx86_bn~LR&u_tCcJN^Tt%YDAz4WR{6Frpu?@*j3 zI`01GYiJ>z?))y4=sdf-3;6rWn@d94`rj^Kae!LoX0g&k~F)&k9~j zhooYh7)(xFR7508-Nq(gaPozc`(p;smThU=R?pDFKlldNwD3C_yj~ z69^GP7C>c&gh5uQ%xmw$A4l4z9J(?lszIr=5cCmWefgYwUt+aTnNGK^*1GsQN415|79T@E#PkJ+!Cwq=`{LkE>M!R#Xhwhhip@_Ei3Wt^elHF3h&K7J zc!VTYu6f$KLMOZrh5jL5$yuGAOHwxm71#Lckzf!9U$*EjuPUn%s=X=v38@QKW*^tN z3M>4m%2z(7Q%nRIrW3G4GB{j&LeQ*1?8L zYR@`~D;6Iwvd7c(Heo4B!U=|C9UKhQIuIj_RgnA+9=!#YTqvMbEM{^-upjl?roIIy z-_a;cMW7JBk^0dv7^oj~Co?e|B?dw))vLcPem@%-_yA&)_V-)6q}87>8-#OFR-$TP zDgs2+09U}l(d0W{Pa3K|m?A7@cf))1$*b+?Z_hei5uhuucdv_!sH@De4O|@LPZ?>r zvdcJz=p$2F4+7&3BKtRlPs;%(?E1=+{JFvhFp;ob>MI4HibixynU2D$p7e|??Y8lb zo7KEPP%Vl;ibjaB2d_BhU6lA8!7#S*C&!X1Ggjt zToHtMAk^Tk#HdmgS!LDAn7iJfqGz3hM2d=vi%UodkFJxDme@o|Nl8Q8AXXf7Ig|u` zLQ*($Fh`{TlO!VfaO34gULP-=&uO29pF>;{tq~JHT;H-FY5t9n)L0wzkf3w-Lb`#* zj|#*(PDzGtYiXTubw+&fGaCWHSs%|$Kt_DUm1<2t=lvG>HN$=?{muO+#&{kqi*&14 z`!>Jz0R|=tCw2_&Jbk&nnynr=yl;rsf0Qa2$Q4Zlx?Ghes2oFlk?Ge#OnxOI5a{=( z;l`pKvcDCBgnf*%mQE+IXCDF(sg3R6L&c@!;i>^&2A=6wdZQjG!2jE}*x_XhYxAeV z((=X-^qWQmEEB}?Pd2qfR)7B%EF5n<4_S>r)j(=N3ihBx5l6_@7DOO_boxzWZVy{sRN=XoSUNsv(gSZM5Tz;{qls{!%t?lbjz~7?xBSYLXb<&7#en zQ_7OgHvZQsNxC7jLtlDErA^CV@1=O@FrRK7Lm_=RA^xiRj+luOhC+*A7)H|FJbp?y zQ%JG%`$UGq*aT8V*709gV8n#78nzp4bF1!P&m<#vip49RaT<4kqBv<4X&k(K?4Sx5blO(YS**jGbOMjQ;&9HIRBxv}(%r z{7vz|O0dD%BwCn_eu0=oEfvYA6wjl-e_0eI`YkLOh zh>IJ-xj8{J)ADZU=Q~%Z6=u1!sH%>49QDs{=5wdVOAI{QL?5T@Vw%zrMjeZn)Ori4 z((P*BFpbgfr#si@9D1@+CuWrY;qPMJ(+{^!Y`n;Roq4pBCf8RJLp}37Xi8~!}`_--nKGe=_0_O26TXH<6RqXDM znpR6%=^u`hLtV4P@7?wP+r`kP%o2h>xQt3pzB_i{Rb9QwwBCMT?lAB0+d)OjSa0ht zW}`(@d!YH~wJVQCrS3lNsOS*UN9Mvwe@sg}*ZC~obaoe$!Z4Qcj0~z%qx2sz3U4cP zc$WyCo`rN{#!L4}zgazZX_+NnCHaLAj%(JFN5|AKK$-o>b~>Q zq-(0RZq7OuGw55_vkGx0_+=fBmU<|I$C+MyK5 z_jae@zO@cQNUeyHw0KVrMq)^}H8QX{n}HFX2=Bbfr@Tb{7K*>mohlug-m6tQ*4R?> z_67Pt^RaZv7MyMH=^X-GrzY$%pA_BYby$4$f9{4}pXAC5#JXORVZXSZ- z$-9^{Fo&nB-aauM9cw*bF>R>UFn6Ny3AIe`Tj+B6o#+Iy zUCd>=$bC?>oPbCDlO2JGlM4jk8HakW$e-!>*kI6bn%p z53}MEc2!vYGG{bK6noN7=yh%`up1d{w|1pZ$A2)Rr355l!~N41 z3=bBE$OtOJE=DzkY`+%7P;zOCNgw~O43%HUCExmI!n~g}Lv1K}5!G9Y9P4H)~Zdc<396-Yc)`2atD zVO7LPAP9sDWMpJz<>ch$6%-T|(P$;5Jy)hJzwA*~-V*w-Ar_fQVlVBA%-iAaQ)S3 z^@WhVdtdhDgZ(f&^fw$o3hYi9us0!3-V^(j5lSKtq|KK--@l*aM{)yl@n;C2*Wk+08h^gfqq}l!`oCW;}b&Uvu@45T3~YaGUaI~FQtc+_=s4e zsosOuUZhDHB{YmgNl3EkXq{>^H}Lm#)HfObXKKVlX=GpOx+;~%d;;F5k~qeH_Z#`Z z`%JtH;s25nt4J&cDJ=|rzDZ`usyPw`g^Ul?SQ&$wq)onY2%4Xio9bbJ;Fr)Geg?)UDgXu+>z5k zjUlrh6Q>#Hb7&5aN!IZ@o=v(G)k!GjL1HGC-zwaMlGyc~dgtcoE$)cB?+wcTA<1L4G4IbaegQ#74=%3@cwU5Fd_Y z^=cJnW)j+*D&}F!Oq}fZZmmz4b&QG_R`P=QVq4VO_;Uzc7vft7rp0rPO3e7q`#z_~zvAa6p%CtV@M)q}})HdWpmQ!keeR z4k1JqKxirKJX}MKPwyrcn+B)RA~1595=7R%Dc&zdq z2Xy|x89alD`1x`ZRj9}w*2`E!WxCr(C$)7b@;3B8fPZ`GltrwA)1PuX7o=oun-)JN zeZl@uN#jQ0$WQDU+#=tV-@G1uc?EoiTP#2s);1Och zmeoiku9gMFg*^$U0r8T3GH1}pc7^fmx-Eo<{IL_+=@KMM5#6JdKV&5lf#sijLrXoK zNKXF8e2b-hy8T(+#Le5(jO6C&A##!`@0R7Hi+(X^YRDW{Xho~B)J5+g z>JZ@O3AE3CNR)^J{G=QJ4>?~cukcVT*2%?>;2rMNC?TQLuy6-QCubK|Amzji&q~7s&;`Wi{!WlK7Nc^si}rVW^nVlc zIs$l!`A*IyKk_>sdx~;Gi=nbrkow5~a=b>MGS!|vlpKR~jXV_Rs_c=xS{UVrVmWDl zoPFNb^!Bf=I~N~sQB*P+lv4>}ajCDrwvJXRYJ16rer|i%pZ0>ur5Udu+NxMh43nc_ z9U{Q^7mr`AwoZn{vc%{>NVQM@TvOt0Ery1-Vxp5nM*o~MDpWhr4XKzVwo`P%W#gO!$iI=MWVV@irMvay8k4%V@am|p7 z-+bxn_d|vm6Na{4EI)bJ&0#+!HUaF>kO_AU3yG8Q0%uwiPkm(C(-hSYo#wSyTOet& z4hazn`~6;N26W~*hlKk~H`}%=NqI98HJ!skW#V7juxsyJyK?Sqw!cs%H$H~4kC~&A zB-Jw)YmsoM@7?kt=bT}yoxLzI3XK`rK#husV##MDkLJZD?J;30Wy^*ajoXjhR0Hln zxbTS3P@@xWz^nyM#MC$@6wCZMnQlB0e%m<8+#0XQiJ&*%x}6tmO#f7Jb8@P|&`(+~n0J5-x)vhH$X+Z{;IV7h9bVPB;B86l%WZy0SeLNRSdF^0&@M_aPus&!NK@<8n0)XB-Ahq31+2_<`CH zZUtYY*N{@1kR9>fg;w5U-y>=Mt|XTrUn%B)WfHO^=Ywts{mJ_0X}HgFOc6jo7K~u} z)1|#B69*?B?wGW_FQ9=NA9rM=04(D2;%4{HzDhJN^fJ1o)y+rh2Qe{u?h@krJlI~S zLB8l`n_d1Nd#6ya-K||+w6?9g#RL0Bgi{Jc$mX+q*iE=wL3jIq;hRC57^}oPkJK@`vtlObQPDwD^DR7_|CKvc+q@mp+Wc}AQpA~9uFmf zl98(t#uSv4RW%;&ITx<2*S@c$DykN4VQgw~VLVigM|jrv=Lad*O9BVQql*;}p-=4I z_g*qZu{N&v9m2-Ygut>e3 zXjE)xcHAxCudT1c8XqtY8=LdLD~SSuMhJvAZ^aS%9in65t*srGUH|(|_zZPg76^Q- zz0A~1zPqzCj@$LdbKmHS;_z5ik)oCK)Ksq8?DM1jDnchEb6 z-d}g%5}6;g;6%)CO;UTP;Ox8lakBc_wt%nf;av2_3mjeJIm5s1(Kc07Yd6U9FjYSW zyaFiAEz(3mpwR=-K{O;dooFs~QR1f}keQ+=*Z{jXa%2{Mbt150<5?gx^;M*&I9GTd z2gh~pPQgyvPEtLwNRwZh6h8SF{(CqJ)Suqw61UWoKfD?MJ95=?vE#v@JC`^AAcGso zB~}=8G7Af32b^#zsXIU8w-V}8Ktr?aQnk+6iupchLO%mkRo#ff&N^r$+WDNlq zCQzv3ckb*6mTGbW1Qz_xqB?=$@UZ^ep$3aUE~g^cV`FfJ!n-s9R{*b5J}M9t=wuzfhn+2%0W%F3Gwl?U<~_e_ zWm+T#2hzIue4CWM{BmR6w+$!j(S4+enSE^T zdAx3kY7S;1M*va}f%7@br-ORl5Co6{zD~Q_YR-~iBWY^7@e^O7=ByNq!Kd0jJ&OrE zOH|A#=Zy|BI{N~1fn3hza=UgDG*74RTr>NhHh_U9V*TxNOU}h5$F|d?vPhM|=z0F; z3GX~iU>+IE!dK@mF6F-fG_d>?ej$=j3@L}i#o;xpG%~7c;)J2TzNK-OcDD?4?9$=x ziN0O>Zh$|yOP7Z?#%yfj;&vu7VN*83An{Iqo?&fcqsrG2ZpI!I6&|PstO0Uyj@}!< zHn3yUd7uzD4`@ulcERtEe2HDUEWIILu4-emqm&6#Ef)p}jJ(cxX?eM-zSxrIt;fCR z4R7B2ve|b}DyjE;R#GBm$DT^`KZT50vzG3q=Zg) zToJFdv9ohgOn=ZA{Z5rqi(8Ax&#@?{wab;{OJj8udGpqBf7nc?1D>ftU{>x; zboprepUa(n?-noc(Zq%9S(!F8Z*)bcB*p4NpKk$RT)vs;eb@bLf&XFw&-zryu~l>* zjxcoTa`{Cdbtg^!Q|y&Y{KX_R&kBtl9s1OlE-|IFhD|E4(NtP?~0Vu-&nTP}AEHH!Dji#}`=dzqo1?3}R*GjsVz6J+xy%rC ziAxq?HoakLmbWlZrd_Hs3Uj$9Q~XXSK)Gg$@lhiKpedYdn%F-8Hqq0$=D+`uRLgcX zqGguK?gzZhb8>zfmBO_Cj`w#kQCjo1hy|5}9gN%)eOlPHbYt_#KvoNdwH;CsMzZq0 z^WeeN2dKc$7Ea?i(lQZ?-Zpjn(~n4>h$i};&!a*2MzI$9#q~nST#I;18M#ImF1}6+ zrAW{G18@3|bIM`MY!|F`W69}~601kIyGH#IB$R}Ar+P>O6^j?TQSlT|Xu$6-c7}yV zMn&%~cGBqatVEyPm7OFG1qcZhj;HN}CVphp?!r{`u5@=jF;OV>qsrY%s)%B+mVQMb zzItec?y1wDGZ^|={May#xKF=o@EV`*VjQkOAkF2iS+)LLh~#4-|J^k2cmN%vTGDIFDeapF1*%f)1JX9W*t zGSGe$QEpTgt4_dWOEg+k5f+Tu*Wu-*85GiHaodbB=~Y3WX-X7H-zJJgBKr>RDJ%My zr~Al++j~M%lgc*jl}jhX{@^n7_%0Y`0>js7FL6Ok`+3$`{}X+hYm>$Q? z5ZPR|IE-4$wRXD_S=RvP>IEqE!|iS0F%U5b7veJ10ueAmZo!8b`i}qN)BGr3{T=jX zQky0TY|R$!a`VfX5-lz&l@Kobh?*+T(uRALT=x#mwz@B=Azoq9$-eO_sk1dkgZ+a1+BcdcDAIQ&--;$0oLQ~07We3tV*pwAI@e)BJ(t7?u zzp;D2%B#i;+GKBE!zOI&U0#_cNtCGOA8+xGsm~dg= zq@sU1Hyy4J3gxE1qk9ylr3t6@-4o$5i@t>FhmcWXE%O6;5;GAFu??tJ~8 z(C0Xj?W1xWB6$9Iahe7)mrnzRM7@^Jw7C_qk}wR;*GMcL_~5#7w9bZc@Y~CEJ7RrbTHJa=VRcKTFxg_?jfi>)ObHnO^}y=m`n39r z__p}^hI*?TBkSEXkXPULK>qP!Mc2&-fvzlc_=BS?8>`l@dMq?g@JFCqJhNxQ-YuPLZfl0%+Y)GOVH*VvcXNu(w!4zxPh?kYl_!5nM3d4IuO>Esjk4b=Xtr`q zPXVX1^JPrtjm zc3EA*(0wqaVzFBobU3T2OpTXfuTns!o*`&arC+fq)Pm?*IO*aIKS=}qxqXTw5Bz3) z3A1$Y z(Yf%N?7JEr4h^S zD$fOhMDE0?))vn1A9g(IMqm=4%E1S&NOLi5%tqZ&^KZr5nBv^^7Smv&MuEhE_z0sz1T`M2zt@ zj#Q%_eFvQ2mvnD67&pGO1LbiN-NcRqk!ez{(kzVu$uc_m8+ea;7ujlNsRETCz{ZL# z{5Cd_#BooT-tFy*tW!eqr|1s{ zL%d>z1Rr%)V>j^}$kkMT_I?)dQZWF|bk3xP$wt?POCp zGSUu=@YnE^b-z5q^kh)==+IUr6s!uozQlMo_MUE!jI#iZHw0zjIX0rzXdXYK!(NCat2cOkeygV)RujuT~Wf9w*+05kCAXh_FKDW@7 z1rDy`GCaBExR(5rgX_UH8^bMWhMZOP4zLink!Cg)TQ@%qn)3{~1;{HpBf{BkusA5C zk?WpKJ=;4SRW^2}bTW^H%Ethrar&R~7Ol?h0LYAYs)VVs)u@}D9ZXc^ZT0(xb>$=A zYE(l-L(iS(Eon*1Gqkdf2lL>)%KBwn-HoW@)%<5qCwg%;QR=DucViJDS#u?N;}c+C zZ$wcUeJyRg^c9A+mKv2+v9YwMH@OpRQyvnQEW?P&bqc+FhQN4}fT3p^C z5dl$KRY25cn8>;(d3uPD#Py^`P0?Hpo!^z{1!KJAewXJ;jC&3h!!|a2%q9Jp1m4kr zlgTQ#O1W6?WiTGDDdHx`kBuJ+r|`(c{0VuG@fxn&#V!pS0C&An*8x}pplae7)ZQ5~ zN@j7ZB7_qV5y@@CM_ZkFU`strv6$8{wXUPYZHz&lxelL-rhe@l?(SW(@S{9$?`C-5 zPsruqD(#;D&*bmFPbwQ^QbErMPOP|oFL$hb%5&v^tX{%9HZYR--+lYU(}mBI)Z>>} z>)l&7kctVBddsMKeMWrpoVz_apUY2e1ant~^Ycln9EmfoB#LH5cpQ;TN~=f#{p|-+JW*L&_NxyF zpKhhy`cogYwlA+uYRd+p3&98>fbSL2^zD_?JoVV(o!?u0?%L766WH z-WYkcHZp;lSORCOUhd2Ww{&occZE$D0N0uLvX$3st4V49+5P1I8yUOU>Fzl^iBNbq zw26Of9CR-jw7@Cl$GVKhQ(N*igqBztI;TPUL5oI8D^F(b{0gX}k<;c2>aTV_J^%)G zj)65AmH*<~A3nbN*j=N(FA^lqU4$xgx#3TPK$D*dL~Sm2^SL`Hg^C=&aJg+m)^8ve zl0a!Lwu!tY_cdxqFD7dw%y zTqPy!?iPzi?xmS%W?_^}^!7Mbv{V|}nSXmnGjcXqo0zbh4%QugH|TD?%%2Ya!>ZK% z4Qy?m9;?YF+pd9wBQ)s~n+Pt?Zn3lSu?dLeRx-;lO0DjJ+`hDQMV-;c+{6Qw$_zg~ zs82`-6f2cikFJ44LfVp}+;xehO*Z$@8V#GSgU@JHk0Y87yi< zjLtzbfJEW@Bb0kTg=S!46OP)Iwc!Xj!$j#NU8EF_kYUYhT~s?N{5u$jqin{0r}cmu zzHcAcQ1D=}MsUHWnPc_p=8+6)tnHh*98XZ^rK2|?#h8h``HAzcB{pUv(flCoFPK#hWDBfrm~d?plHc*K7O6_;x<)oK0EwK4Q>r z7e&ju-q5paOgWdqAC)zz~ZWgj@=XkFQ?|e zEJoRnZtTE>=H{+qRUMqQ^O0S9GB})hCTrLHEGWI*(6K9fGCVoIye;%8Ocgov98|;@ zQiM!vNADnr(CU0lRZIc%tG0ELg_>Xcvda7TLg^<=ihE>M>0ByfrZJ^tSaAciPE7*~ zEp9Gyy61Nc(>%Wmi;+~=JrCmw(bf9?%<{p}b&H$J7#@*U*uCEU({4#A{Ut~(+%0DJ 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