From 9329de0a8db62c292e08aa032c3473bd2e30fa39 Mon Sep 17 00:00:00 2001 From: byuu Date: Mon, 15 Mar 2010 15:20:52 +0000 Subject: [PATCH] Update to bsnes v062r03 release. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit blargg and I sat around for a good 8+ hours today hacking away at the S-SMP Pandora's Box: the TEST register. What better way to spend Pi Day, right? We came up with the following tests: http://byuusan.kuro-hitsuji.net/blargg_2010-03-14.zip First, controller_strobebehavior.smc improves emulation of $4016. When the joypad strobe latch = 1, reading $4016 returns the current value of the B button. As in, you can keep reading it over and over. It won't increment the shift register, and it will keep telling you the actual current state of the button. This is very much like the NES behavior. One more TODO in the S-CPU code taken care of. Next, all kinds of S-SMP TEST register improvements. Turns out d7-d6 alone controls the actual S-SMP clock rate. 0 = 100%, 1 = 50%, 2 = 0% (locks the S-SMP forever), 3 = 10%. Wild stuff, you can actually permanently slow the S-SMP relative to the S-CPU. d6-d5 is a timer tick control, but it actually uses d7-d4 overlaid. The algorithm is fucking nuts, and is really my only contribution to today's work. The rest was all blargg's research. We had d2 wrong, it's not MMIO disable, it's RAM disable. As in, disable read and write. Returns 0x5a on regular SNES, 0xff on mini- SNES. 0x5a is not the S-SMP MDR. IPLROM is still readable when RAM is disabled. d1 was correct, just RAM write disable. Can still write to $f8 and $f9, of course. But it won't go through to RAM. d3 and d0, we are still a little unsure on. The T0-T2 timers seem to have a low and high phase, and if you strobe them you can force ticks of stage 2 to happen, and you can disable them in such a manner than stage 2 never ticks at all. blargg is still uncovering all sorts of crazy things in $xB mode, so emulation of these two bits is not perfect. But overall we are leaps and bounds further now toward complete emulation. I'd say we went from 10% to 80% with today's work. But we'll have to see how deep the rabbit hole goes on d3+d0 first. Current register map: case 0xf0: {  //TEST if(regs.p.p) break;  //writes only valid when P flag is clear status.clock_speed     = (data >> 6) & 3;  //100%, 50%, 0%, 10% status.timer_speed     = (data >> 4) & 3;  //100%, ... status.timers_enabled  = data & 0x08; status.ram_disabled    = data & 0x04; status.ram_writable    = data & 0x02; status.timers_disabled = data & 0x01; unsigned base = 1 + (1 << status.clock_speed); unsigned step = base + (15 >> (3 - status.timer_speed)); status.timer_step = 1.0 / (3.0 / step); t0.sync_stage1(); t1.sync_stage1(); t2.sync_stage1(); } break; Fairly confident that no emulator prior to this WIP could pass any of blargg's tests, so this is all brand new information. Fun stuff :) --- QtCore4.dll | Bin 672768 -> 0 bytes QtGui4.dll | Bin 2635264 -> 0 bytes bsnes-debugger.exe | Bin 707072 -> 0 bytes bsnes.exe | Bin 599069 -> 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 | 90 - 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 | 231 - 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/cheat/cheat.cpp | 4 +- src/cpu/cpu-debugger.cpp | 36 +- src/cpu/scpu/mmio/mmio.cpp | 9 +- src/dsp/dsp-debugger.cpp | 14 +- src/lib/nall/string/base.hpp | 4 +- src/lib/nall/string/variadic.hpp | 28 +- src/ppu/ppu-debugger.cpp | 28 +- src/smp/smp-debugger.cpp | 6 +- src/smp/smp-debugger.hpp | 4 +- src/smp/ssmp/debugger/debugger.cpp | 4 +- src/smp/ssmp/debugger/debugger.hpp | 4 +- src/smp/ssmp/memory/memory.cpp | 131 +- src/smp/ssmp/serialization.cpp | 24 +- src/smp/ssmp/ssmp.cpp | 24 +- src/smp/ssmp/ssmp.hpp | 7 +- src/smp/ssmp/timing/timing.cpp | 54 +- src/smp/ssmp/timing/timing.hpp | 39 +- src/system/input/input.cpp | 8 +- 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 - 524 files changed, 239 insertions(+), 77370 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 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

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 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

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 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�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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~ 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 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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

Lb71|w6Bsg=l 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

n=2Td2-GahJg`sBaT*i4N~shZWr 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≪J&#hbOg#G*nuI=dR1M1e{b_5)g>}UW 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�xQ=>UW)v{Y4QKe72&Y_tkZI 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

sH^YJS0QL#E_pvrqc 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%0AI253 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

eag~=A1#r$*`nJzkWKlz4>6;j=mRFW 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 z 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 tqC&fUlO;k@btP@+LTUH8IEP~;{^v#&KOiSl3 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 P*Tovs3jXK%#RC5itCy@< diff --git a/bsnes.exe b/bsnes.exe index d019448a6d1e4ae850b83f7a6585f55651cf9a13..8a08977b6051da76b2796af6ff8724f7883be3bd 100644 GIT binary patch delta 619992 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

GgFAmmD$&PpzUkj^JWo9Tl!qIoPN-qO!~AMYUUd zTB>WVUFdwgVOEk=+c>N4V=28SXcmc?NX4T0-K-c<%(v*C>qK_%6-f-aTg9bqV_9!xrVGLnC95 zEJUudr_=TOao@4b zpGZ6BndI*WtF<$z!mFH=C^5$E*HPbki5|5eu|HJ)oPF969x|5oxT|jiOvBlf^wz`; z;neN*entK5KokM2Ki|^5W!7sicOdV&@7G#gritIadAb(-Q2i6#ghS8;uY;Q0!qWREAVz9XDa4jI2`Yde<5}rF}r2UOyx%2P4x%=9q z+I+M^v)s+l>&h(J6W!kz%R<`YfA-jJmlDkkNih-Y50`wcl1~ZB^tT)&zW@H|gGLjq zYTvC*g=%L2&X2Gk>>+)Fk5A?g$28PWPKA4St<_%g+*b~z+O?%6$Kc@~3IDi;YKHfm z86k+aU7M3043na1=^oE7Ukg5KyN&Q4Y30ZapOxsJ3AuIYbRS}29V>UW3;E-TQ$1S` zv^$ff7$B%L64oyfPM&s_Q$dgYpusV>z}MDp zey-Gq52*YwO`FlGPc}b4{NDTW#qb>L;xx*cPtw?|vYK>o08zBED~&H%cS zWAxm$6ym9StD<79Iz2wTH%}>%5pnLF#IbcqKeeKJto;A}vh--RhdvN)vP;yOJGg=p z9KaNL0qqf8x3VnezT}DAqsm0{@qe*fZy;a>Q!BMAy0uGstXJF_?4h4s5ov{$_qbmr z-~E_rWp}dMT9DpXdT2gJ#j32$O&vOST0Cy4^{V`aM9s1~ll}Rz6TaBI?$Vi4(Q3L= zXC&R}(@9ZLdJ8|xFX#<@O0}L8Xp;shPS&GQgZZ7I`NkF<4FxP9Y6iqkR0aXSm43wb~tr>?gEqhfpdL9B3s< zqpocbv8nITs#$1vyKJKaAF)q!Mb)_RGQ5@=!V&AO%Zt7JCSTO*ju0-~&uN;wvv2=&G1}p7^jm~0 z1betmv=?58kbB%Tm|TeswaW6sgmhNP53;x`Q< z2S)?|?43NMo_rPCGY+6Mk7>{C{^clfjcug$t+jcj6O6!~{pq~Of#q9Jy}IJ6N0F{J zqtO{}zw~zhTKU*Jp`74U|0u?L^B46la)m0nZROz*)Hyh0epkbd!AIHM{gcACdl;{8 z_-URwjyj`uyq%k|*}dlZ?T5~8=pYhpmYXR1qcUg$KpJSqb{K}GANq+Y!Dlg1BI}?8T=7!}zOa3gq)25i?2T1}~ zPYpOiubg=gH%^Fx79D|RM^%3vWuDfE>S~$JA5sBRICz>n%ip=@<;z_q7SQ${==i9_ ze>`rFM%F6TH4oqgAv(hdL@ZhB;K!!QeP<}@iW>E~T1|r(H|^4O`v++#>{krcjR0r# z>pjR1H9hN?vOLAlSz3gv_&%AF2~;0h;G{FV3-0n`vL1g2zhUaL%8aG3=?3eAxtLR# zvoII+N14xVT%G^*qMd`^1v_34m=~Hx%XF8rDecI|re8|9z zKxy&{i%TEj{yAw-c@*rAh6lZjVWE57M%s^EJ{SAU2JuW44((l4;ka>8z(pQyohz#F z{ZF;R%Bn4PWvk-GAEa%ZqW=324OCbO;)8)irSNWYpT8*iTs8Hs2PPSEN6nDrycfDH zd*G+uD}FPuR#XFjwP>59qI%~3KM^LDyJ5>O;AfbN77gcqz@f`IzwN0X7CrwQ=iify zTyXi_qp%-EH~qU0J33K41UXYGbSC%|92O7zFrY8GrO0O3*Y9dCEc0Rs(#S#kh;;S zhwvqtSMWl;$NsudER#N#vaFG#(R0BXl2;;8J%M;)5|mBaej3Fm2m&wqkYVLp*y=69 ze{>zl&J7z9L(tI!Svyz9qhRb;u5(RxJE3bDg%5O{Dxg@?hGm0g*M@Vd|ENYlS7Glo z#^>yVPSAVBu1%9Y)dx1P3JQ{-a)PRGJ*h$EOz1KDiAVcudLVTA6(cQ&#Qa#1<_l@2 zi+|aFA}vNFOT|W8V0B7eiyFIUrAFvhEu-91UM`Du#&KGw=KZvnryyA&Ct~nd;m=$M zkQ44FcGWg+?Ni|%drKymK7mx9JZ0zbxmFZ@uzor}14}J1XA;;J@Ik9#28vz6N+PsN zA#3puDVqZr^e~K8O29Jz2!pud!{aT`+z`41|0?TL-VT3(Wsh&&0|w*sqtA*)MXkBy zy(69R=3>BI!vHX42JH-;e-%j#9pu-ckE7*pt}%j-(7bY_oUbmSCwg-Bzw58WKRtMBu&;~{CbFnP_LX<7FfuRYwD>SUNnp9Sh?p9YV`iok;=;?hf1a6&pH(V!A zdJ|80E0`UG;s_W*uPZy}i;>QgZL7vk-qg(79V|5JyUsQYC|Ck46#vfexlZf7|+HqOjxA)U4NzgYZ$pdkh9$BM1tua zYB;Fl&soyxcvl8r#1U`=*9-lhNh`;v0>57pOrMy>TsO@R-X?#4fU#llu^OAk!f(lD z`&_=L`@=ceA!`llD>Xy$IS|yYKPOyqf-c$!QkiKSUTu_q{orqcd8fL4t=+ZpJDsEUl3zHxh-=UKS_ z3|agsDC`-IU?6QEtU%0Ex9-}ecd%9946a!x&~XI%6MA7ao`5GDy1rWOcBv|`(h|S8 z9_RGYMA5Ce@gx2VrgWH{Bl)JSzx10HJ4b{Nw)N>4_rW^ozqKg`=q|CX`}sshUgz2F z;Ff$kd$Z@&V~2dK{z3Sg`=Oc&YYr|kk`QkPGId3Y$gj0_BP|M*;fCI1K>IXiF7K+*x;#@2%bm{?F1uEqvw;06I&L~?zbgGozbdD}58Np>@Pip^J0JB# zE!XcUUAm^1wIci5Zd?2S7tFt{@~_8EjfcPSkG3G1ey#aM7h^PBC0gZ1UbYwS-r87t zfpshbLfEJk)DP3v+Of&Am`p747={dI4t~tXjg0A!{{%NINEeLgDlH7w#}H0>mStr?wa$eTBXDU{wiP{t>??95r};q!RM%Bicvybh&FPGF&dCw1E z3d(*3pGg&E`SS(4;Pr@elx@y!(U11qM;ooI`EqNeAUl9o_z5gNtX+Fgt8V#~YWG`J z=xd#S4&;h7vTHxHmvu`FwW-@P@^;FGGA6qVkf+^BYCG<~G0;%IT-@+5b4qYKJXejy zy}V#Fx@5-v@%B#=^xlaZN6r3&ry1+TXbCxSkRLBDOAa6VB`{#4wCZT?6W#&eU5{J& zbHNH(^%>}iFfM05S7F9U<|Kp3hm$$ngY9?sR3@acsRMhV41i<=OKZQZ0qZnY{fW5L z5?UH>()z62T}xg!Is6T>RsVX)*n(@-1{q~lUPA$GmlJNwVs2v(hCR`jVkpZnH6Aa0 zU%Y!C*JwmQV&FfWRk6Ht!ho>fmvyxM;HwUrA9{t;LZ^$s>Ni%Oo|nefxoGLy6f<;o zPy1drDc&3M^o#eo6$RMo&@Vyermj!z@{5fRrviI+-fx>5^fQC6sNZn_Fj$c}nMHaA z9eC&HlL6@|wUV8rtx#s!XZ_j4B?3{+%w{2C_w9UR!O|@c4bj$v@B6-MDC>2K5TmK9D zDaRPmU`lSDdfw|*=3{%{7vmqL@u6#+u$`mt172fiaz!1NrFQnb zFOpV4%$Li5wOVw4M%`M=2W+a}^k$6lt={T7XbDUXrZR1j1G&g!VyN4%?m6JG>$0LU z@%OKI`m5wAb8AJU{bTzH9h|%KCN}DA^MW?SaN&df0xUTBIq5{KarcLRnaMlXv?g;Nz9YCMx$4D?Ttfr6w;QSTx8-!W#1K<|$+c3<^f5GR_xI zfYjgp2_>=pWorMQ1K+_z6Qa2`$#rhrEg)W?dg#ZKa5_IS$uKPG#i;@Zg!VT3k)Q+r zr0(YNe~kQ>#$fXUcT!U(R9ad;tT8@yYHRAN^<1{`*%%8~!#l_{e$0=j?;~~3u%}#B z<~~MJ|K{)Z8d|cW&hc$EsH$@ME&RU`Oh|s~fS`xJo!ZL}x#z@3ZH4z_lZkCV?~Er2 z?B^1zr!1orOLb}jWU`H?S>Ix>{c+B+%%t}7)u}J=^yRrzx`|nvV>+u=KkE}}4>l1C zLO(oraaZ`+5KrQ^nnV%z<3oK@n%qy%l%=f(q!0{7ex{TSz5wz9F)dP`ci<}^zfRuP ziC+Qac&IPyL)w@gRgrK&CXN!ILrJE0H|UQzely9%XMPk)rD*-;jMP%x33H}_idiQME&p5CAv&Lqj(^;&{3rzSGLoPb~^3Vk{vFdpH zQS*V2}n2cr!=Jhm7w44B=U7gF&{A7q&I33I_%Km(z^y9D1FV4-~qe*b?rGYpeqve?*|h*>K{85YAtE>V<~9Spg~zxUn~)tv(2W@|F_iW&kPG75s14nPkgf;+4nTTD6|-Eq_%2tSzW;A9S~{z z0Bl&V|J#<9s20K7h1zyqET~ZLkhU{hcgxbW30ZN>G?HhUbj6P z@3wS!x`~FlFP@Imt5aIyT35DY_yqIh?hF5992<(36W|AVV%SbCJA`EKSir1TON$k*w zb1(M^=+n(+m4nwjOzrr-v|aq-?a$I(1d7NLMstqzaAl(_d|ZgJ-&_+voLABqIQ^RaO&S*?8fcdq$V4cT4AhBdZxiW5P*H*TUxeqk3SXtx&tFUGr4;kZBXeq@s zOo|;!DR#w#h7!s>TruWcLZ;(Hn8%JPLC?D1>;6Uo-U}|?F0Pf4mfZR{;7Xa;LL77% z#CS7iNhBarUXw(!SrrHj8vuwIv(kUrOMSkL4p_i@OO-HoL%K^G zB@$19J_{p}Ol-mtq~Apw9g$<>Ypah$4me+g5ZnV#y6UXB|3C~WfG9y6b%`V)Z%^m$ zX_mQ8)K~w|H9JDv)_0bpmoLmS?f@%OmXwS!^yZWg5P3y4-sAWK$PlCmVAB%fmYVBm z-}P_2n3FzBSn3KCpq}Y5b^ZkWCAWg=m|XCVfBaW;!k(kTjmGCFp*~*!#gSJ8E+fPx z^)L)yxm&nT9JF{yuZ=w9e0^Wqb|5N=hLBl&-+~Pmp`lpp6F(ji`>AB}mLqO$9Y2UI zOh*XkVtXG5{d?{pzIx4;eWLQJ$}WtWSI%0wK{)nM7=&<7a8KQ%IN>9ohD8Rctpu>4 zK_WMA7k1?9o$`&PE2w0#X6H^Pyzh!nrT*(zgpKK3narchwj3%O|^|la4*D7 zwth~wqrwAiogeayj>K%U5&6fByCm8rd1ycvgH^(3esWgp|W#C z5t>c|$wQq3Pt~&P{$@K-d9cGTg68S>oaofi>rVch6ED47eNBB_a_aDBuUXB?mhyw+ zdxaS*A$&_7-L_Vu?Ovu{t+QA#y)UT>z1D=M&C_bVwlKmS(IT4q)UCj z;Bc(ke)y&rV`ugsmEKqjZ1@^OfW{?%G(VhNJ@t3y4%-K8W(dX5;A1;9O~>aiV^i<9 zPfr+H5*YSuy)J{Z-bRMWm;CKg4(L`*JDOV7mA)nfPoQ+Kt<}AX>NzA8RsDr!Ab`HN z>K{K^u0|l>te9Qy$cTXem)1PTBL9P1QG)TCYUj7?L_esji}+epv2$C0DIQ+~g2(wE zY;Z)fbbE6afH8W|anheD8?1h5h+)WPr1fY9V$kz@@UHI@S}_gWwVTBkP}=Cslj*xL zLmpV9fuYe<=E*6X@p2RVNiej+)Qmth2V*iVNMuVZ6^~-Q(#BTBTP3iwr#jG7%+>TY zYaLZgC+Br8t}5pG4Q>o~4;9aoxzWp8#bf#S`mt3!|4jjbn}bxm;E>QQVJcqu)@>1y zD&F=TQJkH-RJ>^J?wD8=FD`!1-UJmdF)2A^A1?z8rt;JFr?(06V#EiLSuUqCPaZlf z$i9qLO(UZ0oLm*n%Rf?}qJ>4^;V1YhEh`69v_f2YG)gi0q{`Yb*Q4gC;lpli6a8cA zgi{*_*Nb%0lvet8hJ^Nvmv6|tUOXbmnm7+ zmXr_^NQm7eEWt-OmB5@@IuzggO^28Qzp$ANv2?h7^Z9_^DUy)u8D=L#PS;;l9E?qf z8jW5%lK8^pmcd#I%%s_idy+g?IZ(Ev zI+j^&ThuQ$FqB*_m~wJ8Qrj`XTyMz0JRhGutPGkqSw8zrw|6vP`#-@O=(-42v|#vE z!rQCgD{wP3Mr6{0xVqGg+QI0cb^vRq!(T6Bd%gOh3>;DmL5FVf0zYA3C#z^g>D9Tm^a&q(XRrE+f zVUda!mz0*NXgN?JR?*6%RmW7cx~8^zn+{^LK=ox{@b-|34$I_sRP^r1z56QqVD#Zw z3P{HvJr@67aCrckxVjzkq+`3<-|1&wPjd{VQJy<~-&^5ye#r`Gi1fV9Zerj(arj%W z3JKaSlKSO`b)wGE)V9a-Sh$q*-I04W9Z#Cm7MfdPZ_h(ae%aqk_tFy})6~<}>RwAF z^p(Cq{?xq+RH1_qMSX8_q8i8B_0|O&5M-A!XHk9Q1jB=-$hxF{RuuZQr&ufVoWkd z>j#XX+c3HqM7fZ)g(+xakdl0c%_qO25?%Q7F$pLugmBqtOvQ`JdWDO+1xk~nhKb5( z2r=nOtg%KmH8w=KWIDVB8dd-eNA-J|HTasghJ+Iy3t}tbiIfvZ@yd_p4g3=sCs;cc zl%#s6dP==Gr)Rr)gKa&vUha3YexyawGTNfEkga9@`ccb-pap8I^gVT|T-#ZE>Xd%Q zss7m1Jq?Uj;i|yaL{b}6z-rwB0afz}7!*+Ln%USQX=!gU2HcUHlsGUYgg_Nr=>il* z^L#T+23eSHZj|KU3GjAKiVR94#1Tvha2l1OI1N>j1LjXppH}^@-6&}Xf24EiRC{E3vk`dst=~ImoH0bxToe>B+ArZ3LY2f4A+ac;QAsT~{LNeu*ZKG|n zHUMhO6#@ldS#%hIELB+`m<4534NBTN+KL42>t(G%Kn~|J3LvMPg*{5lDby)x6B4Y& zXp^i-2muoU1%Lod2qstM0>Pl{GZ!Gz#?eMuBOwP(5CSx?5(SJvRgG8>j1sI7O4asWj)iqOyrYKI#pKu2Y zFnyvC1WN-X?V!UI@cDr(h^jCc6ajp^w0^W+rh=qIgLQ+0&j$-f4lpG^IxrndIaG=2 zkhYJuqiMn(S-TJj)RYSgl<>@bVHq>G`JP)R;&L@K5_WZV@K<41-spID!+?PqoFBOV z?T`6Zs5dFb*~9YGhm8Rze-=bZqG~>vY_l1}=_TdRg9M zg(MOM9fF>SRW-=*8rbQ$oUyYqcnlCu!ZrCPBkQzArXRYbO$^p5Icvnx%n(Q*Q0ZqE z9vI%uB^Vb%!!dk!yTD&xcNl8>*g0ZyooG6C;nVB=8f-(E)`L~i=Dx&y&%L1EIQPx~ zAwC5!p1G8M8UVpUMZmo$plO=LECgsX%oS;$bhdSr)n67x-7h;_IBM5jbZMAQNlVE9 zeZ~5vWE>@5i+E=Y%?L|uR13{BHlR48(!fOo8jyIW40PSjmQJDrTKum`fz*?G#R>zZQae8!6M$y;0eW{KDO(vX_!WWS>PUG z-XPxWdalm(rCYiN`y+o>yTwt5;ZB|=J)ZbPWTTmeCm|WsDHo>8yNu;jt6^)V$AqqZ9N-LmmT4Ab@4h3Y_%Y2%NRfBy@}Xp+4hgR8XY8*mls-W+` z_T<)PL-gT;xId`|TWuwuBz}ax^IaDT&q6~?v^3RcEZc@iB|@TQPQDDb6tyaAYdb7$ zeLF&sMr=p%F$G7erzWTHg%es=o6kW6PH*!%*gomA!}ib4jzRb$>vF>oaG2fx0nAtk zJe#D(8V4+J(!6Z+MQ=qvVr-0SdysX0vTNjt>ZBrd*Ex_DJgk0&iUmX{GB{VR9$sbWV&Vj~JOho(n z{wUX)eNcyxs2GSQIp-a=B!Y`sfr@ViI-;;v(!^^ywTP(1o<1GU+G(3>VZ3a>2;~sB zit%Hgn&+UWZAs)6n+LJsFn<$^k7z30&FJ=%PlAjg&y{CZ_3t`TF7S(qkEMJTEIC26 zn|2ANwmp&*wYd!<;M!g_a`F0$%40L`s|u2^q>3+CNS@l!XJSeJbjv;K_<7Ak5Y}>^ zyU?ILB?V*RJNB$EJq4xLW?46%ktypVc+8*w<@DpFGdi86F5drTAEEc9t+6V89=?Ks zXP;1OO4>~JKCcYn2@yA0a-x+WlcatV>3QuUo;93>dW2JR|LsCBQZvG@(WzuFph1-< zwd{{sBtFXFp*`2*ypj(pJe?31n~D0hSeCU)I^GJwldB~OwOmpXHqwY;ad99%z07U| zNAjl0*T6@JVLW*p7X)G1NaMIH(m<<1tOsnRjO4w@k!r3uazhYAU?TpwKT3H~jGpU9 zw(NAkpJ!j`CXG|t7^V!3Zf;{JDFfmq-no$=BkPY;_~A#rWn^#MZ*0LwJ~e_B0nI#n z`7a9QJFHx|JD^1jH)e1qd|5HV^{8Q}dattm^Mi*MWYm+~f1< zxt@;nTUWlIwsm~*qiKp20J>2dX(W1=ZTW|9!7^y{Ul$?6uh4%)!8keWAr52+dYbl# zb!)g8A0nO#yDf-q#1r%9G>Daspsy_@tzEdUlmM#2*Bk{-NjvaBL7RNDetta}5XnjU zYQSkw2fVFb+ga063?S@T`j%&;b@l3DJVLM_A1Hx&)70$Yd>Vs#rrf>;7N#Gh-k{EU zFDwTd0X4fu^0RUyT5co`z{&H_L;xp!d<+fv;X%_3&UXOds7x_{J9&}RBLz4MUF#FM zWi600ymp4g!8R@M5K;~R03i=A18|&oLaelQwhv-&+*Q#uD}p2bn!g}m?Ymm#N~)S+ zG&OpD8fs~DRttglD3ydjXi6Ydz2@^myDRjj6Erh4iD)5+gm%;e)}4V+JXyC^87E1> zn(Xy^4}N{>O>>`DqkB`StA%XxB~}HSCg*nRgUDQR7S)zb_NGxN`83eY3!igK2KqQy z#;17GL~Ig4KoEjD4d5?tY6Di0{sVeXhJ=9CJC-G&5sb$nfes~3KEeeJa>GY3(HZj6 z?E`LC^LLU(?fM$dDN_h&84mQZ04jlD?9_pd`zUBgIe7C!T@+Mhb>IYbWx#3y9}Kz{ zbY6l&AwY~{2s3cp8BC+YLB7tvvz0Xm}>ai=h600v8q>erqk%2>=BqQDeoAUe|b*0R+jEkJZ!Sw|) zW{NC!P$~o2($#WOH5?DOb>#w}NaEqDZm5;^bb;N#>e>h;X#B=)(8*08ARHfD;dV}wVCVgkuV2BJU%^}2R7a-7 z1wwNpdACEk8T+l}l8u}zdOZ1KzsOP0)=nOdhK7LV9NnzITog#zQZTG!{bokea(kR$ z3@(^3*A?J_#7Rou0n&LY0q$WZF!rzwboQ`wrU*%YfmA{e^%$B457qOHY-@7HpRtMu z<9DaKi?~XE!{6Lw%R+$5@IqGhoFIE6xzp{~6c7|Zb|LVpiU@DY1_97e9I@{%qXKGd zJeKt~&z}LbCzMxIRCNFqcqRZ{Txhvkp+@hB_d4tZ516Ey96xf(5C(opO8#0NVe{_mzdPQI{mo+n!= zyMbvvMa6%_2YId&GouUO?T=-BQt+G6xvpBtjKw};-lyZu&r+I9Wx%Q9z}2hD zmEbCUu&2NooTh7l$cx~@J%P)U`&gL^jvqhnAR~B!#PS8p;$6Upd+ZZMIfVs!9U}Xf zs$9=w4JP9#M%dR~%SQd%msjOHg6=i+MZNX^53(<(Z)eZdoZ06~oAaQon4Bz6B#7`; zEP!T$KGDKJ{)Up_WH|JHSC}dc``=Xn2FY;v|E>sC81cWWnkuaJ zzbjG|M*i=rt_rKG6TC=p^>XajXESy>`lV;Je;2!+DGorRmpgomHH}}c<1O)WNe@Sz zU0bj*=&@^i_x#brW}|zqn&N8NhO9SNCI9`64Dmz8xClZP`NWs+vK`*OcgZko`bi`; zqH0Sgy+nUX{(4xHS*M>psOb=6^(ta5E%*~ZtT_0mTAfzz7+6nuc6*Kh1KmGt=LFdi z^f+}jIo-Vi(l=k6{m)GL%N%&$wID?IT#1pI!8b1N-utID$A_-HC_Z?9iLVeA+Z3~} zKrZeJUlj0+vI27d^K$;fn=Fro)NY5cy1Blci?!t_NHxBh>@_l3`-p)w25K86;2w?J z&d=onaN{giIJj>^2I6gB4vC?p1GQ*5*{Zg-7O))7)<-{&J)GdSR*|>MIL?Z0Vz|Ia zK2NAA5LY5+e%90g?$4hadmU|7Wm6v~$WY~z;>srWiJ{EZ&LsOEX7m~o_*V{Egi&g2 zYdA+umF7y#LXXcXK7%j!FuBYFCKVcpSO=e05*w?Mz7gdRp0*w@MG)WQ8;U0odr zHbJPXQ{4=H0e8DRkboRKNI)|x&6vGl7JP0y5amhp+RE7?&#T8VPaFfxzkh2hbn6D-BEhia`LRR#g`xtA9 z+{K-XOh(^%zmg#+>01ec&Vk4U|DSg(J0x692IdVWC&p$4CL_*5YSFR!a0gnaZ8G{8 zFOX0o>Y{O`eSoOrO|k3}A9k_3E%E7jR%ph?IR=}?ER6937ijv7QCBfhNk&7RKz}+) z7CqMjq*N&w7E^wccyi2w6O6!}T_Z@tF`oONh_+#<198;{_M` zaJN}qUD`|D=`rk!THE@EM3*@~?02+9iCoaVMw-q{e}{ix>E<}YDxSoVJ{+~6MgZJp zUc)g}SE55PQNK}zen}G>EjDw2r)9u=q#prZ2KeQN2ZEj$06$@1BcTisNNfwU13Q(5 zF^DG}?MJR``A=(?OfBUDx8377n{8`RZA~dbGc_|S=!k2v<;selu9mLKE`i)4lhn1h zD=ag~&$P?a%6=Z4Ahk@U)r}VF0mZd16R%bC4|~&X47igZ{J)$94Iu zXj{NF=?6UsOCBJwdi=yZgtPrwXf)>@#MynDFZ>y)EEnR5^9ei1+9dk-Vw!v(X4w58 z&!>gv?(Qz*u^{SBgV48m-r;RjTY~}v+PnRAe=)B&y3lmE=WkxY!DxI zBvAp&iKDKpp8j9D)c@47L%YhZm;y3QP%kW7LcC|sUq=sL0lVSx)(a22vZsN%a#e#T`QKuUv7VfAk>Xc3!5J>YwH^rG0@v;Qa zMrA@}H!U@1uc(v4&<+S|UwalwKW}$$7`g+}=dNSFfX{pXIm`%6G{7_G?a#X7VtNVJ zNp)YWjUFhJ=msVOKS3Bi_yCpL@OyzBMCvAq#c{i{S~kiyNk9q1Qj=q49;yyGyZ2 z1r0D_yqb)UP16iF-GCh?nEjJ$Ugn0su}UsG>d`yRrcSEmrCxSH=~(Y<2%B0jJQi!RXwXZ>Z}W zKeUHpw)#g*B_8_cc(4_KB1diJVixqD5YzdH_%J6&@#dTTI4GYw!4#s+|<6dl?vYpH;D17^&x-&sW6}Zs}P!n&0R9_>~nEf@#6scsAaD z028_~!J||g(rq3dELW|)M{py${)0-^$V0$7J2d#dY8AhTeaK{&adj4J%?06)tAY`= zN*;s+4IgJtvMjYDdnl^NpFJS@S5;uh%-oz#=@VQ>4MXgp= zD{9LcQSc{YKz!K7?&G&ePAMukV}b6}tv&7Q>aI?xrK zkn4IH+;UZd2fmhXiARpsz^Y_{eP_zgf~N}bdZ$a^JDR3eFC$jsc_X9kcsYXB+}J3C z(5h}cQneU;06_rF+aE#T2snr%qC~+P>pKMCwymbd2i!j1MZ>8CaQiq8N5jD!WKOP( z8ZZmuQ2@*V54-?#kTGrF!9Z38Gld@~CmqQECN)v`)Pp~H^4qN297=wST{9IEN-{nM z_+@M)guP&qZu{ZM;QMeC*94N^Si1+FZ?Qf&Y-|VOy0Tif?2iDus(G^(sCJCb8?5)H z;xB5`NK|Y(J?A&k8>gG|FdRn<+S*MGfnqU#1$8SqAygqWQyWxE3JmCk>hTg$Y`+QB z_J@UlF~Mz5HIH^La7_?+ zFR)DG5{@QFl@+eygt-J9-hm?<1N&ArGp$BKw+!&I9`Fnlq;F6 z;x{+mbmX~SBU@F?gL{+*qUl5hxJilJI(=TcHoWZlxMs3IKc?|0{XZo@uA- zzSr1YlR#+FYPrDLbWN>x&j+m_i+v_PHCzDC!|;a70!d*o=yb-HYSzY}^PA=2JRS>3g9r0_d){P{b3h#(hMJQ$+fvfonxxR| z`C+Ehtz<|jRv>PkI|Cs>d8IAC>kf_$q}>R~5fu70@a>$CHt17uYzSRk7QwM077#pO zwMt6vVtR_Cm6vIU!{c%Bt;z+wZY~t>n91#4dFPr+*-!Il;==j3Jp5k6$t&M#*eV2$tRasUe4?JlkeNayY z97QAvD~C1gp+woZt8@p z7y|eyYGf0!!#=6kQf@%PC^)Zy6TT1dS_UQ=`TIei9z}WXmAf^?bs-@nY{^59GlaUc zMcR>FgC^ze7CO- zwk-rIECZS#d7T%1bvz~@GAvY=4Us`)ET-zpa7BPuCpy$XrjLLx2V4yn5NgHN2#^JvO)t zs9BZ2NoD~3c%4j5IP;oiho0?y^HtZ0(^8_x-lX5g&|8pfkX8P3ujXR&_g_oNzmd`n zub(Yv?l{btzK~bqn#tFdF6W)ix|`aY%Z#$!EfDMT9HskHx`E0FY_CtqflXdpEF+cQ zV)ixDK6)IAVqG@rNlgNMCN(BwlCyT)>JvT??cpvS(C6_MvT}-qJ)tM7MVWD(>?lC$ zvx&Od3~JBGW@7`c)1&aUQeCLUYo9Vj-lGdU=KeihyPs&ays(#GrBrU|i8}AdDYd#L zxI;ph^md12ZsHMvMM>mka5fp-cQoo&SH&HrErzPA0L0Z6-kefJp`zN3t4ysq`1R`p zsMRNuH=*YDg&l)W-n$U3-au-5-w~~>lAF)(IQnr>{w33yaeNq?(##dB^OT4_-9AFy zKQCpeNB^Rur~ysNA3a%{AocNctb+pdgJ-gjCJiuB!2H+nbSsO7c;y$;CY?>cDhDeV z`xF|Z8(&0TPg%R&g;ihd_9JWR#idaytv?}w%1Z-5W3uCp3hUuNMxLA=7lNnM8pc3@ z&_O2md5^%gKiR*)mP@5n>Dh`0ewNgUefc^m#9~r7TAe%z7>GoCXLd z$&9mK#PP}N&)WP>;es$QgMxXskfY(8*~&@bfW;QC98IbRi!FQD*jR9f4EndWZWiCI zti;V54k|2_%31|RL6KEd`DOHfA`Lz%RmwIJ8pvH|?~un|tv_qUR^6Mx_PEJ0`>L$v zG$sz7Zm_GJAaTYm39bbvLtq($OC=4J6`ziF#qAjTr(mz6;MAqdQ__YdgA~@MD|@dU zG^`{4`kH(^mwVpIN;*4uu+h2iV+)CL_R9lQVxxS!9`O$8yMR+uMw4s|QCJ zj5W7eWDud8VIh;t?$k>@vNL#K6@`CG?8m=l7oB3Ey3V!t17?NaRQF#R4cBi7~0JMPq36q$$l1N zp@-{XHkX77rtx?MmxMxLNxiGEzrd!NEfbnbPtKC7tt=kFhNZIi^3_rqc31|&eWIl+ zjyi*?4|K|KB;-`t$bJhlhBcmqIwh!P9|YHg_&5+K$>z=n;bjI_xth#a^d91RAh|4t zNl3;*&twAU@vx`WrwaV3#rPf6N!Rcgt3RLwG(x-a9ZWS@d%aF%s@uTwN=X7QGxOQ~ z8LW&cJ4NFyc#XwHPDg^RpfJwGgRQ{j9wnSEo4j5@7LIpPKsU+<1>nPR;i`xKobLI^ znUJq0b7Y*eCqwLNjcl7y@>pLxZ)bU9qg^dfsc1BWl+@RUYziq+$V@;Ht64fPC+lm; zPLCVBk;|qY?Nv^7&C3IhTh}f%H%pe?X}w9dXx=@J%?I1E{Q&;X(ps?1yzewOPk6o; z7y6&o&yowk!9t2W(x?x1S>t@;GO$a?f%pHe{{hP2utI@iz6S@DLXTAYM(&d_seboq z%jIin7GwfAbQYAEa?Ii$bNpS`U>ePv!*K!|x}KvuLgUf?8hH<9np^K0+!)w6-^`Qi zH10osS8>!8H9peP9`6MXT}`jf*J}F(FZ^168BBQHT~n=G_;$C|ZJ_#IhgAD6e~(g$ zN+wlTkGPJsj?II=hg$`Xuo#u#m_V}*fFe=JDHaM>i}eICG;TSsLJQuWiTw3$unmnOFkO%C3xidl(fJpfsbr zQ&rOli-A&dx$nEi-sYYMM<-V(BwVWnPfrVk>R=DpmBh&wK-n*mN}YcFPneO;x9^ZS zf8GS3?_aMd!LPmFP7Zwa{N2lOH@~v+-C()L$JOXZRRs?`@IP6O%V9Bs1l?Q@1Zt(K z;74x@g$ysR4eeeN1>l6m6~Zs`q~L(AP)r*=kSZ6HwbBgA0~weADTNi_jWdI`I6a7i zbo{?O0pkZy9siSMXk^X+)n@KB90k8v5Eo1FE}M&M>VbZOKZmQ1w{OEG@H%)I-kFyV z-v<{&!oA^OtTzq50!#qLD!;&9!Q`;ZFckt;1FQ&^1_L8y9GD+$EsO{QBk^e1cj#N_ zJutQc+66rgEra@l`DH@6&;Tgt_UelsiA=^=f?lnj{eoEiO?e14UP*^F zrbg?H+@3w{eJ40`o!<4v3dI$DS!erA1@YO(<6|eS*_GA`BkptZ%O6`C8tkQ{BidI+ zq8N>ScHK&0V`CFY#7#|2r+D(qey8jk72<(c;hj;O(;#1&sw`M^$|P-4v(O@69_WUksT>Y zffG9Cb=)K9-zL~!1U&=EaQCs-p*7$%kq+8R);&Ce$7JMZnWRL$!kF)R35ohdgsTb8 zKE)erLgC-d2&|UcmEh7#W*~zSF0hGVG*Sx&Ldz||I@UE(qYzdT)s*$#?!-nvM?{`5 zRBjzz7nTRnOAi?XPxZp7tkJ694)@)dz{7n%d6@wk??MEZ>VEqKz*4yENo#Ix@EDXAJd8Kb*5sGv1tG{==M&vE@5I;)~iEA@{ zSr|UXx|^DK%g>XG|xOY81tKP!RGF*?)EJl_3A_iFZyzWa~2j^0qqUM4vrxGN6-px}_T7Ev3u5WGC-TbvOlIA6;jhpm3pRbMt^_RmKrv-|3*rLYl?FIS( zTj_lv19^{VMw_oL#ESTWU)d$DYSRik?bmJE*lh)dTT+^hfeM5Ij+V<(YxNS~6CL%< znXCTAKK&Di0_Pjp=#)B8G39b1j0=^W{6xS#Q;!bgK>nmKyrg%5K__*--tkQ|YVa6i z^jJ>z2M5~=1s4sqtY)RRoyGFTm+5|o$V+Rp@D>D7or{;G8NMx?Ls-85_cxoNNYNGhh1E8|P zFiDZ7xP{ucg7c?(Z}CbeIBzV;cX~~{%`!w(Uy>R87}R-Q)5zF)Y)jJO*Z&rg=q~7M z%7b5;UF#F`<*{xKbuorItna%=HL3Sws=J1MZwEZL%xQM*ymj)fkRK%}oJO*CGrS}h z+qp_XH=3%!6m)Kz&)2% z-YsI%me#3xEZ%u?!7J@u;dkrTZ%gsZ^>T@(1QKY5z}-8`H>`bBc>COoCy+G6t{i=cArolcMq} z3cXRsm~uNpx}bT^7#?4RT{0>p;&|Z?ab71c=N5bKgdPM@BLk|S7ocyGjGa86ko5va zucYS;CWw5rw4#lsj`4d>Jw>=cte*{vcHu@!?zCKKI=7F_?nn~jsY6n^)R98-$dsJE$&oOP$at6vNs zFZR?i?w()vb@5$PiCi&I5W<8^*Ghja5mp54+#jVy6|Jh;l02+liCBRuEY3_p<>Va1 z)^01VoU#AtzHn$6A|q9J1C>bDW?1jZ!fs^R2wb*)ng}I*s6_wknXYjxI%9A+r!vRL zp{CBq()0HfA3LOQq3>se2h*mHI@tE9TeNMhW8eeg8xHrCMgZaL!J&CrA1-uRadFV~ zKEp7V;zPRGv+D^j?bIE0crINg{?kwF9kQGIQI9l+-UqLJU3|9XV;ZzPCl~CZoM`jR zC;dwb6l{2t# zc{VwF=TX2MXBW5^QKqHk*b`@VjtZuG|#XtB{O$wXuTd9}#&BA}%zIx9iE*c1Z z;JN~D|25)Tm*&-g*!j$iKTA2MkQGaUlY;Vx@z<-GZs1IoMAaVPkFDuRdZi4_qxDTR zcao-E!|Rld>kRkR_G;@s;mof8=7B#qUF-^HBDT2iYEHX2-6Hs0!#zg#&jZj<|K3B`tYgi_##hhYrpj?e!C+ ze!nv}ZeMJ$s6WQnS5k|vJ<8DVJasJ1sHx0b&n95_EHqgJZQ7IP)wjLO-OV7wdJ?Vc zYEElWOBCwrsN0{$xXg;QtXBn0y_vn4AcWC)RM;gam?+TKv_2eV$1#Xit|yO^(&)As zG@Z+e_{4(4qHKi+^59Cse~*^=l?t$^BF)Ke^QH;m=#p=Fbs;?WzpO08CUx>cu1kXA zsz=`CtLR@X3>ulPp0|W#I_YK)K~J-fXrpaQ>5S`Fs%9QK#h=uwb)woj*FIm3v-N!Q z(1}xxN1W2JeTZt%sT zVUT_x!iOFp8e9=UNv@7>E23)6m0=uGhrC)HNd{1 zT~4#fc-FQhpmpN=h_AP$k$H&VY?N(*L~Y<_g+}|I(I8GmSyjf z^@p|K4y_mVy>H2^v<+h4FW8G9^37s!;gDO)Gzq$$e^7_lBB8XQ`~RV7HicZ!vwW9QwTZOl(^dvWz~^gu}310Qb# zGve-RK27H=JH?RiXEtWc{rl0E;W+bLws9b8gX@K7xwk7!ls*AF46=;V{TzYl*=E0R z_OU5(Wn}&;CLrBQ^A|`Q)GzZ0Igurd63vZo@dXwvl+i-qDmZinCu}D+He}VZtDaD3 z8ji?(yT5%#m{kDbFV~N}a^2>8PpOfnH`F8++hXp~MZ{I(6&(^cGBzVP(-PEY_gLZe(SJ=C;%Zd#g=UFG9^2B+Os{_SBNf=q!6OhL!jdH(d6YV0)}=}ob4 zaOs`s=Z0I409m)BU=XyW+idlhM1KTg(^T?Q&tbM~`QC@CE(hE?|59>3^VKoL*7T=- z=>@IpdxX6vhF0$q$&p7yD?Epfc<3qD+@t;?*F33M{W65D7la!eOkIN&B}&V6yzT9c8nnG~$1&K{06 z9n#KCv({RsVKU%;=ILrPlZX2iaAjdWwjp}*#=WG^E&t`*iZ;_N^D;g?wVkqV2#X}y z>Nd2EwM>@(sCKUI)rzn=Vm|9#fbMXzi2aOP!fSuM-kc@+`5?QmJ<@RJzYp_YJ`Hdv z>=VkD!UUFr;!w=~xvp`bcGCdTSBDLpXoO?pr#Ab6mS60p=!mJv01erChb_S#x4&7U z_vbfMKJ+BALkPP~c0-4WQzNzZ`*!`TLu*6(cltxO+!wXY^8X6}t;iq;nr@sJ@HX0T z68f5dAO)9;^@q;NpYFe9ucj5YOa>*3vfV$Q6Eyq~eUHxWS#GdY0+;%Jrhf?aeD-?3 zMPE^f9)fYFEx1Y1*U#BJ9bxR84UdmLdYxpE<9ZF=a|8%e=N&onu$pX0Xs<^l3gR_AGlK$L5#iflG|x@=j54Mo!k&OqzVR zAm6Qb{AB7bWwX4b+i_BdyZjj3y*h*_?)4qj&He!$+&fWt?1~!``N8Pi)GY@sT$|FN zq>rrkdq_ldGq1kS-xdPpK>+c2RV^ zudKCkS>Yfq`sJ~GQ@gM9NTB`9<&C6>dgsl{YRu3t^Jfu&dJshIK(e|KE4kgEc>N2t zWyQ?)xYEn(@9h%}rVq{?7PM}+8yq<#!$dN-rRrR^`Gp>>Z9XI#EX}>_Z)se6xu+|E z)2-Yu<>(8&i#`oGn>hJIA1T#7fwDG_=b$24yS?EG>hIr$5@HU=L~}Wby85|-Q3kuM zR3Hj%YM~1C4bV#KP(@VxA4HFjYwYL{BN93Y_c5hEVsL>}%>ltA#MQVX%QDbVix2`0 zTW-uUNqU~Ys5QN9>AyhT(w+33wyulj-8bj6zBRQBdr zq4wL%EH>+-=x>~th)~H0B~y=eL?@YlHOzf&UeC^xU1MPC`twNFR{88s4WERNzJ(X; zyqxwY0C48bU&66ODd2t6Rj*zxy&f_VS%Rs-BI^5m)aDPNAJ-P`H#7o!wzZm|Y^5E>d+K zF=Xv}wWo|p2)nG=`Pm}~iAgF7c4m;6{5D3H`Wh#J+0(Da zhhsMXl8p_#YZ~OGb)-^6B5U-K1fIiu$qjF8PKLU-G#>STufZP7|u3CnvJKF_WaM`GbMmjL^vVN<%;tEhnMh}Ad)-e(Z-FfATaHXvV7v^N2fctK5o~9}fdTCVJ)66u zt~S`c;W@<4gHP|c#1U*BLENkV0SJq4&}!CgD{Q^73BhcIc^!S)w_KqHV_eGNKQTWS0(TKlF zZj?svN+7zUd$82p6UD&q9e>`1!mD6P%XbY6T+6*b~ zVGSlSElZ9$o{kBbZU@s<*CABML5Et)+m83YwsF z?ls~LJHt9G5^bkEYQogy5SB5+;#!cOamDYDk3+Hr~g9=wo&f};I>Pk z*Rgu>9Wsg14712#3rV(L1+Ze2fz8&lq&F?z7V?$_y$7)QuWyaR4w@8qP>=7gjpUH;Y1*jHloJ&F$rdN_Ygb+=sb3pLv~6TRh>pMG6N4g@d8>No!~@SZQCV!`b5L~ z7K>0(Sa_G+5|R7Q&w|119G3o1!qh`K^w`*~KOUh@X{;+yUjweIBHi{3fhWECNL^;6 z=ZJ_IKzQBAlEpM2Vj9q>sK)ujc`2Xwf&MCLkM)NBYZ?2c@JI9NO;(Szr}JG+hK^Pw z>)1jmiJSbUI|aSb)DYvX@y9t_f&ui+syD3V)bk!=&}AFgp>3^s%wp>P3-3ptb1YZb zyX&l+6K#i}L7(VfA3;|5{2x3C(I%60XGn1`W4a2Z%7*?%XwTdE7 z6YkW8VIqzp52>3w(F3JYC>533dX%1@RqIYsNp)9ub^9IPzkV;Tm&-Zly3WqoK0B`K z{ds@hZ+C%|E9;Lt?VSAUbnHnFOPby8T^%!cMdPs>l9}Syq%5n`=<3%`bKKtYptIF4 zAXt>50mAJrDk;J?C0?si(2S((-z)$8%v?Fqwc~%MR** z-9<+sq{rK4!n4LeJ9LOB%6e{i;*MQr9WP={&rCJXkXql}DE0erY{ySFBhcc-p^??4 z4Q-G2{O#~}5Zyj@yN6!?H&gFmbnv|iPVbdN-}(dh0A=(K%IEioBbfT##^wcON^V&_ zbh7au20M2|h8)tT>Zn>b>W>#ikT)Q)uO9O0#UE3_$hj1|II7+6TW9?`m zd!1wS(=1&qyh6ad*-g7aE(zRq<+IZ_^D9E>!!g{Rn$>8RWdl2Y&oi0#$U>j%tM5h+ zPa)0nzVjA-qhK9-zS38#Ep3u#!S{h zhNmwIAe;?V?fDkRSIrfrdOQ=iJ}dpMyI z_ZAo>8dyIeiR8(n;7Z6+MsF;5RsGxqDYWw0-6*u_%SyLqU-S+}v|m=`sUTfjYFNt5 z57dhwin07w$I;=-l8Sg7BhWq^NG63?T$Gb+{g^pc1@CB>_k((ZvCfz z%k)BWo<$S+=1wlG8$@k_axU?K*K5}fqK(EY33<3mV*E?pn~f{fvQzl2I};_*bXp1+N2*+v9P+ z$|Azul~9=?$4`y7v0SW*<>!0MT7J;EXw~b2je`L*F1#rbDY4<`>No8)x|2-_gJ$kAZH_QU7h-Zrc(WMWW3zLs4Y9U6 zt!r_q1%1ei=(EJ5V$+bfDig`Yv`;~S7d(tE*Ka6z9`SL?%-RUav1A)tp-r1YD9SQB>Eb6efm;M~onHcL&NCKU%WTBFiu3$w2z5;!WELGJ-) zFtQc}d~Vdbw`FdcF{#*)lOC~W^UF0ZCzv1w#D|2E~;+S{#0(r^TNUXV!q}u_i*ictMj)65&s!Fl^OAeXx2hCHz6a) z=;F>zvyetSTwEdV+3(Ep)wi*_sMEpMiQS4CuEB<2WMWj@h|Jl1Z6D@OTkwcdi^&)r zA|vVz76p^z=>{4UBYJurZ6Y`MM|JJ@3bPndD0g9$bE9veLKpefrVBwYIMqe{<{f>4vPdY=x{sdw$(>wdu& z0ql9SOs5HJdxDb|SOiC3?~K?Norp_SK}{TI!XKYM%E$AxjZ?NhOVjg&0OFU6GvUZE zUW(|oAO>x$p5l#~fxSiQ;Q}`4Xvl)T8x8-uZht1HyP+w0nzF+`+Lkv%9p#!F&0RP~~EOQf@!fETPye9-%;# zWK_d0uE0D(^|G?q2g8IlLnq-0)yRf4{E*u=>;J@+nyFn^Yi6H4O7yr@@B?L0u^L$T zBWaGUNn@wl`{4^Xkq9YbKJL} zw`qQ)l9c2yV}_{V{)gR!yQD}=E5@U1%G_2A$N#`fWC*{#RtO)XToyVC?s`}(1SFHwoP95U7`ViX+a*-Lsini6M zHmGo5vGt4)6M!q;8m5aS`aBXxfz}lE_OP0cU4`=av)TUb*8KK`HAg#FYCS5%O3$4h z>((3YI$I#JfIn5Ihn>-b@82j4pbP3!s_VgWxGA61J+CE?81fmyY|k^lOqjvjTJTct|m^)mqORV z7j+cqE=3YuVVMWaI^z=M;E@?(mrpoRdji7zGXP?1FF_^mdNo5Xr!Khi7Q$8LSBaAU zaC-l(L{nJTf#PVgcI?m_Qv)J>=-{hdppIZv|T?{Qq zzi|SmLptrkQhRuS@{5ygS3!?>r%1gs;+ELGd|Cei3;>qcf)1m>Ham*~Gl?HtL)AJK`>u36ot^hlB zye|tigx_yGXJU?E)!2eX1EqbgbHl_ICf!Wg6sL5tNGG`Mac>=+p$~o_ITQ?96~i9j zLbFvbhc7$dII*|Q_-n@581dhmR}$(r@BCQuCDIt@Cbn{ z;2odAJnbBGTxEfyC#urXEFBbMN$JobE{x!lM`MQ+CVOU4!hs*_)_P9FA4L=Vpem0) z!jxx>0l7A@4rSJZ9`fTc9PdoEAh`p(+vECQ8eNN=i!OfiZ`DoYM^;0;K;+LBDZH9k z8>%>x`CErQ7wy{A&H5-F+;d~STjRjd&x&DA3$Um0zlRZ%Qb#Gd-mtZ8oG$#+q-Y## zw(}v-r1&V%PL2?6eO$jX?w3c8o?!gX0;R2Pppvm`Jp22uPKH^tG);!yLH% z5_yv%&z`sHeTv-WEdY30;uNdxjjKvVSp~%i2VAV+(3@KaS>bI*a&00Cmv2c!&_?&3 zTvOuY(VA&l4wQKpzL#EhR>$@tP)_N2h_T|wuiz;cqHyUYgCkTDgV-zAKCll|LLHoQ zYFx|ixy4u=#J%(Vd(htKhHuspb>v=mzF^cD(puXzcJt_V%`S6YoR$vvy(e$J(k=PB z0;mAXx20)l42+vSl=Vzr$ZeACGax89RN1y!bZ z@BY0n2>8yRTAw1C^pBW{s+&#-cZVA<5saaZz-tiV% z#QDdM7T7PIqgy8ffE%U%z4D>rJCDAc3G!EEP^qn>)vW`cUZchmT(47Skkx%q^VEl^ zQ|UD<`-*Mx><0=_T)idw0_*yoh~icX`nN}f=+ml}y=quE5O__c)}ZV{RKj~+JFlpO z2cyL$xWI_mDQhT;8|^TP5Iq7+%NQ+I_Fxm=C@qzQk87%Qw;Y4zXE zo9LEnV;#26>n$Ma{;X1V-hTv6@_pS0`XS#4qNm3O(A} z)!ZCvKL8;jE0cTt8C(~akEiCD2}AL)B{ki}1(r0B$x9wrQH*x<2okL(EG%WS5_|^o{G&E*`NTAPNsd#3YN?P~}xhdlHEkx*{A|=M9*gyuX&z z89gvF+V=Dk|CSBQn%+?G^W4tQL|jQP-AzmhA8v4t>%E?^s;4XJdTQ7U8cWUKBn&&` zwC9Nu!?*6szy1LRJr)K9Jdf$r z%r^eflw5|VfMkO<-srdD7trJJV#a-^+sr}u|8pZ&kxJGCIL<3ix@O^DNh{6&C>~Az z^vdFHT`45T)z{Ggj>$dC<}Gm1yS7?MR!@7hSF0U(djLB%y;>~{{3ncXw;4h)0VZ8t zCZ|cx0%tVc_TKR0MfF3osVoOJ$W_^)8F^e(x{6UI1GBI2G|tV86CVA|RUnchY4jSt=KEuG;effnWB` z;k>^ZH5BBA%N)GS;%I^1J=rthk}2=(?CduXP;ZmXcCFY2p7X$V2RZp|=pzgzhaBt*EUidz67P8!Wi{;*UR%rg-m+zN8 ziJ8#;P5^dA^GY-}0x96jno{MN8hv*lpiGs9hBx1n4EgR};b>N^AMCs!C`Kffh26x} zg7pT?OZY)*0T>`a$`^ks(z5yCj?5Y%)0~|Y%mh(#zFbAtQAf=>^?+^^RXfQ$EOC^B zM$|AJPa*+}@jARjusxs}PZNYY9*}FBO=((KCuN&VV1PY~We-dink#wO2S}sz!TefB zS=y5qEF7m9Y`G@#h+!FiasbCenMBU>A4B(oq}B7vPuMTOCAt+vZ8UHIBQJ*^$GgDs%{z1+dHkm!gyJ2 z(7fGR5i8VuBIRx2LnVq@7M=!LuTQ!_O#mPM*NPIi-0nX(R?H6d&iZT&il3Kv^ROiU zt8=4Gjs0(vOyyb}$&tQ0t8;RhhF5b`X+vk+tKN{ zuI5^`zu0v)QV{)&>l>K6VW8Fyd-&_QL!1bFR>m;h7LiOHdY&P&ks@@CvvU&Jamg=s zrf+dQGK;(@lTFW9*BdGRGuT^qd)+1_0^`Y*;z1tLj7R5v41o)xO(WWxhNU{T zP$)DMa+OHSexM%+NV;nft_={Mj$k8ZXPJ2r3)@?NS2pk(ADnNYd&~{&h`Wm3Bs-(O zV)s36!n{`y;MCWYJ1?|zPNv^EABOiSy9h8g_w9nWu`<8Z(~WhR2W?c32`5uh*oA!` z=-(P!8xJSbB^Y{lh1byyTM_pmO*7P{D0<(sUn$El$!Y6l&6juY3)&N-OE@_r^`^~a z=j= zM#ZltKg<&19&~M}iBTIT9nH8)hM1IVz_-*A{q6Y92Ht77AryJ|WoZWu*^p@o=V%Z(#e>j-~4A zk|N`JRhd6*kbWXJR+T*n|BF4)9-un=X)>$`pJKGgy;(%;#A54^LRD{!LR0d=307TTD++dab`@DA!w!}U#* zU=DO``_)!`fg$k90sVQ?gK|-N&?4Ov-1JW$m=ieNPUaib|Jz39#7?(Icq{UzTM85m zKEb&g2)gO5C%EaePPeB7XVvh<#h`j=Z89B-6Wd)r9`LEUw^fNf>@i<*>CR1DI4yy< z?wFl4p(W8C7b=oS+gSx%5E(C-LVS>Q?hIo^ulh;&8s+7?_EmI}4~>V03D(3B**?Pr z)%n?b9Dht)&kwgev}AVFLi{j2PU26uj5Mj1R+;E8hWG4U;{2q)Fl;-7ztaT`7oISE zR3#!v3qQV5>V$4zNBG}}R@bf4B#DC?{wfbJ`{7$61XUdl~ukG`S_ntFr zjUd5-w@6smy71BWXw*Ye>Ld$NB=>4*oa?h4`hP=zQeMJ(M`-d4WZ1_izFWuKPOo7o zD-K8FSAU%$@k^p_KC!-m584k9=FEB(aKw&xcw~OTO|hKUY7isEm}02$C_-8sGfCEq z;1w;on+1wab4ST0?<GHZpK zcx%-Te8_BD1u|J|uFxzm+mYFV+) z=h(Q*{z`6mlQANs{!#)K(@$MaQ1Wa=r>?x|MBvyH_!ImSS>FQbAS-8YtY=IogS%kJ z>PBT*Alr~<+#bIWgrs{YEEa=M)xRAb#RBY{XJ>%1p23}mlKVe$xsdX2K`5KeMcVMp z*^Ug>V2a7}VSBTLij45b%N^ zaJ>Y(+M)fmpls$`%*z*p70ga;%in` z6s@O}^RQwl5GQ?01d=qlsCr|gfFCtPVc@C2Wf>W5Vb zk(F{!Q8LcdXEBWvNtmOzlnmid<4AR(OvYN`VN{CQyv!GvNR&TsdmX){12r>BB3b6@ zzIE`gqgaPs`EJ-9kv!r=Nxdn-{J&)}!%EJUGz*;HkE{V=hhRB21^u?Ew6=(HaVE+5 zDqOXtPvXxJ?JK>=kdzym zbE%j@@!^w)FSENTwL<+(BpX)9($UIT@(AyiC*J@8#k`kAuUa7$6t1a)b<5u&gM`*( z&{OSwv?9ojBT3O{4w`t`Q2|Po^gS&_r3%;w;py$GjZMN~O$!qg{n#>!)lFT=<~1$A z)zAAy^GX6Eu_gyZ(RsH#2Fn0JoC{V^0h!lQQ^+SKK$sw}$YSaf|Nz=a{_U z`w2|mBMpDfuJ9s-pl4qS>f03!B;#qH(S;ZDGvmsG4(qAp3rK6~PBA&$t-fUj38WVE z^L5xM>P5Ok8;%o2vnlIHI}Y~MW$sg zt)h|w$=z8MhttfFRfMS!2V?fc$4BJ!OjfNA5+sTV|K>rHKQAcecNF^*PS0hoe@0sl zr+x83R!@fGtbx~O#>Mxpvc(UG9R)*sf7%ZORG{bglv|>qAN|Yvj}ul&F9)sJ>yaF8 zlWA2C64rJq=J^>uDoc7+-Pnl!dffY^3+67yCUve%U2$W$Ffl%Za1X64(aw(A_6I&X zTzmd?f;TrJmGJzX`43ab2loMEF`Iw19|9*iyDs8(yb^$FaXBGqJ`@}azLz`0vKC~Y zJ%|CBsKqV_87n3VI(g+_Hqx5CPi+xunbrEhNu063_LUNR;Q?R#=PkUyW|z_*?G(U05Ow>OpLj{gHPHN#8PZF4f{OX>8Mncbr=a##%!I%yc61k^dYg zKaPjxUdK9~u8sFhneo-4$YCJ>aApqhvga(pcIeLB41MPOpSf|WY%{wwTYB>lIF@3c zh0nUWV-xU%^R_=;^)=&U;a6qJ=!9{baTv^hZnqu=-aVEru*#5R&~&dkrwZ|STtrpy zHe6{O9(Sbq*22WP45{CHoV`V`>=@Rq-7U2=Mv6~&t~wurqy*4Ga-GPK-~H(6Y1k_6 zZM@r(vA<`}Hj^#zX=JNcSPWg|y~l&@2Zl=K_B_ajxY5Qp^wDQ!gEpx0hZ!OQdHF2dTlo1Vb&z3u+zehw6pX0J)TEF(A1w zwdIACcw1pd$VO$pEc^iPNLvLRKTmxnwXO{Pb@XK3z;{D@iTNu6v6(rHv9}_Uz{?xpNw-)TYv^S3q4FJ3B1S{XK z;aYbUq=B4AeeOaFQkeDpQ0wy7RY>t-L3*M&qn~t(@7ZvaaqV@>A~Km+NCs;+^$-t8 z8?N?~VFjlbW_HRJGV!R$6^E#)W#$A)N<*H_s_{Mg=MT=Slj%>|HqKs-483q?3CMfr z_ES~qzM%Ri`f#(1WJ@>_5|HXx+k2;=#PQG-#Ujj|52JHuQ{HclXVL-%b0?Hu+^^5&5H1KEv6i_ZRftcWZv(<^+}&19h_ zVI?6ejo)%D`H>z){ z2}tjSOGfKhF2zzEI;M`9PAS&WQ8Bt2p{|ZZxsG-f>gk|~O#zdsGdFhAApqVb`%oA4x%nHUS>5J;Yu6#4h;`I}2-dz$mF#4$MLS4x_!JIb?;U60CWE>RyBso+2yOzy(#d2vC9wV7mu~{%f%IAzB5~~7s$ON%9wH+J&43E7 z%o~gUMqYzq*AZ*&uJ22n1wqH?e8cm4?u=z(5bx0qWx-X(te27Kq5wYb6O^y&`?!X0i5jCn020yusd|`f^pcZ z{fp7TaW6)gB}ir1$Cgs*?r*wR~h;&PKZ9^{k z_dgoh!@y5x(4r#l4Igp)uV9{6UgJ~O;Iboud=ur)Re%5TjzwS|$ydJ-gaEUJ0&@dT zBTd9}3@AJZqRPOHPXl0pv1czu@d-xI7%0>&**EScdWV9UyJMj%3X5Z+~9^ znA9v(y>P7?LR)cv*eCyNc5o!xZWzXn<~gPx8ivjfE@$u9mE#0v95^W5v_+Bv38lRF8Vyy>z3EwuDgN{Kkw>^elOj#>uO)W zcxlMR#%puQ=W!0tY0cN!?q@%_#tLq@VPDN%wU^>slb$(s6JxZx7KtBb*X0G78MREx)V~h4Q>&416^@E}o5k7xmV0iNCfM7j(U(gT z4121=IC5v35R|JmAt}X_eI5p)>1?_VeMsbJ3RIH|g>053jKzAf81nqPh#XU7Ojm>( z3lITJCa6@T!nOB$Pfe;~8p_pp7)|1J8kXWOkc}Fcfe5QEhGt|BEKdR+CWS6sc$zgv z3)f%h{U=KAxIbaFbcwf(2Lq~JWC`RaL_T%BHD(8uypUe*k@vy|2QqiHT%I?2$XHJU*CzWPKHOq+Cm06Lm>llngSGm?y4l%g2;-ko3Zk(3{gQ=gA z+Qyk)=%5zKVw@I?E(zfkni}SO(@XMLC{#+5%K@qjQ?e4ygqY2B{*nt?7~b+{NM>8> zb(r)AVsWT<6`oH?61&`=;2pJk!{=QN!`lQJu8Y>(nWYwr3b{fLSqw? zFwp-sJFQ9xCp-+RpvW)Tf-<2BKIsulB0@?HW~K`S0s}12=_K&9td~3Y3ix~oPA&*I zu&ksV&rtz|yY=!EWK@p1okGY<&m-$-1RhrhkK_s+df}1Wy%s_oJd({O!2^XWS1ou`>ndWEn$vmSP%vF&fJKk#Bsyq^vlEN^ zk(i^xAG(6zb&g54exu<1G+mP9{^sx^6DiGlhB-&BO`s*%7&btW3DQ$EozB(b8eS?1 z)=_P#R4LU0bP=cgTIO0y)`LX3N;xg%Cbu?9Pu0m~=fNx55`)%MMkZ(}a?^tY4RCR0|F37DHhf9E2Nl2;%2gi|9lajQ?_0CeMHW>E*Fqfusw5EoGXtU`|iv%rs z0cTq95(Uq3=(#I9%>z**AN#lHhxVd{J0gqmlYd!{AcUybLwZ*sl)O{1acJEF$tF*UnZu!c zrEp+7a^~ffouLD&J4fAm^SzV>f?an6E`*kFpa!b6sOIm=SKoo(G42KA&`<-<*-kCn zsX6i-V5{U)GUJo}ua4wYKC)O7);kXykzrcClX z9<;~HpjcG)3O)tndY#X+pneHI=fp{7>Qa22@(wVK?k~iOuw?8sx<85;!*pW`Fw^LM z5hfbrgn@VJD43t<7w8UjIhSMCxjhcO1U)^<4oyb?^FK|GC#e0XL#Qm&^r&E1{MrhY zk$AT1*$Yc0*g+YFH9K;gb6sM3S+##tIj%@IR?YQ&IQLrstpUyg^m;UTW_dM4W+X1B z2hYOO#)hTdRzCZByGnmE2*bV=0o^{=nKgcj3>-@#^H;d3_!z;$^O_d^-Zv6KNAfMd zQUn9}+PByTQFrJyzvB$OkO3aKJa6|SbBgb0<(Rq}*1r`)b&ycEWrI+3=O2msIHk)0?WkAVlyv(#J=IGvaivBa=wZ%c=8swizr%{FoH2k-i{tR>Ddc*0)$M zUpECO3%KhX*Y?24f=T&3d71^>VfFB;P?>xh`Cl=({Q7i0VR?eIXgZ%Dr7T-Og}W?$ zw1f%49VCA7${S+1N9;oJ3Nk{=Pkpj7XhmM?6AF8V6@2sN)V7hS)F-J=IFuv2=@!l_ zxJDOdrc5BRSJ8Iz7mIx?QA$rTXDE^@%yP_31=|7t2*zr-|22QdyGN4_pgzx^vVzgAxd_+ zLBeG!6Za0{_A8(sqMeKW_~(QQ}$zU?0p)URS|BuhCTtVYSzx*65JdlMK}x zN7v2v*Hb73-*H)XeQxWZ+TtbZ=NPkU<4Gu&ipfkxLmGj(J{V(FjUn^{KOWud`BU3= zt)*i(;Yg0?n|BK|$6$=fVnY^sQ|yuXAG)hU?wN0-R;q@g9CppSvefk7xNXYtd7{4~ zzGW^lc2=FXxeSxw_S?+9QBi%}t-1NwXHfp4xNoIs%xTAF_no~_pB69psS))*|IfPR zE%DU)b%+w(w|4{oqMWEarfiwmh*zne=>DGtK2wXOU`8MV7B3RlkDa&W;vyv{bMQhAg=Rrx4g?O zV>lL}`nGjU1_`L4eEQ_UWb=3|BV(OnD=lp9>7@$x$ef$v_VCYKAyIhy(Cy<@t@BlHa1&|*G~m;AJIdw6iIIsj8gjt)JsP{DLdIg$@}0D#N3tH&`OU}fqqF{H zNkZkMl1FS`pU0HJj6KUum53XyX`2{qq053Dc!K^tzf)@M`#7Li0R23edk;F`z+D2% zF40IWm>EoFG>Il~>3zt&H-eO+9no6BxfgC64N4$*72!>Ll`E&tM|bcZzbwmJgNXbo zaOE7oAVPD%7^C&9Up|PG(;nN@-=6DMR$`-h!NF_~!+s}{kFr<-=sdLiA`G~|h$&}K zH-iV$gK(zh;>0~~B7{=BR2;eokV+LZhPgK@`C_yfJxYyVnTl#kA9`@1pdO09zjymF zWUk>*{Ev?%xsNYzM`-v5=lAxCBTB@U>!1p53}|#OYi>qy(4xY7n^k+vp)iU7;6s2R z;wAsEL8)!#^Z8oiUY>?uWZ)Q(Q5xPEId2i5QEX`4ZELv4@8K!=2UPwCi-|%`P@u;G zZs*oSH$DlIC;N){au8jSzcfMLiC({D~iuh=6N=PI&;a}N^x1@I&{|F!ZFTD=FD@TYE?bvMR|d~h*sTTnRZSg#3> zT8W5Y|BM@2lY4bFwAV5+ZX6BVm$wXW75#BxF`_T55NYo9*srwuZvNuHS99-o#+Xs( z7d)T1v-z#x)Pjz055f=&GPZ58P`WMa%^woxVo7WY_;pp_KZ~qdtjaD!i29awe3FY& zCE5)WN%KsJaSMX(Jj5B5biM!*#p_S?AIiUIbu;3Fy}sZ<@A;i;a-;0mD@vdha-4TC z<{VT2QH0dJ4|%klLk`FA5$m_=y@GEFF-7!{_JjCk^BNA3KC&3yqNs~)m$z*=Ju8!J z8vbgpJEo9pboZVts$%ig_@B+d!vM6hsy%+LhM zScwMCmp2htt8o=8;ewv?vAM4@Bu_@N)oFK39FDswzv;XwGC3(lE5Xwlafm#}8u*px)r44FJm9#XjKewLO zD(7;aEKJa%xK?lQk3tVb4I%&|gSL`t`DCTJE+fK|ivVc2oaMHo$t47)>*CjJ1&a-# z46!g5Wf5W$=}uU+4&thMQe@`lhM49({06)f$BEc9Rw5PXqoUpkd<0Oz7_od)3R_Lq z8!t3v*WwHDY_^gOFBe?d51zrf8a6=`1+$%dQWzGvUM}?Dn<*Ps6*aKNsewdQzZSpn zs%Ug+sWmf?_)jOP3!ZJccXf6J@Y?5eeyqafn#Gw|niQZ=OKvw(UJ={PylIxD0TFJ7 z4HYy}g2~zHEi<{W^k;I+9S~KV=x<)M+U#EZkA+Gu$`10nYj(#=tm+>(wt?9`M++ZS z2k~N6{ql(%r`c9G)5H5c4R#SyzqxX-eh42I3%c80I3h4b5MtH!$A8{!*ifR6NM8yr(*Gc`r zUS6CoHFYTTrw*^v4;@K0(xLRP^A=<36krveLa0XQDuob)@qnZk^@9`9cCkltU&E^> z%*Feto|ADpsD|g(D?33fLntAadX0v#8tm;ypLlz3kkNmlz}DVn;-Llhm91==AuS>|75D!qe2!B-`Dp!ztfW7?0^DQsoq^%$k)8j zCstF$$TB-9ygaWR=t)LHlpblizBR^vB|U&r8bNMQlMs@carNF_F?z z^S4k~Zc_VR+|T3tl>HU94_;GnxtfhYv5dbZVEeaosuYhAD`ZpHHcH;u`f z^R2gAR+Rk+Cb@+D!`O8M@e-K$p9ozCa2nY1KW*s!&1?Be`uO)X8#Jg%-z&7=$@)!&vQbA0~Wqv7{!$ikC^BSc*EdiU2Qb+n{+ z7q2R?SB(3*6HY}hF*c~)`xdun5qMZ_6?Yk44sz<*D{xj-RmLod)|%;Wq|EL;Zk_Gr zukk|QJRezI5OoLd&fO^wi%@IR5D2a>EaJpjUHuS0XU z2Ud{o;_ff!c^u6P8)nFqOrK=UWivYc=OsG&C14q_L(H&7Tncnt*0K~I6$UJA+}VOl zVu{j#0}kxVE~EX`^YbJLeg&wPnL%;lSwhwDj?x7m@axA_P30w7Kk~T8Qo2Ybd0o2) zS4a2!XOwnLGvF$)u*!cDYBzwb-ybMHQcP_1*DN+K94;mr_a-SDsN`k_xNu)RtUCc~ zFB_`MSVXW{(Xp@I0D>ev)pqZF5NwEun59i|W3WOtZdnwtXgwEd%dwM^8Is@aa~k{a z|Mh)^iNeM|MHicinC(T33-_aXCsC!^_Y%bjx3`_eetLUD)w-I0 z5QnaOyVssl(mB4~;A!w2HT6Tp$#Xq@-v%cn+4f|nXTE#xY@;G z!)V=yROG&6z2fl+`pYl+KquX`BxDlubI>Al6>><0Z0VK1-aikTKNOf1o>8AW#LM0B zDY{tQmPdVZQ0=u8D(GXkB_I=!kTyPDg;c?e&{z4UZ;(=C70WgqIkey+KAq}O`o#L!ARy@g1$#dE)AyP$gRp?q9V~khzrxMGj z&`dMDBtVE=i#u)ib(>BkKEd? z-EV)MFzOwX7Vp7xOW};8cE*O{c5GSZW_7!keT{iwU$3md==YcMa})4mdyv52=*&gw zT&uVMHE}hL`ZKluuaLFtdjp0X({qH3R9Z|kCIJ5)d75x*rH%O}Y=TmWXBDvlgEpLv z6!XMd+Fa1(ekST6i{a{0OP<}w(B%o4tUiC;Z56(cE@Qb?NuBnBbh;3xz5;ZbQ16$Q zL`x#Wm^CYj0Ybt_DmB8pz6An7z_B2Dm~s`xER-hrCFlZmFb!w3YZaXC2hvo+H0o6k zSNJVdl8DSISZlS1Na_Jm>7Z{9d>ejjlA{v=mF`+aK(hT{n>P5t0e8a7VTS@TQ_jWV zU=C^}8l7H=*CDww7~3SmY*;2}MByPSAJhmD$h2A%bMR`wFW`G+Bo+d^yC7Ih{yXps z=yHSr&a5teDaGf=tK_S-N{27NG{fl&fa3QV=}IO5=?;IDkg2#TrE?7#I;mhB7zea2 zN@&y%bMnF{;H?GfQ344J1qFFY@M-E1;qj|PS0BAf$U+A@@z_KkV?d8c$Fw1Z<1gDgwPes`$gN$- zbaffJ(++#(=DD`R@8N*t+8r<3Yh=c#mRKTjEhguQs5mwGvgnl*sss`@pVM8`Rz{jD zUG`rDdIM|KCHu{K3|i;?vT_|cngian>F+nB>#GqmX`(q~+$ZeoH9#&xim)jl5i9Sp zfx^uPOS%C08W>3I1VG2GQ#4e`%)2|up!{5p=t)yam!%sKtQDrWw*#plgqORf>n+m- zPJ#x!8lRBhn_#oFyF{w@QA!g&Ne46T$Opa--H&C4JGQhuM8TgVxh2W9*v<6o3M)R7 zu^d>HRL!;4)$!}5N!EM^K2lG;nOa><3|=_n0Iu4zw9;%*zRC;c_XB@OKPSTi_JsLdoO<)(K(me1xbD zc6);ebr8Jb-XT&RG7N7F6ne-)(@=T(=2wUOBOe4YSC#?7mFT7YBV zS1Zl@H`N)c^Y`*A^^_V^s4bYT=d?-kWI~+c1J&&&sOC1>#Np;M76M`0UcIK?U%{Y+n zZ*u4YjFdxf>BcZrZYZO}Q!{{rD^tSq-Y7fzNi0o{=#|q@EtPqR;I|5D2xtz0MxUhm zN-{_tsx*!s#(vyCeSg$*doX0EH87oAz8|R9Hd8V1lnbJ^lSl=yGYCM1BFoE(SJ7&i zVO~#EqnPPt-K@u*#NdNzMubZ{36(4}Eup*PDwAq%cG5MiLS?P?G8N(2SQRO$L? z77V^F(xvh*Bd5Vv(cqb+Y4G(zkfwiV8hmXzyP<0ueC<20JI%Q>O`-1n{bU+_oiWmL z^w)SWyYR%PH47Sp_5>dCS>6H34Atd#WAuUhCK^b+gi*_Hx!58hBlsuA!z$tb1TPk?6u zW^JQM;kmcR5uO9H?$M;(j3+UzgjT8AI@0PULUIF^1u(detKwe&sO4JFk-#5t$ z1>Q|88p+3)S>I3qnx?WCZZt6CTbD>@Igx#+)ybd@hLUSnA(VE;r~#DYn@K)WCDSxyO2A)EmuhPoTHfG=2r7w~D`G=3B~ME3Q( zXiIa_Gg5d|)`~&&rzd~Z{HTUeA_JgYN5+jZB-L!T=g15roub~eEkOnHrY4pIvy%;u z$I_`6Fx-}gr!KJ=92`2;d#gru)PB2*Ivl^K9~7viIXQ}X4Ep{5UWhqaugQhX{SLK^ z0`K@19>PNEocgeE4!)T6it4u#&M7?%sUpql8$!6^VbQR>3=;3bg_B)$Ew}l|&E5HQ zzVjLAziqk9th2a?T8`l1u+RQvag8p)A~{s9XM zshaDjO&R%a_g{_LBSBLNB;MFqB?$DxioES6io=nU5++N-P&NX$<$~8!8FrFO29+HB3V`(3dOdL*xzlqnR%UKO4?6Ek#&>@SpCa^)r~c9An8{Hq!KCl;U;Yl56eeln!c zrzwwWll%2RG)+I5lLNX9kU5lC+M?;uoHJ6#Yu+%VR5fvX7P8qq2&_Z*P!!;Knz3df zPPrUm4@-mu7ZmavEVCY$lKsR#nvnZFZlMc)QSqMi%)fS_y8T#g;*Pt6Mp^zJR$Asz5);)^hcBVmXi4eAWsy z7dYFHZmh)8h|NYc(1V%Y&@89sa_CSL=oP7?8#Titg?o3aH4HixJi4X5AM9sk*aY@d z;;B-wAFYWBES)5Zif;lt5`)mv>&-Gq*u#bjhNg&;;FiO)F*o45*^O9)5p(JiEZt?* z%h=W6tZH7z)|Ww$y=PF+AugLjg`dO~n5(VcaVb)Qv;F#>WGdn6k-%DFn1`=`> zf>HUT+c8U})~MoQi8`c80yF_~pOf_e3V^dX_X67y@_BW=X@n$nLr%?B&j+pEw9}-SMl-h=@~6rkez&N_2y*AwwG=u5NMrK ztQG_|pn$nWNGaq_Pc}vAmFkwmUF2G+5Ij5Gm@KjOy4%G;IAiZ9EyV<}ip3aC0aVQ8 zPOxt)4P~IzG(&SS@GqTTqQnbOz_2!Q1gK%QNf`n=X2>a(zz$QR0>vwseE!*@QM4#; zQ%a2U8zxb2j2%o7D#Sbu3aeLzxPaOB`2ed;AOoVK0mwN4ljRNurDZ4xv=q|;gc8?N zD#L_gPaNFM1+2V=va+gqmD!(WofQ!F+@|oLtsyP-li<2pR})!f`;ejD6OlLcG3VpEzQeQ4n8^<0;cO4gCKH0 zT?o^D1D$}a3Gpi}gbuCnhc8Xyi?FpYEE2S-5PTWCHx9O{*4+m<1ouUi)iIzEH~=hF zQZaxLkO@l8suTyI%R!gvr3}z=KvKkpr4+m=%xyvU+tp}$hZG=PVx7rLfuo}Gyw^^Nb~Qp>YNf|N43x(q>AZw zKHE#M5iwuxuvcrZfRP)mQq7J9CYgO5XEH6N8l9smsNu3Iw^lIQq}EP17eITP8y1N= zYB_7erFsg)6cK<62ih1_?G92~l^nvI6y}QRm{@>A1|J=T_@I+96omC zd84Gzo7!m^NAyJ8(idi?u!GqoJ;m(>-z08r#Lzm#;Ak@EDC>S3c<`QCNaAw4UT-@+ zia2nHnO^?6^Rw;(X|@Luw_fSzSJ6UKlo2W*T;5(13=&V{IGlOs{bHm~j80)d z+|gywnGa+qVlM_&-vDV-$Nb$;LcKzedL@it%yp2dmG&Q{+iPPGhaT?NV&+k?S209` zEU!bRq%o!7^Q*YDO)ys9P{K(NHB04=Vm9XB^Nz}XIxvc2}Q(I4PV zn>U8sVB0 z5Wf)y%J?ak@&`n_Ml>l*p<@RE5kYH5J%U0#&vd=TbUxO}XmvVDth18Z|`Vb8Jw4r@YqK`nL8(CdJ#`7t?vlz%mckoqHd71z=&? z*RUK~Aocxc)UK#sjD+uCijuH(1MsYiN}`n>P0_0fdb`txhUA!9aMn=B1ybaWLZ!C` z(V(fTUO5EB2=|V`6p-G7wln1qnIV>f{u%Wplf|B%PBm~9%IxoKv9FQZq3a<=3WTyp z7J}6{_N5;~jM6Fp(hg?oB|lNE;H*^K+Ki-;%Q5ZER1xtKxSFk>Jq+trw!Q&f+9hV! z%C*rnp?6yo9t~e|Hf(69Q<7mcSX13jFjk^N>;GXou$2wh4<-D~+o!ZHv3Hi7DZ4{- z*xMcK$~EOQSV?`}A#F5#RySB$A+6t>2N(BXGYvcjK4!%#9kE|WR|8^*i@T_8#4gv8gOpoY-4uHbj9to;L?tkFn7hc(U1$hWK$|WyKo`M*)xojQy1KgJsW<<&f^D5FV*|^| z-2a#jfCauhsd_!0sbhHEsM)v;F;6eMyJw^Vnh{Z9{V*`*th8wOubyyKShy6E%-Qbr zW}oWH8Ti-vHV~K7-2znp%9p!28U1m6^Z?SjUx(BPA~3#^KzlclJ-JLud7md>w}E_m zyf;R`ra#ojY}a)DWaow1bfOZxGSTEi3J^d_>g*v#Dd7Fh`m`)wYdeQ%pr~tT`W#~| ziN2N*c2R4K_L^`C$m*G0r={Lh!<*)uJp)Zp3T1kVRnDulS80Q*e(Wk|pR^?ehA)$q zw1mK5iDG?qaY@%*x4;=fMeu;&dyxSd2xkzuu60fT1^QeDwV~`!YH#s#riaI7>kM%SMtI;CHW;C?vXvj zmM_zd)!{MM&kfG6+xk_C7$Z(ja@Z%ofYYy^Ru?Rh#(o8{loKZt)U;I~AGU}bMhg4& z$W0|AYi~yL=H?t!G5|U^XDC(kZmtzT+=)A8DE4tW2mVN6kE=ZT)(C5kcmDY?C1lZn zh6NBt8NL84+(8IQ3p`jpMoA>Rd)Lq@vG@v_LAJ5z(yfqQddinxvtD(&n52ye?MLoW zgb1N~kr_+BYeW}>?Eh`<{cvh;$Mikd%eo`vI8|`u2j$KkM&U*xyNiq67b% zq72Y$`<@qSAvpK`nk;Kf_x>E>q($p3M27|M^BVg&6LzITL50oBDke%wVBV?y>7#6v zb^h#(r~5#NDPP#m;S%07+aZcuF|JKfsdIBAqQwHKdDcH!86YP@zyD9?7xn=}t}{e! zxS3s>!<#loHyLu2bxbW~c18Z7{2i?XS$X~raO;q?va-CO58UcBQz_I6`tp8qS{OudkhkR$rj^1uy7T(i`hA#kHaO=ApHIVJ= ze=4=upJ>E+KjL_Z^S3A3-IXHEr%i?09{}t&YXIS~6Sx-Nj;!nQ_{5A})_S+Qp+Q_# zwA1i(gLuE5dY556` zo992zF^Ek#FSrL~Zk0AmhSUXu>?=Q3orF3_%QW&}+YEb|esDHILj*c1StGr{NlqO# z|Eu9al4i24$I?(Gm^>e4gHNA}sPD!;VN;!EFs4m}jwVQd~Kfmy>65uAW5>oi_r zQTw7MuLxLkUqLc)%>lx&qq}c(_1LwWe~OlW6FQnL`pV5;)*K9I`-G9tjBb%LEft3? zP=oh1;`Ru(qr3jL`{NwCWO4=IdA2>w8@;`DEji$4>12_oP0XM>7 z?qIVVK8FN%goq1BIM`;QR_ae5EZI>8Vw1NNop6E|^#~53ydAP(HLxDgoiIHO*a0xX z`V&h5Rfn+@uUL~1I0>ax97AAlfRYVqiJOos_f3l}qH2aRzo?V`31{rc$&R-SNUF+! zto|~K4b&34pV=4&tHjSfj(8rjWo-)4;`+sQ+jY5K;f`I+vu){>1N+mO7ZPRYVn5?T zjV445be*I>D>LD}G5(Q*MvwZS6p&bnWc^c+-qX;j`7DQjm*+@fdD~)~ZOtXne@8?U zqbCBHt$9W^POoy-cIsiC1cP+TORPyuAlB;m&VvXpn9m%2ls#z?Eml4(hizU(0cPiyuzf znsen=!mh2p07Zy2hKm9%5-ich72z*RvX1o>Z7W7$iP!vo&RP~k?P#Bjf{DhrUWe%r zVS9`gvO0Hp!?6gBK?q#-bx-gqz+>4D>5=oy$I!3>BJ`FhG&iZ;TX5vRj{y9x{q!2T zTP{v&J#G7K_ODp-4QFoj?(ZW_7FPb>ihUxR#2=&ogToZ4T}Fi;KU7mg>!m&p2sds? zE>n!55#5;PwSfxif6SHbBGm+%*Fy;bPJxJw9h5&=ghVFO*lp~s_ZU_G$IwHc)jLrt z<8HB*;ihrl0$Vky->L21)m74JyidUKIt1-f{C>PvHqBH z^mAR?4#Uw`oyh$Ys2tcY(E3nN*w)hU-{~S{547ag&+wpQN2Tzr z>vzU`pfZwlr0ypSrUJPDe3*+xm6`zVF5Ia!zXx~E`~D+>ckIfgI}vyC?*2f4$+0Yi zjA&lPL2N_nDJ^`Ewn+F5g#`rVx-)PC4K?(iF;Qb-%!4RY-$FSm=?P8v7js`Ptg|xU zRfGyxP`{~1~eL7*pqK|1ylvrF18rTH~G(muU+b4#=fuqHuzo$SE28sl^bn= z$^!g_{P-d;j|Wl^7)u75+|P+;BmSA}Cm z#7cv+7bA~s7`Zzo(K=DMx#8e=*z)H7N`~Ry@fK0rJ;(>_|JMA)=UlkvYy6J=2hkmd z9MQQ=wYuo9mRQhf)S%x9*Nky8JXYxfG4I9sx{$eLZ#vk-%T3=C;kkTvv@Sxb-2u(rXq-RZC69f^6&+t{dPVN2QIM9;0^Y zF+~feP}OQLW^r+wR^y?YSR8|1R3_i}Z}iWBmuLch-XLclJNnzg@>h`iVCpM6ybZmn za^BQ?xCgl#ope6`FJ?xVWUEg$_T}j><|XV+Y#aWIB&j+SSnnMP9Yy!7M;+6=QKVlw zUHr*~)OvqE|7ZVf+}i8!lXDa6VRBk{ zp|+uW{E7UC-`1$_e_W)_Kihm9m$kVU#b_Aa8nySH#A`23#$6<`9a87eC4(o|y|+8e zMtDfK)vJe+pr})DuR(jG!CklTcb|XJE?V4graU=O?`pG4PfXNt%gZ{8K+ z&nN!-C-=!9mRqz3J@6V1b1w30s1l33OgAFw_v$EDs2DuD$K2}^0kdy+ro}bCLEDs% zQIMEm=*OLMzmau4TG!vE1SesKw02VOTCJqG6Ed6%4{LRkA9x?Ls6UnUnm}xZ+LE^o z**BGZ<)Aav{K7{@xhI(y+3i}nd(`5YSNEkccv7S)aP{Icf|SD?^s~O_RV@;Cc>%s9 z$d7H>DUuXX7APV|H!pk~oU)IwubkqXypgKRRM+%2XAs~;h0szYwr^1TMWz;=NtsWm zJYcDHbi|Hzfxd^xI#~1`u2HlOIMKNvWba<2w_%y z0epE>@TZ_j8VXOKTpqY1Vyvro^U=;WT_OK3=g9&vdKB5Hef)#l@nz);6UA`gtL5Ph z`qacq{F-*g6T%odJ=o&!=fSB>uFk};X#zp@TRW$!`I*k>RziB_ftP8n0fax9HE9g{K&;U9)ERJk-a2-DRa4)6nsK=9ctghUE(+7w#z~qa{jgbwj z`QCq7@K;i0B$#Nx3+9J5A^^U5u-8NU4ci_oOrq^xre7cO!zOkA`xj<}rFOr)b!s-y zGO`l}-MlSCO*?R!i(6;zJ-&2bJDd#e$s$$RjMdvy)H1xhQvnu*s+KzO?rOKSvaeii!F zb@7~F%Ld)7>v+5RN=!;v?yNqiMeoBGJ>=O8Zc%LiK&S&Si$ z)!nb62Z1)W_m;VR2i&5g1F`9*wly-dtpqz?i7j;hHp5{BSm&T}{-IsM&TsijY0_&p z+sa#I_u>dr`W)r**b$(--EWpTJ~Y2=;h)gS-osjVCE-6xHZ&B#UDKWYS=%?1udj-8 zd6!E6E@)qpumetzu@ORzN4718?&vH8znEGPaone5?We?&Qk&GK~5vd&+ z!J7RwOirHfwV94L4fo($w*#2Hp&0Lt^Pv^&SH150epHYf#)~uYi$du`)c6H9S!14- zx8;+?n!98DST6hkgZD0AS=XwuUmAAB{qOpr&> zWv_#S7-_a8lTI;Ym(uA5iwUP#^p8;1ks_5XOIrd0M$*?n-o#oQ%Uiv&oqqe}T!?1| zaG}OMt)qIYj&O_4;bM>$I3lfw7GIxmzf7uobY>*HRumOcRv0ySJy-&t)j75q+iGjn z6TCudbKTO^wQ%&U2-(+N0j~a~*kVY|hDlc>4M>Hk_stC(U7Qm-3WFOlRfV zI0Ghg@bY6enfQaK#Kq~nIs`SN+vKQ~$E8B*>(kK~+GI;tq#ou+*eQHqe_x@(-|pX& z-c@$1$(Nr=x5~_yePuEqEmKypk-bMAT>4&2{Y>c`6p46F6eInH%MeIUF(+krKVyje z?D&jH>eIen;>s{(`1l%1Sk|c_y&_1}u??Odlka9A2CnH}E!k?29d%pIuFPe){g?srTVpvohut zR3kv7JsZ<`>lOQYAN{j*7@H}^vdbbhNq3d_hsRdl`zH=E8Q(2)^wPi^DYb*g5baFf#kHcd>FVd@sBCOqEZ2Hl( z=+aVbNai1907_o-28S9{p&Sphj5$?OQJ z(p;v@6bHvd$qYpu%d49-sphChLU!1?2XavAvK7QhX)$4~t^TDdp`=w(iYk@**kl$+ zf-uw!a5SJz$-fIiA{+>_)X6M84jLRH1&|n;Ly=+kWEo&v@DrtcC<{1+{y?YamsBSyWDg$>4Gf+=nsA8x zaInzR%)OEmJ_2bmDtp6%w}dnv0>0nqlfo|j9t3TgS zLpBXOzH(UxKyv5QwS|@yP?guCcS8u#D_n-r?JL#`UI}}7@rg+( zoNX4{ypq!Kuwgu{d8Z%~v<@xMh2GBNp4)5q#MVw+kbw7JX&Sp7d%FP9A#x--s zDKgCZG3njnvP0`6Y@@od7mdeat zV2vj17L&D?s0YtM6Aa72D&Q?*a6Dcw?>)uALCr2s@3BIs)!&Znk59>wKgx|uQCwUP zxD%@@y=H=BL8S-r9}NT`-cf}YEMpCL2n5u)86}9CqT+B-U?~|!4Tbp8h*%ttT9%5P zS%T2=aeTI=`crzGXofBgvaG>i;F>+&NcuWG8K4rP;d%*fvaLKgTCK;4FXQRzIcOmJ zH>4B^l4TRob-}D>%m>n1g&JDNTJyis>jug|0{>bWyM87Z4GN!jK<;! zqUT;)L3LylOVx~*?tk|Yv&7BkyyNtP+TV^KcUN{_&tv0aF17-z6DS z!GvYxgPM&@o+wUgjXypzlsjbO=HJoBtML))_q5o`p#%^U#E>(jWv2OntC&Idfq&q~ z)%2rKgv&S+ehnpFBK7iT22S(O*S=S2kT(9hwu-mD7$(>v;Ea0lR;Xx~p7f3Kk0fu= z#bY8Aq{?iE%xIKmNxzDbf!?tNHjR6VDXAywioE3?*l4o5Q3_?Ng3j~%gWpR66)!1A zQXflKx7^(c6#uKa>3umV!upiNr|P~*j93VM@g+nKupPdH$=nI|hug!y!VBxe5frh<+w*3#u*#S+4ra(&>hVFEz>sR2vC1$_K|1xj|r~<$; ztZFl`6<`9xAPL`NT8H$`?3W`*zBjKXXIZ59&NoRc*Ur>!equDTFGo)BIKk;{Z!#Aw zlU&N(hlQ+*uXkJnyroHwxe;+Yr1VnPx|oxgTXDk9N&>{0&AfgHe)aYB#q7*NB`GD1 zt`VqUC9Npy$Gu4tQR46HwN>jQMw}7wK$bi{f)9RAXk|R~y~W2;PIP$sPe{bNaW8J+ zb{M)d;vU#X3-qT`Nx?p>C(!_!xKX&1?eLMptWl6`X7#s94d6;WF#Z_B_&0km_xpeq)Tmx4>6zlJ4Eyw3;J9AZ}^(klMKh0N>T!j$1_#ypWLEdKSumgF?dr-D86~Z>aO&VT}fOb z&c}0GdBRMYBL@YQzY$k547_lG%YE}cwTknS*iX}<=daI5op@gp*SD!)dp9i3>-$r) zL>vjklRR9(p-~8U^eiKn_|W?d#kMQC=2s;d zga)rK1mQ{BAv1XKR>Q}BW(HpDYH1E0PwzMvlJn!Tw6M6w)dHM)ZxUw?Ib(V6jaI|& zM!J6f5HN?tYZtux?MsoX%{aFvh!iP_99@X=P)SwqS zGeeJ(lPoG-8^WPnikxk?XC-q{-=tmAk9l@AMg66ZNVd&gE($ zH{fRS+SR84@3U>%{eIOkr*%>m9i>(+(szdb0EAj_7WSS=P;6>r^kUho4;W499W+nrE zL0qw)9JzooVxkTq7O(#qO_WSh^nL(`XB(^|+%5D7RR`P%Xc-Iws-&w6Ahy~9tL`U| z(#27Tq>@40YU#f_zU5Tn!dl~i?F#-(>~e>e0DANSXBk-(I{n(6BQz)p*BP2D7klxo>x4=JG}_mpONd{AHP(D`OLwPr4;k6 zMQ9Ia?={(zkE++KypmIajiW|7w%cLeqR$d-+TxGL=G~_ZdRKR4U(#CL;Klr;o*>!e ze2ugkd47wij%)Sl)Y(5oqoSlXjHVrcyv%a6$|E1Qpgr3GtnyaZxTP_=b{5cMpU_(k zQ=#qaDWTdQ>nUHyN;n$7-EzLuLLb48Ekh9~u{g^xN*uQD#J|*KZ(Cyi9{T*>z-tA? z-Yq^Tn3!})pIwtuG}+dBzGM>`Jt3?NZph@A@&%#-OVsUs#HTjwztKfO=kj(u-d|2I zPciZK;)E+?&!9kKyOD zh~f5^k=z~oYC@(jp9<#gB+goLqq1i06FQ!oQoc8}8QO32ldNnq@ai}pf*XR>95LLMm zNvUse=CH&wMWaLW+vS>pP6QJJzm;<1f9@8WM)!U#y^IYPqR7p6%R12v=s@-0DA&Ze zg?^dA=&0!7{9P6ye|FvAUyBPm*Un$w;}U&?;-6pG90Fsq9=4sK9HJf?a=J@h*5DFY z1~)5An$EM@xz09>I)6bpN0p0q+l3wIuG4_V1`%=|6IUvS*Ye9XRI>~oYIA~NP;s=8 za`Fb~G1XNZ?iX?+JvTOVFC9K;e z^j3D8)TfpIOx(tpTQTaoeyG|PR4NwNReP6T1G@RT*iKbMP0s47yo$`iccVHL>XT&i zce-%R#MH90bFO^(6aM9H;&@&x`mjs{!@-2KAoxyphHVtT}A5r^dyp6py-c3Uu4 zZ40yz2$SvKA!K45X~m8vjV`Xi_o{&ab=+FVMdc{v;sm~4RX_uftFvJ8g%Q^sJ zA1yJx?9l9MweY}i3J!S7s&X?8{lu?oKmS&v;zm%@jytg($oz2 z33-tMO%Zl>c zcfV8jild0|gK7iWVJT?^M}9f|19QOvH?uNe`x(N6d`}rveEZLUS_sZ#4Ei!lS>8D7 zHSkswTCSIC+M_YllRH`)e8}O{MgVRR7NqgCF=^F56{p|(PCs8JbAQ3^FF3!`FRr)%VcT(kj3+FVEGe9SlT5# zUMu1mvE632e*USC+yvPo^ge#D3PHM+l=Q=@MC9qZm}+KKv5AO3`+TRHgB9^wz>~PL zgS`bk&Dg=$IN#&{%^x|h>21I1zJ_MSNprOmfUdrSh4v?Xu^0zEA_&~d+Ni6_Dq{$A zbG?>68sqT;DQB}h8^@O$wM^NHMLWZC1N?ttQC#rRIZpxp{;pC_&V9C?D18ADz7 zfxX8|-;{&V4m!rEpsHWw1F^GtIlq26`u1}L7=Ep=TaqFFg56Q|EY_i4CDKR!a*X=* z?$!G(#~faow*PiQya1&-?ezJ~{L1jMvH+W+jFgsJ0$G0EHTi*KeZgrJWbuE+b3ux$o7G##J5X7F3}Gab~)@ex7yyvmW>8 z?J^)>YGJe+5hBuGGX#C?Wue1hW1b^ds6AA(^j3!7*Uz4^uGF(u3>=wo;>Ttb%AiqI)8VTOEaiTGLSVJQ8OlqA6@03b;m zX<|UPI3|{4e(_+ee_fD4his}ywr=4u35cXSV*$D-7ThM3Mvl(c9|cs9`TEintrs+M z;hboZX=4TdG`lUzU#LJld9pAK(Gp1^3mJwn%g?S%1eI%IO<6h?&#w2eI+o)MoU>xX zlNSs)c`^tShOPARb7*Dap;69R7F)D;B&6erg)XFrWV`kjmhRGa zB)1PF#IFPPwAX8H@p$!QQII0(0WiwUk>=v6WNM)_AST&OGg#_&k~8 z$y2ahC4%+EoJmXRaEe!L-!O>EY9o)XS|6w-r4I8zb2!yy`jp%3wnU#JsqO-=<>S^N zyg3NcT{=7piKf`K1w`zkq*zeYDX&9-fB?$J!&R^CQfH$3zpZH@h9D-GYEI?lWtAd| z6f$(H9Q-+0vMpE%5+j_U2;kX0g;H5u+q^A20AQ^$A7-yQ=e;?&@r08)!k{NG7W8T& ztyQQdCqS%;k&>yQSf_v4raC0m!C>4`MY5Z)U7P%}oJyKeJ@(;VYR3wd z8X=r!h>%&LZKs`$R(;qMR3`G?0Fc5?le!~>VW*Sb)b?`CwZl%IRRM~y(_yD!->Zdd z4BP<7Ud3?uCo0gr1DXU8k^zbprIUJqNL^hPMPwCV-(^ga$s%UTSqYP>o9Hf65Dc6s zWYrr_*c13i-Iv$??uj)zjnASwvY-EnwTm9os{W&=2Kig1R~|Ed2UBjh2XnlzOI~*S z`tgxXB=JD@)DcG6~MR;XGS*46Op-XhB~ z>wfvL5rJe#QjK|EnZXIX{f@bbap=P>D)&$^RCRpd=82LS96binI5E?%!x3h+V+Yyy zz1hoZv2^TV4ytW~jm_Gz>8f+8?18Kf>}oa8QrzLtb37B!JU+p^gJH7=YVUL4N3^yY z-oQ9raaoT5GYY|+8Dx{_qTp2a^@pBOzoiH!XI!6C*lJ9?AvgBjk9?~ex{hz4dEqZ$ z%K9koOzS89LpOj#dLS^FfAs4R$Q*1M&tv1vjbFSnOX1}AKnk&rR#uxWQnn^TF&&}< zDJ#;4gEkPODj^Wa&E^ZpGxJ@xspW-Mm$t*<#f6fGkrPgD=L>c16azt!_XE}{oA(f2 zgceANQZx_~K&55yO+kXgg|~KH(V_cP%Th(!tLc;Ssc*Nx_O9nPYYQ0w)8-DD1xIKI z0!u^T#$;(8V%1FO&U4O=zKJ~|FKGIo6ni2*IX|js<#IXMhZK;Mh->%uDvzLG-EN&O zxUnMZhc6PRevyUBLu4xLLD95tH~4yIKklcZx~b0ElFIAe%xlR&=6X4F|3=hSeR|pD zL$-U{SeTeiaqh0ct$gE;3!yYbbmiNF#$-gjw9W?eA^Q_AqHCc-=r20a5L=mB5#_7V zG=Zcyq52Th;vLf^k^5I=b^0_oUrbIUH(69VGz6$YdR)X!}cMR#ckOR_c{F370xZ znEy0|@0TqcS_f4SZBJ+p@6KSpwy7s1BF0aSfqI`hi=MKP&f;{ec6JO50@2K2U(V*j zP@d>@g*G!N%Qo-c`_9R1*9PtZeEb&KX6lEO#O+GOaFRZh*muyAv^llU>TIibf>DF0 zP!If{NbvJ#Z**41-QivkX?h~Vq1dIhJNYPAYsZSCx!0)4YJ+bmpPKk3DKSPwVuSek zc-46g&Bzrh>iHi|*==$8p~yuj{<=#(0ots|h8JwkMkVy)>iNxd*FxpPLtpFyH|W2= z2=STE)3lPUW+&}7+j2u{t(HgJ)^*sX#Ut@Zo~Y|_x_;!zCOF2Mnu~RQ?cjkna4HC`J?@ z;CWkN>`Fr^{Rb$r-l;-Orn`Rpl0FZJP;HK?gAlEU(VJl zyV23~=xAFx?E|t=HZtC(yBA)A@_PMbXa^)v(Yml%5m=cJ5Si_EiS?NkQWT!o1|(aU z@xVZBJk1&Lt7h8xdo|j>PY_5L?cW;}^sBsxi}Ez*9eYd6fGMsK)8gi2fnRwwvp z+xA3EO`HLn@z$!n9oowm!lFXtwX*erpN}lrM&x=$%c<8JXDnDozps9^x7s(_;y9;& zyb~R3>+Fb$cGNs{5!1Cd^$4kC+%)UrtdSE_^JdMbq~UXDcf$6TXg>V;)Elvvw&bKD%dw!Q-4vFP7h@cbTK&xW)XWopkqyXrScH!!&5fJ9rUTQ1nCB!Fo+ z0sr}fQB-LDj4?(0oRSi2ry~G@+#vJX?7=VjpMAtBNa~i51aS5-g8>5W>PiA`F-{~n zNW1J&4QyJCiQO|2{#FSEEy-I=eyj#!P&ow>1X25SRyI~~Y8QQv7ud>x+Q-uoaY*{?1oB8oe@WpxJbDHm5v`>qH|aNd&)7gMe(5NagB^}yQ zw?=Bw==H6ZhxtxwDYwCgCIGpTfh20n;rR#8vi41}JBZFPxIwWZ=W|RS>;%B$;O`(b z7Hm2}%RaBKvnZ^ON##XXU$&&n5Cx4U)C5-6A$R5~hH?GE<+bxYwy*ntb+u!Pz?v zKl=DG^Ep!7k;G>kiY+dg-&3P6WwZ&=?crRzj}1FPuNNrH4zXSCmE34T2i`=5H(Q2h zm*+rE5OF%CM;{W2Z(PQrY`;zbAac5C(JmWuPajWannyoK&i=UxIU9W(R_Kn3Oh1e3 z8rE@Z`E1ddB}q6lfrk@<*`mJ^o??59gKyyHG|9^yE>7AM#$;Nh$0Y3)AxhMTz=Imw zP5|V#<(RgiOE!#L&y<-=w2#yTfOnUe0$iW8A{5faCG7PV@tx)h%e}9MEnlPupK(5X z559%07ET-&)$&Tpg^M#cEAN9%!|~Gi=veFSH{$)#H!LxtXhT5X77D32YdF;E*QE@B z^=cjdrq}68QvB_MkL0T1_5-nbsgrXRWTuAegB~8U#CU-&dOr3rR&x+RC-FoNW-uAFlwdqy_ea=s^E_pjT zp6|B9nH2SY5vn6GM=F2+iUHb7QY#5X@_MTKlPHN9hYOtpV~6v02}OG;3_P05V}`zH z3sBv<;6+bBn`&9qDy00YZ!~a&!ciBRF#j|*$EVk%PTS#3{qUQ_=eM)LUu=lP28c0` zXgqV?rU(bLl^8RcWQ!&s2v((qnZ!eRI6~Iqh*AL|$;H1TgAWp{G=4swX?TcqpDtFx zRaL!UvblkKL^zy>+xL_oDhFY5iMSp6u;)|sa7&Nqu$8}B9>I{rKe%D>mYp|#(L^Fb z)>sd_5hi*%doPSK=9!E^!fIim?NaU4m>ANXeGbuHoc+Pil+X^#TE{6ujCZy�j+2`Rw*hq$m#Pk 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�EPQaYBlEP5y04e%ec1H@(sA#6>A1 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 -|DbqQ} z$Jli*3lc!<1pb-gGgJGZsPr>8+4lCVV+m&;@WDJrDemkijw^=5pJyY8TBTcMZVH|} zXql>#g7<`RLisKUiZZjDSsrxsFomdyrA1Q{&K=RV1f`$rIme-5NJbq4q7kHs@0Ee# zmvXEU`hh~fIPdbLhqaxf6%Ep#Bq;lL4p;oGcxb2QtDedkTtl5l4WD;sBM8^ehn?3y z=qE*5JxtIMR0T+bc`es&22>3V;$=pv_=Y`MQ5VLCFUksKY`I9fuwfg)WJ&nZ@cXNG z4Obs`TnF*13#)^!6AbNAYbw`u$mrpknVPj)Ks6myb1x^r5U*0ZH4I8GRjRYA^F4sm zwyaaVo}Hz3j(|W0p}eWvRR28eyHDzUNnp3M8&sqDs_aM<5{;~v7Z#r9bh=RLaTU9{ zVrFGE==jOh({+*Am)VWu0hwqfS}J|gmJr#5LbCHGL5*mFhdtq+7M%GCO>4GdBWdGpF^|Qy!%{Cb;&3YS@<>2MJm z<|9$+$EQu*U^1+&Wq?B2&xgY9#6ra8;m z62VNgElSLhCvqCi491R#1DG*CcCf^$lWe84h&*g36MUf}GM%A2#?P@8M&y_|2B#kd zWhPv^Hwf-L`l#{Rdm9?Z8BChdnnBnpi(H@KLV{^HLQ`WV+b5H|wOd()cSDssi%iGy zuFu|7=6lhVZrYj6v7IxkOy_P{D~a$jZyh+x_a&5{Y1{7%rV)U)tY~Es8fQLg{`M&x z0bzH$&L=aNR&~Ce!pme|Y#*>E%Jl{0VVC$IvbrvqqRHM3fAP%roEuFozNvBWnoC-h zt;eYgPbsIv%vz)ekn$Lr>c!;pFMDyWYyMdq8)> z0zkBpp~3F`8oBJ2?$sW!96^H8J=$}o2g30kn;jL>uxIa93rWa#=kNXylBC}qyho*1 z@ns_B4$h4b`MBOQy{~vsc0lh^Z^tz{U!>0x80vwrT?hMfg;dP`NBz?+4(Xu&mfico zBLjx?c{_J7511c3@&AoE*gN=)x}R=2SUsc;>f)o?ZgK2+y7v?A-}?XYxPSltnI=b` z*aJMA>S7BR-wb{lO3O3%h=ST7+PSa-zn9S8X zKQNpjcey4ypxOSH}B=@BxXGA*(ZUqLv;}F@kYuyxh1n4M#*w9Y% z!|=l+oe`60w%q=mo5dh`6y>Aa37v|CM|o_y$*^$o@*A59LOdBcxF5So%fOGVnzLZw zH==E!r>%B6!O`we`tdNt0elC4gp%~YW&hyC2->eM=_&_=Khsr8q58gi0<|FlR4IrK`Q zY+OljQuSI%wY_$jMS5uaPT)4G>*~$p4m@gNTBPv9 zS4qFz)a03I*w|Gz)Yhpkyn~dxTZY}(q7Mek3Gvb;8fNro0vy(L(q}4XV*LFe@aw8% zqDsST)@(~2-*0_(W%h3C9T3C<6%e6BRVfpBgFPGv^!UKN%7@0rOqIxH>qM2L3olPPky|&j)LDd-dxd#NRs+ z%F%CrxoB#0&CgXKR6zxZkDAeDF%qkoJP(0RdTGzc%8%g?Cvfesy7SYug$BVQa$&Tz z$7TPbFq7P~zE;nIX@M|J4{m8`Ndro-Us|G&fH2=)4K2BlPlDx7rD!^O`4jjO-7D&B zRdCX0!ROC@Mj)flpGDjtPNAMO+Osc$l`noHAl}LsIZshMV%2_R#8I%iy2>+$5>`iu z*~ijp1r+g4MPn5_wqxw3A&+71CDtTE_tL$tPr(u!8E$|Z zNN#OSnI5dMw)U|3Hc4T2!B*L@b#`4=_?V2W2d&3V2jNE6%~c2zc>mdNIYRBu|Mu|P z)RFBh{#0GPLQPgaWdLc<>vxYI{lyuU2VwAzeyMm^SL z!=r^y$o<{^`!`5vj{cy3PX@|>v~$@$v^tN!um0};U);ZSf7|Fd5U~C?i|o~kdgZYN z=#Y8ZTktIxkWlSx1#jv2i&IcqG#6`SK9J{GNYdvTsHo1>0Mro5_H|WZA}Prr zvft4Yl4BAVLnTj_zC-zv6I1`R)yGwbZ+B&hRVju&PiMoj=VWkwpe!Ev$P5% z+vi)KM~@E$WCr16yaHZgf2eSbK6q<<9k!VxjZe&F;UrIn%0KkI|AnAHk-&t)gx67i zMZp`!Z00Kvc(tmIMWKqvg)&;TCILUWfGWxKv(er!UW+$Mx&H1Q_L6xXX6m%Bi;Ord(fcGwa4`mS2;k^lGb) zNX@04+8~)#V|#E@*eZ%5(lWRT(g~FDS>^h}{QbDG-~*$(v%(y2Oh>_56xH@d1x_Pn zw40rp2vNT@>_z&c_%8y54`PL|AutN>*WVlyg)J1$5XxI(!#tnJBW+>jb^x}&S)|;7 z`w3=M-l~v^70wl5lI2&CzOa_^PmYG*fMl2VRH9c4pD{2LF={OIBr8IVm#-?I zmG(`K1LA@Cw=3h8$N+y+*)DK-C*v%zez0e6-nx)f&M>#KqFEa1Ec3({h1g z4i|cLceb)m?+D3lxI_J5kut7Q-I7z*G-`JPC~STQ-2`?5OqAXHs>TO_QvPOF=FohG-kT_L4XJ;3!earWTOL4&X zp&f-0!0TPWo$6qk!j8yPyN&$mmtVX9`#=d5tv;s_gtUDuHJ|C~7qAECKxCV8_=(N(7-R_@SsW*EwKTSjm`3D~Ue} za^&i)mLUBv(W^^@PgM(+G1U8fIm^uqn9)N|#!}<1^v;6th@x zX3bnsqkv|M0#vI7`*<1%+n<|w*a$dS%-c}ZLx43zazfPQ>gNQ4{kFs~>~#WFpDG9? z3*ElLf-nr2K?t=K5(~m{I0#&VOUQbJKOo4eCGC=6mo)1ap(HY+O|S`jTx5hOOJ0Wv zzN2S#kdP9g0w4sGc=0r#-@n;;?+F43s!%{JK_n|nOFCxZe`z!UL99qF+!kOEx(I^9 zb0i29h&uvd)Cde1HFKnR0UyNYP@Ru-ilVb-(OFrS5(Gn+nnX(y7hYx^5DQhf?>{Zq zm>t_PsnuwI`$e2-V;T+2(?}g_m!$`fa%v}I%NzN3ZU{AdYF9*4dt=;T4&bT}`u@!p zyRSt~#w+tRDij4eOwH2wkx;g@Cd*QrF zEf2P(ITseNnq<@ggbclX^_8?V6&&zT=(DI#U8B)T-8Rx{w#nxC8HZ7_^8(Du?cJh| z(@K;z6h()Rw;wN4p;x&8$2X4i*dojt7TZ+4)vgDIbPw7LnN#s+YkxPMoC8mH=X_X5GU;(jbt3c_%L!io&HiF~N zyKCg~>F+Z&GvV$+pCdCe)9gM4<>Fz#PVzU+I+e9wqY>Z?WYsYsB0|HLHGyl1By5`Q z%p|5W6_~Gt{*Nz{c`;j!17)tL8`_%Aj&s25rBsD;5E)`bpMev0NGJVL>!M~`Doe{k zv@E+lM-TYlC}#i8o@^Ex#T@G#G!%utYVbaVEpsY2CHJ$$9iivZ4CGekZutw%RPJLI z02awvI3+Y9y!>7HtrEw9|A&_!lz-2@MYu1FxKD>ypJHuPHFs_+h?6h}3KWC`EG;-y z;FewMR~o>;5h+`RMWt>UYK4V%dNLBoLi0V}gsveAAx7z|LFuzgJYg*ixe`ZWIl8Ga>jfpuv;>8O zk(@__s-Wa-jz5lehOQb|lwATwbwyO2hg`D59~>9Wgzs~-wWsHJX{by?WJP=;YGMOb zhQL6JPS>F4&Q^DOm7EtOf`tml72Z5F7^~UVyhj7-H>lFK7wN^jMF@_?`E7GO?pUN+ z0D&E@VOf06*)yP4bMR&&$km~{ z7KwjJok&js{Gr%7MOU~g9vA|(snvy=lUn;m=G%R2|F1E2CwVA(`!R5F-gnYenZ*IV9qO~kMyoQ=IhT~U_wNAH zEBVVZr!+}?kiYHFeP_8s^fYsxcuwt5nxqJ);d~6h=L>Msj5!U?Vv~QSyXlYPIUgMp zzh%5Mtd;&9*H1%}51|P0OQa!s_(`vRP0ad>*G(bl@+R=8+KRY>zOK&&U5S>kb+xoh zWBypC3-%W-V~Bn2FfX=rUXw;xVW7AYm$z)Fi-c9%Z`@5v2J^mTzHp}*-rPMYNw8V^ zGxO)*&wdg^d3nb7%RYyUZ}fj3%oU{}G)Mc? zZJhU0v=BY`+Gn2Eqg@;5``U~irKCuSxS0OT2a5(x^B(^}Okc%qLhnILk8Z!QN_%?` z`9{vl54wwzssK^}Uqfr}O+oTpki<^vhOln)EGVWNdKgFNJkc8Ux`+PBi_7%M4*~-- zDCy@J@5$u%F@|>X(Grk7xEB@ZJ881^*7*X$XeIx;#ryulM}uw`1=*A3B>yiOhaN!3 z_}7htx>jyUQfM3{ecIHYn^>nEV}1R3kIO9Dj-C;;xG`05C?=w-%U4&CC^@sb-C$wE zmH{olKubYe>F1(Nz0g{+#N4^;*L_bPmXlxGeQ)kOHzSr=otvjZxg}&97#OHxNrnbA z8a)fgEf96J2Plzsj#E@sK=gN6&&X>vAQXN_z}pZ*b! zZNmf8t#}*J7ng6OAIRTMA73%%tC16$7e--2$9uo$Q-AmUl%O*|MC-b}EyGi`qyDy| z`sZq8?6mjx%zt~GWM~`m7dT?qXZ9!txn2`F`vZ2iySw6(nwTLub63uDrGG&8>n2BM zyWR$%;YF@Ye1YlhxPu&$!q6Tv}iQ- z73M*gdQwSdxs^oz>fh)Llfx0mpV=v#vV;Cx;qDQrDAJ25B9-=iUvtTRfQ zBFU|dcCwm$^R;^c>c(s@@jCmz7Qb!Sd5p@Aqc7P+un9Wl_d&8rxMZLN=5skFG=glKt<}4S&=B^NnZd?2X(j<#A21R$RGIqF4bUAt^XUMH!JZoW z&#OKyupul%oa$I-w&z46Dz)0i26wFlltRsBU=qSg_mi*g#@`XV{7~=QQ1+YZZqBil z1^&@QqT*6s-f?sv-P@Pu6BENFZ1|&9@T?O-pc&U*D?&OI@#lG7bDFX-Y+U9R47$8o zHaUMvLLi*mO<}~%2a|ZyBv~^AwP(V&n?T4kLTYWRZp4-nx=1bDHUhc&H4E$_*x2(Yk3;u_0q5? zNmT;TR=tvfF+>ndwd}2t=P_$AXF_d1mM^AeS;XW>FVt7D|_ciaEG94Kj^B`Q1B6X}3bnITayfD6e10AN62;H3H=NX$S&9?T%% zInTJWr%NNuFzO>!^6T1LhYcn%?y{ISIOANL;~vh#h~cryJC(gEExK#f(kf@bM=lIi zNCjG*=Pc09-tXTrm=zR6(cZ#ku?CH;l z17h#Xv$rn^8SZ51RJ0`TerTqG@@7h9Q;J5S+RS?L0gO#)Gar<3%~S+D3s{domc7zm zx7FDjv&D2%qBD|?-XdJU(8dKkb!7nur=?T?{fU06J|x1v+8=O_{^wSwf7_Dp_9NR8 zRi$~QTkv>p+a!q)NN5Ee427Y0!?DfV0=M-@R47>>Jbf?z8+B#dpdYgxHX3?e@CkBt=Z}=b?jc-$GKzsMYg$Y~AKt^L)^OyJDI^OZePV1? zhIcE~1&z0T_+1%96`f9AjIvkQ-JsV-*PFGaUT=R1km^_O&Q~#I?dcVnOcqgEdi^+| zU0tr!SPud{x%@V+Mw_s3SuV0J0W#|$?YY!h_8ht zsC!(hQS?z|FhmZn3M3rxkGw+70>Ui+S}y`!Z^mnYy6JC$TvSeusJvGd{c_z)T9{q% zE}dY5yTm%({<{n}*k2?3Rwiy)Kw;r_%ZI~zNahOS2nh(YTUw1b!&$Ll9LNN-kdM>acVk~0KX=LvW(Ku3-z zWGQt4hwaZI^wd%Qc%S%YHG?n1ez;Ocv_An4ktzMh2qrgUV=D2VCQ-3Xfdm{52>oz5 zkO-1&zaJxLyCPgGb+EdHl3LG7ScA^ET-mWK1C9);pmeSRb$Awmc3I~qjiy$&=8KHq z`E=er-}K4zQ*BWbrSel)65IaMCs>(u#^VXLRD}g$Gg6{nXEoe-KE6)!X{m==U+%ZI z3pReIKH-m-s`(M9Z<`|9btGmNl%lCAKe%t=36BX|?LEJ8M+!G=_hdrN1W!Uo)3qMF zRWRTs^dv;zE!u(CJOO4mdJ_7ZjHmFkp57VcV1g_x<6rz!&jOU;2|{+*sS13A1fD-@ z@?1odFfV*A@W*Ib&)Edv?&BFoZXEEWa+Ona zMN?6XQ-mqr-$aSDv^Hs(pUKrRC52EUjZGo55$WH~fPR>%FcepVA!2r1vd2YH3_1if1AnA zyJ$WGSk~m>8&P!6YhKof704z3aFM6th8mvC6SP38an{|0kjK%yBbN5L(7}Rj*RK~4 z+9yoXH+LeQF?#h50oEzxtgZYF(xp(eJk z17VsWMkqiK?t1(vg>DqVk)fdHkS#2&DoSW6OlzBKUbc6*0KsQKCd(LSc=-ym2QS;$ z0zUoIyDFbz9S8kfy?Y4Rm=fTgq*RU2RSvisUGxs?uP%MER5{=()if_dx*|E&XXOV{ z_H&qojR>!@#RX%}b#T%9Gnb><$~r*o(l~Y-Ldhb$bGnTvc9`ns>a7(XTwi+omGU+d zJ-83qQX4I)lQo~PD&DnZC8wWUn(nuU+%y?-ID=W;ryiG6@aF{g4?9HC{|ZG8DPrdj zyvpYaZa-6x*6=d6ZmNG~JcZ^cbhAe9 zARdXzy6NUx+nx0!^?*Y}?7Q87~2b=o+ES`gn>Vznfp`)w+REiB^AcjQcNnCX==GjS=A;IQUp zl!A=ZRYScD=@F99M2yg(+@FBO;jsQN1&<*}&?_(w1mW^fXfe4wf_{oSxik`(fd!FmFjzKBrOMExoIir&Zv9H zNNNY5Q9aifI$zY;<`rfpO~xA++HjCD7qHEgqud=YQ!{7KqoWQfqu)NF^b>9`0@C(Q zMU5?s_YfBZaX)=J?)oU1m?^Q=bjm|i0FrLa+oF#A6^Je9IbfHiSDS%%#MRp-cVAF< zKCjFarb#$M=kK)d6zXG!=xBx3>(?_RRnVU9JuAmorKnVUUhMAHj|Y4(CPTj3@f+2w7+grXZ#jXkQAgtJGgegbiW2!yjk6izm(l;&)gy7^MX&_ z(a)G$y0(n0006nzdk~#KlegpuQviK78)2n#%c^B%O$#t7P2)$A-1^ec@&ZJTJ37dV zzmB|2SvL|dlHD>@eRl%!x?+)j%cV(+|GH4by|ANY33mqRx!^x=MdioD z!mNU5eJ{+_ixf}!T55`gytsF*%_*?hPg*=x`(i@kRn)7WI0PY8xm8truqllP0H_VV zV<}|^{2>6oYE{Wd3w+tQmV=V4@Tv$s439lv!0-VB-l`2=4{-Z*o7o z+>@y!ya$LuI0)a{Z>^eGO1A|Yk@2zr$luaqZ`D=s{=~R~-RreMeSXWD+G$34TqOKX z@0_HpY;S7SNA+y(UNh|GQp|UFd@g@Cx+nXt_VSwS=FJbG@fO``c(8B2swzRL099*- zrCIhCeW&rcI)od4E-&}lMB4}bBjY3pt(1`Ay|1|jZ6+P7^@-zf>1tR*$lg+N=Bj?$ zI9%G2%`S6Q)}3=Y`|N3ooW`Tk2G8pwJCEoG3=8NwS}azLDoA<(d;WZ=f+y$k#LKBb zSCYO7)mh7FSTwGIRfxLp>StvMc;w;4S}&w?;zbX)T*zlz&j)D^Di)AR{yzD?#)XZS zEi|qykKm^KN2|9V-Wpii*l4!C`@c*3^zFxUq0HFc-n0)|zL($VS1&QC=gm-4>E7V>~UMswvy;WpyIQ#3DKAf3Trz|?q3&A~=j8vhj`5Fv<13#MqWUEj; zny#)F;T#)Titeek0)YND$ef0n^~7>qW%rf*>&j= z@%g^K?KD(h9#EvW?_iMZD{b*Z<6sZ8-Q@D2)p2(LUAyQsk#3gtF2%elu!)BvWzKw~ z4@h50HOn)#M#&ttuR(IQ7x~L#D*cxFjK(P0oBvsJ8YXE;kbhuW5b8HfT8#dMfk~r3 zu|Hsv9QPe2QSoyyg-n$m z>%6Fln?s}&0^ul(dG4-oL_cBurf`rYtBMGRsg^$BFqybC944cz!eKH(A49hU!|@Th z1QB-D46YSECCP=Wg^!!T)xw7e|M$nb!n-!2%uewpkWPx&3--TeN1Sfc6#8| zWMq~&NCB{^qf&$hO~xgmwz9YmOt}AxIKj_kiNhEjsa~O30KRk+D@SKj33qU%Y6m&Wa7&=`S9*F1*_2~44dUSZL z6y{+RGEAUCf|ZLKd&M_N;N@=%zyEci+?Sb!a-SE@J^g3l+`oS<@P01vetcix%}HVM z?0-7PZg37}&W;?>&d4iJ*k%UPO*d(FMPTVZ3Z4pzprp)^k+y_t89=F#L2NHt@FaqP zj*Ei;6{0%uBujyA@^M~c4Zr#3KAWqVf{jjGCU)q9KILFYYTbD zv}bNyA@I{yn_ba;?(DhOW9wl|%dWC_=b#(HU`)h_3OZOhwoY?wq@uRZo{s&4!Hw=d zOu{RnLbB@hYqW)zGwk$2D+FV?DFcv`*WqhQGfL;+cDSpudKY8>GIAzgm9;SRN}L(y zu=NT9R6+s(P$iI*fCddvfvYqC8trITY%T2-i>(2N2V=8Xo47bX7Hrn<2J!j4YABvnRFsj+8haTB$;!UI-e~6_=iXk0kj{Uaw$k7!N0{qHriDGiRQQ%# zPG|HpeRSScK}f>KQ+*Np46cz*7gxh?`Nvgb%;@Oq=uME4qLr@sH?-|FU0+Imt&)MdbVd?pA`()aSuC9tvBeiU}I=p4C4RM{WXRqE4 zg8C_S@<%HWrLRN+q1S7cJZjO+3N(oZ2hU}hXJ0SQm{nMw8@U)r1Id~k4Xf8vVM^#V z=Mhp~Qz}t$&DNHamA`&*r$L4Fo;j~2VKdzS35t-26X6!_8v2+1mi{ zUTav2Cb+tW&h*->v}3PSAb43Rcpza>IT`Q)X?V&Y+9z9|?FQdRHeZ0CTd7$5(ohS0 z3LL?UlEOVI;`tthd3gBS1j~mKzgUr96U;>^uM5HC}rx)H8Khzxgeb~ zXr3Sy3|NIZGw@Ya^i!%m0Z>`MJqxcCL`zGG-_eLw^^L3E!c0nEAIuC3?CuTxGrch@ z#OkM=pF@Wes7sh&=(p1&vO2G+=4xzI@W-GLp+yhP>Sc!?kQD0U8aZJ(Hb$0-{We9) zu$j~U6?L*GJFqEWDtQB#qC7}WarXAkNz9V&Q*cIfL(hkQo&51+KUFAb4`p~!>DiLs zT`%AXT*Ok4a3yvNDvfaQSfG_Fb_kjs4l@^dT?8c;<6r}3VCwbj4EJ`waD5egzqNk- zGDq!M8zE7fYx7&HSm>1VGGLBkI@Ru%tzs}lUzA!I?tp7D{BT@XPYE#e)@>I74TJ&$ zqLQv69|&n;Oyr|^ni8b2*~1E?bPa1QhvG~ZBc(JYpYKc`R;=SiucawD6tQ@LA0t}7 zz>i+wCnqoPHzdZcH<2I|VG}f!^bo>3-3Xzwsfo)Zvyncrx-)bg<;JI1bT=kZoJ|6C z<4F3ku;Rg~s)7}d;7#u~?cu_TM_IgH-0N6`A)%#ZZHBu|!fZm;J>Oz+<7Tt?uMV-y z+Nr+2D)uSA&GWr4$jKmHU=;k6Nl;i%=N}~P{Kd?FV?81I{mC5n2bO#iq$ zEn%`9ccH6JNAj`!H7D4OE%4oVN zHrc+7p~w_?gV@3e*Yx_rC+yALexkI_KoePkwb=0A)&5#=|B8XE+v~UvW~y&rVKDnL z0|WOnoE+x=z+m=!f%og@0`JFntrRmZcg{?LrR&db*9vs}6go1T!%CqZ99hRD;k34@ z9GNN^{K=p?bLap7()HOgL>60vww2UV3$b|JwUC-9F$;D%GAz}n_G8MnHDXgZ^j`fU z1}bL;>l_Bmz$tWQ1_ta5oSbK7UHRB0@Y->&);6@xhP(R69R-JscwVX6GXmsvknXFeuLe+Y!glDjU_In*0Rc7B!(n3L#Jn7+RS93aKEHN zE>Kd{R4{_%IqoVYs1D1G4Jwibz-@>HG}$TaXaKp3Ccx@bP`g-ds8}gF8;JGeVHQw? zUBE;fEPQB1NO=ljGG0=~gFkG9MlBeLy_(@Dl zRc|^=b@~rP&_v49%z>jSVOgp^Yp|&%zf_HPI<>lRWr9<{9B~bRao1Mn4r-|Rl}!7f}s)`xG0Ez`w7ua_mt#zykt}xuxf-@caG|$ zlt$cP-WlbAtAglv*IKF=?PIU+mWncJYPsW!z(rbX?={Ykhd^i>RpR~J?WMN&A86wl z<^(rs4Qh|p#PJDRt|ffxiMwTMGipve+W7EOmO$bAsJgKi<>vjw`tdnZHFWUFnqFAX z&wu*i=`JS?HHpNjufWr3f=o(CJ#aX+MX_ zm6#6L@Y^Pzp)adW13ju2b9KNTAbKaT}Pimo7Ef z#5P^J1OxXHw~5|%Z5sIQq^iZnvrAsh)U%I60>`lJ}C!I@| z6c#>OFv@8#8L;LD6{~s?rD|}eL?|&3AVol8HVLIW`h>Qh1y9CtdC%Z|rJ_X8Ie7b1 zsThIPDJy|360lHjVxeE;xGRs~g_pme;CKT?27p+XGj}Hl)R7$5v>`1j%E1Q1d*JY@ ziQ3Y94H_(-+SvN>-kvBe5G6MIIW%cXvE5CwGJK<{I4mWsmq3Fk6?LU_fL;kJzj9Vd zg+(`XE;T)0Dxa>cL^ns>JC614XzD6L@HJ#5DngjTr-24Fliaddyk=5QlSnDNDoq@c zBB=riqO8P1A54KCQKp~vUGLZARrKor^pEdA4tkO_+&~SIni}kw3M7-^|J~HpH5O!SmA~QO_8Q&e4mr;`wbCMhkd;~ zwwC??;?pG5rGe&PjKL15c5Vib8aPr>zg+XewC$~vGt-xUOxXEpWkx@se`cE)69}`q zv*{I7WM$$X1{H}w(06_YO>7rpm4^7(L>ws3g?C9*fl7oQdVi9Ue<|%J)QPfW6~yY^ZDUuRpUJK&x!37TCn)X0e45PtD`#e+C7r1Z3u*FPs%cfiPy}*7Y-eKX)9fR9$r54 zE!coX{eFPxM{V&B#NG?ny5%3CW`-E(H|7iY!)Ho(iGx2qCFjFBH>jcgw^$!)vP~y? zw6>n`F4FRk^uHbEm~QBajM23}LTA!%VV5!Oq#dLV>zu9BN!jv!_DGa~r~lu<3kc-a zfMo}l-n#oaUw02`0qv-M}Blre%6V{=V~@ z-ie0v{O30fONLCgcz)r<2`BYOE7&~$<afk%Zapv`L0ect5xG%*%x4=;OHt zG}y;V@g@KvmkZ?#3Pn#CA!S_*Kd?hQejp=ZQ&paQ@FP^fvS+qQLA}LMQsOM9@R9aa z_gPyH(M+LWM!X_O*!-?u;Q1FF5FFJ!Za^bPy=6!YJ&wmjUCp0u_PiI~g~;=~A3|Ne zwAsJJKJ5L{R?npvxpjW4LA8yg?loGoRQHsjp&X625bA_Dp^u_nO)l`Z`*W6A*vh1E zc+*Q*DGO@e>(1X%ExY59oT`FerL2fg^sELCA^8FjJVdPLiNqa^pP_HZbuse0AMWxO zOGat&iG0CnnUwYU0Q^|h$Cc=8q%*i-*~7t3m)<^frk8sb-ANo}?~$W&#v&sOX!W8L zHv^hu^_oJLTN{9V3~%mAOMoFQy>Ykpt)jWlWx$#8_N63MwY|-KZrfcEe#qBTHSZe4FU&mZum9lu|}vx(Q`CV zhu0VP$-}%sU9pmidEogV#Ugan)oq!|&mjU1W9*>vYx7v)Ij5~1o0aNg62bxRE7;() z8D_n?`g<6sXF=#~24`m;nj_dG&(gvebZE7J;t=*2tIzL>G2AH7*+vMC_) zNcS(>@_OqYT5jQReb@%?G|5J4LXr0_@vhe~j}2xs`C197KX)Ct#{mD{MaWd?6Z+o~ z(1V9C|7?d#Rp*pSeZ5Jp=t+o}V-b^bCwSsZQEhLLf}t z%`u*(S8{B^`?`B=bW3maU0EJ5(J>LmfxX9sL`A%WZiGct)$~QK-7HaF+0|*fGAiK6 zQ2Dj7NNGqxgiK0lI`zRodGfEmE5T6#KF$6yt0TfFl<>XCj)~$l|0D9d;de43E^N@n z>@D)&9EoUAo~~3w4W##7A)IQk_(xZye!P(|JB$!wwi)bk)%FH*z4_|6!u=UcRb<(P9@r#!c}vvVt+abD6TO)H=0#M<7Q0y8 zHLQgt$$9s0+HKju1&i5< zz;JB!f7;O@#g1P#PMGgNEwV@Fc#@&70-U{MouvkW6qsJWqe^Pxg<-L*5nDB_QJGOM z49m89rsnMh=TkM-4>F~qiXD51l!T9$mYXE8nK#=p9tMOi^`|scOoAij(p~bO#ko`@ zKEhN$ymN6_>`%6YG*v=Jo9Ch2@MXUKIb518g^grsZP#wNd)qj`Lh!EFSHN(4B{AId zGBk*gCv@PM#n+eenBGyRj^vHdO$?#qoAv?dd+`_IOX5!W-L?`CV4Gv5TLO-$iW83B zL#Rl1l3M+$j8)Ci)LA{p&#FvSfga0E&oLsQQl+NnL@d>B#XlT%+Js*{UO~<2*KGT> z`QpR1&?B zrSj9t9STgi6o?R(2L5Tk!}_M@axd@&l9vUUPawlVhqI!^6cMZ3L2|zU&^$i6Lqi&> zu_PrB-s2}5iSrFgeoXwa&9{Lx@0dnKJQ=eafB7~2BoW1T!IH>j^^)|~wj(!^b}vT< zS)(S>v`%a{j(UEA=OMID(y)kq8*)xQ+{fcD9^4@gAN3`nL{+w;OYt4S?nMj)?ZXY5 zq+qY;)}n%Jsv9#wa@Kbs`ZP;6_U5LSxYSgSji4jyNJlD`aZhrtwfXOHIy?m6T&o8E zdAvAa#ZYy3hsi69zKh-(4|t^3U~le{V#1R`ma)Uu>C@khNfxh{e6jb{Ut7O5$z5k` zxr5%O(7$TC(_{!QdUpElEfh>u#Kt!wm!up0@8hQ+L{V6cWC#(ZR6APuO&U*YT?Abx zTHoxu_@b}j0Jy>`D4hRb?!W^vlA%r-H5XO&mxqq>T(7zQd&UN7{7=d8Z*v9E zaW=B;`blkyb|+)ZYH!VsO?GawQ1sK`ki%L&EKNzK3^T-fR%E_-4vi(21e=;Ed zFJdOM#cmf?rS~_z7`9_X=NtKz2gdsCy*CVpO z`WSV~G$11Er9r?7GHuDC8e}&z>KGjmd z6~sbrjIEsbK|mVW=daMy{xS4 zG&TgEk{sO$k>;Jgb244K!5PgGQ|PbVDfZ$1wG?Zn5Gb#APM|+rvvQQ`=fl3|=oHB= z@y=r(jkLqL{v0Vw-7Wq5*2=*W_UJv$@%{GF70mY<7DjQBR&)c-YFDuA($l<=G#+Pn z$A7COcMN@E`hEXhX>%-ZBhv^?VRfmmTxmyLk9#oBy}Id|w%-+po~5rJoqJOlVL(|n z9(-fv$;A;2+C$6Et;ecMwLAZ=0}88LzMJO_oH{&^Mdx^(*v`cgQIB+d?-bD(tW<+P z^(S+v$^9ihDoJ%T@0*pF)+1>0`hZr~O|YdNe0dQ;4oxjn{bTo?=_R3L?pVTE`haf1 zx0H4Sc|S=b|LZTfPaXiyVv1a1;!juP8YVJNt)hl{+X#FtGLaD*70ZG@r^!4BH^UZp z+sZaW@hu}W%GOiow_shjJ#GMn^hFYJ_+ z;d^1+eMJihqNUG}2QrDndx&V0-*}$$Q%6~SV?s8wEt73Or zCXhwp^i$VaOId{8TMZ|t?!V8_l^~yQ1BBl?J8wG(GS2Q!K0Vg5<*&UPwcp8-&S(~R zUD43aN-#%63_vjk5g|Z&*fLTuZaK54@Rr}w9&)!!U4x}*$)mAuo5u|y62=3R3&;22 zlE7O!ysXCHqTTqA{tZ|CuVmBTByStNDYU>YQ^m$_*|O0+E4y{WQVmgdb*?1Kr_fq1 zJ{spMAY-iVbac*jT1WR)HgSCaUQe}A_c=MVu4=UNO!=)|C+}9&;2a8b_T*)YRep#m z>Ut{iyk@lDpd)W1D^xaaL7@Ou*zBlxf-FU(8k;msF7H$))t{5Um3kvsLtbVnBt`r)!clt z2vSo`zALTjzM_4XZ<*{X3)p};rL!Z2-j{tp;tLV8$MH(wC%rKV>$ro*g(j*MgeLD9 zef~O01z17heTY5;fZT|x!G-=9OS|S}fc#PC`??~C%-@-yEmf$|(_7;tU?Op`Dk#^9!gLPl zSySeMs`1K3ty>E9c-2KHSzbnm&xVn?{)Mp36RIz}K%()sP? zU83u>r2l$< zFOaPY^|k!&Is!GebpJ{_*tp*UbbRllUwV4o`;fo&k=YR2?r&1P*Gh+4JFverVo3sG zjpcC@{(g~KtYv9Q)@!z^3HAk?ECKyZ2dZlMPC5D1x8y0Xy?bwQ3f=hGqG_k1p8v%vZy;V~@aVNoT2G3Gs3My1#(F z@?RId_%e@|x_0sRe^N=7smkPNjggVscMl1%L6uB@@@d4jpeX(F(+?%tsX-pGB$mm~ zv2|mRt&ASjqcc@XG#tT*Q=FB+h!{JVn>WbhDJq1x! zE1gAYMv@LFzR@y}59uYANRcQ?!4_jPu6((2v=r|p%J918C3XusbaqF6nWFT)MvY#a zxXmQl=RzRQF4{+uB2}`ENyQFs_kX$9{pYZUR$d3iFnGaCZ89b5c~H!(7ekd!+L zj;Rpei+O>(MJ98K5KL{P|suSU0yYPo4kD0Mo=4?nCdq^9m6=%&W$ zrG_5&9;emhWpvWjwk)9Hig|B9HjJf(Fvv#Zh4B5ih&e+SBrf7P0&`FE;DK+Xlj> zz!2E7RU#f~;jk2%737vBj_GWo`*%j?H6$^C&G@ZZq^_PBHTdZJ{I4a9jr%{k5p!Wf zsB*g^Xll1ks8WZToXTof*iv2)g^v!T$66dn$=}*7NC@}}je?4RY6n{t_3+`ga@fw_ zuR%Zy*s7b9*-+Rirk^RspVBbyOl02BFsbJH!SdH+XVW`fY{UG4OKPM!(+_ zEVN~q8*%^v8eN0~b)yUDV@H;5w6=FSzh?$sYn`V(yO^=+yir0q$4a$EI#wy7`+Yv5fqRG4LWTXpEKyjCia>y}T4{LfVG2&=eN;#tO=kSl_04zxq0BcuE zTYNb%FcEvc{0{L5_L$yI8a+Vm`8Mof1KO&0nIeD_`iO-{FEBOE%_xn{m3VSs+GDz{wde9Z_>K#8c%D!WMt&1aQBgGy?NU4 z{GjapBfJEqdUBcimi~3m_*!tQJE30WvF>heUw?Bn!)5_T0XjdCR_x3+85K9*8gHg=PybEK? z-erz5fzT-HY|^3GLX#~FqerVLb$s&UzS?NamT;uM%k8r4X9gTyg~O=?4J-7-$awx1 zO@=>_>w+X82Oe&aY~o+Ekk{6aC#-HTBvU#K-MbM@qK_-mkc{2iGz&)XChG>B*GNDd zO~rXPRj}1swFa-2!}_@-pIt6Q6^`j<7mtjWe||ulXo%E4M;6oeQFXLkLubieLk%b8 zrg8D7WC9ey_p0Zg~onwjXRq>GE*XBbq|ayM`OI^g)_ zZJN!Z3&DtTdzb5@O^w%lO+|xEPtSSx8f@o(Pf6d2>uuLbB=uLfH|Ryx=X%8>XJqF+P+BbmN1M-0Xk&t6lQt;ha+p$ng-5R-rWNvx?jpSk$lxcxKDStZ?Ur8 zM{}J>`+NmsZV{Y`TYA^$%O&JVaH{OD(pBpgX&0|657__VgbcNm@!uDkSg6Tk?4DvQ zN#7dew%d0313cKKlQFNeEgPPT%?yG@XF~63>h#* zJ{j4RX?p3C3v>R}<99|n^FW&3HJ%RmNq48HBjUN_#ry12mN%|7ocXTF?6cbUXMWzQ zDB<#Sc*pNYpRQ^aCN*EqF1Yc}s+~RljuXM!GeX=d0U0#{I!-4mHH9fGR&|azKU&Ws z;LY%dQrQ1T2m5F4;?$7NMA-98wW=}d#^Mkrptfv}13+Wc)V~otqZ$1B`_5c)j)7qQ)$zHRZNf=hPj z&5|ot@gIms-3BBCyZ*1C4_2Ib*9Nk;qDEJ~Q$d-TK?nW6Vro)%AK>n|9uOQFlHzmmuWSVs!qU<nUEYVp;#W>yeRextfJuzAwytN1?zN8gCz7l(Ch5I^B{L znbuN)zTG$$o5?9gUcrSu&Z346-OV%|<@(5Nuvt{U#bGlbGTrCq8JYL-TaGlT*$&;) z233sM(+ceaUZ9tJ>-&IIGzDU zL$uBicOxdP@?_L1Yx(Sg_i9_8t?n&yEqlpY_j~s&Jnd2X^Nt z7@M#x9=wwA{}M77KhqI!lM3;NQ&^X{{xQDLy;B-eAr z_z#G%HPyjBEv?|)B;_UxRx{uIPgNTA13*Re zyBjCF*vA{#YsN*6_)AiE`dgbAPN)4>$)+9IcS3!t*CNn>U-3F1VcotFjlmxcSqdbb z+1A(e$(EX6o#OrAz!GWz&wzYBwvi_3nBxB1MBDbU!!h;KmpwGM^eW^5_9yo+yTFWG z~{7N=AEXj_uz}Ze&Gfl!BtZ-1wKh~8u{;fy3{-A za&Jk>gMcdcu_h<~nw}Y2?Xct*k1%i55?p;Y`4=_j&32ReHFj3Q-c75a<$$p#F6-Ik zR9ia9Z<&Qx9AMsByOrVQrDL%BbOlxF>GR)~u%dsgQ~8Fkj84_*@~+{)zAI?~tx`>C z+g${4{2OF0ve^Ld|IEX4o~GUT4r)9e%AKi)!ejpVKO|juI9vZ4%_5P61Q9_H1hH3& zm?1{&J!`gVw6sdlp-m!!7?q->6D_LCXzebeH9KsoRjS(3w52+9sb9X&@BVW>_r1?^ zb2Fa%4-UPAvaS;2f%n(Pf5~~jQYv7pO7zFTp2r|Ej^iRgfIe1G|C&*nBv41~vF6yL_ zuR+Vg-61~ImlF88>HP(5V_lIyguRkR3rK+M?K{9Ky>OY-Ho5X%%LmryXTky3Tew$7 zh1SU!Kr5~jm@w}sIk50Y?eD)=0*!(e4zR!Fwz!27gQy(Bl(Lb^R~j3kS{t#p?I;V! z6(|GDX_I_B7!oLYb4Os}?w*k0Aqj9wO1b;(8#gprY<&G0&%`PEWgiF!d;+%877H(i z1t<4Z*QnXmBf613R*|6kA<|o-IH8iNjkLmfDfhj|9R5@L#KTv5IO6WyeH#g^OIHv4 z?0a*63WAvodNt?MLq{A@Ic$g@q)+5oS)C{Qx|V)Zc@2i2$!R$drVHPz3z~oBl2RdhdqmKa#?lZ1q zG0S({ua{x;r@EJX*92vX!lX2Mcx0cc??}K$=uM`id^4aZ*E8>kmiP(k!Y4W&RT(Zt)p4pt7)}%*4}Z2841adR6TW^hmtw67FPhQ zVoLhOiMD^i>|6gSnqF_7J!!BgNH9cmS~GCPt~=_9sskh<_2cB31RraLs}GKr88ga;8Inh!oh9chbK|i`^a0DHEhgp z7=GtH6D-!}Jd$Ajx@Ez3UtM2UFzC4MbhZTXFL3VG{Q_mCL>ube zagd|d-$y=KADrHCAM>?(509!dO2D-^hoa_~8V5coc%b#0zoqy7o)_VwF^d!C=2q}rmUO)h}1{%XHvxZ8fXG`|372Ol(a2UL&w4cSdwxJxT3 zfM7R)k7H^qcRd5>RE=}aus!w?Fi%u7LC>FV4)XdYW*rhJB+TDu8%lpQjZ#hx*4q+gu+^O`B zPL)n(`-xn4`Z=+wNi8a3p$IHOeZ3&bveeV;kv09zTj*cShx!&W-H-T){d6u$9=*!j zNc@PL9SDYquvUp$>!RDVLuP@rQ7gmEt_j{#;DqG;$B?S0Ph{G}@5$HL1Lq{a*cw=Y zU}@vO7|%b?XAWltUON6#di@G65&M?`dcJtK2W&My?_Ci8T7OTq^vlD|AdKT>&}x@+ zmBG)o(>oX|h!H+b$p0Rd{2+q{0GPx+z& zzm=UIlG4-Vzl+CiMn>(kd$Bn?CQ#`M4aUjtsz#aWd(DYs%MxbIbV2t|o&fF(KjW4s zdV}UxajLw^#*nbF3yI#FZ0`IDcA+SBS;FFV!d}rwuifJ1nMuT-ORgMhz4ZpnE@^O3 zorWXgI?1cMY-7&bb?Aw+(u`uV+J$Mw8%}+tZKphc1Ug6B!2)(||Efvr)x0?rh8imc z-_4u7X{FCN(FeX9ay2I31=AUtnb7}LDXX#ASz{mpy>565cl*d>Qe=qPnR{D0ya@5C z_d$hIzg$ncGHZLotbVT7LB#L1;+)kE8nePIetdD>ST$~PM*(;`!QJdo@5&<}Q1ZOU z`dQKKfn$Jqf6*;im{@PxJ8|3%0{W3!^#r!1vZI&<>k5~+2qW(nuRQcsWXl{=Z{ho4 zYjk;c+sq5zIwBmwu7A7UV;}jcNK7l=_m_FM{fo z%~a$hDOuzQBQ>pAt)N|vw2S9WHnOGzW0rN14sLoMy#B16%gS*Fb@)zTA_tHiQO7tg z$KcsE%$`X^T{FYrkSI$b*i$<>t*Z2SIP&;0q9$I`#IdLphROZ{d@?FtoEWZP>+nJ8 zfM(S5cyaY`$aMH;Svyil8Z717H5px$64(;pf~MzIS&J=EwanaLOP8C>#B=A2{4>db za3V22=MKGHeAv_f1Uz_@Xxl@Mm;=0n*yS*zd`9%FEW`oHBU(4FdhGQrwJoxvojLmI zVm8#h<}K7FBu8_tAcDOuKz$|vr+EXN8o~$~N0AWJ=rMLL!m=jiMT+gTy0o-3Z%pg_ zbM5u0T$(Mr*6hYLVyaRC9Qn9fzc_f@UiL0|7J#uzU(6aRB73}z-to>Zl+4&K@MZP} z58QEjo6?zy5QV{!Vfy7G5@;z5_F5`g{2+&K>n-I=Yu>Qyj=0yu?&ndSWt3w|q-_i{ zW3SEQ15du2oYke7UD_v}q&3RQ`gcork6=|OWEgz_lMI%`xwx7n;}xJZheMi+`4w;M zrTrl3$2v|29K7{!I77Go%p$b6gb4=AsyuRAiwbBWxF}2lqvtIynJYF=bNop5VtHTU zRd;UqXE`WL!3Ie;@OwW+#Irf~T zOP}&}Y?Q{;gz06Fa%xo6e^VXRbTlt)5s58;s>Y}ZJ|N!%@S2#B5SWwYS1#G{;sp)Z;3(0`JxT`W2S>8wdR({ZqOkRq zxEa>FtIHidi_knc^Kgn!wD@m8m}gGRHI?jahjKi-KzV))4>ob|)#ASeni_^JJmrw{ zqTe22ah&2XZ^j3+8LuGOFHUKDSCsf29<+NpbGrQW{nO=7sFHGDWK$V~BSf7eK$13) zJ;ukAi0Q)s)>xXH^tq1OD!CKYVyyM6x^}E-?2Y*u-{u77;iUKA@YcTteE`;!TuC|~ z<^-`qqSN{A#7poJ|Bfq|Bip@8H2Xkyj4%acFXLKrAy2^93Vf3#2LMFvkpKhyORhe; z^z#gEz5x97p3jqsMaUSV|N3wa!(*Un`tOvUCyZ2N^*(X>0bhSY>LTfIWWvt;&g1E? zPp5Bzbr?+JXn@e;)NlOp*a3(k8adj=wj43Yxc}t)?k2lwUVkvL;%@(D{K52I+D8(h zd=_vvwjxqgW&5Sa3GIRi1)~=Nh&%UrI)$9^iKuLDgfQZW!;+p1rVh;LQXM2uglelf z;GEBP79LgQ5}IsrMw1XW6ki7eeSf{}8cHUUnU@AcVbfTJhZqIGx++-uCYt1|kmDGE zkx+K%n@V{AvIhgomY5r30G=9H1M}vM77p9rucqf|;_=NYyBP>THROgF%}C;QJ8bLH z#mSuI??GKiz)xsK1Ft<7moale&^V*wV}MWSI;*zKf8YIn&<6=w$#UU(jfWb3yUSea ztjY>i_uAPMn3Lk2FqFN^Zu{wnw zCzcWl9iXi@3b(Y3qXl1@7I9RQb{ z%vN;qtXs@x8v6pGyabJ+)XwmrU{{}mxp;j!Yj;cg z@ohWtR;_Cwf3c!47~di-g$8KW(#{_FB^K(Z`?XZZZVv$ejafcBEBs58Hm*EUE7T3R zJ5_uH(N6==w#G#B%U{%AURnZp5keNG1#K+wxW_;-ARD!iS&%kVa_K3`jI{F>&`uGk z(gSF1dTng@iGm7_?t$Oa+G`1z*8FYy((KVqKb;wm{0A^bX-nA+k$vGvp;uHk3}$8D zl^ebr&;;yc64<~4(HQfRlfZQhCT4c{$v>{!c8y;K?k(L(bOnbSI)!vWq0t>#H}L3* zf6gPmc-kI=28>>k(|c(t051VP@cqdE?ucZDx)QEU@MU?AU=A(tR<6HV+sm9-JhiJ9GS*AF(|x4d>#W$uq8JVK zFwT3xQEwR+=%3T;T&L|P>|CdvksSUmts9+Mpo4+cc>dgH#2~cxN3GR}6#TZ3*B7r{ zw4mL)WLADz*zj<$hhx(SkU=BJ>Pcj`xUYmVwl2nKs+FeL{(ItqwY1=f;9~jn=H-Bc zmCU+-RBNK|%v=1gBwfB+T~5!rL(fmE7NTD!%ILmNf9;{`#D?HJ0dGC)&nUC|U;E$Y zMxN$<1tor_m3)|%ggLSMjC!QL*qu(_QD3XK6^tyhs{f0t^OSl|>%W?%8&i%_`*Q!s z;UV7lgp3i((+sz98n@@=W$d+&4)gjxd;T#Mt}Jq{elg08YYE7APkTMKauTP`P*A~z z1=rH+bqpkI+JH|s&ZvUb+@h<+Uz#WxH(`f8+EK)~y*VdeS5HC;tcpgs301%ztMAb4 z%7soKq<8dPybI);(7YtsH>=EY!bP7KckEkw)K|Y`a}mW5GMaI4e0`S|sUFAaPG$!F zjE$yMJe8ht6r7qB2O7&20Sl18Ac(jX;l@SS@D1;4;O~DHoy2bp;+w&l0w6WdTrpbP zp8FFr08zRjw?E^x7wYUISKaF1b%Ul$og+8FL2Xy>=ll9~s3GqZoqacB^y}$0*7NQQ zy;^rU-fi!k+;Y)qR2aW#i41h0{$d{AX)ogCpF_VC5w7#^ySH+@q)z8szWcR!+Ih5B z(6na?9_P^vJT3ET)wQVgY4ezY>D8zK(V(*aipbAB}2xpnvOZ?r6@cw{$S=N3WRul;= zsQTbo;`EQo{ljRO2QnA_!e2cqa@>=M-P*d z3d`^=I^OFylWxo1WCZfI!liq5-XG8~y=maeOUXs>_RY@`m?HhOeSeQ)|E1#Mcj?sz zx5k93ez*6!)~@2vbM0!Q&azfMYSAhzFFruT3uTPKA?q|-metF{GAyRk{MOvRF!Y$uukOqscwMq6rc$Q4{B(x7OE*1b$xOPEKBZb(=PiR)x z-BzKcz?+%4HJuoGL^I;nVJ>p0>0esYmtwy`74v^h%g!L5@i(Y;y3v6$dM#%n<;lxK ze7(L5l^=m#+^AiqA|BmXihab1;xZuCqghQKen8N)20Fpd$csxgy#zLFS;f0Kc&*;r zk|@c1^3ULY2gnAp(W_5|?28p@?o)swq9PlfDNJO#y)V>gC}@37*l|D#Lt2bJTI2KI zVnq%3HHscy~)*$n8? zU*{>&AE_P#rnnAktqFcFp(P#F4q(Q)t>?ywS){5Y1!TOcNTCAR)!Ak<)KYgDv3%tT z;NZ*;;FH?rd14UnCHXWMNnQl7Z=>1jmN`HCwl%1)0^T1#Eehp`$R~4l=83^BKmV{W zyC6Sn@?fOnqk*3{zVk}wF5)2gaDeUP>laS|QQ5w|Tz7JXS&(rGW=QLZBJ-M-JA@(e zqed>D8umg$y^(O|@SPrE{tdlr>F&vRfr`PMp1W)N;81Y+BNU_k-utfd|4$EJ)6&hg zK}k$@i*^0pW*xmCEq@RJ+Ve?uBS zf>uwuzAY=FE^8c!pfgP*2gkx*q(D+6T~4scV2t}vl1PWs{4(%T4HWy}`Ly~kRcyD4 ze1n?n9P~}@Otf2ukUp@H?uk4n2p>t(wAFkNdZr7Vf2JMnA`DB>n7Z!ic|V%udx4PU zEZWxeLnwp9IG_U%4_Yqs7wT<&fq8rIZ*Cs!D={j&`4Es1XsoXMl*n&s zy?M4E4dA=M*#w>k)hPbCeBDXJgxZJgHgs35Rxv24zMk+sR+*qYsf_Krj_u1m_i;l- z2q@SQB_>a(j=%TipiQ%lbOhew(Z(;0-k-c*N5n^^-G8A|8eTF-_^Z!O(dd~ zB>Loko&VH(@!dUoFx1PA^2GB2G1H#mQKz-a+!}tChHM-z$G!2_ejfP3E4=rG)NaP70f8)E^e^DnI@5&_ z6T0nY|1b~o7oBcZV407^?zm^CfOUeqS3IsmR%TGFvNeu^e%eP^jclVKHy{--q=6%o z7@ja!fM5s{7#{KakuTyaNn-nta!hY$s3ReQ`*0i1%OnUyQ1}@(`7-n6x}zZb_%B)3 zFZtvqz4q9^&Cg%oz+?NBnrx(p`AxQ{B6rEGVvC2gJTxW{L@S%qg>no+m4LSp{GQgjtUu<0@PTdq;i>&AJ zt3eOes!>2ngVgqXYGfpvzL)5%)XiB5ls1ZFz`9uhUZcQW zdkF#}OoreY&M@_^QS2WD~(Ia>s~9V*eeM*M)YlT1V~Q#whyZeY@rIj zSsCTv<1wF36a#&!llzKvZc2S&NEeO^%wIXGxzAVVlIq_|0yw|~(y3DN1j#J_KuXV_ zV~6Bu_LdvR6ySv8%!lduy{c(P40mL{-FvrCTq)OMKj753p^qc3Lm#No;Yq%$}%8;DdXlq z9P&<%9@Vn%g4cEw$m96)SU$`0;mM%Oe~Rr-TLwTf4D1J3Y$pHIB^$?~H0rVIVEYk* zso=)$tCS9+y-WsiA!`YPsq_{9m@PZJB}??R)V;z_RR~sBeZChPyzT;jIc!@-Y$`t*cc`9AwTN0 zQ4h24s_&)OAUQWld&>NRyrdhDvYJ_6@G`E@t{jui1QQz*TsARb_P=smhx_xV0uDLu ztx;tbg;)T>KqEw4`#t!64a)r8kfKoj+oR^*x-e`=-fDUSB^G&(25dV^_HVWhFx;711H#y$2a&(SX2#xQNes0js}%^`7oeFV zJ8RWXveWX=ZOD%f#;TYlyTJo1H+YG=l3Ac;X|*f^nWM=C+3EWtTlb$F9oXsnK|_DM zQ!^>&MPv}_C2Cnz+La~~)dZA0>8&~VCGkdZ-F`_cx;}sdyP~?8q1P8&34^E+t(an) z<}q>DXA%eP((`--?Okyzp3T`f|9vqCOIah`L77)UILLGj1k+4-3iod=o9sXPqao6v zYB#zmFiMsy9*o|xoo7KF*Q}HU+0oj^vYGX&n4|z zK>81v2H=rcVk!P$!7(=sbkoO>>FpbYmxc@Tj&L{;agl*&9lrYBDr2)({ynA*fy&S- z6}@AH4c4SA>$w}Dg#pUkMZVFZ^ zT{lTmYxR*=Wr)8Bs3t5uOB}ys80J&BJ*5RFr_b=l#CpJ_~IqE}de`*i7#wqCQK)N%~ zgOs@I3{T+g%IQ0m&TQ4vvezk)@9OYtH+Mv>-vfUMH!&5Q%!!GbP7SpiZaQ|x#PG9t^PGOq<4&74rxQdwZNox-a2iS(qA8A4tx}qzg4vq~j}nj$VgT`_v>)ng&QZ zy4BX0XQ~RKs;)Y}a#UaNwTtRQ5?vI)+7JH#yaX+LT?QUoRvQTO*pjNgQk2yD?>=7% zdg{HCXhEP%UX2r0t>xgsU2#r$Ou-8?`-s1)CC9yIbeRKzFz)yb>T#B31T1CR7wEhY z>#utgPJ12nmVU&K_!++m@N&%lj;j50~ba7b1VWbN*g?jRv=`$RC54=WL z(*Ov6!}t!2OZmQOJpKg90}zQ{?5GYS`Vo*-#z0NTw7yv5j&gi-K=dJ!73)v8-n?5@ zD09}tr5F@)n?C?GbZNwA%p9r81}r{b+Qhe9zJs$wqIQ`-D)g!Y&hs)gpEy6B>Msgb z;M{guEc`b*bSUBU{Z-x^Wuy&o4dC(B?Aa(F9#rJH&2yiauz7R*2`}t<*vQx$>?q#5 z-#ex~F1m*{LMY(I2RE*funlE^TMkt8~I$weAiw>4K zy2=|SQhOf$e4)#KAU8*PgV?2yjFinrDOKywK!%OAh`5Z{rp?=+UawxJ)q|HI z50QE`=EN&EJZiWy-01{4g_r)$xFk>qN!^h4nHw^Zk>(v-q|1BC%;)c2ntZy6 zCBHh(Ur^Vi4E_Xv1}}jNn$(?#PKccwCn-=@K;9Cjqu)%3S&JP==@fwJ>DiJ)LB&aA zX*+OQOjgfL0wE1P9kSZ(Uh7MQz!i2+hqL3k(g%o~xf?|&X|lpBf#OMDN8IF!BKS_6 ze=*AavvXL#EvG1El|Gz5I=XY~rR@GYS#W5VA&|6uK9*M96Kj#KEL9UFIX^Y*Sd!IW z**mevB`EoJ#q5_scBZe;)EeJxG^X)!zotYztfbb^x=?IyK(QFZ|Q(UKI zt=|m)1#S|_sQUvjTCNLB%3e;<+KUE{$p>d^$eZ70$e?Y8V12$v)So$8o0}tJ3DD4B6-Z{rw|Y!1S}#NEJPSo%-Ws}G}z_; zfLR3~sZXP_Wcn%NSiF2xE;Rdi|0&w$bQJra@AHqIS~+S6I2HgDS3C9mEeme|5(O3d zJ87$ekziHt&Kp1Akhlwm-=%k&3l$eaPc;&gWEVdwpZUEd&#>UTS-V@LQ)&OV(=k6K2bYQhTX zJvRd1u!1@wWc;$c%c3Hg;rivrlXF-_X8`BJhE#|IZnitSkg)1!!Ez^bB|BTsy_F6O zm)QD%PeAPN`1w~wR@%Mtjpk}Pd{533t2OykjDl6mSbq4y=0{hry?VMcy2_>(pFH}si2D>58s4~L)+i(u_-QZ{jWR&Fucy{6WFr1JY(6CpE`iRr;lEFl7WJtD(b&0ogh-Ixc zCFe8Mgfcp-5|h60*nhtNe05C9tUi-EE21OSg{_Na)bFk3t!3{N*JoRuTN{zWG=wc# zr%)94#Fl!lkgD6-z10vyqIhnZt4-BV?6<`=L*$zaPInxT ziB8+hde2HT&26cJU62mz7O|9|YJ1dP-OCEx|+(4ZqC!?xQ}lQ0H$v7WsFH<8V}h1 zQ!v-t^g5*1MmZ|>u7m|?f*o2BHT|Vr#6(&++3o?>r%8lpuR4_CFCI`?WCD+dF$Vqg z85mD56fe=WS9UgM;z$ZA9r<$Zyk-Tb5>~hdMgV_B2%cU+T{&wH!sMQxQvm!lP%fgI zxZK?{JZ(NfOiYs^PY+7Wi&@c@Jk@rj+ev*fC>=Geu7r&El{I_5Kmqn%)|m@ohQpqS zR=-bT$@j*%?}2&lD~g9|I3gFV)<|W#q*REGYKVa&OsU6=7=MpyTNTlfYcps+ zDj(Pv6&jSQmz39bz|Rn-MWU@o6$L++nMDFuj4&opDev?ytq$X=wpr=z9mP$1Vbq2G ze9^IIK|euFd2F_j2(cf#0bl|?J!(G@%R+v&N;H>nA3IFWbT=g>$(e_yMiIKdt?h&D z?`EtXO>Ts!I-Za_&#cixyT`WMEC5v}&a~50PZ_})__k(4E}pjla2Om7?|iI5!NCb~ z-6YD!DM>R!xH(*6a8T`UG0PloY8jQm$bY?yok>_n1U-m) zoOC_W(ol3IK%XC`jZeL7>~NvOIBvz=?}d+5ye}dv-TSo0Nk=7*x;na|iNH;$-$ zUHJCW&}JUk>c10lzWS(Q^n|sP&ZYqIDs*#c?1MGf$3gbILIVx-8`bD$rDvbrG{5FX zryxAnRGQV zVX9?vZ5}3#_@~iRY;wFB`?m+KpH0}Q5D1a*PWGoFV*Sg%kdOzh?4D@>T6CMw>paV)XuksG1zv;4RL`QLsmlbu`Onn{I_XE5l!U&35+|EdnlP z8k89Qn>&vA=O?Q6{DB1819rax5Q0YsZZUS?JdTs5Dv=P2E4Vm(~1$L!r~tBb-rq$?@28 zBT9GlMeRm=GV1c$`M=umzt_97FBjF=h@!W97~S3-gVioEE7N-AnP^q>lQAPCz7|67v}eBMgTXa`DV8R=?&u?Q z?`=T4iJV|Z?f2jUV87&qMuC=gqyN!6J!r{1KmqE`a! z%bsF?@JcGH_WdcOXWvzwuGESUkFeu)*Fe{swzWFHlD3UFBov3E)mMLHb!c~2jGq&p zlKKtSJJNKPNy6NfqNXVeu4^HtMc#f(Y)-Hd%Q;P;7jt3yKuA)?+oN$?}IQqLUF`@p!4>Cb_eTW%`)uY{n2id`q zWSEIa58}eQlB~#zDBZHG8__W_sMT($lK>BypF6>HU|evt-<^^rb$v+ViB~hd{;?+A zz~IsxQH?~JG`y?@SZEX@wBoUnBD?&FJ)Oqj(+@$Ib8XQQ2c^0YQVxoVQ`#S!r*uzc z6e!rX%yZpw)m)zQJTCNPy_c(nyOvSB3K;+&?86I8~LBS9fWq%Mvb=AIz7U}SJ)FKI%YA*85J&;I9h^3B6 zCB_g9ulfVytAM&!{~}k#5S>_v+;JxMWNf7v>2j}Y{^9@gH{Z9p}$38%B0e;?5j?|L$_ZW(#7$&LqcWP8bCYyBU$$df>%t9>OqIY zcqm+!kaaNHfWJ3J>0T@i>r^zHV*<=vwXshMv?#P^AxKGsu+!Db|1q(|qv#&dTFt{%*Z zesS*CF%0~rHWo^}*6dC~iu;^p?xXFNS42YqJN>9fJx{7Ho0LNugWY!b9E{kjIBwTL z>U%$EaX|!PhZZp@24&<0y-Z48qS=DuL&B?r;v`X6mw;@?7Zv;}T;Rr)=^~Fu_};2X zNJiPAm~MQc7z=r_jF2VxM6r|B?*n<`jRtivJe zRmtk!LrI2BE^DZUvV-Dw$I9$zW}cG8IIcPX8j;inPN<5{XSzpK7t$W}UxcmiJ{oUy zb*d+@zx&*`rN|q-Qmj+>*LU|%Q~{o;JnWUOwG4sXcR(n8?*S?wnpcqxN1Z7-1QO(P zj3qN4k`!?i09Em>hyjxlj9A6al3evCU~xggw?tFU1O-n*q)MFQ033w0;*bPE(h+6w z`0o0*ei2)<{PLP<^_3=|vcCG2xtWzlH7)8Px{aCr2!HhKE;XvCd?_mKq;U9ES#V+ z)uHYh5lE50qj<0=Dk0EnNB&hU1;h7CkFI2=P&J z^mUp8A9MMRI;bdL-I829NiN$lu3F>o0PWlBVHgYvqoL!wSjp~abTF5tYU4mSxUL7f zVoCDZ3_SKXNMnxOWd8k-9|VrjX8|G;`g>rf^rJ{3z@F#Xk0G?Hv8f+nOU zr`t2m+Cg;CK6(-6=1GU?WBXh}EPI%-{*)dDd9f6|&gcE+1AqR?_j*u-o zLo)tMEi%s(Wo+}7iXal!Fy*^a>vnuuE+bKls$biE0cNjd#EG+cIe*Ob_^y8fqy*VP zKK{;{LhqTe^F>awsScR1C4~~B{3B>J{CHloXFB}A>Rkz9=dH{TV#g|ShIwwzc1-C6 znAXmc6r#@AlwYw{KrAVSA45CR? z6~nE&t;S)-^tWR{r;6nZm|(-o`DN%yv+;SuU`L4OtYoCO7S*VqraKArNMZN{>^Tfpj@RY*ECLI6xVk*_pnuA~D*o~l<~yGW7CTIhj7}um~Dkw_=~&RO&r8jX?bT(-wxa52jz2pkU2Kk25A#}n*@hY18C zLU@o!B+-d}T+(jR=vlYx&^@f4qk!FIb+(ii`sZLfkw2G=)~$fjki~qe?f_bG2%Y95 zwp4bQ#`Nt6Fy$XYH#B~{)(d*(8spGLW6jq(Mbpj35RjP2$Mtj z7#xm57wr@#mI`+ec!F@v7hbn;&7=q~+_F=ceM|!FeQq{1qznsi1GvOo+hY%nQqA!| z201XaJ40H&5BR_d%l8c1hsbIeW%QBjI51{}ay|TPc_YD)d}deS58nnxM8R)O0I@{< zO3CMn-|T@KUuYQ7_3>p)Al~~!>GuF7SGo?{EXL_xnX@`s@QEKo<_0zfa2hQdNZ+M+H`zz~&?1>Yz%aN=@ zuXzvBO`4E;0Z7={Hhb|PAHBdRU2rzVr}uKdwodBRvh#cMzFa#m*S)M}+U6kt2?95DA?a$ELmS6ptOesrKYK>M)co_#oQgiEY8t*f)YAR zA#MbU*6h!Spi(P&^%tIR-fBhT-NOh`RPlI)<=mrpK3Lin+GGe@Tit>y2^|-f$~ZVAx;TNWf@mC;?PW zKwHY~M#b;qNJylpBPz>a^_eIJ1cddZj%izb=#xfmm)D$jkn6;gz=h zg4iE6SKV7sA{6&d{>U+=^rRl0>(hzgX%?yW_U_{NCCF>V1g49iYj`h81um4b6LT#d2l_MRi1HD(=F?(OWTFt@-&8ZkQZyT4mL)lDcC zkIOyMA~=K9Xi*!dgm9g>^K?~oPoj@BTKuEg1EaTm=KDmj%s`ciil994F8kcLwvqq$H$9|Cj`=<99V4Z-`w`Btjl6m=_mlswES&4v8d&0KJT zXF+Mo&l$*F@11so%CdtEo64i3;?&FY{Yqf8K*ai$FNc+sG_$;;Sa;;tcS^lcHg{(z zQl&JR;+0g%VTU7W?<2jmJg&89%&+eC2~Im!Byq(KTz}q`bqA+TDN@?J$-+GG@qfrQ zX+HXm{LZN6^&dy=4tgq&yd%t4wZ+s={RaGn--@9d(u{=rZR>2^3rx>rKxfDkBh0k- zzT4h>KT@Lg8YvXty;m(L_v$Sv|AF5hSx()|{ONEzkQGGa#?*tNyEnNp_3H$Y3D{3+ z)=#B{&6S^$juX77gehCWya8MVatWGPkI0l0A;l_%iHz9cGFs ztLCo%Eb#M2zP|Uk_OXk+RRkfs+G0-pJEm_l$tA)*8ud3#dJ(8_(&(8|-AR zl~*5>`;z?yKGG%o^BGT2aA;2!0^MFGE_KTI#uYzzG~24fxCtFl6ySCU&F~!cAcyP1 z7D@6Jn-?0yW(#e-X_z!0jYTU57Vc=FVmF(H`%+>J_)5fVM(wSDpB7Hg_e619>q|}J zhRJ~SEcY3wMA8ltctTvfxwXKvfT@Oa_&W#|W%&9%`)ak;Pn8mt#>il0bA)?1Ie7)Z zx6{26e|zwhnT)C*`WFx6c(atw0l(U@{*b#V#LEQw@@6175|!?qMDGT(fV#1-Osfe~ z_Hg#RZ1z~bq835Nx&zej9z^cref8HXH;MwOR6_l!GpfCoTMrJ$G&5n@)CEnzzcl;@ z;8nag>!_aBMeeL_kS>rI5J&WwvNi@bdF@dmgxE z98Eo}uj*`v3{=f~7ofgWsp$w{1f2|0UvkeY9^8mNxSY1(Jd?86Pa}?YK5~Wyvf*wt zs_c9_f#yd{NAM#1KNzvoTsx#=f%fvvXN#S1Z1G+@)E8!>vhDcVKA^MfkpS~gjueKE zY^LubItb@sshM4KXT9u`QnyN>rRna0vr5WW=6vQVR&uC;Z>I$pVm3RM=gjoX)_lD^ z3u9CRXCTHsEpoo2z?xp~tFm{66j{H(AwHD*0a)RX;p>6{=ZHpOVwd7sPrz0?A^Zcr zse+^^eI{2m4I$MBrnh6c;yHElj*XbABsBO+YEF<0aSilCQ$?8IvFWImsK=5uyV^@8 zTX6v!>dy#2R%ASbfZeNY8tea@6AO|D-PDprd@l4JE@j$~Pz%##KW_N=3}(8SwfOq> zq`f8|f(B`@Y#+EW;)gr-)APz*!cK-LJmgxG6nzH!wG=mH*K1n7dvL08f%O zoe1v9EpPwZ3t{~%cR`I8RAe1|nBH>3iw}Z8047{TnB|q7Ga*;&A8Q}vvQ!XUV{yG$ z$KC5s&=v{>aRJK-3fGdGF27U?80^U+0GDiMt#gpaFJOW$d}~oT+)Fu`Q2%L%5^mx+ zv$7Lha7wzd05Vo!%>%1QQpKVSvAXy=yG+UK+t@LF@EMC{_Mux^76gs_o@cRK$aBW^ z$qwj&>OmUMx`WMaN5R!`A$hqMxI^~4ppHqLy6C1Q&OOC-5bX2gQ<7&m$9lOUgZbg> z&p}ap`-^_wgwo^jdvL>l?bb&bvX0Dd24LV73jR>==I#A$c9ieBmJ|j=d3E?p9R-zx zg8XzWL@p-lDfphV>Hr3>dldR1<}r4LgnIA`KudqQmXKrsAmwl65}4~JU z2!i0<81Tc-llM!i?SfHWm;8e^r%=+(_6=fu+q6{=T52A&t6`*PJiaTTP?qxvb(b#m zoZh@J%RM2j3foVSX}2Hv%#4ES+>iCH0?q9NCNIZkT{_er3{Tg}-QK#KJ7&otgoyMS zid)kG*s}A7@5k!xymf&V#;q6Gmja2oxc`$3QPe2Sr~-C8)9RjhZ9=nf?xmG=CINVr z%)2!B_UI<}0{)}73sshF0kM?$b@0w%49;cI_n{&eJq8^4`sP%U0W(2`<30dMg<%Gk z{ZgY~KIokO6gi1h$j@j(vrbGa4Qw1Th}t|&J1EV8#FQv|jifw0ii9nwiVEFIM#moP zp26kzn7CoSTBMsNWE=Hxo)^!ez&Kf=JG%KoK~{EMd*4kT(D~Gir@5$*cP>Elmwm_t zrrptrL=8fID@oQONOyknn%CA z=$^sf2+t$Z00xA0?nTlMeL6!A=FK3urCBaiUj8`hpd2D1m_$Jq&OLuFc)TOL4;A*y zIt@pG{!!FJTrBZOGp4xw*)WN;NrS-zB{N5xBO*?)Q)B#=xOL-lVGWjl@h?eaMMFk zrizTu8*gxmX^LutE%0#>t39*U&N*E8yDxjbCA^x~2scj?vsaG&wX^n*y=Yxn+9MAG zytKT>ow$aKnFr7ATvrcG$0HaLF^us(gF_j~zEI|F!N*v>GA*t2#SjN^SlmHbBB!*p zGzb-pR#;wE_+^$RCFv3Dq}ljuSxPYt386}Bd3x^G#3+Mgz@EYl3y~H14{@S$(Em^# zrXcno;^B%2;dvAcl#t3oEEOk6sPIb<@O@SF{QQguhxVxXI}=mnmYK`mUh1xtPGpLU zhOdvNCQ4M(#9fIbJi~rvLoI#n|IS6wk<$GSRrFN#Yf?Nt)eK~pg_|MKNc}%F)-d@m z?rWKBv;+4an#!4>|3hMGfw9E?hgJsGlK-KNo~_J(NY%BI7ry@Tvb_RL=f8r3 zrX%S;bTV-!<10Jg{Ewycj%Vxt{`k!hK@h|aV#khAVm2g*z4zYKN+VWjV-uqdRjSl( zX=$r1N~uy5ov0dJX!TP?OE(?zi|^x?f6h72bCP>=lbi9r@Ar9;9S+IZ_#6SjCwvwj zymCB;oD6if({}l^wl>>o=U^{$j(yA=9gaF#YhEzy47o_gIhQ&@7gW5R07^r^!D78D8v>zb_S&-CYjq>dUATQvM%e|Iw)`= zRNgvyEwPra7=y8TBJ4c5h1KWgiNMWXGam}HU13;9A$D@R+ryeDLLcw}8l zXg9$(U?qEi#0>?VF6bB-tj=9Uh1x%v)O`9rM(`1Q8Z_6a*hgICl`^)Zu~ko_&rvhb z^tvpb$ZGJUY%UrM059dPN^jnnaOxLKNpd8NubhCoJKiw9xx>x#;e=%vW8gcFyvUZO zL)~y?p54G00`l;3!D`$+ydJ!01pk7L#uqxA~)GpWx){^H0}qw*5>K|`T4?Zfl@QMg=B`PZZVW9xoJu6lt)!*m6R-A z@47M_-5%Xw;TA0$QPHGGDe@vN+#_vk8OOB>iwapB+0V6$;gRC@-WSPwgI=Z3@9fCg zMp{1E1ou93)K7lu%CrwS0#7#__JoQ6gMv$;*we5}DKV!8|VCqA6n8!HAS(So>-hO z&xei_UL}}Z-*VKn<%_IF;^E8|0KymVcZv9-IYCl$;6exRb6|= z+<6Gf5ADhKI1~BD7Ft#&k{44FhPU^abCI8H>GJvTf^>D2Yr0HLpcNt8dvpp~^xu!>aR>=X(9?c( z88p}C?jU$IbjZ*10o{#w>`fk_0E+=0DL~5E!sD2w2k`~-(=|^StG<22GsGYG=Ot5Q zVU!*&jqG82&R<=h^!!kj{dzO})&tM$9`r;}6%Ud@a9$4g#;i*QiB}uB2nR z6L=rCB)yToo{JPY(bCuHzR8hM=SG`_^B1#>NN_SC3yq;y)Z1Brh#jk%Fq~+L-KDn+ z^7XnPh#|&l29(7^JGU`;5}b9S$hXFV!d&6VE$sOcyzPmpF=|ESG^TZRt7b7*tb`GS z)$D?2TUpQM9mrYk_CqP3_oVV%#jOxf%Oc3Jf&jP_(=D@c)+SN-zZqCM^BKq_bxJ{K zs<&FNmOkDQT~5n*dDyspcB?oLf2Xhvf9D^h=bceBO~P{LRgu+gj^rMi6*k1@LTSlt z%&cR+hjoLerAESkS7b!8)9VbAtI<_CaxOt0#VbvngZN}bKET(H3~hGL)b`-30b&pc zFYBYZpT)+xJOj&0BhEa;z%wVrAoIa3xy0ch`uB?enC!7DuMD)O{7{Qi%px~sQd607 zt5hxX-bpUw3@Mj@^41p(JkmnAWvE2Mbo&p-ffb^^-O6vnr_!%q=KVt+u|qjR`T|;q z5EfYeYxf}EjY5`)s2>omk2;{sYcJ22FaK6q<<-knTg`qr`4wS;y4O1O(5@mXcQxzF z8eO1npiB>B;)J!AlSQBY2|?t$ERE_ z+cjEQdr5=6npjYFvdneW#PDR|u+aq@VF{_{PgKrym&rD8G*34|Q?LdQe&6`zQx0?H zZ>&~Oc4F=5`?Au`yKboEeB)P_1`!fEFnaYFiPvYgtjGZ2J4IjNwlmLPk;CC$6M6X7 zLQ%XMWrK2ri>L?ra&r2Zx>_<;1fx);X|F<>L>xWeDf&Ib1aIlv(*INRiuyY@{FwA) z6JcBM=g-)jia`R_FMF=t9@dd4W}X{+WIJKLm%N%pfoYN*$`7Hu&6V;VZi1&a>>h_NrS)3w?|%F!M&F~Q|% z|DelfZ6Vg%RoI#}FV9S{(WQqZc-&<4R#lJ1y7p{CV-tV8>*ApudGldTEXSB_LvXy7 zlai9cl9|Htys`MxEA zM00I@QgFRgM4b_T{i{*G+^)vT^g z*S@ohc?#NGJhRd9k&$#aJ0>IithZAvB%JNULE{;0%aOqLnXp9814e-#Jz!ka1IC@i zbHHeb!UM)zbinvN@E@=gE=uo!2_HIOBKo2S%s>o(z{Cv?7+u0h z@&Fp6O%9-x=>e2BlhK(pr-Iq@*cjo9B-!m>AwpAKa!xGyhADHUiaiAoSZE5vspzQ0 zjzXM*l`Ggb5bLbOwkj5??7-Yb?SQ$eyB#nMYfU)Yx@#>TY{~=YSz)fKq8)mWV)q}= zJ*X$^9n{+#A{;<{qQL=k!XGe_q16F13Nk)m<|YR$z|``9nfV_+V77zdH@~L91mc+(*etI$vt3h z?ACT{d(7j2MR~qIV6Kn64p_4H0XyQe%gH`0z5v({!#*s3{HNIFU%+9uFBE7WbiiVQ z;eu9^yoy3;`eweMqOHu+iLgtN`602Bbc{TwL)&8=ojgQnbQE!ttr#1|)4ztP1}h`L z;d_dTxNt-Y*v@fM1qI+aIUUJ!U32G4Dhuu7Gt%2pL~F1fp%#uwf&4o@lsy8mnJO7f zy2B^}7>Qj!7`wkdHI%7~R(#^bJlU;Lc|NIbH)w*cfoji&o1D2vzUqLK;-I^k8j>{) zVP>3~Y zal}9~HLQF=2Q?d(r$UfloWfkx646O9=xot!L3_^XkLY*p0{w+cZzR0U7_ zaI)r_Amr^0b>h*J*?j4xS?;EJ+85WD48vlD626)WBDPdr#W38q3?~!!o_SJF`;#eS zqfEH@)OsGWrXy3``2v?9T{r=g{LDI+1urt`)_jd(>yPRF30}J*eJav%?}&=sI}Pz(RH5*L~})Jp0^aJ5#8u zp@pg;7^@>YAn+?$G|$yARJ6_%T3p6_AOKDeH}2i}6`d$Z`7q4Zo;b>IlL95;?L&jS zMBzg8AY1@rX8qf7@Fm%ZV(sk%l zE5SSF4Z%6ZRAgOUVLKIaH*igQl`#^}nmFN>ueEBwwB}qDg@^Ph$|Jp@Bj5S-h7DfF z5(8_rcr)z;AGAf==RkMv*)_cu#witDPSiuwpXn^W)$7;t;L$%5{Ab^AfWk7^a0WNe0 z)P}0kzAXCMOLNQYe_3PW&VpXqxV&TPr6V4%(z88h9Y*deBv;RH1)6>{7+^Fv8yt<^WKe#zolDRDW7)K^%Am_N}yRA&tbf!6t zQ(~a}OmwB;GpcTXMN>rz7%p9TpqWL3^jGlMLJ<5mbD(9}FeGjooJ{Y0@T`kV#z3z` zgMf(XGuAhH8f=+&CoZnm3d?KI$HxsfIp&`Fj~@ozE1zfbaaz(h5#hE4 zBQcP?nr=DQ%rYi>{z0+AvlZnK@-8GTpQMfKAR1Dv7ec+{B!U&6Lpcsh3zAP!o9?Wq z^Pbkbb|k$5B+FYatKg%3mamh4m?Fx=@@j>*2sgp{|9<)Y{M@wR==6+MOg)*9dv6p2 z8IG{+<472Hz1x~W%r&deuoHcKn`=t;%&_>Sw{N*pAXDRkll1rJ6*AHHGHcRhIW02p zA3v{l8Vx`GK>fr$Ny7I~Svo7g^$g5vGfR5hqTlwfE_%(tHUMZyD zedQO)bDsA%hLfA zg0AM<_^Z=r@{?9ol-@{RiKl!z)+l=-k4~4Z9(afq+enQ`ii-a?d@uIFH5h2JYL`gT zc%E9vh()62y~zdxc~zc8%S!G>^0lt|z!qBe@#&7$%?!GUEXerx4~hYQLAz~E90-4M zV|B3091@A{x#!A2)-~Kz^c>D=d9GE*f(#zaNhR|@G7MwRxm^AJ>%>6$LG|TlveI^%}mZ=ohrf`$zztt>>rLv!^)!B zsKI*-uw?V*7h+C1lo&-Y#Wv}=Zah)284y;WKXow?&0XZT*RDt`4~^o>$|IGaJ?ip< z%JqDPUu$~<+$fjt8E6>v-yNLyuD`}n&pOCo zeUM?#kG&bKUYim-Oi}{0sSu>0d-hVUQ>AhY_N+bs^lkIbdy-lpli+Zx(GkGE)*?fl z-rP?arWzLU>tT&cDiVGvBqk>TJB8axF<&QkE`VsBd;rhNzdzsREcq-xo|Z+6GZ=dIzE9an!wt|*_TFO^F5tG*a6wvqoc15JZDW&a z*tNZ~A<{!7Rw|q~>&iy%6m;6YG5ho8{`5dqh#H*s8=8DF_J(wQo+cp_!NnS0#H2IlJom{_a*Efb#Kz7czV4I|AP{m2-u>Uz3Rc@ z;70BD*F3NWk0Ku=r zh8zuaa>d=}Ufwg@|bl8O>r>DvYwFCB8PS#bS5|L|MZA^J5ihhfUES5; z=tEjb`6C-+{?(@hI)#E-+l>Oa z%IobzzOH~0#H5)iY!&PFM>-iKRSzxox<_m&(j&hXXwe>ii?$R{G%Ih-0QQcjWOUEY zTkN6DN8YiR-ytyjt3~9yqifS)98`6?4efV4Kg;sqZg@yVT*2uZ$6bZQMlS6#0EE%^r`jNNnWwx;`pNZ^8y)uA3qE0>1fh9<@FVBZQ|=$tY5Li5 zDa=)DsA;Y!KAm?f4#aMV1zXrPN0#}(!6tZN#b_yO9M5!?2q%M115$K(W~_5w3Qa!0 z0FuQ$7t8klN_9-JH?a7kUXz3Sj~)RIh=6h@|M+%`QSxCLJzHK`iih!*qR+g3IF_Sn zPZRTPxhM_yYWRu*-|&PBguktV2B==>mdRR$(m0jiSG~Vly@^7>B1L@R>i!nrI(4`M zMG^eHp2Q%Fmx_01X53F9BEGI8zQzk0`$=bi>~kaY?ap>D3~q>iMplk&&=C>7)-$<+ zvb;K@I#WV?mt|^x`W1Kxn{vcZYEndGp`zLz3d;)1rea*O;u8@S4`C9VlGch}Z!?R8 z`i1h%`8dz_HSr)C_`($`p44FM(6et(Go?Vc;VmLxYK9E+w_O%=7&pbfYRKYxU0fZ1E^4fx|zz;&+xAkeu9SZR7u30GF4GOQ~qy z0!;bkE=Tk&tCS-ck|n2&6U1W&l86~R2qe=iQHPz2Bdzlm z1>LyN+F@Y-E?6RhTv-+uZFh4(bYbycuD0={10he*(PJr(mJ_9nP>CGetje0v%f+ZG zb8TcjF!NW&l%4Jp5)YN@au{HQy3S{pU620gaGv$tr7NY)@iHF&ui`t>{=IQH6Hx*+ zUAJ)dABA6MI(XAHrBD5?x-qny&4D4On|N8?juu}wsfP2}raDTK5+>tRkt(3cF&WVs!CW1sb{Be18LNHEL4u?*q7nX?{tns^8t!#JO&mJ{ke$+igBl7Tbkj;c42CHC%0m-I^POYF~tLQZE&=Iv%(5C4$PBIC3TDPYfLv2p`W zdk>w;n0HfZB>drk(v;5|s;4v5Z2v(Uo7im0PsF@8$^!_$(?kN(S~En$!5 zSd^T_t;*MRfyT}}l06}C))2`GU>SIvqqG+qLljD;#z*tx3%?25+jW0vb;W=0*kM|X z07^`qk%hI={%^y-4B(g?xMh(HV?-xQ=ELXeD@&a>$Fx`s+8dcIW@fa^`l~NXQ*_n1 z0#5Q=ML3SBrn_?&H*A{=rLm_hA{Td!p_e~Xg}ZZ4-c&`d0&W819@U( z7w-Q(RV`Qdx2D8qI-N8E?~wF?(>sjM>%F=AIrs|F(JOeVBBIVdyCWAUXZPF_-qsTEpRO+tzlV?hT-`^LaIkLq)B4+^gH*Ig2SE5 zI{UFH&;qh}BscoUP&Ew^&TXQYS}2&NJ5%X3uQ-?E@PR&G&{yH^Y4 zORoH6ZmEf93yta0l19H+W-{5}+LC$oR8~c~jn$pJ$Ko~N;YF`XH`$RAbFY%mkUGg{ zb5_EpF88UdwX#iPiSPi;?=41Q;1Esn=b4K)W_x+lrrJ%Z)R^0uZme@zr4OgxujQR6 zqG&2tpDqn$x>xqs`8!&j#n=6q9mA_i$>qd_hbiu|W_`p=9qAWcLj(P#K2QLqA>)(z z^2?qU&!#z++B@%hoz4F3QGfxhUH~H-vpcxRZ3vQp(_aT60XO{Fk(Wke(=Kztt0%-x zty%zv1^@k*fsT01FC*V)nfF>@?bTC{Jz{&p?Fk{|8ATDLD88>DLuMBm>-9VtJK5P> zTGX&h-potG;Jb9EujLQumL;lXmZ%aB4^)Y%_Z?w}Fk{0v$=`44xAMMD7Jfj6iU4Qs zHA8#;yVf!SZY0O*c>`6LD9eW+FOR4!6Im}~tnZ)~D^x+X_Ys&(i!HJJV*k#9epPRF zEC%&>MT1)feAX0JE~(fjsgf5$twQmY0MHYKbEkdVYl*_ zFN|$E(w1hdLDPmg{L7Cj;VDUvzWlZ+ah}FQ>(8*>ITTA*n1YSu04nv_JCJKm)9y!j zK9rU!#(ry^5PqbT$A4|}`9!gU3#2_2SmE*fqLXD;SkUV9)AwDGmsOcY_Om<%YcRHX zt;bCV$6lVFSq0oM*5}}N11ULE-E@FHgK~O&kMpM)G)R8lc>r zyK{Xc53$T;$I*Mf->cOSYZ?}`eca>~L5-(YJy!%5ToI2Q#B(NZ`L`N4D}r5u>5-Js zaJx>EcI)hPly~-}!8FIOnp1Hr7}A@)yfwdIOlcP@ssEgj2Py1#S*v*36sqcMqqQApfca=%U`h;`FCG;)_Tdyu-~ zoK>+OUg&S!=6}WY_c@KPsTRo>66)>dCveB3nvrPmtGlzn>dM?FhAN++rHi>qnta}s z>08>FZS*n#M$9=;n#O3?QK&eIi@(0SyQFc#z@0c~<(qLcQ&uFOMbWp4FJfp!*FUQaG>viDSpjN3)7UxB4^i;J!K6uotB&($vbWMmtuXv+#X)>7? z=qQG1gIaG#41n^QD<=lCKecZAE0qLeexiUn@Fr6cB8OB@7|xSU=Au*97K>ND~)D{MhwlvAQK(N3=mn;&=gEcZz6FcTcuueTibj7I>%4UN%!e1VGt z4ukohvrFRSfJ3=Zo^NI$jbK+EPd|x!?pk2Dnx4fdzv3A^x*&^ba_g!rM#wC0&i;ru z;=a%vxvIaQOj${BohRoP02YDd>YcDpC(hrE6!#9baGN~zW`^iJb_a*+bv7t`VH#N5s;bA-Kfdo7rR-5n{B!DUJpIJ z0lz;$FMZhVbgD0Q4%&wlm=Q6DUVtgI3~_l6_?=UiJ=AVjwx{bn97=qRt+gG%6ddRM zrAfie`s+e+jTocyvW1`gN#BylC8)<+?qS^Clc=cf9BBVC^vZVB?PKP`$)5@Ri36Vl zTCA)DyvvAO&&%9Pt_GW?uEpClLv4?ls5K(#e_dlaW)b6Gl8wWZI8>jWOc><|zxu}; zcJ9)m?Wi&gCmiZ@H|R>5aH_KXR(E^Eto;Qk+gPd`J)y5vDKG#iBfPcx$_%=I6rRaO zl`v`H9L~ok!=sT__(TsDDs8LElUQZQG(SNA)#0ik>C)>w-gR+xJbnoZx*TU@n2L1n z21vLpyIUqD?yFSY;wz~&Ms^GkGyBxMD>n^6dOxS=P=UuXA(Nr5h_lE_^8s@v@@ko( zt%dTaM`hQOxorseMx{;u;FH<5Q=%h(ogaI-%2iTHn{Xs)Q;W&MLnWES@+c;<6zvh? zwOv-pyF{o&NMqsTWjMi~=Z+nHaPO6(C+=!op_*x?72l9eU7qtbNQ6%=+K7O#pLE#? z46w|~{4eIM?iZ-Fq<6V-j?Ku33^h|Gdsd@A^Qhf*@2Bm46oSXNrH0uP>ilZ@Q6&oSP1ZP;9)Q&OLim5!jHnXgn2TO%12V(ZrctYvC06 zRgLPla7r}eAI7h7R`a&_?V+qlCgC%H{S_xzg)$6J;3ChpmB?Po`%tVYW@?->CnjA` zM7%u7lqj_863@yG={F0PZ;w_Rzwy3x2^r3%qu!+eK@bNetSVEjQ%y!6qfxg=^f3pQ z-(8_cbr*LS7B*2}Y5LvMm1y%+HKAV+clY7$N2S*>Pa(P%5R!X>9WOa5_PxnmSJnn& zVe`hvet3u)N?OJa)imn%T;xI;uiSB>i{c&z9Ab@=^sZ2=f`@@Ghe)b;!8ggnrnI=l zG+4?Z7snI#FPK0eB9fJh1+%-l40R5j3-U46Ga7k^oTJa6>8>ZSfaxainh&!ns;ko- zrh-PM3O-@nuMbsvYN`+*AnA=WdZ2gG1h+4g9P!d*<7~q%=J&--o+|W9Lh*1Z#J6JS z*O-^mg$J@_=7Esj1PJ;(Dxd=JzklnJzk2t_RjKPEWF1NF<(6rVf*RM#v~p;)0yi_c zPX~migj6)rji=-Nh4xE1i4zaR-_3_dEB?A0h6yTASC1Ei!MJRG**ZzxDKC*I1<9(l zJLkTYJ#+)fVO5SzeqtL+w6S|tZM{zi#QBK$~o(fC`s_%979Y4-I8ah{aVeLS+4t~(dF zgpK&8YjF97afn%KaQ)6@5g_Uq`NzUxqj)r8ifO-$Mq9j4$)}fy6+D_F-C+-{l+^LN z>W!ztOExTjzY~+&)>HVbXb0WUqiI&+beFj;8Wx%_KdjFOAw4*keq_N62SO zF_!7F(@*m5K+|8yK6^IJ*!11e%kpUR5vtg*5$8Lpl*g%Sy%IysG1gAey4mFP^0I;X zhsDL|j6N3OvL;yTu5BOseJ3ieYm>F?Nj!$6wNal zR16g_;yjaK??X1OaqB6<+OkQlqyva*I{Hh;0iLHO)(9mt3)lax; zsV>QJ@d#1?YvWz05^RnS^N8*L^T>ALg}feGIC*PcZE*`aN2-J47#+m%{V%|`K_+2;}!azw^csyu~$1hB{V`ghF*SE@&ftxlV0o`AOK`iALPM)g63X>t%7GAJgRe zj`Ag?C=-)Fsn%zMd}j96YQnVnJ_a{^DR1wq%82b2HlU(2p(0xW`=IKCfhEzRC;6hE zTB+G-gNbc#)#{6Z>dshfwLg%Fd}KPlE%SGla0T??bCQg=BL9#~GSLNlcti_tCv1{C z4s~9C$W!JZo7bH(=uiQ9!D%;c)-RD2B`jsDdX}dU8=C)db{Wn9$&)Q?v zAEL9ltbGpmcB!5J5fl6P1dPHxJjJ=0GwLWcvp7qyc?{z4B0N*#uuFNMG@KXDdJOt> zVk+N9sb3kU@$r%}!`~3w8U3mb?`7UMB%b~fy4#n2#~_bEl?{w#Fd*$O*NL#fifMRu2Asx(x= zS+gc(s&4WWM%G`a%T7)d=WNLCs+n0Qk7VCbGqZh?9n~oy$TS6ZedX|qjb{IvB0@d$ z;BL6Mv!`_R9I2mdM1u1~yPDknsTFovFblL%G{9>GxZlc7Xf06W>^W z@w)cF*p<5uz$;ltU~!-6-~@E~p18Rbmz97R2fjteIRjm5`n8V}&jK!ha~wQn@pw_8 zPtr?zoPRNDPZQvDm4*5D+gK!4etrRTh8vjk{49*09q~hvP$IZ^|IP9p=`( z#8{KH(&Oj37VVuP0APfy0AWC6#P^8T7F`SwFOifVR}%AVzusECa%5Scar3MsfCi-Ks$%Y)83XR+Ws7Qg%jR4?VT z7H-7E3y{u}1m2zpGQ4AS+1s*!93T%U0E(W<>nsCgfeN4sr~&GL2A~OO(Sco-!`;u? zfDWJwd_4r{0|o#dFa(SMV}KRZbnT)kUL2Rr~zz-!nC@CEz;h2y;33V}e7qi#-m+3+EYU5Hxdoc!ZR$`w1(w-EP1D4xHinytx7`cE-0l)XMFp zWyZ5bLzSPk1c*^EFa1CWqMx5tl3plM{j@F;TZD$wM+=ZVBiHB;y=IPFs_lpq7HkIh z=tT=_EEA7-3!@bzpDN*TFJyFxC<5{_?-Y;uNHov98MkK-DR4?p<{)_uAEI?{)t`-4Sa23Lxrq2#tGdK;tu^FiHz-l zZ_`CDfb}|+wG7y+9?Vq}{R)sAEy@dzyrr62Ahf)bB){4Y*Cu^TwHHRz-=$H?5P}@c z(vmw4AX1+nTDR3|aaXf!q(6-#`AHh{{1WMoB1;GWz}+%$%zt(*%FjJ{T%NMqw0*jg zbJ$uYDsrh!>>dI{*Oh^O{)XK2pv&-r=r9Oao(nG7eO&okwER!tGDw*v63i25?RHqE ziyK&Es}dsxKVz7FGE@I4J|@Tx7t3W;tR+q9wyoU8oL(AQtC&y-oe;U>>7WS+&)JcEe`FD;ABUCpK>si6^W8Qg0K-vJ6A6k*m#P{U^Cs|f+6CL=PfliQA(ph@(TwbKLE zQ`;^4_eQ5_7QdrYs8_4k0_!f_&1ryNY37n2mrE37{OP7hh%Q>Fn{tkWx2 zr;z&PHmA=l?yS@~U3Vu*JA4-LZ*Vh zkw9&|-+(+$*1U1*&4qnVk-eO7?uv{XVlz$4PC z`W7tEX&!V5JsA9b#cLWK%_$E8gZygU`B^OfadyWKBFWOqnrvfhXYb(Xkx|hxM`GjR6A~#$sY$ftl+?6z(fq%xV>oRcUA;s426#h_ARta= zMs7bQG%D;!P*OAyWPACa=--qe*NCVXWCWEM7eY@;ib%?hcXA7*9^+0`ll+SU9`SP+ zX=&@HEwZ*3wPM=iHNv7J!eTWN6ErCaQM#!sbpFW5LnhS3M4H(Nj49?@%-uf#jhY;B z+OF0Um^cUXZmMx${S5jp?U;xO3!z%XghxeS;u1qz!~Z3CeFvNqQ%_(j1w)dPFqlXR zeZKpnD3j#otf341*1!#E^KZxh`GlXQn3;r{dF3Uy*PLI5hf;-)|nigj)5!;DWxGo@R)R4%?z)biO&*jXg0|S zL$MK7v}g->Vz2O^0_{ayZ)yw`o=B(0Vje~2lF%ALp)}Sk zJ%>7h^KCrZLIv51SDe7|c7b z%dsIcW2jMS%+;N*$PLx!T;R781Di`qU}}cdw{9Zgh}%yVHMLa+Rwn_Sh_vQ}q!_)` z1*W00qF|IX;2Glf%7>o2-k9QRj7?HO;08ZA95updD^SBI$(q`tzpy%@bxC1Fnk!Vk zW0%p>9w(bh4T-n8OuKyDZ>!~GQamL_E@q`iRQ(@7IjgB>Bty;&AoKz%}2#f`BCzr=@eB( zqI+k5V6!e-N#R($Ko75eu7;4la8FIZ&v;=bLO2{w5BVuFUn#Vc7R4VGDsWumc4%Zl zRD6WDTl6sXc2ODxy|TvHnE#F01c_e)q8m`KJi;@FU5K&p$geu9{7)7`mB(PyFj|=O zPuW*`Rf2{BoXze1uHJz_!j$YIB56|YLy?rnP)XMo8H+^PRG4I$iM{ejZ)Dr*U!8+X~RvKDKbkqp;Bxhs*PiI+9k2Sx+i<}t|AuZ9c z36NEnB++fA>laM^6-_vW;^!wDmmDu%;hAnX-wQdLc+sl$XtG*kS}xa`iqt(FhpVP9 zM0M1u{q~A=p<{$on$ow2j4^6Q68?*e6FRB+NX=Y5J~VQ$`kj<LO3kKf zFg-Lm>WSV~Vtmk2YH&vGq&1p9usB*1`1DAML#j8__ zkd=o{)X4WNvOv&&Cl&4jEj8pol^UCPdJnQRW&Xpm{EJmW&SG7>gc|te)=DT4n{|w4 zNe~h^$H5o>MJ*f$*YqOogB}MLAM)@;UtEtPx`k9kr0lpPB0E!#D27Ej<=d+Le&yCK{W$SEBH%0F2nF|PuY zg@sp?0@7=e*3{@P|K3CH)Tp{;EpJFp16hY8?#$ zPBZsafHTKUpqW;)A))1qh_o%9$P(_LL|#1%oSf6Gef-l4IQtwHyy!i<_RQ7e-FNG- zHNOB%r86e$w-UY;^$H`80eI7JnCZMAWeg>(vGjx0m@MKpW^$1dLsuo_RQDiaQ1(xR zt_n4tO%X%%DTyge6I3aY%U#t3o!hpG%ymTghU}}$xNHeoD{?}1BvlR7_ev*>eCs6d zm-kgv^^KNj_{|Y{qtM@Sfg_+t2@f?f&fJ}8iQ)v8?k2aIV4}P`7pNC)9$u*wp5t~2 z@oRW1{Duh@bu0BI9m8etBp)J0Nl2j`6E_}NwGcQ)f?+Zr`wZkbMiJhVV+oOwuOM3Z zK{1mUGtbbI7JO+ujkQM+BEIWd-3D-eZq(yf=yWKMxF;KYeFULI(?Wck=E*;GCv0gK z0T%KOiELb~zmk)RDy(z@KAq>7zxvjw)%>qietx0IM_Zb0>0|3pK+cqkydR6(?byp`%I7+QC>AK!+m* zCME?(b<=gyo1>aQiXi*suw&zV{7`&OQlc-2x$G}dAua0-1T+0u{`WpK63Xv_ATVxz zVRRPzcaVaHfrX=AOj;51Y-4*@-|!?`w_|;0mzA*iJnZ<6kr6S?JWLrxLKPr_@F}%8JJ&D)Z<2& zZS0=00$_Zc8vskdWVgSXfW#!tI6ri$Wv^l-IsA<$lbF#iFf*$=k!DMo4-52jWTBxD zpJAyr)2+o4h(V}+sh@!1mf;p+U6QV&DVT^AL$4WbO-m9vk$SUye_%@xXPe(3GfB1c zhFhj7qgu^xh9m>h4r=}z4Hmq7IH}N-bBO~H+M?=aRhDZ~XqsnWV%+D*_U>pSy4`SH zzDA?B&FjH{Wz>A4BJ;6%{TNll2P!z3w3y^pTxwv)GGe>Np2B>MbT@hRE!03?5TBz;6NJSmB{)WJfBu&t5}$zJ^c$_?i*dD`jTm|TC)Su7J`n1!6RmoT ze|zuGcABmje`|qt#LaLZM&oPTpEt&7eCd%Pp|NsFAE?~724!-zB)N}3qI@YI1~Qhx z%HK5VlQrdTKAGb8OBI4dWqe3n8x=q_-_)>6-ITp^SQJ)rJ4%FV9l`%`=<`a#=)-XS zShgfs2)}O>H}_<9X#0db z4{7D{UwL2+madn%8wXHA-!<=!$rCMZUV}@d)tk+kV&`-r1-S3L6E?awm*k zp=#gS?o(FLvGNxSYo96m*K5)RI0f3OuqrR`ULh!Gtbvu}YHa~reS-cN zYG+Nd>wj##(|D)t^hGWT*@s7nljY>CvREfJOtW#Y!A($M67qrOET10Pouqw()nUI9Jx0Kbg`tGPhBan5KeAXJtP&VPB2O-- z7|S2pOlsrs>BOpbV6&aCTtOW?h~1)X)aUAfCa5IWK^R_cDI#9I%ns=X;nj{is$3+` zU1Lh+1F^EX7lA(tG`Jd`$I_oX``D42Rl_bxBy_iBxwcY@V^hXMsISpp&sU*x5&Jd_ z19MH&H|&C(-hJ%vuwG*k6sY=h&fu9L;5s(o9Y}#ULGNG_Z|>PkSq+bDTAY6=Mg8L3 z`sjWNJbUub2>}dFWwbN7Li(U+^DI2=b9Hg^|Ln}W6nLuGvn!53QxyNNP4YCEF(M}ZTs`ruFQV6bt=dG_(Y6Rc9&B+FXM<{rWBV?;X!U4bOz!adnl$9O4NC-<8novny5%g=1BFK1x+w z0jDi^-4AN$&mX1i4Yju;7qKb^kKYBlsQ;u6gm)jBdvsI=cp4lT&$YPEI>#@0{OHkZ ztsjz}RRK3S+}DTxvRE*Qx&5mbhVSb;I;Eu*re$U~rvA|*$hNY_`J&Gnmt-A%M?E}i z+snblRH3P+Z!eB|^pDt_buU;sgu%Zcdwk-+jkoh1HSV!_W#N zf%hqIXD>Wgyu8)#4BYAs{`cfyPt$Vi51sF`>$5ML2;LZnrsxPh^&fjJwg*pbdi1<= z?dd@c>u|M5D^wb`yw75ZK&y>f*#~%s#k#BtHFk1&OSxHjN&Du9Z&bb2yCr2cui5oM zua3qxX;=eN9vX*NV2!$b*?!y@_BQ`p`tW>fNjUKab;5x!*Ve zvFMX~EY>cI;OsSMi3oGD`u49kzR%!hn&j)a+y@Wo?yd(<*^IMV{{mE6f$iqVPcz=l zzCW_oGQ*prawUzWr6}0a9r3XIV!}b?-l6I=cBLdM!RNPUv)^V+v{qy%r>Eh<|K16I zPyF5GtiFB$DyeZ$EDx=-aEEYaZ|{{6A7PHJIzP2v;bjc{A4^vqkj3-#iHA;6xF!db8T-%9Go0q#3^DOF>=vx@1`u67NoDUN)dzYjo+GqE4Mr<<*op8SfJFfC8wgam^uXrcWK-Y6^jLMM zD4U{)o;PJsGt`2j^^}0bq>cR;yGPV@w5KLH-rJWn3#unIZGl1~efq7BXGnVWjq`7R z(=NW|uLpb{q1v9O(%SaW98p}E8^%D>VNP0%#r|W&e<8do=R=S934r8t)l-o342cU@RBU6CeTEd)jh3vF6NYqkZU`J5SRdxwmk`zM6 zUL)j0d1FoO)n0$SYj`x60}I(Tle1?QuLMieo*>`rT4k=^vP7b^{EfqtxCA-?C@j7N zT&9KKI%WEcr9spk!TR`^4!IwW4&-@w5l-aRI3Q!O%)kEp)K>*)0DzwqOhQT7h*g73 zRSfS1sj*msE9(pb)#wO_$b^k~LB&Lk`Ra@zQ2PO2%S>lD?89m~bH@Nvc=;>%fJ1VH zwQkWOZ8pI(eKM^HOJ-L5B6KNQ)kL8chi7pYov|3;n%?@VL(-{@Yt`D!Joc^VU;i7N z__`zw^Z+;mq<72%FZwfnBN_#5u@xbdQz&3~%(7#_ zozdNGHmH=MwLd>UR0x=Bk%A@)8cF3D`S+6^hKOm5dY6~`W}#BZY&kX*4-0%|KwddU zHhcCtTAl%q!$4mVQUzm>V2MCNn5BE+JFs|c#nw2@p6`X+t-(v!Y~z`lN+_Fbt+>&d zbk@xg7AQKF1xo;Z2B+R~&`*KG%88&zhmI;>V?2qOYw{eOh_{@ zk==NT_HTb~f^!rKq{&TOE;78{SGzRBF}%nB`s zgbsw77fev_KD}|bdwDwWhv6(100yTqJ?CEgFX)C$^K7bzm^XBrMQUIIH~_#hgyxBi zS@Tr?+az~pNuaPRIkzq)$n~TzBnPkwVtCoVdHa$_ZsrYj7yzX5OQxdLxEj1p7C2uD zGZpT%b&)Rl0`_~6YPiZA9n0O;;kTtIc2yzU%}XSUfiZn&{=Q6kX<+*Xh&4iR`rAye zaC1c_LHqq6x_2sA;Kw5!KUf)nA(lg)L!I+HMkNAa{5zxv9-_dbnA zUox=7sVN)r9Z>Sl)?(a#=I3P(GQc(ZlI_(|y4IEYs=?_38)iGRmHyeqs2EJ)0ceRm zE|qqrI9F!aP9b_e=f@Gy?Tv{a7)gb?z{(R>V|-zDn#R~_{L1PZb5qA$A$Mj23NKGX z@JYsg$e>^33cKDY&?Nd=E`M7UwWFE?D4qbGqkJL!-iI2f{ieTo!vq*Fq~wq{Cn>=} zL8xKH9i==OjoGqwW^@rqQG}xQ0ADx06h)wkvW>YTSjyvX@a|J{4E2h| z%cxHV$3ws)bIa3c>@IRFECH}_+{a;#Fxh6<(`{bSB$h6$yIdC#=mLJ*umt%H?=k8bt{F(pZ_ z;xuGi#R-T19JO3&>Jk*9g!%zST?rwD0`uf%7inQ^C=m^3Uw&8D3vIvx!%!xG<2yi} zPLzXzFw&Vx?@#v2AHhzyTVvyCpYh1T^8tYCZkEvUg|p$2;w34vu6#7l?i^3DO+BfK z_j?i$Qd}sQ9g5W~^M89-&c_p8rvDT;EB=jQFGV%$5NsUai*k08%&?g_c7iolLWt;p zgZE|((iW)tWXEU*@wlTSG)tH@Y;gvRbUbXEEx=MJ?6?xNGbJ&QyQd|79wW#9*ii0& z%KE;FNx6N!@I6nYz;VHI^0to6G@R(nw(x8?6i!ntxiGEj&U#oHbdc>C`;uilwLg07 zyNop6eXuQl9kMu_rmihvKJ4<3OQvx$^+7WYruCQutK85#W4?$iMVfWaJvhz6PqtkY z*oP{}GwA&=*-SbDjxL4GDFB^?WVSlqZJ&E}wW|SQa+eu`J3oGp>aGFRGziI4#=%j1 zIcQA`>5^QJQ!P(GNB!*0cGp*h1&TA+!D9(-RJxpNe#o9(o{~@CAE4SyUO%LI>02j6~cY3KxfqC9jWb=dCAeM?Nt<@*Foa%|u0MR3_ z2s^H~iSNN6Nto5kD5o$hrxtyep;2 z0%w%)g75d__bk;F&%%`6yjB;_=BJ$FfbXh@K3coagTE4+gA+5^)t>w}txGZ2yE)%) z{jmn+?%7P2*BS8Ycp4!n1r?h*2}+R#gQwO521|*bQOeH#xV2m|+?WKm!)XLuC(FIq z-=MCfvLK(_25q(3vO+t_YVQJgV#1C!ody@+MAQR@W%&j{il`j7sV_%^K6oW&F;+4y zE2iPJf75kp7FYM_HUvGw-3gVH}BkVg6`G^uop}H%~G+2h5MUE-jr)%lGuXr3<5^ln9^(07GN(X0=ye5kE`X96Jx=ZAE`4^LrFLxJNSu z&D8PD{S$dCvTWPK0i;53dLL6Hq5L89pa75iSMqrGH-;UxR&q#6lS2CXtKeWJ&P7l6$P ze|F7xwzGwTdT-RRptpgPPBS+s&>H}D_2x#R_RW(+9GjWlr0!*FN01%J^OzlN*q#5! zoBA_BGuFHju{x1VvGQ=dgodw7fd zI`#pe_GL3|(l;6IubuBi^RvZW7BO@-lD+QgJK#PlAnhn&lRi<82DR8XB}(LGc#-`~ zcKea+4x2iFljW7skqVqBai;vRNW43XFk)CW8mDSTFZ`*`?dGG`kbeT7s>%8l0P3HO zz=cB5IfglGN09~|spOGQJCTN^fkWSphESbpK^_s55jJSm-#A)4>W@WK7@dU%J1Ig; z4;ouu_rRNgnmJ8*yy9);w60pe5I?fZy`H-eNx?j)Z9R<7&bjJ&4s^`j=#?!8fB#E^ ze2kKAuyuv@>H`fw7(0cJ4qNpeI$e{8y7G{RgB&5(bKirWDIAt2J$ zmfsensdZ~4{N~P%n6LY7UB#Afbx^%E1_zs7(}zf9v>dAdcBbHc}&r=>|(&@ z@Xk}&o*+|KhIrLkOToTu+WuG&Rs+^))^eGPLahSDB=0exPMG;;DdOg!Jy;R^ICR-xf0c>nH1pCX$| zQ)f@`KYpl5!oWL`P%5uX6y^*<54F==5MzA*=qN$wokc4;gXmW{Ji5C%dARvEIn zxnvyGZO8m(FzEe~mvF>AY3p!|d;v4q9`ELUw``58}J27s!7YCeQMX_vC0-U+K-cA5Rz61KbT&H&XX z_Wzun(g6Ntj3~*^dXodglw*P!(CF5T=y#q=2RSt=ZDHHfP|#MXl}d$9i>2>at)2G< z36%7|VwnOzd>?`Lj1k`cWSddsw@8*9T36c_Q8A?7tGLK(M=PPZL!$@sX= zNS;+;@FTk_LZev_yq(AML+{FDmAndF#PR%XwCEz!e#PH!1zPOk8mLAmq#z% zluGMp+8))a3d5|2U@`yz`O|?|{wZhlHkLX&>=!^S(>)&Z0o{{44K3D8g98zYvuIaO?KUgAdz z{8zuIRI&N``-?`Ni#V#+1&$Y9;*m0B=6wDUF^~rerEleV`0h7V=O9?p8YT)*swy~*8DL8loZZsN;eW2rKdg`U!KQsxO! zx*n)0z5rYCP(;5Sl}xmmyWrWUf(%*h-C8Pp48hkx(d64gqV=G@YRPU7SXTq&EBIsq z0AK2p>kRqho7q46i*mC*&qh@V<@^J&n~c@iL7gT0mkj5{W_OY4LT?XSh$cxfQop&@ z#B7Zq0YJP4RBWDy@#epO*V|~erD4TohkICLjoN8?zH$Q4COJws;@%pv_=LZB`Ryzo zQFC&aw#XO~`VDf3wQNr7#vLs)B_d#msa2x!{vI2pW(IMw-^M51XW!|Ws3-fo^ z(Gq=7cqV2rK(cO}nbPd1EPYBieBqy}3`SJy1Ljc;WB%$$KpYOC(<_k>lj+4LJOCUC zs=|(Sd;Nsa@OL6N4L%e^MD39xxB>*r)K>ts>jK%U_c~7vvf>`fcBbmp-JB%T`>1dD zh*fnXvd=H!%B;4eNtLq5_2%E}dVTmRyi2;Za)}(9y#v(*SLTyg`Hl9a1<1$I2EH)r%QbD}2=l!V-4> zVP@ZsfJ$%r;j}nUOVTaNjmwpj@0ek99v@g;pW_doq5A`Er+|SIwFVI=X&1uKYBu0BjoP>x6T zlQQWZU!jdSarVEfFLTWomn;npkt^;+aNtDz%PysEAqu;G*I#|FL=4i%b zKV$etvD z{<9R3d-vV%p^EQZX>|=`P$*u&F7WwOkWW+b#YXO)b!AvLLmx?ldL>x1qx-;I?auWd ztd_=MfuoquEq6^9qm<^ua_+@c53w6K?%?O1DyfJ4_+3SwEff>vF8b1WQCB}=9CCj{ zubfnBmqhz7Qm2Bz)$&8L#@>sQFUy?!*1?{LQMHMe#$Au&9O~EOd5LvmegR;?Y`6Wy zqpGR*QYcXO9pWTunjg@!*A-kM7{bT`yCM-h@RVOc#e@AqZ zPNle~)-w+l_|rx9fBu7@1-j#l&)y*q@MFs^dx_sSzZ5MHK!E(~7f)dqk|qrXAq2Qa z*p`eNX4)W$NQeN;u@gcKeL`oMEtmlSmyhpmf{?Yvs0DxcJ^&jxr-c=d@+(?iUx>i% z;g>kUMs!r|k1t9E5x|AMY-(n#ZxdIPQX?5Znpq^V58hlkVc($PAsLQ#@Ws-QY9!4c zZX?DJ`(Qo$)ZYz8R3D$8bau5Z_kTX4n6+Y+F$k&({QAWyB^eDI@?Ey>9T;vGxHlLs zVl8_CQB)0#s|!NL4DRg%Bv;jbF;MCK`2Y*-j!Lx@9o7uIFu##js%rxy&<{-h4Ca(V zuyf&Z84nFN15jug zTh%MkNgv{5ph8m{CvH?s561*9gWo1QVO%$Cw+lk4pqwi5T7x&jnoqh;_;JW|%{Z`f z&VTeb=&=L9t_Fc4?9z9l$XWQPMN=V3WOe`aD|O8;PdaJJgVUH~IL#vT*vC=}rrHf5 z`%l6yPV@eGCzv~U4FweqU`J_@{APt+Biw1hE)q}vmN2P)yQd{F_P8|VQX9T31v~e6 z%^9A#R82~12#@|dL2+YEVXG}#>eoiB0Z}9PQ12`ySp@BIT%X&yDeIo^+$w(#ladil zn{Z-(9G>#|&(Uc<@T8BkN_sMh`RRRtBl%{M`=2`!bT+};b0!84lZH+x6HLYL&u3d;9aTAra0?q z95yV3bI?<%l@@gR>zOyn6jd-YoMj;i+i00O^v_Iz?hSNk2ZI)A+9B<1GCUJ@)uH7u zE!-O8cN6{e$kOcUYLyje4)!OKCzRo6(X{Q`VZX*HkT=yJ#~1H##e;i`4VD1`Yd_`a z4yqkYUnZalSVgV%-s|A=`fs3xm$~`Q0s~`PYjrZ!-Gk4KpH*&?aZ_aO{HIZ1M?DZC zX!;8emHV}gOwLEZoUwwmhMjxjUa7JDqbn%YALB$GY8^pFlVyQtS!}oMtMTK_3&yz} z)M9$@ei?IqD^HhLZjcu;O)2OhY1Cv@_>9yEnjH^9)3P0R&r z5m^AZq|k2)(d=hi#&|HK(yt@sO1h4Zx;c|2gHMmVGbWX+I1heiC=z$3eu;{C(o|?A zW5VGJ_s0o(pbS{qKyb3YPw-<#ma5Y4=wl@s`P2iMLaAT{+;T3sNsy`&i4wIgQ;2ac z>YAxPL8k$rVTR3G(kWc;$;OO@)9ypXt^Sk0(|On8Pdm0Jtdqv&U9ucvPKD=!k9MIH zlcit<(CcIY-4gI65>mDbJ4yHru`h=SixuHne zz-eH8zd=|j(1r`@h#j_-kIfBi97b4_e4#{z;ul31rKk6-LOfGbU@5|{;aXeykh+{h z5^Ix)x2vMHDCeW!OcFp;08B#H?uDOseQ>~kzTN8TVRX+)p$zyo-QeYigQd`E>;k3- z`ax2PB||BT01D=*##x@9EdFyhEXNOOFPs4~bB=YxkCJEp%T+JJVreUs3F^!KL-L=M zVL`nhOgHD20#;Zsq)yNbA~@B#1tzS`k_rETta%>E{9+%V%}jdXqQL?O(Em7y{3UOQRT` zsogvzwx@~#radYGxRYZS{5K7HCEQ^1V2ly5qu*nCPzf8z8Rs#@VKFK(^0&9P<`uVH zI;r>@Cjpw>lNDMq`&P%jH>Rkmm{px}=4v(+ec({SEcziN&^y{y09y8Ka~Of+uBGzC zS7f(iVze(BWGz~ybM#VV@zTe5Ov{hOw9k{&(AK3g=dA9+sutixeA3s!j5azJUY_~( zrfzJmlo}fgT!2`HH_xV%m^0CARZp(}vfimur&dV?fC|Ilf&Cb5Pr5;*BQN5p=GTJ5 zD=*Qq*JDs$ZH{=>a?nSXp2bX)d{gWZKXKH$=gEOuc2O&BW|Buy#{iBap#7JMjFx-+ z&o)`oC8qiW%ZwZmnqkv(=XaN218kX%r_AdI%1dWVIu|xW zbMGQb&2w!r7w{*gmchtbqC5$nbh+SzaME1+33dp3dR5!Yn0oKDJ>kpsZztP$Gdi3;;-- z(V~CAJcb~I42j-_#1zQONmm|A&=`XXx?%_fHGc=w z($VwbQxY~l1i~;nv=}`Ty8p_Lz;dWQ&GA9fDF9~Sbk(2O=1lI~Y97w{DaZ~3`W3QH zrK&xH=-VUA;NTkwjQKf4E>_amuRqn5f<8br;K}YoJ^EH z7fzejNwc1RgL+lw{VbYVa3HH7nV#km=U^WxFzuAAOx@^T#uzVd`D)Jnc}uwH43L zhOtJq8jR^WFbX`v#pE|X{5L%*tGv&_1DeHid~|&|wts8oPm{J>F-fT3YQ1rm=qrIKm?~WGIc3!PQ(mdBBV;`nF*I z)zfPKzki^?jHs!}sGv_%bQL7z*{;@e26Xh+mKD~ps>YAdgl*IIy;3#F z7^E4+nd#ZBpQZEHY#{eM8&uDg=`pNGL zxipjHItyPE^)lj=h{Gh&+;AH+b)RhAw^KKpWhoo%vT{ zPXOmdlrjLmtr;kRjp$>Tn@Ue{aCveyh##QRnWN0a0SG<-jHZP8KW7$3!m(=nTPPxY zUZsg;7h|z=kSxO&F8$WPr^IHSnuswuNm;i#HtQY4`LC~_M8vRkFlhjEZ0rR*%c}@} zZo@TmgxeGI`%){mXIV1#isP8*39xh3+(>~iBqhS!*s~^RycUg?;d36?-`=N-r-7lN zL%uNyhRHiZvNYbXXC~&4CA*~^`Ss)60ML7dXg^v75h7QAF;p%gam9rK z2{612b*r&Me<7xE_xn8MVGOHs4Zr71qmB=Gb{rh^Tmtmhp>}2x0|LXH&*bK2$M076 zK(8I}G4ZUhw1}%&gld(uOoV+zWW2RYY1oX{c=6eG2A+qb1&Zt16R2!%RY^4L70zkg z?|Qb)C+tAebLTwXIo)UROqV6hXQ;AZ7;U37FSOPQIhuFXUK?rA(aMe<0=hY$hY<9 z;ZP1NWV)Q~oK<4j^q#rCwABX-0a({0gcv$D0DkohukN=O&_VEY8CboH_@Ny4GSi=V znpW-ncifB<0IG(q@~t!3SK30GP58dZ*ZDE?5yfv8QM^W2|1*teL8A@^yl-EQ3BF$L z|58A0EF7Gbe)PRBP{*S`JBNJ{1iqIC_Hs&)HmLyi$@i!4Mq+1EpCpXh9dyT`8j0{= z-U1$<11?WvavI^Ak$1JOs88`WZ@0;vP)9)M2>{g=@=OqMQ~IWtjz|hM;|YiacQLfx z(L!{snj>NsmvT_SLV$yA_*g2u>Upi0-+cAa-x8iDP+LwCEj28!7Ryii^4ylmdGu5r z{M}a@n2-dO20&gCZnfVebDpq~FZ+H#Tw`va`;wCMq->mr+-n}*YJ6Z^8H#V=*%0X| z2KLWi+lrz%xacO2<854y&v;Eo;C2kq&ArBhkxfA;(7|O1%>KKVf=Nt4h`=il-6%-& zz)b#E24cmwdv90>cm;)**|5$RJYCQPGqhymO?UNts;T%wBoin}_p?c_L2%*@1hD{N z^w|}vEn+AO^zx!(v%mJ9 zi-Fg`ivdRj08Wp=A%8cG-IN3_Qqd> z_Ccp}{mab1J4j(-Typ7=iGPWzsb_cwKn0(wb`-*Cd!m{z?@XCh#HG+^b)wX&b%fw- zYdrY#R|2T9sKZDDPDnidn10{*1zjOjhUjh<6LT%}pR@Y+0d9N@rRUF|sZR-_>&lLy zv~z(Kk5%V4JJRHeOMfF8`1nvLmqn8{Zz~(`KR2;7F+v79{s9{;YNjWvV-wqf?j_um zk`tGvhoeKP9i~n$@P_40I&ObY%!t&LJ^SG{>GO3^mh1N8%9TSYk{`4!q=kPF09eVF zYu}IgPZ<8mM8bZzV)yYnR0ULKbbXN$LtIVWF#Af)r8y(N2)SOHQaH<-$j_L0iS%`l ztLV+Mu*SN%gpwF4nm;j7qqjvQV+NbkNo+1bJ>Z#^YvMEHZUGJ0^NAX96c-~X? z9qZ;H-TGd1UgXtGek}?We09|`_xJ#c`y-TEK=)jkvwfoUxZpIKbiN4QmZ>sF5=>(D z|0nB4^nP=KawT?kVr%vnm!~A0xV8Iu*-fq*kqP>Qf-C@-Og<`3g3ET$pcxU;)^6#$=!s!-O{-ap#eU2{p+W6io76er*Pc(+0>;kb_s`9C;0;50;aVX`p8IdBk=!O7132xl92N6z4K+L!65lqR@REv- z)({b_M*Z9+feWHwEkf1tgkIiW>+hS0$X>jkow06<(`_=I83K!1C{jd%2XoKOY=5l= zaht?lcm78E@&;%;`0#i7%Y@}HJS6}OU2Ok>3C}|)T;N+JGuzj_zRwCBDBfK`Qy&pR zKA=8xeHTs&^J~46uM8KumyMT0a)ieXku3P`Wc9TMYd%rYuP;$ z_762Y&P3Xpc}O9tW-}5SfYq}bqRI-&+|_(_HV!WxM^^RH9_*$Z;7Gr0vnJp|O77>2_2 zy+O!2YJvJaOK)!RhL|CL>^CD9ZI6&LUh(GxUo!zHNP+r{A($O8`2(7v@J42^;EyS{ zK7IFN*?q4zB8Gu%RCrJzHU+&EMp#ybuP@CB3Caox)2RHnH`4E3CpG|<0wXWNmv%A4 zg*LX|<9&y*#yJ4R2e$i=m|Jv>97HjtNI34`*YHRQF5#MPn|v93_L#z#h>k%^k?I6L ziv#G$*zR}MoRc_wHxh!j5Zgm5iDC?4szx8-Bdl7a9I4??z1Qp_`T~XMn7+ap#?{Wc(mBS+)5h%q;GyWA|g$ zV*6b(WuiRJcaaUFo7;){UwQDL_q8tbd~)t@toSboqz2 zuk$iEtclwhgpOp~_0(I;pdJL?x-&zWIH_x<69-m*M?rL7dKUeTKP>7PD;R+b*l}N^ z6^=m0hSjV0pZ6)#^t$5!sdu*+E zSmL>Y%IA=nVC&b{8&~unXU!H%?2$Mlu4`+ot^^#eAXqWKth8&9e*5JYY~wGuxfJW9 z4DeLIds!Y{r|BKyj{seZ*s=sSO8}}&E)sUa;Ab!}OQ=VJNOx0i!*=%#B@f*GTYubI z!mrsT=iKfLuQP7To`vmy^IRDqKY7olD>QTT1DhD!{(Uz!c8lnUL>%r$c5UP)yqMs% znZDqUnzEXR2DF3&BsB$X$ke0)to&Qjq{!Gd;!3<_mHZ!UHgcf}bsKLx^Gd1P+qA;dikQeZm}F7Q~~|EdB`Uh`a) zD=m~Ij|0jSWJBh#351jmRVa!r{ z1`Z83T3s{FCjxpJ{!9pA7sqIAXVGT)R@jpV%>^lDDg@=KH-M?r6K@#BaMr2`W*74CWJ?7hroyQr>xE(Mb+W@R3 zE}qlbch}^Z@gY@U0rK%=F2!Bmc z%8cH=Z`J8tdg(|1Df4VK1LX(eh0b9Hi zvtTD+Z8`WAB478nQUU58BNtaP!OK!E{=PL_S>ldIh=1Cu{ohYUJb>{S1THC^Q{hG_ zL&l7Myd*Ch)R+L)F z&GQVE({|MqW2T03o6diDpG?8QI8rAP_*K}I-6lP&XIQuJN~H^iLSX-MnF`LM4Yt{F zX@1kbJ6-U^eCG9Gvb!wFzb3-ky@=z$l(lObPIKJH_F}z`<)-%koB9hS7>s% z7iOfxhdT+cfh7R${kZP+1j0VAfqj4*Jhf#T3|RFVgoGEwQCI|FcL*>&M|Oi;gbgA8 zTgv-dkJ4V2hiKrlfEORD<)jQ+RhyDTl20~Rb7dF;yMwa<{{uUu?<-+c{~#1La8uj0 z6PWcrXJ+VvzFnZn*la={n^GdRFI}abDwSbw3f$6Tb)`bsc=v!_VB&?^XcCL+ZPzt- zgUneWGH}=nRF4Cpbf;!x@=906)qxPVDT+q*MQMhc-zSnO_qkzcQpvw3QCb>j{|!_hO#Q~@N%>Cm)R&Gt$lT8!0# z=r1BqD2g>-xL43}FTV)+0P|h#Qp^)w%|m$tKnb+$1Y<4Ns@LgR9?DTE22$U-p4AP4 zGw643w1|bVR~P3>U#QN67*CLMo);8}9R5fHrS7E8{!~wQBN;X=3H-Pm)h|#sNz;;O z<=QClH3kWY_t^XCZ;P<9V$J+g<)S$C+y|>Scdm3Xm`P20PVmX;d`1=M*+2on$)_pB{BNUi zq5zuHAI9b^;?fV~c zLVIv!0kkOjWTe*rGLQq;Q4$Qb*IPX(i4RECJa4{LfN>Z83W6gHA7j+N5~WoA$QHX_ z_+l@R04M`GWW4;4ZvkQ$a#l;&ooQxb4ev+X%`U0^uabfDl{Kf7^1_?(aSXXQPSq`o z(m5HNYS}b64Xk$)+>HUoLx>-q5!1#dmfIB9_1#jh_)6~u=@$=qX!4j?v@wE@iSm5S zStSeLq^?FVxhFgPxNk5M+k<8fvT%Fp#+UsjQUW=PfyR|mE4J6)G5e}<_n6n}_pE|E zJacPPWInbW;3s_dWWN3bv5cVITN}|NRLV#a49xz<3{k1 zs7OLgyQX+moM&=>%`}DgHcvKg%j?z}$(m*@3IIllpr3{r&GgFir zPV{>DCg+*aJ5SNXB$05xiI|n4#>$X9>8}=pzBc?nl+WRTlDQhD=Sxp<6Z_b!tZY!J za*B#af3tQoZ22${2Bh`xu!odO?nuOrp~bUzE{DN}hMnQ~-qANeikY0G)4vP}B}pHF z=`x^7MhJRu^$3n<^)E(I^iF z--;k|X+QESsd;f}iia~+4ts8upSL#U{%IK(`!D{s92D#J%ZgQbd#EAfQ%3opFjF%9 zD8aCXJ{GHXNa|d9G#Cx2H?<(?dxKR`W*Z_Wv0o!4Uoi^x?s6j#0CR$^pWat7q2NV4 zxrGNyu-6IR#I%V&**p?1QBA+OMuyJ%|fUUO^Q*te0~P zE~TxD5XG4bdvQ0dnedbK8c>HI+cq*=YsmVGNFLgW^=9%*;<9?p{Nr4^2Ur6p%jI`4TvbH^QFu-2f` z4 zAt}3DemBVhO}nE)Z$it5{N2)&D4%vLWjI>}Uyi)I5cZ=N3ez_5XSsz~>vr@h3#Q2+ zJyhc(IES8(K1x~jEf?y{fProR2Hk^@qHN!Qd(mK-dk`{2H(28ygo0iQ+)E6gV_!xL zjG(SK-`!&ypM6g_tKoCFLfdM|_zz>lu0i>rCOZ)(fYsb4))ekvxADPc!3Sl`gOfie z>DJOQZbYtN{_v*RxijT}yYe%|UgSpHt8! z|9=uG*Zj8KuAdv>qsGJiQ6lw`IJmPLs`gdTHlU2+$KU~v2%}sR*-204XK>kl&Y6tj zqw$WJ8xgD?jSCYacE>@~tb^B8ZTdQO*c|3+JddEqWE95faTbl|pyCoh5#n{?--Yn6 z<_Zi`2%qeIc$pAOFGirm#)6A=X zGpll~Z!2Hv%Fuh6qw`ZOPJ-z02BvWc&XB_saOW4y1^jEozj2GYW_606>qV$yJng`u ztXXJ)vNg(K2ydA*H&^!QZ}#!!-8Zh1r`0&jyax>N6Z7J`m+K54n0|AD-zB^#%SzJTYDq_)Iga8%@9oM2=W4Y2Vi|*=t-JyX@=t&dT3wj(VzhD^ zvbsi^@-ztD!H^mWOfj6N;(A@qI~+_gD>oZI8k7)wR-RcQL}!doG;)phHXINcE<@e< zwo0BsbwyosjFO+uI#D$0jtxi%c1r5eT(kvh@R0 z(fz(kU|SqJ*JAFJu+uPC?JE6Tt|jo3C9vkzF=E6F8*~lN9L`zligt0wx6EW^!RM>T zux9oI4?%lVk0;>f6Ebl2bN3e%GknIVM8tGq4oRw@Q0cw51w$wLxxQT@&hp48rkx#~ zvzz-@DyfFL`8fd(Ylm>x(9Rl+O7wV#P$T;zE8BO>F7{^e&Ik~+E_XY89z2BWDVY;? z-Ry`i!4Pdn1UZWlq)vNRpH}B1>=~rdl9xuMVGThf43^k_?wZa+Kc8-(LY$}`$h;E2 z|IPcq^(4?pymYCH$L95S7kXjrdZl6JN=VYk;ThfhmK#z;f?tsHQ^wsA?XW$JBgNwd z|B`oc=kQxwTwP30*M&vtv?xiu>DR6SMi!9x-~Fv0`f{)>iK^yovOERYy?qL4Y?(aG z<}huHXHKYutY!R0HSCDop+1u9p6sd~5b)ExcAPQ(5_AmGnwr-Ho!0FPTzGW0tE+2$ zZr|L<%`m@XT`^C541P}wsR>K&x6NIZjxt?~DzEunyvr!Y=MOIIYyIAflb%<_9Ty>BN-JHvCvqa~4dz!OWGIOcn$G@yOsn-$+krI_mN|0HaG%fH?}((?OI*TSLvmC5qG53bV21P)5gc>dDfy z%TC)Pg^|OM)7eTx{jmI_yu9XT9o_eKofKgj*fhE!dyf`&IMh1YYBQRcL9Xs6#t?jO zw>Cypk~VyD_M|8XI+QBwSWRxBk1C5?xRzOyB}zKr``UPmwk~C=Ge=nnCA!#K>(vQ4 zi(5lS@GF4`_jA{mBkYehey&$LFKOxySN!V5)Y(RMh`qgti~bo`>+iVFoxPGpdfg+d zq)UkuX@L~WsqW=!&uAg_6iTOPKR1(Gqv(Y{$wi^*v2#U+ivSh&w>9%)MMT4`wtmi` z;(8hy##N!(>d1r{9zD)d_Yu?G3m*%IFtj+wl!)88!rf5^s}J#be@nLxdo{p9fXB)f zA*{ji0c!}UXFtTr+iP#trBe`Dh*{@O@wK8fi>-DHzM>s>$m(h*#F?|%Is-+(`{eFf z0J@S55+1p`VFL8g8}qM%8*|KA5(TUAyuG89(|di);1DNzk{7UggTyh!kWh1=OX23b z%lGnR4#@dtBZ`8DP?%33mb*|Ic|)#9tEb3K-I-Wtt&~oNy)$Wkh$2aaY04W_w<-tOrIT8U^<`mpm)NXVPO8 z#r;zxPLEnw3mcWbRa9izWJjy_n$mnSp{9&9FGZ)YhCd!E6scRjcoh@i&#mZIL2oW+ zW=>zGF@r?oQB$Vlwio(np-(BOrq3ft`zy^NQelr`+>ou)zv9u$U)#-(!CHeF@fNvD zIao^Ty`wACm4JJ$*olmvkKULWl~JEsO~A`ygq!tBHqDtg75l^Lg0+#Ak~pfJ=2JJ5 z#yF>0rBMJAfsI_29Wzy27n9A=YN#-&&#RaDo5;>)Yc53AB>>dC0S?!l;8lBGeV z(UBMRbWwhJ@_JQ5|I^V+n!5^RZ7X5nSF>xMhSLPst96&iyq#0jbVAhSIyKN=>%Ja8 z$WF(kP|(oUGX>StSuc3n zXcwhyJ=8CEm%S6s`_7}Ps@(&{)YjCCi4C~`OCC|JSv5m|Dai(gtLJ~=RO5^Ih1#;>I*elGqo2j}XF9g)$h=Q(HB+=rLMxHAqX zh>w|E3KkluRl}Yt^=y19?*Pk}lke3JEp^sun3bvoEbThk%^UB@TO*b2texN6`1W8u zlYl_6oqGiEhPk7;oNwtkSri%@r)lIX4B2vFJ&3C4&7PHEA>5q@bbcwy^P&E!pKbH??%Qr| zT_0!Ae`oZ_Z)L^a9{`Vy)+vVbq#)O8GmpS(Pq4#b0k)2Jc4i)O%9g;!%c1lCBF?5r zxya@mWYW`1AdBiDcGMUZ*(lbU$8sRsqnjeRQ z?8++q-N76|ze*GA(B&wDFae zX%Y0QZEjL>yr7~ce$UZQ?Cf>YBO5L5ujtM;D+`VooJ{}qvs8I-$<*`J#;;N|1jiPK zli$hftVCW;!M-*q@M=x-W6~Lf%ko^C4Z%rhNG-0#jTgqnuI@cHrW`lepiVUVAm8Ov zMOmiQeBNH~-VXb&8J{=A@Pah8j~eXnA(6j+#TqN1AruFq5F-*lnPQlE`O~cG&G67m zH=2OI)f3qa?y#(#vAZA~#k6i{}?+C+Q$DmC#QFeRfDo^B%Ys44+rq=z| z0|qT4_r2Oc#C;9pB!THN4!cQVwPA4F)@A;PO&zfI<+yf@tEH zy0TgD?-D#@ltCL$8iw^C<=AM9pTma=V5e50jt(EDW7)*-axy2vjV<{ZoUAuoKizS< z;PpYy627KCGYa|#na@p0&1XQI&IneSaFe3qu3{nb&Bn8sw#-@Hk4;T(R(xlji*MwPL-=?$;;aIG~@9sFiM90f*ZT zB71nx_x`)8#BGQ}mKC-n-}G?*R~_WH)1!&H{U&V=P3X5j*)g_}C!Rq3vQM;8;-Skt zYJW<7`l^>O+glenw;^Opz9v!>~Uy8y9>c6Jbi^E&_JqDJXvNhkRre7K3qj9~C9X1Ye_a%GTyC|`u?mJhN z>KI{2>PlEG=2g_xHq0@*xu$0AKF488sF%Nwj9G}Qw2vpO99>SK9aiS!mO&I;SItU# zrGjMlJ>GpsAHRyy(a{lN6)o67_MRA*oX4tg-=k=oN}4s6l{z92Zc}n_9v4iBD&7H? zF_DfSZj17g7F$r-4@ZngHa?QrcbSwCMF7l)Co98Jn3dQPLi=?e%FFu4)5e8qqt2VU z)~$<>o`Z)GJU~y~NX&!6n}TuFWR;|D*hMBR?e*~o5q7e0mA8y7ONz~R^jq3=K?0pSk2yH_N(p%d8eWu6Y-bk&OLL~)`)@4-dZOhc@-LK6A-PC_j%A~Utt z8NSlO4G~DpsF&?Lj03CMdebjOV;H^!F@7I@z1$(n*bt|zuq=)wPX(dV*Rm~L@o17S z9aC6v%ie#a$EDyBWfbRqJ%!SR7L$&ITin`rYauLKQZ|qE{$d+_(pO-zs!c1b8`J&B zSYd42cXn5#?9&hp?_Tqo9#S1z(r~m4I^$XGGdM-ZyuP>&{t&eHRIR{DN$<7AuvD(Y zBBm^O>^eZRP{`O#i>+%QHTZKvuGO~E*<93)?4*ZY&)CQ7dIpm zRPLAA+=K7>(=}C!92Avu{TC#5tbd{e_aFt3x@X7^A~stB4_3+~o>?PL1d7zIvgGMo z8;t&PqxA;$McorATYEWMon>M74w5oG+UIk;?;*@lRQuIog2e^yzgo4x>zBpS(`^Vi ztZZ^G3nX3-T4<2BSytn3&8}dD4{{Owgp5XRn99qEecCgPhamtbbXibJDt z7GWyb{V2DvSw!~<)u)}@8O3qd(^}RBqn4*Cv}r1~vfIJ(I|qh(bOf0;V!Y^*=jlb* z5Ipg*t(rCJzY#QWH?wOQRljeCtBazJ(_VnJTO`W1ebQzzdoH&>q9L=%s&BWHJC``J zYz2d(Q@;xX-DI~?wUt%6hc3t(>y4f**(kD)mnr|}ovHE!0tPKfYtP?XLo^fg_8{3fFwu&5>Z3GbPF35UO7)pJ^=LEFS8mNOEz8dYxxR`SRr2 zZW0@BM9IOQB=jB7DlQcJNc0@zm|RZNe^*Em5dXa-&BCs-u_=J3;2Xub39oo6mWZD02CXfxPnt-`D8G;7@cu^83p_d6F7)91_(!J^RfRYnDx@#k~q7xL8swyXL5mq^s{`0pde3KAIS%6s;!h$lJ0>FBoV zT!_^X!{B>MncR{oX;UGWN;BL%3e*>^<~?3nv>#|({FUSD=j?|Ym<*@*8&-u31`yYM zA@!DIb7y6to(@aUwD&>{Lui{ZMBx=4E$1?pC6~O&<*Fg;BQtl`noX=oj1N}98m_Mg zMU>wZ50Qe7tfx3R+)S)*q}qZmBgVYn-cWl6f2rzUtqOkW@HEkoiLxy4-6r@PwT7Iw zDi{I$0knJ{fI&-1-tms22QhLbDl)mhk{FveIYM!ly#*hiqGQo@lNh-_{{2Tq+*ZFE zo2p;+2@Hx>)gX5QP-0fjgGsB zR3Fjzan~j!&zNGKRH!Q&apO-pxNvp>J+es!>};8{5RXNdaqO#JW5PaY-fBE+(q*aX zZ=8O3JV=4q7VC8=x4CbUD}eYW_yVWee{xpBXVTt-BDTX>an3+bOiMgr;5K>j2pPH8 zO-{%?F`C}{Cajdj@XrXXj>x8U`L_&L=7+xd@7}o8SY8-{Oj-ma)0+PE{eT*vu~}dS z7Wy(o`|g)Sd42TkK*yN&My7Ezhy1i(LT>Ah)e$h!pCa_@yh{OdU-D2?7t*1}=v8cFf+ zprfU)n?54spG7dr$(3&(F+YfIONwU6g5`%zTs?7dY%do>K4?07@+h>Qc5x<*YO>+(q<&I$!ZZoo!* zL*`4nE7}VymosAAnp;km!5J z=;(P!HT0%0y?oCDW4Z%*s$xm{`ZZf4i0~}QrMYV1!e@PDONQufUm$*tizeZKx2KL! ziY_GZ9Yic7%@V40?O}>>?f`+O=43&q%NlGN%zR=+|LlDg?tY@{tQ^zGDZf=x;LxIzYdfudMGzUOs`VmJ!1`FhSU*vp zmKC5JJ6wQ0pt`VHv74I50=af25P)tfwo;Ymh+~ z3^33SY{tf93c@f^8P|09&TkUnUN_}ir(XdhwUU0SQl$BFAkXMn7()>-0BqXd} zufE2&AhytF)Is)5qpZFGK`e~&w~FWvAwgJcKpn2;fWM5d9Of|!IL?43!9Z7A>yk54 z&eW?lZe>qTO;xY<8rv2}$3P~nIYxt!f+I0WP9tTR<`pI)3esBLfn5T3e6N%Sd72*a?V%aS9$|q`dhbpWuj>m;ybkn`H@jjlE$f3UgAdfSWt?Z${UMDrpbY(yh5kkMj2`Ae763gE%{{~Hs{d^FYEf}qn|l!s`5>y zii%>LKY#wyUH_{UQ+Cjtn087lr^ju6q3wq9Pw^K+9`ayq=qGP|z2nhyEE9DZ`DwJt zxZ}8JWff+v=rqwWj z$RKJ8RN!<2&0(7LjYy`x8uSjHX17EgEe1Gz=>7o71pr{4J5bL)v|&2!n~TIzE*j6&lfL|4(FuH%l+$9GKkRkPtOfUgh9!$N^HLNIdT-$>LSQwWu= zVzCSLaNFf?QI)^LoNe;StJ@W`dP?k+eT(2{q=hmK2{B|;FJR6IOqWXkcwU|zy9d;I z{4%({HMAT+l{z+bc`pE5=vzLXzy#kc)>;#ze=U@}iwh`3m3&!JaZ3dAU!_Ds48l!L zjE_63;DA4ESUY)2mScXaF+fKJkcG0?p%2TT=XM5_ZB-xSPgTAn(20=GNq<9u$ZWT? zvL}Cm_A1IChQ9@YV#8&J!79#jdqu_JHlcz^ld@X8MP z?`#-kaU%FSN)w_(6@l}%bvj{(hIb=qVVZ({$t>7^5~dKr>Eqe^-oAld2Ed6Z^ilAB z$-|S6A$8_uxVD`ry9M5K|FDgkporR8y zquu9&mrfpf+U%#4VKKB)ejrlvZ+k|Gi_e_bYbWn7+=MK*XjHr2&%nH)D$a}eK3X!E zKYX5&^7mLNTwW6L5Y&=x4m7%q0DL~zM{OSQua}}0zx=ohXmguw|C++`jF4mWXEu$3 zT5v+}Fkq|+oQ)s2L%3jRp+_K2!3&7SbAIbQef?SLL)GbP|@Ws(K1|eonF#} zoDKW&ri3Yrpd_(_v-#hIrDN7PfU_c?_*)M5MVf6&qxFKhilVyVQ?Og5)jwRL@>Q<4 zun+%aPFG~;8Zfp`C$mquf^@(@^S+Dlg@lxrmDCXWuhP(^>+Dvt5uuZ(yvJV!f?`5D zr)H|Z@dfx@7k^5wU+l2_)nyW2{X24pGac6KFBoL3UHZHc>t&c}-@}g2H zLeuIX9|if)j~*n>zn@$$5MX6&D}7x=if-M;w|xHXoVbMw~(XA>n;mmlF*Dt&^5IxeG222U5lW}Mb`B{bnjRL?NUe+ zKA*AE9YU0_{~JwARfy~Vr)^mwX+W9*=G+nQ{GAi!gUg+V{fV#d{9)JW@}YVzd_S`l z;pr1}{aXR#CpL&231Fpa$SF36NF2C%2Cd|?pP!L{a9ojeQIdbsftE5|dAjly`gOPh zSC~p5+GGO#f>KU0*PFK29!(7{l@osf4{hilOo%iNhyr;VDD|Hg#2V*+Q?A%MR z!x{t)G5&EGX@S6|gb;2rRXASD(^`;psd3LgLMtzVy>&5o2rP1x5i4A~sL`15ne;Mr zYR!I1NM9<)0o?8~$T~nr4YpEle%#izdd=NUnv;si!G-)G1rZY(6&FsX;L%I$4J*j` zX7VbdI~}e*7(FMqt2~9?wOUEaw&Ebf)~|T(&NK@Kqh||I#syK6uXAid3n#zcka=W` zp)q-%JVd^FjRAO)Hjh9ea6!b+yaJy9DF9%f(;ohi9w4o(0MHPB_@EdES-MAcnp-+* zRzMFd%3Lr>%%X_ioUV02JQ3oh;V{1 z;QKonNcQB4geA1iZd6iR^=pPUS-zz0z)fPc0?|KTmB zbqe3|6k_gNb~|(Ad6N@qwn;g_z~W9^?`dwpt5eDcQxzQ+kL&Fo;{IM*`94;MTE4iu z>o6FpH3%93Fj}yi3<2SgmjwUmNguHxYOs7Lco>S34Dp2J!@A6A9+E-;%v^xkq2Upb zIsyxY*5{?>h6&*aqYn4{7E+x8o|^f$W8QIlGAWu(@VdpV z_n=o8&-`14L5S~56;jsup>NlMwfEdo5g>00Fl7aUH@8g1U-ym)HGIo)#&Z~2h4a$x z=5U3I&-Cii-w%u$q^!k~d)Y`nDPj3@jQC#sDoAQ1WKhUh3z^i2Fpn9<;-3-t=_IJ- z#c^9UV|!PD>nj8`GOXRDk*PGLbX=zT@Z&mrw9aVel(6g`kAP!GBu1`nGDOFH#!jh< z;8p&(l&=-c9l@k(9gpta7`rAPBstOP|rTV;skDEr5HXr7Q z7`R3=NOgrC)?Y*5i9mz~=F5T;waTv(k>ViUWRYy-7PnIIzSR9qbhv{D?3<8zH$yXC z(()LeTJ`1orwVPneKECo>lkl}UKvv;c(G}S49PT70dxMtDK>O|6G;v>woI%L7a|Zf zE#Nr~bxq`sGvkKO)a}DOG^rhbTW!$s@a=RN1}6C(QVD=PGpzeLWa5A6z(Mfe54PcM{EA|K7PrSyOK8oZh^y0yQJp5ze-sz+@Qp z&k+Xr+mF|Kb7pJMrP?suAPa)=w0Eb4*?^W%0-Xzod?Eg?TIOKLEFV!itn?Wv|YoK z>Ym`E&J8~0{8hfwjfH{2ZOI9y zvPp#(stMQHRE8-pP?l(jHwlQEQs)xdQiwj~mGnY48Ifp8Lpc?RG2Sa1fLLdORFiJzT&=*V|n@8ecnW7_eOVhZNoR}bGJGe1!OCT7XYaSa|^!ZveU+6bCSzqLZ>mG zHzU7l&pxo1TiCa_#%WrC0soN`TR2(`3vc@U8J+6S)5Ncoud~RAOMV>04RlKz5*RQd z_X?0jQh?)O@CqxCJAgR24-9##(|Ci}@l>UKta1dDixHk_wH8HyUVXOw=xllxCtlbP7NtXZ z^sQ>brRA6DJ=1lY5X`l#<8mpx@Z4w9jPq}US%8qMr`bo_8#&E&kEfeEph9(2+znXN z%Dtvl2b}rNUFJ&x#&V$}TN9QWRN-R4y%0Db-tO}+`S7_2d6<7IpQro3^|*;fO+Cmm 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%0DCeE1#PZr{FyQ+&+Ti>Hr0UHl_>GR$ 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 z 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 DwyfJx delta 547184 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ν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

!+(~NlWa@kqu5Y+ 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

k=-UeBK1|xqZIBZL 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

FZ}k(V;Lu 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%0AiVxRjorU6g)d*V(U%tTdstZ0_ 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 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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≺)`q23u!r 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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 020b395767924866e7cda792209c102a3efac487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766679 zcmbrldoxNRz_C9OxbKdW>*4byDU3>We zFaQ96Y&{|o0MNWe{{!uR-v8e(_Es}O{UHL-DDgt08R-5(gB}qXi;Ipqekf-DQQU$3 z$BrFm;zAGNV&abBB9Gx5JbiFSkB1#Jl9ral|L?B79034#AQ+HxsC*~jEF3Uv3;@gk zpc+y@5Ct%}Wf^KqkR}NTQ9%FzUXlO+Zi@nHL;r^l`d@Yfw>baV|34sYwg0EHh5!88 zQuyEXE$08`|3^p~2tf4zG$R0{|2p`8LB*CF{Qsrx{}0>OD}eMr`dhyJ-*y4E{P{n@ z-WrN6Ig|h4{Wli>`Tuf@{y*es|4YvFf8_pi?!PhmPv$?J{{u7tKwxG>G6QUNsv#`_ zlcYN>Mi&-s*9u#e2Dm%}1IAfsfQ}5{xu{hn^5uTwEMj<$uwDl|3?L;yAs_%Q1V2xY zZ5PRi`91INDtG_@6twC}2ftgI6>&CzN`fwaL8FdO2%0DFoOM^!zB$As^Hh&;gb>R& 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 z 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 z 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 Sd4!9kt6Jiv(5s?`F8-e88doZ(C2mNl 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

Bh8_OZubFQ3T_06@8VQr9VpU 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 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 1f6d7e33..00000000 --- a/snesreader/libjma/winout.h +++ /dev/null @@ -1,90 +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++; - BYTE *p2 = p - aDistance; - for(UINT32 i = 0; i < aLen; i++) - p[i] = p2[i]; - 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 f186d265..00000000 --- a/snesreader/snesreader.cpp +++ /dev/null @@ -1,231 +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() { - return "*.zip *.z *.7z *.rar *.gz *.bz2 *.jma"; -} - -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 0590ee55..90b7747a 100644 --- a/src/base.hpp +++ b/src/base.hpp @@ -1,6 +1,6 @@ -static const char bsnesVersion[] = "062"; +static const char bsnesVersion[] = "062.03"; static const char bsnesTitle[] = "bsnes"; -static const unsigned bsnesSerializerVersion = 6; +static const unsigned bsnesSerializerVersion = 7; //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/cheat/cheat.cpp b/src/cheat/cheat.cpp index a182ebbd..1b25f597 100644 --- a/src/cheat/cheat.cpp +++ b/src/cheat/cheat.cpp @@ -125,7 +125,7 @@ bool Cheat::encode(string &s, unsigned addr, uint8 data, Type type) { char t[16]; if(type == Type::ProActionReplay) { - s = sprint("$$", strhex<6>(addr), strhex<2>(data)); + s = sprint(strhex<6>(addr), strhex<2>(data)); return true; } else if(type == Type::GameGenie) { unsigned r = addr; @@ -141,7 +141,7 @@ bool Cheat::encode(string &s, unsigned addr, uint8 data, Type type) { | (!!(r & 0x080000) << 5) | (!!(r & 0x040000) << 4) | (!!(r & 0x020000) << 3) | (!!(r & 0x010000) << 2) | (!!(r & 0x000800) << 1) | (!!(r & 0x000400) << 0); - s = sprint("$$-$", strhex<2>(data), strhex<2>(addr >> 16), strhex<4>(addr & 0xffff)); + s = sprint(strhex<2>(data), strhex<2>(addr >> 16), "-", strhex<4>(addr & 0xffff)); strtr(s, "0123456789abcdef", "df4709156bc8a23e"); return true; } else { diff --git a/src/cpu/cpu-debugger.cpp b/src/cpu/cpu-debugger.cpp index 1736ebbf..a81a2ead 100644 --- a/src/cpu/cpu-debugger.cpp +++ b/src/cpu/cpu-debugger.cpp @@ -4,11 +4,11 @@ bool CPUDebugger::property(unsigned id, string &name, string &value) { unsigned n = 0; //internal - if(id == n++) { name = "S-CPU MDR"; value = sprint("0x$", strhex<2>(mdr())); return true; } + if(id == n++) { name = "S-CPU MDR"; value = sprint("0x", strhex<2>(mdr())); return true; } //$2181-2183 if(id == n++) { name = "$2181-$2183"; value = ""; return true; } - if(id == n++) { name = "WRAM Address"; value = sprint("0x$", strhex<6>(wram_address())); return true; } + if(id == n++) { name = "WRAM Address"; value = sprint("0x", strhex<6>(wram_address())); return true; } //$4016 if(id == n++) { name = "$4016"; value = ""; return true; } @@ -23,39 +23,39 @@ bool CPUDebugger::property(unsigned id, string &name, string &value) { //$4201 if(id == n++) { name = "$4201"; value = ""; return true; } - if(id == n++) { name = "PIO"; value = sprint("0x$", strhex<2>(pio_bits())); return true; } + if(id == n++) { name = "PIO"; value = sprint("0x", strhex<2>(pio_bits())); return true; } //$4202 if(id == n++) { name = "$4202"; value = ""; return true; } - if(id == n++) { name = "Multiplicand"; value = sprint("0x$", strhex<2>(multiplicand())); return true; } + if(id == n++) { name = "Multiplicand"; value = sprint("0x", strhex<2>(multiplicand())); return true; } //$4203 if(id == n++) { name = "$4203"; value = ""; return true; } - if(id == n++) { name = "Multiplier"; value = sprint("0x$", strhex<2>(multiplier())); return true; } + if(id == n++) { name = "Multiplier"; value = sprint("0x", strhex<2>(multiplier())); return true; } //$4204-$4205 if(id == n++) { name = "$4204-$4205"; value = ""; return true; } - if(id == n++) { name = "Dividend"; value = sprint("0x$", strhex<4>(dividend())); return true; } + if(id == n++) { name = "Dividend"; value = sprint("0x", strhex<4>(dividend())); return true; } //$4206 if(id == n++) { name = "$4206"; value = ""; return true; } - if(id == n++) { name = "Divisor"; value = sprint("0x$", strhex<2>(divisor())); return true; } + if(id == n++) { name = "Divisor"; value = sprint("0x", strhex<2>(divisor())); return true; } //$4207-$4208 if(id == n++) { name = "$4207-$4208"; value = ""; return true; } - if(id == n++) { name = "H-Time"; value = sprint("0x$", strhex<4>(htime())); return true; } + if(id == n++) { name = "H-Time"; value = sprint("0x", strhex<4>(htime())); return true; } //$4209-$420a if(id == n++) { name = "$4209-$420a"; value = ""; return true; } - if(id == n++) { name = "V-Time"; value = sprint("0x$", strhex<4>(vtime())); return true; } + if(id == n++) { name = "V-Time"; value = sprint("0x", strhex<4>(vtime())); return true; } //$420b if(id == n++) { name = "$420b"; value = ""; return true; } - if(id == n++) { name = "DMA Enable"; value = sprint("0x$", strhex<2>(dma_enable())); return true; } + if(id == n++) { name = "DMA Enable"; value = sprint("0x", strhex<2>(dma_enable())); return true; } //$420c if(id == n++) { name = "$420c"; value = ""; return true; } - if(id == n++) { name = "HDMA Enable"; value = sprint("0x$", strhex<2>(hdma_enable())); return true; } + if(id == n++) { name = "HDMA Enable"; value = sprint("0x", strhex<2>(hdma_enable())); return true; } //$420d if(id == n++) { name = "$420d"; value = ""; return true; } @@ -72,25 +72,25 @@ bool CPUDebugger::property(unsigned id, string &name, string &value) { if(id == n++) { name = "Transfer Mode"; value = dma_transfer_mode(i); return true; } //$43x1 - if(id == n++) { name = "B-Bus Address"; value = sprint("0x$", strhex<4>(dma_bbus_address(i))); return true; } + if(id == n++) { name = "B-Bus Address"; value = sprint("0x", strhex<4>(dma_bbus_address(i))); return true; } //$43x2-$43x3 - if(id == n++) { name = "A-Bus Address"; value = sprint("0x$", strhex<4>(dma_abus_address(i))); return true; } + if(id == n++) { name = "A-Bus Address"; value = sprint("0x", strhex<4>(dma_abus_address(i))); return true; } //$43x4 - if(id == n++) { name = "A-Bus Bank"; value = sprint("0x$", strhex<2>(dma_abus_bank(i))); return true; } + if(id == n++) { name = "A-Bus Bank"; value = sprint("0x", strhex<2>(dma_abus_bank(i))); return true; } //$43x5-$43x6 - if(id == n++) { name = "Transfer Size / Indirect Address"; value = sprint("0x$", strhex<4>(dma_transfer_size(i))); return true; } + if(id == n++) { name = "Transfer Size / Indirect Address"; value = sprint("0x", strhex<4>(dma_transfer_size(i))); return true; } //$43x7 - if(id == n++) { name = "Indirect Bank"; value = sprint("0x$", strhex<2>(dma_indirect_bank(i))); return true; } + if(id == n++) { name = "Indirect Bank"; value = sprint("0x", strhex<2>(dma_indirect_bank(i))); return true; } //$43x8-$43x9 - if(id == n++) { name = "Table Address"; value = sprint("0x$", strhex<4>(dma_table_address(i))); return true; } + if(id == n++) { name = "Table Address"; value = sprint("0x", strhex<4>(dma_table_address(i))); return true; } //$43xa - if(id == n++) { name = "Line Counter"; value = sprint("0x$", strhex<2>(dma_line_counter(i))); return true; } + if(id == n++) { name = "Line Counter"; value = sprint("0x", strhex<2>(dma_line_counter(i))); return true; } } return false; diff --git a/src/cpu/scpu/mmio/mmio.cpp b/src/cpu/scpu/mmio/mmio.cpp index e958b7e6..15c88a3b 100644 --- a/src/cpu/scpu/mmio/mmio.cpp +++ b/src/cpu/scpu/mmio/mmio.cpp @@ -39,9 +39,11 @@ void sCPU::mmio_w2183(uint8 data) { //strobing $4016.d0 affects both controller port latches. //$4017 bit 0 writes are ignored. void sCPU::mmio_w4016(uint8 data) { - status.joypad_strobe_latch = !!(data & 1); + bool old_latch = status.joypad_strobe_latch; + bool new_latch = data & 1; + status.joypad_strobe_latch = new_latch; - if(status.joypad_strobe_latch == 1) { + if(old_latch != new_latch) { input.poll(); } } @@ -49,9 +51,6 @@ void sCPU::mmio_w4016(uint8 data) { //JOYSER0 //7-2 = MDR //1-0 = Joypad serial data -// -//TODO: test whether strobe latch of zero returns -//realtime or buffered status of joypadN.b uint8 sCPU::mmio_r4016() { uint8 r = regs.mdr & 0xfc; r |= input.port_read(0) & 3; diff --git a/src/dsp/dsp-debugger.cpp b/src/dsp/dsp-debugger.cpp index 958e0fc7..ee21748f 100644 --- a/src/dsp/dsp-debugger.cpp +++ b/src/dsp/dsp-debugger.cpp @@ -7,17 +7,17 @@ bool DSPDebugger::property(unsigned id, string &name, string &value) { if(id == n++) { name = "Main Volume - Right"; value = main_volume_right(); return true; } if(id == n++) { name = "Echo Volume - Left"; value = echo_volume_left(); return true; } if(id == n++) { name = "Echo Volume - Right"; value = echo_volume_right(); return true; } - if(id == n++) { name = "Key On"; value = sprint("0x$", strhex<2>(key_on())); return true; } - if(id == n++) { name = "Key Off"; value = sprint("0x$", strhex<2>(key_off())); return true; } + if(id == n++) { name = "Key On"; value = sprint("0x", strhex<2>(key_on())); return true; } + if(id == n++) { name = "Key Off"; value = sprint("0x", strhex<2>(key_off())); return true; } if(id == n++) { name = "Flag - Reset"; value = flag_reset(); return true; } if(id == n++) { name = "Flag - Mute"; value = flag_mute(); return true; } if(id == n++) { name = "Flag - Echo Disable"; value = flag_echo_disable(); return true; } if(id == n++) { name = "Flag - Noise Clock"; value = flag_noise_clock(); return true; } if(id == n++) { name = "Source End Block"; value = source_end_block(); return true; } if(id == n++) { name = "Echo Feedback"; value = echo_feedback(); return true; } - if(id == n++) { name = "Pitch Modulation Enable"; value = sprint("0x$", strhex<2>(pitch_modulation_enable())); return true; } - if(id == n++) { name = "Noise Enable"; value = sprint("0x$", strhex<2>(noise_enable())); return true; } - if(id == n++) { name = "Echo Enable"; value = sprint("0x$", strhex<2>(echo_enable())); return true; } + if(id == n++) { name = "Pitch Modulation Enable"; value = sprint("0x", strhex<2>(pitch_modulation_enable())); return true; } + if(id == n++) { name = "Noise Enable"; value = sprint("0x", strhex<2>(noise_enable())); return true; } + if(id == n++) { name = "Echo Enable"; value = sprint("0x", strhex<2>(echo_enable())); return true; } if(id == n++) { name = "Source Directory"; value = source_directory(); return true; } if(id == n++) { name = "Echo Start Address"; value = echo_start_address(); return true; } if(id == n++) { name = "Echo Directory"; value = echo_directory(); return true; } @@ -25,7 +25,7 @@ bool DSPDebugger::property(unsigned id, string &name, string &value) { for(unsigned i = 0; i < 8; i++) { if(id == n++) { name = string() << "Coefficient " << i; - value = sprint("0x$", strhex<2>(echo_filter_coefficient(i))); + value = sprint("0x", strhex<2>(echo_filter_coefficient(i))); return true; } } @@ -39,7 +39,7 @@ bool DSPDebugger::property(unsigned id, string &name, string &value) { if(id == n++) { name = "Volume - Left"; value = voice_volume_left(i); return true; } if(id == n++) { name = "Volume - Right"; value = voice_volume_right(i); return true; } - if(id == n++) { name = "Pitch Height"; value = sprint("0x$", strhex<4>(voice_pitch_height(i))); return true; } + if(id == n++) { name = "Pitch Height"; value = sprint("0x", strhex<4>(voice_pitch_height(i))); return true; } if(id == n++) { name = "Source Number"; value = voice_source_number(i); return true; } if(id == n++) { name = "ADSR1"; value = voice_adsr1(i); return true; } if(id == n++) { name = "ADSR2"; value = voice_adsr2(i); return true; } diff --git a/src/lib/nall/string/base.hpp b/src/lib/nall/string/base.hpp index b9230fe4..3e4a26a8 100644 --- a/src/lib/nall/string/base.hpp +++ b/src/lib/nall/string/base.hpp @@ -98,8 +98,8 @@ namespace nall { lstring(std::initializer_list); }; - template inline string sprint(const char *s, Args... args); - template inline void print(const char *s, Args... args); + template inline string sprint(Args... args); + template inline void print(Args... args); }; inline size_t strlcpy(nall::string &dest, const char *src, size_t length); diff --git a/src/lib/nall/string/variadic.hpp b/src/lib/nall/string/variadic.hpp index e707b487..56bb0c8e 100644 --- a/src/lib/nall/string/variadic.hpp +++ b/src/lib/nall/string/variadic.hpp @@ -2,35 +2,23 @@ #define NALL_STRING_VARIADIC_HPP namespace nall { - static void sprint(string &output, unsigned &offset, const char *&s) { - while(*s) output[offset++] = *s++; + static void sprint(string &output) { } 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++; - } - } + static void sprint(string &output, T value, Args... args) { + output << to_string(value); + sprint(output, args...); } - template inline string sprint(const char *s, Args... args) { + template inline string sprint(Args... args) { string output; - unsigned offset = 0; - sprint(output, offset, s, args...); - output[offset] = 0; + sprint(output, args...); return output; } - template inline void print(const char *s, Args... args) { - printf("%s", (const char*)sprint(s, args...)); + template inline void print(Args... args) { + printf("%s", (const char*)sprint(args...)); } } diff --git a/src/ppu/ppu-debugger.cpp b/src/ppu/ppu-debugger.cpp index ba54baaa..2236996f 100644 --- a/src/ppu/ppu-debugger.cpp +++ b/src/ppu/ppu-debugger.cpp @@ -4,8 +4,8 @@ bool PPUDebugger::property(unsigned id, string &name, string &value) { unsigned n = 0; //internal - if(id == n++) { name = "S-PPU1 MDR"; value = sprint("0x$", strhex<2>(ppu1_mdr())); return true; } - if(id == n++) { name = "S-PPU2 MDR"; value = sprint("0x$", strhex<2>(ppu2_mdr())); return true; } + if(id == n++) { name = "S-PPU1 MDR"; value = sprint("0x", strhex<2>(ppu1_mdr())); return true; } + if(id == n++) { name = "S-PPU2 MDR"; value = sprint("0x", strhex<2>(ppu2_mdr())); return true; } //$2100 if(id == n++) { name = "$2100"; value = ""; return true; } @@ -16,11 +16,11 @@ bool PPUDebugger::property(unsigned id, string &name, string &value) { if(id == n++) { name = "$2101"; value = ""; return true; } if(id == n++) { name = "OAM Base Size"; value = oam_base_size(); return true; } if(id == n++) { name = "OAM Name Select"; value = oam_name_select(); return true; } - if(id == n++) { name = "OAM Name Base Address"; value = sprint("0x$", strhex<4>(oam_name_base_address())); return true; } + if(id == n++) { name = "OAM Name Base Address"; value = sprint("0x", strhex<4>(oam_name_base_address())); return true; } //$2102-$2103 if(id == n++) { name = "$2102-$2103"; value = ""; return true; } - if(id == n++) { name = "OAM Base Address"; value = sprint("0x$", strhex<4>(oam_base_address())); return true; } + if(id == n++) { name = "OAM Base Address"; value = sprint("0x", strhex<4>(oam_base_address())); return true; } if(id == n++) { name = "OAM Priority"; value = oam_priority(); return true; } //$2105 @@ -44,33 +44,33 @@ bool PPUDebugger::property(unsigned id, string &name, string &value) { //$2107 if(id == n++) { name = "$2107"; value = ""; return true; } - if(id == n++) { name = "BG1 Screen Address"; value = sprint("0x$", strhex<4>(bg1_screen_address())); return true; } + if(id == n++) { name = "BG1 Screen Address"; value = sprint("0x", strhex<4>(bg1_screen_address())); return true; } if(id == n++) { name = "BG1 Screen Size"; value = screen_size[bg1_screen_size()]; return true; } //$2108 if(id == n++) { name = "$2108"; value = ""; return true; } - if(id == n++) { name = "BG2 Screen Address"; value = sprint("0x$", strhex<4>(bg2_screen_address())); return true; } + if(id == n++) { name = "BG2 Screen Address"; value = sprint("0x", strhex<4>(bg2_screen_address())); return true; } if(id == n++) { name = "BG2 Screen Size"; value = screen_size[bg2_screen_size()]; return true; } //$2109 if(id == n++) { name = "$2109"; value = ""; return true; } - if(id == n++) { name = "BG3 Screen Address"; value = sprint("0x$", strhex<4>(bg3_screen_address())); return true; } + if(id == n++) { name = "BG3 Screen Address"; value = sprint("0x", strhex<4>(bg3_screen_address())); return true; } if(id == n++) { name = "BG3 Screen Size"; value = screen_size[bg3_screen_size()]; return true; } //$210a if(id == n++) { name = "$210a"; value = ""; return true; } - if(id == n++) { name = "BG4 Screen Address"; value = sprint("0x$", strhex<4>(bg4_screen_address())); return true; } + if(id == n++) { name = "BG4 Screen Address"; value = sprint("0x", strhex<4>(bg4_screen_address())); return true; } if(id == n++) { name = "BG4 Screen Size"; value = screen_size[bg4_screen_size()]; return true; } //$210b if(id == n++) { name = "$210b"; value = ""; return true; } - if(id == n++) { name = "BG1 Name Base Address"; value = sprint("0x$", strhex<4>(bg1_name_base_address())); return true; } - if(id == n++) { name = "BG2 Name Base Address"; value = sprint("0x$", strhex<4>(bg2_name_base_address())); return true; } + if(id == n++) { name = "BG1 Name Base Address"; value = sprint("0x", strhex<4>(bg1_name_base_address())); return true; } + if(id == n++) { name = "BG2 Name Base Address"; value = sprint("0x", strhex<4>(bg2_name_base_address())); return true; } //$210c if(id == n++) { name = "$210c"; value = ""; return true; } - if(id == n++) { name = "BG3 Name Base Address"; value = sprint("0x$", strhex<4>(bg3_name_base_address())); return true; } - if(id == n++) { name = "BG4 Name Base Address"; value = sprint("0x$", strhex<4>(bg4_name_base_address())); return true; } + if(id == n++) { name = "BG3 Name Base Address"; value = sprint("0x", strhex<4>(bg3_name_base_address())); return true; } + if(id == n++) { name = "BG4 Name Base Address"; value = sprint("0x", strhex<4>(bg4_name_base_address())); return true; } //$210d if(id == n++) { name = "$210d"; value = ""; return true; } @@ -114,7 +114,7 @@ bool PPUDebugger::property(unsigned id, string &name, string &value) { //$2116-$2117 if(id == n++) { name = "$2116-$2117"; value = ""; return true; } - if(id == n++) { name = "VRAM Address"; value = sprint("0x$", strhex<4>(vram_address())); return true; } + if(id == n++) { name = "VRAM Address"; value = sprint("0x", strhex<4>(vram_address())); return true; } //$211a if(id == n++) { name = "$211a"; value = ""; return true; } @@ -148,7 +148,7 @@ bool PPUDebugger::property(unsigned id, string &name, string &value) { //$2121 if(id == n++) { name = "$2121"; value = ""; return true; } - if(id == n++) { name = "CGRAM Address"; value = sprint("0x$", strhex<4>(cgram_address())); return true; } + if(id == n++) { name = "CGRAM Address"; value = sprint("0x", strhex<4>(cgram_address())); return true; } //$2123 if(id == n++) { name = "$2123"; value = ""; return true; } diff --git a/src/smp/smp-debugger.cpp b/src/smp/smp-debugger.cpp index 44ef4a77..40b96898 100644 --- a/src/smp/smp-debugger.cpp +++ b/src/smp/smp-debugger.cpp @@ -6,8 +6,10 @@ bool SMPDebugger::property(unsigned id, string &name, string &value) { //$00f0 if(id == n++) { name = "$00f0"; value = ""; return true; } if(id == n++) { name = "Clock Speed"; value = clock_speed(); return true; } - if(id == n++) { name = "MMIO Disable"; value = mmio_disable(); return true; } + if(id == n++) { name = "Timers Enable"; value = timers_enable(); return true; } + if(id == n++) { name = "RAM Disable"; value = ram_disable(); return true; } if(id == n++) { name = "RAM Writable"; value = ram_writable(); return true; } + if(id == n++) { name = "Timers Disable"; value = timers_disable(); return true; } //$00f1 if(id == n++) { name = "$00f1"; value = ""; return true; } @@ -15,7 +17,7 @@ bool SMPDebugger::property(unsigned id, string &name, string &value) { //$00f2 if(id == n++) { name = "$00f2"; value = ""; return true; } - if(id == n++) { name = "DSP Address"; value = sprint("0x$", strhex<2>(dsp_address())); return true; } + if(id == n++) { name = "DSP Address"; value = sprint("0x", strhex<2>(dsp_address())); return true; } return false; } diff --git a/src/smp/smp-debugger.hpp b/src/smp/smp-debugger.hpp index f6c6c047..15e5b7b0 100644 --- a/src/smp/smp-debugger.hpp +++ b/src/smp/smp-debugger.hpp @@ -3,8 +3,10 @@ struct SMPDebugger : ChipDebugger { //$00f0 virtual unsigned clock_speed() { return 0; } - virtual bool mmio_disable() { return 0; } + virtual bool timers_enable() { return 0; } + virtual bool ram_disable() { return 0; } virtual bool ram_writable() { return 0; } + virtual bool timers_disable() { return 0; } //$00f1 virtual bool iplrom_enable() { return 0; } diff --git a/src/smp/ssmp/debugger/debugger.cpp b/src/smp/ssmp/debugger/debugger.cpp index 513eb097..2543b9d3 100644 --- a/src/smp/ssmp/debugger/debugger.cpp +++ b/src/smp/ssmp/debugger/debugger.cpp @@ -47,8 +47,10 @@ sSMPDebugger::~sSMPDebugger() { //$00f0 unsigned sSMPDebugger::clock_speed() { return status.clock_speed; } -bool sSMPDebugger::mmio_disable() { return status.mmio_disabled; } +bool sSMPDebugger::timers_enable() { return status.timers_enabled; } +bool sSMPDebugger::ram_disable() { return status.ram_disabled; } bool sSMPDebugger::ram_writable() { return status.ram_writable; } +bool sSMPDebugger::timers_disable() { return status.timers_disabled; } //$00f1 bool sSMPDebugger::iplrom_enable() { return status.iplrom_enabled; } diff --git a/src/smp/ssmp/debugger/debugger.hpp b/src/smp/ssmp/debugger/debugger.hpp index 4453767a..ff03220c 100644 --- a/src/smp/ssmp/debugger/debugger.hpp +++ b/src/smp/ssmp/debugger/debugger.hpp @@ -23,8 +23,10 @@ public: //$00f0 unsigned clock_speed(); - bool mmio_disable(); + bool timers_enable(); + bool ram_disable(); bool ram_writable(); + bool timers_disable(); //$00f1 bool iplrom_enable(); diff --git a/src/smp/ssmp/memory/memory.cpp b/src/smp/ssmp/memory/memory.cpp index 9dd48767..a610baa1 100644 --- a/src/smp/ssmp/memory/memory.cpp +++ b/src/smp/ssmp/memory/memory.cpp @@ -1,18 +1,16 @@ #ifdef SSMP_CPP alwaysinline uint8 sSMP::ram_read(uint16 addr) { - if(addr < 0xffc0) return memory::apuram[addr]; - if(status.iplrom_enabled == false) return memory::apuram[addr]; - return iplrom[addr & 0x3f]; + if(addr >= 0xffc0 && status.iplrom_enabled) return iplrom[addr & 0x3f]; + if(status.ram_disabled) return 0x5a; //0xff on mini-SNES + return memory::apuram[addr]; } alwaysinline void sSMP::ram_write(uint16 addr, uint8 data) { - //writes to $ffc0-$ffff always go to spcram, even if the iplrom is enabled - memory::apuram[addr] = data; + //writes to $ffc0-$ffff always go to apuram, even if the iplrom is enabled + if(status.ram_writable && !status.ram_disabled) memory::apuram[addr] = data; } -// - alwaysinline uint8 sSMP::port_read(uint8 port) { return memory::apuram[0xf4 + (port & 3)]; } @@ -21,63 +19,60 @@ alwaysinline void sSMP::port_write(uint8 port, uint8 data) { memory::apuram[0xf4 + (port & 3)] = data; } -// - alwaysinline uint8 sSMP::op_busread(uint16 addr) { uint8 r; - if((addr & 0xfff0) == 0x00f0) { - //addr >= 0x00f0 && addr <= 0x00ff + if((addr & 0xfff0) == 0x00f0) { //00f0-00ff switch(addr) { - case 0xf0: { //TEST -- write-only register + case 0xf0: { //TEST -- write-only register r = 0x00; } break; - case 0xf1: { //CONTROL -- write-only register + case 0xf1: { //CONTROL -- write-only register r = 0x00; } break; - case 0xf2: { //DSPADDR + case 0xf2: { //DSPADDR r = status.dsp_addr; } break; - case 0xf3: { //DSPDATA + case 0xf3: { //DSPDATA //0x80-0xff are read-only mirrors of 0x00-0x7f r = dsp.read(status.dsp_addr & 0x7f); } break; - case 0xf4: //CPUIO0 - case 0xf5: //CPUIO1 - case 0xf6: //CPUIO2 - case 0xf7: { //CPUIO3 + case 0xf4: //CPUIO0 + case 0xf5: //CPUIO1 + case 0xf6: //CPUIO2 + case 0xf7: { //CPUIO3 scheduler.sync_smpcpu(); r = cpu.port_read(addr & 3); } break; - case 0xf8: { //??? + case 0xf8: { //RAM0 r = status.smp_f8; } break; - case 0xf9: { //??? + case 0xf9: { //RAM1 r = status.smp_f9; } break; - case 0xfa: //T0TARGET - case 0xfb: //T1TARGET - case 0xfc: { //T2TARGET -- write-only registers + case 0xfa: //T0TARGET + case 0xfb: //T1TARGET + case 0xfc: { //T2TARGET -- write-only registers r = 0x00; } break; - case 0xfd: { //T0OUT -- 4-bit counter value + case 0xfd: { //T0OUT -- 4-bit counter value r = t0.stage3_ticks & 15; t0.stage3_ticks = 0; } break; - case 0xfe: { //T1OUT -- 4-bit counter value + case 0xfe: { //T1OUT -- 4-bit counter value r = t1.stage3_ticks & 15; t1.stage3_ticks = 0; } break; - case 0xff: { //T2OUT -- 4-bit counter value + case 0xff: { //T2OUT -- 4-bit counter value r = t2.stage3_ticks & 15; t2.stage3_ticks = 0; } break; @@ -90,31 +85,29 @@ alwaysinline uint8 sSMP::op_busread(uint16 addr) { } alwaysinline void sSMP::op_buswrite(uint16 addr, uint8 data) { - if((addr & 0xfff0) == 0x00f0) { - //addr >= 0x00f0 && addr >= 0x00ff - if(status.mmio_disabled == true) return; - + if((addr & 0xfff0) == 0x00f0) { //$00f0-00ff switch(addr) { - case 0xf0: { //TEST - if(regs.p.p) break; //writes only valid when P flag is clear + case 0xf0: { //TEST + if(regs.p.p) break; //writes only valid when P flag is clear - //multiplier table may not be 100% accurate, some settings crash - //the processor due to S-SMP <> S-DSP bus access misalignment - //static uint8 clock_speed_tbl[16] = - //{ 3, 5, 9, 17, 4, 6, 10, 18, 6, 8, 12, 20, 10, 12, 16, 24 }; + status.clock_speed = (data >> 6) & 3; //100%, 50%, 0%, 10% + status.timer_speed = (data >> 4) & 3; //100%, ... + status.timers_enabled = data & 0x08; + status.ram_disabled = data & 0x04; + status.ram_writable = data & 0x02; + status.timers_disabled = data & 0x01; - //status.clock_speed = 24 * clock_speed_tbl[data >> 4] / 3; - status.mmio_disabled = !!(data & 0x04); - status.ram_writable = !!(data & 0x02); + unsigned base = 1 + (1 << status.clock_speed); + unsigned step = base + (15 >> (3 - status.timer_speed)); + status.timer_step = 1.0 / (3.0 / step); - //if((data >> 4) != 0) { - //dprintf("* S-SMP critical warning: $00f0 (TEST) clock speed control modified!"); - //dprintf("* S-SMP may crash on hardware as a result!"); - //} + t0.sync_stage1(); + t1.sync_stage1(); + t2.sync_stage1(); } break; - case 0xf1: { //CONTROL - status.iplrom_enabled = !!(data & 0x80); + case 0xf1: { //CONTROL + status.iplrom_enabled = data & 0x80; if(data & 0x30) { //one-time clearing of APU port read registers, @@ -135,92 +128,88 @@ alwaysinline void sSMP::op_buswrite(uint16 addr, uint8 data) { t2.stage2_ticks = 0; t2.stage3_ticks = 0; } - t2.enabled = !!(data & 0x04); + t2.enabled = data & 0x04; if(t1.enabled == false && (data & 0x02)) { t1.stage2_ticks = 0; t1.stage3_ticks = 0; } - t1.enabled = !!(data & 0x02); + t1.enabled = data & 0x02; if(t0.enabled == false && (data & 0x01)) { t0.stage2_ticks = 0; t0.stage3_ticks = 0; } - t0.enabled = !!(data & 0x01); + t0.enabled = data & 0x01; } break; - case 0xf2: { //DSPADDR + case 0xf2: { //DSPADDR status.dsp_addr = data; } break; - case 0xf3: { //DSPDATA + case 0xf3: { //DSPDATA //0x80-0xff is a read-only mirror of 0x00-0x7f if(!(status.dsp_addr & 0x80)) { dsp.write(status.dsp_addr & 0x7f, data); } } break; - case 0xf4: //CPUIO0 - case 0xf5: //CPUIO1 - case 0xf6: //CPUIO2 - case 0xf7: { //CPUIO3 + case 0xf4: //CPUIO0 + case 0xf5: //CPUIO1 + case 0xf6: //CPUIO2 + case 0xf7: { //CPUIO3 scheduler.sync_smpcpu(); port_write(addr & 3, data); } break; - case 0xf8: { //??? + case 0xf8: { //RAM0 status.smp_f8 = data; } break; - case 0xf9: { //??? + case 0xf9: { //RAM1 status.smp_f9 = data; } break; - case 0xfa: { //T0TARGET + case 0xfa: { //T0TARGET t0.target = data; } break; - case 0xfb: { //T1TARGET + case 0xfb: { //T1TARGET t1.target = data; } break; - case 0xfc: { //T2TARGET + case 0xfc: { //T2TARGET t2.target = data; } break; - case 0xfd: //T0OUT - case 0xfe: //T1OUT - case 0xff: { //T2OUT -- read-only registers + case 0xfd: //T0OUT + case 0xfe: //T1OUT + case 0xff: { //T2OUT -- read-only registers } break; } } //all writes, even to MMIO registers, appear on bus - if(status.ram_writable == true) { - ram_write(addr, data); - } + ram_write(addr, data); } -// - void sSMP::op_io() { add_clocks(24); - tick_timers(); + cycle_edge(); } uint8 sSMP::op_read(uint16 addr) { add_clocks(12); uint8 r = op_busread(addr); add_clocks(12); - tick_timers(); + cycle_edge(); return r; } void sSMP::op_write(uint16 addr, uint8 data) { add_clocks(24); op_buswrite(addr, data); - tick_timers(); + cycle_edge(); } #endif diff --git a/src/smp/ssmp/serialization.cpp b/src/smp/ssmp/serialization.cpp index d49e3793..9ba52914 100644 --- a/src/smp/ssmp/serialization.cpp +++ b/src/smp/ssmp/serialization.cpp @@ -5,34 +5,48 @@ void sSMP::serialize(serializer &s) { SMPcore::core_serialize(s); s.integer(status.opcode); - s.integer(status.in_opcode); + s.integer(status.clock_counter); s.integer(status.dsp_counter); + s.integer(status.clock_speed); - s.integer(status.mmio_disabled); + s.integer(status.timer_speed); + s.integer(status.timers_enabled); + s.integer(status.ram_disabled); s.integer(status.ram_writable); + s.integer(status.timers_disabled); + s.floatingpoint(status.timer_step); + s.integer(status.iplrom_enabled); + s.integer(status.dsp_addr); + s.integer(status.smp_f8); s.integer(status.smp_f9); - s.integer(t0.target); + s.floatingpoint(t0.stage0_ticks); s.integer(t0.stage1_ticks); s.integer(t0.stage2_ticks); s.integer(t0.stage3_ticks); + s.integer(t0.current_line); s.integer(t0.enabled); + s.integer(t0.target); - s.integer(t1.target); + s.floatingpoint(t1.stage0_ticks); s.integer(t1.stage1_ticks); s.integer(t1.stage2_ticks); s.integer(t1.stage3_ticks); + s.integer(t1.current_line); s.integer(t1.enabled); + s.integer(t1.target); - s.integer(t2.target); + s.floatingpoint(t2.stage0_ticks); s.integer(t2.stage1_ticks); s.integer(t2.stage2_ticks); s.integer(t2.stage3_ticks); + s.integer(t2.current_line); s.integer(t2.enabled); + s.integer(t2.target); } #endif diff --git a/src/smp/ssmp/ssmp.cpp b/src/smp/ssmp/ssmp.cpp index dbb310a2..dd249fb7 100644 --- a/src/smp/ssmp/ssmp.cpp +++ b/src/smp/ssmp/ssmp.cpp @@ -53,9 +53,13 @@ void sSMP::reset() { status.dsp_counter = 0; //$00f0 - status.clock_speed = 24 * 3 / 3; - status.mmio_disabled = false; - status.ram_writable = true; + status.clock_speed = 0; //100% + status.timer_speed = 0; //100% + status.timers_enabled = true; + status.ram_disabled = false; + status.ram_writable = true; + status.timers_disabled = false; + status.timer_step = 1.0; //$00f1 status.iplrom_enabled = true; @@ -67,9 +71,9 @@ void sSMP::reset() { status.smp_f8 = 0x00; status.smp_f9 = 0x00; - t0.enabled = false; - t1.enabled = false; - t2.enabled = false; + t0.stage0_ticks = 0; + t1.stage0_ticks = 0; + t2.stage0_ticks = 0; t0.stage1_ticks = 0; t1.stage1_ticks = 0; @@ -82,6 +86,14 @@ void sSMP::reset() { t0.stage3_ticks = 0; t1.stage3_ticks = 0; t2.stage3_ticks = 0; + + t0.current_line = 0; + t1.current_line = 0; + t2.current_line = 0; + + t0.enabled = false; + t1.enabled = false; + t2.enabled = false; } sSMP::sSMP() { diff --git a/src/smp/ssmp/ssmp.hpp b/src/smp/ssmp/ssmp.hpp index b8955530..f9188281 100644 --- a/src/smp/ssmp/ssmp.hpp +++ b/src/smp/ssmp/ssmp.hpp @@ -8,7 +8,6 @@ public: struct { uint8 opcode; - bool in_opcode; //timing uint32 clock_counter; @@ -16,8 +15,12 @@ public: //$00f0 uint8 clock_speed; - bool mmio_disabled; + uint8 timer_speed; + bool timers_enabled; + bool ram_disabled; bool ram_writable; + bool timers_disabled; + double timer_step; //$00f1 bool iplrom_enabled; diff --git a/src/smp/ssmp/timing/timing.cpp b/src/smp/ssmp/timing/timing.cpp index c959aff7..eead3ed2 100644 --- a/src/smp/ssmp/timing/timing.cpp +++ b/src/smp/ssmp/timing/timing.cpp @@ -7,16 +7,58 @@ void sSMP::add_clocks(unsigned clocks) { #else while(scheduler.clock.smpdsp < 0) dsp.enter(); #endif -} - -void sSMP::tick_timers() { - t0.tick(); - t1.tick(); - t2.tick(); //forcefully sync S-SMP to S-CPU in case chips are not communicating //sync if S-SMP is more than 24 samples ahead of S-CPU if(scheduler.clock.cpusmp > +(768 * 24 * (int64)24000000)) scheduler.sync_smpcpu(); } +void sSMP::cycle_edge() { + t0.tick(); + t1.tick(); + t2.tick(); + + //TEST register S-SMP speed control + //24 clocks have already been added for this cycle at this point + switch(status.clock_speed) { + case 0: break; //100% speed + case 1: add_clocks(24); break; // 50% speed + case 2: while(true) add_clocks(24); // 0% speed -- locks S-SMP + case 3: add_clocks(24 * 9); break; // 10% speed + } +} + +template +void sSMP::sSMPTimer::tick() { + //stage 0 increment + stage0_ticks += smp.status.timer_step; + if(stage0_ticks < frequency) return; + stage0_ticks -= (double)frequency; + + //stage 1 increment + stage1_ticks ^= 1; + sync_stage1(); +} + +template +void sSMP::sSMPTimer::sync_stage1() { + bool new_line = stage1_ticks; + if(smp.status.timers_enabled == false) new_line = false; + if(smp.status.timers_disabled == true) new_line = false; + + bool old_line = current_line; + current_line = new_line; + if(old_line != 1 || new_line != 0) return; //only pulse on 1->0 transition + + //stage 2 increment + if(enabled == false) return; + stage2_ticks++; + if(stage2_ticks != target) return; + + //stage 3 increment + stage2_ticks = 0; + stage3_ticks++; + stage3_ticks &= 15; +} + #endif diff --git a/src/smp/ssmp/timing/timing.hpp b/src/smp/ssmp/timing/timing.hpp index 9f0781f5..9da8f49f 100644 --- a/src/smp/ssmp/timing/timing.hpp +++ b/src/smp/ssmp/timing/timing.hpp @@ -1,34 +1,21 @@ -template +template class sSMPTimer { public: - uint8 target; - uint8 stage1_ticks, stage2_ticks, stage3_ticks; + double stage0_ticks; + uint8 stage1_ticks; + uint8 stage2_ticks; + uint8 stage3_ticks; + bool current_line; bool enabled; + uint8 target; - void tick() { - //stage 1 increment - stage1_ticks++; - if(stage1_ticks < cycle_frequency) return; - - stage1_ticks -= cycle_frequency; - if(enabled == false) return; - - //stage 2 increment - stage2_ticks++; - - if(stage2_ticks != target) return; - - //stage 3 increment - stage2_ticks = 0; - stage3_ticks++; - stage3_ticks &= 15; - } + void tick(); + void sync_stage1(); }; -sSMPTimer<128> t0; -sSMPTimer<128> t1; -sSMPTimer< 16> t2; +sSMPTimer<64> t0; +sSMPTimer<64> t1; +sSMPTimer< 8> t2; alwaysinline void add_clocks(unsigned clocks); -alwaysinline void tick_timers(); -uint32 clocks_executed(); +alwaysinline void cycle_edge(); diff --git a/src/system/input/input.cpp b/src/system/input/input.cpp index ac2e59cc..ae43253c 100644 --- a/src/system/input/input.cpp +++ b/src/system/input/input.cpp @@ -7,8 +7,12 @@ uint8 Input::port_read(bool portnumber) { switch(p.device) { case Device::Joypad: { - if(p.counter0 >= 16) return 1; - return system.interface->input_poll(portnumber, p.device, 0, p.counter0++); + if(cpu.joylatch() == 0) { + if(p.counter0 >= 16) return 1; + return system.interface->input_poll(portnumber, p.device, 0, p.counter0++); + } else { + return system.interface->input_poll(portnumber, p.device, 0, 0); + } } //case Device::Joypad case Device::Multitap: { diff --git a/supergameboy.dll b/supergameboy.dll deleted file mode 100644 index 24764d4bd030be62422b82b430bb79d7dd4f67cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750254 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ℜv?K%)jyrWl-5b;_G8lxu-YC4ocVT>OZs?b8 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 TpEzRQ6n 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 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

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