Merge branch 'Branch_2b7014f' into release
This commit is contained in:
commit
457850d46a
|
@ -11,3 +11,7 @@
|
|||
path = waterbox/snes9x
|
||||
url = https://github.com/TASVideos/snes9x.git
|
||||
branch = bizsnes
|
||||
[submodule "mgba"]
|
||||
path = mgba
|
||||
url = https://github.com/TASVideos/mgba.git
|
||||
branch = bizhawk-0.6
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
---------------------------------------------------------
|
||||
-- Small script for only allowing input on P1 controller
|
||||
-- if both P1 and P2 holds down a specific input
|
||||
--
|
||||
-- Note that this script only works on systems which
|
||||
-- has two or more joypads (such as NES) and not on
|
||||
-- systems with just one joypad (such as Gameboy)
|
||||
--
|
||||
-- Author: Gikkman
|
||||
---------------------------------------------------------
|
||||
|
||||
-- Pre-made array for resetting the P1 joypad
|
||||
local reset = joypad.get(1)
|
||||
for k,v in pairs(reset) do
|
||||
reset[k] = ''
|
||||
end
|
||||
|
||||
event.onframestart( function()
|
||||
local p1 = joypad.get(1)
|
||||
local p2 = joypad.get(2)
|
||||
local consolidated = intersection(p1, p2)
|
||||
|
||||
gui.drawText(0,10, 'P1: ' .. dump(p1))
|
||||
gui.drawText(0,25, 'P2: ' .. dump(p2))
|
||||
|
||||
joypad.set(consolidated, 1)
|
||||
end )
|
||||
|
||||
event.onframeend( function()
|
||||
joypad.set(reset, 1)
|
||||
end )
|
||||
|
||||
-- Get intersection of P1 and P2 joypads
|
||||
function intersection(p1, p2)
|
||||
local ret = {}
|
||||
for k,v in pairs(p1) do
|
||||
ret[k] = p1[k] and p2[k]
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
||||
-- Print all pressed buttons
|
||||
function dump(o)
|
||||
local s = ''
|
||||
for k,v in pairs(o) do
|
||||
if v then s = s .. tostring(k) .. ' ' end
|
||||
end
|
||||
return s
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------
|
||||
-- Main loop --
|
||||
--------------------------------------
|
||||
while true do
|
||||
emu.frameadvance()
|
||||
end
|
|
@ -0,0 +1,205 @@
|
|||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////
|
||||
////
|
||||
//// VERTEX SHADER : STOLEN FROM NEIGHBOURING SHADERS
|
||||
////
|
||||
////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct input
|
||||
{
|
||||
float2 video_size;
|
||||
float2 texture_size;
|
||||
float2 output_size;
|
||||
|
||||
};
|
||||
|
||||
void main_vertex
|
||||
(
|
||||
float4 position : POSITION,
|
||||
out float4 oPosition : POSITION,
|
||||
uniform float4x4 modelViewProj,
|
||||
|
||||
float2 tex : TEXCOORD,
|
||||
|
||||
uniform input IN,
|
||||
out float2 oTexcoord : TEXCOORD,
|
||||
out float2 oFakeResolution : TEXCOORD1
|
||||
)
|
||||
{
|
||||
oPosition = mul(modelViewProj, position);
|
||||
oTexcoord = tex;
|
||||
oFakeResolution = IN.texture_size;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//// EFFECT CONSTANTS : TWEAK THEM!
|
||||
////
|
||||
|
||||
// Size of the border effect
|
||||
static const float2 OverscanMaskHardness = {12.0f ,12.0f };
|
||||
// Attenuation of the border effect
|
||||
static const float OverscanMaskPower = 4.0f;
|
||||
// Intensity of the border effect
|
||||
static const float OverscanIntensity = 0.96f;
|
||||
|
||||
// Intensity of the TV Corners (round-ness) deformation
|
||||
static const float TVDeformInstensity = 0.02f;
|
||||
|
||||
|
||||
// How much R, G and B are offset : default is -0.333 pixels in fake-pixel-space
|
||||
static const float ColorFringeIntensity = -0.666;
|
||||
// How much luminosity is output by a fake-pixel
|
||||
static const float FakePixelMaskGain = 0.75f;
|
||||
// How much luminosity is output between fake-pixels (adds to the fake-pixel value)
|
||||
static const float FakePixelMaskOffset = 0.55f;
|
||||
// How sharp will appear the pixels (Horizontal Sharpness, Vertical Sharpness A.K.A Scanlines)
|
||||
static const float2 FakePixelMaskPower = {0.150f ,2.0f };
|
||||
// Scanline Off Sync (Slides one line out of two)
|
||||
static const float ScanlineOffSync = 0.25;
|
||||
// Base Brightness
|
||||
static const float BaseBrightness = 0.55f;
|
||||
|
||||
// How much the Fake-Pixel effect is Active (0.0 = normal image, 1.0 = full FakePixel Effect)
|
||||
static const float FakePixelEffectBlend = 0.95f;
|
||||
|
||||
// Ghost Sampling : enable define to activate
|
||||
#define GHOST_SAMPLING;
|
||||
|
||||
static const float GhostLatencyIntensity = 0.03f;
|
||||
// Number of samples (higer is slower)
|
||||
static const int GhostNumSamples = 32;
|
||||
// Latency of the RGB Signal (per-signal, in screen width percentage)
|
||||
static const float3 SignalLatencyRGB = {0.184f,0.08f,0.0624f};
|
||||
// Attenuation of the ghosting latency
|
||||
static const float SignalLatencyAttenuation = 1.0f;
|
||||
|
||||
// Bloom : enable define to activate
|
||||
#define BLOOM;
|
||||
static const float BloomIntensity = 0.75f;
|
||||
static const float BloomExponent = 1.00f;
|
||||
static const float[5][5] BloomWeights =
|
||||
{
|
||||
{0.003765, 0.015019, 0.023792, 0.015019, 0.003765},
|
||||
{0.015019, 0.059912, 0.094907, 0.059912, 0.015019},
|
||||
{0.023792, 0.094907, 0.150342, 0.094907, 0.023792},
|
||||
{0.015019, 0.059912, 0.094907, 0.059912, 0.015019},
|
||||
{0.003765, 0.015019, 0.023792, 0.015019, 0.003765}
|
||||
};
|
||||
static const float[5] BloomPositions = { -2, -1, 0 , 1 , 2};
|
||||
|
||||
|
||||
////
|
||||
////
|
||||
////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
float expow(float value, float exponent) {
|
||||
return lerp(1.0f,pow(value,max(exponent,1.0f)),saturate(exponent));
|
||||
}
|
||||
|
||||
// MultiSampling for ghosting effect
|
||||
float3 GhostSample(sampler2D s, float2 t, float latency) {
|
||||
|
||||
float3 Out = tex2D(s,t);
|
||||
float Weight = 1.0f;
|
||||
float2 Direction = float2(-latency,0.0f);
|
||||
for(int i=1; i < GhostNumSamples; i++) {
|
||||
float curweight = pow(1.0f-((float)i/GhostNumSamples),1.0f/SignalLatencyAttenuation);
|
||||
|
||||
Out += GhostLatencyIntensity * curweight * tex2D(s,saturate(t+(1.0f-curweight)*Direction)).xyz;
|
||||
Weight += GhostLatencyIntensity * curweight;
|
||||
}
|
||||
return Out/Weight;
|
||||
}
|
||||
|
||||
// MultiSampling for ghosting effect
|
||||
float3 Bloom(sampler2D s, float2 t, float2 r) {
|
||||
|
||||
float3 Out = float3(0,0,0);
|
||||
for(int j = 0; j < 5; j++)
|
||||
for(int i = 0; i < 5; i++)
|
||||
{
|
||||
float2 offset = float2(BloomPositions[i],BloomPositions[j]) / r;
|
||||
Out += tex2D(s, t + offset).rgb * BloomWeights[i][j];
|
||||
}
|
||||
return pow(Out, BloomExponent) * BloomIntensity;
|
||||
}
|
||||
|
||||
// Compositing of the TV Emulation
|
||||
float3 TVEffect(float2 in_Position, float2 FakeResolution, sampler2D Texture, float Time) {
|
||||
|
||||
// TV Deformation
|
||||
float2 ScreenPos = in_Position + dot(in_Position-0.5f,in_Position-0.5f)*(in_Position-0.5f)* TVDeformInstensity;
|
||||
|
||||
// Apply Off-Sync
|
||||
ScreenPos += (ScanlineOffSync/FakeResolution.x) * float2(sin((Time*30*3.1415926)+(ScreenPos.y*3.1415926*FakeResolution.y)),0);
|
||||
|
||||
// Sampling 3 Images biased to simulate TV RGB Offset
|
||||
#ifdef GHOST_SAMPLING
|
||||
float3 latencyweight = float3(0.0f,0.0f,0.0f);
|
||||
for(int i=1; i < GhostNumSamples; i++) {
|
||||
latencyweight += tex2D(Texture, ScreenPos + float2(1.0f/FakeResolution.x,0.0f)).xyz;
|
||||
}
|
||||
float3 LatencyRGB = SignalLatencyRGB * (1.0-(latencyweight/GhostNumSamples));
|
||||
|
||||
float3 SMP_Red = GhostSample(Texture, (ScreenPos),LatencyRGB.x).xyz;
|
||||
float3 SMP_Green = GhostSample(Texture, (ScreenPos) + ((float2(ColorFringeIntensity,0.0f))/FakeResolution),LatencyRGB.y).xyz;
|
||||
float3 SMP_Blue = GhostSample(Texture, (ScreenPos) + ((float2(ColorFringeIntensity*2.0f,0.0f))/FakeResolution),LatencyRGB.z).xyz;
|
||||
#else
|
||||
float3 SMP_Red = tex2D(Texture, (ScreenPos)).xyz;
|
||||
float3 SMP_Green = tex2D(Texture, (ScreenPos) + ((float2(ColorFringeIntensity,0.0f))/FakeResolution)).xyz;
|
||||
float3 SMP_Blue = tex2D(Texture, (ScreenPos) + ((float2(ColorFringeIntensity*2.0f,0.0f))/FakeResolution)).xyz;
|
||||
#endif
|
||||
|
||||
#ifdef BLOOM
|
||||
float3 bloom = Bloom(Texture, ScreenPos, FakeResolution);
|
||||
SMP_Red += bloom.r;
|
||||
SMP_Green += bloom.g;
|
||||
SMP_Blue += bloom.b;
|
||||
#endif
|
||||
|
||||
// Apply base Brightness
|
||||
SMP_Red *= BaseBrightness;
|
||||
SMP_Green *= BaseBrightness;
|
||||
SMP_Blue *= BaseBrightness;
|
||||
|
||||
// Overscan Darkening Mask
|
||||
float2 ScreenMask = pow(saturate(ScreenPos*(1.0f-ScreenPos)*OverscanMaskHardness),1.0f/OverscanMaskPower);
|
||||
float mask = lerp(1.0, ScreenMask.x * ScreenMask.y, OverscanIntensity);
|
||||
|
||||
// CRT Cell Masks (HorizontalRGB+Scanline)
|
||||
float PixelMaskR = expow(saturate(4*frac(ScreenPos.x*FakeResolution.x)*(1.0f-frac(ScreenPos.x*FakeResolution.x))),FakePixelMaskPower.x);
|
||||
float PixelMaskG = expow(saturate(4*frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity,0.0f))*(1.0f-frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity,0.0f)))),FakePixelMaskPower.x);
|
||||
float PixelMaskB = expow(saturate(4*frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity*2.0f,0.0f))*(1.0f-frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity*2.0f,0.0f)))),FakePixelMaskPower.x);
|
||||
float PixelMaskScanline = pow(saturate(4*frac(ScreenPos.y*FakeResolution.y)*(1.0f-frac(ScreenPos.y*FakeResolution.y))),FakePixelMaskPower.y);
|
||||
|
||||
float3 PixelRGB = float3 (
|
||||
((PixelMaskR*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Red.x ,
|
||||
((PixelMaskG*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Green.y ,
|
||||
((PixelMaskB*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Blue.z
|
||||
);
|
||||
|
||||
// Non-Pixelated Image
|
||||
float3 ImageRGB = tex2D(Texture, ScreenPos).xyz;
|
||||
return lerp(ImageRGB, PixelRGB, FakePixelEffectBlend) * mask;
|
||||
|
||||
//return float3(PixelMaskR*PixelMaskScanline,PixelMaskG*PixelMaskScanline,PixelMaskB*PixelMaskScanline);
|
||||
}
|
||||
|
||||
float4 main_fragment
|
||||
(
|
||||
in float2 TexCoord : TEXCOORD,
|
||||
in float2 FakeResolution : TEXCOORD1,
|
||||
in float2 wpos : WPOS,
|
||||
uniform sampler2D s_p : TEXUNIT0,
|
||||
uniform float Time
|
||||
) : COLOR
|
||||
{
|
||||
vec4 color = vec4(1.0f,1.0f,1.0f,1.0f);
|
||||
color.xyz = TVEffect(TexCoord,FakeResolution, s_p, Time);
|
||||
return color;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
shaders = 1
|
||||
|
||||
shader0 = retroizer.cg
|
||||
scale0 = 6
|
3020
Assets/defctrl.json
3020
Assets/defctrl.json
File diff suppressed because it is too large
Load Diff
|
@ -23,6 +23,9 @@
|
|||
#include gamedb_user.txt
|
||||
#include gamedb_ws.txt
|
||||
#include gamedb_wsc.txt
|
||||
#include gamedb_zxspectrum.txt
|
||||
#include gamedb_amstradcpc.txt
|
||||
#include gamedb_ngp.txt
|
||||
|
||||
; ************ TI-83 ************
|
||||
|
||||
|
|
|
@ -1369,7 +1369,7 @@ sha1:542d45c4b4873e58b4da63fa2fa9dfc389aa4bf6 Mega Force (1982) (20th Century F
|
|||
sha1:0ae118373c7bda97da2f8d9c113e1e09ea7e49e1 Mega Force (1982) (20th Century Fox) A26 m=4K;NTSC=true
|
||||
sha1:864f5c82f055c3d21c3f10b6ee892493b36b835a Mega Funpak - Pac-Man, Planet Patrol, Skeet Shoot, Battles of Gorf (HES) (PAL) [!] A26 m=F6;PAL=true
|
||||
sha1:8bfbdc7f8a8f244cebd74a480388dd611a52f770 Mega Mania Raid (1999) (Thiago Paiva) A26 m=4K;NTSC=true
|
||||
sha1:46977baf0e1ee6124b524258879c46f80d624fae Megaboy (Brazil) (PAL) [!] A26 m=F0;PAL=true
|
||||
sha1:46977baf0e1ee6124b524258879c46f80d624fae Megaboy (Brazil) (PAL) [!] A26 SP_FRAME=true;m=F0;PAL=true
|
||||
sha1:9d95f08acc02777283f30ebea8658e8ab7587b9b Megademo (19xx) (PD) A26 m=2K;NTSC=true
|
||||
sha1:756396b5d89831909d3d55cba143f5d1a101e366 Megamania (1982) (Activision) (PAL) [!] A26 m=4K;PAL=true
|
||||
sha1:2b6a826064295220502e1cee1df8c32bf1cd7189 Megamania (1982) (Activision) (PAL) [p1][!] A26 m=4K;PAL=true
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
;5 = Rescue on Fractulus
|
||||
;6 = Dev Cart
|
||||
|
||||
md5:03DAA19B7AAE2D27E61F2A4DBE3B9B79 MUSIC A78 PAL=true;board=0;Pokey=true
|
||||
md5:F5150C0FC1948832211E57852ABB0C6E Utility Cart A78 NTSC=true;board=0;Pokey=true
|
||||
md5:F9FA5107ED213E709858D8876359309E Pokey Test A78 NTSC=true;board=0;Pokey=true
|
||||
md5:0D9452D4DB4D1E1CF843F4F10605EB7D Dev Cart A78 NTSC=true;board=0
|
||||
md5:31FBCF03946E804FC2D77CCA5D61C928 Mode Test A78 NTSC=true;board=0
|
||||
md5:91041AADD1700A7A4076F4005F2C362F Diagnostics A78 NTSC=true;board=0
|
||||
|
@ -31,7 +34,11 @@ md5:fba002089fcfa176454ab507e0eb76cb Basketbrawl A78 PAL=true;board=1
|
|||
md5:6010a398070dfacb4c0173d75d73c50a Beef Drop A78 NTSC=true;board=0
|
||||
md5:c534db0a062225b17cfb8ecce0fb9090 Beef Drop A78 NTSC=true;board=0
|
||||
md5:CE25D34071B2C798ACE4C8792EAE8E84 Beef Drop A78 NTSC=true;board=0
|
||||
md5:6da5b1b9fa0001e3517f6084ff651b07 Bentley Bear - Crystal Quest A78 NTSC=true;board=2
|
||||
md5:707E98991390A4E8874508E5ED4EDEEF Bentley Bear - Crystal Quest A78 NTSC=true;board=2;Pokey=true
|
||||
md5:AD35A98040A2FACB10ECB120BF83BCC3 Bentley Bear - Crystal Quest A78 NTSC=true;board=2;Pokey=true
|
||||
md5:6da5b1b9fa0001e3517f6084ff651b07 Bentley Bear - Crystal Quest A78 NTSC=true;board=2;Pokey=true
|
||||
md5:4D0B5BF95E4CB366990DBAEECB7F706D Bentley Bear - Crystal Quest A78 NTSC=true;board=2;Pokey=true
|
||||
md5:34483432B92F565F4CED82A141119164 Bentley Bear - Crystal Quest A78 NTSC=true;board=2;Pokey=true
|
||||
md5:5a09946e57dbe30408a8f253a28d07db Centipede A78 NTSC=true;board=0
|
||||
md5:38c056a48472d9a9e16ebda5ed91dae7 Centipede A78 PAL=true;board=0
|
||||
md5:93e4387864b014c155d7c17877990d1e Choplifter! A78 NTSC=true;board=0
|
||||
|
@ -115,7 +122,8 @@ md5:220121f771fc4b98cef97dc040e8d378 Ninja Golf A78 NTSC=true;board=1
|
|||
md5:ea0c859aa54fe5eaf4c1f327fab06221 Ninja Golf A78 PAL=true;board=1
|
||||
md5:74569571a208f8b0b1ccfb22d7c914e1 One on One Basketball A78 NTSC=true;board=0
|
||||
md5:8dba0425f0262e5704581d8757a1a6e3 One on One Basketball A78 PAL=true;board=0
|
||||
md5:5d7bc7092de69095137456733e7b685d Pac-Man Collection A78 NTSC=true;board=0
|
||||
md5:5d7bc7092de69095137456733e7b685d Pac-Man Collection A78 NTSC=true;board=0
|
||||
md5:5013B69CB05B21A1194CE48517DF7BFC Pac-Man Collection (Pokey) A78 NTSC=true;board=0;Pokey=true
|
||||
md5:90223a8a363bdf643a19d0f97e63b1b2 PacArcade A78 NTSC=true;board=0
|
||||
md5:386bded4a944bae455fedf56206dd1dd Pete Rose Baseball A78 PAL=true;board=0
|
||||
md5:1a5207870dec6fae9111cb747e20d8e3 Pete Rose Baseball A78 NTSC=true;board=0
|
||||
|
@ -142,11 +150,15 @@ md5:980c35ae9625773a450aa7ef51751c04 Scrapyard Dog A78 NTSC=true;board=1
|
|||
md5:53db322c201323fe2ca8f074c0a2bf86 Scrapyard Dog A78 PAL=true;board=1
|
||||
md5:b697d9c2d1b9f6cb21041286d1bbfa7f Sentinel A78 NTSC=true;board=1
|
||||
md5:5469b4de0608f23a5c4f98f331c9e75f Sentinel A78 PAL=true;board=1
|
||||
md5:2d643ac548c40e58c99d0fe433ba4ba0 Sirius A78 NTSC=true;board=1;RAM=8
|
||||
md5:2d643ac548c40e58c99d0fe433ba4ba0 Sirius A78 NTSC=true;board=1;RAM=16
|
||||
md5:a84c1b2300fbfbf21b1c02387f613dad Space Duel A78 PAL=true;board=0
|
||||
md5:771cb4609347657f63e6f0eb26036e35 Space Duel A78 NTSC=true;board=0
|
||||
md5:6adf79558a3d7f5beca1bb8d34337417 Space Invaders A78 NTSC=true;board=0
|
||||
md5:cbb0746192540a13b4c7775c7ce2021f Summer Games A78 NTSC=true;board=1;RAM=16
|
||||
md5:cbb0746192540a13b4c7775c7ce2021f Summer Games A78 NTSC=true;board=1;RAM=16
|
||||
md5:02508E6DF5E173B4063A7E6E63295817 Super Circus Atari Age (NTSC) (Joystick) (POKEY 0450) (20170611) A78 NTSC=true;board=0;Pokey=true
|
||||
md5:81CEE326B99D6831DE10A566E338BD25 Super Circus Atari Age (NTSC) (Joystick) (POKEY 4000) (20170611) A78 NTSC=true;board=0;Pokey=true
|
||||
md5:37E60CAC38E78A5562590CB1B8BC0578 Super Circus A78 NTSC=true;board=0;Pokey=true
|
||||
md5:57B6D9380A188A32D5C3814B8AF2EA9A Super Circus A78 PAL=true;board=0;Pokey=true
|
||||
md5:cc18e3b37a507c4217eb6cb1de8c8538 Super Huey UH-IX A78 NTSC=true;board=0
|
||||
md5:162f9c953f0657689cc74ab20b40280f Super Huey UH-IX A78 PAL=true;board=0
|
||||
md5:59b5793bece1c80f77b55d60fb39cb94 Super Skateboardin' A78 NTSC=true;board=0
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
#include gamedb_amstradcpc_disks.txt
|
||||
|
||||
;;;;----------------------------------------------
|
||||
;;;; Currently the above gamesdb files are generated automatically from TOSEC files (using the new DAT converter in DBMan)
|
||||
;;;; Each file above only contains softwares in formats that BizHawk currently supports
|
||||
;;;; These are:
|
||||
;;;; Floppy Disk: *.dsk
|
||||
;;;; Each file is commented automatically and split up first into the various files that were imported, then by RomStatus
|
||||
;;;;
|
||||
;;;; NOTE: TOSEC only has disk and cart games for the CPC. Another source will be needed for tape images
|
||||
;;;;
|
||||
;;;; In theory, this setup means that we can run the auto import again when newer TOSEC files are released,
|
||||
;;;; or if support for other file formats is added to BizHawk.
|
||||
;;;;
|
||||
;;;; NOTE TO DEVS:
|
||||
;;;; Any overrides should be placed below. Do *NOT* edit the included files above manually (as changes will get destroyed if the DAT importer is run again).
|
||||
;;;; By the looks of it, Bizhawk takes the last entry it sees when duplicates are present, so this should work.
|
||||
;;;;
|
||||
;;;;----------------------------------------------
|
||||
|
||||
;;;;----------------------------------------------
|
||||
;;;; Overrides (dont edit the included files above directly!)
|
||||
;;;;----------------------------------------------
|
||||
|
||||
;;; BAD
|
||||
|
||||
;;; Actually GOOD
|
||||
|
||||
;;; Actually TRANSLATED
|
||||
|
||||
;;; Games NOT present in TOSEC
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -346,6 +346,7 @@ sha1:D89EE629F8F60613999EAD84A3C7B2F6B38C399F fme7ramtest_128k NES board=MAPPE
|
|||
sha1:78C4441E42C8F423EBF6558AA00AB6D0DBCC2B4B 34_test_1 NES board=AVE-NINA-01;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0
|
||||
sha1:F2D5CB78D78831CB6A2A17CD418A753F3C99C7F4 34_test_2 NES board=NES-BNROM;PRG=256;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0
|
||||
sha1:77C5C2473AF13003B7BD8273A5E23BE4964107A3 M34_P128K_H NES board=AVE-NINA-07;PRG=128;CHR=0;WRAM=0;VRAM=8;PAD_V=1;PAD_H=0
|
||||
sha1:B6721E1C1EC2E2F215180ED7BB31EDA80BCDE869 2nd2006_next_level NES board=MAPPER000;PRG=16;CHR=8;PAD_V=1;PAD_H=0
|
||||
|
||||
;other
|
||||
sha1:4180276C50DF9958DEDD6C6D19C9E7AEBB75A89F o Galaxian (Japan) NES board=NAMCOT-3301;PRG=16;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
#include gamedb_ngp_tosec.txt
|
||||
#include gamedb_ngp_nointro.txt
|
||||
|
||||
;;;;----------------------------------------------
|
||||
;;;; Currently the above gamesdb files are generated automatically from TOSEC and NOINTRO files (using the new DAT converter in DBMan)
|
||||
;;;; TOSEC is loaded first as it includes more stuff. NOINTRO comes last so that duplicates can be superceeded
|
||||
;;;; Each file is commented automatically and split up first into the various files that were imported, then by RomStatus
|
||||
;;;; In theory, this setup means that we can run the auto import again when newer TOSEC and NOINTRO files are released.
|
||||
;;;;
|
||||
;;;; NOTE TO DEVS:
|
||||
;;;; Any overrides should be placed below. Do *NOT* edit the included files above manually (as changes will get destroyed if the DAT importer is run again).
|
||||
;;;; By the looks of it, Bizhawk takes the last entry it sees when duplicates are present, so this should work.
|
||||
;;;;
|
||||
;;;;----------------------------------------------
|
||||
|
||||
;;;;----------------------------------------------
|
||||
;;;; Overrides (dont edit the included files above directly!)
|
||||
;;;;----------------------------------------------
|
||||
|
||||
;;; BAD
|
||||
|
||||
;;; Actually GOOD
|
||||
|
||||
;;; Actually TRANSLATED
|
||||
|
||||
;;; Games NOT present in TOSEC
|
||||
|
||||
|
|
@ -0,0 +1,178 @@
|
|||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Type: NO-INTRO
|
||||
;;; Source: SNK - Neo Geo Pocket - 20180917-202758
|
||||
;;; FileGen: 2018-09-21 14:44:36 (UTC)
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Bad Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Hacks
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Over Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Translated
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Believed Good
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
9150A58F7094A48B980C1AC71B9CFAB9 Baseball Stars (Japan, Europe) (En,Ja) NGP Japan, Europe
|
||||
347D0EF33C889CC826D214CAF8475AE0 King of Fighters R-1 - Pocket Fighting Series (Japan, Europe) (En,Ja) NGP Japan, Europe
|
||||
8B5500BDF12D0D26F84D6E2D6D8E5008 King of Fighters R-1 & Melon-chan no Seichou Nikki - Pocket Fighting Series (Japan) (Demo) NGP Japan
|
||||
104101B61276FFF91574A50B6D5F38BC Melon-chan no Seichouki (Japan) NGP Japan
|
||||
006AFE2DEC77D73A2C592AEB1B3F694C Neo Cherry Master - Real Casino Series (Japan, Europe) (En,Ja) NGP Japan, Europe
|
||||
30EFE4F72D4678FFB97B885B1B7C3DA1 Neo Geo Cup '98 (Japan, Europe) (En,Ja) NGP Japan, Europe
|
||||
6523C679A90573B09B4F70532CDFF09C Pocket Tennis - Pocket Sports Series (Japan, Europe) (En,Ja) NGP Japan, Europe
|
||||
9330C9A7BBD6A7DC5B5963A5B7623443 Renketsu Puzzle Tsunagete Pon! (Japan) NGP Japan
|
||||
D13F954B2F1C703BDF857837C24E332E Samurai Shodown! - Pocket Fighting Series (Japan, Europe) (En,Ja) NGP Japan, Europe
|
||||
9250B3328D64D3A1E7F9D50A04CEB64F Shougi no Tatsujin (Japan) NGP Japan
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Type: NO-INTRO
|
||||
;;; Source: SNK - Neo Geo Pocket Color - 20180917-213736
|
||||
;;; FileGen: 2018-09-21 14:44:36 (UTC)
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Bad Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Hacks
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Over Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Translated
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Believed Good
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
2C7076BD626B8360F8D3834384323F30 Bakumatsu Rouman Tokubetsu Hen - Gekka no Kenshi - Tsuki ni Saku Hana, Chiri Yuku Hana (Japan) NGP Japan
|
||||
F2F296F4BE215E826FAC519FBA96609B Baseball Stars Color (World) (En,Ja) NGP World
|
||||
F384FF31B5B27903383E3C597654A9D5 Big Bang Pro Wrestling (Japan) (En,Ja) NGP Japan
|
||||
CA3E26E2F539DBD35092FA9D7F561AFF Bikkuriman 2000 - Viva! Pocket Festival! (Japan) NGP Japan
|
||||
570086C0C471392E8058A913D5C7AE21 Biomotor Unitron (Japan) NGP Japan
|
||||
4E9E47682CDB5BC314131548A4FB1A95 Biomotor Unitron (Japan) (Demo) NGP Japan
|
||||
F4BBE8CF42074B75C8A911BF7B0562D5 Biomotor Unitron (USA, Europe) NGP USA, Europe
|
||||
1AFB182567C6030C6D68F257E6245184 Bust-A-Move Pocket (USA) NGP USA
|
||||
29A8A310B704E8DAFEE71CEA0AD53DF0 Bust-A-Move Pocket (USA) (Beta) NGP USA
|
||||
DC8FA0CEDEF94FE22A219F2EECA43DC0 Cool Boarders Pocket (Japan, Europe) (En,Ja) NGP Japan, Europe
|
||||
F367E3BD61C308966A4815200FAFB6A6 Cool Cool Jam (Japan) NGP Japan
|
||||
CA88E3D6291C5CDF7B518D43DF5D0D98 Cool Cool Jam (USA, Europe) (Sample) NGP USA, Europe
|
||||
100F6086BBCD6BCCD2AC6F79242F5A87 Crush Roller (World) (En,Ja) NGP World
|
||||
FE0E58D34D650AE5174CA03D3EFC67B0 Dark Arms - Beast Buster 1999 (World) (En,Ja) NGP World
|
||||
4FB30B1B905ED1F975EFB9A8FCEB9A62 Dark Arms - Beast Buster 1999 (World) (En,Ja) (Beta) NGP World
|
||||
415E33891C1EFF49CADD35D400D350CE Delta Warp (Japan) (Demo) NGP Japan
|
||||
D4651757A3DB5A8E5A5A64C337C6002F Delta Warp (Japan) (En,Ja) NGP Japan
|
||||
26D0557D8A465AA8F430D5E4D94C679A Densetsu no Ogre Battle Gaiden - Zenobia no Ouji (Japan) NGP Japan
|
||||
C79DD020410D1D80C2709CB6AF4CF64A Densha de Go! 2 on Neo Geo Pocket (Japan) NGP Japan
|
||||
13F0584AEAB81FDBCDB09BC89367BD89 Densha de Go! 2 on Neo Geo Pocket (Japan) (Demo) NGP Japan
|
||||
C148B30103DE704EEED63DFE7A7D6100 Dive Alert - Becky's Version (USA, Europe) NGP USA, Europe
|
||||
B149CB1F866942ECA70DF78BB25351CF Dive Alert - Burn Hen (Japan) NGP Japan
|
||||
D96C97BD9C0675B9B81348B06977B60F Dive Alert - Burn Hen (Japan) (Beta) NGP Japan
|
||||
0C38B2D5D1A2BE15D6C15C6B16B7BC98 Dive Alert - Matt's Version (USA, Europe) NGP USA, Europe
|
||||
B26C96EE636795787CF58E2D5DB56C4A Dive Alert - Rebecca Hen (Japan) NGP Japan
|
||||
66885D788F8474295FCCBEBA107F2421 Dokodemo Mahjong (Japan) NGP Japan
|
||||
C84F675A617DF14B1A1BF06F02BE773D Dynamite Slugger (Japan, Europe) (En,Ja) NGP Japan, Europe
|
||||
9C9C2D533BE340600EF9F92ED1253DD9 Evolution - Eternal Dungeons (Europe) NGP Europe
|
||||
5A2A155706A201A1C0227C7FE671256F Fantastic Night Dreams - Cotton (Europe) NGP Europe
|
||||
F6C0C5D77EAE342FCDD6CFFABF783226 Fantastic Night Dreams - Cotton (Japan) NGP Japan
|
||||
F580078164DC2B8DFFB9F38EEEC1035D Faselei! (Europe) NGP Europe
|
||||
08B5385BD6D1FDCFED39BDB411FABD85 Faselei! (Japan) NGP Japan
|
||||
690A3397F20E31B2C4A2833F51670245 Fatal Fury F-Contact - Pocket Fighting Series (World) (En,Ja) NGP World
|
||||
8F3175DF433B78DFA1A0663F493E1FEA Fatal Fury F-Contact - Pocket Fighting Series (World) (En,Ja) (Demo) NGP World
|
||||
99ED127490F9D5D6482D20CC6ABC8056 Ganbare Neo Poke-kun (Ka) (Japan) NGP
|
||||
4BDA8B3669C5BBD72266853940D626CB Infinity Cure (Japan) NGP Japan
|
||||
9827FE3F592BD73CE1603E516C5E0532 Kikou Seiki Unitron - Sono Tsuide. Hikari Umareru Chi Yori. (Japan) NGP Japan
|
||||
B361ED78F6126F94179DC69FE4C58781 King of Fighters R-2 - Pocket Fighting Series (World) (En,Ja) NGP World
|
||||
FF89D298A437D6D442A3EFDFD8820888 King of Fighters R-2 - Pocket Fighting Series (World) (En,Ja) (Demo) NGP World
|
||||
A0290F929C2B1970832002BA0505A644 King of Fighters R-2 Version 2 - Pocket Fighting Series (World) (En,Ja) (Demo) NGP World
|
||||
362E9C04EC255225EEB0A9DEE8FCAC1B King of Fighters, The - Battle de Paradise (Japan) NGP Japan
|
||||
05AB35ED7BE398072CAE34783AA6751A Koi Koi Mahjong (Japan) NGP Japan
|
||||
83FA4CB3C629AA57C12F9CEC52C5A53D Last Blade, The - Beyond the Destiny (Europe) NGP Europe
|
||||
AE92CD3536577BD18F03F34B475C26D6 Magical Drop Pocket (Japan) NGP Japan
|
||||
DA3DA8E3B77700249DDA2052975CAD5C Magical Drop Pocket (Japan) (Demo) NGP Japan
|
||||
6ACFEF5FE57D592EA7321E0E440C4ECF Magical Drop Pocket (USA, Europe) NGP USA, Europe
|
||||
2E518837DFEBD4CB10AC117A339C5854 Memories Off - Pure (Japan) NGP Japan
|
||||
4D3EFEF436C67D4F4E031951B97D64C8 Metal Slug - 1st Mission (World) (En,Ja) NGP World
|
||||
A58F7C41CD9E6C96CD5B4B477F022570 Metal Slug - 2nd Mission (World) (En,Ja) NGP World
|
||||
3E46EFDD356157E9D41056CA0885AB65 Metal Slug - 2nd Mission (World) (En,Ja) (Demo) NGP World
|
||||
2FD2FFA3E15E05FC4512A10D98FBDD95 Mezase! Kanji Ou (Japan) NGP Japan
|
||||
89B605A1FC6DB5855B432CCC62F9E6E3 Mizuki Shigeru no Youkai Shashinkan (Japan) NGP Japan
|
||||
0865F375EAD2FEBBC86AB3FB9274B9B7 Neo 21 - Real Casino Series (World) NGP World
|
||||
1018F765F460588D975C9B4E9385A547 Neo Baccarat - Real Casino Series (World) NGP World
|
||||
2685AD9EBA4E9C86E1055E39917DC3ED Neo Baccarat - Real Casino Series (World) (Beta) NGP World
|
||||
7992904F8C4040AEE0CDE040AFBF757D Neo Cherry Master Color - Real Casino Series (World) (En,Ja) NGP World
|
||||
27BEA85082CDE31600B01DC27A99B82A Neo Cherry Master Color - Real Casino Series (World) (En,Ja) (Demo) NGP World
|
||||
CD5C1EB7CB2E83D6B6D64918574C8CDB Neo Derby Champ Daiyosou (Japan) NGP Japan
|
||||
C0CED1D22506E46C4667BC0E926D921E Neo Dragon's Wild - Real Casino Series (World) (En,Ja) (v1.11) NGP World
|
||||
F0FDD57F4D1A1470B826082586EAD479 Neo Dragon's Wild - Real Casino Series (World) (En,Ja) (v1.13) NGP World
|
||||
A6C3369F28558E4A9719DC54D50BE713 Neo Geo Cup '98 Plus (World) (En,Ja) NGP World
|
||||
CEF050E2591435A5C41FF851AFA55A82 Neo Mystery Bonus - Real Casino Series (World) (En,Ja) NGP World
|
||||
93D3810AE176507EBAAE782A612C930B Neo Poke Pro Yakyuu (Japan) NGP Japan
|
||||
E055837BB0E227C1DDC3E68B0AA89AE9 Neo Turf Masters (World) (En,Ja) NGP World
|
||||
F78476C51C398B28E1D2257299D14758 Neo Turf Masters (World) (En,Ja) (Demo) NGP World
|
||||
9C73091689138179323FF48B279F8B1E Nigeronpa (Japan) NGP Japan
|
||||
883056ABBB872DE893CDB1F4F697DBF8 Oekaki Puzzle (Japan) NGP Japan
|
||||
299761888BB026D76B698B9745BD8D27 Pachinko Hisshou Guide - Pocket Parlor (Japan) NGP Japan
|
||||
1676F66C906188D9DCA7015FB5AADA0E Pachi-Slot Aruze Oukoku Pocket - Azteca (Japan) NGP Japan
|
||||
1CBB6692DB2357F80691BC7462ED4EAE Pachi-Slot Aruze Oukoku Pocket - Dekahel 2 (Japan) NGP Japan
|
||||
59C600D2FFE3A44E8CFA96824DC90C8E Pachi-Slot Aruze Oukoku Pocket - Delsol 2 (Japan) NGP Japan
|
||||
0DBEBA28E62ECE2E9B08C62890650FF5 Pachi-Slot Aruze Oukoku Pocket - e-Cup (Japan) NGP Japan
|
||||
888A2BBDE70D6F67B1C776ABC12C5AF8 Pachi-Slot Aruze Oukoku Pocket - Hanabi (Japan) (v1.02) NGP Japan
|
||||
B3EDF9AD99CBD433C8E62836F32092EC Pachi-Slot Aruze Oukoku Pocket - Hanabi (Japan) (v1.04) NGP Japan
|
||||
3C340FE221635BA52AAE8ADCC8E43758 Pachi-Slot Aruze Oukoku Pocket - Oohanabi (Japan) NGP Japan
|
||||
8EFD3C40988452782E55548F7369A050 Pachi-Slot Aruze Oukoku Pocket - Porcano 2 (Japan) NGP Japan
|
||||
DA41C689C64815AD2B374A7FF52E819B Pachi-Slot Aruze Oukoku Pocket - Ward of Lights (Japan) NGP Japan
|
||||
AC5AD76D5E6614AE576C2C837F0FAB1D Pac-Man (World) (En,Ja) NGP World
|
||||
C86E826C8413C0DC3AD19A63BA6D4D97 Party Mail (Japan) NGP Japan
|
||||
F60EA82FE428E83355CE870BF5CFF5D5 Party Mail (Japan) (Beta) NGP Japan
|
||||
81D3C10271AD5B09032DD00321B41AA0 Picture Puzzle (USA, Europe) NGP USA, Europe
|
||||
62347264D918559A95034BE7CEA8756D Pocket Love - if (Japan) NGP Japan
|
||||
50DB2D67493CC92FA382A3F9CB16905C Pocket Reversi (Europe) NGP Europe
|
||||
C1427EF852912D672BE49622DEAC5EC2 Pocket Reversi (Japan) NGP Japan
|
||||
C7BFC59B4CB593409541D4CCFFE083B4 Pocket Tennis Color - Pocket Sports Series (World) (En,Ja) NGP World
|
||||
806778D680BB9F41A3E610499E318F85 Prize Game - PP-AA01 Pusher Program (Japan) NGP Japan
|
||||
7FF625DC216783B034B011351C98255F Puyo Pop (World) (En,Ja) (v1.05) NGP World
|
||||
D40DC57B9CC3A30A2400F8CFD8724578 Puyo Pop (World) (En,Ja) (v1.06) NGP World
|
||||
D69F1C4B9A015666184580737C6B2024 Puzzle Bobble Mini (Japan, Europe) (En,Ja) (Demo) NGP Japan, Europe
|
||||
75FFD166FDC777B58F8280652988F441 Puzzle Bobble Mini (Japan, Europe) (v1.09) NGP Japan, Europe
|
||||
94537FD169751658F3A50A3B7A80CEF2 Puzzle Bobble Mini (Japan, Europe) (v1.10) NGP Japan, Europe
|
||||
DF694E1F69DED1DF68A4AC52A13FB44A Puzzle Link (Europe) NGP Europe
|
||||
9B30216DA76C9DE87CAEA93F13977396 Puzzle Link 2 (USA, Europe) NGP USA, Europe
|
||||
72119F96AA1EBD5A01562B0395089BCF Renketsu Puzzle Tsunagete Pon! Color (Japan) NGP Japan
|
||||
C71AF75C76778B8A2D32A0C6F170736E Rockman - Battle & Fighters (Japan) NGP Japan
|
||||
62EC0E37ACFE58CC41EBA8BD8A5F14A2 Rockman - Battle & Fighters (Japan) (Demo) NGP Japan
|
||||
8D6A36ACD3B171970D87D2FCA6796A4A Samurai Shodown! 2 - Pocket Fighting Series (World) (En,Ja) NGP World
|
||||
7C262A2C6390445170D0BF83290C939C Shanghai Mini (World) (En,Ja) NGP World
|
||||
100760E5F548ABFF92A36761FCF6EE14 Shanghai Mini (World) (En,Ja) (Beta 1) NGP World
|
||||
F547E657F717223C8A286E51AA159F86 Shanghai Mini (World) (En,Ja) (Beta 2) NGP World
|
||||
3AB7276071D35CD11F316B6B936CEE38 Shinki Sekai Evolution - Hateshinai Dungeon (Japan) NGP Japan
|
||||
9250B3328D64D3A1E7F9D50A04CEB64F Shougi no Tatsujin (Japan) NGP Japan
|
||||
A874C1D95BADE2143C0712D22DDBD452 Shougi no Tatsujin Color (Japan) NGP Japan
|
||||
3540951DFDBA4697EE5F9D8B9356C18B SNK Gals' Fighters (Japan) NGP Japan
|
||||
08922D2BDC6C80D56DDF50836CCAD77C SNK Gals' Fighters (USA, Europe) NGP USA, Europe
|
||||
EBC0E8C33D1A5E5BE5457AD988233FEB SNK vs. Capcom - Card Fighters 2 - Expand Edition (Japan) NGP Japan
|
||||
3BCC1C9EF59A75E3C2E6B49BE6B84BAB SNK vs. Capcom - Card Fighters' Clash - Capcom Version (USA, Europe) NGP USA, Europe
|
||||
74E8381E94565E21A3197449BB4423BF SNK vs. Capcom - Card Fighters' Clash - SNK Version (USA, Europe) NGP USA, Europe
|
||||
E99AC2011126B8B617E77CAFF032D744 SNK vs. Capcom - Gekitotsu Card Fighters - Capcom Supporter Version (Japan) NGP Japan
|
||||
6CF60C8E14D7CAACCA38FF13963F5A32 SNK vs. Capcom - Gekitotsu Card Fighters - SNK Supporter Version (Japan) NGP Japan
|
||||
748F76D010B83C3D3C95FCA28B4D080F SNK vs. Capcom - Gekitotsu Card Fighters - SNK Supporter Version (Japan) (Demo) NGP Japan
|
||||
E8292BF000355E30C09EB64A3D381243 SNK vs. Capcom - Gekitotsu Card Fighters (Japan) (Demo) NGP Japan
|
||||
DFEA3AD9AF4A631DE6F97D86589B971E SNK vs. Capcom - The Match of the Millennium (World) (En,Ja) NGP World
|
||||
B8A899AE2B0F1DFA0DB5417DE745A51E Sonic The Hedgehog - Pocket Adventure (World) NGP World
|
||||
69C5D58770F111037F565EFBCC366B53 Sonic The Hedgehog - Pocket Adventure (World) (Beta) (1999-10-22) NGP World
|
||||
67A4B4C481625860D1C33978B28959B1 Sonic The Hedgehog - Pocket Adventure (World) (Demo) NGP World
|
||||
8B12FEC8E96DAD41380AB419A216AD08 Soreike!! Hanafuda Doujou (Japan) NGP Japan
|
||||
07873A332EF8AC5CB5177EE3C304FF2B Super Real Mahjong - Premium Collection (Japan) NGP Japan
|
||||
2A8F9CB76E56000769E08200D8B25182 Tsunagete Pon! 2 (Japan) NGP Japan
|
||||
95BD72B9E9081CB8AD8FC32BF7FF37B7 Wrestling Madness (USA, Europe) (Demo) NGP USA, Europe
|
|
@ -0,0 +1,566 @@
|
|||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Type: TOSEC
|
||||
;;; Source: SNK Neo-Geo Pocket - Games (TOSEC-v2014-07-01)
|
||||
;;; FileGen: 2018-09-21 14:59:55 (UTC)
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Bad Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
C2F6DF7694EFE3166D0071C99D929212 B Master of Syougi (1998)(ADK)(JP)[b] NGP JP
|
||||
61CEC52B03DBC1F1E31D8E363F76E0D1 B Renketsu Puzzle Tsunagete Pon! (1998)(Yumekobo)(JP)[b] NGP JP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Hacks
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Over Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Translated
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Home Brew
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Believed Good
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
9150A58F7094A48B980C1AC71B9CFAB9 Baseball Stars v1.10 (1998)(Saurus - SNK)(en-ja) NGP en-ja
|
||||
347D0EF33C889CC826D214CAF8475AE0 King of Fighters - R-1 (1998)(SNK)(en-ja) NGP en-ja
|
||||
6FB354C220C8097BBD8B21980C580A3C King of Fighters - R-1 (1998)(SNK)(en-ja)[a] NGP en-ja
|
||||
15D900184AE2C20D10A068D174E69673 King of Fighters - R-1 (1998)(SNK)(en-ja)[a2] NGP en-ja
|
||||
9250B3328D64D3A1E7F9D50A04CEB64F Master of Syougi (1998)(ADK)(JP) NGP JP
|
||||
E12F9F1EE83CFD7C6DC0D1DCD30DAD4D Master of Syougi (1998)(ADK)(JP)[b2] NGP JP
|
||||
B06C5F361D2312C3EAF2B605FEA42B6F Melon Chan no Seichou Nikki (1998)(ADK)(JP) NGP JP
|
||||
006AFE2DEC77D73A2C592AEB1B3F694C Neo Cherry Master (1998)(Dyna)(JP)(en-ja) NGP en-ja JP
|
||||
30EFE4F72D4678FFB97B885B1B7C3DA1 NeoGeo Cup '98 (1998)(SNK)(JP)(en-ja) NGP en-ja JP
|
||||
68FEA8DC46923D0E37131D92D9B27065 NeoGeo Cup '98 Plus (1998)(SNK)(en-ja) NGP en-ja
|
||||
6523C679A90573B09B4F70532CDFF09C Pocket Tennis - Pocket Sports Series (1998)(Yumekobo)(en-ja) NGP en-ja
|
||||
58308B9BDF0B90B632AC4D3655A81F6D Pocket Tennis - Pocket Sports Series (1998)(Yumekobo)(en-ja)[a] NGP en-ja
|
||||
D13F954B2F1C703BDF857837C24E332E Samurai Shodown! - Pocket Fighting Series (1998)(SNK)(en-ja) NGP en-ja
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Type: TOSEC
|
||||
;;; Source: SNK Neo-Geo Pocket Color - Applications (TOSEC-v2011-08-13)
|
||||
;;; FileGen: 2018-09-21 14:59:55 (UTC)
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Bad Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Hacks
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Over Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Translated
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Home Brew
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
3A4D4AF6BB55A47F64CE81200D5FCA06 D Flavor's NGPC Multi-ROM Menu v1.0 (2001)(Flavor)(PD) NGP
|
||||
444BA0A13DA02552817C4FBFFC133C23 D Flavor's NGPC Multi-ROM Menu v2.0 (2001)(Flavor)(PD) NGP
|
||||
4D28DA3B6C903520599E3060D9A67212 D Flavor's NGPC Multi-ROM Menu v2.0 (2001)(Flavor)(PD)[a] NGP
|
||||
84F94966FFA142BD331EEB73FFCD90D8 D Flavor's NGPC Multi-ROM Menu v2.0 (2001)(Flavor)(PD)[a2] NGP
|
||||
6DE94AF216AD802C16EBC9E0D3ED1177 D TPaint v0.7b (2000)(Carvan, Toby)(PD) NGP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Believed Good
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
D13F954B2F1C703BDF857837C24E332E Samurai Shodown! - Pocket Fighting Series (1998)(SNK)(en-ja) NGP en-ja
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Type: TOSEC
|
||||
;;; Source: SNK Neo-Geo Pocket Color - Demos (TOSEC-v2014-07-01)
|
||||
;;; FileGen: 2018-09-21 15:01:29 (UTC)
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Bad Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
8CEC9B8F6BBA9A6A42147D6954A716D1 B Fractal v1.0 (2000)(Slanina, Tomasz)(PD)[b] NGP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Hacks
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Over Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Translated
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Home Brew
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
82B38E7D9013862B26D5469E32731443 D 3D Engine Demo 1 (2001)(Thor)(PD) NGP
|
||||
F6DEA32FE56286630B65BE5AA3373BC8 D 3D Engine Demo 2 (2001)(Thor)(PD) NGP
|
||||
78A918694977258F26DF593E9E904FE8 D Anime Video Demo (2002)(Raneko)(PD) NGP
|
||||
938ECC41E19CDB65EFEB636A72007F88 D Bitmap Demo (200x)(-)(PD) NGP
|
||||
9080ED734736CD657D02F1A5EBA38764 D Chaos 89 (2000)(Doty, Charles)(PD) NGP
|
||||
25EFB139950CB427B6CC99652EF23D26 D CPU Test (199x)(Judge_)(PD) NGP
|
||||
68D5C9259E6580C51F3CFD865DF2D0AC D Fractal v1.0 (2000)(Slanina, Tomasz)(PD) NGP
|
||||
5B87E8C126F6E82D750583B30D900432 D Fractal v1.0 (2000)(Slanina, Tomasz)(PD)[a] NGP
|
||||
985D0B1F2DBBC701BAD94EC9AB1E89C1 D Fractal v1.1 (2000)(Slanina, Tomasz)(PD) NGP
|
||||
F8B24B6351BC802E86528298928F6941 D GIQ Export Sample (2001)(Raneko)(PD) NGP
|
||||
32A23067E04546B719884E45A8287261 D Hardware Test (199x)(-)(PD) NGP
|
||||
BE46A8ABD0F076F06801F752722CC918 D Hello World! Clock Demo (1999)(Jeff)(PD) NGP
|
||||
0257696EC87CDD8B7297C5ED5E07506D D Hello World! Clock Demo (1999)(Jeff)(PD)[a] NGP
|
||||
1105A101D4EF34E0D08D6C789576DA88 D Hicolor Picture (2000)(Soft'n Fuzzy)(PD) NGP
|
||||
C3B09767531F0A5A995814BDB997FEB5 D Mainreg Test (199x)(-)(PD) NGP
|
||||
D3B04F4650A67E37BD6A5B0C680D928E D Mauru Demo v0.01 (2004)(Soft'n Fuzzy)(PD) NGP
|
||||
104E33A29B9C3109F374FBC0FEDFA4FC D Mersenne Twister Random Number Generator (2000)(Siebold, Jeff)(PD) NGP
|
||||
AC50503CF25A860B416CE8574E82F4A0 D MOD Player Sample (2003)(Thor)(PD) NGP
|
||||
F0EF371286E213945C11AC601E04C7F8 D Movie Player Demo 1 (2003)(Thor)(PD) NGP
|
||||
0904AD18EC5DBBFB7FAA2C6B7833BE08 D Movie Player Demo 2 (2003)(Thor)(PD) NGP
|
||||
311580A30993C2B53D3B60299CEE70B8 D Movie Player Empty Template (2003)(Thor)(PD) NGP
|
||||
BE5F01E4B05AA0AD63AE03A419007374 D Multidirectional Scrolling Sample (2003)(Thor)(PD) NGP
|
||||
6581E18F8AAA128E80CDA30D3B364473 D Napalm Neo-Neo! Demo v1.0 (2000)(Napalm)(PD) NGP
|
||||
AECF4EB51552C9FD06BE8D213073F945 D Napalm Neo-Neo! Demo v1.1 (2000)(Napalm)(PD) NGP
|
||||
3B74821E0E8566AFDF099C1A6FF38303 D Napalm Neo-Neo! Demo v1.2 (2000)(Napalm)(PD) NGP
|
||||
62B7387766BCC94CDAFBE90262B28A0B D NGPC Music Player Demo (2002)(Mackintosh, Ivan)(PD) NGP
|
||||
49206641778C959A0FABD7E1BC8C8BB3 D SFX for NGPC - Example (2002)(Mackintosh, Ivan)(PD) NGP
|
||||
2CE476AE1A4D2AEAF483722E04B5DA80 D SFX for NGPC - Sound Generator (2002)(Mackintosh, Ivan)(PD) NGP
|
||||
E1C39B77E82EB6153FE4E7E065EFB17A D SFX for NGPC - Sound Generator (2002)(Mackintosh, Ivan)(PD)[a] NGP
|
||||
937B58CAAA00E74F94168C1BE4574677 D Squall Demo (200x)(-)(PD) NGP
|
||||
7790D8A67FADD67CBDA1F1DFC6020BA9 D Starfield Array Demo (199x)(Bacon, Roger)(PD) NGP
|
||||
6D50877321ADA9A6AC8DEB6C6EE4A6DE D Timer Test (200x)(Mackintosh, Ivan)(PD) NGP
|
||||
6DE94AF216AD802C16EBC9E0D3ED1177 D TPaint v0.7b (2000)(Carvan, Toby)(PD) NGP
|
||||
6F721219541FF91D91D8F97072BA5FAE D Trail Blazer Demo v0.01 (2004)(Soft'n Fuzzy)(PD) NGP
|
||||
A487651501C4852BC2F135F4012FA2EB D Uridium Demo v0.01 (2004)(Soft'n Fuzzy)(PD) NGP
|
||||
2348194FF53DB51A2BE68E7AC9F6CDE7 D V-Font Demo v0.01 (2004)(Soft'n Fuzzy)(PD) NGP
|
||||
CA3B2B48B9C4192BF02E35944492B6F0 D WAV Player Sample (2001)(Thor)(PD) NGP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Believed Good
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Type: TOSEC
|
||||
;;; Source: SNK Neo-Geo Pocket Color - Educational (TOSEC-v2011-08-13)
|
||||
;;; FileGen: 2018-09-21 15:01:29 (UTC)
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Bad Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Hacks
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Over Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Translated
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Home Brew
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
CA3B2B48B9C4192BF02E35944492B6F0 D WAV Player Sample (2001)(Thor)(PD) NGP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Believed Good
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
84C3FC57DEB3573B742A495753BB2926 Mezase! Kanji Ou (2000)(SNK)(JP) NGP JP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Type: TOSEC
|
||||
;;; Source: SNK Neo-Geo Pocket Color - Firmware (TOSEC-v2011-08-13)
|
||||
;;; FileGen: 2018-09-21 15:01:29 (UTC)
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Bad Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Hacks
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Over Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Translated
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Home Brew
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Believed Good
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
84C3FC57DEB3573B742A495753BB2926 Mezase! Kanji Ou (2000)(SNK)(JP) NGP JP
|
||||
3655AACEBB43A963607D4CF821FC1301 SNK Neo-Geo Pocket Color BIOS (1999)(SNK)(en-ja) NGP en-ja
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Type: TOSEC
|
||||
;;; Source: SNK Neo-Geo Pocket Color - Games (TOSEC-v2014-07-01)
|
||||
;;; FileGen: 2018-09-21 15:01:29 (UTC)
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Bad Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
9384F078B2AE5E7E228C8E821F0AC995 B Cool Cool Jam (2000)(SNK)(JP)[b] NGP JP
|
||||
52B524D61D52CA3BEB1F49FC23F8EBE1 B Delta Warp (2000)(Iosys)(JP)(en-ja)[b] NGP en-ja JP
|
||||
F9D060AA7513B653D0EC792DB47A82B9 B King of Fighters - R-2 (1999)(SNK)(en-ja)[b] NGP en-ja
|
||||
0E675D65ED8C9B55862F2456C141E526 B Koi Koi Mahjong (2000)(Visco)(JP)[b] NGP JP
|
||||
F186A3211CAF8093FCF9CA8F159AB9E3 B Neo Baccarat - Real Casino Series (2000)(Dyna)[b] NGP
|
||||
1AB48CED19F225986D97DCB6CBEA0A90 B Neotris - The Grand Carnage (200x)(Sleipnir)(PD)[b] NGP
|
||||
F691A58746AAF9ACC7768F0CC83125FA B Pac-Man (1999)(Namco - SNK)(en-ja)[b] NGP en-ja
|
||||
81D3C10271AD5B09032DD00321B41AA0 B Picture Puzzle (2000)(Success)[b] NGP
|
||||
50DB2D67493CC92FA382A3F9CB16905C B Pocket Reversi (2000)(Itsui - Success)[b] NGP
|
||||
9281DD6F005F95A4448753D30D41D499 B SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja)[b] NGP en-ja
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Hacks
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
4718B82C49764A409CF87D073DD0D1F0 H Baseball Stars Color (1999)(Saurus - SNK)(en-ja)[h] NGP en-ja
|
||||
3F18507C9AA7E80B9AA75CE9E69DE9ED H Bomberman v1.1 (2004)(Thor)[p] NGP
|
||||
2EE61362219986C0AC5C28A1B09A4A53 H Centipede Rev 20010405 (2001)(Bacon, Roger)[p] NGP
|
||||
F25803A17BE1AC9447D6E7218B55967C H Centipede Rev 20010513 (2001)(Bacon, Roger)[p] NGP
|
||||
836323995F1DBC3C77343581D8B01B82 H Columns (2001)(Thor)[p] NGP
|
||||
0C54B0A268AEA189FF5B0121ED579A0E H Cotton - Fantastic Night Dreams (2000)(Success)(JP)[t] NGP JP
|
||||
753CFDE2666F828485E7B0313F3F8D3C H Cotton - Fantastic Night Dreams (2000)(Success)[t] NGP
|
||||
F2BAB5CD294DC8B11617ACEC2308D266 H Crush Roller (1999)(ADK)(en-ja)[h] NGP en-ja
|
||||
DD3EFB5E3B5EBA1149351E7D3109A6B2 H Dark Arms - Beast Buster 1999 (1999)(SNK)(en-ja)[h] NGP en-ja
|
||||
98DFDF0CD02E7F94FE26CD4CCE380A6B H Fantasy World Dizzy Pocket v0.01 (2004)(Soft'n Fuzzy)[p] NGP
|
||||
16A9E2AFAF3DE1EDD417632A401A5A30 H Fantasy World Dizzy Pocket v0.02 (2004)(Soft'n Fuzzy)[p] NGP
|
||||
B35A43FBD3D4FDCA2BCA41527B93B102 H Joust (2003)(Ahchay, Chris)[p] NGP
|
||||
AC214E773A27547518E1E7A684A9DE72 H Joust v0.0.0.3 (2003)(Ahchay, Chris)[p] NGP
|
||||
C1746276F0981A522CCDE7F1F7D9FA31 H King of Fighters - R-2 (1999)(SNK)(en-ja)[h] NGP en-ja
|
||||
40B0F1C1A23365E825CE333ACDEBD2FD H Magical Drop Pocket (1999)(Data East)[h] NGP
|
||||
E3E443234148C4D557445BDA0FB43B0F H Manic Miner Starring Miner Willy v0.1g (2001)(Dodd, Lindon)[p] NGP
|
||||
53DF22601CC342F855B5CDD5A466C835 H Manic Miner Starring Miner Willy v0.2a (2001)(Dodd, Lindon)[p] NGP
|
||||
B3FC27E28A2042A6923DCE0AD750559A H Manic Miner Starring Miner Willy v1.0 (2001)(Dodd, Lindon)[p] NGP
|
||||
A3D51F1DB107DB6EE9654963A8CC30B4 H Metal Slug - 1st Mission (1999)(SNK)(en-ja)[h] NGP en-ja
|
||||
6CB02F4A62B6E2C957B0D36E2B6F3F7A H Mr. Do! (200x)(Mackintosh, Ivan)[p] NGP
|
||||
2EE3331DD1E34020BBAFDD91DF0CE1BB H Mr. Do! (200x)(Mackintosh, Ivan)[p][a] NGP
|
||||
1222A2ECA8DB9B54F044FA2FE2F50A61 H Neo Turf Masters (1999)(SNK)(en-ja)[h] NGP en-ja
|
||||
9AAB0717D600149825D3BD210BE2FCFA H Pac-Man (1999)(Namco - SNK)(en-ja)[h] NGP en-ja
|
||||
C707CC7B7235D4C56C54855B914ED3C6 H Pac-Man (1999)(Namco - SNK)(en-ja)[t] NGP en-ja
|
||||
E2173AEABE4BEDE0F2E958B4214ADF40 H Pac-Man (200x)(-)[p] NGP
|
||||
69DAF393DE739D6FEF1681C29921ACA3 H Robotron - 2084 (200x)(-)[p] NGP
|
||||
3B0F9A771972620F445CE81210101CC2 H SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja)[t] NGP en-ja
|
||||
65FC1312B1446720653E9DA639FA3186 H Space Invaders (2000)(Bagley, Jim)[p] NGP
|
||||
764722606C44FADEF47510CF756B015F H Space Invaders (2000)(Bagley, Jim)[p][a] NGP
|
||||
C025512CA2D0FB06B0A64D7B7E55E819 H Super 12 in 1 (200x)(-)[p] NGP
|
||||
74C0561F1D0E44AFE8AAB2C2E4789969 H Super Real Mahjong - Premium Collection (2001)(Seta - SNK)(JP)[t] NGP JP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Over Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Translated
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
9B09713FB637CE2B8BE59E80455106EC T Dark Arms - Beast Buster 1999 (1999)(SNK)(en-ja)[tr zh] NGP en-ja
|
||||
7716ED81DFD489D80FD9F47CFD320E1C T Evolution - Eternal Dungeons (2000)(ESP - Sega)[tr fr] NGP
|
||||
83E89DCB433A76317D9AC9D2010CF6F3 T Faselei! (1999)(Sacnoth)[tr fr] NGP
|
||||
BA8837417C526B531F67B8137339790F T Last Blade, The - Beyond the Destiny (2000)(SNK)[tr pt] NGP
|
||||
A50F9197B9D48C0F1C6578A8640E3B2D T Metal Slug - 1st Mission (1999)(SNK)(en-ja)[tr zh] NGP en-ja
|
||||
83C8CA84D055A63A6B8EC25E4546228E T Metal Slug - 1st Mission (1999)(SNK)(en-ja)[tr zh][a] NGP en-ja
|
||||
EBC6A4EE612C84D5C405B6837D794DEA T Pac-Man (1999)(Namco - SNK)(en-ja)[tr fr] NGP en-ja
|
||||
847D895DF20E5BEE378FF1BDFEF97774 T Pac-Man (1999)(Namco - SNK)(en-ja)[tr pt] NGP en-ja
|
||||
9CB0AAF4104E370EFBC8B55EE04733DC T Rockman - Battle & Fighters (2000)(Capcom)(JP)[tr en] NGP JP
|
||||
0F68E7A0A2A598A2F754D16ED2F35E56 T Rockman - Battle & Fighters (2000)(Capcom)(JP)[tr en][a] NGP JP
|
||||
587FBF05405000E4DAD9FF462B2754CD T Rockman - Battle & Fighters (2000)(Capcom)(JP)[tr en][a2] NGP JP
|
||||
E7036F0BE59B21D5A8424D2514DF819A T SNK vs. Capcom - Card Fighters Clash 2 - Expand Edition (2001)(Capcom - Moto Kikaku - SNK)(JP)[tr en] NGP JP
|
||||
B2628DA96BF4F278B13D3C5AFD703AC7 T SNK vs. Capcom - Card Fighters Clash 2 - Expand Edition (2001)(Capcom - Moto Kikaku - SNK)(JP)[tr en][a] NGP JP
|
||||
E324C1CEB54080AE5BE1065B91243331 T SNK vs. Capcom - Card Fighters Clash 2 - Expand Edition (2001)(Capcom - Moto Kikaku - SNK)(JP)[tr en][a2] NGP JP
|
||||
F37A54143A1E6A3B136C4D872AC84D97 T SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja)[tr pt] NGP en-ja
|
||||
AF69AF404FE05A57DB880C8108C8A70D T SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja)[tr pt][a] NGP en-ja
|
||||
3B74AD1F1CB1AE169FFC83A19680CB72 T SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja)[tr pt][a2] NGP en-ja
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Home Brew
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
6BFB4978B7F30F791C3A5AB9260BE4CC D Adventures of Gus and Rob, The v0.1 (2002)(McMurray, Mickey)(PD) NGP
|
||||
84BBE4BF96C34009A337E4F789AA04BA D Adventures of Gus and Rob, The v0.2 (2002)(McMurray, Mickey)(PD) NGP
|
||||
26CC1C9143A4257FE3916B2CB96E7E9A D Another Day in Hell (2005)(Iceman - Thor)(PD) NGP
|
||||
D94EA11F58B307D39EBAFD7CE661B5E1 D Another Day in Hell v1.1 (2005)(Iceman - Thor)(PD) NGP
|
||||
6FBB210E14B637B3C2A763786B9B418B D Barbarian - The Ultimate Warrior v1.1 (200x)(Julien, Loic)(PD) NGP
|
||||
C886DC142FABE7D63D8E6ADF91C4B7FE D Barbarian Invaders (2002)(Ahchay, Chris)(PD) NGP
|
||||
65B7DB5D7F81639448BB266336437686 D Barbarian Invaders v1.0 (2002)(Ahchay, Chris)(PD) NGP
|
||||
0B40153771B91A8DFC11EB6F082E5CF6 D Barbarian Invaders v1.01 (2002)(Ahchay, Chris)(PD) NGP
|
||||
E2B6D75C63B17E18CD02411F6CE1D6E4 D Blocks (2001)(Mackintosh, Ivan)(PD) NGP
|
||||
3DC32478872E274ECF065F7DC6D13998 D DDR Neo-Gen (200x)(Xenophear2)(PD) NGP
|
||||
0CD4AA9A72ECECF14508DE6AE6725ED1 D Diamond Run! (2001)(Mackintosh, Ivan)(PD) NGP
|
||||
4D66A6BB96AFB16A1402D6C6FE4F4B24 D Dodger (2002)(Mackintosh, Ivan)(PD) NGP
|
||||
B22802981DC9B6A402A9F57130A531B4 D DynaMate v1.0 (2003)(Thor)(PD) NGP
|
||||
E26A7EDE0E232098784884EC9D95C8B3 D DynaMate v1.0 (2003)(Thor)(PD)[a] NGP
|
||||
7B5687C944B3EAAA829670A48B166666 D DynaMate v1.1 (2003)(Thor)(PD) NGP
|
||||
CD126CF6C3A32452C835628ED5A671F8 D Flavor's NGPC Multi-ROM Rev 20011210 (2001)(Flavor)(PD) NGP
|
||||
8B429D17BBEB4C635005A7FF19EAA647 D Flavor's NGPC Multi-ROM Rev 20011212 (2001)(Flavor)(PD) NGP
|
||||
083F05264D8D40E71D80F664F00508B9 D Flavor's NGPC Multi-ROM Rev 20011213 (2001)(Flavor)(PD) NGP
|
||||
79ECFCDF46FD8B921B31323A03F7A422 D Flight of Ares (2005)(Soldan, Jeffrey)(PD) NGP
|
||||
3E57B1E81764B4898D7423CE0D3E1AF1 D Flight of Ares (2005)(Soldan, Jeffrey)(PD)[a] NGP
|
||||
9E0A01FD386D00787E4969D71FBC5F64 D Fuztris v0.01 (2004)(Soft'n Fuzzy)(PD) NGP
|
||||
B6BE2022E71E2606EF50303FAF3B4035 D Game and Watch (2004)(Torlus)(PD) NGP
|
||||
66AB5AA69BB347D6204EFDD47FA9FD8A D Invader (2000)(Slanina, Tomasz)(PD) NGP
|
||||
BF67C1E0F8C2CE8EBBEF84AB966FAB1B D Jim Bagley's NGPC Game Pack (200x)(Bagley, Jim)(PD) NGP
|
||||
62D8A2C2DBCD9C40F2F1D19326E85C08 D Jumpy! (2001)(Monkey Heeded Software)(PD) NGP
|
||||
597D47391841E839668788C4BEFAD31C D Jumpy! Rev 20010418 (2001)(Monkey Heeded Software)(PD) NGP
|
||||
7C6F9A095C45A54E9AC6D5FECB86F60B D Jumpy! Rev 20010606 (2001)(Monkey Heeded Software)(PD) NGP
|
||||
5FFFA7B2FD395B18A1BC72AE3BA5DFEC D Juno First (2002)(Ahchay, Chris)(PD) NGP
|
||||
7932F926BAFBB2712B87C7E08586974F D Lights! v1.0 (2000)(Bacon, Roger)(PD) NGP
|
||||
1715311ACD6BF2717A3B1BF70321D195 D Lights! v1.1 (2000)(Bacon, Roger)(PD) NGP
|
||||
6141662866A05C717F9B2DC27CD5DD32 D Maze v1.00 (2000)(Siebold, Jeff)(PD) NGP
|
||||
211B92ACE38947A631B1F2BFC7CFB19D D Maze v1.01 (2000)(Siebold, Jeff)(PD) NGP
|
||||
F95CA3979F40D8EC80820F8BB968044A D Maze v1.02 (2000)(Siebold, Jeff)(PD) NGP
|
||||
040527DF3AF563BE5D2E9AD470685E5F D Maze v1.04 (2000)(Siebold, Jeff)(PD) NGP
|
||||
AF9693BBC603EA2BE0EF2D096AD36AF3 D Maze v1.05 (2000)(Siebold, Jeff)(PD) NGP
|
||||
6594D32D6774B616949A31641799472A D Mine v1.0 (2000)(Mackintosh, Ivan)(PD) NGP
|
||||
D9000ABC50DEBB365DE090CBF7982E86 D Multi Game Menu v1.0 (2000)(Bagley, Jim - Mackintosh, Ivan)(PD) NGP
|
||||
A32A0CC3298DCB4B3C383F4E06B8D153 D Multi Game Menu v1.1 (2000)(Bagley, Jim - Mackintosh, Ivan)(PD) NGP
|
||||
0F801FDDD4F475CCB5FE358D87404EB0 D Multi Game Menu v1.2 (2000)(Bagley, Jim - Mackintosh, Ivan)(PD) NGP
|
||||
E0960E121D5E5D3D6E693AF1C868232E D Multi Game Menu v1.3 (2000)(Bagley, Jim - Mackintosh, Ivan)(PD) NGP
|
||||
39F7CD304EC094D9959CECC091D95A8D D Multi Game Menu v1.4 (2000)(Bagley, Jim - Mackintosh, Ivan)(PD) NGP
|
||||
162CD72DDA98EF33EAA3BEA929D28A70 D Multi Game Menu v1.5 (2000)(Bagley, Jim - Mackintosh, Ivan)(PD) NGP
|
||||
DB78D770AB7318ECDE454B1661F337E4 D Neo Fantasy (2003)(Davis, Darek J.)(PD) NGP
|
||||
1A08FC6146BA1A585AB75DE6FF89E701 D Neo Yahtzee v0.1 (200x)(Davis, Darek J.)(PD) NGP
|
||||
F84216B73FC4F37361F1407A3EB52004 D NeoDaleks! v2.0 (2003)(Dodgson, Harry)(PD) NGP
|
||||
4C860D3685C7DEA2E03F99197194A803 D Neotris - The Grand Carnage (200x)(Sleipnir)(PD) NGP
|
||||
A2BD85714F35D0EA7BF44BB2D9804721 D Neotris (200x)(Julien, Loic)(PD) NGP
|
||||
3F294D86922CA280C23CA3F4E71E55DA D NGPC War (200x)(-)(PD) NGP
|
||||
0909CAA7F52FD9A0D3FB86FD9C8E3EE9 D Olaf (2004)(Julien, Loic)(PD) NGP
|
||||
A8D191BE369A44EB397791165524B10E D Plink! v0.00 (2004)(Soft'n Fuzzy)(PD) NGP
|
||||
E8B27984E7F8C837737B99EF8D78E4CB D Plink! v0.01 (2004)(Soft'n Fuzzy)(PD) NGP
|
||||
C75992E48706FDB01464B4F40FA091B1 D PocketRace v0.02 (2002)(Thor)(PD) NGP
|
||||
BCD9229617A59CEC02032247288BA5F5 D PocketRace v0.03 (2002)(Thor)(PD) NGP
|
||||
2B8DCC3B9C0482FC04A025D13F548F20 D PocketRace v0.04 (2002)(Thor)(PD) NGP
|
||||
A16A1AE91BC3D2BD6304BBBD84A0E937 D Pocketron v1.00 (2004)(Torlus)(PD) NGP
|
||||
6A42CCA25811FDCA67E0E2809525B07F D Puzzle Gems v1.0 (2003)(Thor)(PD) NGP
|
||||
04A35A8F274479A061B88BDEEE8EE6D4 D Puzzle Gems v1.1 (2003)(Thor)(PD) NGP
|
||||
9354D53FDABDBEA54CA6FF79D24E5E64 D Same Game (200x)(-)(PD) NGP
|
||||
7D7B2950FD227E6017BB4B3419A3A94D D Shufflepuck Cafe Beta 1 (2002)(Julien, Loic)(PD) NGP
|
||||
A000799025D69D2A4EED565458FC2743 D Shufflepuck Cafe Beta 2 (2002)(Julien, Loic)(PD) NGP
|
||||
D580017E14AE67A2E8DEA9CD60BC8D3F D Snake v1.0 (2000)(Mackintosh, Ivan)(PD) NGP
|
||||
78A92F6DE1D5E40B6F2797FBBC5B90D3 D Snake v1.1 (2000)(Mackintosh, Ivan)(PD) NGP
|
||||
6FED588AFDAC72A0EBA3947BDC5CBAEF D Snake v1.2 (2000)(Mackintosh, Ivan)(PD) NGP
|
||||
62029CF9C8AF82F4DD13BD0243693D32 D Snake v1.2 (2000)(Mackintosh, Ivan)(PD)[a] NGP
|
||||
29C6C8739C28CD92DB51A9FAE1242850 D SOD Chess v1.0.2 (2002)(Thor)(PD) NGP
|
||||
A7E02990870E99BDE6B3DDDC5EF17B86 D SOD Chess v1.1.0 (2002)(Thor)(PD) NGP
|
||||
007E83EAEFB103F8349788A2E54A42D0 D Solitaire v1.0 (2000)(Mackintosh, Ivan)(PD) NGP
|
||||
EDDDB0B8C6739A380DE83D9CBD3CEDB3 D Sykowar (2001)(Kasprzak, Mike)(PD) NGP
|
||||
5B878E8F8BAA1F13DC8A86942D282FB7 D Thieves (2000)(Mackintosh, Ivan)(PD) NGP
|
||||
5E9603FFFFEAAD87C91BF171AA6C833B D Thieves v1.0 (2000)(Mackintosh, Ivan)(PD) NGP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Believed Good
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
F2F296F4BE215E826FAC519FBA96609B Baseball Stars Color (1999)(Saurus - SNK)(en-ja) NGP en-ja
|
||||
DF4068F33C6BEE0E12CB394BFD6CDEDE Baseball Stars Color (1999)(Saurus - SNK)(en-ja)[a] NGP en-ja
|
||||
F384FF31B5B27903383E3C597654A9D5 Big Bang Pro Wrestling (2000)(SNK)(JP)(en) NGP en JP
|
||||
95BD72B9E9081CB8AD8FC32BF7FF37B7 Big Bang Pro Wrestling (2000)(SNK)(JP)(en)(beta) NGP en JP
|
||||
0F99AF59F2B51FA4CE8C59278F906E38 Bikkuriman 2000 Viva! (2000)(Sega)(JP) NGP JP
|
||||
F4BBE8CF42074B75C8A911BF7B0562D5 Biomotor Unitron (1999)(Yumekobo) NGP
|
||||
570086C0C471392E8058A913D5C7AE21 Biomotor Unitron (1999)(Yumekobo)(JP)(en-ja) NGP en-ja JP
|
||||
A199E0E2E95C460469AF927606117A21 Biomotor Unitron (1999)(Yumekobo)[a] NGP
|
||||
1AFB182567C6030C6D68F257E6245184 Bust-A-Move Pocket (1999)(SNK - Taito)(US) NGP US
|
||||
DC8FA0CEDEF94FE22A219F2EECA43DC0 Cool Boarders Pocket (2000)(UEP Systems)(en-ja) NGP en-ja
|
||||
7DB02A23DFD97522CB23526E19CBEDA5 Cool Boarders Pocket (2000)(UEP Systems)(en-ja)[a] NGP en-ja
|
||||
F367E3BD61C308966A4815200FAFB6A6 Cool Cool Jam (2000)(SNK)(JP) NGP JP
|
||||
C4BFC6B4FFFB52270A868FEE37347A8E Cool Cool Jam (2000)(SNK)(JP)[b2] NGP JP
|
||||
76178477544C1004F0FEE31D0729CBBF Cool Cool Jam (2000)(SNK)(JP)[b3] NGP JP
|
||||
58CD4D612378790AB1AA7E96367C3093 Cool Cool Jam (2000)(SNK)(JP)[b4] NGP JP
|
||||
5A2A155706A201A1C0227C7FE671256F Cotton - Fantastic Night Dreams (2000)(Success) NGP
|
||||
F6C0C5D77EAE342FCDD6CFFABF783226 Cotton - Fantastic Night Dreams (2000)(Success)(JP) NGP JP
|
||||
4A3CF02B131C4A23D0BCEC6B0D49C137 Crush Roller (1999)(ADK)(en-ja) NGP en-ja
|
||||
277FF030C2092B1B88E70197A78A1423 Crush Roller (1999)(ADK)(en-ja)[a] NGP en-ja
|
||||
FE0E58D34D650AE5174CA03D3EFC67B0 Dark Arms - Beast Buster 1999 (1999)(SNK)(en-ja) NGP en-ja
|
||||
EA4BE14C1A85AA39CEA8CFD5B1C56D92 Dark Arms - Beast Buster 1999 (1999)(SNK)(en-ja)[a] NGP en-ja
|
||||
D4651757A3DB5A8E5A5A64C337C6002F Delta Warp (2000)(Iosys)(JP)(en-ja) NGP en-ja JP
|
||||
6FB3CF56716ACEF613140B1F2143B778 Delta Warp (2000)(Iosys)(JP)(en-ja)[b2] NGP en-ja JP
|
||||
26D0557D8A465AA8F430D5E4D94C679A Densetsu no Ogre Battle Gaiden - Zenobia no Ouji (2000)(Quest - SNK)(JP) NGP JP
|
||||
C79DD020410D1D80C2709CB6AF4CF64A Densha de GO! 2 (1999)(Taito - SNK)(JP) NGP JP
|
||||
74121A4140D9C32C08AD812734F6904C Densha de GO! 2 (1999)(Taito - SNK)(JP)[a] NGP JP
|
||||
C148B30103DE704EEED63DFE7A7D6100 Dive Alert - Becky's Version (1999)(Sacnoth) NGP
|
||||
B149CB1F866942ECA70DF78BB25351CF Dive Alert - Burn Hen (1999)(Sacnoth)(JP) NGP JP
|
||||
0C38B2D5D1A2BE15D6C15C6B16B7BC98 Dive Alert - Matt's Version (1999)(Sacnoth) NGP
|
||||
B26C96EE636795787CF58E2D5DB56C4A Dive Alert - Rebecca Hen (1999)(Sacnoth)(JP) NGP JP
|
||||
66885D788F8474295FCCBEBA107F2421 Dokodemo Mahjong (1999)(ADK)(JP) NGP JP
|
||||
C84F675A617DF14B1A1BF06F02BE773D Dynamite Slugger (2000)(ADK)(en-ja) NGP en-ja
|
||||
9C9C2D533BE340600EF9F92ED1253DD9 Evolution - Eternal Dungeons (2000)(ESP - Sega) NGP
|
||||
F580078164DC2B8DFFB9F38EEEC1035D Faselei! (1999)(Sacnoth) NGP
|
||||
08B5385BD6D1FDCFED39BDB411FABD85 Faselei! (1999)(Sacnoth)(JP) NGP JP
|
||||
690A3397F20E31B2C4A2833F51670245 Fatal Fury - F-Contact (1999)(SNK) NGP
|
||||
99ED127490F9D5D6482D20CC6ABC8056 Ganbare Neo Poke Kun (2000)(SNK)(JP) NGP JP
|
||||
4BDA8B3669C5BBD72266853940D626CB Infinity Cure (2000)(KID)(JP) NGP JP
|
||||
9827FE3F592BD73CE1603E516C5E0532 Kikou Seiki Unitron - Sono Tsuide. Hikari Umareru Chi Yori. (1999)(Yumekobo)(JP) NGP JP
|
||||
D5C583A11012494C2ED738B2A2C5AB53 King of Fighters - R-2 (1999)(SNK)(en-ja) NGP en-ja
|
||||
B361ED78F6126F94179DC69FE4C58781 King of Fighters - R-2 (1999)(SNK)(en-ja)[a] NGP en-ja
|
||||
91F6C58D37985CECA6CD4BF5D12FD6F0 King of Fighters - R-2 (1999)(SNK)(en-ja)[a2] NGP en-ja
|
||||
D0354F0796904C599C1062009C7BDA79 King of Fighters - R-2 (1999)(SNK)(en-ja)[a3] NGP en-ja
|
||||
D821619DA6921E8C325E26E0D76D921E King of Fighters - R-2 (1999)(SNK)(en-ja)[a4] NGP en-ja
|
||||
FB5A0BDDC69556C29D9408C559DFC1CE King of Fighters - R-2 (1999)(SNK)(en-ja)[a5] NGP en-ja
|
||||
362E9C04EC255225EEB0A9DEE8FCAC1B King of Fighters, The - Battle de Paradise (2000)(SNK)(JP) NGP JP
|
||||
05AB35ED7BE398072CAE34783AA6751A Koi Koi Mahjong (2000)(Visco)(JP) NGP JP
|
||||
83FA4CB3C629AA57C12F9CEC52C5A53D Last Blade, The - Beyond the Destiny (2000)(SNK) NGP
|
||||
2C7076BD626B8360F8D3834384323F30 Last Blade, The - Beyond the Destiny (2000)(SNK)(JP) NGP JP
|
||||
E05AEA9E985797F284C1980A38951EF6 Last Blade, The - Beyond the Destiny (2000)(SNK)(JP)[a] NGP JP
|
||||
4F0C3016893B29B4E83E175FC824CF38 Last Blade, The - Beyond the Destiny (2000)(SNK)(JP)[a2] NGP JP
|
||||
0F120E95CADD338306781B180A448F59 Magical Drop Pocket (1999)(Data East) NGP
|
||||
509DF6942015F3D774B077589D6A1703 Magical Drop Pocket (1999)(Data East)(JP) NGP JP
|
||||
A874C1D95BADE2143C0712D22DDBD452 Master of Syougi Color (1999)(ADK)(JP) NGP JP
|
||||
54052A69D1E978B74509A884F04EB1E1 Memories Off - Pure (2000)(KID)(JP) NGP JP
|
||||
4D3EFEF436C67D4F4E031951B97D64C8 Metal Slug - 1st Mission (1999)(SNK)(en-ja) NGP en-ja
|
||||
A7DFEE9950D0679CABB4EE6DFC530FB6 Metal Slug - 1st Mission (1999)(SNK)(en-ja)[a] NGP en-ja
|
||||
6DD84BD8A35C16A4860F90289A5247C8 Metal Slug - 1st Mission (1999)(SNK)(en-ja)[a2] NGP en-ja
|
||||
A58F7C41CD9E6C96CD5B4B477F022570 Metal Slug - 2nd Mission (2000)(SNK)(en-ja) NGP en-ja
|
||||
A35551F58BF5F8174A901B6F6151BB3F Metal Slug - 2nd Mission (2000)(SNK)(en-ja)[a] NGP en-ja
|
||||
89B605A1FC6DB5855B432CCC62F9E6E3 Mizuki Shigeru no Youkai Shashinkan (1999)(SNK)(JP) NGP JP
|
||||
0865F375EAD2FEBBC86AB3FB9274B9B7 Neo 21 - Real Casino Series (1999)(Dyna) NGP
|
||||
312E407CEFA92237C1B0B9E201202AD5 Neo 21 - Real Casino Series (1999)(Dyna)[a] NGP
|
||||
FB1D996281281A4EB7E61490613AA374 Neo 21 - Real Casino Series (1999)(Dyna)[a2] NGP
|
||||
A94E51EBC37B9B2A9DFE9B97AB992942 Neo 21 - Real Casino Series (1999)(Dyna)[a3] NGP
|
||||
1018F765F460588D975C9B4E9385A547 Neo Baccarat - Real Casino Series (2000)(Dyna) NGP
|
||||
7992904F8C4040AEE0CDE040AFBF757D Neo Cherry Master Color - Real Casino Series (1999)(Dyna)(en-ja) NGP en-ja
|
||||
279B9BF6EC9B7C473D310CFD6E3CEE4D Neo Cherry Master Color - Real Casino Series (1999)(Dyna)(en-ja)[a] NGP en-ja
|
||||
CD5C1EB7CB2E83D6B6D64918574C8CDB Neo Derby Champ Daiyosou (1999)(Dyna)(JP) NGP JP
|
||||
C0CED1D22506E46C4667BC0E926D921E Neo Dragon's Wild - Real Casino Series Rev 11 (1999)(Dyna)(en-ja) NGP en-ja
|
||||
F0FDD57F4D1A1470B826082586EAD479 Neo Dragon's Wild - Real Casino Series Rev 13 (1999)(Dyna)(en-ja) NGP en-ja
|
||||
D5DE99D4E5F6B76DF8B9201428BBBBE8 Neo Dragon's Wild - Real Casino Series Rev 13 (1999)(Dyna)(en-ja)[a] NGP en-ja
|
||||
CEF050E2591435A5C41FF851AFA55A82 Neo Mystery Bonus - Real Casino Series (1999)(Dyna)(en-ja) NGP en-ja
|
||||
2B0E889765FA5321BBD8B2B5F04323D3 Neo Mystery Bonus - Real Casino Series (1999)(Dyna)(en-ja)[a] NGP en-ja
|
||||
93D3810AE176507EBAAE782A612C930B Neo Poke Pro Yakyuu (1999)(ADK)(JP) NGP JP
|
||||
E055837BB0E227C1DDC3E68B0AA89AE9 Neo Turf Masters (1999)(SNK)(en-ja) NGP en-ja
|
||||
60472E6721966022FC1258D1186DCF9D Neo Turf Masters (1999)(SNK)(en-ja)[a] NGP en-ja
|
||||
0758EA1F356982807B96E785934C7343 Neo Turf Masters (1999)(SNK)(en-ja)[h2] NGP en-ja
|
||||
A6C3369F28558E4A9719DC54D50BE713 NeoGeo Cup '98 Plus (1999)(SNK)(en-ja) NGP en-ja
|
||||
9C73091689138179323FF48B279F8B1E Nige-ron-pa (2000)(Dennou Eizou)(JP) NGP JP
|
||||
9BF46157BE75F63C4AD6529FECB8E29D Oekaki Pazuru (2000)(Success)(JP) NGP JP
|
||||
299761888BB026D76B698B9745BD8D27 Pachinko Hissyou Guide Pocket Parlor (1999)(Sankyo)(JP) NGP JP
|
||||
8EFD3C40988452782E55548F7369A050 Pachisuro Aruze Oogkoku Pocket - Adventure of Porcano - Porcano 2 v1.01 (2000)(Aruze)(JP) NGP JP
|
||||
1676F66C906188D9DCA7015FB5AADA0E Pachisuro Aruze Oogkoku Pocket - Azteca v1.03 (2000)(Aruze)(JP) NGP JP
|
||||
1CBB6692DB2357F80691BC7462ED4EAE Pachisuro Aruze Oogkoku Pocket - Dekahel (2000)(Aruze)(JP) NGP JP
|
||||
0DBEBA28E62ECE2E9B08C62890650FF5 Pachisuro Aruze Oogkoku Pocket - e-Cup (2001)(Aruze)(JP) NGP JP
|
||||
FEB55755AAEEEBACF8078ADA5A93312F Pachisuro Aruze Oogkoku Pocket - e-Cup (2001)(Aruze)(JP)[a] NGP JP
|
||||
888A2BBDE70D6F67B1C776ABC12C5AF8 Pachisuro Aruze Oogkoku Pocket - Hanabi v1.02 (1999)(Aruze)(JP) NGP JP
|
||||
B3EDF9AD99CBD433C8E62836F32092EC Pachisuro Aruze Oogkoku Pocket - Hanabi v1.04 (1999)(Aruze)(JP) NGP JP
|
||||
A6469A984EA1DA6349F1F94A2F50FABC Pachisuro Aruze Oogkoku Pocket - Oelsol (2000)(Aruze)(JP) NGP JP
|
||||
3C340FE221635BA52AAE8ADCC8E43758 Pachisuro Aruze Oogkoku Pocket - Oohanabi (2000)(Aruze)(JP) NGP JP
|
||||
BC2554198023A9A2700F966670B1F658 Pachisuro Aruze Oogkoku Pocket - Ward of Lights v1.02 (2000)(Aruze)(JP) NGP JP
|
||||
AC5AD76D5E6614AE576C2C837F0FAB1D Pac-Man (1999)(Namco - SNK)(en-ja) NGP en-ja
|
||||
7ED48F7D8571E5643399F7CD106D591F Pac-Man (1999)(Namco - SNK)(en-ja)[a] NGP en-ja
|
||||
1E92F4A6308044EE8517D33C8F610D87 Pac-Man (1999)(Namco - SNK)(en-ja)[a2] NGP en-ja
|
||||
CB23E06313636DCA7C73673DFB6CCC87 Pac-Man (1999)(Namco - SNK)(en-ja)[b2] NGP en-ja
|
||||
289382EF82AE8134471A47257C8F0085 Pac-Man (1999)(Namco - SNK)(en-ja)[b3] NGP en-ja
|
||||
507FF80E7FB79AD870AC80B28EC6A41C Pac-Man (1999)(Namco - SNK)(en-ja)[b4] NGP en-ja
|
||||
C86E826C8413C0DC3AD19A63BA6D4D97 Party Mail (1999)(ADK)(JP) NGP JP
|
||||
5A67A5BB46FD9AD81E612F061BB96C7B Picture Puzzle (2000)(Success) NGP
|
||||
62347264D918559A95034BE7CEA8756D Pocket Love - If (1999)(KID)(JP) NGP JP
|
||||
C1427EF852912D672BE49622DEAC5EC2 Pocket Reversi (2000)(Itsui - Success)(JP) NGP JP
|
||||
6F8ED0E3919091E3DF45B6DEED8445E7 Pocket Reversi (2000)(Itsui - Success)[b2] NGP
|
||||
C7BFC59B4CB593409541D4CCFFE083B4 Pocket Tennis Color - Pocket Sports Series (1999)(Yumekobo)(en-ja) NGP en-ja
|
||||
7FF625DC216783B034B011351C98255F Puyo Puyo 2 Rev 5 (1999)(Sega)(en-ja) NGP en-ja
|
||||
D40DC57B9CC3A30A2400F8CFD8724578 Puyo Puyo 2 Rev 6 (1999)(Sega)(en-ja) NGP en-ja
|
||||
94537FD169751658F3A50A3B7A80CEF2 Puzzle Bobble Mini Rev 10 (1999)(SNK - Taito)(en-ja) NGP en-ja
|
||||
75FFD166FDC777B58F8280652988F441 Puzzle Bobble Mini Rev 9 (1999)(SNK - Taito)(en-ja) NGP en-ja
|
||||
D69F1C4B9A015666184580737C6B2024 Puzzle Bobble Mini Rev 9 (1999)(SNK - Taito)(en-ja)[a] NGP en-ja
|
||||
AA331C8E2948E6273CAB97B329751A1F Puzzle Link (1999)(Yumekobo) NGP
|
||||
7108CC38B0C5E14EEC247DB0F2F3B84C Puzzle Link 2 (1999)(Yumekobo) NGP
|
||||
EE08F16103879FF8ADB5315E79D31FA7 Puzzle Link 2 (1999)(Yumekobo)[a] NGP
|
||||
77C52A2D81F33014BF79051E8AB54CC7 Puzzle Link 2 (1999)(Yumekobo)[a2] NGP
|
||||
0CB027CE1B9CB9BB4207FB882F896494 Renketsu Puzzle Tsunagete Pon! 2 (1999)(Yumekobo)(JP) NGP JP
|
||||
960C65EF05BAF56FD3F68ADC07A6433E Renketsu Puzzle Tsunagete Pon! Color (1999)(Yumekobo)(JP) NGP JP
|
||||
C71AF75C76778B8A2D32A0C6F170736E Rockman - Battle & Fighters (2000)(Capcom)(JP) NGP JP
|
||||
8D6A36ACD3B171970D87D2FCA6796A4A Samurai Shodown! 2 - Pocket Fighting Series (1999)(SNK)(en-ja) NGP en-ja
|
||||
3E46575450756953D755C23DB12C4DD0 Samurai Shodown! 2 - Pocket Fighting Series (1999)(SNK)(en-ja)[a] NGP en-ja
|
||||
7C262A2C6390445170D0BF83290C939C Shanghai Mini (1999)(Activision)(en-ja) NGP en-ja
|
||||
3AB7276071D35CD11F316B6B936CEE38 Shinki Sekai Evolution - Hateshinai Dungeon (2000)(ESP - Sega)(JP) NGP JP
|
||||
08922D2BDC6C80D56DDF50836CCAD77C SNK Gals Fighters (2000)(SNK) NGP
|
||||
3540951DFDBA4697EE5F9D8B9356C18B SNK Gals Fighters (2000)(SNK)(JP) NGP JP
|
||||
0E55A9FF10517BE86FBE5625822F53F6 SNK Gals Fighters (2000)(SNK)[a] NGP
|
||||
E67EDDAF0CF0021A776FC937E0F35FB0 SNK Gals Fighters (2000)(SNK)[a2] NGP
|
||||
3655AACEBB43A963607D4CF821FC1301 SNK Neo-Geo Pocket Color BIOS (1999)(SNK)(en-ja) NGP en-ja
|
||||
3BCC1C9EF59A75E3C2E6B49BE6B84BAB SNK vs. Capcom - Card Fighters Clash - Capcom Version (1999)(Capcom - Moto Kikaku - SNK) NGP
|
||||
74E8381E94565E21A3197449BB4423BF SNK vs. Capcom - Card Fighters Clash - SNK Version (1999)(Capcom - Moto Kikaku - SNK) NGP
|
||||
E82381B08DA83F5E63F08F9315C75A7E SNK vs. Capcom - Card Fighters Clash - SNK Version (1999)(Capcom - Moto Kikaku - SNK)[a] NGP
|
||||
EBC0E8C33D1A5E5BE5457AD988233FEB SNK vs. Capcom - Card Fighters Clash 2 - Expand Edition (2001)(Capcom - Moto Kikaku - SNK)(JP) NGP JP
|
||||
E99AC2011126B8B617E77CAFF032D744 SNK vs. Capcom - Gekitotsu Card Fighters - Capcom Version (1999)(Capcom - Moto Kikaku - SNK)(JP) NGP JP
|
||||
2AB2AA51B24E42AFEF09E83BDA7A7F50 SNK vs. Capcom - Gekitotsu Card Fighters - Capcom Version (1999)(Capcom - Moto Kikaku - SNK)(JP)[a] NGP JP
|
||||
6CF60C8E14D7CAACCA38FF13963F5A32 SNK vs. Capcom - Gekitotsu Card Fighters - SNK Version (1999)(Capcom - Moto Kikaku - SNK)(JP) NGP JP
|
||||
DFEA3AD9AF4A631DE6F97D86589B971E SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja) NGP en-ja
|
||||
AC24014B700F4B4F24ABA5C0A135D710 SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja)[a] NGP en-ja
|
||||
3EA6441FBC86C3E1241AA18C320EA4D9 SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja)[a2] NGP en-ja
|
||||
D9846AB6F18B9CB90744079B0711C943 SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja)[a3] NGP en-ja
|
||||
2159054C7C9AC796FD2940D2BDF0289A SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja)[a4] NGP en-ja
|
||||
EAC8BC5AF15C1967F1FB808EBA8C00F5 SNK vs. Capcom - The Match of the Millennium (1999)(Capcom - SNK)(en-ja)[t2] NGP en-ja
|
||||
B8A899AE2B0F1DFA0DB5417DE745A51E Sonic the Hedgehog - Pocket Adventure (1999)(Sega) NGP
|
||||
8B12FEC8E96DAD41380AB419A216AD08 Soreike!! Hanafuda Doujou (1999)(Dyna)(JP) NGP JP
|
||||
07873A332EF8AC5CB5177EE3C304FF2B Super Real Mahjong - Premium Collection (2001)(Seta - SNK)(JP) NGP JP
|
||||
E11C4B596886CC74D4116FAB51131D48 Super Real Mahjong - Premium Collection (2001)(Seta - SNK)(JP)[t2] NGP JP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Type: TOSEC
|
||||
;;; Source: SNK Neo-Geo Pocket Color - Multimedia (TOSEC-v2011-08-13)
|
||||
;;; FileGen: 2018-09-21 15:01:29 (UTC)
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Bad Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Hacks
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Over Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Translated
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Home Brew
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
F09D410517031B43EE4367420EBA320C D Hicolor Slideshow 1 (2001)(Thor)(PD) NGP
|
||||
EBF374471A2CFE940CB0299C6C74E7D7 D Hicolor Slideshow 2 (2001)(Thor)(PD) NGP
|
||||
C0A3AFC339BD950CB9D1C0C1D0D7AB58 D Hicolor Slideshow 3 (2003)(Thor)(PD) NGP
|
||||
B53EA5340F835BDA085C659977F17DDA D Hicolor Slideshow 3 (2003)(Thor)(PD)[a] NGP
|
||||
B4C2835629BF936ED7DCF3B8B694393D D Slideshow (2003)(Thor)(PD) NGP
|
||||
53569E9B28197246922B2CDC0792992C D Slideshow Rev 20030117 (2003)(Thor)(PD) NGP
|
||||
E14A9B1035993A1428E1DBB27C068039 D Slideshow Rev 20030123 (2003)(Thor)(PD) NGP
|
||||
3E84CBC943FFA156F46D3CA84BC89C9A D Slideshow Rev 20030320 (2003)(Thor)(PD) NGP
|
||||
5E9603FFFFEAAD87C91BF171AA6C833B D Thieves v1.0 (2000)(Mackintosh, Ivan)(PD) NGP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Believed Good
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Type: TOSEC
|
||||
;;; Source: SNK Neo-Geo Pocket Color - Samplers (TOSEC-v2011-08-13)
|
||||
;;; FileGen: 2018-09-21 15:01:29 (UTC)
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Bad Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Hacks
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Over Dumps
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Translated
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Home Brew
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
3E84CBC943FFA156F46D3CA84BC89C9A D Slideshow Rev 20030320 (2003)(Thor)(PD) NGP
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
;;; Believed Good
|
||||
;;;;;;;;;;--------------------------------------------------;;;;;;;;;;
|
||||
4E9E47682CDB5BC314131548A4FB1A95 Biomotor Unitron (demo-kiosk) (1999)(Yumekobo)(JP) NGP JP
|
||||
CA88E3D6291C5CDF7B518D43DF5D0D98 Cool Cool Jam (demo) (2000)(SNK) NGP
|
||||
BC663B7D728E6FB72C0048D211AD8335 Delta Warp (demo-kiosk) (2000)(Iosys)(JP) NGP JP
|
||||
8FEE7682E46F311712F8F65DD6BFEC2F King of Fighters - R-2 (demo-kiosk) (1999)(SNK)(JP)(en-ja) NGP en-ja JP
|
||||
37340B1E3894987AD9FEBE9E75437C64 Metal Slug - 2nd Mission (demo-kiosk) (2000)(SNK)(JP)(en-ja) NGP en-ja JP
|
||||
F78476C51C398B28E1D2257299D14758 Neo Turf Masters (demo-kiosk) (1999)(SNK)(JP)(en-ja) NGP en-ja JP
|
||||
62EC0E37ACFE58CC41EBA8BD8A5F14A2 Rockman - Battle & Fighters (demo-kiosk) (2000)(Capcom)(JP) NGP JP
|
||||
2A94B4928CF3B0872BF4044E27433022 Sonic the Hedgehog - Pocket Adventure (demo-kiosk) (1999)(Sega)(JP)(en-ja) NGP en-ja JP
|
|
@ -53,9 +53,10 @@ BAE2D6EB22802A56C17F9BD67E3C892E Caesars Palace (U) GG Card Game USA
|
|||
DFB20211EF127B605849ABFD85300AFC Captain America and the Avengers (UE) GG Marvel USA;Europe
|
||||
93EE0C56D725DAA0A79DCE458FF54E5E Car Licence (J) GG Japan
|
||||
3072B95CAFF526A8A7A7B7F9A23F9383 Casino Funpak (U) GG Card Game USA
|
||||
16B6EA96908C17D4389A5907710A0F4E Castle of Illusion Starring Mickey Mouse (UE) (SMSGG) GG Disney GG_in_SMS USA;Europe
|
||||
096E525C29AF9F5A0A0DDD8B67DD8FBF Chakan (UE) GG USA;Europe
|
||||
4E50AB4ACE12827B73AC23C47AAF9B85 Championship Hockey (E) GG Sports;Hockey Europe
|
||||
C72556C76D431B545DD56BDCC536A89F Chase H.Q. (U) GG Racing USA
|
||||
C72556C76D431B545DD56BDCC536A89F Chase H.Q. (U) GG Racing GG_in_SMS USA
|
||||
63AF90497BDAC40CE4217C5133037A51 Cheese Cat-Astrophe Starring Speedy Gonzales (E) (En,Fr,De,Es) GG Europe
|
||||
B24D5C5548ACB3B35AAF02802B3BB7D5 The Chessmaster (UE) GG Board Game USA;Europe
|
||||
A51438E3BA8C78DF665DF05B6310A38A Chicago Syndicate (UE) GG USA;Europe
|
||||
|
@ -93,8 +94,8 @@ F0CEED28D0E83BC4ADC688D06D12BF2E Devilish (U) GG USA
|
|||
E3DDA1FE814C22C102F0714D48D27DE6 Devilish (E) GG Europe
|
||||
BC3B402B546B9561C79E3373AEE97A9C Devilish (J) GG Japan
|
||||
5DAE999E98312E4CB5962041DDEA351F Doraemon - Waku Waku Pocket Paradise (J) GG GGLink Japan
|
||||
B45D73E40CE8F6E76DCED24EE921871A Double Dragon (UE) GG USA;Europe
|
||||
662D42206945815AE7ACF13E406EFD9B Double Dragon (UE) (Beta) GG USA;Europe
|
||||
B45D73E40CE8F6E76DCED24EE921871A Double Dragon (UE) GG SRAM=8192 USA;Europe
|
||||
662D42206945815AE7ACF13E406EFD9B Double Dragon (UE) (Beta) GG SRAM=8192 USA;Europe
|
||||
8FDBA752802F09CFA1583BF0192E3554 Dr. Franken (Proto) GG
|
||||
6565DDCB2E41BF9CE5771A62D30AA700 Dr. Robotnik's Mean Bean Machine (UE) GG Puzzle GGLink USA;Europe
|
||||
81E7BEA1C445540544002A5CCF91FE3C Dragon - The Bruce Lee Story (U) GG USA
|
||||
|
@ -114,12 +115,14 @@ A506FC04C7A0DFAF37423FF0A38AEB2E Ecco the Dolphin (J) GG Japan
|
|||
E97C20B86EA73248CC7AED602D46C3A4 Ernie Els Golf (E) (En,Fr,De,Es,It) GG Sports;Golf CMMapperWithRam Europe
|
||||
C58D6291DA8A4919328B8F42BE8640A7 Eternal Legend (J) GG SRAM=8192 Japan
|
||||
4E63ABB36BE8D86B94B34846B16D9FA3 Evander Holyfield's 'Real Deal' Boxing (UE) GG Sports;Boxing GGLink USA;Europe
|
||||
613376B7B53E43BA17AE1B62DA3C9251 The Excellent Dizzy Collection (E) (SMSGG) GG CMMapper;GG_in_SMS Europe
|
||||
309ABE6822C52DF971856912C77A57CC F1 - World Championship Edition (E) GG Racing Europe
|
||||
93B3E1B682474FFD9985C0A5688D45BF F1 (UE) GG Racing USA;Europe
|
||||
69CC38014650BDD0AF0A2B7D7E9C46EC F-15 Strike Eagle (UE) GG USA;Europe
|
||||
8DCFAA8A12425A56F5DE7518B691158B Faceball 2000 (J) GG GGLink Japan
|
||||
784F3FF02E544E3A9CF18B3B1DA1F062 Factory Panic (E) GG Europe
|
||||
4D965F99BE3EDD9593AF1C365D6A2653 Factory Panic (J) GG Japan
|
||||
66A8E3133A047FA7D44968EFD3C30720 Fantastic Dizzy (E) (SMSGG) (En,Fr,De,Es,It) GG CMMapper;CMMapper;GG_in_SMS Europe
|
||||
9C314C791AD0A98CDA6BD7D39C0A2774 Fantasy Zone (U) GG USA
|
||||
4C6C42493B5AF22540E6C2014D2C367A Fantasy Zone (JE) GG Europe;Japan
|
||||
4292C099F98CC0C6D03025F0729F64DF Fatal Fury Special (U) GG GGLink USA
|
||||
|
@ -184,6 +187,7 @@ D4034F6604C5DC04EE06E78B913C47FC J.League GG Pro Striker '94 (J) GG Sports;Base
|
|||
1C88D6F7784EFB05D2548F9F903889F3 James Pond 3 - Operation Starfi5h (E) GG Europe
|
||||
13F37A4434AEF5140752F1717A1CC936 James Pond II - Codename RoboCod (U) GG USA
|
||||
607BD5D109FD322168603856258A37C0 James Pond II - Codename RoboCod (E) GG Europe
|
||||
9B95B6E6609DAA8EA413F223F426C8FF Jang Pung II (K) (Unl) GG CMMapper;GG_in_SMS Korea
|
||||
5D1351B4F7579D36A1250F5B5F5A507F Jeopardy! - Sports Edition (UE) GG USA;Europe
|
||||
6E87D0107228AE1B5C582F8595992152 Jeopardy! (U) GG USA
|
||||
C74F379A93E9F667C375A316F8021AFC Joe Montana Football (UE) GG Sports;Football GGLink USA;Europe
|
||||
|
@ -276,7 +280,10 @@ E9B45D6455E0753B8E0E825A36458253 Ninku Gaiden - Hiroyuki Daikatsugeki (J) GG
|
|||
713AE959AF3EEA55C9A3C5BD36F1ED9D Ninku (J) GG Japan
|
||||
E9F8ABB1EEA7FB9D7F3FDF4EFEC986A1 Nomo Hideo no World Series Baseball (J) GG Sports;Baseball SRAM=128;GGLink Japan
|
||||
985CCA80D9837BDEB6C5F593B541D025 The Ottifants (E) (En,Fr,De,Es,It) GG Europe
|
||||
BF5BD4D774600A866C2620E101845DE8 Out Run Europa (E) GG Racing Europe
|
||||
59E311B86223273016A1E70B9C881AF2 Olympic Gold (E) (SMSGG) (Rev 1) (En,Fr,De,Es,It,Nl,Pt,Sv) GG Sports GG_in_SMS Europe
|
||||
D52C5DB48882C0C126572A0CDEB5F472 Olympic Gold (JU) (SMSGG) (En,Fr,De,Es,It,Nl,Pt,Sv) GG Sports GG_in_SMS USA;Japan
|
||||
BF5BD4D774600A866C2620E101845DE8 Out Run Europa (E) GG Racing GG_in_SMS Europe
|
||||
2A3BDD1A6C35EEEDBF1A794ABFB57B87 Out Run Europa (U) (SMSGG) SMS Racing GG_in_SMS USA
|
||||
31BA1DE018853EAD9B43B522DF540C0C Out Run (E) GG Racing Europe
|
||||
6D6FBA255CE324E80915F65F5D27CB14 Out Run (J) GG Racing Japan
|
||||
948AD3BC6014CAF8C52C3C626DD70CEE Pac-Attack (UE) GG Puzzle USA;Europe
|
||||
|
@ -308,7 +315,10 @@ C2C37127003087A7C5EEBD63DCE219C6 Poker Face Paul's Gin (U) GG Card Game USA
|
|||
E0E2FBD5834C04574795C923B0147F39 Pop Breaker (J) GG GGLink Japan
|
||||
39D854C9902CF8CA34F32767424BE8AF Popeye no Beach Volleyball (J) GG Sports;Volleyball Japan
|
||||
920F469A6E365E7EA288A7EF8DC8536A Power Drive (E) GG Racing Europe
|
||||
886649DC63ACA898CE30A32348192CD5 Predator 2 (UE) (SMSGG) GG GG_in_SMS USA;Europe
|
||||
1CE6A2D5B50098CBCC9F166F2CC44FBA Primal Rage (UE) GG GGLink USA;Europe
|
||||
0D636C8D86DAFD4F2C337E34E94B1E41 Prince of Persia (UE) (SMSGG) GG GG_in_SMS USA;Europe
|
||||
197E31DCAFEA7023CC948FEA29C50230 Prince of Persia (UE) (SMSGG) (Beta) GG GG_in_SMS USA;Europe
|
||||
F9AE1762ED006C001E811FE6F072ABB7 The Pro Yakyuu '91 (J) GG Sports;Baseball GGLink Japan
|
||||
45D214CD027DEE5CE2ADFCD6458DEC2C Pro Yakyuu GG League '94 (J) GG Sports;Baseball SRAM=128;GGLink Japan
|
||||
527449BC2AAC2C8A16853FAC63E60AF6 Pro Yakyuu GG League (J) GG Sports;Baseball SRAM=128;GGLink Japan
|
||||
|
@ -322,6 +332,7 @@ A5FCE989C4FCF6FAF37C5A1779DF8A22 Puyo Puyo (J) GG Puzzle GGLink Japan
|
|||
42854DD79BF57019A26DDD73E12B68AC Quest for the Shaven Yak Starring Ren Hoek & Stimpy (UE) GG USA;Europe
|
||||
3BB4196A872265CE31CD27F5F8800152 The Quiz Gear Fight!! (J) GG GGLink Japan
|
||||
81E2A14C52EB079CA58E5704652C199D R.B.I. Baseball '94 (U) GG Sports;Baseball USA
|
||||
FD82AF26EBBED24F57C4EEA8EDDF3136 Rastan Saga (J) (SMSGG) GG Aracde GG_in_SMS Japan
|
||||
C985B4316D8D58E48E2DC61264AB0071 Revenge of Drancon (U) GG Wonder Boy Series USA
|
||||
E63FF3A1086C16F7E3B2C4C63371E551 Riddick Bowe Boxing (U) GG Sports;Boxing GGLink USA
|
||||
5A1D0DAEE3DC3582B0C69EC4BCCA3CA9 Riddick Bowe Boxing (J) GG Sports;Boxing GGLink Japan
|
||||
|
@ -400,6 +411,7 @@ F2B15E50EF16B3257C5D08CA0BD17E3B Super Battletank (U) GG USA
|
|||
8F1DE0CAA864BEED2A61F391795B0A10 Super Columns (UE) GG Puzzle GGLink USA;Europe
|
||||
3696AB241BBE66846A0AD00A50CA289B Super Columns (J) GG Puzzle GGLink Japan
|
||||
F2B5123B3614388677C9C15ADAAA8D64 Super Golf (J) GG Sports;Golf Japan
|
||||
91AB09B8B4D25A08DD0EBE13003E54B5 Super Kick Off (J) (SMSGG) GG Sports;Soccer GG_in_SMS Japan
|
||||
D8F9CFDE4ACA117781A931D4FA73FEAF Super Momotarou Dentetsu III (J) GG GGLink Japan
|
||||
1539563613AE8CDB08BBFE372B3AE1F4 Super Monaco GP II (UE) GG Racing GGLink USA;Europe
|
||||
5843ABEA9BEFF14EF6FE840CE59DFAA0 Super Monaco GP II (UE) (Beta) GG Racing GGLink USA;Europe
|
||||
|
@ -410,6 +422,7 @@ CE6809A18FB430A2863231B2DAC51DB2 Super Off Road (UE) GG Racing;Arcade GGLink US
|
|||
FC8D04E6975267CDC6BD49A0DEA33C41 Super Return of the Jedi (UE) GG USA;Europe
|
||||
D378D5784B82154BDC7B36976A7C7737 Super Smash T.V. (W) GG Arcade World
|
||||
6367666402C51229D283AC0CF5BF3FFB Super Space Invaders (UE) GG Arcade GGLink USA;Europe
|
||||
3AAB83A641BF3A26D68ED44F49C28714 Super Tetris (K) (Pirate) GG GG_in_SMS Korea
|
||||
1ADF05E9AC786D9B46BB8D2B8043669D Superman - The Man of Steel (E) GG Europe
|
||||
61808B13D8505470B96B9F7295310BCD Superman - The Man of Steel (E) (Beta) GG Europe
|
||||
63F72877317FD3C17B0D867EA3169F56 Surf Ninjas (U) GG USA
|
||||
|
@ -464,6 +477,7 @@ D8939B64458FAF174CDC1241F777CB59 World Derby (J) GG GGLink Japan
|
|||
E7EABBFC7A1F1339C4720249AEA92A32 World Series Baseball '95 (U) GG Sports;Baseball SRAM=128;GGLink;EEPROM USA
|
||||
59359FC38865CFF00C90D6EB148DDC2F World Series Baseball (U) GG Sports;Baseball SRAM=128;GGLink;EEPROM USA
|
||||
05CAC33029F0CAAC27774504C1AA8597 World Series Baseball (U) (Rev 1) GG Sports;Baseball SRAM=128;GGLink;EEPROM USA
|
||||
93E08B96E19EB89C6BA7E2BF3824C990 WWF Wrestlemania - Steel Cage Challenge (E) (SMSGG) GG Sports;Wrestling GG_in_SMS Europe
|
||||
D810E851AD60ED5BA50B6246C2CE12F2 WWF Raw (UE) GG Sports;Wrestling USA;Europe
|
||||
571AC03B80E3075C699CD583BF8651FD X-Men - Gamemaster's Legacy (UE) GG Marvel USA;Europe
|
||||
CA15F2BA2507EBD836C42D9D10231EB1 X-Men - Mojo World (UE) GG Marvel USA;Europe
|
||||
|
|
|
@ -129,7 +129,6 @@ CCB76C009E52E32E2DCC528481F0E039 Captain Silver (JE) SMS FM Europe;Japan
|
|||
EC16428B908A2C0036B799E55614BE3D Casino Games (UE) SMS Card Game FM USA;Europe
|
||||
47F513D0F9D2896BF1A87254337D5B29 Castelo Ra-Tim-Bum (B) SMS Brazil
|
||||
E9B4B92BC29CA8FBE9978DA6720BD1EB Castle of Illusion Starring Mickey Mouse (U) SMS Disney USA
|
||||
16B6EA96908C17D4389A5907710A0F4E Castle of Illusion Starring Mickey Mouse (UE) (SMSGG) SMS Disney USA;Europe
|
||||
E7E1EF0A9E20585E2266E8ADBAF4B8C9 Castle of Illusion Starring Mickey Mouse (E) SMS Disney Europe
|
||||
290056BCB4303D3C53EA7B6AA2A268A7 Castle of Illusion Starring Mickey Mouse (J) (SMSGG) SMS Disney Japan
|
||||
66CAA446178F98BC9FCEAA3C781BC601 Castle of Illusion Starring Mickey Mouse (Sample) SMS Disney
|
||||
|
@ -192,7 +191,6 @@ A94DE92B078911E71C246679C8992DA1 Enduro Racer (J) SMS Racing Japan
|
|||
DE328CDE27324C8D591F740DB0CB2866 E-SWAT - City Under Siege (UE) (Easy Version) SMS USA;Europe
|
||||
36A5339CEF97D0A5757DB4FD81B4ABF3 E-SWAT - City Under Siege (UE) (Hard Version) SMS USA;Europe
|
||||
C68B86706784801EFF53A4CA4500FF21 The Excellent Dizzy Collection (UE) (En,Fr,De,Es,It) (Proto) SMS CMMapper;PAL USA;Europe
|
||||
613376B7B53E43BA17AE1B62DA3C9251 The Excellent Dizzy Collection (E) (SMSGG) SMS CMMapper Europe
|
||||
293EF0398970CFF0A5B4CD419B643F3C F-1 Spirit - The Way to Formula-1 (K) (Pirate) SMS MSXMapper Korea
|
||||
5D67504B8334A0E36F6119515928717C F1 (E) SMS Racing Europe
|
||||
B88767B3386073FA775A8391B8912010 F-16 Fighter (UE) SMS USA;Europe
|
||||
|
@ -202,7 +200,6 @@ B88767B3386073FA775A8391B8912010 F-16 Fighter (UE) SMS USA;Europe
|
|||
F3D0D07A2EEA23175D9A8D2B428151E8 FA Tetris (K) (Pirate) SMS F/U not working;Puzzle Korea
|
||||
03552187D613C1B2A22A8E32476C5254 Family Games (J) SMS FM Japan
|
||||
B8EB0CB6A9D16CFD08D9C03297FCD445 Fantastic Dizzy (E) (En,Fr,De,Es,It) SMS CMMapper;PAL Europe
|
||||
66A8E3133A047FA7D44968EFD3C30720 Fantastic Dizzy (E) (SMSGG) (En,Fr,De,Es,It) SMS CMMapper;CMMapper Europe
|
||||
D37F86C678B2AD0018518EA7278DB24B Fantasy Zone - The Maze (UE) SMS FM USA;Europe
|
||||
481A01C4E768C535EE18D6D78815FC89 Fantasy Zone II - The Tears of Opa-Opa (UE) SMS FM USA;Europe
|
||||
F898539F72DB2271FC3385A5EB51A06F Fantasy Zone II - The Tears of Opa-Opa (J) SMS FM Japan
|
||||
|
@ -293,7 +290,7 @@ B3A4815CA9FDC900CF7FE6AD961F8125 James 'Buster' Douglas Knockout Boxing (U) SMS
|
|||
433FE61368CDF79C1B66CC84D0936599 James 'Buster' Douglas Knockout Boxing (U) (Beta) SMS Sports;Boxing USA
|
||||
73B92360C3EFDE9D265280F6E157FC33 James Pond 2 - Codename RoboCod (E) SMS Europe
|
||||
F355EC9D0171A4D01356165D2BABA6A1 Jang Pung 3 (K) SMS KoreaMapper Korea
|
||||
9B95B6E6609DAA8EA413F223F426C8FF Jang Pung II (K) (Unl) SMS CMMapper Korea
|
||||
|
||||
2DB7AAABCA7F62D69DF466797C0D63D9 Janggun-ui Adeul (K) SMS Korea
|
||||
0ECE8F9C0FDE2EBA92BBE9A500116FF0 Joe Montana Football (UE) SMS Sports;Football USA;Europe
|
||||
ED224898BEFB4FB246175E46F9982821 The Jungle Book (E) SMS Disney Europe
|
||||
|
@ -361,14 +358,11 @@ B070DC2BA3F106E89D1E9551F49A0027 Ninja Gaiden (E) (Beta) SMS Europe
|
|||
2C620BA64FCAAC940B4B1566733037B3 The Ninja (UE) SMS USA;Europe
|
||||
41E20AFE05C2FBE45AC5F3A9C8111047 The Ninja (J) SMS Japan
|
||||
205B3543F300B96972BCA5CE1D1F1F90 Olympic Gold (K) (En,Fr,De,Es,It,Nl,Pt,Sv) SMS Sports Korea
|
||||
D52C5DB48882C0C126572A0CDEB5F472 Olympic Gold (JU) (SMSGG) (En,Fr,De,Es,It,Nl,Pt,Sv) SMS Sports USA;Japan
|
||||
2A0717F014B2FD99DECD92308175658F Olympic Gold (E) (En,Fr,De,Es,It,Nl,Pt,Sv) SMS Sports Europe
|
||||
59E311B86223273016A1E70B9C881AF2 Olympic Gold (E) (SMSGG) (Rev 1) (En,Fr,De,Es,It,Nl,Pt,Sv) SMS Sports Europe
|
||||
A31CBBDED45F66633FB38B1C1BEF9B08 Opa Opa (J) SMS Japan
|
||||
2CA2064302F51F724E1F2593369A0696 Operation Wolf (E) SMS Light Gun;Arcade Europe
|
||||
F64EA159120C018E05FB95AC8533E9EB The Ottifants (E) (En,Fr,De,Es,It) SMS Europe
|
||||
558C793AAB09B46BED78431348191060 Out Run 3-D (E) SMS Racing;PaddleSupported 3D;FM;PaddleOptional Europe
|
||||
2A3BDD1A6C35EEEDBF1A794ABFB57B87 Out Run Europa (U) (SMSGG) SMS Racing GG_in_SMS USA
|
||||
458FC29765865FDAAF3F56808C94D8A6 Out Run Europa (E) SMS Racing Europe
|
||||
029EE92155247F8A282D63B8A6DD23C4 Out Run (W) SMS Racing;Arcade FM;WhenFMDisablePSG;PaddleOptional World
|
||||
946F3E6C2F0F546A8EBE55C8170ECC78 Pac-Mania (E) SMS Arcade Europe
|
||||
|
@ -392,11 +386,8 @@ CC694CA94C4D74B487983332FACC8B86 Populous (E) SMS Strategy Europe
|
|||
3586416AC6F2AA1FA7DEA351AFB8AC1C Poseidon Wars 3-D (UE) SMS 3D;FM USA;Europe
|
||||
BD7898393B716AFF69132934BF7DCCB8 Power Strike II (E) SMS OverclockSafe Europe
|
||||
8D9F02DCFEA8F9728A3665CA12B044D1 Power Strike (UE) SMS FM;OverclockSafe USA;Europe
|
||||
886649DC63ACA898CE30A32348192CD5 Predator 2 (UE) (SMSGG) SMS USA;Europe
|
||||
1389419D90834D3700B772E984143FDE Predator 2 (E) SMS Europe
|
||||
069349D2BF4DB0BD1382070A2D7F11B0 Predator 2 (B) SMS Brazil
|
||||
0D636C8D86DAFD4F2C337E34E94B1E41 Prince of Persia (UE) (SMSGG) SMS USA;Europe
|
||||
197E31DCAFEA7023CC948FEA29C50230 Prince of Persia (UE) (SMSGG) (Beta) SMS USA;Europe
|
||||
70E9B330DD6A91E7310F3C8D9A934ECC Prince of Persia (E) SMS Europe
|
||||
0EE2937104E9667BE89C38E6E9992D4B Pro Wrestling (UE) SMS Sports;Wrestling USA;Europe
|
||||
0E025768DB6E6A7459099ADD711690AB The Pro Yakyuu Pennant Race (J) SMS Sports;Baseball Japan
|
||||
|
@ -416,7 +407,6 @@ E80AE00D8924F2BADA5949BF75995D87 Rainbow Islands - The Story of Bubble Bobble 2
|
|||
4FCE4E3247639D0EF54EB54D0EF21153 Rambo III (UE) SMS Light Gun Phaser USA;Europe
|
||||
54EE884BC658DBAD88EAC18E45E0EAFC Rampage (UE) SMS FM USA;Europe
|
||||
F865AFB7B5C32E130016E2D35756839C Rampart (E) SMS Strategy Europe
|
||||
FD82AF26EBBED24F57C4EEA8EDDF3136 Rastan Saga (J) (SMSGG) SMS Aracde Japan
|
||||
5B3A785DE403C311DB7F17EAE27CAAE6 Rastan (UE) SMS Arcade FM;StereoByte=203 USA;Europe
|
||||
B3A37D601050CA5C732DC4160D875821 Reggie Jackson Baseball (U) SMS Sports;Baseball USA
|
||||
BBCE8B8AC26E2F582DEFE0056346F035 Renegade (E) SMS Arcade Europe
|
||||
|
@ -504,7 +494,6 @@ EB7D7DB5AB98B0B7812552644FB95FE8 Super Boy 4 (K) SMS Korea
|
|||
6120C9BA0F2C24031C9A836035060717 Super Boy II (K) (Pirate) SMS Korea
|
||||
355F226E0B0602F1FB8C27ED4BAE3713 Super Golf (E) (Beta) SMS Sports;Golf Europe
|
||||
6C203C7AA7003A880B80A90D96FC4A33 Super Kick Off (E) (En,Fr,De,Es,It,Nl,Pt,Sv) SMS Sports;Soccer Europe
|
||||
91AB09B8B4D25A08DD0EBE13003E54B5 Super Kick Off (J) (SMSGG) SMS Sports;Soccer Japan
|
||||
04ABC524A3B7F7E2E96EB910490E77EC Super Monaco GP II (E) SMS Racing Europe
|
||||
AED300F323AAE6D00878EB6BA21C2EB7 Super Monaco GP (U) SMS Racing USA
|
||||
D18F1C389ED75EFABC44E24B128DA95D Super Monaco GP (U) (Beta 1) SMS Racing USA
|
||||
|
@ -515,7 +504,6 @@ BCC2DF04CAC4B713EE48A05669CDFBDD Super Racing (J) SMS Racing FM;PaddleOptional
|
|||
FD65B6794D6778C7948CD9B8B02A12F5 Super Smash T.V. (E) SMS Arcade Europe
|
||||
F36E9758390ED2B781E9A8A7A958E7E3 Super Space Invaders (E) SMS Arcade Europe
|
||||
2DB9404FE79593FD2379921CA822103A Super Tennis (UE) SMS Sports;Tennis USA;Europe
|
||||
3AAB83A641BF3A26D68ED44F49C28714 Super Tetris (K) (Pirate) SMS Korea
|
||||
DC1541E54DA2376781E3691784BEFAA9 Superman - The Man of Steel (E) SMS Europe
|
||||
F1983C31F965AA8DE77DF64483883550 T2 - The Arcade Game (E) SMS Europe
|
||||
5F170677DC0D0229EC3EC7F306BB6303 Taz in Escape from Mars (B) SMS Brazil
|
||||
|
@ -580,7 +568,6 @@ AF5BE770DA3F73E01847C44AD97226D3 World Games (E) (Beta) SMS Europe
|
|||
72B55720DE75072A2FECEAB9CA4367B0 World Grand Prix (E) SMS Racing Europe
|
||||
5F008423AE6A454BC70E94A8C9F33D1C World Soccer (W) SMS Sports;Soccer World
|
||||
5DB168808D3B4756C8C5F8B836A7B05A WWF Wrestlemania - Steel Cage Challenge (E) SMS Sports;Wrestling Europe
|
||||
93E08B96E19EB89C6BA7E2BF3824C990 WWF Wrestlemania - Steel Cage Challenge (E) (SMSGG) SMS Sports;Wrestling Europe
|
||||
1F1CE1D74C416F2B85CC3F24D316F9E3 Xenon 2 (E) (Image Works) SMS Europe
|
||||
27FBA4B7DB989C663DDA11C255CF49F3 Xenon 2 (E) (Virgin) SMS Europe
|
||||
21B563031BB035F117D15DC53F406C2D Xyzolog (K) SMS KoreaMapper Korea
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
#include gamedb_zxspectrum_disks.txt
|
||||
#include gamedb_zxspectrum_tapes.txt
|
||||
|
||||
;;;;----------------------------------------------
|
||||
;;;; Currently the above gamesdb files are generated automatically from TOSEC files (using the new DAT converter in DBMan)
|
||||
;;;; Each file above only contains softwares in formats that BizHawk currently supports
|
||||
;;;; These are:
|
||||
;;;; Floppy Disk: *.dsk
|
||||
;;;; Cassette Tape: *.tap, *.tzx, *.csw
|
||||
;;;; Each file is commented automatically and split up first into the various files that were imported, then by RomStatus
|
||||
;;;;
|
||||
;;;; In theory, this setup means that we can run the auto import again when newer TOSEC files are released,
|
||||
;;;; or if support for other file formats is added to BizHawk.
|
||||
;;;;
|
||||
;;;; NOTE TO DEVS:
|
||||
;;;; Any overrides should be placed below. Do *NOT* edit the included files above manually (as changes will get destroyed if the DAT importer is run again).
|
||||
;;;; By the looks of it, Bizhawk takes the last entry it sees when duplicates are present, so this should work.
|
||||
;;;;
|
||||
;;;;----------------------------------------------
|
||||
|
||||
;;;;----------------------------------------------
|
||||
;;;; Overrides (dont edit the included files above directly!)
|
||||
;;;;----------------------------------------------
|
||||
|
||||
;;; BAD
|
||||
|
||||
;;; Actually GOOD
|
||||
|
||||
;;; Actually TRANSLATED
|
||||
|
||||
;;; Games NOT present in TOSEC
|
||||
B3D03F17DBFD48399283F9735EFF37EA H Chaos - Battle of the Wizards (+3)[TAP TO DSK CONVERSION] ZXSpectrum
|
||||
8E199C9ACA16B8CA6DCA52D19136D1B7 H Rebelstar (+3)[TAP TO DSK CONVERSION] ZXSpectrum
|
||||
573ADF0B118E93F84CAC808520ACD142 H Rebelstar II - Alient Encounter (+3)[TAP TO DSK CONVERSION] ZXSpectrum
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -99,6 +99,9 @@ namespace BizHawk.Client.ApiHawk
|
|||
case "ZXSpectrum":
|
||||
return CoreSystem.ZXSpectrum;
|
||||
|
||||
case "AmstradCPC":
|
||||
return CoreSystem.AmstradCPC;
|
||||
|
||||
case "VB":
|
||||
case "NGP":
|
||||
case "DNGP":
|
||||
|
@ -211,6 +214,9 @@ namespace BizHawk.Client.ApiHawk
|
|||
case CoreSystem.ZXSpectrum:
|
||||
return "ZXSpectrum";
|
||||
|
||||
case CoreSystem.AmstradCPC:
|
||||
return "AmstradCPC";
|
||||
|
||||
default:
|
||||
throw new IndexOutOfRangeException(string.Format("{0} is missing in convert list", value.ToString()));
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
Libretro,
|
||||
VirtualBoy,
|
||||
NeoGeoPocket,
|
||||
ZXSpectrum
|
||||
ZXSpectrum,
|
||||
AmstradCPC
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ using System.Collections.Generic;
|
|||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
|
||||
using System.Text;
|
||||
using ICSharpCode.SharpZipLib.Zip;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
|
@ -12,6 +12,8 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
[Name("BizState 1", "0")]
|
||||
public static BinaryStateLump Versiontag { get; private set; }
|
||||
[Name("BizVersion", "txt")]
|
||||
public static BinaryStateLump BizVersion { get; private set; }
|
||||
[Name("Core", "bin")]
|
||||
public static BinaryStateLump Corestate { get; private set; }
|
||||
[Name("Framebuffer", "bmp")]
|
||||
|
@ -322,6 +324,13 @@ namespace BizHawk.Client.Common
|
|||
sw.Flush();
|
||||
}
|
||||
|
||||
private static void WriteEmuVersion(Stream s)
|
||||
{
|
||||
var sw = new StreamWriter(s);
|
||||
sw.WriteLine(VersionInfo.GetEmuVersion());
|
||||
sw.Flush();
|
||||
}
|
||||
|
||||
public BinaryStateSaver(string path, bool notamovie = true) // notamovie is hack, really should have separate something
|
||||
{
|
||||
////_zip = new IonicZipWriter(path, notamovie ? Global.Config.SaveStateCompressionLevelNormal : Global.Config.MovieCompressionLevel);
|
||||
|
@ -332,6 +341,7 @@ namespace BizHawk.Client.Common
|
|||
if (notamovie)
|
||||
{
|
||||
PutLump(BinaryStateLump.Versiontag, WriteVersion);
|
||||
PutLump(BinaryStateLump.BizVersion, WriteEmuVersion);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -126,7 +126,37 @@ namespace BizHawk.Client.Common
|
|||
public Dictionary<string, RealFirmwareFile> Dict { get; } = new Dictionary<string, RealFirmwareFile>();
|
||||
}
|
||||
|
||||
public void DoScanAndResolve()
|
||||
/// <summary>
|
||||
/// Test to determine whether the supplied firmware file matches something in the firmware database
|
||||
/// </summary>
|
||||
/// <param name="f"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanFileBeImported(string f)
|
||||
{
|
||||
try
|
||||
{
|
||||
var fi = new FileInfo(f);
|
||||
if (!fi.Exists)
|
||||
return false;
|
||||
|
||||
// weed out filesizes first to reduce the unnecessary overhead of a hashing operation
|
||||
if (FirmwareDatabase.FirmwareFiles.Where(a => a.Size == fi.Length).FirstOrDefault() == null)
|
||||
return false;
|
||||
|
||||
// check the hash
|
||||
using (var reader = new RealFirmwareReader())
|
||||
{
|
||||
reader.Read(fi);
|
||||
if (FirmwareDatabase.FirmwareFiles.Where(a => a.Hash == reader.Dict.FirstOrDefault().Value.Hash).FirstOrDefault() != null)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void DoScanAndResolve()
|
||||
{
|
||||
// build a list of file sizes. Only those will be checked during scanning
|
||||
HashSet<long> sizes = new HashSet<long>();
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using BizHawk.Emulation.Common;
|
||||
using BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy;
|
||||
|
@ -151,10 +152,14 @@ namespace BizHawk.Client.Common
|
|||
return SystemInfo.NeoGeoPocket;
|
||||
case "ZXSpectrum":
|
||||
return SystemInfo.ZXSpectrum;
|
||||
case "AmstradCPC":
|
||||
return SystemInfo.AmstradCPC;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static Dictionary<string, object> UserBag = new Dictionary<string, object>();
|
||||
|
||||
public static bool RunningOnUnix = Environment.OSVersion.Platform == PlatformID.Unix || Environment.OSVersion.Platform == PlatformID.MacOSX;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,11 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
public static class PathManager
|
||||
{
|
||||
static PathManager()
|
||||
{
|
||||
SetDefaultIniPath(MakeProgramRelativePath("config.ini"));
|
||||
}
|
||||
|
||||
public static string GetExeDirectoryAbsolute()
|
||||
{
|
||||
var path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
|
||||
|
@ -40,7 +45,12 @@ namespace BizHawk.Client.Common
|
|||
/// <summary>
|
||||
/// The location of the default INI file
|
||||
/// </summary>
|
||||
public static string DefaultIniPath => MakeProgramRelativePath("config.ini");
|
||||
public static string DefaultIniPath { get; private set; }
|
||||
|
||||
public static void SetDefaultIniPath(string newDefaultIniPath)
|
||||
{
|
||||
DefaultIniPath = newDefaultIniPath;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets absolute base as derived from EXE
|
||||
|
@ -100,17 +110,10 @@ namespace BizHawk.Client.Common
|
|||
return Environment.SpecialFolder.Recent.ToString();
|
||||
}
|
||||
|
||||
if (path.Length >= 5 && path.Substring(0, 5) == "%exe%")
|
||||
{
|
||||
if (path.Length == 5)
|
||||
{
|
||||
return GetExeDirectoryAbsolute();
|
||||
}
|
||||
|
||||
var tmp = path.Remove(0, 5);
|
||||
tmp = tmp.Insert(0, GetExeDirectoryAbsolute());
|
||||
return tmp;
|
||||
}
|
||||
if (path.StartsWith("%exe%"))
|
||||
return GetExeDirectoryAbsolute() + path.Substring(5);
|
||||
if (path.StartsWith("%rom%"))
|
||||
return Global.Config.LastRomPath + path.Substring(5);
|
||||
|
||||
if (path[0] == '.')
|
||||
{
|
||||
|
@ -140,7 +143,7 @@ namespace BizHawk.Client.Common
|
|||
//handling of initial .. was removed (Path.GetFullPath can handle it)
|
||||
//handling of file:// or file:\\ was removed (can Path.GetFullPath handle it? not sure)
|
||||
|
||||
// all pad paths default to EXE
|
||||
// all bad paths default to EXE
|
||||
return GetExeDirectoryAbsolute();
|
||||
}
|
||||
|
||||
|
@ -461,5 +464,19 @@ namespace BizHawk.Client.Common
|
|||
|
||||
return entry;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Puts the currently configured temp path into the environment for use as actual temp directory
|
||||
/// </summary>
|
||||
public static void RefreshTempPath()
|
||||
{
|
||||
if (Global.Config.PathEntries.TempFilesFragment != "")
|
||||
{
|
||||
//TODO - BUG - needs to route through PathManager.MakeAbsolutePath or something similar, but how?
|
||||
string target = Global.Config.PathEntries.TempFilesFragment;
|
||||
BizHawk.Common.TempFileManager.HelperSetTempPath(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ namespace BizHawk.Client.Common
|
|||
RomData = FileData;
|
||||
}
|
||||
else if (file.Extension == ".DSK" || file.Extension == ".TAP" || file.Extension == ".TZX" ||
|
||||
file.Extension == ".PZX" || file.Extension == ".CSW" || file.Extension == ".WAV")
|
||||
file.Extension == ".PZX" || file.Extension == ".CSW" || file.Extension == ".WAV" || file.Extension == ".CDT")
|
||||
{
|
||||
// these are not roms. unforunately if treated as such there are certain edge-cases
|
||||
// where a header offset is detected. This should mitigate this issue until a cleaner solution is found
|
||||
|
|
|
@ -25,6 +25,7 @@ using BizHawk.Emulation.DiscSystem;
|
|||
using GPGX64 = BizHawk.Emulation.Cores.Consoles.Sega.gpgx;
|
||||
using BizHawk.Emulation.Cores.Consoles.Sega.Saturn;
|
||||
using BizHawk.Emulation.Cores.Consoles.NEC.PCFX;
|
||||
using BizHawk.Emulation.Cores.Computers.AmstradCPC;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
|
@ -671,9 +672,25 @@ namespace BizHawk.Client.Common
|
|||
xmlGame.Assets.Select(a => a.Value), //.First(),
|
||||
zxGI, // GameInfo.NullInstance,
|
||||
(ZXSpectrum.ZXSpectrumSettings)GetCoreSettings<ZXSpectrum>(),
|
||||
(ZXSpectrum.ZXSpectrumSyncSettings)GetCoreSyncSettings<ZXSpectrum>());
|
||||
(ZXSpectrum.ZXSpectrumSyncSettings)GetCoreSyncSettings<ZXSpectrum>(),
|
||||
Deterministic);
|
||||
break;
|
||||
case "PSX":
|
||||
case "AmstradCPC":
|
||||
|
||||
List<GameInfo> cpcGI = new List<GameInfo>();
|
||||
foreach (var a in xmlGame.Assets)
|
||||
{
|
||||
cpcGI.Add(new GameInfo { Name = Path.GetFileNameWithoutExtension(a.Key) });
|
||||
}
|
||||
|
||||
nextEmulator = new AmstradCPC(
|
||||
nextComm,
|
||||
xmlGame.Assets.Select(a => a.Value), //.First(),
|
||||
cpcGI, // GameInfo.NullInstance,
|
||||
(AmstradCPC.AmstradCPCSettings)GetCoreSettings<AmstradCPC>(),
|
||||
(AmstradCPC.AmstradCPCSyncSettings)GetCoreSyncSettings<AmstradCPC>());
|
||||
break;
|
||||
case "PSX":
|
||||
var entries = xmlGame.AssetFullPaths;
|
||||
var discs = new List<Disc>();
|
||||
var discNames = new List<string>();
|
||||
|
@ -1014,10 +1031,19 @@ namespace BizHawk.Client.Common
|
|||
nextEmulator = c64;
|
||||
break;
|
||||
case "ZXSpectrum":
|
||||
var zx = new ZXSpectrum(nextComm, Enumerable.Repeat(rom.RomData, 1), Enumerable.Repeat(rom.GameInfo, 1).ToList(), GetCoreSettings<ZXSpectrum>(), GetCoreSyncSettings<ZXSpectrum>());
|
||||
var zx = new ZXSpectrum(nextComm,
|
||||
Enumerable.Repeat(rom.RomData, 1),
|
||||
Enumerable.Repeat(rom.GameInfo, 1).ToList(),
|
||||
GetCoreSettings<ZXSpectrum>(),
|
||||
GetCoreSyncSettings<ZXSpectrum>(),
|
||||
Deterministic);
|
||||
nextEmulator = zx;
|
||||
break;
|
||||
case "GBA":
|
||||
case "AmstradCPC":
|
||||
var cpc = new AmstradCPC(nextComm, Enumerable.Repeat(rom.RomData, 1), Enumerable.Repeat(rom.GameInfo, 1).ToList(), GetCoreSettings<AmstradCPC>(), GetCoreSyncSettings<AmstradCPC>());
|
||||
nextEmulator = cpc;
|
||||
break;
|
||||
case "GBA":
|
||||
if (Global.Config.GBA_UsemGBA)
|
||||
{
|
||||
core = CoreInventory.Instance["GBA", "mGBA"];
|
||||
|
|
|
@ -193,14 +193,19 @@ namespace BizHawk.Client.Common
|
|||
/// </summary>
|
||||
public static SystemInfo ZXSpectrum { get; } = new SystemInfo("ZX Spectrum", CoreSystem.ZXSpectrum, 2);
|
||||
|
||||
#endregion Get SystemInfo
|
||||
/// <summary>
|
||||
/// Gets the <see cref="SystemInfo"/> instance for AmstradCPC
|
||||
/// </summary>
|
||||
public static SystemInfo AmstradCPC { get; } = new SystemInfo("Amstrad CPC", CoreSystem.AmstradCPC, 2);
|
||||
|
||||
/// <summary>
|
||||
/// Get a <see cref="SystemInfo"/> by its <see cref="CoreSystem"/>
|
||||
/// </summary>
|
||||
/// <param name="system"><see cref="CoreSystem"/> you're looking for</param>
|
||||
/// <returns><see cref="SystemInfo"/></returns>
|
||||
public static SystemInfo FindByCoreSystem(CoreSystem system)
|
||||
#endregion Get SystemInfo
|
||||
|
||||
/// <summary>
|
||||
/// Get a <see cref="SystemInfo"/> by its <see cref="CoreSystem"/>
|
||||
/// </summary>
|
||||
/// <param name="system"><see cref="CoreSystem"/> you're looking for</param>
|
||||
/// <returns><see cref="SystemInfo"/></returns>
|
||||
public static SystemInfo FindByCoreSystem(CoreSystem system)
|
||||
{
|
||||
return _allSystemInfos.Find(s => s.System == system);
|
||||
}
|
||||
|
|
|
@ -82,11 +82,13 @@ namespace BizHawk.Client.Common
|
|||
using (var hf = new HawkFile(fullpath))
|
||||
{
|
||||
if (hf.IsArchive)
|
||||
{
|
||||
var archiveItem = hf.ArchiveItems.First(ai => ai.Name == filename.Split('|').Skip(1).First());
|
||||
{
|
||||
var archiveItem = hf.ArchiveItems.First(ai => ai.Name == filename.Split('|').Skip(1).First());
|
||||
hf.Unbind();
|
||||
hf.BindArchiveMember(archiveItem);
|
||||
data = hf.GetStream().ReadAllBytes();
|
||||
|
||||
filename = filename.Split('|').Skip(1).First();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -37,6 +37,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
PathEntries.ResolveWithDefaults();
|
||||
HotkeyBindings.ResolveWithDefaults();
|
||||
PathManager.RefreshTempPath();
|
||||
}
|
||||
|
||||
// Core preference for generic file extension, key: file extension, value: a systemID or empty if no preference
|
||||
|
@ -131,7 +132,7 @@ namespace BizHawk.Client.Common
|
|||
public DateTime? Update_LastCheckTimeUTC = null;
|
||||
public string Update_LatestVersion = "";
|
||||
public string Update_IgnoreVersion = "";
|
||||
public bool CDLAutoSave = true, CDLAutoStart = true;
|
||||
public bool CDLAutoSave = true, CDLAutoStart = true, CDLAutoResume = true;
|
||||
|
||||
/// <summary>
|
||||
/// Makes a .bak file before any saveram-writing operation (could be extended to make timestamped backups)
|
||||
|
|
|
@ -128,14 +128,14 @@ namespace BizHawk.Client.Common
|
|||
|
||||
private static string ResolveToolsPath(string subPath)
|
||||
{
|
||||
if (Path.IsPathRooted(subPath))
|
||||
if (Path.IsPathRooted(subPath) || subPath.StartsWith("%"))
|
||||
{
|
||||
return subPath;
|
||||
}
|
||||
|
||||
var toolsPath = Global.Config.PathEntries["Global", "Tools"].Path;
|
||||
|
||||
// Hack for backwards compabitilbity, preior to 1.11.5, .wch files were in .\Tools, we don't want that to turn into .Tools\Tools
|
||||
// Hack for backwards compatibility, prior to 1.11.5, .wch files were in .\Tools, we don't want that to turn into .Tools\Tools
|
||||
if (subPath == "Tools")
|
||||
{
|
||||
return toolsPath;
|
||||
|
@ -165,6 +165,8 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public string GlobalRomFragment => Global.Config.PathEntries["Global", "ROM"].Path;
|
||||
|
||||
public string TempFilesFragment => Global.Config.PathEntries["Global", "Temp Files"].Path;
|
||||
|
||||
// this one is special
|
||||
public string GlobalBaseFragment => Global.Config.PathEntries["Global", "Base"].Path;
|
||||
|
||||
|
@ -184,6 +186,7 @@ namespace BizHawk.Client.Common
|
|||
new PathEntry { System = "Global_NULL", SystemDisplayName = "Global", Type = "TAStudio states", Path = Path.Combine(".", "Movies", "TAStudio states"), Ordinal = 12 },
|
||||
new PathEntry { System = "Global_NULL", SystemDisplayName = "Global", Type = "Multi-Disk Bundles", Path = Path.Combine(".", ""), Ordinal = 13 },
|
||||
new PathEntry { System = "Global_NULL", SystemDisplayName = "Global", Type = "External Tools", Path = Path.Combine(".", "ExternalTools"), Ordinal = 14 },
|
||||
new PathEntry { System = "Global_NULL", SystemDisplayName = "Global", Type = "Temp Files", Path = "", Ordinal = 15 },
|
||||
|
||||
new PathEntry { System = "INTV", SystemDisplayName = "Intellivision", Type = "Base", Path = Path.Combine(".", "Intellivision"), Ordinal = 0 },
|
||||
new PathEntry { System = "INTV", SystemDisplayName = "Intellivision", Type = "ROM", Path = ".", Ordinal = 1 },
|
||||
|
@ -298,6 +301,12 @@ namespace BizHawk.Client.Common
|
|||
new PathEntry { System = "ZXSpectrum", SystemDisplayName = "Sinclair ZX Spectrum", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
|
||||
new PathEntry { System = "ZXSpectrum", SystemDisplayName = "Sinclair ZX Spectrum", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
|
||||
|
||||
new PathEntry { System = "AmstradCPC", SystemDisplayName = "Amstrad CPC", Type = "Base", Path = Path.Combine(".", "AmstradCPC"), Ordinal = 0 },
|
||||
new PathEntry { System = "AmstradCPC", SystemDisplayName = "Amstrad CPC", Type = "ROM", Path = ".", Ordinal = 1 },
|
||||
new PathEntry { System = "AmstradCPC", SystemDisplayName = "Amstrad CPC", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
|
||||
new PathEntry { System = "AmstradCPC", SystemDisplayName = "Amstrad CPC", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
|
||||
new PathEntry { System = "AmstradCPC", SystemDisplayName = "Amstrad CPC", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
|
||||
|
||||
new PathEntry { System = "PSX", SystemDisplayName = "Playstation", Type = "Base", Path = Path.Combine(".", "PSX"), Ordinal = 0 },
|
||||
new PathEntry { System = "PSX", SystemDisplayName = "Playstation", Type = "ROM", Path = ".", Ordinal = 1 },
|
||||
new PathEntry { System = "PSX", SystemDisplayName = "Playstation", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace BizHawk.Client.Common
|
|||
public override string Name => "gameinfo";
|
||||
|
||||
[LuaMethodExample("local stgamget = gameinfo.getromname( );")]
|
||||
[LuaMethod("getromname", "returns the path of the currently loaded rom, if a rom is loaded")]
|
||||
[LuaMethod("getromname", "returns the name of the currently loaded rom, if a rom is loaded")]
|
||||
public string GetRomName()
|
||||
{
|
||||
if (Global.Game != null)
|
||||
|
|
|
@ -61,17 +61,18 @@ namespace BizHawk.Client.Common
|
|||
["C64_DREAN"] = PALNCarrier * 2 / 7 / 312 / 65,
|
||||
["INTV"] = 59.92,
|
||||
|
||||
["ZXSpectrum_PAL"] = 50.080128205
|
||||
["ZXSpectrum_PAL"] = 50.080128205,
|
||||
["AmstradCPC_PAL"] = 50.08012820512821,
|
||||
|
||||
// according to ryphecha, using
|
||||
// clocks[2] = { 53.693182e06, 53.203425e06 }; //ntsc console, pal console
|
||||
// lpf[2][2] = { { 263, 262.5 }, { 314, 312.5 } }; //ntsc,pal; noninterlaced, interlaced
|
||||
// cpl[2] = { 3412.5, 3405 }; //ntsc mode, pal mode
|
||||
// PAL PS1: 0, PAL Mode: 0, Interlaced: 0 --- 59.826106 (53.693182e06/(263*3412.5))
|
||||
// PAL PS1: 0, PAL Mode: 0, Interlaced: 1 --- 59.940060 (53.693182e06/(262.5*3412.5))
|
||||
// PAL PS1: 1, PAL Mode: 1, Interlaced: 0 --- 49.761427 (53.203425e06/(314*3405))
|
||||
// PAL PS1: 1, PAL Mode: 1, Interlaced: 1 --- 50.000282(53.203425e06/(312.5*3405))
|
||||
};
|
||||
// according to ryphecha, using
|
||||
// clocks[2] = { 53.693182e06, 53.203425e06 }; //ntsc console, pal console
|
||||
// lpf[2][2] = { { 263, 262.5 }, { 314, 312.5 } }; //ntsc,pal; noninterlaced, interlaced
|
||||
// cpl[2] = { 3412.5, 3405 }; //ntsc mode, pal mode
|
||||
// PAL PS1: 0, PAL Mode: 0, Interlaced: 0 --- 59.826106 (53.693182e06/(263*3412.5))
|
||||
// PAL PS1: 0, PAL Mode: 0, Interlaced: 1 --- 59.940060 (53.693182e06/(262.5*3412.5))
|
||||
// PAL PS1: 1, PAL Mode: 1, Interlaced: 0 --- 49.761427 (53.203425e06/(314*3405))
|
||||
// PAL PS1: 1, PAL Mode: 1, Interlaced: 1 --- 50.000282(53.203425e06/(312.5*3405))
|
||||
};
|
||||
|
||||
public double this[string systemId, bool pal]
|
||||
{
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace BizHawk.Client.Common
|
|||
var key = button.Replace("Key ", "");
|
||||
if (key.StartsWith("P"))
|
||||
{
|
||||
if (key.Length > 2 && key[1] == '1' && key[2] >= '0' && key[1] <= '9') // Hack to support 10-20 controllers, TODO: regex this thing instead
|
||||
if (key.Length > 2 && key[1] == '1' && key[2] >= '0' && key[2] <= '9') // Hack to support 10-20 controllers, TODO: regex this thing instead
|
||||
{
|
||||
key = key.Substring(4);
|
||||
}
|
||||
|
@ -280,7 +280,42 @@ namespace BizHawk.Client.Common
|
|||
["Cursor Left/Right"] = 'l',
|
||||
["Space"] = '_'
|
||||
},
|
||||
["N64"] = new Dictionary<string, char>
|
||||
["ZXSpectrum"] = new Dictionary<string, char>
|
||||
{
|
||||
["Caps Shift"] = '^',
|
||||
["Caps Lock"] = 'L',
|
||||
["Period"] = '_',
|
||||
["Symbol Shift"] = 'v',
|
||||
["Semi-Colon"] = ';',
|
||||
["Quote"] = '"',
|
||||
["Comma"] = ',',
|
||||
["True Video"] = 'T',
|
||||
["Inv Video"] = 'I',
|
||||
["Break"] = 'B',
|
||||
["Delete"] = 'D',
|
||||
["Graph"] = 'G',
|
||||
["Extend Mode"] = 'M',
|
||||
["Edit"] = 'E',
|
||||
["Play Tape"] = 'P',
|
||||
["Stop Tape"] = 'S',
|
||||
["RTZ Tape"] = 'r',
|
||||
["Record Tape"] = 'R',
|
||||
["Insert Next Tape"] = '>',
|
||||
["Insert Previous Tape"] = '<',
|
||||
["Next Tape Block"] = ']',
|
||||
["Prev Tape Block"] = '[',
|
||||
["Get Tape Status"] = 'S',
|
||||
["Insert Next Disk"] = '}',
|
||||
["Insert Previous Disk"] = '{',
|
||||
["Get Disk Status"] = 's',
|
||||
["Return"] = 'e',
|
||||
["Space"] = '-',
|
||||
["Up Cursor"] = 'u',
|
||||
["Down Cursor"] = 'd',
|
||||
["Left Cursor"] = 'l',
|
||||
["Right Cursor"] = 'r'
|
||||
},
|
||||
["N64"] = new Dictionary<string, char>
|
||||
{
|
||||
["C Up"] = 'u',
|
||||
["C Down"] = 'd',
|
||||
|
|
|
@ -75,7 +75,7 @@ namespace BizHawk.Client.Common
|
|||
_mDisk = disk;
|
||||
if (disk)
|
||||
{
|
||||
var path = TempFileCleaner.GetTempFilename("movieOnDisk");
|
||||
var path = TempFileManager.GetTempFilename("movieOnDisk");
|
||||
stream = new FileStream(path, FileMode.Create, System.Security.AccessControl.FileSystemRights.FullControl, FileShare.None, 4 * 1024, FileOptions.DeleteOnClose);
|
||||
}
|
||||
else
|
||||
|
|
|
@ -319,7 +319,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
|
|||
if (Global.Emulator is SMS && (Global.Emulator as SMS).IsSG1000)
|
||||
{
|
||||
movie.HeaderEntries.Add("IsSGMode", "1");
|
||||
}
|
||||
}
|
||||
|
||||
if (Global.Emulator is SMS && (Global.Emulator as SMS).IsGameGear)
|
||||
{
|
||||
|
|
|
@ -203,8 +203,15 @@ namespace BizHawk.Client.Common
|
|||
errorMsg = except.ToString();
|
||||
}
|
||||
|
||||
m.Filename += "." + BkmMovie.Extension;
|
||||
|
||||
if (m != null)
|
||||
{
|
||||
m.Filename += "." + BkmMovie.Extension;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception(errorMsg);
|
||||
}
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
|
|
|
@ -79,7 +79,11 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
continue;
|
||||
}
|
||||
else if ((currentFrame % _step > 0) && (currentFrame + 1 != _tsm.LastEditedFrame))
|
||||
else if (currentFrame + 1 == _tsm.LastEditedFrame)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else if (currentFrame % _step > 0)
|
||||
{
|
||||
// ignore the pattern if the state doesn't belong already, drop it blindly and skip everything
|
||||
if (_tsm.RemoveState(currentFrame))
|
||||
|
@ -190,8 +194,8 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
else
|
||||
{
|
||||
// we're very sorry about failing to find states to remove, but we can't go beyond capacity, so remove at least something
|
||||
// this shouldn't happen, but if we don't do it here, nothing good will happen either
|
||||
// we're very sorry about failing to find states to remove, but we can't go beyond capacity, so remove at least something
|
||||
// this shouldn't happen, but if we don't do it here, nothing good will happen either
|
||||
if (_tsm.RemoveState(_tsm.GetStateFrameByIndex(1)))
|
||||
{
|
||||
// decrementing this if no state was removed is BAD
|
||||
|
|
|
@ -379,11 +379,6 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
ChangeLog.EndBatch();
|
||||
}
|
||||
|
||||
if (Global.Emulator.Frame < Log.Count) // Don't stay in recording mode? Fixes TAStudio recording after paint inserting.
|
||||
{
|
||||
SwitchToPlay();
|
||||
}
|
||||
}
|
||||
|
||||
private void ExtendMovieForEdit(int numFrames)
|
||||
|
@ -409,11 +404,6 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
ChangeLog.EndBatch();
|
||||
}
|
||||
|
||||
if (Global.Emulator.Frame < Log.Count) // Don't stay in recording mode? Fixes TAStudio recording after paint inserting.
|
||||
{
|
||||
SwitchToPlay();
|
||||
}
|
||||
}
|
||||
|
||||
public void ToggleBoolState(int frame, string buttonName)
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace BizHawk.Client.Common
|
|||
_mCapacity = capacity;
|
||||
if (onDisk)
|
||||
{
|
||||
var path = TempFileCleaner.GetTempFilename("rewindbuf");
|
||||
var path = TempFileManager.GetTempFilename("rewindbuf");
|
||||
|
||||
// I checked the DeleteOnClose operation to make sure it cleans up when the process is aborted, and it seems to.
|
||||
// Otherwise we would have a more complex tempfile management problem here.
|
||||
|
|
|
@ -21,6 +21,14 @@ namespace BizHawk.Client.Common
|
|||
/// </summary>
|
||||
public static SeparatorWatch Instance => new SeparatorWatch();
|
||||
|
||||
public static SeparatorWatch NewSeparatorWatch(string description)
|
||||
{
|
||||
return new SeparatorWatch
|
||||
{
|
||||
Notes = description
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the appropriate DisplayType
|
||||
/// </summary>
|
||||
|
@ -45,10 +53,10 @@ namespace BizHawk.Client.Common
|
|||
/// </summary>
|
||||
public override int Previous => 0;
|
||||
|
||||
/// <summary>
|
||||
/// Ignore that stuff
|
||||
/// </summary>
|
||||
public override string ValueString => "";
|
||||
/// <summary>
|
||||
/// Ignore that stuff
|
||||
/// </summary>
|
||||
public override string ValueString => Notes; //"";
|
||||
|
||||
/// <summary>
|
||||
/// Ignore that stuff
|
||||
|
@ -62,13 +70,26 @@ namespace BizHawk.Client.Common
|
|||
/// <returns>A well formatted string representation</returns>
|
||||
public override string ToDisplayString()
|
||||
{
|
||||
return "----";
|
||||
if (Notes == null || Notes == "")
|
||||
return "----";
|
||||
else
|
||||
return Notes;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ignore that stuff
|
||||
/// <summary>
|
||||
/// Transforms the current instance into a string
|
||||
/// </summary>
|
||||
public override bool Poke(string value)
|
||||
/// <returns>A <see cref="string"/> representation of the current <see cref="Watch"/></returns>
|
||||
public override string ToString()
|
||||
{
|
||||
return $"0\tS\t_\t1\t\t{Notes.Trim('\r', '\n')}";
|
||||
//return $"{(Domain == null && Address == 0 ? "0" : Address.ToHexString((Domain?.Size ?? 0xFF - 1).NumHexDigits()))}\t{SizeAsChar}\t{TypeAsChar}\t{Convert.ToInt32(BigEndian)}\t{Domain?.Name}\t{Notes.Trim('\r', '\n')}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ignore that stuff
|
||||
/// </summary>
|
||||
public override bool Poke(string value)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -95,6 +116,8 @@ namespace BizHawk.Client.Common
|
|||
/// </summary>
|
||||
public override void Update()
|
||||
{
|
||||
}
|
||||
//AddressString = (Notes == null || Notes == "") ? "" : Notes;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -142,7 +142,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
default:
|
||||
case WatchSize.Separator:
|
||||
return SeparatorWatch.Instance;
|
||||
return SeparatorWatch.NewSeparatorWatch(note);
|
||||
case WatchSize.Byte:
|
||||
return new ByteWatch(domain, address, type, bigEndian, note, (byte)value, (byte)prev, changeCount);
|
||||
case WatchSize.Word:
|
||||
|
|
|
@ -54,6 +54,15 @@
|
|||
<Reference Include="System.Xml.Linq" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DATTools\DATConverter.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DATTools\DATConverter.Designer.cs">
|
||||
<DependentUpon>DATConverter.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DATTools\DATParserBase.cs" />
|
||||
<Compile Include="DATTools\NOINTROParser.cs" />
|
||||
<Compile Include="DATTools\TOSECParser.cs" />
|
||||
<Compile Include="DB.cs" />
|
||||
<Compile Include="DBMan_MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
|
@ -67,6 +76,9 @@
|
|||
<Compile Include="DiscHash.cs" />
|
||||
<Compile Include="PsxDBJob.cs" />
|
||||
<Compile Include="RomHasher.cs" />
|
||||
<EmbeddedResource Include="DATTools\DATConverter.resx">
|
||||
<DependentUpon>DATConverter.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DBMan_MainForm.resx">
|
||||
<DependentUpon>DBMan_MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
@ -117,4 +129,4 @@
|
|||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
</Project>
|
|
@ -0,0 +1,215 @@
|
|||
namespace BizHawk.Client.DBMan
|
||||
{
|
||||
partial class DATConverter
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.comboBoxSystemSelect = new System.Windows.Forms.ComboBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.groupImportTypes = new System.Windows.Forms.GroupBox();
|
||||
this.radioTOSEC = new System.Windows.Forms.RadioButton();
|
||||
this.listBoxFiles = new System.Windows.Forms.ListBox();
|
||||
this.buttonAddFiles = new System.Windows.Forms.Button();
|
||||
this.buttonRemove = new System.Windows.Forms.Button();
|
||||
this.buttonStartProcessing = new System.Windows.Forms.Button();
|
||||
this.textBoxOutputFolder = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.radioNOINTRO = new System.Windows.Forms.RadioButton();
|
||||
this.groupImportTypes.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// comboBoxSystemSelect
|
||||
//
|
||||
this.comboBoxSystemSelect.FormattingEnabled = true;
|
||||
this.comboBoxSystemSelect.Location = new System.Drawing.Point(13, 13);
|
||||
this.comboBoxSystemSelect.Name = "comboBoxSystemSelect";
|
||||
this.comboBoxSystemSelect.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBoxSystemSelect.TabIndex = 0;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(141, 20);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(74, 13);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = "Select System";
|
||||
//
|
||||
// groupImportTypes
|
||||
//
|
||||
this.groupImportTypes.Controls.Add(this.radioNOINTRO);
|
||||
this.groupImportTypes.Controls.Add(this.radioTOSEC);
|
||||
this.groupImportTypes.Location = new System.Drawing.Point(13, 50);
|
||||
this.groupImportTypes.Name = "groupImportTypes";
|
||||
this.groupImportTypes.Size = new System.Drawing.Size(200, 100);
|
||||
this.groupImportTypes.TabIndex = 2;
|
||||
this.groupImportTypes.TabStop = false;
|
||||
this.groupImportTypes.Text = "Import Type";
|
||||
//
|
||||
// radioTOSEC
|
||||
//
|
||||
this.radioTOSEC.AutoSize = true;
|
||||
this.radioTOSEC.Location = new System.Drawing.Point(7, 20);
|
||||
this.radioTOSEC.Name = "radioTOSEC";
|
||||
this.radioTOSEC.Size = new System.Drawing.Size(61, 17);
|
||||
this.radioTOSEC.TabIndex = 0;
|
||||
this.radioTOSEC.TabStop = true;
|
||||
this.radioTOSEC.Text = "TOSEC";
|
||||
this.radioTOSEC.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// listBoxFiles
|
||||
//
|
||||
this.listBoxFiles.FormattingEnabled = true;
|
||||
this.listBoxFiles.HorizontalScrollbar = true;
|
||||
this.listBoxFiles.Location = new System.Drawing.Point(13, 180);
|
||||
this.listBoxFiles.Name = "listBoxFiles";
|
||||
this.listBoxFiles.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.listBoxFiles.Size = new System.Drawing.Size(328, 121);
|
||||
this.listBoxFiles.TabIndex = 3;
|
||||
this.listBoxFiles.UseTabStops = false;
|
||||
//
|
||||
// buttonAddFiles
|
||||
//
|
||||
this.buttonAddFiles.Location = new System.Drawing.Point(348, 180);
|
||||
this.buttonAddFiles.Name = "buttonAddFiles";
|
||||
this.buttonAddFiles.Size = new System.Drawing.Size(107, 23);
|
||||
this.buttonAddFiles.TabIndex = 4;
|
||||
this.buttonAddFiles.Text = "Browse";
|
||||
this.buttonAddFiles.UseVisualStyleBackColor = true;
|
||||
this.buttonAddFiles.Click += new System.EventHandler(this.buttonAddFiles_Click);
|
||||
//
|
||||
// buttonRemove
|
||||
//
|
||||
this.buttonRemove.Location = new System.Drawing.Point(348, 210);
|
||||
this.buttonRemove.Name = "buttonRemove";
|
||||
this.buttonRemove.Size = new System.Drawing.Size(107, 23);
|
||||
this.buttonRemove.TabIndex = 5;
|
||||
this.buttonRemove.Text = "Remove";
|
||||
this.buttonRemove.UseVisualStyleBackColor = true;
|
||||
this.buttonRemove.Click += new System.EventHandler(this.buttonRemove_Click);
|
||||
//
|
||||
// buttonStartProcessing
|
||||
//
|
||||
this.buttonStartProcessing.Location = new System.Drawing.Point(13, 356);
|
||||
this.buttonStartProcessing.Name = "buttonStartProcessing";
|
||||
this.buttonStartProcessing.Size = new System.Drawing.Size(101, 23);
|
||||
this.buttonStartProcessing.TabIndex = 6;
|
||||
this.buttonStartProcessing.Text = "Start Processing";
|
||||
this.buttonStartProcessing.UseVisualStyleBackColor = true;
|
||||
this.buttonStartProcessing.Click += new System.EventHandler(this.buttonStartProcessing_Click);
|
||||
//
|
||||
// textBoxOutputFolder
|
||||
//
|
||||
this.textBoxOutputFolder.Location = new System.Drawing.Point(13, 330);
|
||||
this.textBoxOutputFolder.Name = "textBoxOutputFolder";
|
||||
this.textBoxOutputFolder.Size = new System.Drawing.Size(328, 20);
|
||||
this.textBoxOutputFolder.TabIndex = 7;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(12, 164);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(75, 13);
|
||||
this.label2.TabIndex = 8;
|
||||
this.label2.Text = "Files to Import:";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(12, 314);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(87, 13);
|
||||
this.label3.TabIndex = 9;
|
||||
this.label3.Text = "Output Directory:";
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Location = new System.Drawing.Point(348, 328);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(107, 23);
|
||||
this.button2.TabIndex = 10;
|
||||
this.button2.Text = "Select Output DIR";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// radioNOINTRO
|
||||
//
|
||||
this.radioNOINTRO.AutoSize = true;
|
||||
this.radioNOINTRO.Location = new System.Drawing.Point(7, 44);
|
||||
this.radioNOINTRO.Name = "radioNOINTRO";
|
||||
this.radioNOINTRO.Size = new System.Drawing.Size(172, 17);
|
||||
this.radioNOINTRO.TabIndex = 1;
|
||||
this.radioNOINTRO.TabStop = true;
|
||||
this.radioNOINTRO.Text = "NOINTRO (standard DAT only)";
|
||||
this.radioNOINTRO.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// DATConverter
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(469, 391);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.textBoxOutputFolder);
|
||||
this.Controls.Add(this.buttonStartProcessing);
|
||||
this.Controls.Add(this.buttonRemove);
|
||||
this.Controls.Add(this.buttonAddFiles);
|
||||
this.Controls.Add(this.listBoxFiles);
|
||||
this.Controls.Add(this.groupImportTypes);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.comboBoxSystemSelect);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.Name = "DATConverter";
|
||||
this.Text = "DATConverter";
|
||||
this.groupImportTypes.ResumeLayout(false);
|
||||
this.groupImportTypes.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ComboBox comboBoxSystemSelect;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.GroupBox groupImportTypes;
|
||||
private System.Windows.Forms.RadioButton radioTOSEC;
|
||||
private System.Windows.Forms.ListBox listBoxFiles;
|
||||
private System.Windows.Forms.Button buttonAddFiles;
|
||||
private System.Windows.Forms.Button buttonRemove;
|
||||
private System.Windows.Forms.Button buttonStartProcessing;
|
||||
private System.Windows.Forms.TextBox textBoxOutputFolder;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.RadioButton radioNOINTRO;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,158 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Common;
|
||||
using System.IO;
|
||||
|
||||
namespace BizHawk.Client.DBMan
|
||||
{
|
||||
public partial class DATConverter : Form
|
||||
{
|
||||
public DATConverter()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
var systems = Enum.GetValues(typeof(SystemType)).Cast<SystemType>().OrderBy(a => a.ToString()).ToList();
|
||||
|
||||
comboBoxSystemSelect.DataSource = systems;
|
||||
|
||||
textBoxOutputFolder.Text = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Choose output directory
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
var fbd = new FolderBrowserDialog();
|
||||
fbd.ShowNewFolderButton = true;
|
||||
fbd.Description = "Choose a new output folder";
|
||||
if (fbd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
textBoxOutputFolder.Text = fbd.SelectedPath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add import files to the list box
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void buttonAddFiles_Click(object sender, EventArgs e)
|
||||
{
|
||||
var ofd = new OpenFileDialog();
|
||||
ofd.CheckFileExists = true;
|
||||
ofd.CheckPathExists = true;
|
||||
ofd.InitialDirectory = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
|
||||
ofd.Multiselect = true;
|
||||
|
||||
if (ofd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
foreach (var f in ofd.FileNames)
|
||||
{
|
||||
if (!listBoxFiles.Items.Contains((f)))
|
||||
{
|
||||
listBoxFiles.Items.Add(f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes selected input files from the listbox
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void buttonRemove_Click(object sender, EventArgs e)
|
||||
{
|
||||
List<string> files = new List<string>();
|
||||
foreach (var s in listBoxFiles.SelectedItems)
|
||||
{
|
||||
files.Add(s.ToString());
|
||||
}
|
||||
|
||||
if (files.Count > 0)
|
||||
{
|
||||
foreach (var s in files)
|
||||
listBoxFiles.Items.Remove(s);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attempt to process all selected files
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void buttonStartProcessing_Click(object sender, EventArgs e)
|
||||
{
|
||||
// initial checks
|
||||
var checkedBtn = groupImportTypes.Controls.OfType<RadioButton>().FirstOrDefault(r => r.Checked);
|
||||
if (checkedBtn == null)
|
||||
{
|
||||
MessageBox.Show("You need to select an import type.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Directory.Exists(textBoxOutputFolder.Text))
|
||||
{
|
||||
MessageBox.Show("Chosen output folder is not valid");
|
||||
return;
|
||||
}
|
||||
|
||||
if (listBoxFiles.Items.Count == 0)
|
||||
{
|
||||
MessageBox.Show("No files chosen for input");
|
||||
return;
|
||||
}
|
||||
|
||||
List<string> files = new List<string>();
|
||||
|
||||
foreach (var s in listBoxFiles.Items)
|
||||
{
|
||||
if (s.ToString().Trim() == "")
|
||||
{
|
||||
MessageBox.Show("The selected file: " + s.ToString() + "Cannot be found.\n\nSort this out and try again");
|
||||
return;
|
||||
}
|
||||
|
||||
files.Add((string)s);
|
||||
}
|
||||
|
||||
string res = "";
|
||||
|
||||
if (radioTOSEC.Checked)
|
||||
{
|
||||
DATParser tp = new TOSECParser((SystemType)Enum.Parse(typeof(SystemType), comboBoxSystemSelect.SelectedValue.ToString()));
|
||||
res = tp.ParseDAT(files.ToArray());
|
||||
}
|
||||
else if (radioNOINTRO.Checked)
|
||||
{
|
||||
DATParser dp = new NOINTROParser((SystemType)Enum.Parse(typeof(SystemType), comboBoxSystemSelect.SelectedValue.ToString()));
|
||||
res = dp.ParseDAT(files.ToArray());
|
||||
}
|
||||
|
||||
string fName = "gamedb_" +
|
||||
GameDB.GetSystemCode((SystemType)Enum.Parse(typeof(SystemType), comboBoxSystemSelect.SelectedValue.ToString())) +
|
||||
"_DevExport_" + DateTime.UtcNow.ToString("yyyy-MM-dd_HH_mm_ss") + ".txt";
|
||||
|
||||
try
|
||||
{
|
||||
File.WriteAllText(Path.Combine(textBoxOutputFolder.Text, fName), res);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Error writing file: " + fName + "\n\n" + ex.Message);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -0,0 +1,223 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace BizHawk.Client.DBMan
|
||||
{
|
||||
public abstract class DATParser
|
||||
{
|
||||
/// <summary>
|
||||
/// Required to generate a GameDB file
|
||||
/// </summary>
|
||||
public abstract SystemType SysType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Parses multiple DAT files and returns a single GamesDB format csv string
|
||||
/// </summary>
|
||||
/// <param name="filePath"></param>
|
||||
/// <returns></returns>
|
||||
public abstract string ParseDAT(string[] filePath);
|
||||
|
||||
protected List<string> IncomingData = new List<string>();
|
||||
|
||||
protected List<GameDB> Data = new List<GameDB>();
|
||||
|
||||
protected StringBuilder sb = new StringBuilder();
|
||||
|
||||
protected void AddCommentBlock(string comment)
|
||||
{
|
||||
sb.AppendLine(";;;;;;;;;;--------------------------------------------------;;;;;;;;;;");
|
||||
sb.AppendLine(";;; " + comment.Replace("\r\n", "\r\n;;; "));
|
||||
sb.AppendLine(";;;;;;;;;;--------------------------------------------------;;;;;;;;;;");
|
||||
}
|
||||
|
||||
protected void AddCommentBlock(string[] comment)
|
||||
{
|
||||
sb.AppendLine(";;;;;;;;;;--------------------------------------------------;;;;;;;;;;");
|
||||
for (int i = 0; i < comment.Length; i++)
|
||||
{
|
||||
sb.AppendLine(";;; " + comment[i]);
|
||||
}
|
||||
sb.AppendLine(";;;;;;;;;;--------------------------------------------------;;;;;;;;;;");
|
||||
}
|
||||
|
||||
protected void AppendCSVData(List<GameDB> data)
|
||||
{
|
||||
if (data == null || data.Count == 0)
|
||||
{
|
||||
sb.AppendLine(";");
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var d in data)
|
||||
{
|
||||
// hash
|
||||
sb.Append(d.HASH);
|
||||
sb.Append("\t");
|
||||
// status
|
||||
sb.Append(d.Status);
|
||||
sb.Append("\t");
|
||||
// name
|
||||
sb.Append(d.Name);
|
||||
sb.Append("\t");
|
||||
// system
|
||||
sb.Append(d.System);
|
||||
|
||||
// additional optional fields
|
||||
bool[] populated = new bool[4];
|
||||
if (d.Notes != null)
|
||||
populated[0] = true;
|
||||
if (d.MetaData != null)
|
||||
populated[1] = true;
|
||||
if (d.Region != null)
|
||||
populated[2] = true;
|
||||
if (d.ForcedCore != null)
|
||||
populated[3] = true;
|
||||
|
||||
int last = 0;
|
||||
for (int i = 3; i >= 0; i--)
|
||||
{
|
||||
if (populated[i])
|
||||
{
|
||||
last = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int cnt = 0;
|
||||
|
||||
// notes
|
||||
if (d.Notes != null)
|
||||
{
|
||||
sb.Append("\t");
|
||||
sb.Append(d.Notes);
|
||||
}
|
||||
else if (cnt++ <= last)
|
||||
{
|
||||
sb.Append("\t");
|
||||
}
|
||||
// metadata
|
||||
if (d.MetaData != null)
|
||||
{
|
||||
sb.Append("\t");
|
||||
sb.Append(d.MetaData);
|
||||
}
|
||||
else if (cnt++ <= last)
|
||||
{
|
||||
sb.Append("\t");
|
||||
}
|
||||
// region
|
||||
if (d.Region != null)
|
||||
{
|
||||
sb.Append("\t");
|
||||
sb.Append(d.Region);
|
||||
}
|
||||
else if (cnt++ <= last)
|
||||
{
|
||||
sb.Append("\t");
|
||||
}
|
||||
// force core
|
||||
if (d.ForcedCore != null)
|
||||
{
|
||||
sb.Append("\t");
|
||||
sb.Append(d.ForcedCore);
|
||||
}
|
||||
|
||||
sb.Append("\r\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DAT data is parsed into this object
|
||||
/// (every field is not always used)
|
||||
/// </summary>
|
||||
public class GameDB
|
||||
{
|
||||
// COL0: Hash
|
||||
public string SHA1 { get; set; }
|
||||
public string MD5 { get; set; }
|
||||
// COL1: Status code indicator
|
||||
public string Status { get; set; }
|
||||
// COL2: Game title
|
||||
public string Name { get; set; }
|
||||
// COL3: System code (must match what bizhawk uses in Emulation.Common/Database/Database.cs
|
||||
public string System { get; set; }
|
||||
// COL4: Unknown - not currently parsed in database.cs, but some gamedb files use this for publisher/genre/etc
|
||||
public string Notes { get; set; }
|
||||
// COL5: Metadata
|
||||
public string MetaData { get; set; }
|
||||
// COL6: Region
|
||||
public string Region { get; set; }
|
||||
// COL7: Forced Fore
|
||||
public string ForcedCore { get; set; }
|
||||
|
||||
// prefer MD5 if available
|
||||
public string HASH
|
||||
{
|
||||
get
|
||||
{
|
||||
if (MD5.Trim() == "")
|
||||
return "sha1:" + SHA1;
|
||||
|
||||
return MD5;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used to get the correct system code (that each gamedb csv needs)
|
||||
/// </summary>
|
||||
/// <param name="type"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetSystemCode(SystemType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case SystemType.P83:
|
||||
return "83P";
|
||||
case SystemType.X32:
|
||||
return "32X";
|
||||
default:
|
||||
return type.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum SystemType
|
||||
{
|
||||
SAT,
|
||||
PSP,
|
||||
PSX,
|
||||
GEN,
|
||||
PCFX,
|
||||
PCECD,
|
||||
GB,
|
||||
DGB,
|
||||
AppleII,
|
||||
C64,
|
||||
ZXSpectrum,
|
||||
AmstradCPC,
|
||||
SNES,
|
||||
NES,
|
||||
P83,
|
||||
GBC,
|
||||
A78,
|
||||
GBA,
|
||||
X32,
|
||||
GG,
|
||||
SG,
|
||||
SGX,
|
||||
A26,
|
||||
Coleco,
|
||||
INTV,
|
||||
N64,
|
||||
WSWAN,
|
||||
Lynx,
|
||||
VB,
|
||||
UZE,
|
||||
NGP
|
||||
}
|
||||
}
|
|
@ -0,0 +1,323 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BizHawk.Client.DBMan
|
||||
{
|
||||
public class NOINTROParser : DATParser
|
||||
{
|
||||
/// <summary>
|
||||
/// Required to generate a GameDB file
|
||||
/// </summary>
|
||||
public override SystemType SysType { get; set; }
|
||||
|
||||
private List<XDocument> xmls = new List<XDocument>();
|
||||
|
||||
public NOINTROParser(SystemType type)
|
||||
{
|
||||
SysType = type;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parses multiple DAT files and returns a single GamesDB format csv string
|
||||
/// </summary>
|
||||
/// <param name="filePath"></param>
|
||||
/// <returns></returns>
|
||||
public override string ParseDAT(string[] filePath)
|
||||
{
|
||||
foreach (var s in filePath)
|
||||
{
|
||||
try
|
||||
{
|
||||
xmls.Add(XDocument.Load(s));
|
||||
}
|
||||
catch
|
||||
{
|
||||
var res = MessageBox.Show("Could not parse document as valid XML:\n\n" + s + "\n\nDo you wish to continue any other processing?", "Parsing Error", MessageBoxButtons.YesNo);
|
||||
if (res != DialogResult.Yes)
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
int startIndex = 0;
|
||||
|
||||
// actual tosec parsing
|
||||
foreach (var obj in xmls)
|
||||
{
|
||||
startIndex = Data.Count > 0 ? Data.Count - 1 : 0;
|
||||
// get header info
|
||||
var header = obj.Root.Descendants("header").First();
|
||||
var name = header.Element("name").Value;
|
||||
var version = header.Element("version").Value;
|
||||
var description = header.Element("description").Value + " - " + version;
|
||||
|
||||
// start comment block
|
||||
List<string> comments = new List<string>
|
||||
{
|
||||
"Type:\t" + "NO-INTRO",
|
||||
"Source:\t" + description,
|
||||
"FileGen:\t" + DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + " (UTC)",
|
||||
};
|
||||
|
||||
AddCommentBlock(comments.ToArray());
|
||||
|
||||
// process each entry
|
||||
var query = obj.Root.Descendants("game");
|
||||
foreach (var g in query)
|
||||
{
|
||||
GameDB item = new GameDB();
|
||||
item.Name = g.Value;
|
||||
item.SHA1 = g.Elements("rom").First().Attribute("sha1").Value.ToUpper();
|
||||
item.MD5 = g.Elements("rom").First().Attribute("md5").Value.ToUpper();
|
||||
item.System = GameDB.GetSystemCode(SysType);
|
||||
|
||||
ParseNOINTROFlags(item);
|
||||
|
||||
Data.Add(item);
|
||||
}
|
||||
|
||||
// add this file's data to the stringbuilder
|
||||
// first we will sort into various ROMSTATUS groups
|
||||
var working = Data.Skip(startIndex).ToList();
|
||||
|
||||
var baddump = working.Where(st => st.Status == "B").OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Bad Dumps");
|
||||
AppendCSVData(baddump);
|
||||
|
||||
var hack = working.Where(st => st.Status == "H").OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Hacks");
|
||||
AppendCSVData(hack);
|
||||
|
||||
var over = working.Where(st => st.Status == "O").OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Over Dumps");
|
||||
AppendCSVData(over);
|
||||
|
||||
var trans = working.Where(st => st.Status == "T").OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Translated");
|
||||
AppendCSVData(trans);
|
||||
|
||||
var good = working.Where(st => st.Status == "" || st.Status == null).OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Believed Good");
|
||||
AppendCSVData(good);
|
||||
}
|
||||
|
||||
string result = sb.ToString();
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parses all the weird TOSEC flags within the game field
|
||||
/// Detailed info here: https://www.tosecdev.org/tosec-naming-convention
|
||||
/// Guts of this has been reused from here: https://github.com/Asnivor/MedLaunch/blob/master/MedLaunch/_Debug/DATDB/Platforms/TOSEC/StringConverterToSec.cs
|
||||
/// </summary>
|
||||
/// <param name="g"></param>
|
||||
private void ParseNOINTROFlags(GameDB g)
|
||||
{
|
||||
string nameString = g.Name;
|
||||
|
||||
// remove uninteresting options
|
||||
string a = RemoveUnneededOptions(nameString);
|
||||
|
||||
// process data contained in ()
|
||||
string[] d = a.ToString().Split('(', ')');
|
||||
|
||||
if (d.Length > 0)
|
||||
{
|
||||
// name field
|
||||
}
|
||||
|
||||
if (d.Length > 1)
|
||||
{
|
||||
if (d[1].Length >= 3)
|
||||
{
|
||||
// country
|
||||
g.Region = d[1].Trim();
|
||||
}
|
||||
}
|
||||
|
||||
if (d.Length > 2)
|
||||
{
|
||||
// parse all other () fields
|
||||
// because these are not mandatory this can be a confusing process
|
||||
for (int i = 4; i < d.Length; i++)
|
||||
{
|
||||
string f = d[i].Trim();
|
||||
|
||||
// check for language
|
||||
if (IsLanguageFlag(f) == true)
|
||||
{
|
||||
g.Notes = f;
|
||||
continue;
|
||||
}
|
||||
|
||||
// version - ignore
|
||||
|
||||
// check development status (not currently implemented)
|
||||
if (IsDevelopmenttStatus(f) == true)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// check copyright status (not currently implemented)
|
||||
if (IsCopyrightStatus(f) == true)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// country flag(s)
|
||||
if (IsCountryFlag(f) == true)
|
||||
{
|
||||
g.Region = f;
|
||||
continue;
|
||||
}
|
||||
|
||||
// language - if present add to notes
|
||||
if (IsLanguageFlag(f) == true)
|
||||
{
|
||||
g.Notes = f;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Media Type - ignore for now
|
||||
// Media Label - ignore for now
|
||||
}
|
||||
|
||||
// process dump info flags and other info contained in []
|
||||
if (nameString.Contains("[") && nameString.Contains("]"))
|
||||
{
|
||||
List<string> e = nameString.ToString().Split('[', ']').ToList();
|
||||
// remove first entry (this is the bit before the [] entries start
|
||||
e.RemoveAt(0);
|
||||
// remove empty entries
|
||||
e = e.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList();
|
||||
|
||||
if (e.Count > 0)
|
||||
{
|
||||
// bizhawk currently only has a few different RomStatus values (not as many as TOSEC anyway)
|
||||
// Parsing priority will be:
|
||||
// RomStatus.BadDump
|
||||
// RomStatus.Hack
|
||||
// RomStatus.Overdump
|
||||
// RomStatus.GoodDump
|
||||
// RomStatus.TranslatedRom
|
||||
// everything else
|
||||
// all tosec cr, h, t etc.. will fall under RomStatus.Hack
|
||||
|
||||
if (e.Where(str =>
|
||||
// bad dump
|
||||
str == "b" || str.StartsWith("b ")).ToList().Count > 0)
|
||||
{
|
||||
// RomStatus.BadDump
|
||||
g.Status = "B";
|
||||
}
|
||||
else if (e.Where(str =>
|
||||
// BIOS
|
||||
str == "BIOS" || str.StartsWith("BIOS ")).ToList().Count > 0)
|
||||
{
|
||||
// RomStatus.BIOS
|
||||
g.Status = "I";
|
||||
}
|
||||
else
|
||||
{
|
||||
g.Status = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsDevelopmenttStatus(string s)
|
||||
{
|
||||
List<string> DS = new List<string>
|
||||
{
|
||||
"alpha", "beta", "preview", "pre-release", "proto"
|
||||
};
|
||||
|
||||
bool b = DS.Any(s.Contains);
|
||||
return b;
|
||||
}
|
||||
|
||||
public static bool IsCopyrightStatus(string s)
|
||||
{
|
||||
List<string> CS = new List<string>
|
||||
{
|
||||
"CW", "CW-R", "FW", "GW", "GW-R", "LW", "PD", "SW", "SW-R"
|
||||
};
|
||||
|
||||
bool b = CS.Any(s.Contains);
|
||||
return b;
|
||||
}
|
||||
|
||||
public static bool IsLanguageFlag(string s)
|
||||
{
|
||||
List<string> LC = new List<string>
|
||||
{
|
||||
"En", "Ja", "Fr", "De", "Es", "It", "Nl", "Pt", "Sv", "No", "Da", "Fi", "Zh", "Ko", "Pl"
|
||||
};
|
||||
|
||||
bool b = false;
|
||||
|
||||
if (!s.Contains("[") && !s.Contains("]"))
|
||||
{
|
||||
foreach (var x in LC)
|
||||
{
|
||||
if (s == x || s.StartsWith(x + ",") || s.EndsWith("," + x))
|
||||
{
|
||||
b = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//b = LC.Any(s.Contains);
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
public static bool IsCountryFlag(string s)
|
||||
{
|
||||
List<string> CC = new List<string>
|
||||
{
|
||||
"World", "Australia", "Brazil", "Canada", "China", "France", "Germany", "Hong Kong", "Italy",
|
||||
"Japan", "Korea", "Netherlands", "Spain", "Sweden", "USA", "Europe", "Asia"
|
||||
};
|
||||
|
||||
bool b = false;
|
||||
|
||||
if (!s.Contains("[") && !s.Contains("]"))
|
||||
{
|
||||
foreach (var x in CC)
|
||||
{
|
||||
if (s == x || s.StartsWith(x) || s.EndsWith(x))
|
||||
{
|
||||
b = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//b = CC.Any(s.Contains);
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
public static string RemoveUnneededOptions(string nameString)
|
||||
{
|
||||
// Remove unneeded entries
|
||||
string n = nameString
|
||||
.Replace(" (demo) ", " ")
|
||||
.Replace(" (demo-kiosk) ", " ")
|
||||
.Replace(" (demo-playable) ", " ")
|
||||
.Replace(" (demo-rolling) ", " ")
|
||||
.Replace(" (demo-slideshow) ", " ");
|
||||
|
||||
return n;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,379 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BizHawk.Client.DBMan
|
||||
{
|
||||
public class TOSECParser : DATParser
|
||||
{
|
||||
/// <summary>
|
||||
/// Required to generate a GameDB file
|
||||
/// </summary>
|
||||
public override SystemType SysType { get; set; }
|
||||
|
||||
private List<XDocument> xmls = new List<XDocument>();
|
||||
|
||||
public TOSECParser(SystemType type)
|
||||
{
|
||||
SysType = type;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parses multiple DAT files and returns a single GamesDB format csv string
|
||||
/// </summary>
|
||||
/// <param name="filePath"></param>
|
||||
/// <returns></returns>
|
||||
public override string ParseDAT(string[] filePath)
|
||||
{
|
||||
foreach (var s in filePath)
|
||||
{
|
||||
try
|
||||
{
|
||||
xmls.Add(XDocument.Load(s));
|
||||
}
|
||||
catch
|
||||
{
|
||||
var res = MessageBox.Show("Could not parse document as valid XML:\n\n" + s + "\n\nDo you wish to continue any other processing?", "Parsing Error", MessageBoxButtons.YesNo);
|
||||
if (res != DialogResult.Yes)
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
int startIndex = 0;
|
||||
|
||||
// actual tosec parsing
|
||||
foreach (var obj in xmls)
|
||||
{
|
||||
startIndex = Data.Count > 0 ? Data.Count - 1 : 0;
|
||||
// get header info
|
||||
var header = obj.Root.Descendants("header").First();
|
||||
var category = header.Element("category").Value;
|
||||
var name = header.Element("name").Value;
|
||||
var version = header.Element("version").Value;
|
||||
var description = header.Element("description").Value;
|
||||
|
||||
// start comment block
|
||||
List<string> comments = new List<string>
|
||||
{
|
||||
"Type:\t" + category,
|
||||
"Source:\t" + description,
|
||||
"FileGen:\t" + DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + " (UTC)",
|
||||
};
|
||||
|
||||
AddCommentBlock(comments.ToArray());
|
||||
|
||||
// process each entry
|
||||
var query = obj.Root.Descendants("game");
|
||||
foreach (var g in query)
|
||||
{
|
||||
GameDB item = new GameDB();
|
||||
item.Name = g.Value;
|
||||
item.SHA1 = g.Elements("rom").First().Attribute("sha1").Value.ToUpper();
|
||||
item.MD5 = g.Elements("rom").First().Attribute("md5").Value.ToUpper();
|
||||
item.System = GameDB.GetSystemCode(SysType);
|
||||
|
||||
ParseTOSECFlags(item);
|
||||
|
||||
Data.Add(item);
|
||||
}
|
||||
|
||||
// add this file's data to the stringbuilder
|
||||
// first we will sort into various ROMSTATUS groups
|
||||
var working = Data.Skip(startIndex).ToList();
|
||||
|
||||
var baddump = working.Where(st => st.Status == "B").OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Bad Dumps");
|
||||
AppendCSVData(baddump);
|
||||
|
||||
var hack = working.Where(st => st.Status == "H").OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Hacks");
|
||||
AppendCSVData(hack);
|
||||
|
||||
var over = working.Where(st => st.Status == "O").OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Over Dumps");
|
||||
AppendCSVData(over);
|
||||
|
||||
var trans = working.Where(st => st.Status == "T").OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Translated");
|
||||
AppendCSVData(trans);
|
||||
|
||||
var pd = working.Where(st => st.Status == "D").OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Home Brew");
|
||||
AppendCSVData(pd);
|
||||
|
||||
var good = working.Where(st => st.Status == "" || st.Status == null).OrderBy(na => na.Name).ToList();
|
||||
AddCommentBlock("Believed Good");
|
||||
AppendCSVData(good);
|
||||
}
|
||||
|
||||
string result = sb.ToString();
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parses all the weird TOSEC flags within the game field
|
||||
/// Detailed info here: https://www.tosecdev.org/tosec-naming-convention
|
||||
/// Guts of this has been reused from here: https://github.com/Asnivor/MedLaunch/blob/master/MedLaunch/_Debug/DATDB/Platforms/TOSEC/StringConverterToSec.cs
|
||||
/// </summary>
|
||||
/// <param name="g"></param>
|
||||
private void ParseTOSECFlags(GameDB g)
|
||||
{
|
||||
string nameString = g.Name;
|
||||
|
||||
// remove uninteresting options
|
||||
string a = RemoveUnneededOptions(nameString);
|
||||
|
||||
// process data contained in ()
|
||||
string[] d = a.ToString().Split('(', ')');
|
||||
|
||||
if (d.Length > 0)
|
||||
{
|
||||
// name field
|
||||
}
|
||||
|
||||
if (d.Length > 1)
|
||||
{
|
||||
if (d[1].Length > 3)
|
||||
{
|
||||
// year field
|
||||
}
|
||||
}
|
||||
|
||||
if (d.Length > 3)
|
||||
{
|
||||
// publisher field
|
||||
}
|
||||
|
||||
// public domain
|
||||
if (nameString.Contains("(PD)"))
|
||||
{
|
||||
g.Status = "D";
|
||||
}
|
||||
|
||||
if (d.Length > 4)
|
||||
{
|
||||
// parse all other () fields
|
||||
// because these are not mandatory this can be a confusing process
|
||||
for (int i = 4; i < d.Length; i++)
|
||||
{
|
||||
string f = d[i];
|
||||
|
||||
// system field
|
||||
if (f == "Aladdin Deck Enhancer" ||
|
||||
f == "PlayChoice-10" ||
|
||||
f == "VS DualSystem" ||
|
||||
f == "VS UniSystem")
|
||||
{
|
||||
// ignore for now (not currently implemented)
|
||||
continue;
|
||||
}
|
||||
|
||||
// country flag(s)
|
||||
if (IsCountryFlag(f) == true)
|
||||
{
|
||||
g.Region = f;
|
||||
continue;
|
||||
}
|
||||
|
||||
// language - if present add to notes
|
||||
if (IsLanguageFlag(f) == true)
|
||||
{
|
||||
g.Notes = f;
|
||||
continue;
|
||||
}
|
||||
|
||||
// check copyright status (not currently implemented)
|
||||
if (IsCopyrightStatus(f) == true)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// check development status (not currently implemented)
|
||||
if (IsDevelopmenttStatus(f) == true)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Media Type - ignore for now
|
||||
// Media Label - ignore for now
|
||||
}
|
||||
|
||||
// process dump info flags and other info contained in []
|
||||
if (nameString.Contains("[") && nameString.Contains("]"))
|
||||
{
|
||||
List<string> e = nameString.ToString().Split('[', ']').ToList();
|
||||
// remove first entry (this is the bit before the [] entries start
|
||||
e.RemoveAt(0);
|
||||
// remove empty entries
|
||||
e = e.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList();
|
||||
|
||||
if (e.Count > 0)
|
||||
{
|
||||
// bizhawk currently only has a few different RomStatus values (not as many as TOSEC anyway)
|
||||
// Parsing priority will be:
|
||||
// RomStatus.BadDump
|
||||
// RomStatus.Hack
|
||||
// RomStatus.Overdump
|
||||
// RomStatus.GoodDump
|
||||
// RomStatus.TranslatedRom
|
||||
// everything else
|
||||
// all tosec cr, h, t etc.. will fall under RomStatus.Hack
|
||||
|
||||
if (e.Where(str =>
|
||||
// bad dump
|
||||
str == "b" || str.StartsWith("b ") ||
|
||||
// virus
|
||||
str == "v" || str.StartsWith("v ") ||
|
||||
// under dump
|
||||
str == "u" || str.StartsWith("u ")).ToList().Count > 0)
|
||||
{
|
||||
// RomStatus.BadDump
|
||||
g.Status = "B";
|
||||
}
|
||||
else if (e.Where(str =>
|
||||
// cracked
|
||||
str == "cr" || str.StartsWith("cr ") ||
|
||||
// fixed
|
||||
str == "f" || str.StartsWith("f ") ||
|
||||
// hack
|
||||
str == "h" || str.StartsWith("h ") ||
|
||||
// modified
|
||||
str == "m" || str.StartsWith("m ") ||
|
||||
// pirated
|
||||
str == "p" || str.StartsWith("p ") ||
|
||||
// trained
|
||||
str == "t" || str.StartsWith("t ")
|
||||
).ToList().Count > 0)
|
||||
{
|
||||
// RomStatus.Hack
|
||||
g.Status = "H";
|
||||
}
|
||||
else if (e.Where(str =>
|
||||
// over dump
|
||||
str == "o" || str.StartsWith("o ")).ToList().Count > 0)
|
||||
{
|
||||
// RomStatus.Overdump
|
||||
g.Status = "O";
|
||||
}
|
||||
else if (e.Where(str =>
|
||||
// known verified dump
|
||||
str == "!").ToList().Count > 0)
|
||||
{
|
||||
// RomStatus.GoodDump
|
||||
g.Status = "";
|
||||
}
|
||||
else if (e.Where(str =>
|
||||
// translated
|
||||
str == "tr" || str.StartsWith("tr ")).ToList().Count > 0)
|
||||
{
|
||||
// RomStatus.TranslatedRom
|
||||
g.Status = "T";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsDevelopmenttStatus(string s)
|
||||
{
|
||||
List<string> DS = new List<string>
|
||||
{
|
||||
"alpha", "beta", "preview", "pre-release", "proto"
|
||||
};
|
||||
|
||||
bool b = DS.Any(s.Contains);
|
||||
return b;
|
||||
}
|
||||
|
||||
public static bool IsCopyrightStatus(string s)
|
||||
{
|
||||
List<string> CS = new List<string>
|
||||
{
|
||||
"CW", "CW-R", "FW", "GW", "GW-R", "LW", "PD", "SW", "SW-R"
|
||||
};
|
||||
|
||||
bool b = CS.Any(s.Contains);
|
||||
return b;
|
||||
}
|
||||
|
||||
public static bool IsLanguageFlag(string s)
|
||||
{
|
||||
List<string> LC = new List<string>
|
||||
{
|
||||
"ar", "bg", "bs", "cs", "cy", "da", "de", "el", "en", "eo", "es", "et", "fa", "fi", "fr", "ga",
|
||||
"gu", "he", "hi", "hr", "hu", "is", "it", "ja", "ko", "lt", "lv", "ms", "nl", "no", "pl", "pt",
|
||||
"ro", "ru", "sk", "sl", "sq", "sr", "sv", "th", "tr", "ur", "vi", "yi", "zh", "M1", "M2", "M3",
|
||||
"M4", "M5", "M6", "M7", "M8", "M9"
|
||||
};
|
||||
|
||||
bool b = false;
|
||||
|
||||
if (!s.Contains("[") && !s.Contains("]"))
|
||||
{
|
||||
foreach (var x in LC)
|
||||
{
|
||||
if (s == x || s.StartsWith(x) || s.EndsWith(x))
|
||||
{
|
||||
b = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//b = LC.Any(s.Contains);
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
public static bool IsCountryFlag(string s)
|
||||
{
|
||||
List<string> CC = new List<string>
|
||||
{
|
||||
"AE", "AL", "AS", "AT", "AU", "BA", "BE", "BG", "BR", "CA", "CH", "CL", "CN", "CS", "CY", "CZ",
|
||||
"DE", "DK", "EE", "EG", "EU", "ES", "FI", "FR", "GB", "GR", "HK", "HR", "HU", "ID", "IE", "IL",
|
||||
"IN", "IR", "IS", "IT", "JO", "JP", "KR", "LT", "LU", "LV", "MN", "MX", "MY", "NL", "NO", "NP",
|
||||
"NZ", "OM", "PE", "PH", "PL", "PT", "QA", "RO", "RU", "SE", "SG", "SI", "SK", "TH", "TR", "TW",
|
||||
"US", "VN", "YU", "ZA"
|
||||
};
|
||||
|
||||
bool b = false;
|
||||
|
||||
if (!s.Contains("[") && !s.Contains("]"))
|
||||
{
|
||||
foreach (var x in CC)
|
||||
{
|
||||
if (s == x || s.StartsWith(x) || s.EndsWith(x))
|
||||
{
|
||||
b = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//b = CC.Any(s.Contains);
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
public static string RemoveUnneededOptions(string nameString)
|
||||
{
|
||||
// Remove unneeded entries
|
||||
string n = nameString
|
||||
.Replace(" (demo) ", " ")
|
||||
.Replace(" (demo-kiosk) ", " ")
|
||||
.Replace(" (demo-playable) ", " ")
|
||||
.Replace(" (demo-rolling) ", " ")
|
||||
.Replace(" (demo-slideshow) ", " ");
|
||||
|
||||
return n;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -97,26 +97,44 @@ namespace BizHawk.Client.DBMan
|
|||
new PsxDBJob().Run(args.Skip(1).ToArray());
|
||||
return;
|
||||
}
|
||||
if (args.Length > 0 && args[0] == "--dbman")
|
||||
{
|
||||
try
|
||||
{
|
||||
InitDB();
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new DBMan_MainForm());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show(e.ToString());
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (DB.Con != null) DB.Con.Dispose();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
//if (args.Length > 0 && args[0] == "--disccmp")
|
||||
//{
|
||||
// new DiscCmp().Run(args.Skip(1).ToArray());
|
||||
// return;
|
||||
//}
|
||||
|
||||
try
|
||||
{
|
||||
InitDB();
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new DBMan_MainForm());
|
||||
Application.Run(new DATConverter());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show(e.ToString());
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (DB.Con != null) DB.Con.Dispose();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static void InitDB()
|
||||
|
|
|
@ -91,7 +91,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
ffmpeg.StartInfo.FileName = "ffmpeg"; // expecting native version to be in path
|
||||
#endif
|
||||
|
||||
string filename = $"{_baseName}_{_segment,4:D4}{_ext}";
|
||||
string filename = _baseName + (_segment > 0 ? $"_{_segment}" : "") + _ext;
|
||||
_ffmpeg.StartInfo.Arguments = string.Format("-y -f nut -i - {1} \"{0}\"", filename, _token.Commandline);
|
||||
_ffmpeg.StartInfo.CreateNoWindow = true;
|
||||
|
||||
|
@ -308,7 +308,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
public string DesiredExtension()
|
||||
{
|
||||
// this needs to interface with the codec token
|
||||
return _token.Defaultext;
|
||||
return _token.Extension;
|
||||
}
|
||||
|
||||
public void SetDefaultVideoCodecToken()
|
||||
|
|
|
@ -28,133 +28,132 @@
|
|||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.listBox1 = new System.Windows.Forms.ListBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(5, 5);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(47, 13);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Formats:";
|
||||
//
|
||||
// listBox1
|
||||
//
|
||||
this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.listBox1 = new System.Windows.Forms.ListBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(5, 5);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(47, 13);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Formats:";
|
||||
//
|
||||
// listBox1
|
||||
//
|
||||
this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.listBox1.FormattingEnabled = true;
|
||||
this.listBox1.Location = new System.Drawing.Point(5, 23);
|
||||
this.listBox1.Name = "listBox1";
|
||||
this.listBox1.Size = new System.Drawing.Size(275, 147);
|
||||
this.listBox1.TabIndex = 1;
|
||||
this.listBox1.SelectedIndexChanged += new System.EventHandler(this.ListBox1_SelectedIndexChanged);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(7, 176);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(63, 13);
|
||||
this.label2.TabIndex = 2;
|
||||
this.label2.Text = "Description:";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(6, 193);
|
||||
this.label3.MaximumSize = new System.Drawing.Size(260, 0);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(0, 13);
|
||||
this.label3.TabIndex = 3;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(10, 255);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(57, 13);
|
||||
this.label4.TabIndex = 4;
|
||||
this.label4.Text = "Command:";
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
this.listBox1.FormattingEnabled = true;
|
||||
this.listBox1.Location = new System.Drawing.Point(5, 23);
|
||||
this.listBox1.Name = "listBox1";
|
||||
this.listBox1.Size = new System.Drawing.Size(275, 160);
|
||||
this.listBox1.TabIndex = 1;
|
||||
this.listBox1.SelectedIndexChanged += new System.EventHandler(this.ListBox1_SelectedIndexChanged);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(7, 189);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(63, 13);
|
||||
this.label2.TabIndex = 2;
|
||||
this.label2.Text = "Description:";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(6, 206);
|
||||
this.label3.MaximumSize = new System.Drawing.Size(260, 0);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(0, 13);
|
||||
this.label3.TabIndex = 3;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(10, 268);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(57, 13);
|
||||
this.label4.TabIndex = 4;
|
||||
this.label4.Text = "Command:";
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textBox1.Location = new System.Drawing.Point(8, 273);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.ReadOnly = true;
|
||||
this.textBox1.Size = new System.Drawing.Size(272, 20);
|
||||
this.textBox1.TabIndex = 5;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.button1.Location = new System.Drawing.Point(124, 314);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(75, 23);
|
||||
this.button1.TabIndex = 6;
|
||||
this.button1.Text = "OK";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.button2.Location = new System.Drawing.Point(205, 314);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(75, 23);
|
||||
this.button2.TabIndex = 7;
|
||||
this.button2.Text = "Cancel";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(159, 176);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(56, 13);
|
||||
this.label5.TabIndex = 8;
|
||||
this.label5.Text = "Extension:";
|
||||
//
|
||||
// FFmpegWriterForm
|
||||
//
|
||||
this.AcceptButton = this.button1;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.button2;
|
||||
this.ClientSize = new System.Drawing.Size(292, 349);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.listBox1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.MinimumSize = new System.Drawing.Size(300, 360);
|
||||
this.Name = "FFmpegWriterForm";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Choose Video Format";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
this.textBox1.Location = new System.Drawing.Point(8, 286);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(272, 20);
|
||||
this.textBox1.TabIndex = 5;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.button1.Location = new System.Drawing.Point(124, 327);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(75, 23);
|
||||
this.button1.TabIndex = 6;
|
||||
this.button1.Text = "OK";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.button2.Location = new System.Drawing.Point(205, 327);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(75, 23);
|
||||
this.button2.TabIndex = 7;
|
||||
this.button2.Text = "Cancel";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(159, 189);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(56, 13);
|
||||
this.label5.TabIndex = 8;
|
||||
this.label5.Text = "Extension:";
|
||||
//
|
||||
// FFmpegWriterForm
|
||||
//
|
||||
this.AcceptButton = this.button1;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.button2;
|
||||
this.ClientSize = new System.Drawing.Size(292, 362);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.listBox1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.MinimumSize = new System.Drawing.Size(300, 360);
|
||||
this.Name = "FFmpegWriterForm";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Choose Video Format";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
/// <summary>
|
||||
/// Gets the default file extension
|
||||
/// </summary>
|
||||
public string Defaultext { get; }
|
||||
public string Extension { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// get a list of canned presets
|
||||
|
@ -48,14 +48,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
return new[]
|
||||
{
|
||||
new FormatPreset("AVI Uncompressed", "Uncompressed video and audio in an AVI container. Very large.",
|
||||
"-c:a pcm_s16le -c:v rawvideo -f avi", false, "avi"),
|
||||
new FormatPreset("AVI Lossless", "Lossless FFV1 video and uncompressed audio in an AVI container. Compatible with AVISource, if ffmpeg based decoder is installed.",
|
||||
new FormatPreset("AVI Lossless AVC", "Lossless AVC video and uncompressed audio in an AVI container. High speed and compression, compatible with AVISource().",
|
||||
"-c:a pcm_s16le -c:v libx264rgb -qp 0 -preset ultrafast -g 10 -pix_fmt rgb24 -f avi", false, "avi"),
|
||||
new FormatPreset("AVI Lossless FFV1", "Lossless FFV1 video and uncompressed audio in an AVI container. Compatible with AVISource(), if ffmpeg based decoder is installed.",
|
||||
"-c:a pcm_s16le -c:v ffv1 -pix_fmt bgr0 -level 1 -g 1 -coder 1 -context 1 -f avi", false, "avi"),
|
||||
//new FormatPreset("AVI Lossless", "Lossless zlib video and uncompressed audio in an AVI container.",
|
||||
// "-c:a pcm_s16le -c:v zlib -f avi", false, "avi"),
|
||||
new FormatPreset("AVI Uncompressed", "Uncompressed video and audio in an AVI container. Very large, don't use!",
|
||||
"-c:a pcm_s16le -c:v rawvideo -f avi", false, "avi"),
|
||||
new FormatPreset("Matroska Lossless", "Lossless AVC video and uncompressed audio in a Matroska container.",
|
||||
"-c:a pcm_s16le -c:v libx264rgb -crf 0 -f matroska", false, "mkv"),
|
||||
"-c:a pcm_s16le -c:v libx264rgb -qp 0 -pix_fmt rgb24 -f matroska", false, "mkv"),
|
||||
new FormatPreset("Matroska", "AVC video and Vorbis audio in a Matroska container.",
|
||||
"-c:a libvorbis -c:v libx264 -f matroska", false, "mkv"),
|
||||
new FormatPreset("MP4", "AVC video and AAC audio in an MP4 container.",
|
||||
|
@ -106,7 +106,19 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
}
|
||||
|
||||
private FormatPreset(string name, string desc, string commandline, bool custom, string defaultext)
|
||||
public void DeduceFormat(string commandline)
|
||||
{
|
||||
string formatkey = "-f ";
|
||||
Extension = commandline.Substring(commandline.IndexOf(formatkey) + formatkey.Length);
|
||||
|
||||
// are there other formats that don't match their file extensions?
|
||||
if (Extension == "matroska")
|
||||
{
|
||||
Extension = "mkv";
|
||||
}
|
||||
}
|
||||
|
||||
private FormatPreset(string name, string desc, string commandline, bool custom, string ext)
|
||||
{
|
||||
Name = name;
|
||||
Desc = desc;
|
||||
|
@ -116,7 +128,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
? Global.Config.FFmpegCustomCommand
|
||||
: commandline;
|
||||
|
||||
Defaultext = defaultext;
|
||||
DeduceFormat(Commandline);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -130,11 +142,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (listBox1.SelectedIndex != -1)
|
||||
{
|
||||
var f = (FormatPreset)listBox1.SelectedItem;
|
||||
|
||||
label5.Text = "Extension: " + f.Defaultext;
|
||||
label5.Text = "Extension: " + f.Extension;
|
||||
label3.Text = f.Desc;
|
||||
textBox1.Text = f.Commandline;
|
||||
textBox1.ReadOnly = !f.Custom;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -165,8 +175,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
Global.Config.FFmpegFormat = ret.ToString();
|
||||
if (ret.Custom)
|
||||
{
|
||||
ret.Commandline = dlg.textBox1.Text;
|
||||
Global.Config.FFmpegCustomCommand = dlg.textBox1.Text;
|
||||
ret.Commandline =
|
||||
Global.Config.FFmpegCustomCommand =
|
||||
dlg.textBox1.Text;
|
||||
|
||||
ret.DeduceFormat(ret.Commandline);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(291, 165);
|
||||
this.label2.TabIndex = 2;
|
||||
this.label2.Text = "EMULATES\r\nYOUR\r\nMOM";
|
||||
this.label2.Text = "EMULATES\r\nY̶̷̼̬̟̘̦̼͙̝̯̦̠̜͙͖̘ͨ̒͂͐ͪ͂̒̄ͯͯ͌ͨͯ̽ͨ́͝ͅO̡̝̞̗̩͖͖̼̹̖̫͍̙̖͓̩ͪ͂̊ͭ͑ͮͤ̀̄͌̑ͨͣͩ̿ͫ͂͟͝͞ͅU̴̮̝͍̜̰̦ͥ̓ͩ̌̎̾ͥͪ̋̾́͠Rͨ͊̉̾҉̢̫͔̗͓͖̫̫̘̖̰͟\r\nMOM";
|
||||
//
|
||||
// timer1
|
||||
//
|
||||
|
|
|
@ -14,6 +14,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
public string cmdRom = null;
|
||||
public string cmdLoadSlot = null;
|
||||
public string cmdLoadState = null;
|
||||
public string cmdConfigPath = null;
|
||||
public string cmdConfigFile = null;
|
||||
public string cmdMovie = null;
|
||||
public string cmdDumpType = null;
|
||||
public string cmdDumpName = null;
|
||||
|
@ -55,6 +57,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
cmdLoadState = args[i].Substring(args[i].IndexOf('=') + 1);
|
||||
}
|
||||
if (arg.StartsWith("--config="))
|
||||
{
|
||||
cmdConfigFile = args[i].Substring(args[i].IndexOf('=') + 1);
|
||||
}
|
||||
else if (arg.StartsWith("--movie="))
|
||||
{
|
||||
cmdMovie = args[i].Substring(args[i].IndexOf('=') + 1);
|
||||
|
|
|
@ -199,6 +199,30 @@
|
|||
<DependentUpon>BizBoxInfoControl.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Communication.cs" />
|
||||
<Compile Include="config\AmstradCPC\AmstradCPCCoreEmulationSettings.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="config\AmstradCPC\AmstradCPCCoreEmulationSettings.Designer.cs">
|
||||
<DependentUpon>AmstradCPCCoreEmulationSettings.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="config\AmstradCPC\AmstradCPCAudioSettings.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="config\AmstradCPC\AmstradCPCAudioSettings.Designer.cs">
|
||||
<DependentUpon>AmstradCPCAudioSettings.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="config\AmstradCPC\AmstradCPCPokeMemory.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="config\AmstradCPC\AmstradCPCPokeMemory.Designer.cs">
|
||||
<DependentUpon>AmstradCPCPokeMemory.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="config\AmstradCPC\AmstradCPCNonSyncSettings.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="config\AmstradCPC\AmstradCPCNonSyncSettings.Designer.cs">
|
||||
<DependentUpon>AmstradCPCNonSyncSettings.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="config\AnalogRangeConfig.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
|
@ -638,6 +662,8 @@
|
|||
<Compile Include="Input\GamePad.cs" />
|
||||
<Compile Include="Input\GamePad360.cs" />
|
||||
<Compile Include="Input\Input.cs" />
|
||||
<Compile Include="Input\OTK_Gamepad.cs" />
|
||||
<Compile Include="Input\OTK_Keyboard.cs" />
|
||||
<Compile Include="IControlMainform.cs" />
|
||||
<Compile Include="Input\IPCKeyInput.cs" />
|
||||
<Compile Include="JumpLists.cs" />
|
||||
|
@ -1298,6 +1324,18 @@
|
|||
<EmbeddedResource Include="BizBoxInfoControl.resx">
|
||||
<DependentUpon>BizBoxInfoControl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="config\AmstradCPC\AmstradCPCCoreEmulationSettings.resx">
|
||||
<DependentUpon>AmstradCPCCoreEmulationSettings.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="config\AmstradCPC\AmstradCPCAudioSettings.resx">
|
||||
<DependentUpon>AmstradCPCAudioSettings.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="config\AmstradCPC\AmstradCPCPokeMemory.resx">
|
||||
<DependentUpon>AmstradCPCPokeMemory.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="config\AmstradCPC\AmstradCPCNonSyncSettings.resx">
|
||||
<DependentUpon>AmstradCPCNonSyncSettings.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="config\AnalogRangeConfigControl.resx">
|
||||
<DependentUpon>AnalogRangeConfigControl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
@ -1840,6 +1878,9 @@
|
|||
<None Include="config\ControllerImages\GENController.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\MoveTop.png" />
|
||||
<None Include="Resources\MoveBottom.png" />
|
||||
<None Include="Resources\MoveTop.bmp" />
|
||||
<None Include="Resources\ZXSpectrumKeyboard.bmp" />
|
||||
<None Include="images\WSW.png" />
|
||||
<None Include="images\WNW.png" />
|
||||
|
|
|
@ -140,6 +140,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void DrawData(PaintEventArgs e, List<RollColumn> visibleColumns)
|
||||
{
|
||||
// Prevent exceptions with small TAStudio windows
|
||||
if (visibleColumns.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (QueryItemText != null)
|
||||
{
|
||||
if (HorizontalOrientation)
|
||||
|
@ -532,6 +537,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
int range = Math.Min(LastVisibleRow, RowCount - 1) - startIndex + 1;
|
||||
int lastVisible = LastVisibleColumnIndex;
|
||||
int firstVisibleColumn = FirstVisibleColumn;
|
||||
// Prevent exceptions with small TAStudio windows
|
||||
if (firstVisibleColumn < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (HorizontalOrientation)
|
||||
{
|
||||
for (int i = 0, f = 0; f < range; i++, f++)
|
||||
|
|
|
@ -1608,7 +1608,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
_vBar.Maximum = Math.Max((VisibleRows - 1) * CellHeight, _vBar.Maximum); // ScrollBar.Maximum is dumb
|
||||
_vBar.LargeChange = (VisibleRows - 1) * CellHeight;
|
||||
_hBar.LargeChange = DrawWidth / 2;
|
||||
// DrawWidth can be negative if the TAStudio window is small enough
|
||||
// Clamp LargeChange to 0 here to prevent exceptions
|
||||
_hBar.LargeChange = Math.Max(0, DrawWidth / 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -610,16 +610,18 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
FilterProgram UpdateSourceInternal(JobInfo job)
|
||||
{
|
||||
if (job.chain_outsize.Width == 0 || job.chain_outsize.Height == 0)
|
||||
{
|
||||
//this has to be a NOP, because lots of stuff will malfunction on a 0-sized viewport
|
||||
return null;
|
||||
}
|
||||
|
||||
//no drawing actually happens. it's important not to begin drawing on a control
|
||||
if (!job.simulate && !job.offscreen)
|
||||
{
|
||||
GLManager.Activate(CR_GraphicsControl);
|
||||
|
||||
if (job.chain_outsize.Width == 0 || job.chain_outsize.Height == 0)
|
||||
{
|
||||
//this has to be a NOP, because lots of stuff will malfunction on a 0-sized viewport
|
||||
if (CurrentFilterProgram != null)
|
||||
UpdateSourceDrawingWork(job); //but we still need to do this, because of vsync
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
IVideoProvider videoProvider = job.videoProvider;
|
||||
|
|
|
@ -337,7 +337,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
if (Global.Config.DisplayInput && !Global.Game.IsNullInstance)
|
||||
{
|
||||
if (Global.MovieSession.Movie.IsPlaying && !Global.MovieSession.Movie.IsFinished)
|
||||
if ((Global.MovieSession.Movie.IsPlaying && !Global.MovieSession.Movie.IsFinished)
|
||||
|| (Global.MovieSession.Movie.IsFinished && Global.Emulator.Frame == Global.MovieSession.Movie.InputLogLength)) // Account for the last frame of the movie, the movie state is immediately "Finished" here but we still want to show the input
|
||||
{
|
||||
var input = InputStrMovie();
|
||||
var x = GetX(g, Global.Config.DispInpx, Global.Config.DispInpanchor, input);
|
||||
|
|
|
@ -50,12 +50,19 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
return new[]
|
||||
{
|
||||
".NES", ".FDS", ".UNF", ".SMS", ".GG", ".SG", ".GB", ".GBC", ".GBA", ".PCE", ".SGX", ".BIN", ".SMD", ".GEN", ".MD", ".SMC", ".SFC", ".A26", ".A78", ".LNX", ".COL", ".ROM", ".M3U", ".CUE", ".CCD", ".SGB", ".Z64", ".V64", ".N64", ".WS", ".WSC", ".XML", ".DSK", ".DO", ".PO", ".PSF", ".MINIPSF", ".NSF",
|
||||
".EXE", ".PRG", ".D64", "*G64", ".CRT", ".TAP", ".32X", ".MDS", ".TZX", ".PZX", ".CSW", ".WAV"
|
||||
};
|
||||
".NES", ".FDS", ".UNF", ".SMS", ".GG", ".SG", ".GB", ".GBC", ".GBA", ".PCE", ".SGX", ".BIN", ".SMD", ".GEN", ".MD", ".SMC",
|
||||
".SFC", ".A26", ".A78", ".LNX", ".COL", ".ROM", ".M3U", ".CUE", ".CCD", ".SGB", ".Z64", ".V64", ".N64", ".WS", ".WSC", ".XML",
|
||||
".DSK", ".DO", ".PO", ".PSF", ".MINIPSF", ".NSF", ".EXE", ".PRG", ".D64", ".G64", ".CRT", ".TAP", ".32X", ".MDS", ".TZX",
|
||||
".PZX", ".CSW", ".WAV", ".CDT"
|
||||
};
|
||||
}
|
||||
|
||||
return new[] { ".NES", ".FDS", ".UNF", ".SMS", ".GG", ".SG", ".GB", ".GBC", ".GBA", ".PCE", ".SGX", ".BIN", ".SMD", ".GEN", ".MD", ".SMC", ".SFC", ".A26", ".A78", ".LNX", ".COL", ".ROM", ".M3U", ".CUE", ".CCD", ".SGB", ".Z64", ".V64", ".N64", ".WS", ".WSC", ".XML", ".DSK", ".DO", ".PO", ".PSF", ".MINIPSF", ".NSF", ".32X", ".MDS", ".TZX", ".PZX", ".CSW", ".WAV" };
|
||||
return new[]
|
||||
{
|
||||
".NES", ".FDS", ".UNF", ".SMS", ".GG", ".SG", ".GB", ".GBC", ".GBA", ".PCE", ".SGX", ".BIN", ".SMD", ".GEN", ".MD", ".SMC",
|
||||
".SFC", ".A26", ".A78", ".LNX", ".COL", ".ROM", ".M3U", ".CUE", ".CCD", ".SGB", ".Z64", ".V64", ".N64", ".WS", ".WSC", ".XML",
|
||||
".DSK", ".DO", ".PO", ".PSF", ".MINIPSF", ".NSF", ".PRG", ".D64", ".G64", ".CRT", ".TAP", ".32X", ".MDS", ".TZX", ".PZX", ".CSW", ".WAV"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@ using System.Collections.Generic;
|
|||
using System.Threading;
|
||||
#if WINDOWS
|
||||
using SlimDX.DirectInput;
|
||||
#else
|
||||
using OpenTK.Input;
|
||||
#endif
|
||||
|
||||
using BizHawk.Common;
|
||||
|
@ -126,12 +128,18 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
public static void Initialize()
|
||||
{
|
||||
#if WINDOWS
|
||||
KeyInput.Initialize();
|
||||
IPCKeyInput.Initialize();
|
||||
GamePad.Initialize();
|
||||
GamePad360.Initialize();
|
||||
#endif
|
||||
if (Global.RunningOnUnix)
|
||||
{
|
||||
OTK_Keyboard.Initialize();
|
||||
// OTK_Gamepad.Initialize();
|
||||
}
|
||||
else
|
||||
{
|
||||
KeyInput.Initialize();
|
||||
IPCKeyInput.Initialize();
|
||||
GamePad.Initialize();
|
||||
GamePad360.Initialize();
|
||||
}
|
||||
Instance = new Input();
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,148 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using OpenTK.Input;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class OTK_GamePad
|
||||
{
|
||||
//Note: OpenTK has both Gamepad and Joystick classes. An OpenTK Gamepad is a simplified version of Joystick
|
||||
//with pre-defined features that match an XInput controller. They did this to mimic XNA's controller API.
|
||||
//We're going to use Joystick directly, because it gives us full access to all possible buttons.
|
||||
//And it looks like GamePad itself isn't supported on OpenTK OS X.
|
||||
|
||||
public static List<OTK_GamePad> Devices;
|
||||
private const int MAX_JOYSTICKS = 4; //They don't have a way to query this for some reason. 4 is the minimum promised.
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
Devices = new List<OTK_GamePad>();
|
||||
|
||||
for (int i = 0; i < MAX_JOYSTICKS; i++)
|
||||
{
|
||||
JoystickState jss = Joystick.GetState(i);
|
||||
if (jss.IsConnected)
|
||||
{
|
||||
Console.WriteLine(string.Format("joydevice index: {0}", i)); //OpenTK doesn't expose the GUID, even though it stores it internally...
|
||||
|
||||
OTK_GamePad ogp = new OTK_GamePad(i);
|
||||
Devices.Add(ogp);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void UpdateAll()
|
||||
{
|
||||
foreach (var device in Devices)
|
||||
device.Update();
|
||||
}
|
||||
|
||||
public static void CloseAll()
|
||||
{
|
||||
if (Devices != null)
|
||||
{
|
||||
Devices.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
// ********************************** Instance Members **********************************
|
||||
|
||||
readonly Guid _guid;
|
||||
readonly int _stickIdx;
|
||||
JoystickState state = new JoystickState();
|
||||
|
||||
OTK_GamePad(int index)
|
||||
{
|
||||
_guid = Guid.NewGuid();
|
||||
_stickIdx = index;
|
||||
Update();
|
||||
InitializeCallbacks();
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
state = Joystick.GetState(_stickIdx);
|
||||
}
|
||||
|
||||
public IEnumerable<Tuple<string, float>> GetFloats()
|
||||
{
|
||||
for (int pi = 0; pi < 64; pi++)
|
||||
yield return new Tuple<string, float>(pi.ToString(), 10.0f * state.GetAxis(pi));
|
||||
}
|
||||
|
||||
/// <summary>FOR DEBUGGING ONLY</summary>
|
||||
public JoystickState GetInternalState()
|
||||
{
|
||||
return state;
|
||||
}
|
||||
|
||||
public string Name { get { return "Joystick " + _stickIdx; } }
|
||||
public Guid Guid { get { return _guid; } }
|
||||
|
||||
|
||||
public string ButtonName(int index)
|
||||
{
|
||||
return names[index];
|
||||
}
|
||||
public bool Pressed(int index)
|
||||
{
|
||||
return actions[index]();
|
||||
}
|
||||
public int NumButtons { get; private set; }
|
||||
|
||||
private readonly List<string> names = new List<string>();
|
||||
private readonly List<Func<bool>> actions = new List<Func<bool>>();
|
||||
|
||||
void AddItem(string _name, Func<bool> callback)
|
||||
{
|
||||
names.Add(_name);
|
||||
actions.Add(callback);
|
||||
NumButtons++;
|
||||
}
|
||||
|
||||
void InitializeCallbacks()
|
||||
{
|
||||
const int dzp = 400;
|
||||
const int dzn = -400;
|
||||
|
||||
names.Clear();
|
||||
actions.Clear();
|
||||
NumButtons = 0;
|
||||
|
||||
AddItem("X+", () => state.GetAxis(0) >= dzp);
|
||||
AddItem("X-", () => state.GetAxis(0) <= dzn);
|
||||
AddItem("Y+", () => state.GetAxis(1) >= dzp);
|
||||
AddItem("Y-", () => state.GetAxis(1) <= dzn);
|
||||
AddItem("Z+", () => state.GetAxis(2) >= dzp);
|
||||
AddItem("Z-", () => state.GetAxis(2) <= dzn);
|
||||
|
||||
// Enjoy our delicious sliders. They're smaller than regular burgers but cost more.
|
||||
|
||||
int jb = 1;
|
||||
for (int i = 0; i < 64; i++)
|
||||
{
|
||||
AddItem(string.Format("B{0}", jb), () => state.GetButton(i)==ButtonState.Pressed);
|
||||
jb++;
|
||||
}
|
||||
|
||||
jb = 1;
|
||||
foreach (JoystickHat enval in Enum.GetValues(typeof(JoystickHat)))
|
||||
{
|
||||
AddItem(string.Format("POV{0}U", jb), () => state.GetHat(enval).IsUp);
|
||||
AddItem(string.Format("POV{0}D", jb), () => state.GetHat(enval).IsDown);
|
||||
AddItem(string.Format("POV{0}L", jb), () => state.GetHat(enval).IsLeft);
|
||||
AddItem(string.Format("POV{0}R", jb), () => state.GetHat(enval).IsRight);
|
||||
jb++;
|
||||
}
|
||||
}
|
||||
|
||||
// Note that this does not appear to work at this time. I probably need to have more infos.
|
||||
public void SetVibration(int left, int right)
|
||||
{
|
||||
//Not supported in OTK Joystick. It is supported for OTK Gamepad, but I have to use Joystick for reasons mentioned above.
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using OpenTK.Input;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public static class OTK_Keyboard
|
||||
{
|
||||
private static OpenTK.Input.KeyboardState _kbState;
|
||||
|
||||
public static void Initialize ()
|
||||
{
|
||||
_kbState = OpenTK.Input.Keyboard.GetState();
|
||||
}
|
||||
|
||||
public static void Update ()
|
||||
{
|
||||
try
|
||||
{
|
||||
_kbState = OpenTK.Input.Keyboard.GetState();
|
||||
}
|
||||
catch
|
||||
{
|
||||
//OpenTK's keyboard class isn't thread safe.
|
||||
//In rare cases (sometimes it takes up to 10 minutes to occur) it will
|
||||
//be updating the keyboard state when we call GetState() and choke.
|
||||
//Until I fix OpenTK, it's fine to just swallow it because input continues working.
|
||||
if(System.Diagnostics.Debugger.IsAttached)
|
||||
{
|
||||
System.Console.WriteLine("OpenTK Keyboard thread is angry.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsPressed (Key key)
|
||||
{
|
||||
return _kbState.IsKeyDown(key);
|
||||
}
|
||||
|
||||
public static bool ShiftModifier {
|
||||
get {
|
||||
return IsPressed(Key.ShiftLeft) || IsPressed(Key.ShiftRight);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool CtrlModifier {
|
||||
get {
|
||||
return IsPressed(Key.ControlLeft) || IsPressed(Key.ControlRight);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool AltModifier {
|
||||
get {
|
||||
return IsPressed(Key.AltLeft) || IsPressed(Key.AltRight);
|
||||
}
|
||||
}
|
||||
|
||||
public static Input.ModifierKey GetModifierKeysAsKeys ()
|
||||
{
|
||||
Input.ModifierKey ret = Input.ModifierKey.None;
|
||||
if (ShiftModifier)
|
||||
ret |= Input.ModifierKey.Shift;
|
||||
if (CtrlModifier)
|
||||
ret |= Input.ModifierKey.Control;
|
||||
if (AltModifier)
|
||||
ret |= Input.ModifierKey.Alt;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
internal static class KeyExtensions
|
||||
{
|
||||
public static bool IsModifier (this Key key)
|
||||
{
|
||||
if (key == Key.ShiftLeft)
|
||||
return true;
|
||||
if (key == Key.ShiftRight)
|
||||
return true;
|
||||
if (key == Key.ControlLeft)
|
||||
return true;
|
||||
if (key == Key.ControlRight)
|
||||
return true;
|
||||
if (key == Key.AltLeft)
|
||||
return true;
|
||||
if (key == Key.AltRight)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -389,7 +389,19 @@
|
|||
this.ZXSpectrumPokeMemoryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ZXSpectrumMediaMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ZXSpectrumTapesSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.zxt1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ZXSpectrumDisksSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.zxt2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ZXSpectrumExportSnapshotMenuItemMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.amstradCPCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.amstradCPCCoreEmulationSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AmstradCPCAudioSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AmstradCPCPokeMemoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AmstradCPCMediaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AmstradCPCTapesSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.cpct1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AmstradCPCDisksSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.cpcd1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.Atari7800HawkCoreMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.MainStatusBar = new StatusStripEx();
|
||||
this.DumpStatusButton = new System.Windows.Forms.ToolStripDropDownButton();
|
||||
|
@ -462,8 +474,7 @@
|
|||
this.ShowMenuContextMenuSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.ShowMenuContextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.timerMouseIdle = new System.Windows.Forms.Timer(this.components);
|
||||
this.zxt1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.zxt2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AmstradCPCNonSyncSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.MainformMenu.SuspendLayout();
|
||||
this.MainStatusBar.SuspendLayout();
|
||||
this.MainFormContextMenu.SuspendLayout();
|
||||
|
@ -501,8 +512,9 @@
|
|||
this.pCFXToolStripMenuItem,
|
||||
this.virtualBoyToolStripMenuItem,
|
||||
this.neoGeoPocketToolStripMenuItem,
|
||||
this.zXSpectrumToolStripMenuItem,
|
||||
this.HelpSubMenu,
|
||||
this.zXSpectrumToolStripMenuItem});
|
||||
this.amstradCPCToolStripMenuItem});
|
||||
this.MainformMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
|
||||
this.MainformMenu.Location = new System.Drawing.Point(0, 0);
|
||||
this.MainformMenu.Name = "MainformMenu";
|
||||
|
@ -3162,7 +3174,7 @@
|
|||
// DGBsettingsToolStripMenuItem
|
||||
//
|
||||
this.DGBsettingsToolStripMenuItem.Name = "DGBsettingsToolStripMenuItem";
|
||||
this.DGBsettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
|
||||
this.DGBsettingsToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.DGBsettingsToolStripMenuItem.Text = "Settings...";
|
||||
this.DGBsettingsToolStripMenuItem.Click += new System.EventHandler(this.DgbSettingsMenuItem_Click);
|
||||
//
|
||||
|
@ -3454,7 +3466,8 @@
|
|||
//
|
||||
this.ZXSpectrumMediaMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.ZXSpectrumTapesSubMenu,
|
||||
this.ZXSpectrumDisksSubMenu});
|
||||
this.ZXSpectrumDisksSubMenu,
|
||||
this.ZXSpectrumExportSnapshotMenuItemMenuItem});
|
||||
this.ZXSpectrumMediaMenuItem.Name = "ZXSpectrumMediaMenuItem";
|
||||
this.ZXSpectrumMediaMenuItem.Size = new System.Drawing.Size(201, 22);
|
||||
this.ZXSpectrumMediaMenuItem.Text = "Media";
|
||||
|
@ -3465,19 +3478,111 @@
|
|||
this.ZXSpectrumTapesSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.zxt1ToolStripMenuItem});
|
||||
this.ZXSpectrumTapesSubMenu.Name = "ZXSpectrumTapesSubMenu";
|
||||
this.ZXSpectrumTapesSubMenu.Size = new System.Drawing.Size(152, 22);
|
||||
this.ZXSpectrumTapesSubMenu.Size = new System.Drawing.Size(159, 22);
|
||||
this.ZXSpectrumTapesSubMenu.Text = "Tapes";
|
||||
this.ZXSpectrumTapesSubMenu.DropDownOpened += new System.EventHandler(this.ZXSpectrumTapesSubMenu_DropDownOpened);
|
||||
//
|
||||
// zxt1ToolStripMenuItem
|
||||
//
|
||||
this.zxt1ToolStripMenuItem.Name = "zxt1ToolStripMenuItem";
|
||||
this.zxt1ToolStripMenuItem.Size = new System.Drawing.Size(94, 22);
|
||||
this.zxt1ToolStripMenuItem.Text = "zxt1";
|
||||
//
|
||||
// ZXSpectrumDisksSubMenu
|
||||
//
|
||||
this.ZXSpectrumDisksSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.zxt2ToolStripMenuItem});
|
||||
this.ZXSpectrumDisksSubMenu.Name = "ZXSpectrumDisksSubMenu";
|
||||
this.ZXSpectrumDisksSubMenu.Size = new System.Drawing.Size(152, 22);
|
||||
this.ZXSpectrumDisksSubMenu.Size = new System.Drawing.Size(159, 22);
|
||||
this.ZXSpectrumDisksSubMenu.Text = "Disks";
|
||||
this.ZXSpectrumDisksSubMenu.DropDownOpened += new System.EventHandler(this.ZXSpectrumDisksSubMenu_DropDownOpened);
|
||||
//
|
||||
// zxt2ToolStripMenuItem
|
||||
//
|
||||
this.zxt2ToolStripMenuItem.Name = "zxt2ToolStripMenuItem";
|
||||
this.zxt2ToolStripMenuItem.Size = new System.Drawing.Size(94, 22);
|
||||
this.zxt2ToolStripMenuItem.Text = "zxt2";
|
||||
//
|
||||
// ZXSpectrumExportSnapshotMenuItemMenuItem
|
||||
//
|
||||
this.ZXSpectrumExportSnapshotMenuItemMenuItem.Name = "ZXSpectrumExportSnapshotMenuItemMenuItem";
|
||||
this.ZXSpectrumExportSnapshotMenuItemMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.ZXSpectrumExportSnapshotMenuItemMenuItem.Text = "Export Snapshot";
|
||||
this.ZXSpectrumExportSnapshotMenuItemMenuItem.Click += new System.EventHandler(this.ZXSpectrumExportSnapshotMenuItemMenuItem_Click);
|
||||
//
|
||||
// amstradCPCToolStripMenuItem
|
||||
//
|
||||
this.amstradCPCToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.amstradCPCCoreEmulationSettingsToolStripMenuItem,
|
||||
this.AmstradCPCAudioSettingsToolStripMenuItem,
|
||||
this.AmstradCPCNonSyncSettingsToolStripMenuItem,
|
||||
this.AmstradCPCPokeMemoryToolStripMenuItem,
|
||||
this.AmstradCPCMediaToolStripMenuItem});
|
||||
this.amstradCPCToolStripMenuItem.Name = "amstradCPCToolStripMenuItem";
|
||||
this.amstradCPCToolStripMenuItem.Size = new System.Drawing.Size(90, 19);
|
||||
this.amstradCPCToolStripMenuItem.Text = "Amstrad CPC";
|
||||
//
|
||||
// amstradCPCCoreEmulationSettingsToolStripMenuItem
|
||||
//
|
||||
this.amstradCPCCoreEmulationSettingsToolStripMenuItem.Name = "amstradCPCCoreEmulationSettingsToolStripMenuItem";
|
||||
this.amstradCPCCoreEmulationSettingsToolStripMenuItem.Size = new System.Drawing.Size(201, 22);
|
||||
this.amstradCPCCoreEmulationSettingsToolStripMenuItem.Text = "Core Emulation Settings";
|
||||
this.amstradCPCCoreEmulationSettingsToolStripMenuItem.Click += new System.EventHandler(this.amstradCPCCoreEmulationSettingsToolStripMenuItem_Click);
|
||||
//
|
||||
// AmstradCPCAudioSettingsToolStripMenuItem
|
||||
//
|
||||
this.AmstradCPCAudioSettingsToolStripMenuItem.Name = "AmstradCPCAudioSettingsToolStripMenuItem";
|
||||
this.AmstradCPCAudioSettingsToolStripMenuItem.Size = new System.Drawing.Size(201, 22);
|
||||
this.AmstradCPCAudioSettingsToolStripMenuItem.Text = "Audio Settings";
|
||||
this.AmstradCPCAudioSettingsToolStripMenuItem.Click += new System.EventHandler(this.AmstradCPCAudioSettingsToolStripMenuItem_Click);
|
||||
//
|
||||
// AmstradCPCPokeMemoryToolStripMenuItem
|
||||
//
|
||||
this.AmstradCPCPokeMemoryToolStripMenuItem.Name = "AmstradCPCPokeMemoryToolStripMenuItem";
|
||||
this.AmstradCPCPokeMemoryToolStripMenuItem.Size = new System.Drawing.Size(201, 22);
|
||||
this.AmstradCPCPokeMemoryToolStripMenuItem.Text = "POKE Memory";
|
||||
this.AmstradCPCPokeMemoryToolStripMenuItem.Click += new System.EventHandler(this.AmstradCPCPokeMemoryToolStripMenuItem_Click);
|
||||
//
|
||||
// AmstradCPCMediaToolStripMenuItem
|
||||
//
|
||||
this.AmstradCPCMediaToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.AmstradCPCTapesSubMenu,
|
||||
this.AmstradCPCDisksSubMenu});
|
||||
this.AmstradCPCMediaToolStripMenuItem.Name = "AmstradCPCMediaToolStripMenuItem";
|
||||
this.AmstradCPCMediaToolStripMenuItem.Size = new System.Drawing.Size(201, 22);
|
||||
this.AmstradCPCMediaToolStripMenuItem.Text = "Media";
|
||||
this.AmstradCPCMediaToolStripMenuItem.DropDownOpened += new System.EventHandler(this.AmstradCPCMediaToolStripMenuItem_DropDownOpened);
|
||||
//
|
||||
// AmstradCPCTapesSubMenu
|
||||
//
|
||||
this.AmstradCPCTapesSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.cpct1ToolStripMenuItem});
|
||||
this.AmstradCPCTapesSubMenu.Name = "AmstradCPCTapesSubMenu";
|
||||
this.AmstradCPCTapesSubMenu.Size = new System.Drawing.Size(105, 22);
|
||||
this.AmstradCPCTapesSubMenu.Text = "Tapes";
|
||||
this.AmstradCPCTapesSubMenu.DropDownOpened += new System.EventHandler(this.AmstradCPCTapesSubMenu_DropDownOpened);
|
||||
//
|
||||
// cpct1ToolStripMenuItem
|
||||
//
|
||||
this.cpct1ToolStripMenuItem.Name = "cpct1ToolStripMenuItem";
|
||||
this.cpct1ToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
|
||||
this.cpct1ToolStripMenuItem.Text = "cpct1";
|
||||
//
|
||||
// AmstradCPCDisksSubMenu
|
||||
//
|
||||
this.AmstradCPCDisksSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.cpcd1ToolStripMenuItem});
|
||||
this.AmstradCPCDisksSubMenu.Name = "AmstradCPCDisksSubMenu";
|
||||
this.AmstradCPCDisksSubMenu.Size = new System.Drawing.Size(105, 22);
|
||||
this.AmstradCPCDisksSubMenu.Text = "Disks";
|
||||
this.AmstradCPCDisksSubMenu.DropDownOpened += new System.EventHandler(this.AmstradCPCDisksSubMenu_DropDownOpened);
|
||||
//
|
||||
// cpcd1ToolStripMenuItem
|
||||
//
|
||||
this.cpcd1ToolStripMenuItem.Name = "cpcd1ToolStripMenuItem";
|
||||
this.cpcd1ToolStripMenuItem.Size = new System.Drawing.Size(106, 22);
|
||||
this.cpcd1ToolStripMenuItem.Text = "cpcd1";
|
||||
//
|
||||
// Atari7800HawkCoreMenuItem
|
||||
//
|
||||
this.Atari7800HawkCoreMenuItem.Name = "Atari7800HawkCoreMenuItem";
|
||||
|
@ -4104,17 +4209,12 @@
|
|||
this.timerMouseIdle.Interval = 2000;
|
||||
this.timerMouseIdle.Tick += new System.EventHandler(this.TimerMouseIdle_Tick);
|
||||
//
|
||||
// zxt1ToolStripMenuItem
|
||||
// AmstradCPCNonSyncSettingsToolStripMenuItem
|
||||
//
|
||||
this.zxt1ToolStripMenuItem.Name = "zxt1ToolStripMenuItem";
|
||||
this.zxt1ToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.zxt1ToolStripMenuItem.Text = "zxt1";
|
||||
//
|
||||
// zxt2ToolStripMenuItem
|
||||
//
|
||||
this.zxt2ToolStripMenuItem.Name = "zxt2ToolStripMenuItem";
|
||||
this.zxt2ToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.zxt2ToolStripMenuItem.Text = "zxt2";
|
||||
this.AmstradCPCNonSyncSettingsToolStripMenuItem.Name = "AmstradCPCNonSyncSettingsToolStripMenuItem";
|
||||
this.AmstradCPCNonSyncSettingsToolStripMenuItem.Size = new System.Drawing.Size(201, 22);
|
||||
this.AmstradCPCNonSyncSettingsToolStripMenuItem.Text = "Non-Sync Settings";
|
||||
this.AmstradCPCNonSyncSettingsToolStripMenuItem.Click += new System.EventHandler(this.AmstradCPCNonSyncSettingsToolStripMenuItem_Click);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
|
@ -4580,16 +4680,27 @@
|
|||
private System.Windows.Forms.ToolStripMenuItem SMSControllerLightPhaserToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem SMSControllerSportsPadToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem SMSControllerKeyboardToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem zXSpectrumToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumControllerConfigurationMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumCoreEmulationSettingsMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumNonSyncSettingsMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumAudioSettingsMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumPokeMemoryMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumMediaMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumTapesSubMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumDisksSubMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem zxt1ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem zxt2ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem zXSpectrumToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumControllerConfigurationMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumCoreEmulationSettingsMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumNonSyncSettingsMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumAudioSettingsMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumPokeMemoryMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumMediaMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumTapesSubMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumDisksSubMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem zxt1ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem zxt2ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumExportSnapshotMenuItemMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem amstradCPCToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem amstradCPCCoreEmulationSettingsToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem AmstradCPCAudioSettingsToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem AmstradCPCPokeMemoryToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem AmstradCPCMediaToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem AmstradCPCTapesSubMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem cpct1ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem AmstradCPCDisksSubMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem cpcd1ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem AmstradCPCNonSyncSettingsToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ using System;
|
|||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using BizHawk.Emulation.Common;
|
||||
using BizHawk.Emulation.Common.IEmulatorExtensions;
|
||||
|
@ -26,6 +27,7 @@ using BizHawk.Client.ApiHawk;
|
|||
using BizHawk.Emulation.Cores.Computers.Commodore64;
|
||||
using BizHawk.Emulation.Cores.Nintendo.Gameboy;
|
||||
using BizHawk.Emulation.Cores.Computers.SinclairSpectrum;
|
||||
using BizHawk.Emulation.Cores.Computers.AmstradCPC;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
|
@ -482,7 +484,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
MessageBoxIcon.Warning);
|
||||
|
||||
box.SetButtons(
|
||||
new[] { "Switch", "Cancel" },
|
||||
new[] { "Switch", "Continue" },
|
||||
new[] { DialogResult.Yes, DialogResult.Cancel });
|
||||
|
||||
box.MaximumSize = new Size(475, 350);
|
||||
|
@ -496,7 +498,32 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
else if (result == DialogResult.Cancel)
|
||||
{
|
||||
return;
|
||||
// Do nothing and allow the user to continue to record the movie
|
||||
}
|
||||
}
|
||||
else if (Emulator is QuickNES) // This is unsustainable :( But mixing the logic together is even worse, this needs to be rethought
|
||||
{
|
||||
var box = new MsgBox(
|
||||
"While the QuickNes core is faster, it is not nearly as accurate as NesHawk. \nIt is recommended that you switch to the NesHawk core for movie recording\nSwitch to NesHawk?",
|
||||
"Accuracy Warning",
|
||||
MessageBoxIcon.Warning);
|
||||
|
||||
box.SetButtons(
|
||||
new[] { "Switch", "Continue" },
|
||||
new[] { DialogResult.Yes, DialogResult.Cancel });
|
||||
|
||||
box.MaximumSize = new Size(475, 350);
|
||||
box.SetMessageToAutoSize();
|
||||
var result = box.ShowDialog();
|
||||
|
||||
if (result == DialogResult.Yes)
|
||||
{
|
||||
Global.Config.NES_InQuickNES = false;
|
||||
RebootCore();
|
||||
}
|
||||
else if (result == DialogResult.Cancel)
|
||||
{
|
||||
// Do nothing and allow the user to continue to record the movie
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2506,6 +2533,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
ZXSpectrumTapesSubMenu.DropDownItems.Clear();
|
||||
|
||||
List<ToolStripMenuItem> items = new List<ToolStripMenuItem>();
|
||||
|
||||
if (Emulator is ZXSpectrum)
|
||||
{
|
||||
var speccy = (ZXSpectrum)Emulator;
|
||||
|
@ -2528,15 +2557,19 @@ namespace BizHawk.Client.EmuHawk
|
|||
speccy._machine.TapeMediaIndex = dummy;
|
||||
};
|
||||
|
||||
ZXSpectrumTapesSubMenu.DropDownItems.Add(menuItem);
|
||||
}
|
||||
items.Add(menuItem);
|
||||
}
|
||||
}
|
||||
|
||||
ZXSpectrumTapesSubMenu.DropDownItems.AddRange(items.ToArray());
|
||||
}
|
||||
|
||||
private void ZXSpectrumDisksSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
ZXSpectrumDisksSubMenu.DropDownItems.Clear();
|
||||
|
||||
List<ToolStripMenuItem> items = new List<ToolStripMenuItem>();
|
||||
|
||||
if (Emulator is ZXSpectrum)
|
||||
{
|
||||
var speccy = (ZXSpectrum)Emulator;
|
||||
|
@ -2559,9 +2592,140 @@ namespace BizHawk.Client.EmuHawk
|
|||
speccy._machine.DiskMediaIndex = dummy;
|
||||
};
|
||||
|
||||
ZXSpectrumDisksSubMenu.DropDownItems.Add(menuItem);
|
||||
items.Add(menuItem);
|
||||
}
|
||||
}
|
||||
|
||||
ZXSpectrumDisksSubMenu.DropDownItems.AddRange(items.ToArray());
|
||||
}
|
||||
|
||||
private void ZXSpectrumExportSnapshotMenuItemMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveFileDialog zxSnapExpDialog = new SaveFileDialog();
|
||||
zxSnapExpDialog.RestoreDirectory = true;
|
||||
zxSnapExpDialog.Title = "EXPERIMENTAL - Export 3rd party snapshot formats";
|
||||
zxSnapExpDialog.DefaultExt = "szx";
|
||||
zxSnapExpDialog.Filter = "ZX-State files (*.szx)|*.szx";
|
||||
zxSnapExpDialog.SupportMultiDottedExtensions = true;
|
||||
|
||||
try
|
||||
{
|
||||
var res = zxSnapExpDialog.ShowDialog();
|
||||
if (res == DialogResult.OK)
|
||||
{
|
||||
var speccy = (ZXSpectrum)Emulator;
|
||||
var snap = speccy.GetSZXSnapshot();
|
||||
File.WriteAllBytes(zxSnapExpDialog.FileName, snap);
|
||||
//File.WriteAllText(zxSnapExpDialog.FileName, snap);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
var ee = ex;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region AmstradCPC
|
||||
|
||||
private void amstradCPCCoreEmulationSettingsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
new AmstradCPCCoreEmulationSettings().ShowDialog();
|
||||
}
|
||||
|
||||
private void AmstradCPCAudioSettingsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
new AmstradCPCAudioSettings().ShowDialog();
|
||||
}
|
||||
|
||||
private void AmstradCPCPokeMemoryToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
new AmstradCPCPokeMemory().ShowDialog();
|
||||
}
|
||||
|
||||
private void AmstradCPCMediaToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
if (Emulator is AmstradCPC)
|
||||
{
|
||||
AmstradCPCTapesSubMenu.Enabled = ((AmstradCPC)Emulator)._tapeInfo.Count > 0;
|
||||
AmstradCPCDisksSubMenu.Enabled = ((AmstradCPC)Emulator)._diskInfo.Count > 0;
|
||||
}
|
||||
}
|
||||
|
||||
private void AmstradCPCTapesSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
AmstradCPCTapesSubMenu.DropDownItems.Clear();
|
||||
|
||||
List<ToolStripMenuItem> items = new List<ToolStripMenuItem>();
|
||||
|
||||
if (Emulator is AmstradCPC)
|
||||
{
|
||||
var ams = (AmstradCPC)Emulator;
|
||||
var currSel = ams._machine.TapeMediaIndex;
|
||||
|
||||
for (int i = 0; i < ams._tapeInfo.Count; i++)
|
||||
{
|
||||
string name = ams._tapeInfo[i].Name;
|
||||
|
||||
var menuItem = new ToolStripMenuItem
|
||||
{
|
||||
Name = i + "_" + name,
|
||||
Text = i + ": " + name,
|
||||
Checked = currSel == i
|
||||
};
|
||||
|
||||
int dummy = i;
|
||||
menuItem.Click += (o, ev) =>
|
||||
{
|
||||
ams._machine.TapeMediaIndex = dummy;
|
||||
};
|
||||
|
||||
items.Add(menuItem);
|
||||
}
|
||||
}
|
||||
|
||||
AmstradCPCTapesSubMenu.DropDownItems.AddRange(items.ToArray());
|
||||
}
|
||||
|
||||
private void AmstradCPCDisksSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
AmstradCPCDisksSubMenu.DropDownItems.Clear();
|
||||
|
||||
List<ToolStripMenuItem> items = new List<ToolStripMenuItem>();
|
||||
|
||||
if (Emulator is AmstradCPC)
|
||||
{
|
||||
var ams = (AmstradCPC)Emulator;
|
||||
var currSel = ams._machine.DiskMediaIndex;
|
||||
|
||||
for (int i = 0; i < ams._diskInfo.Count; i++)
|
||||
{
|
||||
string name = ams._diskInfo[i].Name;
|
||||
|
||||
var menuItem = new ToolStripMenuItem
|
||||
{
|
||||
Name = i + "_" + name,
|
||||
Text = i + ": " + name,
|
||||
Checked = currSel == i
|
||||
};
|
||||
|
||||
int dummy = i;
|
||||
menuItem.Click += (o, ev) =>
|
||||
{
|
||||
ams._machine.DiskMediaIndex = dummy;
|
||||
};
|
||||
|
||||
items.Add(menuItem);
|
||||
}
|
||||
}
|
||||
|
||||
AmstradCPCDisksSubMenu.DropDownItems.AddRange(items.ToArray());
|
||||
}
|
||||
|
||||
private void AmstradCPCNonSyncSettingsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
new AmstradCPCNonSyncSettings().ShowDialog();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -2618,7 +2782,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
showMenuVisible = true; // need to always be able to restore this as an emergency measure
|
||||
}
|
||||
|
||||
if (argParse._chromeless)
|
||||
if (argParser._chromeless)
|
||||
{
|
||||
showMenuVisible = true; // I decided this was always possible in chromeless mode, we'll see what they think
|
||||
}
|
||||
|
|
|
@ -34,7 +34,6 @@ using BizHawk.Emulation.Cores.Nintendo.SNES9X;
|
|||
using BizHawk.Emulation.Cores.Consoles.SNK;
|
||||
using BizHawk.Emulation.Cores.Consoles.Sega.PicoDrive;
|
||||
using BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy;
|
||||
using BizHawk.Emulation.Cores.Atari.A7800Hawk;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
|
@ -155,7 +154,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
};
|
||||
|
||||
argParse.ParseArguments(args);
|
||||
argParser.ParseArguments(args);
|
||||
|
||||
Database.LoadDatabase(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "gamedb", "gamedb.txt"));
|
||||
|
||||
|
@ -271,14 +270,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
Location = new Point(Global.Config.MainWndx, Global.Config.MainWndy);
|
||||
}
|
||||
|
||||
if (argParse.cmdRom != null)
|
||||
if (argParser.cmdRom != null)
|
||||
{
|
||||
// Commandline should always override auto-load
|
||||
var ioa = OpenAdvancedSerializer.ParseWithLegacy(argParse.cmdRom);
|
||||
LoadRom(argParse.cmdRom, new LoadRomArgs { OpenAdvanced = ioa });
|
||||
var ioa = OpenAdvancedSerializer.ParseWithLegacy(argParser.cmdRom);
|
||||
LoadRom(argParser.cmdRom, new LoadRomArgs { OpenAdvanced = ioa });
|
||||
if (Global.Game == null)
|
||||
{
|
||||
MessageBox.Show("Failed to load " + argParse.cmdRom + " specified on commandline");
|
||||
MessageBox.Show("Failed to load " + argParser.cmdRom + " specified on commandline");
|
||||
}
|
||||
}
|
||||
else if (Global.Config.RecentRoms.AutoLoad && !Global.Config.RecentRoms.Empty)
|
||||
|
@ -286,7 +285,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
LoadRomFromRecent(Global.Config.RecentRoms.MostRecent);
|
||||
}
|
||||
|
||||
if (argParse.cmdMovie != null)
|
||||
if (argParser.cmdMovie != null)
|
||||
{
|
||||
_supressSyncSettingsWarning = true; // We dont' want to be nagged if we are attempting to automate
|
||||
if (Global.Game == null)
|
||||
|
@ -297,21 +296,21 @@ namespace BizHawk.Client.EmuHawk
|
|||
// If user picked a game, then do the commandline logic
|
||||
if (!Global.Game.IsNullInstance)
|
||||
{
|
||||
var movie = MovieService.Get(argParse.cmdMovie);
|
||||
var movie = MovieService.Get(argParser.cmdMovie);
|
||||
Global.MovieSession.ReadOnly = true;
|
||||
|
||||
// if user is dumping and didnt supply dump length, make it as long as the loaded movie
|
||||
if (argParse._autoDumpLength == 0)
|
||||
if (argParser._autoDumpLength == 0)
|
||||
{
|
||||
argParse._autoDumpLength = movie.InputLogLength;
|
||||
argParser._autoDumpLength = movie.InputLogLength;
|
||||
}
|
||||
|
||||
// Copy pasta from drag & drop
|
||||
if (MovieImport.IsValidMovieExtension(Path.GetExtension(argParse.cmdMovie)))
|
||||
if (MovieImport.IsValidMovieExtension(Path.GetExtension(argParser.cmdMovie)))
|
||||
{
|
||||
string errorMsg;
|
||||
string warningMsg;
|
||||
var imported = MovieImport.ImportFile(argParse.cmdMovie, out errorMsg, out warningMsg);
|
||||
var imported = MovieImport.ImportFile(argParser.cmdMovie, out errorMsg, out warningMsg);
|
||||
if (!string.IsNullOrEmpty(errorMsg))
|
||||
{
|
||||
MessageBox.Show(errorMsg, "Conversion error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
@ -329,7 +328,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
else
|
||||
{
|
||||
StartNewMovie(movie, false);
|
||||
Global.Config.RecentMovies.Add(argParse.cmdMovie);
|
||||
Global.Config.RecentMovies.Add(argParser.cmdMovie);
|
||||
}
|
||||
|
||||
_supressSyncSettingsWarning = false;
|
||||
|
@ -356,20 +355,20 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
if (argParse.startFullscreen || Global.Config.StartFullscreen)
|
||||
if (argParser.startFullscreen || Global.Config.StartFullscreen)
|
||||
{
|
||||
_needsFullscreenOnLoad = true;
|
||||
}
|
||||
|
||||
if (!Global.Game.IsNullInstance)
|
||||
{
|
||||
if (argParse.cmdLoadState != null)
|
||||
if (argParser.cmdLoadState != null)
|
||||
{
|
||||
LoadState(argParse.cmdLoadState, Path.GetFileName(argParse.cmdLoadState));
|
||||
LoadState(argParser.cmdLoadState, Path.GetFileName(argParser.cmdLoadState));
|
||||
}
|
||||
else if (argParse.cmdLoadSlot != null)
|
||||
else if (argParser.cmdLoadSlot != null)
|
||||
{
|
||||
LoadQuickSave("QuickSave" + argParse.cmdLoadSlot);
|
||||
LoadQuickSave("QuickSave" + argParser.cmdLoadSlot);
|
||||
}
|
||||
else if (Global.Config.AutoLoadLastSaveSlot)
|
||||
{
|
||||
|
@ -378,14 +377,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
//start Lua Console if requested in the command line arguments
|
||||
if (argParse.luaConsole)
|
||||
if (argParser.luaConsole)
|
||||
{
|
||||
GlobalWin.Tools.Load<LuaConsole>();
|
||||
}
|
||||
//load Lua Script if requested in the command line arguments
|
||||
if (argParse.luaScript != null)
|
||||
if (argParser.luaScript != null)
|
||||
{
|
||||
GlobalWin.Tools.LuaConsole.LoadLuaFile(argParse.luaScript);
|
||||
GlobalWin.Tools.LuaConsole.LoadLuaFile(argParser.luaScript);
|
||||
}
|
||||
|
||||
GlobalWin.Tools.AutoLoad();
|
||||
|
@ -408,9 +407,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
// start dumping, if appropriate
|
||||
if (argParse.cmdDumpType != null && argParse.cmdDumpName != null)
|
||||
if (argParser.cmdDumpType != null && argParser.cmdDumpName != null)
|
||||
{
|
||||
RecordAv(argParse.cmdDumpType, argParse.cmdDumpName);
|
||||
RecordAv(argParser.cmdDumpType, argParser.cmdDumpName);
|
||||
}
|
||||
|
||||
SetMainformMovieInfo();
|
||||
|
@ -1024,15 +1023,15 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
// TODO - maybe apply a hack tracked during fullscreen here to override it
|
||||
FormBorderStyle = FormBorderStyle.None;
|
||||
MainMenuStrip.Visible = Global.Config.DispChrome_MenuFullscreen && !argParse._chromeless;
|
||||
MainStatusBar.Visible = Global.Config.DispChrome_StatusBarFullscreen && !argParse._chromeless;
|
||||
MainMenuStrip.Visible = Global.Config.DispChrome_MenuFullscreen && !argParser._chromeless;
|
||||
MainStatusBar.Visible = Global.Config.DispChrome_StatusBarFullscreen && !argParser._chromeless;
|
||||
}
|
||||
else
|
||||
{
|
||||
MainStatusBar.Visible = Global.Config.DispChrome_StatusBarWindowed && !argParse._chromeless;
|
||||
MainMenuStrip.Visible = Global.Config.DispChrome_MenuWindowed && !argParse._chromeless;
|
||||
MaximizeBox = MinimizeBox = Global.Config.DispChrome_CaptionWindowed && !argParse._chromeless;
|
||||
if (Global.Config.DispChrome_FrameWindowed == 0 || argParse._chromeless)
|
||||
MainStatusBar.Visible = Global.Config.DispChrome_StatusBarWindowed && !argParser._chromeless;
|
||||
MainMenuStrip.Visible = Global.Config.DispChrome_MenuWindowed && !argParser._chromeless;
|
||||
MaximizeBox = MinimizeBox = Global.Config.DispChrome_CaptionWindowed && !argParser._chromeless;
|
||||
if (Global.Config.DispChrome_FrameWindowed == 0 || argParser._chromeless)
|
||||
{
|
||||
FormBorderStyle = FormBorderStyle.None;
|
||||
}
|
||||
|
@ -1402,7 +1401,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private int _lastOpenRomFilter;
|
||||
|
||||
private ArgParser argParse = new ArgParser();
|
||||
private ArgParser argParser = new ArgParser();
|
||||
// Resources
|
||||
private Bitmap _statusBarDiskLightOnImage;
|
||||
private Bitmap _statusBarDiskLightOffImage;
|
||||
|
@ -1471,7 +1470,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
if (!Global.Config.DispChrome_CaptionWindowed || argParse._chromeless)
|
||||
if (!Global.Config.DispChrome_CaptionWindowed || argParser._chromeless)
|
||||
{
|
||||
str = "";
|
||||
}
|
||||
|
@ -1623,7 +1622,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
public void FlushSaveRAM(bool autosave = false)
|
||||
public bool FlushSaveRAM(bool autosave = false)
|
||||
{
|
||||
if (Emulator.HasSaveRam())
|
||||
{
|
||||
|
@ -1644,7 +1643,15 @@ namespace BizHawk.Client.EmuHawk
|
|||
var backupFile = new FileInfo(backupPath);
|
||||
if (file.Directory != null && !file.Directory.Exists)
|
||||
{
|
||||
file.Directory.Create();
|
||||
try
|
||||
{
|
||||
file.Directory.Create();
|
||||
}
|
||||
catch
|
||||
{
|
||||
GlobalWin.OSD.AddMessage("Unable to flush SaveRAM to: " + newFile.Directory);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
var writer = new BinaryWriter(new FileStream(newPath, FileMode.Create, FileAccess.Write));
|
||||
|
@ -1675,6 +1682,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
newFile.MoveTo(path);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void RewireSound()
|
||||
|
@ -1725,6 +1734,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
neoGeoPocketToolStripMenuItem.Visible = false;
|
||||
pCFXToolStripMenuItem.Visible = false;
|
||||
zXSpectrumToolStripMenuItem.Visible = false;
|
||||
amstradCPCToolStripMenuItem.Visible = false;
|
||||
|
||||
switch (system)
|
||||
{
|
||||
|
@ -1765,10 +1775,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
AtariSubMenu.Visible = true;
|
||||
break;
|
||||
case "A78":
|
||||
if (Emulator is A7800Hawk)
|
||||
{
|
||||
A7800SubMenu.Visible = true;
|
||||
}
|
||||
A7800SubMenu.Visible = true;
|
||||
break;
|
||||
case "PSX":
|
||||
PSXSubMenu.Visible = true;
|
||||
|
@ -1824,6 +1831,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
break;
|
||||
case "ZXSpectrum":
|
||||
zXSpectrumToolStripMenuItem.Visible = true;
|
||||
#if DEBUG
|
||||
ZXSpectrumExportSnapshotMenuItemMenuItem.Visible = true;
|
||||
#else
|
||||
ZXSpectrumExportSnapshotMenuItemMenuItem.Visible = false;
|
||||
#endif
|
||||
break;
|
||||
case "AmstradCPC":
|
||||
amstradCPCToolStripMenuItem.Visible = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2086,7 +2101,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (VersionInfo.DeveloperBuild)
|
||||
{
|
||||
return FormatFilter(
|
||||
"Rom Files", "*.nes;*.fds;*.unf;*.sms;*.gg;*.sg;*.pce;*.sgx;*.bin;*.smd;*.rom;*.a26;*.a78;*.lnx;*.m3u;*.cue;*.ccd;*.mds;*.exe;*.gb;*.gbc;*.gba;*.gen;*.md;*.32x;*.col;*.int;*.smc;*.sfc;*.prg;*.d64;*.g64;*.crt;*.tap;*.sgb;*.xml;*.z64;*.v64;*.n64;*.ws;*.wsc;*.dsk;*.do;*.po;*.vb;*.ngp;*.ngc;*.psf;*.minipsf;*.nsf;*.tzx;*.pzx;*.csw;*.wav;%ARCH%",
|
||||
"Rom Files", "*.nes;*.fds;*.unf;*.sms;*.gg;*.sg;*.pce;*.sgx;*.bin;*.smd;*.rom;*.a26;*.a78;*.lnx;*.m3u;*.cue;*.ccd;*.mds;*.exe;*.gb;*.gbc;*.gba;*.gen;*.md;*.32x;*.col;*.int;*.smc;*.sfc;*.prg;*.d64;*.g64;*.crt;*.tap;*.sgb;*.xml;*.z64;*.v64;*.n64;*.ws;*.wsc;*.dsk;*.do;*.po;*.vb;*.ngp;*.ngc;*.psf;*.minipsf;*.nsf;*.tzx;*.pzx;*.csw;*.wav;*.cdt;%ARCH%",
|
||||
"Music Files", "*.psf;*.minipsf;*.sid;*.nsf",
|
||||
"Disc Images", "*.cue;*.ccd;*.mds;*.m3u",
|
||||
"NES", "*.nes;*.fds;*.unf;*.nsf;%ARCH%",
|
||||
|
@ -2107,14 +2122,15 @@ namespace BizHawk.Client.EmuHawk
|
|||
"PlayStation", "*.cue;*.ccd;*.mds;*.m3u",
|
||||
"PSX Executables (experimental)", "*.exe",
|
||||
"PSF Playstation Sound File", "*.psf;*.minipsf",
|
||||
"Commodore 64", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%",
|
||||
"Commodore 64", "*.prg;*.d64;*.g64;*.crt;*.tap;%ARCH%",
|
||||
"SID Commodore 64 Music File", "*.sid;%ARCH%",
|
||||
"Nintendo 64", "*.z64;*.v64;*.n64",
|
||||
"WonderSwan", "*.ws;*.wsc;%ARCH%",
|
||||
"Apple II", "*.dsk;*.do;*.po;%ARCH%",
|
||||
"Virtual Boy", "*.vb;%ARCH%",
|
||||
"Neo Geo Pocket", "*.ngp;*.ngc;%ARCH%",
|
||||
"Sinclair ZX Spectrum", "*.tzx;*.tap;*.dsk;*.pzx;*.csw;*.wav;%ARCH%",
|
||||
"Sinclair ZX Spectrum", "*.tzx;*.tap;*.dsk;*.pzx;*.csw;*.wav;%ARCH%",
|
||||
"Amstrad CPC", "*.cdt;*.dsk;%ARCH%",
|
||||
"All Files", "*.*");
|
||||
}
|
||||
|
||||
|
@ -2143,9 +2159,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
"Apple II", "*.dsk;*.do;*.po;%ARCH%",
|
||||
"Virtual Boy", "*.vb;%ARCH%",
|
||||
"Neo Geo Pocket", "*.ngp;*.ngc;%ARCH%",
|
||||
"Commodore 64", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%",
|
||||
"Sinclair ZX Spectrum", "*.tzx;*.tap;*.dsk;*.pzx;*.csw;*.wav;%ARCH%",
|
||||
"All Files", "*.*");
|
||||
"Commodore 64", "*.prg;*.d64;*.g64;*.crt;*.tap;%ARCH%",
|
||||
"Sinclair ZX Spectrum", "*.tzx;*.tap;*.dsk;*.pzx;*.csw;*.wav;%ARCH%",
|
||||
"All Files", "*.*");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2166,7 +2182,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
var file = new FileInfo(ofd.FileName);
|
||||
Global.Config.LastRomPath = file.DirectoryName;
|
||||
_lastOpenRomFilter = ofd.FilterIndex;
|
||||
|
||||
var lra = new LoadRomArgs { OpenAdvanced = new OpenAdvanced_OpenRom { Path = file.FullName } };
|
||||
|
@ -2766,9 +2781,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
var core = (Emulation.Cores.Computers.SinclairSpectrum.ZXSpectrum)Emulator as Emulation.Cores.Computers.SinclairSpectrum.ZXSpectrum;
|
||||
CoreNameStatusBarButton.ToolTipText = core.GetMachineType();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if (Emulator.SystemId == "AmstradCPC")
|
||||
{
|
||||
var core = (Emulation.Cores.Computers.AmstradCPC.AmstradCPC)Emulator as Emulation.Cores.Computers.AmstradCPC.AmstradCPC;
|
||||
CoreNameStatusBarButton.ToolTipText = core.GetMachineType();
|
||||
}
|
||||
}
|
||||
|
||||
private void ToggleKeyPriority()
|
||||
{
|
||||
|
@ -3174,12 +3194,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
aw = new AudioStretcher(aw);
|
||||
}
|
||||
|
||||
if (unattended && Global.Config.TargetZoomFactor > 1)
|
||||
{
|
||||
_avwriterResizew = Global.Config.TargetZoomFactor * _currentVideoProvider.BufferWidth;
|
||||
_avwriterResizeh = Global.Config.TargetZoomFactor * _currentVideoProvider.BufferHeight;
|
||||
}
|
||||
|
||||
aw.SetMovieParameters(Emulator.VsyncNumerator(), Emulator.VsyncDenominator());
|
||||
if (_avwriterResizew > 0 && _avwriterResizeh > 0)
|
||||
{
|
||||
|
@ -3354,9 +3368,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
try
|
||||
{
|
||||
// is this the best time to handle this? or deeper inside?
|
||||
if (argParse._currAviWriterFrameList != null)
|
||||
if (argParser._currAviWriterFrameList != null)
|
||||
{
|
||||
if (!argParse._currAviWriterFrameList.Contains(Emulator.Frame))
|
||||
if (!argParser._currAviWriterFrameList.Contains(Emulator.Frame))
|
||||
{
|
||||
goto HANDLE_AUTODUMP;
|
||||
}
|
||||
|
@ -3439,13 +3453,13 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
HANDLE_AUTODUMP:
|
||||
if (argParse._autoDumpLength > 0)
|
||||
if (argParser._autoDumpLength > 0)
|
||||
{
|
||||
argParse._autoDumpLength--;
|
||||
if (argParse._autoDumpLength == 0) // finish
|
||||
argParser._autoDumpLength--;
|
||||
if (argParser._autoDumpLength == 0) // finish
|
||||
{
|
||||
StopAv();
|
||||
if (argParse._autoCloseOnDump)
|
||||
if (argParser._autoCloseOnDump)
|
||||
{
|
||||
_exitRequestPending = true;
|
||||
}
|
||||
|
@ -3531,8 +3545,23 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private LoadRomArgs _currentLoadRomArgs;
|
||||
|
||||
// Still needs a good bit of refactoring
|
||||
public bool LoadRom(string path, LoadRomArgs args)
|
||||
{
|
||||
bool ret = _LoadRom(path, args);
|
||||
if(!ret) return false;
|
||||
|
||||
//what's the meaning of the last rom path when opening an archive? based on the archive file location
|
||||
if (args.OpenAdvanced is OpenAdvanced_OpenRom)
|
||||
{
|
||||
var leftpart = path.Split('|')[0];
|
||||
Global.Config.LastRomPath = Path.GetFullPath(Path.GetDirectoryName(leftpart));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Still needs a good bit of refactoring
|
||||
public bool _LoadRom(string path, LoadRomArgs args)
|
||||
{
|
||||
path = HawkFile.Util_ResolveLink(path);
|
||||
|
||||
|
@ -3555,9 +3584,29 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
try
|
||||
{
|
||||
// If deterministic emulation is passed in, respect that value regardless, else determine a good value (currently that simply means movies require deterministic emulaton)
|
||||
bool deterministic = args.Deterministic ?? Global.MovieSession.QueuedMovie != null;
|
||||
{
|
||||
bool deterministic;
|
||||
|
||||
if (args.Deterministic == null)
|
||||
{
|
||||
// force deterministic in this case
|
||||
// this is usually null for most cores
|
||||
// previously this was getting set to false if a movie was not queued for recording - surely that can't be good..
|
||||
deterministic = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// a value was actually supplied somehow - use this
|
||||
deterministic = args.Deterministic.Value;
|
||||
}
|
||||
|
||||
if (Global.MovieSession.QueuedMovie != null)
|
||||
{
|
||||
// movies should require deterministic emulation in ALL cases
|
||||
// if the core is managing its own DE through SyncSettings a 'deterministic' bool should be passed into the core's constructor
|
||||
// it is then up to the core itself to override its own local DeterministicEmulation setting
|
||||
deterministic = true;
|
||||
}
|
||||
|
||||
if (!GlobalWin.Tools.AskSave())
|
||||
{
|
||||
|
@ -3640,37 +3689,42 @@ namespace BizHawk.Client.EmuHawk
|
|||
CoreFileProvider.SyncCoreCommInputSignals(nextComm);
|
||||
InputManager.SyncControls();
|
||||
|
||||
if (Path.GetExtension(loaderName.Replace("*OpenRom*", "").Replace("|", "")).ToLower() == ".xml")
|
||||
{
|
||||
// this is a multi-disk bundler file
|
||||
// determine the xml assets and create RomStatusDetails for all of them
|
||||
var xmlGame = XmlGame.Create(new HawkFile(loaderName.Replace("*OpenRom*", "")));
|
||||
if (ioa is OpenAdvanced_OpenRom)
|
||||
{
|
||||
OpenAdvanced_OpenRom ioa_openRom = ioa as OpenAdvanced_OpenRom;
|
||||
|
||||
StringWriter xSw = new StringWriter();
|
||||
if (Path.GetExtension(ioa_openRom.Path.Replace("|","")).ToLower() == ".xml")
|
||||
{
|
||||
// this is a multi-disk bundler file
|
||||
// determine the xml assets and create RomStatusDetails for all of them
|
||||
var xmlGame = XmlGame.Create(new HawkFile(ioa_openRom.Path));
|
||||
|
||||
for (int xg = 0; xg < xmlGame.Assets.Count; xg++)
|
||||
{
|
||||
var ext = Path.GetExtension(xmlGame.AssetFullPaths[xg]).ToLower();
|
||||
StringWriter xSw = new StringWriter();
|
||||
|
||||
if (ext == ".cue" || ext == ".ccd" || ext == ".toc" || ext == ".mds")
|
||||
{
|
||||
xSw.WriteLine(Path.GetFileNameWithoutExtension(xmlGame.Assets[xg].Key));
|
||||
xSw.WriteLine("SHA1:N/A");
|
||||
xSw.WriteLine("MD5:N/A");
|
||||
xSw.WriteLine();
|
||||
}
|
||||
else
|
||||
{
|
||||
xSw.WriteLine(xmlGame.Assets[xg].Key);
|
||||
xSw.WriteLine("SHA1:" + xmlGame.Assets[xg].Value.HashSHA1());
|
||||
xSw.WriteLine("MD5:" + xmlGame.Assets[xg].Value.HashMD5());
|
||||
xSw.WriteLine();
|
||||
}
|
||||
}
|
||||
for (int xg = 0; xg < xmlGame.Assets.Count; xg++)
|
||||
{
|
||||
var ext = Path.GetExtension(xmlGame.AssetFullPaths[xg]).ToLower();
|
||||
|
||||
Emulator.CoreComm.RomStatusDetails = xSw.ToString();
|
||||
Emulator.CoreComm.RomStatusAnnotation = "Multi-disk bundler";
|
||||
}
|
||||
if (ext == ".cue" || ext == ".ccd" || ext == ".toc" || ext == ".mds")
|
||||
{
|
||||
xSw.WriteLine(Path.GetFileNameWithoutExtension(xmlGame.Assets[xg].Key));
|
||||
xSw.WriteLine("SHA1:N/A");
|
||||
xSw.WriteLine("MD5:N/A");
|
||||
xSw.WriteLine();
|
||||
}
|
||||
else
|
||||
{
|
||||
xSw.WriteLine(xmlGame.Assets[xg].Key);
|
||||
xSw.WriteLine("SHA1:" + xmlGame.Assets[xg].Value.HashSHA1());
|
||||
xSw.WriteLine("MD5:" + xmlGame.Assets[xg].Value.HashMD5());
|
||||
xSw.WriteLine();
|
||||
}
|
||||
}
|
||||
|
||||
Emulator.CoreComm.RomStatusDetails = xSw.ToString();
|
||||
Emulator.CoreComm.RomStatusAnnotation = "Multi-disk bundler";
|
||||
}
|
||||
}
|
||||
|
||||
if (Emulator is TI83 && Global.Config.TI83autoloadKeyPad)
|
||||
{
|
||||
|
@ -3701,15 +3755,15 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
if (Emulator.CoreComm.RomStatusDetails == null && loader.Rom != null)
|
||||
{
|
||||
Emulator.CoreComm.RomStatusDetails = $"{loader.Game.Name}\r\nSHA1:{loader.Rom.RomData.HashSHA1()}\r\nMD5:{loader.Rom.RomData.HashMD5()}\r\n";
|
||||
}
|
||||
else if (Emulator.CoreComm.RomStatusDetails == null && loader.Rom == null)
|
||||
{
|
||||
// single disc game
|
||||
Emulator.CoreComm.RomStatusDetails = $"{loader.Game.Name}\r\nSHA1:N/A\r\nMD5:N/A\r\n";
|
||||
}
|
||||
if (Emulator.CoreComm.RomStatusDetails == null && loader.Rom != null)
|
||||
{
|
||||
Emulator.CoreComm.RomStatusDetails = $"{loader.Game.Name}\r\nSHA1:{loader.Rom.RomData.HashSHA1()}\r\nMD5:{loader.Rom.RomData.HashMD5()}\r\n";
|
||||
}
|
||||
else if (Emulator.CoreComm.RomStatusDetails == null && loader.Rom == null)
|
||||
{
|
||||
// single disc game
|
||||
Emulator.CoreComm.RomStatusDetails = $"{loader.Game.Name}\r\nSHA1:N/A\r\nMD5:N/A\r\n";
|
||||
}
|
||||
|
||||
if (Emulator.HasBoardInfo())
|
||||
{
|
||||
|
@ -3859,7 +3913,16 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
else if (Emulator.HasSaveRam() && Emulator.AsSaveRam().SaveRamModified)
|
||||
{
|
||||
FlushSaveRAM();
|
||||
if (!FlushSaveRAM())
|
||||
{
|
||||
var msgRes = MessageBox.Show("Failed flushing the game's Save RAM to your disk.\nClose without flushing Save RAM?",
|
||||
"Directory IO Error", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
|
||||
|
||||
if (msgRes != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StopAv();
|
||||
|
@ -4355,7 +4418,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
GenericCoreConfig.DoDialog(this, "PC-FX Settings");
|
||||
}
|
||||
|
||||
|
||||
private bool Rewind(ref bool runFrame, long currentTimestamp, out bool returnToRecording)
|
||||
{
|
||||
|
@ -4401,7 +4463,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
if (isRewinding)
|
||||
{
|
||||
runFrame = true; // TODO: the master should be deciding this!
|
||||
runFrame = Emulator.Frame > 1; // TODO: the master should be deciding this!
|
||||
Master.Rewind();
|
||||
}
|
||||
}
|
||||
|
@ -4435,7 +4497,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
if (isRewinding)
|
||||
{
|
||||
runFrame = Global.Rewinder.Rewind(1);
|
||||
runFrame = Global.Rewinder.Rewind(1) && Emulator.Frame > 1;
|
||||
|
||||
if (runFrame && Global.MovieSession.Movie.IsRecording)
|
||||
{
|
||||
|
|
|
@ -17,22 +17,26 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
static class Program
|
||||
{
|
||||
static bool RunningOnUnix = Environment.OSVersion.Platform == PlatformID.Unix || Environment.OSVersion.Platform == PlatformID.MacOSX;
|
||||
|
||||
static Program()
|
||||
{
|
||||
//this needs to be done before the warnings/errors show up
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
|
||||
PlatformSpecificLinkedLibs libLoader = RunningOnUnix ? (PlatformSpecificLinkedLibs) new UnixMono() : (PlatformSpecificLinkedLibs) new Win32();
|
||||
|
||||
//http://www.codeproject.com/Articles/310675/AppDomain-AssemblyResolve-Event-Tips
|
||||
#if WINDOWS
|
||||
|
||||
//try loading libraries we know we'll need
|
||||
//something in the winforms, etc. code below will cause .net to popup a missing msvcr100.dll in case that one's missing
|
||||
//but oddly it lets us proceed and we'll then catch it here
|
||||
var d3dx9 = Win32.LoadLibrary("d3dx9_43.dll");
|
||||
var vc2015 = Win32.LoadLibrary("vcruntime140.dll");
|
||||
var vc2012 = Win32.LoadLibrary("msvcr120.dll"); //TODO - check version?
|
||||
var vc2010 = Win32.LoadLibrary("msvcr100.dll"); //TODO - check version?
|
||||
var vc2010p = Win32.LoadLibrary("msvcp100.dll");
|
||||
var d3dx9 = libLoader.LoadPlatformSpecific("d3dx9_43.dll");
|
||||
var vc2015 = libLoader.LoadPlatformSpecific("vcruntime140.dll");
|
||||
var vc2012 = libLoader.LoadPlatformSpecific("msvcr120.dll"); //TODO - check version?
|
||||
var vc2010 = libLoader.LoadPlatformSpecific("msvcr100.dll"); //TODO - check version?
|
||||
var vc2010p = libLoader.LoadPlatformSpecific("msvcp100.dll");
|
||||
bool fail = false, warn = false;
|
||||
warn |= d3dx9 == IntPtr.Zero;
|
||||
fail |= vc2015 == IntPtr.Zero;
|
||||
|
@ -56,27 +60,28 @@ namespace BizHawk.Client.EmuHawk
|
|||
System.Diagnostics.Process.GetCurrentProcess().Kill();
|
||||
}
|
||||
|
||||
Win32.FreeLibrary(d3dx9);
|
||||
Win32.FreeLibrary(vc2015);
|
||||
Win32.FreeLibrary(vc2012);
|
||||
Win32.FreeLibrary(vc2010);
|
||||
Win32.FreeLibrary(vc2010p);
|
||||
libLoader.FreePlatformSpecific(d3dx9);
|
||||
libLoader.FreePlatformSpecific(vc2015);
|
||||
libLoader.FreePlatformSpecific(vc2012);
|
||||
libLoader.FreePlatformSpecific(vc2010);
|
||||
libLoader.FreePlatformSpecific(vc2010p);
|
||||
|
||||
// this will look in subdirectory "dll" to load pinvoked stuff
|
||||
string dllDir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "dll");
|
||||
SetDllDirectory(dllDir);
|
||||
|
||||
//in case assembly resolution fails, such as if we moved them into the dll subdiretory, this event handler can reroute to them
|
||||
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
|
||||
if (!RunningOnUnix)
|
||||
{
|
||||
// this will look in subdirectory "dll" to load pinvoked stuff
|
||||
string dllDir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "dll");
|
||||
SetDllDirectory(dllDir);
|
||||
|
||||
//but before we even try doing that, whack the MOTW from everything in that directory (thats a dll)
|
||||
//otherwise, some people will have crashes at boot-up due to .net security disliking MOTW.
|
||||
//some people are getting MOTW through a combination of browser used to download bizhawk, and program used to dearchive it
|
||||
WhackAllMOTW(dllDir);
|
||||
//in case assembly resolution fails, such as if we moved them into the dll subdiretory, this event handler can reroute to them
|
||||
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
|
||||
|
||||
//We need to do it here too... otherwise people get exceptions when externaltools we distribute try to startup
|
||||
//but before we even try doing that, whack the MOTW from everything in that directory (thats a dll)
|
||||
//otherwise, some people will have crashes at boot-up due to .net security disliking MOTW.
|
||||
//some people are getting MOTW through a combination of browser used to download bizhawk, and program used to dearchive it
|
||||
WhackAllMOTW(dllDir);
|
||||
|
||||
#endif
|
||||
//We need to do it here too... otherwise people get exceptions when externaltools we distribute try to startup
|
||||
}
|
||||
}
|
||||
|
||||
[STAThread]
|
||||
|
@ -85,15 +90,177 @@ namespace BizHawk.Client.EmuHawk
|
|||
return SubMain(args);
|
||||
}
|
||||
|
||||
private static class Win32
|
||||
private interface PlatformSpecificLinkedLibs
|
||||
{
|
||||
IntPtr LoadPlatformSpecific(string dllToLoad);
|
||||
IntPtr GetProcAddr(IntPtr hModule, string procName);
|
||||
void FreePlatformSpecific(IntPtr hModule);
|
||||
}
|
||||
private class Win32 : PlatformSpecificLinkedLibs
|
||||
{
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern IntPtr LoadLibrary(string dllToLoad);
|
||||
private static extern IntPtr LoadLibrary(string dllToLoad);
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);
|
||||
private static extern IntPtr GetProcAddress(IntPtr hModule, string procName);
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern bool FreeLibrary(IntPtr hModule);
|
||||
private static extern void FreeLibrary(IntPtr hModule);
|
||||
public IntPtr LoadPlatformSpecific(string dllToLoad)
|
||||
{
|
||||
return LoadLibrary(dllToLoad);
|
||||
}
|
||||
public IntPtr GetProcAddr(IntPtr hModule, string procName)
|
||||
{
|
||||
return GetProcAddress(hModule, procName);
|
||||
}
|
||||
public void FreePlatformSpecific(IntPtr hModule)
|
||||
{
|
||||
FreeLibrary(hModule);
|
||||
}
|
||||
}
|
||||
private class UnixMono : PlatformSpecificLinkedLibs
|
||||
{
|
||||
// This class is copied from a tutorial, so don't git blame and then email me expecting insight.
|
||||
const int RTLD_NOW = 2;
|
||||
[DllImport("libdl.so")]
|
||||
private static extern IntPtr dlopen(String fileName, int flags);
|
||||
[DllImport("libdl.so")]
|
||||
private static extern IntPtr dlerror();
|
||||
[DllImport("libdl.so")]
|
||||
private static extern IntPtr dlsym(IntPtr handle, String symbol);
|
||||
[DllImport("libdl.so")]
|
||||
private static extern int dlclose(IntPtr handle);
|
||||
public IntPtr LoadPlatformSpecific(string dllToLoad)
|
||||
{
|
||||
return dlopen(dllToLoad + ".so", RTLD_NOW);
|
||||
}
|
||||
public IntPtr GetProcAddr(IntPtr hModule, string procName)
|
||||
{
|
||||
dlerror();
|
||||
var res = dlsym(hModule, procName);
|
||||
var errPtr = dlerror();
|
||||
if (errPtr != IntPtr.Zero) throw new Exception("dlsym: " + Marshal.PtrToStringAnsi(errPtr));
|
||||
return res;
|
||||
}
|
||||
public void FreePlatformSpecific(IntPtr hModule)
|
||||
{
|
||||
dlclose(hModule);
|
||||
}
|
||||
}
|
||||
|
||||
private interface PlatformSpecificMainLoopCrashHandler
|
||||
{
|
||||
void TryCatchFinally(string[] args);
|
||||
}
|
||||
private class Win32MainLoopCrashHandler : PlatformSpecificMainLoopCrashHandler
|
||||
{
|
||||
public void TryCatchFinally(string[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Global.Config.SingleInstanceMode)
|
||||
{
|
||||
try
|
||||
{
|
||||
new SingleInstanceController(args).Run(args);
|
||||
}
|
||||
catch (ObjectDisposedException)
|
||||
{
|
||||
// Eat it, MainForm disposed itself and Run attempts to dispose of itself. Eventually we would want to figure out a way to prevent that, but in the meantime it is harmless, so just eat the error
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
using (var mf = new MainForm(args))
|
||||
{
|
||||
var title = mf.Text;
|
||||
mf.Show();
|
||||
mf.Text = title;
|
||||
try
|
||||
{
|
||||
GlobalWin.ExitCode = mf.ProgramRunLoop();
|
||||
}
|
||||
catch (Exception e) when (!Debugger.IsAttached && !VersionInfo.DeveloperBuild && Global.MovieSession.Movie.IsActive)
|
||||
{
|
||||
var result = MessageBox.Show(
|
||||
"EmuHawk has thrown a fatal exception and is about to close.\nA movie has been detected. Would you like to try to save?\n(Note: Depending on what caused this error, this may or may not succeed)",
|
||||
"Fatal error: " + e.GetType().Name,
|
||||
MessageBoxButtons.YesNo,
|
||||
MessageBoxIcon.Exclamation
|
||||
);
|
||||
if (result == DialogResult.Yes)
|
||||
{
|
||||
Global.MovieSession.Movie.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e) when (!Debugger.IsAttached)
|
||||
{
|
||||
new ExceptionBox(e).ShowDialog();
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (GlobalWin.Sound != null)
|
||||
{
|
||||
GlobalWin.Sound.Dispose();
|
||||
GlobalWin.Sound = null;
|
||||
}
|
||||
GlobalWin.GL.Dispose();
|
||||
Input.Cleanup();
|
||||
}
|
||||
}
|
||||
}
|
||||
private class UnixMonoMainLoopCrashHandler : PlatformSpecificMainLoopCrashHandler
|
||||
{
|
||||
// Identical to the implementation in Win32MainLoopCrashHandler sans the single-instance check.
|
||||
public void TryCatchFinally(string[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var mf = new MainForm(args))
|
||||
{
|
||||
var title = mf.Text;
|
||||
mf.Show();
|
||||
mf.Text = title;
|
||||
try
|
||||
{
|
||||
GlobalWin.ExitCode = mf.ProgramRunLoop();
|
||||
}
|
||||
catch (Exception e) when (!Debugger.IsAttached && !VersionInfo.DeveloperBuild && Global.MovieSession.Movie.IsActive)
|
||||
{
|
||||
var result = MessageBox.Show(
|
||||
"EmuHawk has thrown a fatal exception and is about to close.\nA movie has been detected. Would you like to try to save?\n(Note: Depending on what caused this error, this may or may not succeed)",
|
||||
"Fatal error: " + e.GetType().Name,
|
||||
MessageBoxButtons.YesNo,
|
||||
MessageBoxIcon.Exclamation
|
||||
);
|
||||
if (result == DialogResult.Yes)
|
||||
{
|
||||
Global.MovieSession.Movie.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e) when (!Debugger.IsAttached)
|
||||
{
|
||||
new ExceptionBox(e).ShowDialog();
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (GlobalWin.Sound != null)
|
||||
{
|
||||
GlobalWin.Sound.Dispose();
|
||||
GlobalWin.Sound = null;
|
||||
}
|
||||
GlobalWin.GL.Dispose();
|
||||
Input.Cleanup();
|
||||
}
|
||||
}
|
||||
}
|
||||
private static PlatformSpecificMainLoopCrashHandler mainLoopCrashHandler = RunningOnUnix
|
||||
? (PlatformSpecificMainLoopCrashHandler) new UnixMonoMainLoopCrashHandler()
|
||||
: (PlatformSpecificMainLoopCrashHandler) new Win32MainLoopCrashHandler();
|
||||
|
||||
//NoInlining should keep this code from getting jammed into Main() which would create dependencies on types which havent been setup by the resolver yet... or something like that
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
|
@ -115,21 +282,22 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
BizHawk.Common.TempFileCleaner.Start();
|
||||
|
||||
BizHawk.Common.TempFileManager.Start();
|
||||
|
||||
HawkFile.ArchiveHandlerFactory = new SevenZipSharpArchiveHandler();
|
||||
|
||||
string iniPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config.ini");
|
||||
ArgParser argParser = new ArgParser();
|
||||
argParser.ParseArguments(args);
|
||||
if (argParser.cmdConfigFile != null) PathManager.SetDefaultIniPath(argParser.cmdConfigFile);
|
||||
|
||||
try
|
||||
{
|
||||
Global.Config = ConfigService.Load<Config>(iniPath);
|
||||
Global.Config = ConfigService.Load<Config>(PathManager.DefaultIniPath);
|
||||
} catch (Exception e) {
|
||||
new ExceptionBox(e).ShowDialog();
|
||||
new ExceptionBox("Since your config file is corrupted, we're going to recreate it. Back it up before proceeding if you want to investigate further.").ShowDialog();
|
||||
File.Delete(iniPath);
|
||||
Global.Config = ConfigService.Load<Config>(iniPath);
|
||||
File.Delete(PathManager.DefaultIniPath);
|
||||
Global.Config = ConfigService.Load<Config>(PathManager.DefaultIniPath);
|
||||
}
|
||||
|
||||
Global.Config.ResolveDefaults();
|
||||
|
@ -155,6 +323,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
GlobalWin.GLManager = GLManager.Instance;
|
||||
|
||||
//now create the "GL" context for the display method. we can reuse the IGL_TK context if opengl display method is chosen
|
||||
if (RunningOnUnix) Global.Config.DispMethod = Config.EDispMethod.GdiPlus;
|
||||
REDO_DISPMETHOD:
|
||||
if (Global.Config.DispMethod == Config.EDispMethod.GdiPlus)
|
||||
GlobalWin.GL = new Bizware.BizwareGL.Drivers.GdiPlus.IGL_GdiPlus();
|
||||
|
@ -202,71 +371,19 @@ namespace BizHawk.Client.EmuHawk
|
|||
goto REDO_DISPMETHOD;
|
||||
}
|
||||
|
||||
//WHY do we have to do this? some intel graphics drivers (ig7icd64.dll 10.18.10.3304 on an unknown chip on win8.1) are calling SetDllDirectory() for the process, which ruins stuff.
|
||||
//The relevant initialization happened just before in "create IGL context".
|
||||
//It isn't clear whether we need the earlier SetDllDirectory(), but I think we do.
|
||||
//note: this is pasted instead of being put in a static method due to this initialization code being sensitive to things like that, and not wanting to cause it to break
|
||||
//pasting should be safe (not affecting the jit order of things)
|
||||
string dllDir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "dll");
|
||||
SetDllDirectory(dllDir);
|
||||
if (!RunningOnUnix)
|
||||
{
|
||||
//WHY do we have to do this? some intel graphics drivers (ig7icd64.dll 10.18.10.3304 on an unknown chip on win8.1) are calling SetDllDirectory() for the process, which ruins stuff.
|
||||
//The relevant initialization happened just before in "create IGL context".
|
||||
//It isn't clear whether we need the earlier SetDllDirectory(), but I think we do.
|
||||
//note: this is pasted instead of being put in a static method due to this initialization code being sensitive to things like that, and not wanting to cause it to break
|
||||
//pasting should be safe (not affecting the jit order of things)
|
||||
string dllDir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "dll");
|
||||
SetDllDirectory(dllDir);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
#if WINDOWS
|
||||
if (Global.Config.SingleInstanceMode)
|
||||
{
|
||||
try
|
||||
{
|
||||
new SingleInstanceController(args).Run(args);
|
||||
}
|
||||
catch (ObjectDisposedException)
|
||||
{
|
||||
/*Eat it, MainForm disposed itself and Run attempts to dispose of itself. Eventually we would want to figure out a way to prevent that, but in the meantime it is harmless, so just eat the error*/
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
using (var mf = new MainForm(args))
|
||||
{
|
||||
var title = mf.Text;
|
||||
mf.Show();
|
||||
mf.Text = title;
|
||||
|
||||
try
|
||||
{
|
||||
GlobalWin.ExitCode = mf.ProgramRunLoop();
|
||||
}
|
||||
catch (Exception e) when (!Debugger.IsAttached && !VersionInfo.DeveloperBuild && Global.MovieSession.Movie.IsActive)
|
||||
{
|
||||
var result = MessageBox.Show(
|
||||
"EmuHawk has thrown a fatal exception and is about to close.\nA movie has been detected. Would you like to try to save?\n(Note: Depending on what caused this error, this may or may not succeed)",
|
||||
"Fatal error: " + e.GetType().Name,
|
||||
MessageBoxButtons.YesNo,
|
||||
MessageBoxIcon.Exclamation
|
||||
);
|
||||
if (result == DialogResult.Yes)
|
||||
{
|
||||
Global.MovieSession.Movie.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e) when (!Debugger.IsAttached)
|
||||
{
|
||||
new ExceptionBox(e).ShowDialog();
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (GlobalWin.Sound != null)
|
||||
{
|
||||
GlobalWin.Sound.Dispose();
|
||||
GlobalWin.Sound = null;
|
||||
}
|
||||
GlobalWin.GL.Dispose();
|
||||
Input.Cleanup();
|
||||
}
|
||||
// Using a simple conditional to skip the single-instancing step caused crashes on GNU+Linux, even though the single-instancing step wasn't being executed. Something about the way instantiation works in C# means this workaround is possible.
|
||||
mainLoopCrashHandler.TryCatchFinally(args);
|
||||
|
||||
//cleanup:
|
||||
//cleanup IGL stuff so we can get better refcounts when exiting process, for debugging
|
||||
|
|
|
@ -900,6 +900,16 @@ namespace BizHawk.Client.EmuHawk.Properties {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap MoveBottom {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("MoveBottom", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
|
@ -930,6 +940,16 @@ namespace BizHawk.Client.EmuHawk.Properties {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap MoveTop {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("MoveTop", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
|
|
|
@ -1560,4 +1560,10 @@
|
|||
<data name="ZXSpectrumKeyboards" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\config\ControllerImages\ZXSpectrumKeyboards.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="MoveBottom" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MoveBottom.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="MoveTop" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MoveTop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
|
@ -1,13 +1,48 @@
|
|||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
// Derived from http://www.codeproject.com/KB/cs/ScreenSaverControl.aspx
|
||||
public static class ScreenSaver
|
||||
{
|
||||
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
||||
private static extern bool SystemParametersInfo(int uAction, int uParam, ref int lpvParam, int flags);
|
||||
private interface PlatformSpecificScreenBlankInterface
|
||||
{
|
||||
Int32 Get();
|
||||
void Set(Int32 v);
|
||||
}
|
||||
private class WinScreenBlankInterface : PlatformSpecificScreenBlankInterface
|
||||
{
|
||||
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
||||
private static extern bool SystemParametersInfo(int uAction, int uParam, ref int lpvParam, int flags);
|
||||
public Int32 Get()
|
||||
{
|
||||
Int32 value = 0;
|
||||
SystemParametersInfo(SPI_GETSCREENSAVERTIMEOUT, 0, ref value, 0);
|
||||
return value;
|
||||
}
|
||||
public void Set(Int32 v)
|
||||
{
|
||||
int nullVar = 0;
|
||||
SystemParametersInfo(SPI_SETSCREENSAVERTIMEOUT, v, ref nullVar, SPIF_SENDWININICHANGE);
|
||||
}
|
||||
}
|
||||
private class MiscUnixScreenBlankInterface : PlatformSpecificScreenBlankInterface
|
||||
{
|
||||
public Int32 Get()
|
||||
{
|
||||
return 0; //TODO implement
|
||||
}
|
||||
public void Set(Int32 v)
|
||||
{
|
||||
//TODO implement
|
||||
}
|
||||
}
|
||||
private static PlatformSpecificScreenBlankInterface screenBlankInterface = Global.RunningOnUnix
|
||||
? (PlatformSpecificScreenBlankInterface) new MiscUnixScreenBlankInterface()
|
||||
: (PlatformSpecificScreenBlankInterface) new WinScreenBlankInterface();
|
||||
|
||||
private const int SPI_GETSCREENSAVERTIMEOUT = 14;
|
||||
private const int SPI_SETSCREENSAVERTIMEOUT = 15;
|
||||
|
@ -32,16 +67,13 @@ namespace BizHawk.Client.EmuHawk
|
|||
// Returns the screen saver timeout setting, in seconds
|
||||
private static Int32 GetScreenSaverTimeout()
|
||||
{
|
||||
Int32 value = 0;
|
||||
SystemParametersInfo(SPI_GETSCREENSAVERTIMEOUT, 0, ref value, 0);
|
||||
return value;
|
||||
return screenBlankInterface.Get();
|
||||
}
|
||||
|
||||
// Pass in the number of seconds to set the screen saver timeout value.
|
||||
private static void SetScreenSaverTimeout(Int32 Value)
|
||||
{
|
||||
int nullVar = 0;
|
||||
SystemParametersInfo(SPI_SETSCREENSAVERTIMEOUT, Value, ref nullVar, SPIF_SENDWININICHANGE);
|
||||
screenBlankInterface.Set(Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -156,7 +156,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
public void WriteSamples(short[] samples, int sampleCount)
|
||||
{
|
||||
if (sampleCount == 0) return;
|
||||
_deviceBuffer.Write(samples, 0, sampleCount * Sound.ChannelCount, _actualWriteOffsetBytes, LockFlags.None);
|
||||
int total = sampleCount * Sound.ChannelCount;
|
||||
if (total > samples.Length) { total = samples.Length; }
|
||||
_deviceBuffer.Write(samples, 0, total, _actualWriteOffsetBytes, LockFlags.None);
|
||||
_actualWriteOffsetBytes = (_actualWriteOffsetBytes + (sampleCount * Sound.BlockAlign)) % BufferSizeBytes;
|
||||
_filledBufferSizeBytes += sampleCount * Sound.BlockAlign;
|
||||
}
|
||||
|
|
|
@ -117,6 +117,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
_bufferPool.Release(_sourceVoice.State.BuffersQueued);
|
||||
int byteCount = sampleCount * Sound.BlockAlign;
|
||||
var buffer = _bufferPool.Obtain(byteCount);
|
||||
if (byteCount > (samples.Length * 2)) { byteCount = samples.Length * 2; }
|
||||
Buffer.BlockCopy(samples, 0, buffer.Bytes, 0, byteCount);
|
||||
_sourceVoice.SubmitSourceBuffer(new AudioBuffer
|
||||
{
|
||||
|
|
|
@ -24,17 +24,15 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
public Sound(IntPtr mainWindowHandle)
|
||||
{
|
||||
#if WINDOWS
|
||||
if (Global.Config.SoundOutputMethod == Config.ESoundOutputMethod.DirectSound)
|
||||
_outputDevice = new DirectSoundSoundOutput(this, mainWindowHandle);
|
||||
|
||||
if (Global.Config.SoundOutputMethod == Config.ESoundOutputMethod.XAudio2)
|
||||
_outputDevice = new XAudio2SoundOutput(this);
|
||||
#endif
|
||||
|
||||
if (Global.Config.SoundOutputMethod == Config.ESoundOutputMethod.OpenAL)
|
||||
_outputDevice = new OpenALSoundOutput(this);
|
||||
|
||||
if (!Global.RunningOnUnix)
|
||||
{
|
||||
if (Global.Config.SoundOutputMethod == Config.ESoundOutputMethod.DirectSound)
|
||||
_outputDevice = new DirectSoundSoundOutput(this, mainWindowHandle);
|
||||
if (Global.Config.SoundOutputMethod == Config.ESoundOutputMethod.XAudio2)
|
||||
_outputDevice = new XAudio2SoundOutput(this);
|
||||
}
|
||||
if (_outputDevice == null)
|
||||
_outputDevice = new DummySoundOutput(this);
|
||||
}
|
||||
|
|
|
@ -137,10 +137,33 @@ namespace BizHawk.Client.EmuHawk
|
|||
return (ulong)Environment.TickCount;
|
||||
}
|
||||
|
||||
#if WINDOWS
|
||||
[DllImport("winmm.dll", EntryPoint = "timeBeginPeriod")]
|
||||
static extern uint timeBeginPeriod(uint uMilliseconds);
|
||||
#endif
|
||||
private interface PlatformSpecificSysTimer
|
||||
{
|
||||
uint TimeBeginPeriod(uint ms);
|
||||
}
|
||||
private class WinSysTimer : PlatformSpecificSysTimer
|
||||
{
|
||||
[DllImport("winmm.dll", EntryPoint = "timeBeginPeriod")]
|
||||
private static extern uint timeBeginPeriod(uint uMilliseconds);
|
||||
public uint TimeBeginPeriod(uint ms)
|
||||
{
|
||||
return timeBeginPeriod(ms);
|
||||
}
|
||||
}
|
||||
private class UnixMonoSysTimer : PlatformSpecificSysTimer
|
||||
{
|
||||
[DllImport("winmm.dll.so", EntryPoint = "timeBeginPeriod")]
|
||||
private static extern uint timeBeginPeriod(uint uMilliseconds);
|
||||
public uint TimeBeginPeriod(uint ms)
|
||||
{
|
||||
return timeBeginPeriod(ms);
|
||||
}
|
||||
}
|
||||
static PlatformSpecificSysTimer sysTimer = Global.RunningOnUnix ? (PlatformSpecificSysTimer) new UnixMonoSysTimer() : (PlatformSpecificSysTimer) new WinSysTimer();
|
||||
static uint TimeBeginPeriod(uint ms)
|
||||
{
|
||||
return sysTimer.TimeBeginPeriod(ms);
|
||||
}
|
||||
|
||||
static readonly int tmethod;
|
||||
static readonly ulong afsfreq;
|
||||
|
@ -148,9 +171,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
static Throttle()
|
||||
{
|
||||
#if WINDOWS
|
||||
timeBeginPeriod(1);
|
||||
#endif
|
||||
TimeBeginPeriod(1);
|
||||
if (Stopwatch.IsHighResolution)
|
||||
{
|
||||
afsfreq = (ulong)Stopwatch.Frequency;
|
||||
|
@ -341,7 +362,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (sleepTime >= 2 || paused)
|
||||
{
|
||||
#if WINDOWS
|
||||
// Assuming a timer period of 1 ms (i.e. timeBeginPeriod(1)): The actual sleep time
|
||||
// Assuming a timer period of 1 ms (i.e. TimeBeginPeriod(1)): The actual sleep time
|
||||
// on Windows XP is generally within a half millisecond either way of the requested
|
||||
// time. The actual sleep time on Windows 8 is generally between the requested time
|
||||
// and up to a millisecond over. So we'll subtract 1 ms from the time to avoid
|
||||
|
|
|
@ -6,14 +6,17 @@ namespace BizHawk.Client.EmuHawk
|
|||
[AttributeUsage(AttributeTargets.Class)]
|
||||
public class ToolAttribute : Attribute
|
||||
{
|
||||
public ToolAttribute(bool released, string[] supportedSystems)
|
||||
public ToolAttribute(bool released, string[] supportedSystems, string[] unsupportedCores = null)
|
||||
{
|
||||
Released = released;
|
||||
SupportedSystems = supportedSystems;
|
||||
UnsupportedCores = unsupportedCores;
|
||||
}
|
||||
|
||||
public bool Released { get; private set; }
|
||||
|
||||
public IEnumerable<string> SupportedSystems { get; private set; }
|
||||
|
||||
public IEnumerable<string> UnsupportedCores { get; private set; }
|
||||
}
|
||||
}
|
||||
|
|
186
BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCAudioSettings.Designer.cs
generated
Normal file
186
BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCAudioSettings.Designer.cs
generated
Normal file
|
@ -0,0 +1,186 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class AmstradCPCAudioSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AmstradCPCAudioSettings));
|
||||
this.OkBtn = new System.Windows.Forms.Button();
|
||||
this.CancelBtn = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.panTypecomboBox1 = new System.Windows.Forms.ComboBox();
|
||||
this.lblBorderInfo = new System.Windows.Forms.Label();
|
||||
this.tapeVolumetrackBar = new System.Windows.Forms.TrackBar();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.ayVolumetrackBar = new System.Windows.Forms.TrackBar();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tapeVolumetrackBar)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ayVolumetrackBar)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// OkBtn
|
||||
//
|
||||
this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.OkBtn.Location = new System.Drawing.Point(298, 245);
|
||||
this.OkBtn.Name = "OkBtn";
|
||||
this.OkBtn.Size = new System.Drawing.Size(60, 23);
|
||||
this.OkBtn.TabIndex = 3;
|
||||
this.OkBtn.Text = "&OK";
|
||||
this.OkBtn.UseVisualStyleBackColor = true;
|
||||
this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click);
|
||||
//
|
||||
// CancelBtn
|
||||
//
|
||||
this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.CancelBtn.Location = new System.Drawing.Point(364, 245);
|
||||
this.CancelBtn.Name = "CancelBtn";
|
||||
this.CancelBtn.Size = new System.Drawing.Size(60, 23);
|
||||
this.CancelBtn.TabIndex = 4;
|
||||
this.CancelBtn.Text = "&Cancel";
|
||||
this.CancelBtn.UseVisualStyleBackColor = true;
|
||||
this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 14);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(140, 13);
|
||||
this.label1.TabIndex = 17;
|
||||
this.label1.Text = "Amstrad CPC Audio Settings";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(12, 172);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(135, 13);
|
||||
this.label2.TabIndex = 23;
|
||||
this.label2.Text = "AY-3-8912 Panning Config:";
|
||||
//
|
||||
// panTypecomboBox1
|
||||
//
|
||||
this.panTypecomboBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.panTypecomboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.panTypecomboBox1.FormattingEnabled = true;
|
||||
this.panTypecomboBox1.Location = new System.Drawing.Point(12, 188);
|
||||
this.panTypecomboBox1.Name = "panTypecomboBox1";
|
||||
this.panTypecomboBox1.Size = new System.Drawing.Size(151, 21);
|
||||
this.panTypecomboBox1.TabIndex = 22;
|
||||
//
|
||||
// lblBorderInfo
|
||||
//
|
||||
this.lblBorderInfo.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblBorderInfo.Location = new System.Drawing.Point(175, 175);
|
||||
this.lblBorderInfo.Name = "lblBorderInfo";
|
||||
this.lblBorderInfo.Size = new System.Drawing.Size(249, 47);
|
||||
this.lblBorderInfo.TabIndex = 24;
|
||||
this.lblBorderInfo.Text = "Selects a particular panning configuration for the 3ch AY-3-8912 Programmable Sou" +
|
||||
"nd Generator";
|
||||
this.lblBorderInfo.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// tapeVolumetrackBar
|
||||
//
|
||||
this.tapeVolumetrackBar.Location = new System.Drawing.Point(12, 60);
|
||||
this.tapeVolumetrackBar.Maximum = 100;
|
||||
this.tapeVolumetrackBar.Name = "tapeVolumetrackBar";
|
||||
this.tapeVolumetrackBar.Size = new System.Drawing.Size(412, 45);
|
||||
this.tapeVolumetrackBar.TabIndex = 25;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(12, 44);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(73, 13);
|
||||
this.label3.TabIndex = 26;
|
||||
this.label3.Text = "Tape Volume:";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(12, 108);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(98, 13);
|
||||
this.label5.TabIndex = 30;
|
||||
this.label5.Text = "AY-3-8912 Volume:";
|
||||
//
|
||||
// ayVolumetrackBar
|
||||
//
|
||||
this.ayVolumetrackBar.Location = new System.Drawing.Point(12, 124);
|
||||
this.ayVolumetrackBar.Maximum = 100;
|
||||
this.ayVolumetrackBar.Name = "ayVolumetrackBar";
|
||||
this.ayVolumetrackBar.Size = new System.Drawing.Size(412, 45);
|
||||
this.ayVolumetrackBar.TabIndex = 29;
|
||||
//
|
||||
// AmstradCPCAudioSettings
|
||||
//
|
||||
this.AcceptButton = this.OkBtn;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.CancelBtn;
|
||||
this.ClientSize = new System.Drawing.Size(436, 280);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.ayVolumetrackBar);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.tapeVolumetrackBar);
|
||||
this.Controls.Add(this.lblBorderInfo);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.panTypecomboBox1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.CancelBtn);
|
||||
this.Controls.Add(this.OkBtn);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "AmstradCPCAudioSettings";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Audio Settings";
|
||||
this.Load += new System.EventHandler(this.IntvControllerSettings_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.tapeVolumetrackBar)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ayVolumetrackBar)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button OkBtn;
|
||||
private System.Windows.Forms.Button CancelBtn;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.ComboBox panTypecomboBox1;
|
||||
private System.Windows.Forms.Label lblBorderInfo;
|
||||
private System.Windows.Forms.TrackBar tapeVolumetrackBar;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TrackBar ayVolumetrackBar;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
using BizHawk.Emulation.Cores.Computers.AmstradCPC;
|
||||
using System.Text;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class AmstradCPCAudioSettings : Form
|
||||
{
|
||||
private AmstradCPC.AmstradCPCSettings _settings;
|
||||
|
||||
public AmstradCPCAudioSettings()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void IntvControllerSettings_Load(object sender, EventArgs e)
|
||||
{
|
||||
_settings = ((AmstradCPC)Global.Emulator).GetSettings().Clone();
|
||||
|
||||
// AY panning config
|
||||
var panTypes = Enum.GetNames(typeof(AY38912.AYPanConfig));
|
||||
foreach (var val in panTypes)
|
||||
{
|
||||
panTypecomboBox1.Items.Add(val);
|
||||
}
|
||||
panTypecomboBox1.SelectedItem = _settings.AYPanConfig.ToString();
|
||||
|
||||
// tape volume
|
||||
tapeVolumetrackBar.Value = _settings.TapeVolume;
|
||||
|
||||
// ay volume
|
||||
ayVolumetrackBar.Value = _settings.AYVolume;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void OkBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
bool changed =
|
||||
_settings.AYPanConfig.ToString() != panTypecomboBox1.SelectedItem.ToString()
|
||||
|| _settings.TapeVolume != tapeVolumetrackBar.Value
|
||||
|| _settings.AYVolume != ayVolumetrackBar.Value;
|
||||
|
||||
if (changed)
|
||||
{
|
||||
_settings.AYPanConfig = (AY38912.AYPanConfig)Enum.Parse(typeof(AY38912.AYPanConfig), panTypecomboBox1.SelectedItem.ToString());
|
||||
|
||||
_settings.TapeVolume = tapeVolumetrackBar.Value;
|
||||
_settings.AYVolume = ayVolumetrackBar.Value;
|
||||
|
||||
GlobalWin.MainForm.PutCoreSettings(_settings);
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void CancelBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
GlobalWin.OSD.AddMessage("Misc settings aborted");
|
||||
DialogResult = DialogResult.Cancel;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,624 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAwAMDAQAAAABABoBgAAxgAAACAgEAAAAAQA6AIAAC4HAAAYGBAAAAAEAOgBAAAWCgAAEBAQAAAA
|
||||
BAAoAQAA/gsAADAwAAAAAAgAqA4AACYNAAAgIAAAAAAIAKgIAADOGwAAGBgAAAAACADIBgAAdiQAABAQ
|
||||
AAAAAAgAaAUAAD4rAAAwMAAAAAAgAKglAACmMAAAICAAAAAAIACoEAAATlYAABgYAAAAACAAiAkAAPZm
|
||||
AAAQEAAAAAAgAGgEAAB+cAAAKAAAADAAAABgAAAAAQAEAAAAAACABAAAAAAAAAAAAAAQAAAAEAAAAAAA
|
||||
AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP//
|
||||
/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAHR3AAAAAAAAAAAAAAAAAAAAAAAAAAAAdHdEcAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAHd0d3QAAAAAAAAAAAAAAAAAAAAAAAAAAEd8d3UAAAAAAAAAAAAAAAAAAAAAAAAAB3yHfHZw
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAd3fIyHVwAAAAAAAAAAAAAAAAAAAAAAAAfHh3jIxwAAAAAAAAAAAAAAAA
|
||||
AAAAAAAHd8jIyHdgAAAAAAAAAAAAAAAAAAAAAAAHd4yHfIdAAAAAAAAAAAAAAAAAAAAAAAAHyMjIyMhQ
|
||||
AAAAAAAAAAAAAAAAAAAAAAB3d3eMh4dgAAAAAAAAAAAAAAAAAAAAAAB8jIyIfIdQAAAAAAAAAAAAAAAA
|
||||
AAAAAAB3h4jIiMh3AAAAAAAAAAAAAAAAAAAAAAB8jIeHeIjHAAAAAAAAAAAAAAAAAAAAAAeIiHh4eMiE
|
||||
AAAAAAAAAAAAB0dHcAAAAAd8h4eIiIiHcAAAAAAAAAB0d3d3RwAAAAeIeIiIiIh3RwAAAAAAAHR3d8h3
|
||||
dAAAAAfIh4iIiHiIx0cAAAAAdHh3eIeHhwAAAAeHiIiIiIiId3R3dHR0eHd4h4eHhAAAAAd4eIiIiIiH
|
||||
x3d2d3eId4iIiIiIhwAAAAd4eIiI+IiIh3d3eHh3iIiIiIeHwAAAAAfIjHeIiIiIyIeHh4iIiIiIiIiI
|
||||
cAAAAAeIQ0R3h3iIiMiIiIiIiIiIiIiEAAAAAAfIR3d3d0iIiIh4iIeIiIiIiHhAAAAAAAB4d3d3SHiI
|
||||
h4fTiIi3iIiIeIwAAAAAAAB3h4d3eIeIiHiJiIuIiIh4jHAAAAAAAAAHyId3h3h4iIh4iIiIiIiHeAAA
|
||||
AAAAAAAAB8iMiMjIiIiIh4h3aMjHAAAAAAAAAAAAAAdYyIeIiIiMjId6d4eAAAAAAAAAAAAAAAAHdsjH
|
||||
eIeH6MiId3AAAAAAAAAAAAAAAIiIh4V8jIh4eIfHcAAAAAAAAAAAAACIiIh3AAAHd3h3fHcAAAAAAAAA
|
||||
AAAAAAiIjHgAAAAAAHx8eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A
|
||||
H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP////
|
||||
AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA
|
||||
AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/
|
||||
AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAQAAAAAAAAC
|
||||
AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
|
||||
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAAA
|
||||
AAd0dAAAAAAAAAAAAAAAAAB3x3cAAAAAAAAAAAAAAAAAd3fHcAAAAAAAAAAAAAAAB3yMh3AAAAAAAAAA
|
||||
AAAAAAfIeMdwAAAAAAAAAAAAAAAHjIyHQAAAAAAAAAAAAAAAfId4yHAAAAAAAAAAAAAAAHjIyIdQAAAA
|
||||
AAAAAAAAAAB3iId4YAAAAAAAAAdwAAAAjIiIiIUAAAAAAHd3dAAAB4iIiHh8cAAAAHd3x4dwAAd4iIiI
|
||||
h3Z3d3R3yIh4cAAHh4iIiIfHd3d4iIiIh3AAB3jHiIiIiHeHiIiIiIwAAAh3dXh4iMiIiIiIiIhwAAAA
|
||||
yGd0d4iIeIi4iIiMAAAAAIeHd4iIh32IiIiIcAAAAAAAd4jIyIiIiHeHyAAAAAAAAAB3h4iIh8h3dwAA
|
||||
AAAAAAAIh8fIh4eIaAAAAAAAAACIiHAAB8jIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////
|
||||
////////////////////n////g////wP///8B///+Af///gH///4B///8Af///AH///wB//n8AP/A+AB
|
||||
/AHgAAAB4AAAAeAAAAPgAAAH8AAAD/AAAB/8AAA//wAA//4AA//weA//////////////////////////
|
||||
//8oAAAAGAAAADAAAAABAAQAAAAAACABAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAA
|
||||
AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRwAAAAAAAAAAAAB3dAAAAAAAAAAAAA
|
||||
d8dwAAAAAAAAAAAAfId3AAAAAAAAAAAHeMjHAAAAAAAAAAAHyHh3AAAAAAAAAAAHh3eEAAAAAAAAAAAI
|
||||
yIiHAAAAAHd2cAAIiIiIQAAAd3d4UACHiIiId3d3eHiIcACHh4iIyHeHiIiIcAAIR3d4iIiIiIiMAAAH
|
||||
d3eIh3iIiIhwAAAAeMh4iIiHiMAAAAAAAHfIiMh4aAAAAAAAiIgHyIfIAAAAAAAIgAAAAIAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD8f/8A+H//APB/
|
||||
/wDwP/8A4D//AOA//wDgP/8A4D/BAOAfAQDAAAEAwAABAOAAAwDgAAcA8AAfAPwAPwDwgP8A5/f/AP//
|
||||
/wD///8A////ACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACA
|
||||
AAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAd1AAAAAAAAB8cAAAAAAAB4eAAAAAAAAHyMgAAAAAAAiIhwAAAHcACI
|
||||
iHcAd3hwAIz4jIeIiIAAd3eIiIiIAACHeIiIiHAAAACMeMh4AAAAiAAIgAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAD//wAA//8AAP//AADj/wAA4/8AAMP/AADB/wAAwfkAAMDBAADAAQAAwAMAAMAHAADwDwAAzn8AAP//
|
||||
AAD//wAAKAAAADAAAABgAAAAAQAIAAAAAAAACQAAAAAAAAAAAAAAAQAAAAEAAAAAAAA9OzsAZD8/AGg8
|
||||
PABtPj4AQkNDAEZIRwBWQkIAV0REAF5AQABbRkYAVklJAFxPTwBTU1MAXFJSAF5ZWQBkQEAAYUREAGZF
|
||||
RQBqQkEAYEtLAGNPTwBwQUEAfUZGAHJKSgB2SUkAfU9PAGBRUQBgVFQAZlZWAGZYWABqWVkAclZWAHpU
|
||||
VAB9W1oAbmJiAGtoaABtaWkAcWdnAHdnZwB8Y2MAe2pqAHJxcQB+dHQAd3l5AHl6egCGT08AiU9PAIFP
|
||||
UACGU1MAjVFRAIlWVgCMV1cAg1xbAIxaWQCQUlIAlVJSAJFXVgCXVVUAmVVVAJZaWQCSXV0AlV9eAJpZ
|
||||
WgCeW1sAml5eAKBZWgCgXFwAql9fAIRmZQCIZWQAhWtrAI5ragCTYmEAnGBhAJ9kYwCaZmYAk25uAJ1s
|
||||
awCFdHQAiXd3AIt+fgCWd3cAmHR0AJV5eQCbfHwAo2JhAKZhYQChZWUApGVkAKplZACsZGQAqmhnAKZr
|
||||
agCnbGsAqmloAKlubQCsbW0AtGZnALhsbACxb3AAv29wAKVxcACrc3IAr35+ALN0cwC5c3MAvXBxALR4
|
||||
dgC1fHsAunt6AMNtbgDGb3AAw3FyAMZwcQDGdXUAyHR1AMp3eADBeXkAxnt7AMB/fgDLensANLBSAEWf
|
||||
TgBBtFwAPMdnADHkdgDciiIAvoF/AISrdwDln0sA35lhAN2XfADgmmEA8LdlAO61cAArWPIALWT+AEh5
|
||||
+gDOf4AAfoCAAHiA1ABZv9wAZrnUAGK+2ABxnv4Ad6P/ADPX/QBw0OcAW+D7AIKEgwCPgoIAjI2NAJuC
|
||||
ggCUiIgAmYqKAJGSkgCjhIQAqoKCAKKLiwC+hIMAsoqKALaSgQCum5sAsZubALqqlQCdgr4Ar6ytALGh
|
||||
oAC6pKQAwoSDAMyBggDGiIYAyYiHAMWMigDMjIoA0ISFANKHiADUjIwA2Y6NAMCUjQDIk44A0JCPANaP
|
||||
kADHlZQAzpSSAMScmwDUkpIA2ZSVANWYlgDampcA2ZeYANWcnADam5sA4p2cAMChjwDeoJ4A5aCFAOaj
|
||||
jQDlpJoA2p6hAMOkowDOoaEAy62tANegoADdoqEA2aGpANGsrwDdq6kAwbG4ANGysQDdtLQA2ri3AOGk
|
||||
owDjqKYA66ylAOGnqADjq6oA6a2rAOOwrwDssK4A5K+wAOaztADttLIA57i2AO24tgDmurgA6rq6APC1
|
||||
swDyuLYA9Ly5APi+uwD1wL0A+cC9AKKMwACkk8QAqprMALSayACptsEAlaDkAOy/wACRxtQAgOv9AJnr
|
||||
9wDEwsoA5sbGAOzCwgDuyMcA7MzMAPPEwgDxy8oA9dPTAPja2gAAAAAAAAAAAP///wAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAoIJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAACYXODs4BCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
KTNDQ0M7OAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALllbYmJZQBcAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYYWNwcHBwWy8mAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A
|
||||
H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP////
|
||||
AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA
|
||||
AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/
|
||||
AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAE
|
||||
AAAAAAAAAAAAAAABAAAAAQAAAAAAAFFNTQBRUlIAU1RUAGJHRwBiT08Aa0lIAGJTUwBrVlYAYllZAGZc
|
||||
XABpWloAb1xbAHNTUwB7V1YAc1hXAHFbWwBkZWUAaWFhAG5kZABpamkAcGFhAHlubgB2cHAAf3V1AH55
|
||||
eQB8fX0AgUpKAI1PTwCLWFcAhlhYAI9ZWQCKXFsAm1ZWAJJZWQCWWVgAmlpbAJtcWwCiXFwAl2BfAIBg
|
||||
YACAZ2YAgG9vAI9oaACWZWQAmGBhAJ5kZACcaWoAmm9vAIV0dACNcHAAiXZ2AIB8fACac3IAm3V0AJ51
|
||||
dQCZfHwAnHx8AKNmZgCnZmYAqmJiAK5jYwCvb24AtWVmALBtbgC5bW0AvmxtAKx+fQCxcnIAtHBwALZz
|
||||
dACydXQAtnd2ALlwcAC5dnYAt3p5ALh5eAC8fHsAun18ALx+fQDGb3AAxnBxAMdzdADAd3YAyHJzAMlz
|
||||
dADJdXYAynd4AMd/fwDMe3wAzXx9AHunbwBhvHIAYsN4ANuLOwC2hn4A4Zt5APC3ZABte9sAX47+AHWM
|
||||
5QAl0foAY+P8AIeDgwCFhoYAioSEAJOIiACWi4sAmpKRAKGCgQCmhYUAqYGBAKuDhACniooApYyMAKiO
|
||||
jQCyhYMAvoWEALeNjQCrj5AAr5eXALSVlAC9lJMAmbCEAK6RugDBgYAAwoSCAMWDhADChoQAxYeFAM6A
|
||||
gQDFiIYAxoqIAMqIiQDMi4oAy4yKAMiPjQDPj44A0ISFANKJigDUi4wA04+NANWNjgDKkY8A0JCOANud
|
||||
iQDWj5AAzJSTAM2XlgDGm5oA1pGSANOUkgDVl5EA1pOUANiVlgDYmJUA2ZeYANKenADbmpsA3pmYANuc
|
||||
mgDbn5wA1aacAN6gngDqqZoA3Z+gAMyjowDCra0AxqysAMqpqQDboaAA3qKiAN6logDbp6UA3aWkANer
|
||||
qgDWsbMA0rW0ANe0tADfs7IA4aSiAOGlpQDkp6UA46imAOWopgDsraIA6qimAOGoqADhrqwA6a2rAOqv
|
||||
rADpsK4A7LGuAOGzswDlsbEA7bKxAO+1sgDotrYA5rm3AO+4twDot7sA6bq5AOu9uwDrv70A8bazAPG2
|
||||
tADxuLUA9Lm2APC9uwD2vboA9L+9APi+uwD4v7wA8sC+APXAvgD5wL0AkILJAKqXzACsu8cAqr/LALLV
|
||||
3QDawMIA48XFAOvDwQDswMAA7cTDAO/ExQDgxsgA8cbEAPTGxADwyskA9MvJAPLNzQD21dYA+NjZAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAMEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqHCEcBQAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAayU9PSYbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdQlBSQiJpAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAM0pSUlJQPRcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnUlJSUlJGFQAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAFJSUlJSUkoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzUlJSWVJZfxAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XWYqKioqGDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASoqMkpqa
|
||||
mqAsAAAAAAAAAAAAAAAAAABoNAAAAAAAAACMjJyuvLy2toYHAAAAAAAAAAAAABcOIDouBgAAAAAAc4yc
|
||||
tsHKysPAriIKAAAAAAAAABYgRk1LTX+DEAAAAABukqXB4ejo4dHPQCIEChcXEwggTXV/k66unKMpAAAA
|
||||
AG6Srsro6ero0dN/Rk1NRk2Dg4STrsbh4cHAt2sAAAAAbpKuOXPe6ajW15KGg4OGk528yuHo5eHPz882
|
||||
AAAAAAB4jCkDAxSoMabXt5yjt8ro3ePo5dbT09HTdAAAAAAAAABGcBFoGgFwdtfDwHxi2dpmZcrX09HP
|
||||
z0MAAAAAAAAAAHh/qWwaOa6cz9PNZGPYsdzbzc3DwLk2AAAAAAAAAAAAAAAvhpKakoyg19HNyKS5wHtb
|
||||
orZ/cwAAAAAAAAAAAAAAAAAANkaKWVm5zb1gYV6cXVxfNgAAAAAAAAAAAAAAAAAAALGvlTIuP1K5tqCR
|
||||
l4xfLwAAAAAAAAAAAAAAAAAAsbPBenkAAAAAcCVYjE0scwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////+f///+D////A////wH
|
||||
///4B///+Af///gH///wB///8Af///AH/+fwA/8D4AH8AeAAAAHgAAAB4AAAA+AAAAfwAAAP8AAAH/wA
|
||||
AD//AAD//gAD//B4D////////////////////////////ygAAAAYAAAAMAAAAAEACAAAAAAAQAIAAAAA
|
||||
AAAAAAAAAAEAAAABAAAAAAAAWlJSAHBJSQB1SEgAe1dXAHdYWAB5WlkAel1dAGBiYgB1bGwAfWtrAHh2
|
||||
dgB9fn4Ag01NAIRXVwCIV1cAhV9eAItbWgCgX14ApV1dAJhgXwCNYGAAnWtqAJhtbQCCdnYAh3x8AI15
|
||||
eACeensAqGBgAKhoZwCga2oArGpqALNqagCzb28AtG1tALltbQCxb3AApnVzAKlzcwCqdHMApnp6AKd+
|
||||
fgCpensAq3x7ALZ3dgC8dHQAvH59AMZvcADGcHEAxXN0AMhycwDJdncAynh5AMx5egDNfn8Ajo1wAOek
|
||||
VgDGgH8A4p53AEZ2+gB8u4AAd8PaAIuEhACOh4cAjo6OAJ+DggCejo4Ao4SEAKSIiACsi4sAqo2MAK6P
|
||||
jgC+gYAAvoaGAL+KiACskJAAtJeXALWenQC5np4At6iOAKmyjgC9nroAwYSDAMaGhADOhoYAxomHAMiK
|
||||
iQDJjYwA0oeIANOOjwDUjY0A2ZiPANaPkADGkZEAx5eXAMySkADGnZwA1ZOSANeTlADWl5YA2JSVANGZ
|
||||
mADan50A3J6dAOCcmwDVoJ8A7K2fAMOtrQDXo6IA3aCgAN+kpADVq6oA3ay3AMu0tADPtrYA3L+/AOCi
|
||||
oQDhpqUA5KelAOinpgDlq6gA46usAOOvrQDqrqwA7LGuAOayswDjtrQA5re1AOqysQDts7EA57y6AO+8
|
||||
ugDrvL0A8LOwAPC1sgDwtrQA87q3APS6twD2vboA8b69APi/vAD2wb4A+cC9AJmTzwDHqMMAu8PMAIHf
|
||||
8QDByNAA7cLCAO3FwwDvxsQA5cjIAOzOzgDwxcQA9cbEAPPP0AD10tIAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
BQMJAAAAAAAAAAAAAAAAAAAAAAAAAAAPHBMNAAAAAAAAAAAAAAAAAAAAAAAAABojLy8TAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAB0wMDAiPgAAAAAAAAAAAAAAAAAAAAAAQjAwMDAtGAAAAAAAAAAAAAAAAAAAAAAAFzIy
|
||||
NTU5CgAAAAAAAAAAAAAAAAAAAAAAIjZYWFxcBwAAAAAAAAAAAAAAAAAAAAAANlxtdW11JQAAAAAAAAAA
|
||||
PgcRDgkAAAAAXG1/lISAZgMAAAAAABkVLC5SVhcAAABNY3WWnJuLfB8UBAcQHkhWaX91dSsAAABNY2BM
|
||||
mJeCiVJSVl9laX+WloSJgEIAAAAAXAEIC0tGjnR0dJaRk5qNjIyJQwAAAAAAJkNADBtdjIaPO1GSPYuJ
|
||||
hnVEAAAAAAAAAClISWRcd4xwkGp8UE90VwAAAAAAAAAAAAAAKSQ1NYZ7OjhbPDdGAAAAAAAAAAAAAHNv
|
||||
YGsAKyJoXFYmRwAAAAAAAAAAAAAAcnIAAAAAAAAATgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP//
|
||||
/wD///8A////APx//wD4f/8A8H//APA//wDgP/8A4D//AOA//wDgP8EA4B8BAMAAAQDAAAEA4AADAOAA
|
||||
BwDwAB8A/AA/APCA/wDn9/8A////AP///wD///8AKAAAABAAAAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAA
|
||||
AAAAAQAAAAEAAAAAAABjZGQAdmRjAHtpaQB/eHgAgU9PAKBaWgCFbm0AlWtqAKptbgCwZ2cAsGhoAKxw
|
||||
cACteHkAvnJyAMZvcADGcHEAy3l5AMx9fgCFmXQAwIB/ANeUfQDhoX8AlIqJAJWMjACYiIgAoIaGAK2K
|
||||
igCxh4cAvoGAALKKigC4iYgAuJWVAL2cnACss50AuqKhAL+mpgDLgoIAxImHAMeNjADLkI8AxpWTANCS
|
||||
kQDYlZUA1J6dANqZmgDdnp4A1J+oAMaiogDOr68AzLKyANi5uADhpaIA4qypAOWtqADrrqsA4bKwAOay
|
||||
sgDtuLYA57++AOy4uADxtLIA8be0APa9ugDswL4A9sG+ALCcxwC5ncIA06zBALnH0QC2ytQA7sPDAPLS
|
||||
0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAZBgUAAAAAAAAAAAAAAAAACw8KAAAAAAAAAAAAAAAAGhAQDgAAAAAAAAAAAAAAAAkRESUYAAAA
|
||||
AAAAAAAAAAAlKy4uBwAAAAAAAAcDAAAAKzlHPCYCAAAYCB0oKgAAAC0wSDs0FB0nLDlAOiwAAAANAQQb
|
||||
Pi9DRkVBPzUAAAAAJB4cKz5EQjMiNSkAAAAAAAAAHwwRNxYVEyQAAAAAAAAxMgAAACEgAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA4/8AAOP/AADD/wAAwf8AAMH5
|
||||
AADAwQAAwAEAAMADAADABwAA8A8AAM5/AAD//wAA//8AACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAkAAAAJAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAUAAAAOAEBAVUAAABUAAAANQAAABAAAAABAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAkFBSUvGRl5TCkpwlYuLtxDJCTQFw0NmQAA
|
||||
AEkAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGAwMKE8rK6V6RET2klJR/5ZS
|
||||
U/+OT0//ZDc38B0QEJoAAAAyAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYDAwYVzAwoopP
|
||||
T/ygXVz/oFtb/55ZWf+bWFf/k1NT/1UvL9wGAwNcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AARNKipxhk5O+adkY/+uZWX/tWdo/7VmZ/+qYWH/nltb/3hERPcfERGCAAAAFgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADEZGS1zQ0LXqGdm/7ptbf/Fb3D/x3Bx/8hwcf/BbW7/q2Vl/4hPT/82HR2gAAAAIAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAB1gxMYyYXl3/vXFx/8Zwcf/HcHH/x3Bx/8dwcf/HcHH/uG1t/5NY
|
||||
V/9EJia2AAAAKQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPB8fNH1MS+K4cnH/x3Fy/8dwcf/HcHH/x3Bx/8dw
|
||||
cf/HcHH/wHBx/51gX/9PLCzGAAAAMwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXjU1h6NnZv/Fc3T/x3Bx/8dw
|
||||
cf/HcHH/x3Bx/8dwcf/HcHH/w3Jz/6ZoZ/9ZMzPTAQAAPQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyFxccektK0b12
|
||||
dv/HcHH/x3Bx/8dwcf/HcHH/x3Bx/8dwcf/HcHH/xXR0/69wb/9jOjneBwMDSQAAAAUAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABNKSlNlmBf9sh3d//HcHH/x3Bx/8dwcf/HcHH/x3Bx/8dwcf/HcHH/xnd3/7Z4d/9sQUDnDgcHVQAA
|
||||
AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
ov/grq3/4a6t/96lo//eoJ7/36Kg/+Cjof+IWVjnGwwMQwAAAAIAAAAAAAAAAAAAAAAAAAAARyQkL6Br
|
||||
auzZk5P/25qb/+GnqP/ntLT/7cDA//LLy//209T/+NjY//fX1//00ND/8cbG//W9u//4vrz/46ak/7d0
|
||||
c/+vb27/s3Jy/7d2df+ucXD/pWpp/6Npaf+nbWz/sHVz/7p9fP/EhYT/yImI/8WIhv/DiIb/ypGP/9eg
|
||||
n//hr63/57q5/+rCwP/rwsD/6bq4/+evrf/nq6n/6q6r/9qgnv9wRkbDBwAAHgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAASCQkLZ1nZuvYkpP/25uc/+Opqv/qtrf/7cHB//TOzv/52Nj/+tzc//na2v/xz9D/8MfH//fA
|
||||
vv/6wb7/6a6r/8OBgP/DgoD/vX58/7h7ev+8fn3/woOC/8aHhv/HiYj/xoqJ/8aLif/Ijoz/zZST/9eg
|
||||
nv/hrav/6Lm3/+zCwf/uyMf/78nH/+/Dwf/uvLr/7ba0/+60sf/vtLL/8ri1/7J+fflMKSltAAAABAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAQyEhI5JcXOPWj5D/3Juc/8qVlf+BZmb/bl5e/4l4eP/AqKj/8tPT//LO
|
||||
zv+5p6b/w6qq//fBv//7wr//8LWy/86Ojf/Ojoz/0ZGP/9GSkP/OkY//zpOR/9GamP/VoJ//2qel/+Gv
|
||||
rf/nt7X/6727/+3Dwf/wycf/8czL//LLyf/yxsT/8cC+//G7uf/yubf/87m3//S7uP/4vrv/1J6c/3JH
|
||||
RrAdCgsWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANRcXEYJNTcvPiIn/15aW/2VNTf85Ojr/Q0VF/0JF
|
||||
RP9dXFz/n5GR/+S/v/+bh4f/hXp6/+25uP/7wr//9bu4/9qcmv/Zmpj/252b/96gnf/ipKH/5q+s/+u+
|
||||
vP/vycf/8srI/+3Hxv/wysj/9c7M//TNy//0ysj/9MbE//TBv//1vrz/9r26//e9u//4vrv/+L+8//vB
|
||||
vv/hqqf/g1ZVzDwcHC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW4+Ppq/env/05OT/2ZX
|
||||
V/9rbm7/fX9//3l6ev99f3//cHJy/5F9ff+ff3//XFhY/9eop//8wr//+L+8/+Wppv/ipaP/5qil/96i
|
||||
pP/Kmaz/1qi1//LGxP/tyMf/qb3J/23E3P9kw9//vMTN//jDwP/3wb//+MC9//i/vf/5v73/+b+8//i/
|
||||
vP/3vrv/+L68/92mo/+IWlnRRSMjOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcv
|
||||
L0mbX1/y15GS/6GAgP9XV1b/iYuL/4CBgf98fX3/cnR0/1dPT/++j4//km9w/9Sfnv/6wL3/+cC9/+6z
|
||||
sP/ssK3/0Z+u/4OH1P9YffD/QGPs/7KYyv/Ct7z/Ytrz/3Ts//8s2f//cbvU//m+u//4v7z/+L67//e9
|
||||
uv/1vLn/9Lq3//O5tv/zuLX/0puZ/4RVVctGIyM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADIXFwdrPDySq2ts/diZmf/ApKT/sKur/4CBgP95enr/iYiI/49zdP/do6P/36Ch/96e
|
||||
nv/zuLX/+sK///W7uP/1ubT/qZC//2qY+/9tnf//MGT6/56FxP/esK//nMbS/57n8/9+z+T/ybG3//a6
|
||||
t//zubb/8re0//C1s//utLH/7rKw/+qvrP++iIb9dklJtkMgISoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHIyMSazw8kZ5hYvXNjI3/2aSk/7OMjP+bd3f/sIKC/9KV
|
||||
lv/cnJz/2peY/9aRkf/koqL/+sG+//nAvf/5v7z/4amw/6qZx/+aouP/qpvP/+mxtv/2urj/6rGv/+S6
|
||||
u//ptrX/466n/+Ovqf/ssK7/6q6s/+isqv/oq6n/2J2b/6JubfFoPT2NOxoaFwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBoaCFowMFd7SEjAomZm9sWC
|
||||
gv/XkZL/25SV/9iSk//Wj5D/1IyN/9KHiP/UiIj/8bOx//rCv//3vbv/9ru4//O3s//xuLX/7q6e/+ej
|
||||
hf/npIn/7bCp/+Otp/+KsX3/ULdm/1WjWv+7oYz/5KWk/9uenP+4gH79glJRzVYuLlQgCAkGAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAA8HBwQVy4uS3FBQaCPV1fjsG5v/cmAgf/ShYb/0YKD/85+f//LeXr/2I2M//e8uf/1vLn/7rOx/+2y
|
||||
sP/lpJX/5qFY/+6xXP/djS3/35h9/86gl/9SwW7/Nd90/0WxXP+vlH//wYSE/49cW+VlOTmBQR4eHAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGk7OhqIWFd8oG5u8J5qav+eX2D/tmts/8Z0df/KdHX/yXJz/92T
|
||||
k//3vLn/7LGu/+Snpf/dm5L/4Z1q/+61dP/fmmX/15WM/9eYlv/Bm43/r6uR/6uNgP+WYWDtbkBAnUwn
|
||||
JzQVAQECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiFJSBnhC
|
||||
QgpqNDQJWSUlB08dHQdfKisKfENDFJJWViinbGtRvYOCjtOcm8/pt7X157y6/7eOjfhxRUW7aTk5m4RK
|
||||
StehWlr6uGdo/8Zwcf/dkpH/8bSx/+OnpP/YmZj/1ZWT/9ealP/Vl5X/0JCP/8eIhv+zdnb/lFtc6nA/
|
||||
QKRSKio/JQwNBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AADTn6AB2qioDMuUlCHBhYU8voCAWcCBgXTEhoaLzZGQqdeensngrKvn47Sz/NOop/+yiIfyi2Bgs2k+
|
||||
PlZXKysPAAAAAUYlJRxcMTFYcj4+pYpMTeWmXF3+xnl5/9+Zl//dnJr/z46M/8KCgf+vc3L/ll9e831L
|
||||
S8hlOTl/TigoMy0REQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABzQUIDnmprDriGhifHlpZMzp6eeNCgoZ7On5+2yJqaybuPj9WnfHzVj2RkunVJ
|
||||
SYNbLy8/PRQUCgAAAAAAAAAAAAAAAAAAAAAAAAAAKRUVBU0pKSphNDRtd0BAsotNTd2ZW1vrkVlY4HtJ
|
||||
Sb5lOTmCUysrQTsbGxEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWCwsA2Y4OA5xQkImdkhIRHhKSll0R0dibUBAWWI2
|
||||
NkNUKCgoOhISDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMhkZB0km
|
||||
Jh5LJiYsRSEhITATFAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAD/+H////8AAP/gH////wAA/8Af////
|
||||
AAD/gA////8AAP+AD////wAA/wAP////AAD/AA////8AAP4AB////wAA/gAH////AAD8AAf///8AAPwA
|
||||
B////wAA/AAH////AAD8AAf///8AAPgAB////wAA+AAH//4HAAD4AAP/8AEAAPgAAf/AAQAA8AAA/wAA
|
||||
AADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAEAAPAAAAAAAQAA8AAAAAADAADwAAAAAAcAAPAA
|
||||
AAAADwAA+AAAAAAfAAD4AAAAAD8AAPwAAAAAfwAA/gAAAAD/AAD/gAAAA/8AAP/gAAAH/wAAgAAAAB//
|
||||
AAAAAAAAf/8AAAAD4AP//wAAgB/8H///AAD///////8AAP///////wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAYAAAAZAAAAGQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAARCQkYOh8fb0ooKK80HByiCQUFTAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAIhERFmA2Np2ITUz3lVNT/4dLS/5IKCi9AAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAANjODiBllhY+61kZP+vY2P/pV5e/3xHRvEhEhJfAAAAAgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAASSgoN41VVeS6bW3/xW9w/8dwcf+9bG3/klZW/jogIIEAAAAGAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ1RkWcs2xs/8dxcv/HcHH/x3Bx/8Zwcf+iYWH/SSkpmAAA
|
||||
AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUC0tMZtgX+fGcnP/x3Bx/8dwcf/HcHH/x3Fy/61q
|
||||
av9UMTGqAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxRER1tm9v/8hxcv/HcHH/x3Bx/8dw
|
||||
cf/HcnP/tnRz/185OboAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAACIxXV7TEdHT/yHJz/8l1
|
||||
dv/Kd3j/ynd4/8p4eP/Bf37/bURDywAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNKysjo2Zm4Mt4
|
||||
ef/NfH3/z4GC/9GFhf/RhYb/0YWF/82Mi/9+UVHeCAICOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAAAACwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAGc+
|
||||
Pkm1c3P30IGC/9OJiv/XkZL/2ZaW/9mWl//YlJX/2JmY/5hnZfMeEBBrAAAABwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA0FAgItHhAQWzAbG4IqFxeHDQcHWwAAABkAAAAAAAAAAAAA
|
||||
AAAAAAAAek1MdMN/f//VjI3/2piZ/9+io//hqKn/4qmp/+Clpf/jpqT/wImH/04xMLwAAAA6AAAABQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABEbDg5GRygokW5CQs+MVlbxnGJh/JdfXvxnPz7hHA8PbgAA
|
||||
AAwAAAAAAAAAAAAAAACMW1qbz4qK/9qXl//gpqb/5rKz/+q6u//rvLz/6La2/+qxr//epKL/j1lZ+DUc
|
||||
HLACAQFPAAAAHQAAAA8AAAAPAAAAEwAAACIbDg5MVDExnYZUU+SpbWz+uXl4/7x+fP/AgoD/xoeF/72A
|
||||
f/9fOzu1AAAAHAAAAAAAAAAAAAAABJhkZK/VkZH/3Z+g/+axsf/twMD/8svL//LNzf/vxcX/8Lq4/+6z
|
||||
sf+1dHP/j1VU+144N9g7IiKqMhwclDcfH5RGKSmiYTw7v4tZWOiydXT+woOC/8aKiP/Ol5X/2aWj/9ui
|
||||
of/cnpz/2pyb/35TUrgAAAAVAAAAAAAAAAAAAAAFmmVkstaTk//hpaX/7Lm6//TLy//419f/+NnZ//TP
|
||||
z//1wb//9Lq3/8aGhP+1dHP/s3Rz/6xwb/+pb27+rnNy/7Z7ev/BhIL/yY2L/8+WlP/apqT/5be2/+vB
|
||||
v//rvrz/6bKw/+uvrf/Um5n/bUVEgAAAAAMAAAAAAAAAAAAAAAOTXV2q1ZGR/9CYmP+dfX7/o4yM/9e8
|
||||
vP/z0tL/zLOz/+u8u//5v7z/1peV/8uLif/Ki4r/yoyL/86Ukv/TnJv/2qSi/+Gtq//nuLb/7cPB//DJ
|
||||
x//xxsT/8b+9//G6t//zubf/77az/6d1dM89Hx8lAAAAAAAAAAAAAAAAAAAAAIJOTojNiIn/jGlp/01O
|
||||
Tv9UVlb/dnNz/7uhof+Pfn7/xJ+e//zCv//lqKb/3J2b/+Chnv/hpaT/7Ly5/+vHxv/MxMn/0MjN//LK
|
||||
yf/1x8X/9sLA//a/vP/3vrv/+L+8//S7uP+5hoXhYTo5RwAAAAAAAAAAAAAAAAAAAAAAAAAAaTs7RrVz
|
||||
dPKmfn7/cXJx/4SGhv97fX3/b2Zm/516ev+7kJD/+sG+//C2s//lqqr/rpbA/3aB2/+ql83/tMHK/2jc
|
||||
9P9OzOz/2r3B//q/vP/3vrv/9ry6//a8uf/ss7D/tYGA32c+Pk0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAvEhIHg01Njbp9fvrCn5//nI+P/4R7ev+fgID/2Jyd/9ybnP/ytrT/+b+8/+ewtf+Mld3/ZI36/5eI
|
||||
zv/Ttrn/sNLc/6/Czv/stLT/8re0/++0sf/tsq//2qCe/6Rxb8phODg+AAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABCIB8MeUZGbqRpata8gYH8x4mJ/9eTk//YkpP/04qL/+Cbmv/5wL3/9726/+Sw
|
||||
t//Zrrn/56qY/+2smf/lr6n/nLWJ/4Gtdf/Pppn/3qGf/7yEg/KJWViYTyoqIAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQh0dGXJAQGOXXl7NtnR1/8V7fP/MfH3/znt8/+il
|
||||
o//0urj/7LCu/+Whg//rq13/35VX/9Kek/9yvXz/ZbNv/6iCdfqYY2O/aj4+TCUJCgcAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAACcamsBjFRVB4FERAh9PT0JjU1ND6VnZx+/hINF0JqZiNOjoty0iIf2hFBQw5lX
|
||||
V8+wY2P4xXR0/+aioP/oq6j/2pqT/92fif/Vlor/yYqJ/7N8efiVZmPGdERFYkEfHxIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALiFhgXFkJEdx5CQSMqSknbNlZWbz5uaws2cnOXBlJPnqH18r4dc
|
||||
XFFULy8OSCUlFm07O0+FSUmeoV1d3sF9fPrGhoX/snZ295xkZNiFUlKbbD4+T0UdHxIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc0JDA5FgYRKdbm46onR0Zp9ycnuWampzhFlZVmY6
|
||||
OikvDAwHAAAAAAAAAAAAAAAAAAAAAB0ODgRULCwhbjo7UXhERGVrPDxHTCYmGxAAAQMAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP//////////////////////D////gf///wH///4A///+AP///AD///wA///8AP//+AD
|
||||
///gA//D4AH+AeAA+ADgAAAAwAAAAMAAAADAAAAB4AAAA+AAAAfgAAAP8AAAH/wAAD8AAAD/AAAD/wB4
|
||||
D//H////////////////////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABMAAAAtAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgIO1cwMM1qOjrsHhAQmwAA
|
||||
ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAATCgogfUhI6ahgYP6lXV3+f0hI9wIBAT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsGBgFPLy6kuW1t/sZv
|
||||
cP/Gb3D/oF9e/hMKCmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4QECynZmX7xnBx/sdwcf/HcHH/tG1t/h8REYMAAAABAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAx
|
||||
MIzFc3T+xm9w/sdwcf7HcHH+vHR0/jAcHJkAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ4OAYVSUtfIcnP/yXZ3/st5ef/LeHn/xoB//kQq
|
||||
KrEAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAJxYWGrNvb/7Nfn//0oeI/tSNjf/UjI3/1ZOS/mE+PtQAAAAXAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAIAAAARAAAALQAAADUAAAARAAAAAAAAAAAAAAAAQyYmUM6Ghv/Wj5D/3J2e/uCl
|
||||
pf/fpKT/4KOi/qRycPkHBARlAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAQAAJh8REYBYNTXMhVJR8XxM
|
||||
TO8gEhKeAAAAEAAAAAAAAAAAbUVEe9aPkP7doKD+5rKz/uu9vv7rvLz+6rKx/tqfnf5iNzfnCAQEcwAA
|
||||
ACoAAAAbAAAAIQIBATorGBiQhFNT67Z3dv68fn3+wYSD/siKiP6aZmX2AQAAKQAAAAAAAAAAd05Ni9eT
|
||||
lP/jq6z/7cLC/vXS0v/zz9D/8b69/uyxrv+samr/l15d+2tDQ+NkPz7bdkxL451nZve+gYD/yY2M/tWg
|
||||
n//jtrT/46+t/uOmpP+mdHPwBQMDFAAAAAAAAAAAdkpJh9iUlf7Hl5f+tJeX/uzOzv7lyMj+57y6/vS6
|
||||
t/7HhoX+xYaE/saJh/7MkpD+0ZmY/tejov7mt7X+7cXD/vDFxP7vvLr+8Le0/u2zsf5PMzOMDQcHAQAA
|
||||
AAAAAAAAYTg4X9OOj/9aUlL/YGJi/nh2dv+skJD/qo2M/vnAvf/dn53/4KKg/+Cnp/7vxsT/u8PM/sHI
|
||||
0P/1xsT/9sG+/ve+u//3vrv/87q3/ntVVLkkFhYIAAAAAAAAAAAAAAAAVC8wD6BkZOWjhIT/jo6O/n1+
|
||||
fv+eenv/xpGR/vi/vP/wtbL/mZPP/0Z2+v69nrr/gd/x/nfD2v/2vLr/9Lq3/vG2tP/lq6j/elJRrjQg
|
||||
IAoAAAAAAAAAAAAAAAAAAAAAAAAAAGc7OyeOWVnGv4eH/r2Fhf7YlZb+1Y6P/uinpv74v7z+3ay3/seo
|
||||
w/7srZ/+7LGv/qmyjv63qI7+5Kel/r2GhPZ1S0p1QCcmAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAd0pKOpReXtKxb3D/yXl6/sx5ev/ws7D/6q6s/+Ked/7npFb/2ZiP/ny7gP+OjW/9h1dWr2I7
|
||||
OiMAAAAAAAAAAAAAAAAAAAAAAAAAALSCggSqcXIbo2dnN61xcVS/h4eIzp2c2cKWle2OY2OGbz4+Y4xN
|
||||
Tr6zaWn84Jyb/9aXlv7Ji4r/p25t9INTUqZlPDw3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJJg
|
||||
YASjcnMorH9/a6h7e4yabm6Df1NTU3VKSgwAAAAAAAAAAAAAAABgNDQgcj8/bntHR4ZnPDxTVTExDQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////APx//wD4P/8A8D//AOA//wDgH/8A4B//AMAf
|
||||
/wDAH8EAwA8AAMAAAADAAAAAwAAAAMAAAQDAAAMA4AAHAPgAHwAAAH8AAcH/AP///wD///8A////ACgA
|
||||
AAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQc
|
||||
HA5LKSlUNBwcSAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsO
|
||||
DgV/SkqHm1hY+X5HR90tGRkuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAB4SEhCr2Zm7sZwcf+oYWL5UC8vUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAACnl9fnMRwcf/IcXL/tmxs/mI8PGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAa0NCGbRsbdbMenv/zn5//8R9ff9ySkmCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAA
|
||||
AAkAAAAAAAAAAItYWDvFfn/y2ZWW/92fn//anJv/jWFgvwAAAB0AAAAAAAAAAAAAAAIzHBwiYjs7a3pM
|
||||
S6pqQkKjLBoaMwAAAACeZ2dZ05KS/em0tP/vxMT/77u6/8CHhfpmPDyvRysqYlExMV1ySEiGnWdn07qB
|
||||
gPzLkI//w4iG/HJLS3YAAAAAomloXsyRkf/DoKD/48bG/+jAv//hpKL/vX17/7h/fPu/iYj7z5qZ/+Gw
|
||||
rv/rvLr/77q3/9ScmuR9U1I+AAAAAJZbWz2ndnbxdG9v/4yCgv+4lJP/77Wy/86erP+6nsH/tsXR/8PH
|
||||
0P/4wsD/9b26/+Cppu2peXdiAAAAAQAAAABYKCgHn2lqe6eCguSsgoL90pKS//Cxrv/TrcP/s5y+/8i3
|
||||
s/+quab/26mh/82UktSgbm1TBAAAAwAAAACud3cEvYGBC7N6ehyyfHtyt39+3bNub9vLgYH05qak/+Kg
|
||||
g//OlH39jZR04Zd0aYmDT1EiAAAAAAAAAAAAAAAAr3t7D7aCgki5h4Z8uImJgah+fUltPz8ajU1ORq1s
|
||||
bI6vdHOgm2RkaYxJUiZgCygCAAAAAAAAAAAAAAAAAAAAAGo9PQF9UVEHcEdHCTodHQIAAAAAAAAAAAAA
|
||||
AAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AADh/wAAwf8AAMH/
|
||||
AACB/wAAgfkAAIDAAACAAAAAgAAAAIAAAACAAQAAAAcAAAAPAAAOfwAA//8AAA==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
218
BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCCoreEmulationSettings.Designer.cs
generated
Normal file
218
BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCCoreEmulationSettings.Designer.cs
generated
Normal file
|
@ -0,0 +1,218 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class AmstradCPCCoreEmulationSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AmstradCPCCoreEmulationSettings));
|
||||
this.OkBtn = new System.Windows.Forms.Button();
|
||||
this.CancelBtn = new System.Windows.Forms.Button();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.MachineSelectionComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.determEmucheckBox1 = new System.Windows.Forms.CheckBox();
|
||||
this.lblAutoLoadText = new System.Windows.Forms.Label();
|
||||
this.autoLoadcheckBox1 = new System.Windows.Forms.CheckBox();
|
||||
this.lblBorderInfo = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.borderTypecomboBox1 = new System.Windows.Forms.ComboBox();
|
||||
this.textBoxMachineNotes = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// OkBtn
|
||||
//
|
||||
this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.OkBtn.Location = new System.Drawing.Point(310, 432);
|
||||
this.OkBtn.Name = "OkBtn";
|
||||
this.OkBtn.Size = new System.Drawing.Size(60, 23);
|
||||
this.OkBtn.TabIndex = 3;
|
||||
this.OkBtn.Text = "&OK";
|
||||
this.OkBtn.UseVisualStyleBackColor = true;
|
||||
this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click);
|
||||
//
|
||||
// CancelBtn
|
||||
//
|
||||
this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.CancelBtn.Location = new System.Drawing.Point(376, 432);
|
||||
this.CancelBtn.Name = "CancelBtn";
|
||||
this.CancelBtn.Size = new System.Drawing.Size(60, 23);
|
||||
this.CancelBtn.TabIndex = 4;
|
||||
this.CancelBtn.Text = "&Cancel";
|
||||
this.CancelBtn.UseVisualStyleBackColor = true;
|
||||
this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click);
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(12, 46);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(98, 13);
|
||||
this.label4.TabIndex = 15;
|
||||
this.label4.Text = "Emulated Machine:";
|
||||
//
|
||||
// MachineSelectionComboBox
|
||||
//
|
||||
this.MachineSelectionComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.MachineSelectionComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.MachineSelectionComboBox.FormattingEnabled = true;
|
||||
this.MachineSelectionComboBox.Location = new System.Drawing.Point(12, 62);
|
||||
this.MachineSelectionComboBox.Name = "MachineSelectionComboBox";
|
||||
this.MachineSelectionComboBox.Size = new System.Drawing.Size(424, 21);
|
||||
this.MachineSelectionComboBox.TabIndex = 13;
|
||||
this.MachineSelectionComboBox.SelectionChangeCommitted += new System.EventHandler(this.MachineSelectionComboBox_SelectionChangeCommitted);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 14);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(159, 13);
|
||||
this.label1.TabIndex = 17;
|
||||
this.label1.Text = "Amstrad CPC Emulation Settings";
|
||||
//
|
||||
// determEmucheckBox1
|
||||
//
|
||||
this.determEmucheckBox1.AutoSize = true;
|
||||
this.determEmucheckBox1.Location = new System.Drawing.Point(12, 373);
|
||||
this.determEmucheckBox1.Name = "determEmucheckBox1";
|
||||
this.determEmucheckBox1.Size = new System.Drawing.Size(135, 17);
|
||||
this.determEmucheckBox1.TabIndex = 21;
|
||||
this.determEmucheckBox1.Text = "Deterministic Emulation";
|
||||
this.determEmucheckBox1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// lblAutoLoadText
|
||||
//
|
||||
this.lblAutoLoadText.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblAutoLoadText.Location = new System.Drawing.Point(155, 373);
|
||||
this.lblAutoLoadText.Name = "lblAutoLoadText";
|
||||
this.lblAutoLoadText.Size = new System.Drawing.Size(281, 56);
|
||||
this.lblAutoLoadText.TabIndex = 27;
|
||||
this.lblAutoLoadText.Text = "When enabled CPCHawk will automatically start and stop the tape whenever the tape" +
|
||||
" motor state changes";
|
||||
this.lblAutoLoadText.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// autoLoadcheckBox1
|
||||
//
|
||||
this.autoLoadcheckBox1.AutoSize = true;
|
||||
this.autoLoadcheckBox1.Location = new System.Drawing.Point(12, 396);
|
||||
this.autoLoadcheckBox1.Name = "autoLoadcheckBox1";
|
||||
this.autoLoadcheckBox1.Size = new System.Drawing.Size(128, 17);
|
||||
this.autoLoadcheckBox1.TabIndex = 26;
|
||||
this.autoLoadcheckBox1.Text = "Auto Tape Start/Stop";
|
||||
this.autoLoadcheckBox1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// lblBorderInfo
|
||||
//
|
||||
this.lblBorderInfo.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblBorderInfo.Location = new System.Drawing.Point(177, 315);
|
||||
this.lblBorderInfo.Name = "lblBorderInfo";
|
||||
this.lblBorderInfo.Size = new System.Drawing.Size(259, 53);
|
||||
this.lblBorderInfo.TabIndex = 30;
|
||||
this.lblBorderInfo.Text = "null";
|
||||
this.lblBorderInfo.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(12, 315);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(118, 13);
|
||||
this.label2.TabIndex = 29;
|
||||
this.label2.Text = "Rendered Border Type:";
|
||||
//
|
||||
// borderTypecomboBox1
|
||||
//
|
||||
this.borderTypecomboBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.borderTypecomboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.borderTypecomboBox1.FormattingEnabled = true;
|
||||
this.borderTypecomboBox1.Location = new System.Drawing.Point(12, 331);
|
||||
this.borderTypecomboBox1.Name = "borderTypecomboBox1";
|
||||
this.borderTypecomboBox1.Size = new System.Drawing.Size(159, 21);
|
||||
this.borderTypecomboBox1.TabIndex = 28;
|
||||
//
|
||||
// textBoxMachineNotes
|
||||
//
|
||||
this.textBoxMachineNotes.AcceptsReturn = true;
|
||||
this.textBoxMachineNotes.AcceptsTab = true;
|
||||
this.textBoxMachineNotes.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textBoxMachineNotes.Location = new System.Drawing.Point(12, 90);
|
||||
this.textBoxMachineNotes.Multiline = true;
|
||||
this.textBoxMachineNotes.Name = "textBoxMachineNotes";
|
||||
this.textBoxMachineNotes.ReadOnly = true;
|
||||
this.textBoxMachineNotes.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.textBoxMachineNotes.Size = new System.Drawing.Size(424, 222);
|
||||
this.textBoxMachineNotes.TabIndex = 31;
|
||||
//
|
||||
// AmstradCPCCoreEmulationSettings
|
||||
//
|
||||
this.AcceptButton = this.OkBtn;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.CancelBtn;
|
||||
this.ClientSize = new System.Drawing.Size(448, 467);
|
||||
this.Controls.Add(this.textBoxMachineNotes);
|
||||
this.Controls.Add(this.lblBorderInfo);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.borderTypecomboBox1);
|
||||
this.Controls.Add(this.lblAutoLoadText);
|
||||
this.Controls.Add(this.autoLoadcheckBox1);
|
||||
this.Controls.Add(this.determEmucheckBox1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.MachineSelectionComboBox);
|
||||
this.Controls.Add(this.CancelBtn);
|
||||
this.Controls.Add(this.OkBtn);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "AmstradCPCCoreEmulationSettings";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Core Emulation Settings";
|
||||
this.Load += new System.EventHandler(this.IntvControllerSettings_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button OkBtn;
|
||||
private System.Windows.Forms.Button CancelBtn;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.ComboBox MachineSelectionComboBox;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.CheckBox determEmucheckBox1;
|
||||
private System.Windows.Forms.Label lblAutoLoadText;
|
||||
private System.Windows.Forms.CheckBox autoLoadcheckBox1;
|
||||
private System.Windows.Forms.Label lblBorderInfo;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.ComboBox borderTypecomboBox1;
|
||||
private System.Windows.Forms.TextBox textBoxMachineNotes;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
using BizHawk.Emulation.Cores.Computers.AmstradCPC;
|
||||
using System.Text;
|
||||
using static BizHawk.Emulation.Cores.Computers.AmstradCPC.AmstradCPC;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class AmstradCPCCoreEmulationSettings : Form
|
||||
{
|
||||
private AmstradCPC.AmstradCPCSyncSettings _syncSettings;
|
||||
|
||||
public AmstradCPCCoreEmulationSettings()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void IntvControllerSettings_Load(object sender, EventArgs e)
|
||||
{
|
||||
_syncSettings = ((AmstradCPC)Global.Emulator).GetSyncSettings().Clone();
|
||||
|
||||
// machine selection
|
||||
var machineTypes = Enum.GetNames(typeof(MachineType));
|
||||
foreach (var val in machineTypes)
|
||||
{
|
||||
MachineSelectionComboBox.Items.Add(val);
|
||||
}
|
||||
MachineSelectionComboBox.SelectedItem = _syncSettings.MachineType.ToString();
|
||||
UpdateMachineNotes((MachineType)Enum.Parse(typeof(MachineType), MachineSelectionComboBox.SelectedItem.ToString()));
|
||||
|
||||
// border selecton
|
||||
var borderTypes = Enum.GetNames(typeof(AmstradCPC.BorderType));
|
||||
foreach (var val in borderTypes)
|
||||
{
|
||||
borderTypecomboBox1.Items.Add(val);
|
||||
}
|
||||
borderTypecomboBox1.SelectedItem = _syncSettings.BorderType.ToString();
|
||||
UpdateBorderNotes((AmstradCPC.BorderType)Enum.Parse(typeof(AmstradCPC.BorderType), borderTypecomboBox1.SelectedItem.ToString()));
|
||||
|
||||
// deterministic emulation
|
||||
determEmucheckBox1.Checked = _syncSettings.DeterministicEmulation;
|
||||
|
||||
// autoload tape
|
||||
autoLoadcheckBox1.Checked = _syncSettings.AutoStartStopTape;
|
||||
}
|
||||
|
||||
private void OkBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
bool changed =
|
||||
_syncSettings.MachineType.ToString() != MachineSelectionComboBox.SelectedItem.ToString()
|
||||
|| _syncSettings.BorderType.ToString() != borderTypecomboBox1.SelectedItem.ToString()
|
||||
|| _syncSettings.DeterministicEmulation != determEmucheckBox1.Checked
|
||||
|| _syncSettings.AutoStartStopTape != autoLoadcheckBox1.Checked;
|
||||
|
||||
if (changed)
|
||||
{
|
||||
_syncSettings.MachineType = (MachineType)Enum.Parse(typeof(MachineType), MachineSelectionComboBox.SelectedItem.ToString());
|
||||
_syncSettings.BorderType = (AmstradCPC.BorderType)Enum.Parse(typeof(AmstradCPC.BorderType), borderTypecomboBox1.SelectedItem.ToString());
|
||||
_syncSettings.DeterministicEmulation = determEmucheckBox1.Checked;
|
||||
_syncSettings.AutoStartStopTape = autoLoadcheckBox1.Checked;
|
||||
|
||||
GlobalWin.MainForm.PutCoreSyncSettings(_syncSettings);
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void CancelBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
GlobalWin.OSD.AddMessage("Core emulator settings aborted");
|
||||
DialogResult = DialogResult.Cancel;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void MachineSelectionComboBox_SelectionChangeCommitted(object sender, EventArgs e)
|
||||
{
|
||||
ComboBox cb = sender as ComboBox;
|
||||
UpdateMachineNotes((MachineType)Enum.Parse(typeof(MachineType), cb.SelectedItem.ToString()));
|
||||
}
|
||||
|
||||
private void UpdateMachineNotes(MachineType type)
|
||||
{
|
||||
textBoxMachineNotes.Text = CPCMachineMetaData.GetMetaString(type);
|
||||
}
|
||||
|
||||
private void borderTypecomboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
ComboBox cb = sender as ComboBox;
|
||||
UpdateBorderNotes((AmstradCPC.BorderType)Enum.Parse(typeof(AmstradCPC.BorderType), cb.SelectedItem.ToString()));
|
||||
}
|
||||
|
||||
private void UpdateBorderNotes(AmstradCPC.BorderType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case AmstradCPC.BorderType.Uniform:
|
||||
lblBorderInfo.Text = "Attempts to equalise the border areas";
|
||||
break;
|
||||
case AmstradCPC.BorderType.Uncropped:
|
||||
lblBorderInfo.Text = "Pretty much the signal the gate array is generating (looks pants)";
|
||||
break;
|
||||
|
||||
case AmstradCPC.BorderType.Widescreen:
|
||||
lblBorderInfo.Text = "Top and bottom border removed so that the result is *almost* 16:9";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,624 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAwAMDAQAAAABABoBgAAxgAAACAgEAAAAAQA6AIAAC4HAAAYGBAAAAAEAOgBAAAWCgAAEBAQAAAA
|
||||
BAAoAQAA/gsAADAwAAAAAAgAqA4AACYNAAAgIAAAAAAIAKgIAADOGwAAGBgAAAAACADIBgAAdiQAABAQ
|
||||
AAAAAAgAaAUAAD4rAAAwMAAAAAAgAKglAACmMAAAICAAAAAAIACoEAAATlYAABgYAAAAACAAiAkAAPZm
|
||||
AAAQEAAAAAAgAGgEAAB+cAAAKAAAADAAAABgAAAAAQAEAAAAAACABAAAAAAAAAAAAAAQAAAAEAAAAAAA
|
||||
AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP//
|
||||
/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAHR3AAAAAAAAAAAAAAAAAAAAAAAAAAAAdHdEcAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAHd0d3QAAAAAAAAAAAAAAAAAAAAAAAAAAEd8d3UAAAAAAAAAAAAAAAAAAAAAAAAAB3yHfHZw
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAd3fIyHVwAAAAAAAAAAAAAAAAAAAAAAAAfHh3jIxwAAAAAAAAAAAAAAAA
|
||||
AAAAAAAHd8jIyHdgAAAAAAAAAAAAAAAAAAAAAAAHd4yHfIdAAAAAAAAAAAAAAAAAAAAAAAAHyMjIyMhQ
|
||||
AAAAAAAAAAAAAAAAAAAAAAB3d3eMh4dgAAAAAAAAAAAAAAAAAAAAAAB8jIyIfIdQAAAAAAAAAAAAAAAA
|
||||
AAAAAAB3h4jIiMh3AAAAAAAAAAAAAAAAAAAAAAB8jIeHeIjHAAAAAAAAAAAAAAAAAAAAAAeIiHh4eMiE
|
||||
AAAAAAAAAAAAB0dHcAAAAAd8h4eIiIiHcAAAAAAAAAB0d3d3RwAAAAeIeIiIiIh3RwAAAAAAAHR3d8h3
|
||||
dAAAAAfIh4iIiHiIx0cAAAAAdHh3eIeHhwAAAAeHiIiIiIiId3R3dHR0eHd4h4eHhAAAAAd4eIiIiIiH
|
||||
x3d2d3eId4iIiIiIhwAAAAd4eIiI+IiIh3d3eHh3iIiIiIeHwAAAAAfIjHeIiIiIyIeHh4iIiIiIiIiI
|
||||
cAAAAAeIQ0R3h3iIiMiIiIiIiIiIiIiEAAAAAAfIR3d3d0iIiIh4iIeIiIiIiHhAAAAAAAB4d3d3SHiI
|
||||
h4fTiIi3iIiIeIwAAAAAAAB3h4d3eIeIiHiJiIuIiIh4jHAAAAAAAAAHyId3h3h4iIh4iIiIiIiHeAAA
|
||||
AAAAAAAAB8iMiMjIiIiIh4h3aMjHAAAAAAAAAAAAAAdYyIeIiIiMjId6d4eAAAAAAAAAAAAAAAAHdsjH
|
||||
eIeH6MiId3AAAAAAAAAAAAAAAIiIh4V8jIh4eIfHcAAAAAAAAAAAAACIiIh3AAAHd3h3fHcAAAAAAAAA
|
||||
AAAAAAiIjHgAAAAAAHx8eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A
|
||||
H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP////
|
||||
AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA
|
||||
AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/
|
||||
AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAQAAAAAAAAC
|
||||
AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
|
||||
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAAA
|
||||
AAd0dAAAAAAAAAAAAAAAAAB3x3cAAAAAAAAAAAAAAAAAd3fHcAAAAAAAAAAAAAAAB3yMh3AAAAAAAAAA
|
||||
AAAAAAfIeMdwAAAAAAAAAAAAAAAHjIyHQAAAAAAAAAAAAAAAfId4yHAAAAAAAAAAAAAAAHjIyIdQAAAA
|
||||
AAAAAAAAAAB3iId4YAAAAAAAAAdwAAAAjIiIiIUAAAAAAHd3dAAAB4iIiHh8cAAAAHd3x4dwAAd4iIiI
|
||||
h3Z3d3R3yIh4cAAHh4iIiIfHd3d4iIiIh3AAB3jHiIiIiHeHiIiIiIwAAAh3dXh4iMiIiIiIiIhwAAAA
|
||||
yGd0d4iIeIi4iIiMAAAAAIeHd4iIh32IiIiIcAAAAAAAd4jIyIiIiHeHyAAAAAAAAAB3h4iIh8h3dwAA
|
||||
AAAAAAAIh8fIh4eIaAAAAAAAAACIiHAAB8jIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////
|
||||
////////////////////n////g////wP///8B///+Af///gH///4B///8Af///AH///wB//n8AP/A+AB
|
||||
/AHgAAAB4AAAAeAAAAPgAAAH8AAAD/AAAB/8AAA//wAA//4AA//weA//////////////////////////
|
||||
//8oAAAAGAAAADAAAAABAAQAAAAAACABAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAA
|
||||
AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRwAAAAAAAAAAAAB3dAAAAAAAAAAAAA
|
||||
d8dwAAAAAAAAAAAAfId3AAAAAAAAAAAHeMjHAAAAAAAAAAAHyHh3AAAAAAAAAAAHh3eEAAAAAAAAAAAI
|
||||
yIiHAAAAAHd2cAAIiIiIQAAAd3d4UACHiIiId3d3eHiIcACHh4iIyHeHiIiIcAAIR3d4iIiIiIiMAAAH
|
||||
d3eIh3iIiIhwAAAAeMh4iIiHiMAAAAAAAHfIiMh4aAAAAAAAiIgHyIfIAAAAAAAIgAAAAIAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD8f/8A+H//APB/
|
||||
/wDwP/8A4D//AOA//wDgP/8A4D/BAOAfAQDAAAEAwAABAOAAAwDgAAcA8AAfAPwAPwDwgP8A5/f/AP//
|
||||
/wD///8A////ACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACA
|
||||
AAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAd1AAAAAAAAB8cAAAAAAAB4eAAAAAAAAHyMgAAAAAAAiIhwAAAHcACI
|
||||
iHcAd3hwAIz4jIeIiIAAd3eIiIiIAACHeIiIiHAAAACMeMh4AAAAiAAIgAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAD//wAA//8AAP//AADj/wAA4/8AAMP/AADB/wAAwfkAAMDBAADAAQAAwAMAAMAHAADwDwAAzn8AAP//
|
||||
AAD//wAAKAAAADAAAABgAAAAAQAIAAAAAAAACQAAAAAAAAAAAAAAAQAAAAEAAAAAAAA9OzsAZD8/AGg8
|
||||
PABtPj4AQkNDAEZIRwBWQkIAV0REAF5AQABbRkYAVklJAFxPTwBTU1MAXFJSAF5ZWQBkQEAAYUREAGZF
|
||||
RQBqQkEAYEtLAGNPTwBwQUEAfUZGAHJKSgB2SUkAfU9PAGBRUQBgVFQAZlZWAGZYWABqWVkAclZWAHpU
|
||||
VAB9W1oAbmJiAGtoaABtaWkAcWdnAHdnZwB8Y2MAe2pqAHJxcQB+dHQAd3l5AHl6egCGT08AiU9PAIFP
|
||||
UACGU1MAjVFRAIlWVgCMV1cAg1xbAIxaWQCQUlIAlVJSAJFXVgCXVVUAmVVVAJZaWQCSXV0AlV9eAJpZ
|
||||
WgCeW1sAml5eAKBZWgCgXFwAql9fAIRmZQCIZWQAhWtrAI5ragCTYmEAnGBhAJ9kYwCaZmYAk25uAJ1s
|
||||
awCFdHQAiXd3AIt+fgCWd3cAmHR0AJV5eQCbfHwAo2JhAKZhYQChZWUApGVkAKplZACsZGQAqmhnAKZr
|
||||
agCnbGsAqmloAKlubQCsbW0AtGZnALhsbACxb3AAv29wAKVxcACrc3IAr35+ALN0cwC5c3MAvXBxALR4
|
||||
dgC1fHsAunt6AMNtbgDGb3AAw3FyAMZwcQDGdXUAyHR1AMp3eADBeXkAxnt7AMB/fgDLensANLBSAEWf
|
||||
TgBBtFwAPMdnADHkdgDciiIAvoF/AISrdwDln0sA35lhAN2XfADgmmEA8LdlAO61cAArWPIALWT+AEh5
|
||||
+gDOf4AAfoCAAHiA1ABZv9wAZrnUAGK+2ABxnv4Ad6P/ADPX/QBw0OcAW+D7AIKEgwCPgoIAjI2NAJuC
|
||||
ggCUiIgAmYqKAJGSkgCjhIQAqoKCAKKLiwC+hIMAsoqKALaSgQCum5sAsZubALqqlQCdgr4Ar6ytALGh
|
||||
oAC6pKQAwoSDAMyBggDGiIYAyYiHAMWMigDMjIoA0ISFANKHiADUjIwA2Y6NAMCUjQDIk44A0JCPANaP
|
||||
kADHlZQAzpSSAMScmwDUkpIA2ZSVANWYlgDampcA2ZeYANWcnADam5sA4p2cAMChjwDeoJ4A5aCFAOaj
|
||||
jQDlpJoA2p6hAMOkowDOoaEAy62tANegoADdoqEA2aGpANGsrwDdq6kAwbG4ANGysQDdtLQA2ri3AOGk
|
||||
owDjqKYA66ylAOGnqADjq6oA6a2rAOOwrwDssK4A5K+wAOaztADttLIA57i2AO24tgDmurgA6rq6APC1
|
||||
swDyuLYA9Ly5APi+uwD1wL0A+cC9AKKMwACkk8QAqprMALSayACptsEAlaDkAOy/wACRxtQAgOv9AJnr
|
||||
9wDEwsoA5sbGAOzCwgDuyMcA7MzMAPPEwgDxy8oA9dPTAPja2gAAAAAAAAAAAP///wAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAoIJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAACYXODs4BCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
KTNDQ0M7OAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALllbYmJZQBcAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYYWNwcHBwWy8mAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A
|
||||
H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP////
|
||||
AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA
|
||||
AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/
|
||||
AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAE
|
||||
AAAAAAAAAAAAAAABAAAAAQAAAAAAAFFNTQBRUlIAU1RUAGJHRwBiT08Aa0lIAGJTUwBrVlYAYllZAGZc
|
||||
XABpWloAb1xbAHNTUwB7V1YAc1hXAHFbWwBkZWUAaWFhAG5kZABpamkAcGFhAHlubgB2cHAAf3V1AH55
|
||||
eQB8fX0AgUpKAI1PTwCLWFcAhlhYAI9ZWQCKXFsAm1ZWAJJZWQCWWVgAmlpbAJtcWwCiXFwAl2BfAIBg
|
||||
YACAZ2YAgG9vAI9oaACWZWQAmGBhAJ5kZACcaWoAmm9vAIV0dACNcHAAiXZ2AIB8fACac3IAm3V0AJ51
|
||||
dQCZfHwAnHx8AKNmZgCnZmYAqmJiAK5jYwCvb24AtWVmALBtbgC5bW0AvmxtAKx+fQCxcnIAtHBwALZz
|
||||
dACydXQAtnd2ALlwcAC5dnYAt3p5ALh5eAC8fHsAun18ALx+fQDGb3AAxnBxAMdzdADAd3YAyHJzAMlz
|
||||
dADJdXYAynd4AMd/fwDMe3wAzXx9AHunbwBhvHIAYsN4ANuLOwC2hn4A4Zt5APC3ZABte9sAX47+AHWM
|
||||
5QAl0foAY+P8AIeDgwCFhoYAioSEAJOIiACWi4sAmpKRAKGCgQCmhYUAqYGBAKuDhACniooApYyMAKiO
|
||||
jQCyhYMAvoWEALeNjQCrj5AAr5eXALSVlAC9lJMAmbCEAK6RugDBgYAAwoSCAMWDhADChoQAxYeFAM6A
|
||||
gQDFiIYAxoqIAMqIiQDMi4oAy4yKAMiPjQDPj44A0ISFANKJigDUi4wA04+NANWNjgDKkY8A0JCOANud
|
||||
iQDWj5AAzJSTAM2XlgDGm5oA1pGSANOUkgDVl5EA1pOUANiVlgDYmJUA2ZeYANKenADbmpsA3pmYANuc
|
||||
mgDbn5wA1aacAN6gngDqqZoA3Z+gAMyjowDCra0AxqysAMqpqQDboaAA3qKiAN6logDbp6UA3aWkANer
|
||||
qgDWsbMA0rW0ANe0tADfs7IA4aSiAOGlpQDkp6UA46imAOWopgDsraIA6qimAOGoqADhrqwA6a2rAOqv
|
||||
rADpsK4A7LGuAOGzswDlsbEA7bKxAO+1sgDotrYA5rm3AO+4twDot7sA6bq5AOu9uwDrv70A8bazAPG2
|
||||
tADxuLUA9Lm2APC9uwD2vboA9L+9APi+uwD4v7wA8sC+APXAvgD5wL0AkILJAKqXzACsu8cAqr/LALLV
|
||||
3QDawMIA48XFAOvDwQDswMAA7cTDAO/ExQDgxsgA8cbEAPTGxADwyskA9MvJAPLNzQD21dYA+NjZAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAMEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqHCEcBQAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAayU9PSYbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdQlBSQiJpAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAM0pSUlJQPRcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnUlJSUlJGFQAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAFJSUlJSUkoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzUlJSWVJZfxAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XWYqKioqGDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASoqMkpqa
|
||||
mqAsAAAAAAAAAAAAAAAAAABoNAAAAAAAAACMjJyuvLy2toYHAAAAAAAAAAAAABcOIDouBgAAAAAAc4yc
|
||||
tsHKysPAriIKAAAAAAAAABYgRk1LTX+DEAAAAABukqXB4ejo4dHPQCIEChcXEwggTXV/k66unKMpAAAA
|
||||
AG6Srsro6ero0dN/Rk1NRk2Dg4STrsbh4cHAt2sAAAAAbpKuOXPe6ajW15KGg4OGk528yuHo5eHPz882
|
||||
AAAAAAB4jCkDAxSoMabXt5yjt8ro3ePo5dbT09HTdAAAAAAAAABGcBFoGgFwdtfDwHxi2dpmZcrX09HP
|
||||
z0MAAAAAAAAAAHh/qWwaOa6cz9PNZGPYsdzbzc3DwLk2AAAAAAAAAAAAAAAvhpKakoyg19HNyKS5wHtb
|
||||
orZ/cwAAAAAAAAAAAAAAAAAANkaKWVm5zb1gYV6cXVxfNgAAAAAAAAAAAAAAAAAAALGvlTIuP1K5tqCR
|
||||
l4xfLwAAAAAAAAAAAAAAAAAAsbPBenkAAAAAcCVYjE0scwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////+f///+D////A////wH
|
||||
///4B///+Af///gH///wB///8Af///AH/+fwA/8D4AH8AeAAAAHgAAAB4AAAA+AAAAfwAAAP8AAAH/wA
|
||||
AD//AAD//gAD//B4D////////////////////////////ygAAAAYAAAAMAAAAAEACAAAAAAAQAIAAAAA
|
||||
AAAAAAAAAAEAAAABAAAAAAAAWlJSAHBJSQB1SEgAe1dXAHdYWAB5WlkAel1dAGBiYgB1bGwAfWtrAHh2
|
||||
dgB9fn4Ag01NAIRXVwCIV1cAhV9eAItbWgCgX14ApV1dAJhgXwCNYGAAnWtqAJhtbQCCdnYAh3x8AI15
|
||||
eACeensAqGBgAKhoZwCga2oArGpqALNqagCzb28AtG1tALltbQCxb3AApnVzAKlzcwCqdHMApnp6AKd+
|
||||
fgCpensAq3x7ALZ3dgC8dHQAvH59AMZvcADGcHEAxXN0AMhycwDJdncAynh5AMx5egDNfn8Ajo1wAOek
|
||||
VgDGgH8A4p53AEZ2+gB8u4AAd8PaAIuEhACOh4cAjo6OAJ+DggCejo4Ao4SEAKSIiACsi4sAqo2MAK6P
|
||||
jgC+gYAAvoaGAL+KiACskJAAtJeXALWenQC5np4At6iOAKmyjgC9nroAwYSDAMaGhADOhoYAxomHAMiK
|
||||
iQDJjYwA0oeIANOOjwDUjY0A2ZiPANaPkADGkZEAx5eXAMySkADGnZwA1ZOSANeTlADWl5YA2JSVANGZ
|
||||
mADan50A3J6dAOCcmwDVoJ8A7K2fAMOtrQDXo6IA3aCgAN+kpADVq6oA3ay3AMu0tADPtrYA3L+/AOCi
|
||||
oQDhpqUA5KelAOinpgDlq6gA46usAOOvrQDqrqwA7LGuAOayswDjtrQA5re1AOqysQDts7EA57y6AO+8
|
||||
ugDrvL0A8LOwAPC1sgDwtrQA87q3APS6twD2vboA8b69APi/vAD2wb4A+cC9AJmTzwDHqMMAu8PMAIHf
|
||||
8QDByNAA7cLCAO3FwwDvxsQA5cjIAOzOzgDwxcQA9cbEAPPP0AD10tIAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
BQMJAAAAAAAAAAAAAAAAAAAAAAAAAAAPHBMNAAAAAAAAAAAAAAAAAAAAAAAAABojLy8TAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAB0wMDAiPgAAAAAAAAAAAAAAAAAAAAAAQjAwMDAtGAAAAAAAAAAAAAAAAAAAAAAAFzIy
|
||||
NTU5CgAAAAAAAAAAAAAAAAAAAAAAIjZYWFxcBwAAAAAAAAAAAAAAAAAAAAAANlxtdW11JQAAAAAAAAAA
|
||||
PgcRDgkAAAAAXG1/lISAZgMAAAAAABkVLC5SVhcAAABNY3WWnJuLfB8UBAcQHkhWaX91dSsAAABNY2BM
|
||||
mJeCiVJSVl9laX+WloSJgEIAAAAAXAEIC0tGjnR0dJaRk5qNjIyJQwAAAAAAJkNADBtdjIaPO1GSPYuJ
|
||||
hnVEAAAAAAAAAClISWRcd4xwkGp8UE90VwAAAAAAAAAAAAAAKSQ1NYZ7OjhbPDdGAAAAAAAAAAAAAHNv
|
||||
YGsAKyJoXFYmRwAAAAAAAAAAAAAAcnIAAAAAAAAATgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP//
|
||||
/wD///8A////APx//wD4f/8A8H//APA//wDgP/8A4D//AOA//wDgP8EA4B8BAMAAAQDAAAEA4AADAOAA
|
||||
BwDwAB8A/AA/APCA/wDn9/8A////AP///wD///8AKAAAABAAAAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAA
|
||||
AAAAAQAAAAEAAAAAAABjZGQAdmRjAHtpaQB/eHgAgU9PAKBaWgCFbm0AlWtqAKptbgCwZ2cAsGhoAKxw
|
||||
cACteHkAvnJyAMZvcADGcHEAy3l5AMx9fgCFmXQAwIB/ANeUfQDhoX8AlIqJAJWMjACYiIgAoIaGAK2K
|
||||
igCxh4cAvoGAALKKigC4iYgAuJWVAL2cnACss50AuqKhAL+mpgDLgoIAxImHAMeNjADLkI8AxpWTANCS
|
||||
kQDYlZUA1J6dANqZmgDdnp4A1J+oAMaiogDOr68AzLKyANi5uADhpaIA4qypAOWtqADrrqsA4bKwAOay
|
||||
sgDtuLYA57++AOy4uADxtLIA8be0APa9ugDswL4A9sG+ALCcxwC5ncIA06zBALnH0QC2ytQA7sPDAPLS
|
||||
0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAZBgUAAAAAAAAAAAAAAAAACw8KAAAAAAAAAAAAAAAAGhAQDgAAAAAAAAAAAAAAAAkRESUYAAAA
|
||||
AAAAAAAAAAAlKy4uBwAAAAAAAAcDAAAAKzlHPCYCAAAYCB0oKgAAAC0wSDs0FB0nLDlAOiwAAAANAQQb
|
||||
Pi9DRkVBPzUAAAAAJB4cKz5EQjMiNSkAAAAAAAAAHwwRNxYVEyQAAAAAAAAxMgAAACEgAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA4/8AAOP/AADD/wAAwf8AAMH5
|
||||
AADAwQAAwAEAAMADAADABwAA8A8AAM5/AAD//wAA//8AACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAkAAAAJAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAUAAAAOAEBAVUAAABUAAAANQAAABAAAAABAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAkFBSUvGRl5TCkpwlYuLtxDJCTQFw0NmQAA
|
||||
AEkAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGAwMKE8rK6V6RET2klJR/5ZS
|
||||
U/+OT0//ZDc38B0QEJoAAAAyAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYDAwYVzAwoopP
|
||||
T/ygXVz/oFtb/55ZWf+bWFf/k1NT/1UvL9wGAwNcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AARNKipxhk5O+adkY/+uZWX/tWdo/7VmZ/+qYWH/nltb/3hERPcfERGCAAAAFgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADEZGS1zQ0LXqGdm/7ptbf/Fb3D/x3Bx/8hwcf/BbW7/q2Vl/4hPT/82HR2gAAAAIAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAB1gxMYyYXl3/vXFx/8Zwcf/HcHH/x3Bx/8dwcf/HcHH/uG1t/5NY
|
||||
V/9EJia2AAAAKQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPB8fNH1MS+K4cnH/x3Fy/8dwcf/HcHH/x3Bx/8dw
|
||||
cf/HcHH/wHBx/51gX/9PLCzGAAAAMwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXjU1h6NnZv/Fc3T/x3Bx/8dw
|
||||
cf/HcHH/x3Bx/8dwcf/HcHH/w3Jz/6ZoZ/9ZMzPTAQAAPQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyFxccektK0b12
|
||||
dv/HcHH/x3Bx/8dwcf/HcHH/x3Bx/8dwcf/HcHH/xXR0/69wb/9jOjneBwMDSQAAAAUAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABNKSlNlmBf9sh3d//HcHH/x3Bx/8dwcf/HcHH/x3Bx/8dwcf/HcHH/xnd3/7Z4d/9sQUDnDgcHVQAA
|
||||
AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
ov/grq3/4a6t/96lo//eoJ7/36Kg/+Cjof+IWVjnGwwMQwAAAAIAAAAAAAAAAAAAAAAAAAAARyQkL6Br
|
||||
auzZk5P/25qb/+GnqP/ntLT/7cDA//LLy//209T/+NjY//fX1//00ND/8cbG//W9u//4vrz/46ak/7d0
|
||||
c/+vb27/s3Jy/7d2df+ucXD/pWpp/6Npaf+nbWz/sHVz/7p9fP/EhYT/yImI/8WIhv/DiIb/ypGP/9eg
|
||||
n//hr63/57q5/+rCwP/rwsD/6bq4/+evrf/nq6n/6q6r/9qgnv9wRkbDBwAAHgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAASCQkLZ1nZuvYkpP/25uc/+Opqv/qtrf/7cHB//TOzv/52Nj/+tzc//na2v/xz9D/8MfH//fA
|
||||
vv/6wb7/6a6r/8OBgP/DgoD/vX58/7h7ev+8fn3/woOC/8aHhv/HiYj/xoqJ/8aLif/Ijoz/zZST/9eg
|
||||
nv/hrav/6Lm3/+zCwf/uyMf/78nH/+/Dwf/uvLr/7ba0/+60sf/vtLL/8ri1/7J+fflMKSltAAAABAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAQyEhI5JcXOPWj5D/3Juc/8qVlf+BZmb/bl5e/4l4eP/AqKj/8tPT//LO
|
||||
zv+5p6b/w6qq//fBv//7wr//8LWy/86Ojf/Ojoz/0ZGP/9GSkP/OkY//zpOR/9GamP/VoJ//2qel/+Gv
|
||||
rf/nt7X/6727/+3Dwf/wycf/8czL//LLyf/yxsT/8cC+//G7uf/yubf/87m3//S7uP/4vrv/1J6c/3JH
|
||||
RrAdCgsWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANRcXEYJNTcvPiIn/15aW/2VNTf85Ojr/Q0VF/0JF
|
||||
RP9dXFz/n5GR/+S/v/+bh4f/hXp6/+25uP/7wr//9bu4/9qcmv/Zmpj/252b/96gnf/ipKH/5q+s/+u+
|
||||
vP/vycf/8srI/+3Hxv/wysj/9c7M//TNy//0ysj/9MbE//TBv//1vrz/9r26//e9u//4vrv/+L+8//vB
|
||||
vv/hqqf/g1ZVzDwcHC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW4+Ppq/env/05OT/2ZX
|
||||
V/9rbm7/fX9//3l6ev99f3//cHJy/5F9ff+ff3//XFhY/9eop//8wr//+L+8/+Wppv/ipaP/5qil/96i
|
||||
pP/Kmaz/1qi1//LGxP/tyMf/qb3J/23E3P9kw9//vMTN//jDwP/3wb//+MC9//i/vf/5v73/+b+8//i/
|
||||
vP/3vrv/+L68/92mo/+IWlnRRSMjOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcv
|
||||
L0mbX1/y15GS/6GAgP9XV1b/iYuL/4CBgf98fX3/cnR0/1dPT/++j4//km9w/9Sfnv/6wL3/+cC9/+6z
|
||||
sP/ssK3/0Z+u/4OH1P9YffD/QGPs/7KYyv/Ct7z/Ytrz/3Ts//8s2f//cbvU//m+u//4v7z/+L67//e9
|
||||
uv/1vLn/9Lq3//O5tv/zuLX/0puZ/4RVVctGIyM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADIXFwdrPDySq2ts/diZmf/ApKT/sKur/4CBgP95enr/iYiI/49zdP/do6P/36Ch/96e
|
||||
nv/zuLX/+sK///W7uP/1ubT/qZC//2qY+/9tnf//MGT6/56FxP/esK//nMbS/57n8/9+z+T/ybG3//a6
|
||||
t//zubb/8re0//C1s//utLH/7rKw/+qvrP++iIb9dklJtkMgISoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHIyMSazw8kZ5hYvXNjI3/2aSk/7OMjP+bd3f/sIKC/9KV
|
||||
lv/cnJz/2peY/9aRkf/koqL/+sG+//nAvf/5v7z/4amw/6qZx/+aouP/qpvP/+mxtv/2urj/6rGv/+S6
|
||||
u//ptrX/466n/+Ovqf/ssK7/6q6s/+isqv/oq6n/2J2b/6JubfFoPT2NOxoaFwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBoaCFowMFd7SEjAomZm9sWC
|
||||
gv/XkZL/25SV/9iSk//Wj5D/1IyN/9KHiP/UiIj/8bOx//rCv//3vbv/9ru4//O3s//xuLX/7q6e/+ej
|
||||
hf/npIn/7bCp/+Otp/+KsX3/ULdm/1WjWv+7oYz/5KWk/9uenP+4gH79glJRzVYuLlQgCAkGAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAA8HBwQVy4uS3FBQaCPV1fjsG5v/cmAgf/ShYb/0YKD/85+f//LeXr/2I2M//e8uf/1vLn/7rOx/+2y
|
||||
sP/lpJX/5qFY/+6xXP/djS3/35h9/86gl/9SwW7/Nd90/0WxXP+vlH//wYSE/49cW+VlOTmBQR4eHAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGk7OhqIWFd8oG5u8J5qav+eX2D/tmts/8Z0df/KdHX/yXJz/92T
|
||||
k//3vLn/7LGu/+Snpf/dm5L/4Z1q/+61dP/fmmX/15WM/9eYlv/Bm43/r6uR/6uNgP+WYWDtbkBAnUwn
|
||||
JzQVAQECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiFJSBnhC
|
||||
QgpqNDQJWSUlB08dHQdfKisKfENDFJJWViinbGtRvYOCjtOcm8/pt7X157y6/7eOjfhxRUW7aTk5m4RK
|
||||
StehWlr6uGdo/8Zwcf/dkpH/8bSx/+OnpP/YmZj/1ZWT/9ealP/Vl5X/0JCP/8eIhv+zdnb/lFtc6nA/
|
||||
QKRSKio/JQwNBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AADTn6AB2qioDMuUlCHBhYU8voCAWcCBgXTEhoaLzZGQqdeensngrKvn47Sz/NOop/+yiIfyi2Bgs2k+
|
||||
PlZXKysPAAAAAUYlJRxcMTFYcj4+pYpMTeWmXF3+xnl5/9+Zl//dnJr/z46M/8KCgf+vc3L/ll9e831L
|
||||
S8hlOTl/TigoMy0REQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABzQUIDnmprDriGhifHlpZMzp6eeNCgoZ7On5+2yJqaybuPj9WnfHzVj2RkunVJ
|
||||
SYNbLy8/PRQUCgAAAAAAAAAAAAAAAAAAAAAAAAAAKRUVBU0pKSphNDRtd0BAsotNTd2ZW1vrkVlY4HtJ
|
||||
Sb5lOTmCUysrQTsbGxEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWCwsA2Y4OA5xQkImdkhIRHhKSll0R0dibUBAWWI2
|
||||
NkNUKCgoOhISDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMhkZB0km
|
||||
Jh5LJiYsRSEhITATFAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAD/+H////8AAP/gH////wAA/8Af////
|
||||
AAD/gA////8AAP+AD////wAA/wAP////AAD/AA////8AAP4AB////wAA/gAH////AAD8AAf///8AAPwA
|
||||
B////wAA/AAH////AAD8AAf///8AAPgAB////wAA+AAH//4HAAD4AAP/8AEAAPgAAf/AAQAA8AAA/wAA
|
||||
AADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAEAAPAAAAAAAQAA8AAAAAADAADwAAAAAAcAAPAA
|
||||
AAAADwAA+AAAAAAfAAD4AAAAAD8AAPwAAAAAfwAA/gAAAAD/AAD/gAAAA/8AAP/gAAAH/wAAgAAAAB//
|
||||
AAAAAAAAf/8AAAAD4AP//wAAgB/8H///AAD///////8AAP///////wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAYAAAAZAAAAGQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAARCQkYOh8fb0ooKK80HByiCQUFTAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAIhERFmA2Np2ITUz3lVNT/4dLS/5IKCi9AAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAANjODiBllhY+61kZP+vY2P/pV5e/3xHRvEhEhJfAAAAAgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAASSgoN41VVeS6bW3/xW9w/8dwcf+9bG3/klZW/jogIIEAAAAGAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ1RkWcs2xs/8dxcv/HcHH/x3Bx/8Zwcf+iYWH/SSkpmAAA
|
||||
AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUC0tMZtgX+fGcnP/x3Bx/8dwcf/HcHH/x3Fy/61q
|
||||
av9UMTGqAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxRER1tm9v/8hxcv/HcHH/x3Bx/8dw
|
||||
cf/HcnP/tnRz/185OboAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAACIxXV7TEdHT/yHJz/8l1
|
||||
dv/Kd3j/ynd4/8p4eP/Bf37/bURDywAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNKysjo2Zm4Mt4
|
||||
ef/NfH3/z4GC/9GFhf/RhYb/0YWF/82Mi/9+UVHeCAICOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAAAACwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAGc+
|
||||
Pkm1c3P30IGC/9OJiv/XkZL/2ZaW/9mWl//YlJX/2JmY/5hnZfMeEBBrAAAABwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA0FAgItHhAQWzAbG4IqFxeHDQcHWwAAABkAAAAAAAAAAAAA
|
||||
AAAAAAAAek1MdMN/f//VjI3/2piZ/9+io//hqKn/4qmp/+Clpf/jpqT/wImH/04xMLwAAAA6AAAABQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABEbDg5GRygokW5CQs+MVlbxnGJh/JdfXvxnPz7hHA8PbgAA
|
||||
AAwAAAAAAAAAAAAAAACMW1qbz4qK/9qXl//gpqb/5rKz/+q6u//rvLz/6La2/+qxr//epKL/j1lZ+DUc
|
||||
HLACAQFPAAAAHQAAAA8AAAAPAAAAEwAAACIbDg5MVDExnYZUU+SpbWz+uXl4/7x+fP/AgoD/xoeF/72A
|
||||
f/9fOzu1AAAAHAAAAAAAAAAAAAAABJhkZK/VkZH/3Z+g/+axsf/twMD/8svL//LNzf/vxcX/8Lq4/+6z
|
||||
sf+1dHP/j1VU+144N9g7IiKqMhwclDcfH5RGKSmiYTw7v4tZWOiydXT+woOC/8aKiP/Ol5X/2aWj/9ui
|
||||
of/cnpz/2pyb/35TUrgAAAAVAAAAAAAAAAAAAAAFmmVkstaTk//hpaX/7Lm6//TLy//419f/+NnZ//TP
|
||||
z//1wb//9Lq3/8aGhP+1dHP/s3Rz/6xwb/+pb27+rnNy/7Z7ev/BhIL/yY2L/8+WlP/apqT/5be2/+vB
|
||||
v//rvrz/6bKw/+uvrf/Um5n/bUVEgAAAAAMAAAAAAAAAAAAAAAOTXV2q1ZGR/9CYmP+dfX7/o4yM/9e8
|
||||
vP/z0tL/zLOz/+u8u//5v7z/1peV/8uLif/Ki4r/yoyL/86Ukv/TnJv/2qSi/+Gtq//nuLb/7cPB//DJ
|
||||
x//xxsT/8b+9//G6t//zubf/77az/6d1dM89Hx8lAAAAAAAAAAAAAAAAAAAAAIJOTojNiIn/jGlp/01O
|
||||
Tv9UVlb/dnNz/7uhof+Pfn7/xJ+e//zCv//lqKb/3J2b/+Chnv/hpaT/7Ly5/+vHxv/MxMn/0MjN//LK
|
||||
yf/1x8X/9sLA//a/vP/3vrv/+L+8//S7uP+5hoXhYTo5RwAAAAAAAAAAAAAAAAAAAAAAAAAAaTs7RrVz
|
||||
dPKmfn7/cXJx/4SGhv97fX3/b2Zm/516ev+7kJD/+sG+//C2s//lqqr/rpbA/3aB2/+ql83/tMHK/2jc
|
||||
9P9OzOz/2r3B//q/vP/3vrv/9ry6//a8uf/ss7D/tYGA32c+Pk0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAvEhIHg01Njbp9fvrCn5//nI+P/4R7ev+fgID/2Jyd/9ybnP/ytrT/+b+8/+ewtf+Mld3/ZI36/5eI
|
||||
zv/Ttrn/sNLc/6/Czv/stLT/8re0/++0sf/tsq//2qCe/6Rxb8phODg+AAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABCIB8MeUZGbqRpata8gYH8x4mJ/9eTk//YkpP/04qL/+Cbmv/5wL3/9726/+Sw
|
||||
t//Zrrn/56qY/+2smf/lr6n/nLWJ/4Gtdf/Pppn/3qGf/7yEg/KJWViYTyoqIAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQh0dGXJAQGOXXl7NtnR1/8V7fP/MfH3/znt8/+il
|
||||
o//0urj/7LCu/+Whg//rq13/35VX/9Kek/9yvXz/ZbNv/6iCdfqYY2O/aj4+TCUJCgcAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAACcamsBjFRVB4FERAh9PT0JjU1ND6VnZx+/hINF0JqZiNOjoty0iIf2hFBQw5lX
|
||||
V8+wY2P4xXR0/+aioP/oq6j/2pqT/92fif/Vlor/yYqJ/7N8efiVZmPGdERFYkEfHxIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALiFhgXFkJEdx5CQSMqSknbNlZWbz5uaws2cnOXBlJPnqH18r4dc
|
||||
XFFULy8OSCUlFm07O0+FSUmeoV1d3sF9fPrGhoX/snZ295xkZNiFUlKbbD4+T0UdHxIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc0JDA5FgYRKdbm46onR0Zp9ycnuWampzhFlZVmY6
|
||||
OikvDAwHAAAAAAAAAAAAAAAAAAAAAB0ODgRULCwhbjo7UXhERGVrPDxHTCYmGxAAAQMAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP//////////////////////D////gf///wH///4A///+AP///AD///wA///8AP//+AD
|
||||
///gA//D4AH+AeAA+ADgAAAAwAAAAMAAAADAAAAB4AAAA+AAAAfgAAAP8AAAH/wAAD8AAAD/AAAD/wB4
|
||||
D//H////////////////////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABMAAAAtAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgIO1cwMM1qOjrsHhAQmwAA
|
||||
ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
136
BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCNonSyncSettings.Designer.cs
generated
Normal file
136
BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCNonSyncSettings.Designer.cs
generated
Normal file
|
@ -0,0 +1,136 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class AmstradCPCNonSyncSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AmstradCPCNonSyncSettings));
|
||||
this.OkBtn = new System.Windows.Forms.Button();
|
||||
this.CancelBtn = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.lblOSDVerbinfo = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.osdMessageVerbositycomboBox1 = new System.Windows.Forms.ComboBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// OkBtn
|
||||
//
|
||||
this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.OkBtn.Location = new System.Drawing.Point(247, 121);
|
||||
this.OkBtn.Name = "OkBtn";
|
||||
this.OkBtn.Size = new System.Drawing.Size(60, 23);
|
||||
this.OkBtn.TabIndex = 3;
|
||||
this.OkBtn.Text = "&OK";
|
||||
this.OkBtn.UseVisualStyleBackColor = true;
|
||||
this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click);
|
||||
//
|
||||
// CancelBtn
|
||||
//
|
||||
this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.CancelBtn.Location = new System.Drawing.Point(313, 121);
|
||||
this.CancelBtn.Name = "CancelBtn";
|
||||
this.CancelBtn.Size = new System.Drawing.Size(60, 23);
|
||||
this.CancelBtn.TabIndex = 4;
|
||||
this.CancelBtn.Text = "&Cancel";
|
||||
this.CancelBtn.UseVisualStyleBackColor = true;
|
||||
this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 14);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(185, 13);
|
||||
this.label1.TabIndex = 17;
|
||||
this.label1.Text = "ZX Spectrum Misc Non-Sync Settings";
|
||||
//
|
||||
// lblOSDVerbinfo
|
||||
//
|
||||
this.lblOSDVerbinfo.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblOSDVerbinfo.Location = new System.Drawing.Point(175, 60);
|
||||
this.lblOSDVerbinfo.Name = "lblOSDVerbinfo";
|
||||
this.lblOSDVerbinfo.Size = new System.Drawing.Size(196, 53);
|
||||
this.lblOSDVerbinfo.TabIndex = 28;
|
||||
this.lblOSDVerbinfo.Text = "null";
|
||||
this.lblOSDVerbinfo.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(12, 60);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(125, 13);
|
||||
this.label4.TabIndex = 27;
|
||||
this.label4.Text = "OSD Message Verbosity:";
|
||||
//
|
||||
// osdMessageVerbositycomboBox1
|
||||
//
|
||||
this.osdMessageVerbositycomboBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.osdMessageVerbositycomboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.osdMessageVerbositycomboBox1.FormattingEnabled = true;
|
||||
this.osdMessageVerbositycomboBox1.Location = new System.Drawing.Point(12, 76);
|
||||
this.osdMessageVerbositycomboBox1.Name = "osdMessageVerbositycomboBox1";
|
||||
this.osdMessageVerbositycomboBox1.Size = new System.Drawing.Size(157, 21);
|
||||
this.osdMessageVerbositycomboBox1.TabIndex = 26;
|
||||
this.osdMessageVerbositycomboBox1.SelectionChangeCommitted += new System.EventHandler(this.OSDComboBox_SelectionChangeCommitted);
|
||||
//
|
||||
// AmstradCPCNonSyncSettings
|
||||
//
|
||||
this.AcceptButton = this.OkBtn;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.CancelBtn;
|
||||
this.ClientSize = new System.Drawing.Size(385, 156);
|
||||
this.Controls.Add(this.lblOSDVerbinfo);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.osdMessageVerbositycomboBox1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.CancelBtn);
|
||||
this.Controls.Add(this.OkBtn);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "AmstradCPCNonSyncSettings";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Other Non-Sync Settings";
|
||||
this.Load += new System.EventHandler(this.IntvControllerSettings_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button OkBtn;
|
||||
private System.Windows.Forms.Button CancelBtn;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label lblOSDVerbinfo;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.ComboBox osdMessageVerbositycomboBox1;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
using BizHawk.Emulation.Cores.Computers.AmstradCPC;
|
||||
using System.Text;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class AmstradCPCNonSyncSettings : Form
|
||||
{
|
||||
private AmstradCPC.AmstradCPCSettings _settings;
|
||||
|
||||
public AmstradCPCNonSyncSettings()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void IntvControllerSettings_Load(object sender, EventArgs e)
|
||||
{
|
||||
_settings = ((AmstradCPC)Global.Emulator).GetSettings().Clone();
|
||||
|
||||
|
||||
|
||||
// OSD Message Verbosity
|
||||
var osdTypes = Enum.GetNames(typeof(AmstradCPC.OSDVerbosity));
|
||||
foreach (var val in osdTypes)
|
||||
{
|
||||
osdMessageVerbositycomboBox1.Items.Add(val);
|
||||
}
|
||||
osdMessageVerbositycomboBox1.SelectedItem = _settings.OSDMessageVerbosity.ToString();
|
||||
UpdateOSDNotes((AmstradCPC.OSDVerbosity)Enum.Parse(typeof(AmstradCPC.OSDVerbosity), osdMessageVerbositycomboBox1.SelectedItem.ToString()));
|
||||
}
|
||||
|
||||
private void OkBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
bool changed =
|
||||
_settings.OSDMessageVerbosity.ToString() != osdMessageVerbositycomboBox1.SelectedItem.ToString();
|
||||
|
||||
if (changed)
|
||||
{
|
||||
_settings.OSDMessageVerbosity = (AmstradCPC.OSDVerbosity)Enum.Parse(typeof(AmstradCPC.OSDVerbosity), osdMessageVerbositycomboBox1.SelectedItem.ToString());
|
||||
|
||||
GlobalWin.MainForm.PutCoreSettings(_settings);
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void CancelBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
GlobalWin.OSD.AddMessage("Misc settings aborted");
|
||||
DialogResult = DialogResult.Cancel;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void UpdateOSDNotes(AmstradCPC.OSDVerbosity type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case AmstradCPC.OSDVerbosity.Full:
|
||||
lblOSDVerbinfo.Text = "Show all OSD messages";
|
||||
break;
|
||||
case AmstradCPC.OSDVerbosity.Medium:
|
||||
lblOSDVerbinfo.Text = "Only show machine/device generated messages";
|
||||
break;
|
||||
case AmstradCPC.OSDVerbosity.None:
|
||||
lblOSDVerbinfo.Text = "No core-driven OSD messages";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void OSDComboBox_SelectionChangeCommitted(object sender, EventArgs e)
|
||||
{
|
||||
ComboBox cb = sender as ComboBox;
|
||||
UpdateOSDNotes((AmstradCPC.OSDVerbosity)Enum.Parse(typeof(AmstradCPC.OSDVerbosity), cb.SelectedItem.ToString()));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,624 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAwAMDAQAAAABABoBgAAxgAAACAgEAAAAAQA6AIAAC4HAAAYGBAAAAAEAOgBAAAWCgAAEBAQAAAA
|
||||
BAAoAQAA/gsAADAwAAAAAAgAqA4AACYNAAAgIAAAAAAIAKgIAADOGwAAGBgAAAAACADIBgAAdiQAABAQ
|
||||
AAAAAAgAaAUAAD4rAAAwMAAAAAAgAKglAACmMAAAICAAAAAAIACoEAAATlYAABgYAAAAACAAiAkAAPZm
|
||||
AAAQEAAAAAAgAGgEAAB+cAAAKAAAADAAAABgAAAAAQAEAAAAAACABAAAAAAAAAAAAAAQAAAAEAAAAAAA
|
||||
AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP//
|
||||
/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAHR3AAAAAAAAAAAAAAAAAAAAAAAAAAAAdHdEcAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAHd0d3QAAAAAAAAAAAAAAAAAAAAAAAAAAEd8d3UAAAAAAAAAAAAAAAAAAAAAAAAAB3yHfHZw
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAd3fIyHVwAAAAAAAAAAAAAAAAAAAAAAAAfHh3jIxwAAAAAAAAAAAAAAAA
|
||||
AAAAAAAHd8jIyHdgAAAAAAAAAAAAAAAAAAAAAAAHd4yHfIdAAAAAAAAAAAAAAAAAAAAAAAAHyMjIyMhQ
|
||||
AAAAAAAAAAAAAAAAAAAAAAB3d3eMh4dgAAAAAAAAAAAAAAAAAAAAAAB8jIyIfIdQAAAAAAAAAAAAAAAA
|
||||
AAAAAAB3h4jIiMh3AAAAAAAAAAAAAAAAAAAAAAB8jIeHeIjHAAAAAAAAAAAAAAAAAAAAAAeIiHh4eMiE
|
||||
AAAAAAAAAAAAB0dHcAAAAAd8h4eIiIiHcAAAAAAAAAB0d3d3RwAAAAeIeIiIiIh3RwAAAAAAAHR3d8h3
|
||||
dAAAAAfIh4iIiHiIx0cAAAAAdHh3eIeHhwAAAAeHiIiIiIiId3R3dHR0eHd4h4eHhAAAAAd4eIiIiIiH
|
||||
x3d2d3eId4iIiIiIhwAAAAd4eIiI+IiIh3d3eHh3iIiIiIeHwAAAAAfIjHeIiIiIyIeHh4iIiIiIiIiI
|
||||
cAAAAAeIQ0R3h3iIiMiIiIiIiIiIiIiEAAAAAAfIR3d3d0iIiIh4iIeIiIiIiHhAAAAAAAB4d3d3SHiI
|
||||
h4fTiIi3iIiIeIwAAAAAAAB3h4d3eIeIiHiJiIuIiIh4jHAAAAAAAAAHyId3h3h4iIh4iIiIiIiHeAAA
|
||||
AAAAAAAAB8iMiMjIiIiIh4h3aMjHAAAAAAAAAAAAAAdYyIeIiIiMjId6d4eAAAAAAAAAAAAAAAAHdsjH
|
||||
eIeH6MiId3AAAAAAAAAAAAAAAIiIh4V8jIh4eIfHcAAAAAAAAAAAAACIiIh3AAAHd3h3fHcAAAAAAAAA
|
||||
AAAAAAiIjHgAAAAAAHx8eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A
|
||||
H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP////
|
||||
AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA
|
||||
AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/
|
||||
AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAQAAAAAAAAC
|
||||
AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
|
||||
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAAA
|
||||
AAd0dAAAAAAAAAAAAAAAAAB3x3cAAAAAAAAAAAAAAAAAd3fHcAAAAAAAAAAAAAAAB3yMh3AAAAAAAAAA
|
||||
AAAAAAfIeMdwAAAAAAAAAAAAAAAHjIyHQAAAAAAAAAAAAAAAfId4yHAAAAAAAAAAAAAAAHjIyIdQAAAA
|
||||
AAAAAAAAAAB3iId4YAAAAAAAAAdwAAAAjIiIiIUAAAAAAHd3dAAAB4iIiHh8cAAAAHd3x4dwAAd4iIiI
|
||||
h3Z3d3R3yIh4cAAHh4iIiIfHd3d4iIiIh3AAB3jHiIiIiHeHiIiIiIwAAAh3dXh4iMiIiIiIiIhwAAAA
|
||||
yGd0d4iIeIi4iIiMAAAAAIeHd4iIh32IiIiIcAAAAAAAd4jIyIiIiHeHyAAAAAAAAAB3h4iIh8h3dwAA
|
||||
AAAAAAAIh8fIh4eIaAAAAAAAAACIiHAAB8jIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////
|
||||
////////////////////n////g////wP///8B///+Af///gH///4B///8Af///AH///wB//n8AP/A+AB
|
||||
/AHgAAAB4AAAAeAAAAPgAAAH8AAAD/AAAB/8AAA//wAA//4AA//weA//////////////////////////
|
||||
//8oAAAAGAAAADAAAAABAAQAAAAAACABAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAA
|
||||
AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRwAAAAAAAAAAAAB3dAAAAAAAAAAAAA
|
||||
d8dwAAAAAAAAAAAAfId3AAAAAAAAAAAHeMjHAAAAAAAAAAAHyHh3AAAAAAAAAAAHh3eEAAAAAAAAAAAI
|
||||
yIiHAAAAAHd2cAAIiIiIQAAAd3d4UACHiIiId3d3eHiIcACHh4iIyHeHiIiIcAAIR3d4iIiIiIiMAAAH
|
||||
d3eIh3iIiIhwAAAAeMh4iIiHiMAAAAAAAHfIiMh4aAAAAAAAiIgHyIfIAAAAAAAIgAAAAIAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD8f/8A+H//APB/
|
||||
/wDwP/8A4D//AOA//wDgP/8A4D/BAOAfAQDAAAEAwAABAOAAAwDgAAcA8AAfAPwAPwDwgP8A5/f/AP//
|
||||
/wD///8A////ACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACA
|
||||
AAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAd1AAAAAAAAB8cAAAAAAAB4eAAAAAAAAHyMgAAAAAAAiIhwAAAHcACI
|
||||
iHcAd3hwAIz4jIeIiIAAd3eIiIiIAACHeIiIiHAAAACMeMh4AAAAiAAIgAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAD//wAA//8AAP//AADj/wAA4/8AAMP/AADB/wAAwfkAAMDBAADAAQAAwAMAAMAHAADwDwAAzn8AAP//
|
||||
AAD//wAAKAAAADAAAABgAAAAAQAIAAAAAAAACQAAAAAAAAAAAAAAAQAAAAEAAAAAAAA9OzsAZD8/AGg8
|
||||
PABtPj4AQkNDAEZIRwBWQkIAV0REAF5AQABbRkYAVklJAFxPTwBTU1MAXFJSAF5ZWQBkQEAAYUREAGZF
|
||||
RQBqQkEAYEtLAGNPTwBwQUEAfUZGAHJKSgB2SUkAfU9PAGBRUQBgVFQAZlZWAGZYWABqWVkAclZWAHpU
|
||||
VAB9W1oAbmJiAGtoaABtaWkAcWdnAHdnZwB8Y2MAe2pqAHJxcQB+dHQAd3l5AHl6egCGT08AiU9PAIFP
|
||||
UACGU1MAjVFRAIlWVgCMV1cAg1xbAIxaWQCQUlIAlVJSAJFXVgCXVVUAmVVVAJZaWQCSXV0AlV9eAJpZ
|
||||
WgCeW1sAml5eAKBZWgCgXFwAql9fAIRmZQCIZWQAhWtrAI5ragCTYmEAnGBhAJ9kYwCaZmYAk25uAJ1s
|
||||
awCFdHQAiXd3AIt+fgCWd3cAmHR0AJV5eQCbfHwAo2JhAKZhYQChZWUApGVkAKplZACsZGQAqmhnAKZr
|
||||
agCnbGsAqmloAKlubQCsbW0AtGZnALhsbACxb3AAv29wAKVxcACrc3IAr35+ALN0cwC5c3MAvXBxALR4
|
||||
dgC1fHsAunt6AMNtbgDGb3AAw3FyAMZwcQDGdXUAyHR1AMp3eADBeXkAxnt7AMB/fgDLensANLBSAEWf
|
||||
TgBBtFwAPMdnADHkdgDciiIAvoF/AISrdwDln0sA35lhAN2XfADgmmEA8LdlAO61cAArWPIALWT+AEh5
|
||||
+gDOf4AAfoCAAHiA1ABZv9wAZrnUAGK+2ABxnv4Ad6P/ADPX/QBw0OcAW+D7AIKEgwCPgoIAjI2NAJuC
|
||||
ggCUiIgAmYqKAJGSkgCjhIQAqoKCAKKLiwC+hIMAsoqKALaSgQCum5sAsZubALqqlQCdgr4Ar6ytALGh
|
||||
oAC6pKQAwoSDAMyBggDGiIYAyYiHAMWMigDMjIoA0ISFANKHiADUjIwA2Y6NAMCUjQDIk44A0JCPANaP
|
||||
kADHlZQAzpSSAMScmwDUkpIA2ZSVANWYlgDampcA2ZeYANWcnADam5sA4p2cAMChjwDeoJ4A5aCFAOaj
|
||||
jQDlpJoA2p6hAMOkowDOoaEAy62tANegoADdoqEA2aGpANGsrwDdq6kAwbG4ANGysQDdtLQA2ri3AOGk
|
||||
owDjqKYA66ylAOGnqADjq6oA6a2rAOOwrwDssK4A5K+wAOaztADttLIA57i2AO24tgDmurgA6rq6APC1
|
||||
swDyuLYA9Ly5APi+uwD1wL0A+cC9AKKMwACkk8QAqprMALSayACptsEAlaDkAOy/wACRxtQAgOv9AJnr
|
||||
9wDEwsoA5sbGAOzCwgDuyMcA7MzMAPPEwgDxy8oA9dPTAPja2gAAAAAAAAAAAP///wAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAoIJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAACYXODs4BCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
KTNDQ0M7OAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALllbYmJZQBcAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYYWNwcHBwWy8mAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A
|
||||
H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP////
|
||||
AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA
|
||||
AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/
|
||||
AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAE
|
||||
AAAAAAAAAAAAAAABAAAAAQAAAAAAAFFNTQBRUlIAU1RUAGJHRwBiT08Aa0lIAGJTUwBrVlYAYllZAGZc
|
||||
XABpWloAb1xbAHNTUwB7V1YAc1hXAHFbWwBkZWUAaWFhAG5kZABpamkAcGFhAHlubgB2cHAAf3V1AH55
|
||||
eQB8fX0AgUpKAI1PTwCLWFcAhlhYAI9ZWQCKXFsAm1ZWAJJZWQCWWVgAmlpbAJtcWwCiXFwAl2BfAIBg
|
||||
YACAZ2YAgG9vAI9oaACWZWQAmGBhAJ5kZACcaWoAmm9vAIV0dACNcHAAiXZ2AIB8fACac3IAm3V0AJ51
|
||||
dQCZfHwAnHx8AKNmZgCnZmYAqmJiAK5jYwCvb24AtWVmALBtbgC5bW0AvmxtAKx+fQCxcnIAtHBwALZz
|
||||
dACydXQAtnd2ALlwcAC5dnYAt3p5ALh5eAC8fHsAun18ALx+fQDGb3AAxnBxAMdzdADAd3YAyHJzAMlz
|
||||
dADJdXYAynd4AMd/fwDMe3wAzXx9AHunbwBhvHIAYsN4ANuLOwC2hn4A4Zt5APC3ZABte9sAX47+AHWM
|
||||
5QAl0foAY+P8AIeDgwCFhoYAioSEAJOIiACWi4sAmpKRAKGCgQCmhYUAqYGBAKuDhACniooApYyMAKiO
|
||||
jQCyhYMAvoWEALeNjQCrj5AAr5eXALSVlAC9lJMAmbCEAK6RugDBgYAAwoSCAMWDhADChoQAxYeFAM6A
|
||||
gQDFiIYAxoqIAMqIiQDMi4oAy4yKAMiPjQDPj44A0ISFANKJigDUi4wA04+NANWNjgDKkY8A0JCOANud
|
||||
iQDWj5AAzJSTAM2XlgDGm5oA1pGSANOUkgDVl5EA1pOUANiVlgDYmJUA2ZeYANKenADbmpsA3pmYANuc
|
||||
mgDbn5wA1aacAN6gngDqqZoA3Z+gAMyjowDCra0AxqysAMqpqQDboaAA3qKiAN6logDbp6UA3aWkANer
|
||||
qgDWsbMA0rW0ANe0tADfs7IA4aSiAOGlpQDkp6UA46imAOWopgDsraIA6qimAOGoqADhrqwA6a2rAOqv
|
||||
rADpsK4A7LGuAOGzswDlsbEA7bKxAO+1sgDotrYA5rm3AO+4twDot7sA6bq5AOu9uwDrv70A8bazAPG2
|
||||
tADxuLUA9Lm2APC9uwD2vboA9L+9APi+uwD4v7wA8sC+APXAvgD5wL0AkILJAKqXzACsu8cAqr/LALLV
|
||||
3QDawMIA48XFAOvDwQDswMAA7cTDAO/ExQDgxsgA8cbEAPTGxADwyskA9MvJAPLNzQD21dYA+NjZAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAMEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqHCEcBQAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAayU9PSYbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdQlBSQiJpAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAM0pSUlJQPRcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnUlJSUlJGFQAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAFJSUlJSUkoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzUlJSWVJZfxAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XWYqKioqGDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASoqMkpqa
|
||||
mqAsAAAAAAAAAAAAAAAAAABoNAAAAAAAAACMjJyuvLy2toYHAAAAAAAAAAAAABcOIDouBgAAAAAAc4yc
|
||||
tsHKysPAriIKAAAAAAAAABYgRk1LTX+DEAAAAABukqXB4ejo4dHPQCIEChcXEwggTXV/k66unKMpAAAA
|
||||
AG6Srsro6ero0dN/Rk1NRk2Dg4STrsbh4cHAt2sAAAAAbpKuOXPe6ajW15KGg4OGk528yuHo5eHPz882
|
||||
AAAAAAB4jCkDAxSoMabXt5yjt8ro3ePo5dbT09HTdAAAAAAAAABGcBFoGgFwdtfDwHxi2dpmZcrX09HP
|
||||
z0MAAAAAAAAAAHh/qWwaOa6cz9PNZGPYsdzbzc3DwLk2AAAAAAAAAAAAAAAvhpKakoyg19HNyKS5wHtb
|
||||
orZ/cwAAAAAAAAAAAAAAAAAANkaKWVm5zb1gYV6cXVxfNgAAAAAAAAAAAAAAAAAAALGvlTIuP1K5tqCR
|
||||
l4xfLwAAAAAAAAAAAAAAAAAAsbPBenkAAAAAcCVYjE0scwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////+f///+D////A////wH
|
||||
///4B///+Af///gH///wB///8Af///AH/+fwA/8D4AH8AeAAAAHgAAAB4AAAA+AAAAfwAAAP8AAAH/wA
|
||||
AD//AAD//gAD//B4D////////////////////////////ygAAAAYAAAAMAAAAAEACAAAAAAAQAIAAAAA
|
||||
AAAAAAAAAAEAAAABAAAAAAAAWlJSAHBJSQB1SEgAe1dXAHdYWAB5WlkAel1dAGBiYgB1bGwAfWtrAHh2
|
||||
dgB9fn4Ag01NAIRXVwCIV1cAhV9eAItbWgCgX14ApV1dAJhgXwCNYGAAnWtqAJhtbQCCdnYAh3x8AI15
|
||||
eACeensAqGBgAKhoZwCga2oArGpqALNqagCzb28AtG1tALltbQCxb3AApnVzAKlzcwCqdHMApnp6AKd+
|
||||
fgCpensAq3x7ALZ3dgC8dHQAvH59AMZvcADGcHEAxXN0AMhycwDJdncAynh5AMx5egDNfn8Ajo1wAOek
|
||||
VgDGgH8A4p53AEZ2+gB8u4AAd8PaAIuEhACOh4cAjo6OAJ+DggCejo4Ao4SEAKSIiACsi4sAqo2MAK6P
|
||||
jgC+gYAAvoaGAL+KiACskJAAtJeXALWenQC5np4At6iOAKmyjgC9nroAwYSDAMaGhADOhoYAxomHAMiK
|
||||
iQDJjYwA0oeIANOOjwDUjY0A2ZiPANaPkADGkZEAx5eXAMySkADGnZwA1ZOSANeTlADWl5YA2JSVANGZ
|
||||
mADan50A3J6dAOCcmwDVoJ8A7K2fAMOtrQDXo6IA3aCgAN+kpADVq6oA3ay3AMu0tADPtrYA3L+/AOCi
|
||||
oQDhpqUA5KelAOinpgDlq6gA46usAOOvrQDqrqwA7LGuAOayswDjtrQA5re1AOqysQDts7EA57y6AO+8
|
||||
ugDrvL0A8LOwAPC1sgDwtrQA87q3APS6twD2vboA8b69APi/vAD2wb4A+cC9AJmTzwDHqMMAu8PMAIHf
|
||||
8QDByNAA7cLCAO3FwwDvxsQA5cjIAOzOzgDwxcQA9cbEAPPP0AD10tIAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
BQMJAAAAAAAAAAAAAAAAAAAAAAAAAAAPHBMNAAAAAAAAAAAAAAAAAAAAAAAAABojLy8TAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAB0wMDAiPgAAAAAAAAAAAAAAAAAAAAAAQjAwMDAtGAAAAAAAAAAAAAAAAAAAAAAAFzIy
|
||||
NTU5CgAAAAAAAAAAAAAAAAAAAAAAIjZYWFxcBwAAAAAAAAAAAAAAAAAAAAAANlxtdW11JQAAAAAAAAAA
|
||||
PgcRDgkAAAAAXG1/lISAZgMAAAAAABkVLC5SVhcAAABNY3WWnJuLfB8UBAcQHkhWaX91dSsAAABNY2BM
|
||||
mJeCiVJSVl9laX+WloSJgEIAAAAAXAEIC0tGjnR0dJaRk5qNjIyJQwAAAAAAJkNADBtdjIaPO1GSPYuJ
|
||||
hnVEAAAAAAAAAClISWRcd4xwkGp8UE90VwAAAAAAAAAAAAAAKSQ1NYZ7OjhbPDdGAAAAAAAAAAAAAHNv
|
||||
YGsAKyJoXFYmRwAAAAAAAAAAAAAAcnIAAAAAAAAATgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP//
|
||||
/wD///8A////APx//wD4f/8A8H//APA//wDgP/8A4D//AOA//wDgP8EA4B8BAMAAAQDAAAEA4AADAOAA
|
||||
BwDwAB8A/AA/APCA/wDn9/8A////AP///wD///8AKAAAABAAAAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAA
|
||||
AAAAAQAAAAEAAAAAAABjZGQAdmRjAHtpaQB/eHgAgU9PAKBaWgCFbm0AlWtqAKptbgCwZ2cAsGhoAKxw
|
||||
cACteHkAvnJyAMZvcADGcHEAy3l5AMx9fgCFmXQAwIB/ANeUfQDhoX8AlIqJAJWMjACYiIgAoIaGAK2K
|
||||
igCxh4cAvoGAALKKigC4iYgAuJWVAL2cnACss50AuqKhAL+mpgDLgoIAxImHAMeNjADLkI8AxpWTANCS
|
||||
kQDYlZUA1J6dANqZmgDdnp4A1J+oAMaiogDOr68AzLKyANi5uADhpaIA4qypAOWtqADrrqsA4bKwAOay
|
||||
sgDtuLYA57++AOy4uADxtLIA8be0APa9ugDswL4A9sG+ALCcxwC5ncIA06zBALnH0QC2ytQA7sPDAPLS
|
||||
0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAZBgUAAAAAAAAAAAAAAAAACw8KAAAAAAAAAAAAAAAAGhAQDgAAAAAAAAAAAAAAAAkRESUYAAAA
|
||||
AAAAAAAAAAAlKy4uBwAAAAAAAAcDAAAAKzlHPCYCAAAYCB0oKgAAAC0wSDs0FB0nLDlAOiwAAAANAQQb
|
||||
Pi9DRkVBPzUAAAAAJB4cKz5EQjMiNSkAAAAAAAAAHwwRNxYVEyQAAAAAAAAxMgAAACEgAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA4/8AAOP/AADD/wAAwf8AAMH5
|
||||
AADAwQAAwAEAAMADAADABwAA8A8AAM5/AAD//wAA//8AACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAkAAAAJAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAUAAAAOAEBAVUAAABUAAAANQAAABAAAAABAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAkFBSUvGRl5TCkpwlYuLtxDJCTQFw0NmQAA
|
||||
AEkAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGAwMKE8rK6V6RET2klJR/5ZS
|
||||
U/+OT0//ZDc38B0QEJoAAAAyAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYDAwYVzAwoopP
|
||||
T/ygXVz/oFtb/55ZWf+bWFf/k1NT/1UvL9wGAwNcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AARNKipxhk5O+adkY/+uZWX/tWdo/7VmZ/+qYWH/nltb/3hERPcfERGCAAAAFgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADEZGS1zQ0LXqGdm/7ptbf/Fb3D/x3Bx/8hwcf/BbW7/q2Vl/4hPT/82HR2gAAAAIAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAB1gxMYyYXl3/vXFx/8Zwcf/HcHH/x3Bx/8dwcf/HcHH/uG1t/5NY
|
||||
V/9EJia2AAAAKQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPB8fNH1MS+K4cnH/x3Fy/8dwcf/HcHH/x3Bx/8dw
|
||||
cf/HcHH/wHBx/51gX/9PLCzGAAAAMwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXjU1h6NnZv/Fc3T/x3Bx/8dw
|
||||
cf/HcHH/x3Bx/8dwcf/HcHH/w3Jz/6ZoZ/9ZMzPTAQAAPQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyFxccektK0b12
|
||||
dv/HcHH/x3Bx/8dwcf/HcHH/x3Bx/8dwcf/HcHH/xXR0/69wb/9jOjneBwMDSQAAAAUAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABNKSlNlmBf9sh3d//HcHH/x3Bx/8dwcf/HcHH/x3Bx/8dwcf/HcHH/xnd3/7Z4d/9sQUDnDgcHVQAA
|
||||
AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
ov/grq3/4a6t/96lo//eoJ7/36Kg/+Cjof+IWVjnGwwMQwAAAAIAAAAAAAAAAAAAAAAAAAAARyQkL6Br
|
||||
auzZk5P/25qb/+GnqP/ntLT/7cDA//LLy//209T/+NjY//fX1//00ND/8cbG//W9u//4vrz/46ak/7d0
|
||||
c/+vb27/s3Jy/7d2df+ucXD/pWpp/6Npaf+nbWz/sHVz/7p9fP/EhYT/yImI/8WIhv/DiIb/ypGP/9eg
|
||||
n//hr63/57q5/+rCwP/rwsD/6bq4/+evrf/nq6n/6q6r/9qgnv9wRkbDBwAAHgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAASCQkLZ1nZuvYkpP/25uc/+Opqv/qtrf/7cHB//TOzv/52Nj/+tzc//na2v/xz9D/8MfH//fA
|
||||
vv/6wb7/6a6r/8OBgP/DgoD/vX58/7h7ev+8fn3/woOC/8aHhv/HiYj/xoqJ/8aLif/Ijoz/zZST/9eg
|
||||
nv/hrav/6Lm3/+zCwf/uyMf/78nH/+/Dwf/uvLr/7ba0/+60sf/vtLL/8ri1/7J+fflMKSltAAAABAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAQyEhI5JcXOPWj5D/3Juc/8qVlf+BZmb/bl5e/4l4eP/AqKj/8tPT//LO
|
||||
zv+5p6b/w6qq//fBv//7wr//8LWy/86Ojf/Ojoz/0ZGP/9GSkP/OkY//zpOR/9GamP/VoJ//2qel/+Gv
|
||||
rf/nt7X/6727/+3Dwf/wycf/8czL//LLyf/yxsT/8cC+//G7uf/yubf/87m3//S7uP/4vrv/1J6c/3JH
|
||||
RrAdCgsWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANRcXEYJNTcvPiIn/15aW/2VNTf85Ojr/Q0VF/0JF
|
||||
RP9dXFz/n5GR/+S/v/+bh4f/hXp6/+25uP/7wr//9bu4/9qcmv/Zmpj/252b/96gnf/ipKH/5q+s/+u+
|
||||
vP/vycf/8srI/+3Hxv/wysj/9c7M//TNy//0ysj/9MbE//TBv//1vrz/9r26//e9u//4vrv/+L+8//vB
|
||||
vv/hqqf/g1ZVzDwcHC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW4+Ppq/env/05OT/2ZX
|
||||
V/9rbm7/fX9//3l6ev99f3//cHJy/5F9ff+ff3//XFhY/9eop//8wr//+L+8/+Wppv/ipaP/5qil/96i
|
||||
pP/Kmaz/1qi1//LGxP/tyMf/qb3J/23E3P9kw9//vMTN//jDwP/3wb//+MC9//i/vf/5v73/+b+8//i/
|
||||
vP/3vrv/+L68/92mo/+IWlnRRSMjOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcv
|
||||
L0mbX1/y15GS/6GAgP9XV1b/iYuL/4CBgf98fX3/cnR0/1dPT/++j4//km9w/9Sfnv/6wL3/+cC9/+6z
|
||||
sP/ssK3/0Z+u/4OH1P9YffD/QGPs/7KYyv/Ct7z/Ytrz/3Ts//8s2f//cbvU//m+u//4v7z/+L67//e9
|
||||
uv/1vLn/9Lq3//O5tv/zuLX/0puZ/4RVVctGIyM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADIXFwdrPDySq2ts/diZmf/ApKT/sKur/4CBgP95enr/iYiI/49zdP/do6P/36Ch/96e
|
||||
nv/zuLX/+sK///W7uP/1ubT/qZC//2qY+/9tnf//MGT6/56FxP/esK//nMbS/57n8/9+z+T/ybG3//a6
|
||||
t//zubb/8re0//C1s//utLH/7rKw/+qvrP++iIb9dklJtkMgISoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHIyMSazw8kZ5hYvXNjI3/2aSk/7OMjP+bd3f/sIKC/9KV
|
||||
lv/cnJz/2peY/9aRkf/koqL/+sG+//nAvf/5v7z/4amw/6qZx/+aouP/qpvP/+mxtv/2urj/6rGv/+S6
|
||||
u//ptrX/466n/+Ovqf/ssK7/6q6s/+isqv/oq6n/2J2b/6JubfFoPT2NOxoaFwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBoaCFowMFd7SEjAomZm9sWC
|
||||
gv/XkZL/25SV/9iSk//Wj5D/1IyN/9KHiP/UiIj/8bOx//rCv//3vbv/9ru4//O3s//xuLX/7q6e/+ej
|
||||
hf/npIn/7bCp/+Otp/+KsX3/ULdm/1WjWv+7oYz/5KWk/9uenP+4gH79glJRzVYuLlQgCAkGAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAA8HBwQVy4uS3FBQaCPV1fjsG5v/cmAgf/ShYb/0YKD/85+f//LeXr/2I2M//e8uf/1vLn/7rOx/+2y
|
||||
sP/lpJX/5qFY/+6xXP/djS3/35h9/86gl/9SwW7/Nd90/0WxXP+vlH//wYSE/49cW+VlOTmBQR4eHAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGk7OhqIWFd8oG5u8J5qav+eX2D/tmts/8Z0df/KdHX/yXJz/92T
|
||||
k//3vLn/7LGu/+Snpf/dm5L/4Z1q/+61dP/fmmX/15WM/9eYlv/Bm43/r6uR/6uNgP+WYWDtbkBAnUwn
|
||||
JzQVAQECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiFJSBnhC
|
||||
QgpqNDQJWSUlB08dHQdfKisKfENDFJJWViinbGtRvYOCjtOcm8/pt7X157y6/7eOjfhxRUW7aTk5m4RK
|
||||
StehWlr6uGdo/8Zwcf/dkpH/8bSx/+OnpP/YmZj/1ZWT/9ealP/Vl5X/0JCP/8eIhv+zdnb/lFtc6nA/
|
||||
QKRSKio/JQwNBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AADTn6AB2qioDMuUlCHBhYU8voCAWcCBgXTEhoaLzZGQqdeensngrKvn47Sz/NOop/+yiIfyi2Bgs2k+
|
||||
PlZXKysPAAAAAUYlJRxcMTFYcj4+pYpMTeWmXF3+xnl5/9+Zl//dnJr/z46M/8KCgf+vc3L/ll9e831L
|
||||
S8hlOTl/TigoMy0REQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABzQUIDnmprDriGhifHlpZMzp6eeNCgoZ7On5+2yJqaybuPj9WnfHzVj2RkunVJ
|
||||
SYNbLy8/PRQUCgAAAAAAAAAAAAAAAAAAAAAAAAAAKRUVBU0pKSphNDRtd0BAsotNTd2ZW1vrkVlY4HtJ
|
||||
Sb5lOTmCUysrQTsbGxEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWCwsA2Y4OA5xQkImdkhIRHhKSll0R0dibUBAWWI2
|
||||
NkNUKCgoOhISDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMhkZB0km
|
||||
Jh5LJiYsRSEhITATFAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAD/+H////8AAP/gH////wAA/8Af////
|
||||
AAD/gA////8AAP+AD////wAA/wAP////AAD/AA////8AAP4AB////wAA/gAH////AAD8AAf///8AAPwA
|
||||
B////wAA/AAH////AAD8AAf///8AAPgAB////wAA+AAH//4HAAD4AAP/8AEAAPgAAf/AAQAA8AAA/wAA
|
||||
AADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAEAAPAAAAAAAQAA8AAAAAADAADwAAAAAAcAAPAA
|
||||
AAAADwAA+AAAAAAfAAD4AAAAAD8AAPwAAAAAfwAA/gAAAAD/AAD/gAAAA/8AAP/gAAAH/wAAgAAAAB//
|
||||
AAAAAAAAf/8AAAAD4AP//wAAgB/8H///AAD///////8AAP///////wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAYAAAAZAAAAGQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAARCQkYOh8fb0ooKK80HByiCQUFTAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAIhERFmA2Np2ITUz3lVNT/4dLS/5IKCi9AAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAANjODiBllhY+61kZP+vY2P/pV5e/3xHRvEhEhJfAAAAAgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAASSgoN41VVeS6bW3/xW9w/8dwcf+9bG3/klZW/jogIIEAAAAGAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ1RkWcs2xs/8dxcv/HcHH/x3Bx/8Zwcf+iYWH/SSkpmAAA
|
||||
AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUC0tMZtgX+fGcnP/x3Bx/8dwcf/HcHH/x3Fy/61q
|
||||
av9UMTGqAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxRER1tm9v/8hxcv/HcHH/x3Bx/8dw
|
||||
cf/HcnP/tnRz/185OboAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAACIxXV7TEdHT/yHJz/8l1
|
||||
dv/Kd3j/ynd4/8p4eP/Bf37/bURDywAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNKysjo2Zm4Mt4
|
||||
ef/NfH3/z4GC/9GFhf/RhYb/0YWF/82Mi/9+UVHeCAICOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAAAACwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAGc+
|
||||
Pkm1c3P30IGC/9OJiv/XkZL/2ZaW/9mWl//YlJX/2JmY/5hnZfMeEBBrAAAABwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA0FAgItHhAQWzAbG4IqFxeHDQcHWwAAABkAAAAAAAAAAAAA
|
||||
AAAAAAAAek1MdMN/f//VjI3/2piZ/9+io//hqKn/4qmp/+Clpf/jpqT/wImH/04xMLwAAAA6AAAABQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABEbDg5GRygokW5CQs+MVlbxnGJh/JdfXvxnPz7hHA8PbgAA
|
||||
AAwAAAAAAAAAAAAAAACMW1qbz4qK/9qXl//gpqb/5rKz/+q6u//rvLz/6La2/+qxr//epKL/j1lZ+DUc
|
||||
HLACAQFPAAAAHQAAAA8AAAAPAAAAEwAAACIbDg5MVDExnYZUU+SpbWz+uXl4/7x+fP/AgoD/xoeF/72A
|
||||
f/9fOzu1AAAAHAAAAAAAAAAAAAAABJhkZK/VkZH/3Z+g/+axsf/twMD/8svL//LNzf/vxcX/8Lq4/+6z
|
||||
sf+1dHP/j1VU+144N9g7IiKqMhwclDcfH5RGKSmiYTw7v4tZWOiydXT+woOC/8aKiP/Ol5X/2aWj/9ui
|
||||
of/cnpz/2pyb/35TUrgAAAAVAAAAAAAAAAAAAAAFmmVkstaTk//hpaX/7Lm6//TLy//419f/+NnZ//TP
|
||||
z//1wb//9Lq3/8aGhP+1dHP/s3Rz/6xwb/+pb27+rnNy/7Z7ev/BhIL/yY2L/8+WlP/apqT/5be2/+vB
|
||||
v//rvrz/6bKw/+uvrf/Um5n/bUVEgAAAAAMAAAAAAAAAAAAAAAOTXV2q1ZGR/9CYmP+dfX7/o4yM/9e8
|
||||
vP/z0tL/zLOz/+u8u//5v7z/1peV/8uLif/Ki4r/yoyL/86Ukv/TnJv/2qSi/+Gtq//nuLb/7cPB//DJ
|
||||
x//xxsT/8b+9//G6t//zubf/77az/6d1dM89Hx8lAAAAAAAAAAAAAAAAAAAAAIJOTojNiIn/jGlp/01O
|
||||
Tv9UVlb/dnNz/7uhof+Pfn7/xJ+e//zCv//lqKb/3J2b/+Chnv/hpaT/7Ly5/+vHxv/MxMn/0MjN//LK
|
||||
yf/1x8X/9sLA//a/vP/3vrv/+L+8//S7uP+5hoXhYTo5RwAAAAAAAAAAAAAAAAAAAAAAAAAAaTs7RrVz
|
||||
dPKmfn7/cXJx/4SGhv97fX3/b2Zm/516ev+7kJD/+sG+//C2s//lqqr/rpbA/3aB2/+ql83/tMHK/2jc
|
||||
9P9OzOz/2r3B//q/vP/3vrv/9ry6//a8uf/ss7D/tYGA32c+Pk0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAvEhIHg01Njbp9fvrCn5//nI+P/4R7ev+fgID/2Jyd/9ybnP/ytrT/+b+8/+ewtf+Mld3/ZI36/5eI
|
||||
zv/Ttrn/sNLc/6/Czv/stLT/8re0/++0sf/tsq//2qCe/6Rxb8phODg+AAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABCIB8MeUZGbqRpata8gYH8x4mJ/9eTk//YkpP/04qL/+Cbmv/5wL3/9726/+Sw
|
||||
t//Zrrn/56qY/+2smf/lr6n/nLWJ/4Gtdf/Pppn/3qGf/7yEg/KJWViYTyoqIAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQh0dGXJAQGOXXl7NtnR1/8V7fP/MfH3/znt8/+il
|
||||
o//0urj/7LCu/+Whg//rq13/35VX/9Kek/9yvXz/ZbNv/6iCdfqYY2O/aj4+TCUJCgcAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAACcamsBjFRVB4FERAh9PT0JjU1ND6VnZx+/hINF0JqZiNOjoty0iIf2hFBQw5lX
|
||||
V8+wY2P4xXR0/+aioP/oq6j/2pqT/92fif/Vlor/yYqJ/7N8efiVZmPGdERFYkEfHxIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALiFhgXFkJEdx5CQSMqSknbNlZWbz5uaws2cnOXBlJPnqH18r4dc
|
||||
XFFULy8OSCUlFm07O0+FSUmeoV1d3sF9fPrGhoX/snZ295xkZNiFUlKbbD4+T0UdHxIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc0JDA5FgYRKdbm46onR0Zp9ycnuWampzhFlZVmY6
|
||||
OikvDAwHAAAAAAAAAAAAAAAAAAAAAB0ODgRULCwhbjo7UXhERGVrPDxHTCYmGxAAAQMAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP//////////////////////D////gf///wH///4A///+AP///AD///wA///8AP//+AD
|
||||
///gA//D4AH+AeAA+ADgAAAAwAAAAMAAAADAAAAB4AAAA+AAAAfgAAAP8AAAH/wAAD8AAAD/AAAD/wB4
|
||||
D//H////////////////////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABMAAAAtAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgIO1cwMM1qOjrsHhAQmwAA
|
||||
ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,165 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class AmstradCPCPokeMemory
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AmstradCPCPokeMemory));
|
||||
this.OkBtn = new System.Windows.Forms.Button();
|
||||
this.CancelBtn = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.numericUpDownAddress = new System.Windows.Forms.NumericUpDown();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.numericUpDownByte = new System.Windows.Forms.NumericUpDown();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownAddress)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownByte)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// OkBtn
|
||||
//
|
||||
this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.OkBtn.Location = new System.Drawing.Point(150, 109);
|
||||
this.OkBtn.Name = "OkBtn";
|
||||
this.OkBtn.Size = new System.Drawing.Size(60, 23);
|
||||
this.OkBtn.TabIndex = 3;
|
||||
this.OkBtn.Text = "&OK";
|
||||
this.OkBtn.UseVisualStyleBackColor = true;
|
||||
this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click);
|
||||
//
|
||||
// CancelBtn
|
||||
//
|
||||
this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.CancelBtn.Location = new System.Drawing.Point(216, 109);
|
||||
this.CancelBtn.Name = "CancelBtn";
|
||||
this.CancelBtn.Size = new System.Drawing.Size(60, 23);
|
||||
this.CancelBtn.TabIndex = 4;
|
||||
this.CancelBtn.Text = "&Cancel";
|
||||
this.CancelBtn.UseVisualStyleBackColor = true;
|
||||
this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 14);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(273, 13);
|
||||
this.label1.TabIndex = 17;
|
||||
this.label1.Text = "Enter an address to POKE along with a single byte value";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(12, 52);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(93, 13);
|
||||
this.label4.TabIndex = 27;
|
||||
this.label4.Text = "Address (0-65535)";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(12, 27);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(254, 13);
|
||||
this.label2.TabIndex = 29;
|
||||
this.label2.Text = "(This will always target the 64K RAM address space)";
|
||||
//
|
||||
// numericUpDownAddress
|
||||
//
|
||||
this.numericUpDownAddress.Location = new System.Drawing.Point(15, 69);
|
||||
this.numericUpDownAddress.Maximum = new decimal(new int[] {
|
||||
65535,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDownAddress.Name = "numericUpDownAddress";
|
||||
this.numericUpDownAddress.Size = new System.Drawing.Size(90, 20);
|
||||
this.numericUpDownAddress.TabIndex = 30;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(123, 52);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(70, 13);
|
||||
this.label3.TabIndex = 31;
|
||||
this.label3.Text = "Value (0-255)";
|
||||
//
|
||||
// numericUpDownByte
|
||||
//
|
||||
this.numericUpDownByte.Location = new System.Drawing.Point(126, 68);
|
||||
this.numericUpDownByte.Maximum = new decimal(new int[] {
|
||||
255,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDownByte.Name = "numericUpDownByte";
|
||||
this.numericUpDownByte.Size = new System.Drawing.Size(67, 20);
|
||||
this.numericUpDownByte.TabIndex = 32;
|
||||
//
|
||||
// AmstradCPCPokeMemory
|
||||
//
|
||||
this.AcceptButton = this.OkBtn;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.CancelBtn;
|
||||
this.ClientSize = new System.Drawing.Size(288, 144);
|
||||
this.Controls.Add(this.numericUpDownByte);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.numericUpDownAddress);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.CancelBtn);
|
||||
this.Controls.Add(this.OkBtn);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "AmstradCPCPokeMemory";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Poke Memory";
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownAddress)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownByte)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button OkBtn;
|
||||
private System.Windows.Forms.Button CancelBtn;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDownAddress;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDownByte;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
using BizHawk.Emulation.Cores.Computers.AmstradCPC;
|
||||
using System.Text;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class AmstradCPCPokeMemory : Form
|
||||
{
|
||||
private AmstradCPC.AmstradCPCSettings _settings;
|
||||
|
||||
public AmstradCPCPokeMemory()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void OkBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
var ams = (AmstradCPC)Global.Emulator;
|
||||
var addr = (ushort)numericUpDownAddress.Value;
|
||||
var val = (byte)numericUpDownByte.Value;
|
||||
|
||||
ams.PokeMemory(addr, val);
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void CancelBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
GlobalWin.OSD.AddMessage("POKE memory aborted");
|
||||
DialogResult = DialogResult.Cancel;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,624 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAwAMDAQAAAABABoBgAAxgAAACAgEAAAAAQA6AIAAC4HAAAYGBAAAAAEAOgBAAAWCgAAEBAQAAAA
|
||||
BAAoAQAA/gsAADAwAAAAAAgAqA4AACYNAAAgIAAAAAAIAKgIAADOGwAAGBgAAAAACADIBgAAdiQAABAQ
|
||||
AAAAAAgAaAUAAD4rAAAwMAAAAAAgAKglAACmMAAAICAAAAAAIACoEAAATlYAABgYAAAAACAAiAkAAPZm
|
||||
AAAQEAAAAAAgAGgEAAB+cAAAKAAAADAAAABgAAAAAQAEAAAAAACABAAAAAAAAAAAAAAQAAAAEAAAAAAA
|
||||
AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP//
|
||||
/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAHR3AAAAAAAAAAAAAAAAAAAAAAAAAAAAdHdEcAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAHd0d3QAAAAAAAAAAAAAAAAAAAAAAAAAAEd8d3UAAAAAAAAAAAAAAAAAAAAAAAAAB3yHfHZw
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAd3fIyHVwAAAAAAAAAAAAAAAAAAAAAAAAfHh3jIxwAAAAAAAAAAAAAAAA
|
||||
AAAAAAAHd8jIyHdgAAAAAAAAAAAAAAAAAAAAAAAHd4yHfIdAAAAAAAAAAAAAAAAAAAAAAAAHyMjIyMhQ
|
||||
AAAAAAAAAAAAAAAAAAAAAAB3d3eMh4dgAAAAAAAAAAAAAAAAAAAAAAB8jIyIfIdQAAAAAAAAAAAAAAAA
|
||||
AAAAAAB3h4jIiMh3AAAAAAAAAAAAAAAAAAAAAAB8jIeHeIjHAAAAAAAAAAAAAAAAAAAAAAeIiHh4eMiE
|
||||
AAAAAAAAAAAAB0dHcAAAAAd8h4eIiIiHcAAAAAAAAAB0d3d3RwAAAAeIeIiIiIh3RwAAAAAAAHR3d8h3
|
||||
dAAAAAfIh4iIiHiIx0cAAAAAdHh3eIeHhwAAAAeHiIiIiIiId3R3dHR0eHd4h4eHhAAAAAd4eIiIiIiH
|
||||
x3d2d3eId4iIiIiIhwAAAAd4eIiI+IiIh3d3eHh3iIiIiIeHwAAAAAfIjHeIiIiIyIeHh4iIiIiIiIiI
|
||||
cAAAAAeIQ0R3h3iIiMiIiIiIiIiIiIiEAAAAAAfIR3d3d0iIiIh4iIeIiIiIiHhAAAAAAAB4d3d3SHiI
|
||||
h4fTiIi3iIiIeIwAAAAAAAB3h4d3eIeIiHiJiIuIiIh4jHAAAAAAAAAHyId3h3h4iIh4iIiIiIiHeAAA
|
||||
AAAAAAAAB8iMiMjIiIiIh4h3aMjHAAAAAAAAAAAAAAdYyIeIiIiMjId6d4eAAAAAAAAAAAAAAAAHdsjH
|
||||
eIeH6MiId3AAAAAAAAAAAAAAAIiIh4V8jIh4eIfHcAAAAAAAAAAAAACIiIh3AAAHd3h3fHcAAAAAAAAA
|
||||
AAAAAAiIjHgAAAAAAHx8eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A
|
||||
H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP////
|
||||
AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA
|
||||
AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/
|
||||
AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAQAAAAAAAAC
|
||||
AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
|
||||
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAAA
|
||||
AAd0dAAAAAAAAAAAAAAAAAB3x3cAAAAAAAAAAAAAAAAAd3fHcAAAAAAAAAAAAAAAB3yMh3AAAAAAAAAA
|
||||
AAAAAAfIeMdwAAAAAAAAAAAAAAAHjIyHQAAAAAAAAAAAAAAAfId4yHAAAAAAAAAAAAAAAHjIyIdQAAAA
|
||||
AAAAAAAAAAB3iId4YAAAAAAAAAdwAAAAjIiIiIUAAAAAAHd3dAAAB4iIiHh8cAAAAHd3x4dwAAd4iIiI
|
||||
h3Z3d3R3yIh4cAAHh4iIiIfHd3d4iIiIh3AAB3jHiIiIiHeHiIiIiIwAAAh3dXh4iMiIiIiIiIhwAAAA
|
||||
yGd0d4iIeIi4iIiMAAAAAIeHd4iIh32IiIiIcAAAAAAAd4jIyIiIiHeHyAAAAAAAAAB3h4iIh8h3dwAA
|
||||
AAAAAAAIh8fIh4eIaAAAAAAAAACIiHAAB8jIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////
|
||||
////////////////////n////g////wP///8B///+Af///gH///4B///8Af///AH///wB//n8AP/A+AB
|
||||
/AHgAAAB4AAAAeAAAAPgAAAH8AAAD/AAAB/8AAA//wAA//4AA//weA//////////////////////////
|
||||
//8oAAAAGAAAADAAAAABAAQAAAAAACABAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAA
|
||||
AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRwAAAAAAAAAAAAB3dAAAAAAAAAAAAA
|
||||
d8dwAAAAAAAAAAAAfId3AAAAAAAAAAAHeMjHAAAAAAAAAAAHyHh3AAAAAAAAAAAHh3eEAAAAAAAAAAAI
|
||||
yIiHAAAAAHd2cAAIiIiIQAAAd3d4UACHiIiId3d3eHiIcACHh4iIyHeHiIiIcAAIR3d4iIiIiIiMAAAH
|
||||
d3eIh3iIiIhwAAAAeMh4iIiHiMAAAAAAAHfIiMh4aAAAAAAAiIgHyIfIAAAAAAAIgAAAAIAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD8f/8A+H//APB/
|
||||
/wDwP/8A4D//AOA//wDgP/8A4D/BAOAfAQDAAAEAwAABAOAAAwDgAAcA8AAfAPwAPwDwgP8A5/f/AP//
|
||||
/wD///8A////ACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACA
|
||||
AAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAd1AAAAAAAAB8cAAAAAAAB4eAAAAAAAAHyMgAAAAAAAiIhwAAAHcACI
|
||||
iHcAd3hwAIz4jIeIiIAAd3eIiIiIAACHeIiIiHAAAACMeMh4AAAAiAAIgAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAD//wAA//8AAP//AADj/wAA4/8AAMP/AADB/wAAwfkAAMDBAADAAQAAwAMAAMAHAADwDwAAzn8AAP//
|
||||
AAD//wAAKAAAADAAAABgAAAAAQAIAAAAAAAACQAAAAAAAAAAAAAAAQAAAAEAAAAAAAA9OzsAZD8/AGg8
|
||||
PABtPj4AQkNDAEZIRwBWQkIAV0REAF5AQABbRkYAVklJAFxPTwBTU1MAXFJSAF5ZWQBkQEAAYUREAGZF
|
||||
RQBqQkEAYEtLAGNPTwBwQUEAfUZGAHJKSgB2SUkAfU9PAGBRUQBgVFQAZlZWAGZYWABqWVkAclZWAHpU
|
||||
VAB9W1oAbmJiAGtoaABtaWkAcWdnAHdnZwB8Y2MAe2pqAHJxcQB+dHQAd3l5AHl6egCGT08AiU9PAIFP
|
||||
UACGU1MAjVFRAIlWVgCMV1cAg1xbAIxaWQCQUlIAlVJSAJFXVgCXVVUAmVVVAJZaWQCSXV0AlV9eAJpZ
|
||||
WgCeW1sAml5eAKBZWgCgXFwAql9fAIRmZQCIZWQAhWtrAI5ragCTYmEAnGBhAJ9kYwCaZmYAk25uAJ1s
|
||||
awCFdHQAiXd3AIt+fgCWd3cAmHR0AJV5eQCbfHwAo2JhAKZhYQChZWUApGVkAKplZACsZGQAqmhnAKZr
|
||||
agCnbGsAqmloAKlubQCsbW0AtGZnALhsbACxb3AAv29wAKVxcACrc3IAr35+ALN0cwC5c3MAvXBxALR4
|
||||
dgC1fHsAunt6AMNtbgDGb3AAw3FyAMZwcQDGdXUAyHR1AMp3eADBeXkAxnt7AMB/fgDLensANLBSAEWf
|
||||
TgBBtFwAPMdnADHkdgDciiIAvoF/AISrdwDln0sA35lhAN2XfADgmmEA8LdlAO61cAArWPIALWT+AEh5
|
||||
+gDOf4AAfoCAAHiA1ABZv9wAZrnUAGK+2ABxnv4Ad6P/ADPX/QBw0OcAW+D7AIKEgwCPgoIAjI2NAJuC
|
||||
ggCUiIgAmYqKAJGSkgCjhIQAqoKCAKKLiwC+hIMAsoqKALaSgQCum5sAsZubALqqlQCdgr4Ar6ytALGh
|
||||
oAC6pKQAwoSDAMyBggDGiIYAyYiHAMWMigDMjIoA0ISFANKHiADUjIwA2Y6NAMCUjQDIk44A0JCPANaP
|
||||
kADHlZQAzpSSAMScmwDUkpIA2ZSVANWYlgDampcA2ZeYANWcnADam5sA4p2cAMChjwDeoJ4A5aCFAOaj
|
||||
jQDlpJoA2p6hAMOkowDOoaEAy62tANegoADdoqEA2aGpANGsrwDdq6kAwbG4ANGysQDdtLQA2ri3AOGk
|
||||
owDjqKYA66ylAOGnqADjq6oA6a2rAOOwrwDssK4A5K+wAOaztADttLIA57i2AO24tgDmurgA6rq6APC1
|
||||
swDyuLYA9Ly5APi+uwD1wL0A+cC9AKKMwACkk8QAqprMALSayACptsEAlaDkAOy/wACRxtQAgOv9AJnr
|
||||
9wDEwsoA5sbGAOzCwgDuyMcA7MzMAPPEwgDxy8oA9dPTAPja2gAAAAAAAAAAAP///wAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAoIJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAACYXODs4BCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
KTNDQ0M7OAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALllbYmJZQBcAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYYWNwcHBwWy8mAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A
|
||||
H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP////
|
||||
AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA
|
||||
AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/
|
||||
AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAE
|
||||
AAAAAAAAAAAAAAABAAAAAQAAAAAAAFFNTQBRUlIAU1RUAGJHRwBiT08Aa0lIAGJTUwBrVlYAYllZAGZc
|
||||
XABpWloAb1xbAHNTUwB7V1YAc1hXAHFbWwBkZWUAaWFhAG5kZABpamkAcGFhAHlubgB2cHAAf3V1AH55
|
||||
eQB8fX0AgUpKAI1PTwCLWFcAhlhYAI9ZWQCKXFsAm1ZWAJJZWQCWWVgAmlpbAJtcWwCiXFwAl2BfAIBg
|
||||
YACAZ2YAgG9vAI9oaACWZWQAmGBhAJ5kZACcaWoAmm9vAIV0dACNcHAAiXZ2AIB8fACac3IAm3V0AJ51
|
||||
dQCZfHwAnHx8AKNmZgCnZmYAqmJiAK5jYwCvb24AtWVmALBtbgC5bW0AvmxtAKx+fQCxcnIAtHBwALZz
|
||||
dACydXQAtnd2ALlwcAC5dnYAt3p5ALh5eAC8fHsAun18ALx+fQDGb3AAxnBxAMdzdADAd3YAyHJzAMlz
|
||||
dADJdXYAynd4AMd/fwDMe3wAzXx9AHunbwBhvHIAYsN4ANuLOwC2hn4A4Zt5APC3ZABte9sAX47+AHWM
|
||||
5QAl0foAY+P8AIeDgwCFhoYAioSEAJOIiACWi4sAmpKRAKGCgQCmhYUAqYGBAKuDhACniooApYyMAKiO
|
||||
jQCyhYMAvoWEALeNjQCrj5AAr5eXALSVlAC9lJMAmbCEAK6RugDBgYAAwoSCAMWDhADChoQAxYeFAM6A
|
||||
gQDFiIYAxoqIAMqIiQDMi4oAy4yKAMiPjQDPj44A0ISFANKJigDUi4wA04+NANWNjgDKkY8A0JCOANud
|
||||
iQDWj5AAzJSTAM2XlgDGm5oA1pGSANOUkgDVl5EA1pOUANiVlgDYmJUA2ZeYANKenADbmpsA3pmYANuc
|
||||
mgDbn5wA1aacAN6gngDqqZoA3Z+gAMyjowDCra0AxqysAMqpqQDboaAA3qKiAN6logDbp6UA3aWkANer
|
||||
qgDWsbMA0rW0ANe0tADfs7IA4aSiAOGlpQDkp6UA46imAOWopgDsraIA6qimAOGoqADhrqwA6a2rAOqv
|
||||
rADpsK4A7LGuAOGzswDlsbEA7bKxAO+1sgDotrYA5rm3AO+4twDot7sA6bq5AOu9uwDrv70A8bazAPG2
|
||||
tADxuLUA9Lm2APC9uwD2vboA9L+9APi+uwD4v7wA8sC+APXAvgD5wL0AkILJAKqXzACsu8cAqr/LALLV
|
||||
3QDawMIA48XFAOvDwQDswMAA7cTDAO/ExQDgxsgA8cbEAPTGxADwyskA9MvJAPLNzQD21dYA+NjZAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAMEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqHCEcBQAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAayU9PSYbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdQlBSQiJpAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAM0pSUlJQPRcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnUlJSUlJGFQAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAFJSUlJSUkoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzUlJSWVJZfxAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XWYqKioqGDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASoqMkpqa
|
||||
mqAsAAAAAAAAAAAAAAAAAABoNAAAAAAAAACMjJyuvLy2toYHAAAAAAAAAAAAABcOIDouBgAAAAAAc4yc
|
||||
tsHKysPAriIKAAAAAAAAABYgRk1LTX+DEAAAAABukqXB4ejo4dHPQCIEChcXEwggTXV/k66unKMpAAAA
|
||||
AG6Srsro6ero0dN/Rk1NRk2Dg4STrsbh4cHAt2sAAAAAbpKuOXPe6ajW15KGg4OGk528yuHo5eHPz882
|
||||
AAAAAAB4jCkDAxSoMabXt5yjt8ro3ePo5dbT09HTdAAAAAAAAABGcBFoGgFwdtfDwHxi2dpmZcrX09HP
|
||||
z0MAAAAAAAAAAHh/qWwaOa6cz9PNZGPYsdzbzc3DwLk2AAAAAAAAAAAAAAAvhpKakoyg19HNyKS5wHtb
|
||||
orZ/cwAAAAAAAAAAAAAAAAAANkaKWVm5zb1gYV6cXVxfNgAAAAAAAAAAAAAAAAAAALGvlTIuP1K5tqCR
|
||||
l4xfLwAAAAAAAAAAAAAAAAAAsbPBenkAAAAAcCVYjE0scwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////+f///+D////A////wH
|
||||
///4B///+Af///gH///wB///8Af///AH/+fwA/8D4AH8AeAAAAHgAAAB4AAAA+AAAAfwAAAP8AAAH/wA
|
||||
AD//AAD//gAD//B4D////////////////////////////ygAAAAYAAAAMAAAAAEACAAAAAAAQAIAAAAA
|
||||
AAAAAAAAAAEAAAABAAAAAAAAWlJSAHBJSQB1SEgAe1dXAHdYWAB5WlkAel1dAGBiYgB1bGwAfWtrAHh2
|
||||
dgB9fn4Ag01NAIRXVwCIV1cAhV9eAItbWgCgX14ApV1dAJhgXwCNYGAAnWtqAJhtbQCCdnYAh3x8AI15
|
||||
eACeensAqGBgAKhoZwCga2oArGpqALNqagCzb28AtG1tALltbQCxb3AApnVzAKlzcwCqdHMApnp6AKd+
|
||||
fgCpensAq3x7ALZ3dgC8dHQAvH59AMZvcADGcHEAxXN0AMhycwDJdncAynh5AMx5egDNfn8Ajo1wAOek
|
||||
VgDGgH8A4p53AEZ2+gB8u4AAd8PaAIuEhACOh4cAjo6OAJ+DggCejo4Ao4SEAKSIiACsi4sAqo2MAK6P
|
||||
jgC+gYAAvoaGAL+KiACskJAAtJeXALWenQC5np4At6iOAKmyjgC9nroAwYSDAMaGhADOhoYAxomHAMiK
|
||||
iQDJjYwA0oeIANOOjwDUjY0A2ZiPANaPkADGkZEAx5eXAMySkADGnZwA1ZOSANeTlADWl5YA2JSVANGZ
|
||||
mADan50A3J6dAOCcmwDVoJ8A7K2fAMOtrQDXo6IA3aCgAN+kpADVq6oA3ay3AMu0tADPtrYA3L+/AOCi
|
||||
oQDhpqUA5KelAOinpgDlq6gA46usAOOvrQDqrqwA7LGuAOayswDjtrQA5re1AOqysQDts7EA57y6AO+8
|
||||
ugDrvL0A8LOwAPC1sgDwtrQA87q3APS6twD2vboA8b69APi/vAD2wb4A+cC9AJmTzwDHqMMAu8PMAIHf
|
||||
8QDByNAA7cLCAO3FwwDvxsQA5cjIAOzOzgDwxcQA9cbEAPPP0AD10tIAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
BQMJAAAAAAAAAAAAAAAAAAAAAAAAAAAPHBMNAAAAAAAAAAAAAAAAAAAAAAAAABojLy8TAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAB0wMDAiPgAAAAAAAAAAAAAAAAAAAAAAQjAwMDAtGAAAAAAAAAAAAAAAAAAAAAAAFzIy
|
||||
NTU5CgAAAAAAAAAAAAAAAAAAAAAAIjZYWFxcBwAAAAAAAAAAAAAAAAAAAAAANlxtdW11JQAAAAAAAAAA
|
||||
PgcRDgkAAAAAXG1/lISAZgMAAAAAABkVLC5SVhcAAABNY3WWnJuLfB8UBAcQHkhWaX91dSsAAABNY2BM
|
||||
mJeCiVJSVl9laX+WloSJgEIAAAAAXAEIC0tGjnR0dJaRk5qNjIyJQwAAAAAAJkNADBtdjIaPO1GSPYuJ
|
||||
hnVEAAAAAAAAAClISWRcd4xwkGp8UE90VwAAAAAAAAAAAAAAKSQ1NYZ7OjhbPDdGAAAAAAAAAAAAAHNv
|
||||
YGsAKyJoXFYmRwAAAAAAAAAAAAAAcnIAAAAAAAAATgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP//
|
||||
/wD///8A////APx//wD4f/8A8H//APA//wDgP/8A4D//AOA//wDgP8EA4B8BAMAAAQDAAAEA4AADAOAA
|
||||
BwDwAB8A/AA/APCA/wDn9/8A////AP///wD///8AKAAAABAAAAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAA
|
||||
AAAAAQAAAAEAAAAAAABjZGQAdmRjAHtpaQB/eHgAgU9PAKBaWgCFbm0AlWtqAKptbgCwZ2cAsGhoAKxw
|
||||
cACteHkAvnJyAMZvcADGcHEAy3l5AMx9fgCFmXQAwIB/ANeUfQDhoX8AlIqJAJWMjACYiIgAoIaGAK2K
|
||||
igCxh4cAvoGAALKKigC4iYgAuJWVAL2cnACss50AuqKhAL+mpgDLgoIAxImHAMeNjADLkI8AxpWTANCS
|
||||
kQDYlZUA1J6dANqZmgDdnp4A1J+oAMaiogDOr68AzLKyANi5uADhpaIA4qypAOWtqADrrqsA4bKwAOay
|
||||
sgDtuLYA57++AOy4uADxtLIA8be0APa9ugDswL4A9sG+ALCcxwC5ncIA06zBALnH0QC2ytQA7sPDAPLS
|
||||
0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAZBgUAAAAAAAAAAAAAAAAACw8KAAAAAAAAAAAAAAAAGhAQDgAAAAAAAAAAAAAAAAkRESUYAAAA
|
||||
AAAAAAAAAAAlKy4uBwAAAAAAAAcDAAAAKzlHPCYCAAAYCB0oKgAAAC0wSDs0FB0nLDlAOiwAAAANAQQb
|
||||
Pi9DRkVBPzUAAAAAJB4cKz5EQjMiNSkAAAAAAAAAHwwRNxYVEyQAAAAAAAAxMgAAACEgAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA4/8AAOP/AADD/wAAwf8AAMH5
|
||||
AADAwQAAwAEAAMADAADABwAA8A8AAM5/AAD//wAA//8AACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAkAAAAJAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAUAAAAOAEBAVUAAABUAAAANQAAABAAAAABAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAkFBSUvGRl5TCkpwlYuLtxDJCTQFw0NmQAA
|
||||
AEkAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGAwMKE8rK6V6RET2klJR/5ZS
|
||||
U/+OT0//ZDc38B0QEJoAAAAyAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYDAwYVzAwoopP
|
||||
T/ygXVz/oFtb/55ZWf+bWFf/k1NT/1UvL9wGAwNcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AARNKipxhk5O+adkY/+uZWX/tWdo/7VmZ/+qYWH/nltb/3hERPcfERGCAAAAFgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADEZGS1zQ0LXqGdm/7ptbf/Fb3D/x3Bx/8hwcf/BbW7/q2Vl/4hPT/82HR2gAAAAIAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAB1gxMYyYXl3/vXFx/8Zwcf/HcHH/x3Bx/8dwcf/HcHH/uG1t/5NY
|
||||
V/9EJia2AAAAKQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPB8fNH1MS+K4cnH/x3Fy/8dwcf/HcHH/x3Bx/8dw
|
||||
cf/HcHH/wHBx/51gX/9PLCzGAAAAMwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXjU1h6NnZv/Fc3T/x3Bx/8dw
|
||||
cf/HcHH/x3Bx/8dwcf/HcHH/w3Jz/6ZoZ/9ZMzPTAQAAPQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyFxccektK0b12
|
||||
dv/HcHH/x3Bx/8dwcf/HcHH/x3Bx/8dwcf/HcHH/xXR0/69wb/9jOjneBwMDSQAAAAUAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABNKSlNlmBf9sh3d//HcHH/x3Bx/8dwcf/HcHH/x3Bx/8dwcf/HcHH/xnd3/7Z4d/9sQUDnDgcHVQAA
|
||||
AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABkOjqKsXFw/8lyc//HcXL/yHJz/8l0df/JdXb/yXV2/8l1dv/JdHX/ynt7/7+B
|
||||
f/94SknvFgsLZQAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACILCxB7TUzDwXd3/8lyc//KdXb/y3h5/8x7fP/NfX7/zX5+/819
|
||||
fv/NfH3/zoOC/8iJiP+GVVX3Hg8QegAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEMiIi+SXl3oynp7/8t4ef/NfX7/z4GC/9GE
|
||||
hf/Sh4j/04iJ/9KIiP/Rhof/04uK/8+RkP+XY2L9KxcXlwAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABwAA
|
||||
AA0AAAAPAAAACwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUvL1enbW37zn5+/85/
|
||||
gP/Rhob/1IuM/9aPkP/XkpP/2JOU/9iTlP/XkZH/15OT/9eZl/+rdHP/QSUlvAAAADwAAAAFAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACQAA
|
||||
ABgAAAAvAgEBSwcDA2EFAgJoAAAAWAAAADYAAAARAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGU8
|
||||
O4W5eXn/0IKD/9KIif/Wj5D/2ZWW/9ubm//dnp//3qCg/92foP/cnZ3/3Jyc/9+in//CiYf/Zj8/4wYC
|
||||
AnAAAAAbAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
|
||||
AA4AAAAnCQQEUCISEoQ+IiKzVzEx1mU6OuZiOTnmRigo0hgNDZsAAABMAAAAEAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAABnVJSK/HhIP/04eI/9aQkf/amJn/3qCh/+Gmp//jq6v/5Kyt/+OsrP/iqan/4aal/+ap
|
||||
p//Umpj/nmxr/C8ZGboAAABXAAAAGAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAIAAAAOAQAALRkNDWY+IiKpZDo63YZRUfigZGP/sHBv/7V0c/+xcnH/oWZm/2k+PvEfEBCcAAAAMQAA
|
||||
AAMAAAAAAAAAAAAAAAAAAAAALhAQFIZXVs/RjIz/1Y2O/9qYmP/eoaL/46qr/+aysv/ot7f/6rm5/+m4
|
||||
uf/otbX/5q+v/+uvrf/jqab/wYeF/28/P/QhEhKvAAAAXwAAACgAAAANAAAABQAAAAMAAAACAAAAAwAA
|
||||
AAUAAAAKAAAAFQAAADAdDg9oSSkptHZHRu2dYmL+t3Z1/758e/+6enn/tnh3/7d5eP+8fn3/w4SD/7Z6
|
||||
ef9eODfbBgICTgAAAAgAAAAAAAAAAAAAAAAAAAAAPhwcJJVjYuPXkZH/2JOU/92fn//iqqr/57O0/+u8
|
||||
vP/uwsL/78XG/+/Exf/twMD/67i4/+60sv/wtrP/zZKQ/5taWv9xQED2MRsaxAgEBIcAAABaAAAAQQAA
|
||||
ADcAAAA2AAAAOwAAAEUEAgJZHA4OfUcnJ7l5SkntqGxr/8CAfv/DgoH/vH59/7p+ff/DiIb/zZGP/9GT
|
||||
kf/UlJP/1peV/9eZl/+GVlbuGQsLVwAAAAcAAAAAAAAAAAAAAAAAAAAARiIiLZ9rauvZk5P/2peY/+Ck
|
||||
pP/lsLD/6ru7/+/Fxf/yzMz/9NDQ//PPz//xycr/7sDA//K5tv/1u7j/36Kg/6dmZf+mZWX/j1ZW/WM6
|
||||
OutDJSXQNBwcvDAaGrQ0HBy1PiIivUwsLMtkPDzfh1VU9a1xcP/EhIP/xIWE/7+Cgf/Ch4b/zZST/9mk
|
||||
ov/grq3/4a6t/96lo//eoJ7/36Kg/+Cjof+IWVjnGwwMQwAAAAIAAAAAAAAAAAAAAAAAAAAARyQkL6Br
|
||||
auzZk5P/25qb/+GnqP/ntLT/7cDA//LLy//209T/+NjY//fX1//00ND/8cbG//W9u//4vrz/46ak/7d0
|
||||
c/+vb27/s3Jy/7d2df+ucXD/pWpp/6Npaf+nbWz/sHVz/7p9fP/EhYT/yImI/8WIhv/DiIb/ypGP/9eg
|
||||
n//hr63/57q5/+rCwP/rwsD/6bq4/+evrf/nq6n/6q6r/9qgnv9wRkbDBwAAHgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAASCQkLZ1nZuvYkpP/25uc/+Opqv/qtrf/7cHB//TOzv/52Nj/+tzc//na2v/xz9D/8MfH//fA
|
||||
vv/6wb7/6a6r/8OBgP/DgoD/vX58/7h7ev+8fn3/woOC/8aHhv/HiYj/xoqJ/8aLif/Ijoz/zZST/9eg
|
||||
nv/hrav/6Lm3/+zCwf/uyMf/78nH/+/Dwf/uvLr/7ba0/+60sf/vtLL/8ri1/7J+fflMKSltAAAABAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAQyEhI5JcXOPWj5D/3Juc/8qVlf+BZmb/bl5e/4l4eP/AqKj/8tPT//LO
|
||||
zv+5p6b/w6qq//fBv//7wr//8LWy/86Ojf/Ojoz/0ZGP/9GSkP/OkY//zpOR/9GamP/VoJ//2qel/+Gv
|
||||
rf/nt7X/6727/+3Dwf/wycf/8czL//LLyf/yxsT/8cC+//G7uf/yubf/87m3//S7uP/4vrv/1J6c/3JH
|
||||
RrAdCgsWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANRcXEYJNTcvPiIn/15aW/2VNTf85Ojr/Q0VF/0JF
|
||||
RP9dXFz/n5GR/+S/v/+bh4f/hXp6/+25uP/7wr//9bu4/9qcmv/Zmpj/252b/96gnf/ipKH/5q+s/+u+
|
||||
vP/vycf/8srI/+3Hxv/wysj/9c7M//TNy//0ysj/9MbE//TBv//1vrz/9r26//e9u//4vrv/+L+8//vB
|
||||
vv/hqqf/g1ZVzDwcHC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW4+Ppq/env/05OT/2ZX
|
||||
V/9rbm7/fX9//3l6ev99f3//cHJy/5F9ff+ff3//XFhY/9eop//8wr//+L+8/+Wppv/ipaP/5qil/96i
|
||||
pP/Kmaz/1qi1//LGxP/tyMf/qb3J/23E3P9kw9//vMTN//jDwP/3wb//+MC9//i/vf/5v73/+b+8//i/
|
||||
vP/3vrv/+L68/92mo/+IWlnRRSMjOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcv
|
||||
L0mbX1/y15GS/6GAgP9XV1b/iYuL/4CBgf98fX3/cnR0/1dPT/++j4//km9w/9Sfnv/6wL3/+cC9/+6z
|
||||
sP/ssK3/0Z+u/4OH1P9YffD/QGPs/7KYyv/Ct7z/Ytrz/3Ts//8s2f//cbvU//m+u//4v7z/+L67//e9
|
||||
uv/1vLn/9Lq3//O5tv/zuLX/0puZ/4RVVctGIyM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADIXFwdrPDySq2ts/diZmf/ApKT/sKur/4CBgP95enr/iYiI/49zdP/do6P/36Ch/96e
|
||||
nv/zuLX/+sK///W7uP/1ubT/qZC//2qY+/9tnf//MGT6/56FxP/esK//nMbS/57n8/9+z+T/ybG3//a6
|
||||
t//zubb/8re0//C1s//utLH/7rKw/+qvrP++iIb9dklJtkMgISoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHIyMSazw8kZ5hYvXNjI3/2aSk/7OMjP+bd3f/sIKC/9KV
|
||||
lv/cnJz/2peY/9aRkf/koqL/+sG+//nAvf/5v7z/4amw/6qZx/+aouP/qpvP/+mxtv/2urj/6rGv/+S6
|
||||
u//ptrX/466n/+Ovqf/ssK7/6q6s/+isqv/oq6n/2J2b/6JubfFoPT2NOxoaFwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBoaCFowMFd7SEjAomZm9sWC
|
||||
gv/XkZL/25SV/9iSk//Wj5D/1IyN/9KHiP/UiIj/8bOx//rCv//3vbv/9ru4//O3s//xuLX/7q6e/+ej
|
||||
hf/npIn/7bCp/+Otp/+KsX3/ULdm/1WjWv+7oYz/5KWk/9uenP+4gH79glJRzVYuLlQgCAkGAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAA8HBwQVy4uS3FBQaCPV1fjsG5v/cmAgf/ShYb/0YKD/85+f//LeXr/2I2M//e8uf/1vLn/7rOx/+2y
|
||||
sP/lpJX/5qFY/+6xXP/djS3/35h9/86gl/9SwW7/Nd90/0WxXP+vlH//wYSE/49cW+VlOTmBQR4eHAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGk7OhqIWFd8oG5u8J5qav+eX2D/tmts/8Z0df/KdHX/yXJz/92T
|
||||
k//3vLn/7LGu/+Snpf/dm5L/4Z1q/+61dP/fmmX/15WM/9eYlv/Bm43/r6uR/6uNgP+WYWDtbkBAnUwn
|
||||
JzQVAQECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiFJSBnhC
|
||||
QgpqNDQJWSUlB08dHQdfKisKfENDFJJWViinbGtRvYOCjtOcm8/pt7X157y6/7eOjfhxRUW7aTk5m4RK
|
||||
StehWlr6uGdo/8Zwcf/dkpH/8bSx/+OnpP/YmZj/1ZWT/9ealP/Vl5X/0JCP/8eIhv+zdnb/lFtc6nA/
|
||||
QKRSKio/JQwNBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AADTn6AB2qioDMuUlCHBhYU8voCAWcCBgXTEhoaLzZGQqdeensngrKvn47Sz/NOop/+yiIfyi2Bgs2k+
|
||||
PlZXKysPAAAAAUYlJRxcMTFYcj4+pYpMTeWmXF3+xnl5/9+Zl//dnJr/z46M/8KCgf+vc3L/ll9e831L
|
||||
S8hlOTl/TigoMy0REQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABzQUIDnmprDriGhifHlpZMzp6eeNCgoZ7On5+2yJqaybuPj9WnfHzVj2RkunVJ
|
||||
SYNbLy8/PRQUCgAAAAAAAAAAAAAAAAAAAAAAAAAAKRUVBU0pKSphNDRtd0BAsotNTd2ZW1vrkVlY4HtJ
|
||||
Sb5lOTmCUysrQTsbGxEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWCwsA2Y4OA5xQkImdkhIRHhKSll0R0dibUBAWWI2
|
||||
NkNUKCgoOhISDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMhkZB0km
|
||||
Jh5LJiYsRSEhITATFAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAD/+H////8AAP/gH////wAA/8Af////
|
||||
AAD/gA////8AAP+AD////wAA/wAP////AAD/AA////8AAP4AB////wAA/gAH////AAD8AAf///8AAPwA
|
||||
B////wAA/AAH////AAD8AAf///8AAPgAB////wAA+AAH//4HAAD4AAP/8AEAAPgAAf/AAQAA8AAA/wAA
|
||||
AADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAEAAPAAAAAAAQAA8AAAAAADAADwAAAAAAcAAPAA
|
||||
AAAADwAA+AAAAAAfAAD4AAAAAD8AAPwAAAAAfwAA/gAAAAD/AAD/gAAAA/8AAP/gAAAH/wAAgAAAAB//
|
||||
AAAAAAAAf/8AAAAD4AP//wAAgB/8H///AAD///////8AAP///////wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAYAAAAZAAAAGQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAARCQkYOh8fb0ooKK80HByiCQUFTAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAIhERFmA2Np2ITUz3lVNT/4dLS/5IKCi9AAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAANjODiBllhY+61kZP+vY2P/pV5e/3xHRvEhEhJfAAAAAgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAASSgoN41VVeS6bW3/xW9w/8dwcf+9bG3/klZW/jogIIEAAAAGAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ1RkWcs2xs/8dxcv/HcHH/x3Bx/8Zwcf+iYWH/SSkpmAAA
|
||||
AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUC0tMZtgX+fGcnP/x3Bx/8dwcf/HcHH/x3Fy/61q
|
||||
av9UMTGqAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxRER1tm9v/8hxcv/HcHH/x3Bx/8dw
|
||||
cf/HcnP/tnRz/185OboAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAACIxXV7TEdHT/yHJz/8l1
|
||||
dv/Kd3j/ynd4/8p4eP/Bf37/bURDywAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNKysjo2Zm4Mt4
|
||||
ef/NfH3/z4GC/9GFhf/RhYb/0YWF/82Mi/9+UVHeCAICOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAAAACwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAGc+
|
||||
Pkm1c3P30IGC/9OJiv/XkZL/2ZaW/9mWl//YlJX/2JmY/5hnZfMeEBBrAAAABwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA0FAgItHhAQWzAbG4IqFxeHDQcHWwAAABkAAAAAAAAAAAAA
|
||||
AAAAAAAAek1MdMN/f//VjI3/2piZ/9+io//hqKn/4qmp/+Clpf/jpqT/wImH/04xMLwAAAA6AAAABQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABEbDg5GRygokW5CQs+MVlbxnGJh/JdfXvxnPz7hHA8PbgAA
|
||||
AAwAAAAAAAAAAAAAAACMW1qbz4qK/9qXl//gpqb/5rKz/+q6u//rvLz/6La2/+qxr//epKL/j1lZ+DUc
|
||||
HLACAQFPAAAAHQAAAA8AAAAPAAAAEwAAACIbDg5MVDExnYZUU+SpbWz+uXl4/7x+fP/AgoD/xoeF/72A
|
||||
f/9fOzu1AAAAHAAAAAAAAAAAAAAABJhkZK/VkZH/3Z+g/+axsf/twMD/8svL//LNzf/vxcX/8Lq4/+6z
|
||||
sf+1dHP/j1VU+144N9g7IiKqMhwclDcfH5RGKSmiYTw7v4tZWOiydXT+woOC/8aKiP/Ol5X/2aWj/9ui
|
||||
of/cnpz/2pyb/35TUrgAAAAVAAAAAAAAAAAAAAAFmmVkstaTk//hpaX/7Lm6//TLy//419f/+NnZ//TP
|
||||
z//1wb//9Lq3/8aGhP+1dHP/s3Rz/6xwb/+pb27+rnNy/7Z7ev/BhIL/yY2L/8+WlP/apqT/5be2/+vB
|
||||
v//rvrz/6bKw/+uvrf/Um5n/bUVEgAAAAAMAAAAAAAAAAAAAAAOTXV2q1ZGR/9CYmP+dfX7/o4yM/9e8
|
||||
vP/z0tL/zLOz/+u8u//5v7z/1peV/8uLif/Ki4r/yoyL/86Ukv/TnJv/2qSi/+Gtq//nuLb/7cPB//DJ
|
||||
x//xxsT/8b+9//G6t//zubf/77az/6d1dM89Hx8lAAAAAAAAAAAAAAAAAAAAAIJOTojNiIn/jGlp/01O
|
||||
Tv9UVlb/dnNz/7uhof+Pfn7/xJ+e//zCv//lqKb/3J2b/+Chnv/hpaT/7Ly5/+vHxv/MxMn/0MjN//LK
|
||||
yf/1x8X/9sLA//a/vP/3vrv/+L+8//S7uP+5hoXhYTo5RwAAAAAAAAAAAAAAAAAAAAAAAAAAaTs7RrVz
|
||||
dPKmfn7/cXJx/4SGhv97fX3/b2Zm/516ev+7kJD/+sG+//C2s//lqqr/rpbA/3aB2/+ql83/tMHK/2jc
|
||||
9P9OzOz/2r3B//q/vP/3vrv/9ry6//a8uf/ss7D/tYGA32c+Pk0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAvEhIHg01Njbp9fvrCn5//nI+P/4R7ev+fgID/2Jyd/9ybnP/ytrT/+b+8/+ewtf+Mld3/ZI36/5eI
|
||||
zv/Ttrn/sNLc/6/Czv/stLT/8re0/++0sf/tsq//2qCe/6Rxb8phODg+AAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABCIB8MeUZGbqRpata8gYH8x4mJ/9eTk//YkpP/04qL/+Cbmv/5wL3/9726/+Sw
|
||||
t//Zrrn/56qY/+2smf/lr6n/nLWJ/4Gtdf/Pppn/3qGf/7yEg/KJWViYTyoqIAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQh0dGXJAQGOXXl7NtnR1/8V7fP/MfH3/znt8/+il
|
||||
o//0urj/7LCu/+Whg//rq13/35VX/9Kek/9yvXz/ZbNv/6iCdfqYY2O/aj4+TCUJCgcAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAACcamsBjFRVB4FERAh9PT0JjU1ND6VnZx+/hINF0JqZiNOjoty0iIf2hFBQw5lX
|
||||
V8+wY2P4xXR0/+aioP/oq6j/2pqT/92fif/Vlor/yYqJ/7N8efiVZmPGdERFYkEfHxIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALiFhgXFkJEdx5CQSMqSknbNlZWbz5uaws2cnOXBlJPnqH18r4dc
|
||||
XFFULy8OSCUlFm07O0+FSUmeoV1d3sF9fPrGhoX/snZ295xkZNiFUlKbbD4+T0UdHxIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc0JDA5FgYRKdbm46onR0Zp9ycnuWampzhFlZVmY6
|
||||
OikvDAwHAAAAAAAAAAAAAAAAAAAAAB0ODgRULCwhbjo7UXhERGVrPDxHTCYmGxAAAQMAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP//////////////////////D////gf///wH///4A///+AP///AD///wA///8AP//+AD
|
||||
///gA//D4AH+AeAA+ADgAAAAwAAAAMAAAADAAAAB4AAAA+AAAAfgAAAP8AAAH/wAAD8AAAD/AAAD/wB4
|
||||
D//H////////////////////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABMAAAAtAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgIO1cwMM1qOjrsHhAQmwAA
|
||||
ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -24,6 +24,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
ControllerImages.Add("SNES Controller", Properties.Resources.SNES_Controller);
|
||||
ControllerImages.Add("Nintento 64 Controller", Properties.Resources.N64);
|
||||
ControllerImages.Add("Gameboy Controller", Properties.Resources.GBController);
|
||||
ControllerImages.Add("Gameboy Controller H", Properties.Resources.GBController);
|
||||
ControllerImages.Add("Gameboy Controller + Tilt", Properties.Resources.GBController);
|
||||
ControllerImages.Add("GBA Controller", Properties.Resources.GBA_Controller);
|
||||
ControllerImages.Add("Dual Gameboy Controller", Properties.Resources.GBController);
|
||||
|
||||
|
@ -174,7 +176,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
tt.TabPages[pageidx].Controls.Add(createpanel(settings, cat.Value, tt.Size));
|
||||
|
||||
// zxhawk hack - it uses multiple categoryLabels
|
||||
if (Global.Emulator.SystemId == "ZXSpectrum")
|
||||
if (Global.Emulator.SystemId == "ZXSpectrum" || Global.Emulator.SystemId == "AmstradCPC")
|
||||
pageidx++;
|
||||
|
||||
}
|
||||
|
@ -182,7 +184,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (buckets[0].Count > 0)
|
||||
{
|
||||
// ZXHawk needs to skip this bit
|
||||
if (Global.Emulator.SystemId == "ZXSpectrum")
|
||||
if (Global.Emulator.SystemId == "ZXSpectrum" || Global.Emulator.SystemId == "AmstradCPC")
|
||||
return;
|
||||
|
||||
string tabname = (Global.Emulator.SystemId == "C64") ? "Keyboard" : "Console"; // hack
|
||||
|
@ -272,7 +274,16 @@ namespace BizHawk.Client.EmuHawk
|
|||
pictureBox1.Size = Properties.Resources.ZXSpectrumKeyboards.Size;
|
||||
tableLayoutPanel1.ColumnStyles[1].Width = Properties.Resources.ZXSpectrumKeyboards.Width;
|
||||
}
|
||||
}
|
||||
|
||||
if (controlName == "AmstradCPC Controller")
|
||||
{
|
||||
/*
|
||||
pictureBox1.Image = Properties.Resources.ZXSpectrumKeyboards;
|
||||
pictureBox1.Size = Properties.Resources.ZXSpectrumKeyboards.Size;
|
||||
tableLayoutPanel1.ColumnStyles[1].Width = Properties.Resources.ZXSpectrumKeyboards.Width;
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// lazy methods, but they're not called often and actually
|
||||
// tracking all of the ControllerConfigPanels wouldn't be simpler
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
this.tbbClose = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.tbbCloseReload = new System.Windows.Forms.ToolStripButton();
|
||||
this.tbbOpenFolder = new System.Windows.Forms.ToolStripButton();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.linkBasePath = new System.Windows.Forms.LinkLabel();
|
||||
|
@ -201,7 +202,8 @@
|
|||
this.tbbImport,
|
||||
this.tbbClose,
|
||||
this.toolStripSeparator1,
|
||||
this.tbbCloseReload});
|
||||
this.tbbCloseReload,
|
||||
this.tbbOpenFolder});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(824, 25);
|
||||
|
@ -289,6 +291,16 @@
|
|||
this.tbbCloseReload.Visible = false;
|
||||
this.tbbCloseReload.Click += new System.EventHandler(this.tbbCloseReload_Click);
|
||||
//
|
||||
// tbbOpenFolder
|
||||
//
|
||||
this.tbbOpenFolder.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
||||
this.tbbOpenFolder.Image = ((System.Drawing.Image)(resources.GetObject("tbbOpenFolder.Image")));
|
||||
this.tbbOpenFolder.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.tbbOpenFolder.Name = "tbbOpenFolder";
|
||||
this.tbbOpenFolder.Size = new System.Drawing.Size(128, 22);
|
||||
this.tbbOpenFolder.Text = "Open Firmware Folder";
|
||||
this.tbbOpenFolder.Click += new System.EventHandler(this.tbbOpenFolder_Click);
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
|
@ -345,7 +357,7 @@
|
|||
this.label2.Location = new System.Drawing.Point(5, 5);
|
||||
this.label2.Margin = new System.Windows.Forms.Padding(5, 5, 3, 0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(383, 13);
|
||||
this.label2.Size = new System.Drawing.Size(395, 13);
|
||||
this.label2.TabIndex = 27;
|
||||
this.label2.Text = "Firmware such as BIOS files are copyrighted material and not provided by BizHawk";
|
||||
//
|
||||
|
@ -407,5 +419,6 @@
|
|||
private System.Windows.Forms.ToolStripButton tbbCloseReload;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
}
|
||||
private System.Windows.Forms.ToolStripButton tbbOpenFolder;
|
||||
}
|
||||
}
|
|
@ -52,11 +52,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
{ "GBC", "Game Boy Color" },
|
||||
{ "PCFX", "PC-FX" },
|
||||
{ "32X", "32X" },
|
||||
{ "ZXSpectrum", "ZX Spectrum" }
|
||||
};
|
||||
{ "ZXSpectrum", "ZX Spectrum" },
|
||||
{ "AmstradCPC", "Amstrad CPC" }
|
||||
};
|
||||
|
||||
public string TargetSystem = null;
|
||||
|
||||
private CheckBox cbAllowImport;
|
||||
|
||||
private const int idUnsure = 0;
|
||||
private const int idMissing = 1;
|
||||
private const int idOk = 2;
|
||||
|
@ -178,6 +181,16 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
RefreshBasePath();
|
||||
|
||||
cbAllowImport = new CheckBox();
|
||||
cbAllowImport.Text = "Allow Importing of Unknown Files";
|
||||
cbAllowImport.BackColor = Color.Transparent;
|
||||
cbAllowImport.CheckAlign = ContentAlignment.MiddleLeft;
|
||||
cbAllowImport.TextAlign = ContentAlignment.MiddleLeft;
|
||||
cbAllowImport.Font = new Font("Segeo UI", 9, FontStyle.Regular, GraphicsUnit.Point, 1, false);
|
||||
cbAllowImport.Checked = false;
|
||||
ToolStripControlHost host = new ToolStripControlHost(cbAllowImport);
|
||||
toolStrip1.Items.Add(host);
|
||||
}
|
||||
|
||||
|
||||
|
@ -341,7 +354,13 @@ namespace BizHawk.Client.EmuHawk
|
|||
DoScan();
|
||||
}
|
||||
|
||||
private void lvFirmwares_KeyDown(object sender, KeyEventArgs e)
|
||||
private void tbbOpenFolder_Click(object sender, EventArgs e)
|
||||
{
|
||||
var frmWares = PathManager.MakeAbsolutePath(Global.Config.PathEntries.FirmwaresPathFragment, null);
|
||||
System.Diagnostics.Process.Start(frmWares);
|
||||
}
|
||||
|
||||
private void lvFirmwares_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.C && e.Control && !e.Alt && !e.Shift)
|
||||
{
|
||||
|
@ -367,20 +386,81 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
ofd.InitialDirectory = currSelectorDir;
|
||||
ofd.RestoreDirectory = true;
|
||||
string frmwarePath = PathManager.MakeAbsolutePath(Global.Config.PathEntries.FirmwaresPathFragment, null);
|
||||
|
||||
if (ofd.ShowDialog() == DialogResult.OK)
|
||||
if (ofd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
// remember the location we selected this firmware from, maybe there are others
|
||||
currSelectorDir = Path.GetDirectoryName(ofd.FileName);
|
||||
|
||||
// for each selected item, set the user choice (even though multiple selection for this operation is no longer allowed)
|
||||
foreach (ListViewItem lvi in lvFirmwares.SelectedItems)
|
||||
{
|
||||
var fr = lvi.Tag as FirmwareDatabase.FirmwareRecord;
|
||||
Global.Config.FirmwareUserSpecifications[fr.ConfigKey] = ofd.FileName;
|
||||
}
|
||||
try
|
||||
{
|
||||
using (var hf = new HawkFile(ofd.FileName))
|
||||
{
|
||||
// for each selected item, set the user choice (even though multiple selection for this operation is no longer allowed)
|
||||
foreach (ListViewItem lvi in lvFirmwares.SelectedItems)
|
||||
{
|
||||
var fr = lvi.Tag as FirmwareDatabase.FirmwareRecord;
|
||||
string filePath = ofd.FileName;
|
||||
|
||||
DoScan();
|
||||
// if the selected file is an archive, allow the user to pick the inside file
|
||||
// to always be copied to the global firmwares directory
|
||||
if (hf.IsArchive)
|
||||
{
|
||||
var ac = new ArchiveChooser(new HawkFile(filePath));
|
||||
int memIdx = -1;
|
||||
|
||||
if (ac.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
memIdx = ac.SelectedMemberIndex;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var insideFile = hf.BindArchiveMember(memIdx);
|
||||
var fileData = insideFile.ReadAllBytes();
|
||||
|
||||
// write to file in the firmwares folder
|
||||
File.WriteAllBytes(Path.Combine(frmwarePath, insideFile.Name), fileData);
|
||||
filePath = Path.Combine(frmwarePath, insideFile.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
// selected file is not an archive
|
||||
// check whether this file is currently outside of the global firmware directory
|
||||
if (currSelectorDir != frmwarePath)
|
||||
{
|
||||
var askMoveResult = MessageBox.Show(this, "The selected custom firmware does not reside in the root of the global firmware directory.\nDo you want to copy it there?", "Import Custom Firmware", MessageBoxButtons.YesNo);
|
||||
if (askMoveResult == DialogResult.Yes)
|
||||
{
|
||||
try
|
||||
{
|
||||
FileInfo fi = new FileInfo(filePath);
|
||||
filePath = Path.Combine(frmwarePath, fi.Name);
|
||||
File.Copy(ofd.FileName, filePath);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(this, "There was an issue copying the file. The customization has NOT been set.\n\n" + ex.StackTrace);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Global.Config.FirmwareUserSpecifications[fr.ConfigKey] = filePath;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(this, "There was an issue during the process. The customization has NOT been set.\n\n" + ex.StackTrace);
|
||||
return;
|
||||
}
|
||||
|
||||
DoScan();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -584,7 +664,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
outfile = Path.Combine(extractpath, myname);
|
||||
File.WriteAllBytes(outfile, ms.ToArray());
|
||||
hf.Unbind();
|
||||
didSomething |= RunImportJobSingle(basepath, outfile, ref errors);
|
||||
|
||||
if (cbAllowImport.Checked || Manager.CanFileBeImported(outfile))
|
||||
{
|
||||
didSomething |= RunImportJobSingle(basepath, outfile, ref errors);
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
|
@ -594,7 +678,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
else
|
||||
{
|
||||
didSomething |= RunImportJobSingle(basepath, f, ref errors);
|
||||
if (cbAllowImport.Checked || Manager.CanFileBeImported(hf.CanonicalFullPath))
|
||||
{
|
||||
didSomething |= RunImportJobSingle(basepath, f, ref errors);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -621,7 +708,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
return base.ProcessCmdKey(ref msg, keyData);
|
||||
}
|
||||
|
||||
private void lvFirmwares_DragEnter(object sender, DragEventArgs e)
|
||||
private void lvFirmwares_DragEnter(object sender, DragEventArgs e)
|
||||
{
|
||||
e.Effect = e.Data.GetDataPresent(DataFormats.FileDrop) ? DragDropEffects.Copy : DragDropEffects.None;
|
||||
}
|
||||
|
|
|
@ -215,6 +215,21 @@
|
|||
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
|
||||
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
|
||||
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="tbbOpenFolder.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
|
||||
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
|
||||
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
|
||||
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
|
||||
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
|
||||
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
|
||||
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
|
||||
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
|
||||
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
|
|
|
@ -395,7 +395,7 @@
|
|||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(86, 13);
|
||||
this.label7.TabIndex = 18;
|
||||
this.label7.Text = "Last Frame Input";
|
||||
this.label7.Text = "Previous Frame Input";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
this.GLideN64Tab = new System.Windows.Forms.TabPage();
|
||||
this.tabControl3 = new System.Windows.Forms.TabControl();
|
||||
this.tabPage5 = new System.Windows.Forms.TabPage();
|
||||
this.GLideN64_FXAA = new System.Windows.Forms.CheckBox();
|
||||
this.label88 = new System.Windows.Forms.Label();
|
||||
this.GLideN64_GammaCorrectionLevel = new System.Windows.Forms.TextBox();
|
||||
this.GLideN64_ForceGammaCorrection = new System.Windows.Forms.CheckBox();
|
||||
|
@ -361,6 +362,25 @@
|
|||
this.SaveButton = new System.Windows.Forms.Button();
|
||||
this.CancelBT = new System.Windows.Forms.Button();
|
||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.GLideN64_ShowInternalResolution = new System.Windows.Forms.CheckBox();
|
||||
this.GLideN64_ShowRenderingResolution = new System.Windows.Forms.CheckBox();
|
||||
this.GLideN64_EnableOverscan = new System.Windows.Forms.CheckBox();
|
||||
this.label90 = new System.Windows.Forms.Label();
|
||||
this.label91 = new System.Windows.Forms.Label();
|
||||
this.label92 = new System.Windows.Forms.Label();
|
||||
this.label93 = new System.Windows.Forms.Label();
|
||||
this.GLideN64_OverscanNtscTop = new System.Windows.Forms.TextBox();
|
||||
this.GLideN64_OverscanNtscBottom = new System.Windows.Forms.TextBox();
|
||||
this.GLideN64_OverscanNtscLeft = new System.Windows.Forms.TextBox();
|
||||
this.GLideN64_OverscanNtscRight = new System.Windows.Forms.TextBox();
|
||||
this.label94 = new System.Windows.Forms.Label();
|
||||
this.label95 = new System.Windows.Forms.Label();
|
||||
this.label96 = new System.Windows.Forms.Label();
|
||||
this.label97 = new System.Windows.Forms.Label();
|
||||
this.GLideN64_OverscanPalTop = new System.Windows.Forms.TextBox();
|
||||
this.GLideN64_OverscanPalBottom = new System.Windows.Forms.TextBox();
|
||||
this.GLideN64_OverscanPalLeft = new System.Windows.Forms.TextBox();
|
||||
this.GLideN64_OverscanPalRight = new System.Windows.Forms.TextBox();
|
||||
this.N64plugintabcontrol.SuspendLayout();
|
||||
this.N64vpluginglobaltab.SuspendLayout();
|
||||
this.GLideN64Tab.SuspendLayout();
|
||||
|
@ -518,7 +538,7 @@
|
|||
this.label47.AutoSize = true;
|
||||
this.label47.Location = new System.Drawing.Point(10, 115);
|
||||
this.label47.Name = "label47";
|
||||
this.label47.Size = new System.Drawing.Size(275, 13);
|
||||
this.label47.Size = new System.Drawing.Size(319, 13);
|
||||
this.label47.TabIndex = 14;
|
||||
this.label47.Text = "(GLideN64 is the newest pluging and has the highest compatibility)";
|
||||
//
|
||||
|
@ -604,6 +624,9 @@
|
|||
//
|
||||
// tabPage5
|
||||
//
|
||||
this.tabPage5.Controls.Add(this.GLideN64_ShowRenderingResolution);
|
||||
this.tabPage5.Controls.Add(this.GLideN64_ShowInternalResolution);
|
||||
this.tabPage5.Controls.Add(this.GLideN64_FXAA);
|
||||
this.tabPage5.Controls.Add(this.label88);
|
||||
this.tabPage5.Controls.Add(this.GLideN64_GammaCorrectionLevel);
|
||||
this.tabPage5.Controls.Add(this.GLideN64_ForceGammaCorrection);
|
||||
|
@ -635,6 +658,16 @@
|
|||
this.tabPage5.Text = "General";
|
||||
this.tabPage5.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// GLideN64_FXAA
|
||||
//
|
||||
this.GLideN64_FXAA.AutoSize = true;
|
||||
this.GLideN64_FXAA.Location = new System.Drawing.Point(6, 237);
|
||||
this.GLideN64_FXAA.Name = "GLideN64_FXAA";
|
||||
this.GLideN64_FXAA.Size = new System.Drawing.Size(53, 17);
|
||||
this.GLideN64_FXAA.TabIndex = 79;
|
||||
this.GLideN64_FXAA.Text = "FXAA";
|
||||
this.GLideN64_FXAA.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label88
|
||||
//
|
||||
this.label88.AutoSize = true;
|
||||
|
@ -1235,6 +1268,23 @@
|
|||
//
|
||||
// tabPage7
|
||||
//
|
||||
this.tabPage7.Controls.Add(this.GLideN64_OverscanPalRight);
|
||||
this.tabPage7.Controls.Add(this.GLideN64_OverscanNtscRight);
|
||||
this.tabPage7.Controls.Add(this.GLideN64_OverscanPalLeft);
|
||||
this.tabPage7.Controls.Add(this.GLideN64_OverscanNtscLeft);
|
||||
this.tabPage7.Controls.Add(this.GLideN64_OverscanPalBottom);
|
||||
this.tabPage7.Controls.Add(this.GLideN64_OverscanNtscBottom);
|
||||
this.tabPage7.Controls.Add(this.GLideN64_OverscanPalTop);
|
||||
this.tabPage7.Controls.Add(this.label97);
|
||||
this.tabPage7.Controls.Add(this.GLideN64_OverscanNtscTop);
|
||||
this.tabPage7.Controls.Add(this.label96);
|
||||
this.tabPage7.Controls.Add(this.label93);
|
||||
this.tabPage7.Controls.Add(this.label95);
|
||||
this.tabPage7.Controls.Add(this.label92);
|
||||
this.tabPage7.Controls.Add(this.label94);
|
||||
this.tabPage7.Controls.Add(this.label91);
|
||||
this.tabPage7.Controls.Add(this.label90);
|
||||
this.tabPage7.Controls.Add(this.GLideN64_EnableOverscan);
|
||||
this.tabPage7.Controls.Add(this.label89);
|
||||
this.tabPage7.Controls.Add(this.GLideN64_UseNativeResolutionFactor);
|
||||
this.tabPage7.Controls.Add(this.GLideN64_DisableFBInfo);
|
||||
|
@ -4382,6 +4432,165 @@
|
|||
this.toolTip1.ReshowDelay = 100;
|
||||
this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;
|
||||
//
|
||||
// GLideN64_ShowInternalResolution
|
||||
//
|
||||
this.GLideN64_ShowInternalResolution.AutoSize = true;
|
||||
this.GLideN64_ShowInternalResolution.Location = new System.Drawing.Point(309, 210);
|
||||
this.GLideN64_ShowInternalResolution.Name = "GLideN64_ShowInternalResolution";
|
||||
this.GLideN64_ShowInternalResolution.Size = new System.Drawing.Size(144, 17);
|
||||
this.GLideN64_ShowInternalResolution.TabIndex = 80;
|
||||
this.GLideN64_ShowInternalResolution.Text = "Show Internal Resolution";
|
||||
this.GLideN64_ShowInternalResolution.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// GLideN64_ShowRenderingResolution
|
||||
//
|
||||
this.GLideN64_ShowRenderingResolution.AutoSize = true;
|
||||
this.GLideN64_ShowRenderingResolution.Location = new System.Drawing.Point(309, 234);
|
||||
this.GLideN64_ShowRenderingResolution.Name = "GLideN64_ShowRenderingResolution";
|
||||
this.GLideN64_ShowRenderingResolution.Size = new System.Drawing.Size(158, 17);
|
||||
this.GLideN64_ShowRenderingResolution.TabIndex = 81;
|
||||
this.GLideN64_ShowRenderingResolution.Text = "Show Rendering Resolution";
|
||||
this.GLideN64_ShowRenderingResolution.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// GLideN64_EnableOverscan
|
||||
//
|
||||
this.GLideN64_EnableOverscan.AutoSize = true;
|
||||
this.GLideN64_EnableOverscan.Location = new System.Drawing.Point(293, 171);
|
||||
this.GLideN64_EnableOverscan.Name = "GLideN64_EnableOverscan";
|
||||
this.GLideN64_EnableOverscan.Size = new System.Drawing.Size(108, 17);
|
||||
this.GLideN64_EnableOverscan.TabIndex = 79;
|
||||
this.GLideN64_EnableOverscan.Text = "Enable Overscan";
|
||||
this.GLideN64_EnableOverscan.UseVisualStyleBackColor = true;
|
||||
this.GLideN64_EnableOverscan.CheckedChanged += new System.EventHandler(this.GLideN64_EnableOverscan_CheckedChanged);
|
||||
//
|
||||
// label90
|
||||
//
|
||||
this.label90.AutoSize = true;
|
||||
this.label90.Location = new System.Drawing.Point(290, 201);
|
||||
this.label90.Name = "label90";
|
||||
this.label90.Size = new System.Drawing.Size(58, 13);
|
||||
this.label90.TabIndex = 80;
|
||||
this.label90.Text = "NTSC Top";
|
||||
//
|
||||
// label91
|
||||
//
|
||||
this.label91.AutoSize = true;
|
||||
this.label91.Location = new System.Drawing.Point(290, 224);
|
||||
this.label91.Name = "label91";
|
||||
this.label91.Size = new System.Drawing.Size(72, 13);
|
||||
this.label91.TabIndex = 81;
|
||||
this.label91.Text = "NTSC Bottom";
|
||||
//
|
||||
// label92
|
||||
//
|
||||
this.label92.AutoSize = true;
|
||||
this.label92.Location = new System.Drawing.Point(290, 247);
|
||||
this.label92.Name = "label92";
|
||||
this.label92.Size = new System.Drawing.Size(57, 13);
|
||||
this.label92.TabIndex = 82;
|
||||
this.label92.Text = "NTSC Left";
|
||||
//
|
||||
// label93
|
||||
//
|
||||
this.label93.AutoSize = true;
|
||||
this.label93.Location = new System.Drawing.Point(290, 269);
|
||||
this.label93.Name = "label93";
|
||||
this.label93.Size = new System.Drawing.Size(64, 13);
|
||||
this.label93.TabIndex = 83;
|
||||
this.label93.Text = "NTSC Right";
|
||||
//
|
||||
// GLideN64_OverscanNtscTop
|
||||
//
|
||||
this.GLideN64_OverscanNtscTop.Location = new System.Drawing.Point(368, 198);
|
||||
this.GLideN64_OverscanNtscTop.Name = "GLideN64_OverscanNtscTop";
|
||||
this.GLideN64_OverscanNtscTop.Size = new System.Drawing.Size(42, 20);
|
||||
this.GLideN64_OverscanNtscTop.TabIndex = 84;
|
||||
//
|
||||
// GLideN64_OverscanNtscBottom
|
||||
//
|
||||
this.GLideN64_OverscanNtscBottom.Location = new System.Drawing.Point(368, 221);
|
||||
this.GLideN64_OverscanNtscBottom.Name = "GLideN64_OverscanNtscBottom";
|
||||
this.GLideN64_OverscanNtscBottom.Size = new System.Drawing.Size(42, 20);
|
||||
this.GLideN64_OverscanNtscBottom.TabIndex = 85;
|
||||
//
|
||||
// GLideN64_OverscanNtscLeft
|
||||
//
|
||||
this.GLideN64_OverscanNtscLeft.Location = new System.Drawing.Point(368, 244);
|
||||
this.GLideN64_OverscanNtscLeft.Name = "GLideN64_OverscanNtscLeft";
|
||||
this.GLideN64_OverscanNtscLeft.Size = new System.Drawing.Size(42, 20);
|
||||
this.GLideN64_OverscanNtscLeft.TabIndex = 86;
|
||||
//
|
||||
// GLideN64_OverscanNtscRight
|
||||
//
|
||||
this.GLideN64_OverscanNtscRight.Location = new System.Drawing.Point(368, 266);
|
||||
this.GLideN64_OverscanNtscRight.Name = "GLideN64_OverscanNtscRight";
|
||||
this.GLideN64_OverscanNtscRight.Size = new System.Drawing.Size(42, 20);
|
||||
this.GLideN64_OverscanNtscRight.TabIndex = 87;
|
||||
//
|
||||
// label94
|
||||
//
|
||||
this.label94.AutoSize = true;
|
||||
this.label94.Location = new System.Drawing.Point(448, 201);
|
||||
this.label94.Name = "label94";
|
||||
this.label94.Size = new System.Drawing.Size(49, 13);
|
||||
this.label94.TabIndex = 80;
|
||||
this.label94.Text = "PAL Top";
|
||||
//
|
||||
// label95
|
||||
//
|
||||
this.label95.AutoSize = true;
|
||||
this.label95.Location = new System.Drawing.Point(448, 224);
|
||||
this.label95.Name = "label95";
|
||||
this.label95.Size = new System.Drawing.Size(63, 13);
|
||||
this.label95.TabIndex = 81;
|
||||
this.label95.Text = "PAL Bottom";
|
||||
//
|
||||
// label96
|
||||
//
|
||||
this.label96.AutoSize = true;
|
||||
this.label96.Location = new System.Drawing.Point(448, 247);
|
||||
this.label96.Name = "label96";
|
||||
this.label96.Size = new System.Drawing.Size(48, 13);
|
||||
this.label96.TabIndex = 82;
|
||||
this.label96.Text = "PAL Left";
|
||||
//
|
||||
// label97
|
||||
//
|
||||
this.label97.AutoSize = true;
|
||||
this.label97.Location = new System.Drawing.Point(448, 269);
|
||||
this.label97.Name = "label97";
|
||||
this.label97.Size = new System.Drawing.Size(55, 13);
|
||||
this.label97.TabIndex = 83;
|
||||
this.label97.Text = "PAL Right";
|
||||
//
|
||||
// GLideN64_OverscanPalTop
|
||||
//
|
||||
this.GLideN64_OverscanPalTop.Location = new System.Drawing.Point(517, 198);
|
||||
this.GLideN64_OverscanPalTop.Name = "GLideN64_OverscanPalTop";
|
||||
this.GLideN64_OverscanPalTop.Size = new System.Drawing.Size(42, 20);
|
||||
this.GLideN64_OverscanPalTop.TabIndex = 84;
|
||||
//
|
||||
// GLideN64_OverscanPalBottom
|
||||
//
|
||||
this.GLideN64_OverscanPalBottom.Location = new System.Drawing.Point(517, 221);
|
||||
this.GLideN64_OverscanPalBottom.Name = "GLideN64_OverscanPalBottom";
|
||||
this.GLideN64_OverscanPalBottom.Size = new System.Drawing.Size(42, 20);
|
||||
this.GLideN64_OverscanPalBottom.TabIndex = 85;
|
||||
//
|
||||
// GLideN64_OverscanPalLeft
|
||||
//
|
||||
this.GLideN64_OverscanPalLeft.Location = new System.Drawing.Point(517, 244);
|
||||
this.GLideN64_OverscanPalLeft.Name = "GLideN64_OverscanPalLeft";
|
||||
this.GLideN64_OverscanPalLeft.Size = new System.Drawing.Size(42, 20);
|
||||
this.GLideN64_OverscanPalLeft.TabIndex = 86;
|
||||
//
|
||||
// GLideN64_OverscanPalRight
|
||||
//
|
||||
this.GLideN64_OverscanPalRight.Location = new System.Drawing.Point(517, 266);
|
||||
this.GLideN64_OverscanPalRight.Name = "GLideN64_OverscanPalRight";
|
||||
this.GLideN64_OverscanPalRight.Size = new System.Drawing.Size(42, 20);
|
||||
this.GLideN64_OverscanPalRight.TabIndex = 87;
|
||||
//
|
||||
// N64VideoPluginconfig
|
||||
//
|
||||
this.AcceptButton = this.SaveButton;
|
||||
|
@ -4775,5 +4984,25 @@
|
|||
private System.Windows.Forms.TextBox GLideN64_GammaCorrectionLevel;
|
||||
private System.Windows.Forms.Label label89;
|
||||
private System.Windows.Forms.TextBox GLideN64_UseNativeResolutionFactor;
|
||||
private System.Windows.Forms.CheckBox GLideN64_FXAA;
|
||||
private System.Windows.Forms.CheckBox GLideN64_ShowRenderingResolution;
|
||||
private System.Windows.Forms.CheckBox GLideN64_ShowInternalResolution;
|
||||
private System.Windows.Forms.CheckBox GLideN64_EnableOverscan;
|
||||
private System.Windows.Forms.TextBox GLideN64_OverscanPalRight;
|
||||
private System.Windows.Forms.TextBox GLideN64_OverscanNtscRight;
|
||||
private System.Windows.Forms.TextBox GLideN64_OverscanPalLeft;
|
||||
private System.Windows.Forms.TextBox GLideN64_OverscanNtscLeft;
|
||||
private System.Windows.Forms.TextBox GLideN64_OverscanPalBottom;
|
||||
private System.Windows.Forms.TextBox GLideN64_OverscanNtscBottom;
|
||||
private System.Windows.Forms.TextBox GLideN64_OverscanPalTop;
|
||||
private System.Windows.Forms.Label label97;
|
||||
private System.Windows.Forms.TextBox GLideN64_OverscanNtscTop;
|
||||
private System.Windows.Forms.Label label96;
|
||||
private System.Windows.Forms.Label label93;
|
||||
private System.Windows.Forms.Label label95;
|
||||
private System.Windows.Forms.Label label92;
|
||||
private System.Windows.Forms.Label label94;
|
||||
private System.Windows.Forms.Label label91;
|
||||
private System.Windows.Forms.Label label90;
|
||||
}
|
||||
}
|
|
@ -30,6 +30,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
"1600 x 1200",
|
||||
"1920 x 1440",
|
||||
"2048 x 1536",
|
||||
"2880 x 2160",
|
||||
"Custom"
|
||||
};
|
||||
|
||||
|
@ -408,6 +409,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
_ss.GLideN64Plugin.CacheSize = GLideN64_CacheSize.Text.IsSigned()
|
||||
? int.Parse(GLideN64_CacheSize.Text)
|
||||
: 500;
|
||||
_ss.GLideN64Plugin.ShowInternalResolution = GLideN64_ShowInternalResolution.Checked;
|
||||
_ss.GLideN64Plugin.ShowRenderingResolution = GLideN64_ShowRenderingResolution.Checked;
|
||||
_ss.GLideN64Plugin.FXAA = GLideN64_FXAA.Checked;
|
||||
_ss.GLideN64Plugin.EnableNoise = GLideN64_EnableNoise.Checked;
|
||||
_ss.GLideN64Plugin.EnableLOD = GLideN64_EnableLOD.Checked;
|
||||
_ss.GLideN64Plugin.EnableHWLighting = GLideN64_HWLighting.Checked;
|
||||
|
@ -453,6 +457,32 @@ namespace BizHawk.Client.EmuHawk
|
|||
? float.Parse(GLideN64_GammaCorrectionLevel.Text)
|
||||
: 2.0f;
|
||||
|
||||
_ss.GLideN64Plugin.EnableOverscan = GLideN64_EnableOverscan.Checked;
|
||||
_ss.GLideN64Plugin.OverscanNtscTop = GLideN64_OverscanNtscTop.Text.IsSigned()
|
||||
? int.Parse(GLideN64_OverscanNtscTop.Text)
|
||||
: 0;
|
||||
_ss.GLideN64Plugin.OverscanNtscBottom = GLideN64_OverscanNtscBottom.Text.IsSigned()
|
||||
? int.Parse(GLideN64_OverscanNtscBottom.Text)
|
||||
: 0;
|
||||
_ss.GLideN64Plugin.OverscanNtscLeft = GLideN64_OverscanNtscLeft.Text.IsSigned()
|
||||
? int.Parse(GLideN64_OverscanNtscLeft.Text)
|
||||
: 0;
|
||||
_ss.GLideN64Plugin.OverscanNtscRight = GLideN64_OverscanNtscRight.Text.IsSigned()
|
||||
? int.Parse(GLideN64_OverscanNtscRight.Text)
|
||||
: 0;
|
||||
_ss.GLideN64Plugin.OverscanPalTop = GLideN64_OverscanPalTop.Text.IsSigned()
|
||||
? int.Parse(GLideN64_OverscanPalTop.Text)
|
||||
: 0;
|
||||
_ss.GLideN64Plugin.OverscanPalBottom = GLideN64_OverscanPalBottom.Text.IsSigned()
|
||||
? int.Parse(GLideN64_OverscanPalBottom.Text)
|
||||
: 0;
|
||||
_ss.GLideN64Plugin.OverscanPalLeft = GLideN64_OverscanPalLeft.Text.IsSigned()
|
||||
? int.Parse(GLideN64_OverscanPalLeft.Text)
|
||||
: 0;
|
||||
_ss.GLideN64Plugin.OverscanPalRight = GLideN64_OverscanPalRight.Text.IsSigned()
|
||||
? int.Parse(GLideN64_OverscanPalRight.Text)
|
||||
: 0;
|
||||
|
||||
_ss.GLideN64Plugin.EnableN64DepthCompare = GLideN64_EnableN64DepthCompare.Checked;
|
||||
_ss.GLideN64Plugin.EnableCopyColorToRDRAM = GLideN64_EnableCopyColorToRDRAM.SelectedItem
|
||||
.ToString()
|
||||
|
@ -748,6 +778,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
.PopulateFromEnum<N64SyncSettings.N64GLideN64PluginSettings.bilinearFilteringMode>(_ss.GLideN64Plugin.bilinearMode);
|
||||
GLideN64_MaxAnisotropy.Checked = _ss.GLideN64Plugin.MaxAnisotropy;
|
||||
GLideN64_CacheSize.Text = _ss.GLideN64Plugin.CacheSize.ToString();
|
||||
GLideN64_ShowInternalResolution.Checked = _ss.GLideN64Plugin.ShowInternalResolution;
|
||||
GLideN64_ShowRenderingResolution.Checked = _ss.GLideN64Plugin.ShowRenderingResolution;
|
||||
GLideN64_FXAA.Checked = _ss.GLideN64Plugin.FXAA;
|
||||
GLideN64_EnableNoise.Checked = _ss.GLideN64Plugin.EnableNoise;
|
||||
GLideN64_EnableLOD.Checked = _ss.GLideN64Plugin.EnableLOD;
|
||||
GLideN64_HWLighting.Checked = _ss.GLideN64Plugin.EnableHWLighting;
|
||||
|
@ -785,6 +818,25 @@ namespace BizHawk.Client.EmuHawk
|
|||
GLideN64_ForceGammaCorrection.Checked = _ss.GLideN64Plugin.ForceGammaCorrection;
|
||||
GLideN64_GammaCorrectionLevel.Text = _ss.GLideN64Plugin.GammaCorrectionLevel.ToString();
|
||||
|
||||
GLideN64_OverscanNtscTop.Enabled =
|
||||
GLideN64_OverscanNtscBottom.Enabled =
|
||||
GLideN64_OverscanNtscLeft.Enabled =
|
||||
GLideN64_OverscanNtscRight.Enabled =
|
||||
GLideN64_OverscanPalTop.Enabled =
|
||||
GLideN64_OverscanPalBottom.Enabled =
|
||||
GLideN64_OverscanPalLeft.Enabled =
|
||||
GLideN64_OverscanPalRight.Enabled =
|
||||
GLideN64_EnableOverscan.Checked =
|
||||
_ss.GLideN64Plugin.EnableOverscan;
|
||||
GLideN64_OverscanNtscTop.Text = _ss.GLideN64Plugin.OverscanNtscTop.ToString();
|
||||
GLideN64_OverscanNtscBottom.Text = _ss.GLideN64Plugin.OverscanNtscBottom.ToString();
|
||||
GLideN64_OverscanNtscLeft.Text = _ss.GLideN64Plugin.OverscanNtscLeft.ToString();
|
||||
GLideN64_OverscanNtscRight.Text = _ss.GLideN64Plugin.OverscanNtscRight.ToString();
|
||||
GLideN64_OverscanPalTop.Text = _ss.GLideN64Plugin.OverscanPalTop.ToString();
|
||||
GLideN64_OverscanPalBottom.Text = _ss.GLideN64Plugin.OverscanPalBottom.ToString();
|
||||
GLideN64_OverscanPalLeft.Text = _ss.GLideN64Plugin.OverscanPalLeft.ToString();
|
||||
GLideN64_OverscanPalRight.Text = _ss.GLideN64Plugin.OverscanPalRight.ToString();
|
||||
|
||||
UpdateGLideN64HacksSection();
|
||||
if (!_ss.GLideN64Plugin.UseDefaultHacks)
|
||||
{
|
||||
|
@ -1094,6 +1146,19 @@ namespace BizHawk.Client.EmuHawk
|
|||
GLideN64_EnableCopyAuxiliaryToRDRAM.Enabled = val;
|
||||
}
|
||||
|
||||
private void GLideN64_EnableOverscan_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GLideN64_OverscanNtscTop.Enabled =
|
||||
GLideN64_OverscanNtscBottom.Enabled =
|
||||
GLideN64_OverscanNtscLeft.Enabled =
|
||||
GLideN64_OverscanNtscRight.Enabled =
|
||||
GLideN64_OverscanPalTop.Enabled =
|
||||
GLideN64_OverscanPalBottom.Enabled =
|
||||
GLideN64_OverscanPalLeft.Enabled =
|
||||
GLideN64_OverscanPalRight.Enabled =
|
||||
GLideN64_EnableOverscan.Checked;
|
||||
}
|
||||
|
||||
private void GlideUseDefaultHacks1_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlideUseDefaultHacks2.Checked = GlideUseDefaultHacks1.Checked;
|
||||
|
|
|
@ -120,6 +120,9 @@
|
|||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="AnisotropicFiltering_LB.ToolTip" xml:space="preserve">
|
||||
<value>Enable/Disable Anisotropic Filtering for Mipmapping (0=no filtering, 2-16=quality).
|
||||
This is uneffective if Mipmapping is 0.
|
||||
|
@ -133,6 +136,9 @@ This is uneffective if Mipmapping is 0.
|
|||
If the given value is to high to be supported by your graphic card, the value will be
|
||||
the highest value your graphic card can support. Better result with Trilinear filtering</value>
|
||||
</data>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>36</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
|
|
|
@ -33,6 +33,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
"%recent%",
|
||||
"%exe%",
|
||||
"%rom%",
|
||||
".\\",
|
||||
"..\\",
|
||||
};
|
||||
|
@ -308,6 +309,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
private void Ok_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveSettings();
|
||||
|
||||
PathManager.RefreshTempPath();
|
||||
|
||||
GlobalWin.OSD.AddMessage("Path settings saved");
|
||||
Close();
|
||||
}
|
||||
|
|
|
@ -608,7 +608,7 @@
|
|||
//
|
||||
this.BufferSizeUpDown.Location = new System.Drawing.Point(93, 135);
|
||||
this.BufferSizeUpDown.Maximum = new decimal(new int[] {
|
||||
32768,
|
||||
2097512,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue