Merge pull request #1 from project64/master

test
This commit is contained in:
AmbientMalice 2015-03-04 09:31:26 +10:00
commit cec3072fa6
144 changed files with 21509 additions and 9023 deletions

23
.gitignore vendored
View File

@ -1,4 +1,5 @@
*.user
/*.ncb
/*.opensdf
/*.sdf
/*.suo
@ -13,6 +14,7 @@
/Bin/Beta Release/map/Project64.map
/Bin/Beta Release/pdb/Project64.pdb
/Bin/Beta Release/Project64.exe
/Bin/Debug/Config/Glide64.rdb
/Bin/Debug/Config/Project64.cache3
/Bin/Debug/Config/Project64.cht
/Bin/Debug/Config/Project64.rdb
@ -24,8 +26,10 @@
/Bin/Debug/map
/Bin/Debug/pdb
/Bin/Debug/Project64.exe
/Bin/Debug/Project64.leak.csv
/Bin/Debug/Save
/Bin/Debug/Screenshots
/Bin/Debug/Setup Project64*.exe
/Bin/Debug/SyncPlugin
/Bin/External Release/Config/Project64.cache3
/Bin/External Release/Config/Project64.cfg
@ -39,6 +43,7 @@
/Bin/External Release/Logs/Project64.log
/Bin/External Release/Logs/RSP_x86Log.txt
/Bin/External Release/Project64.exe
/Bin/Package
/Bin/Release/d3d syslog.txt
/Bin/Release/d3d syslog.txt.bak
/Bin/Release/lib
@ -49,9 +54,14 @@
/Bin/Release/Save
/Bin/Release/Screenshots
/Bin/Release/Setup Project64*.exe
/Bin/Release/SortRdb.exe
/Bin/Release/SyncPlugin
/build
/Config/Project64.cache3
/Config/Project64.cfg
/Config/Project64.rdn
/Config/Project64.sc3
/Config/Project64.zcache
/ipch
/Plugin/GFX/lib/PJ64Glide64.exp
/Plugin/GFX/lib/PJ64Glide64.lib
@ -63,22 +73,19 @@
/Plugin/GFX/pdb/PJ64Glide64_d.pdb
/Plugin/GFX/PJ64Glide64.dll
/Plugin/GFX/PJ64Glide64_d.dll
/Plugin/Input/PJ64_NRage.dll
/Plugin/Input/PJ64_NRage_d.dll
/Plugin/Input/lib
/Plugin/Input/map
/Plugin/Input/pdb
/Plugin/RSP/lib
/Plugin/RSP/map
/Plugin/RSP/pdb
/Plugin/RSP/RSP 1.7.dll
/Plugin/RSP/RSP_d 1.7.dll
/Project64.ncb
/Project64.suo
/Save
/Source/3rd Party/wx/lib/vc_lib/mswu/wx/msw/rcdefs.h
/Source/3rd Party/wx/lib/vc_lib/mswud/wx/msw/rcdefs.h
/Source/Glide64/Glide64.aps
/Source/Project64/User Interface/UI Resources.aps
/Textures
/*.ncb
/Plugin/Input/PJ64_NRage.dll
/Plugin/Input/PJ64_NRage_d.dll
/Plugin/Input/lib
/Plugin/Input/map
/Plugin/Input/pdb

View File

@ -1216,15 +1216,15 @@ Good Name=F-ZERO X (U)
Internal Name=F-ZERO X
depthmode=1
[53CCAD28-AEA6EDA2-C:45]
Good Name=F1 Racing Championship (B)
[3CECBCB8-6126BF07-C:50]
Good Name=F1 Racing Championship (E) (M5)
Internal Name=F1RacingChampionship
buff_clear=0
depthmode=0
swapmode=0
[3CECBCB8-6126BF07-C:50]
Good Name=F1 Racing Championship (E) (M5)
[53CCAD28-AEA6EDA2-C:45]
Good Name=F1 Racing Championship (U)
Internal Name=F1RacingChampionship
buff_clear=0
depthmode=0
@ -1345,6 +1345,12 @@ Internal Name=Glover
depthmode=0
filtering=1
[25414DCA-FD553293-C:0]
Good Name=Glover (U) (Beta)
Internal Name=whack 'n' roll
depthmode=0
filtering=1
[8E6E01FF-CCB4F948-C:45]
Good Name=Glover (U)
Internal Name=Glover
@ -2297,12 +2303,7 @@ Internal Name=EVANGELION
depthmode=1
[D094B170-D7C4B5CC-C:45]
Good Name=NFL Blitz (U) (V1.0)
Internal Name=NFL BLITZ
lodmode=2
[5B755842-6CA39C7A-C:45]
Good Name=NFL Blitz (U) (V1.1)
Good Name=NFL Blitz (U)
Internal Name=NFL BLITZ
lodmode=2
@ -2312,7 +2313,12 @@ Internal Name=NFL BLITZ SPECIAL ED
lodmode=2
[15A00969-34E5A285-C:45]
Good Name=NFL Blitz 2000 (U)
Good Name=NFL Blitz 2000 (U) (V1.0)
Internal Name=blitz2k
lodmode=2
[5B755842-6CA39C7A-C:45]
Good Name=NFL Blitz 2000 (U) (V1.1)
Internal Name=blitz2k
lodmode=2
@ -3332,6 +3338,15 @@ detect_cpu_write=1
filtering=2
fog=0
[BC9B2CC3-4ED04DA5-C:37]
Good Name=StarCraft 64 (U) (Beta)
Internal Name=Á2فE8y)±tU…y7àÕ]¹9
aspect=2
depthmode=1
detect_cpu_write=1
filtering=2
fog=0
[0684FBFB-5D3EA8A5-C:45]
Good Name=StarCraft 64 (U)
Internal Name=STARCRAFT 64

View File

@ -12,7 +12,7 @@ Homepage=www.pj64-emu.com
[Microcode Identifiers]
//38221D7F=0 //SD Hiryuu no Ken Densetsu (J), near start (Smiff)
//426EA66D=0 //Blast Corps (U) (v1.1), map screen (64ultramaniac)
//426EA66D=0 //Blast Corps (U) (V1.1), map screen (64ultramaniac)
//56D032C9=8 //Fox Sports College Hoops 99 (U) (Duncan)
//49571B97=8 //Turok2 map (maybe not correct? doesn't show)
//EBD45CC3=0 //Wipeout (E), ship explosion (Gent)
@ -1918,6 +1918,7 @@ Good Name=Duke Nukem - ZER0 H0UR (E)
Internal Name=DUKE NUKEM ZERO HOUR
Status=Compatible
Cheat0=50000F04 0000,811CBD00 0000 //Neko's Potential freeze fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Counter Factor=1
RDRAM Size=8
@ -1926,6 +1927,7 @@ Good Name=Duke Nukem - ZER0 H0UR (F)
Internal Name=DUKE NUKEM ZERO HOUR
Status=Compatible
Cheat0=50000F04 0000,811D79F8 0000 //Neko's 1st level freeze fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Counter Factor=1
RDRAM Size=8
@ -1935,6 +1937,7 @@ Good Name=Duke Nukem - ZER0 H0UR (U)
Internal Name=DUKE NUKEM ZERO HOUR
Status=Compatible
Cheat0=50000F04 0000,811CB960 0000 //Neko's 1st level freeze fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Counter Factor=1
RDRAM Size=8
@ -2199,12 +2202,6 @@ Emulate Clear=0
Primary Frame Buffer=0
Self Texture=0
[53CCAD28-AEA6EDA2-C:45]
Good Name=F1 Racing Championship (B)
Internal Name=F1RacingChampionship
Status=Issues (plugin)
Plugin Note=[video] errors:resolution issues
[3CECBCB8-6126BF07-C:50]
Good Name=F1 Racing Championship (E) (M5)
Internal Name=F1RacingChampionship
@ -2217,6 +2214,18 @@ Primary Frame Buffer=0
RDRAM Size=8
Self Texture=0
[53CCAD28-AEA6EDA2-C:45]
Good Name=F1 Racing Championship (U)
Internal Name=F1RacingChampionship
Status=Issues (plugin)
Plugin Note=[video] errors:resolution issues
Clear Frame=0
Culling=1
Emulate Clear=0
Primary Frame Buffer=0
RDRAM Size=8
Self Texture=0
[6DFF4C37-B1B763FD-C:4A]
Good Name=Famista 64 (J)
Internal Name=̧нÀ 64
@ -2507,19 +2516,34 @@ Emulate Clear=0
Primary Frame Buffer=0
Self Texture=0
[25414DCA-FD553293-C:0]
Good Name=Glover (U) (Beta)
Internal Name=whack 'n' roll
Status=Compatible
Clear Frame=0
Culling=1
Emulate Clear=0
Primary Frame Buffer=0
Self Texture=0
[8E6E01FF-CCB4F948-C:45]
Good Name=Glover (U)
Internal Name=Glover
Status=Compatible
Clear Frame=0
Culling=1
Emulate Clear=0
Primary Frame Buffer=0
Self Texture=0
[B7F40BCF-553556A5-C:45]
Good Name=Glover 2 (Beta)
Good Name=Glover 2 (U) (Beta)
Internal Name=Glover 2
Status=Issues (plugin)
Plugin Note=[video] errors:textures
[8E9F21D2-DC19C5AB-C:45]
Good Name=Glover 2 (Early Beta)
Good Name=Glover 2 (U) (Early Beta)
Internal Name=Glover 2
Status=Issues (plugin)
Plugin Note=[video] errors:textures
@ -2872,6 +2896,8 @@ Internal Name=NAGANO OLYMPICS
Status=Compatible
Cheat0=D100166C 8DCF,8100166C 3C01,D100166E 0000,8100166E 4B4D,D1001670 3C01,81001670 3421,D1001672 4B4D,81001672 4300,D1001674 3421,81001674 0001,D1001676 4300,81001676 7821
Cheat1=D10016C8 8DCF,810016C8 3C01,D10016CA 0000,810016CA 4B4D,D10016CC 3C01,810016CC 3421,D10016CE 4B4D,810016CE 4300,D10016D0 3421,810016D0 0001,D10016D2 4300,810016D2 7821
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
//================ I ================
[77DA3B8D-162B0D7C-C:4A]
@ -4125,6 +4151,8 @@ Internal Name=NAGANO OLYMPICS
Status=Compatible
Cheat0=D100164C 8DCF,8100164C 3C01,D100164E 0000,8100164E 4B4D,D1001650 3C01,81001650 3421,D1001652 4B4D,81001652 4300,D1001654 3421,81001654 0001,D1001656 4300,81001656 7821
Cheat1=D10016A8 8DCF,810016A8 3C01,D10016AA 0000,810016AA 4B4D,D10016AC 3C01,810016AC 3421,D10016AE 4B4D,810016AE 4300,D10016B0 3421,810016B0 0001,D10016B2 4300,810016B2 7821
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[8D2BAE98-D73725BF-C:45]
Good Name=Nagano Winter Olympics '98 (U)
@ -4133,6 +4161,8 @@ Status=Compatible
AiCountPerBytes=200
Cheat0=D100165C 8DCF,8100165C 3C01,D100165E 0000,8100165E 4B4D,D1001660 3C01,81001660 3421,D1001662 4B4D,81001662 4300,D1001664 3421,81001664 0001,D1001666 4300,81001666 7821
Cheat1=D10016B8 8DCF,810016B8 3C01,D10016BA 0000,810016BA 4B4D,D10016BC 3C01,810016BC 3421,D10016BE 4B4D,810016BE 4300,D10016C0 3421,810016C0 0001,D10016C2 4300,810016C2 7821
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[5129B6DA-9DEF3C8C-C:45]
Good Name=Namco Museum 64 (U)
@ -4298,12 +4328,7 @@ Save Type=16kbit Eeprom
Self Texture=0
[D094B170-D7C4B5CC-C:45]
Good Name=NFL Blitz (U) (V1.0)
Internal Name=NFL BLITZ
Status=Compatible
[5B755842-6CA39C7A-C:45]
Good Name=NFL Blitz (U) (V1.1)
Good Name=NFL Blitz (U)
Internal Name=NFL BLITZ
Status=Compatible
@ -4313,7 +4338,12 @@ Internal Name=NFL BLITZ SPECIAL ED
Status=Compatible
[15A00969-34E5A285-C:45]
Good Name=NFL Blitz 2000 (U)
Good Name=NFL Blitz 2000 (U) (V1.0)
Internal Name=blitz2k
Status=Compatible
[5B755842-6CA39C7A-C:45]
Good Name=NFL Blitz 2000 (U) (V1.1)
Internal Name=blitz2k
Status=Compatible
@ -4731,6 +4761,7 @@ Internal Name=Pilot Wings64
Status=Compatible
Plugin Note=[video] (see GameFAQ)
Cheat0=D0264361 0012,80264361 00FF,D0264BE1 0012,80264BE1 00FF,D0264DA1 0012,80264DA1 00FF,D02647E1 0012,802647E1 00FF,D02646A1 0012,802646A1 00FF,D0264661 0012,80264661 00FF,D02649A1 0012,802649A1 00FF,D0264BA1 0012,80264BA1 00FF,D0264AA1 0012,80264AA1 00FF,D02641E1 0020,802641E1 00FF,D02648E1 0020,802648E1 00FF,D0264D61 0020,80264D61 00FF,D0264A21 0020,80264A21 00FF,D02645A1 0020,802645A1 00FF,D02647A1 0020,802647A1 00FF,D02642A1 0029,802642A1 00FF,D0264921 0029,80264921 00FF,D0264621 0029,80264621 00FF,D0264A21 0029,80264A21 00FF,D0264C61 0029,80264C61 00FF,D02647A1 0029,802647A1 00FF,D0264FE1 0029,80264FE1 00FF,D0265161 0029,80265161 00FF,D0264AA1 0029,80264AA1 00FF,D02641E1 003D,802641E1 00FF,D02649E1 003D,802649E1 00FF,D0264561 003D,80264561 00FF,D02646E1 003D,802646E1 00FF,D0264721 003D,80264721 00FF //Land Shadow Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Counter Factor=3
@ -4740,6 +4771,7 @@ Internal Name=Pilot Wings64
Status=Compatible
Plugin Note=[video] (see GameFAQ)
Cheat0=D02639B1 0012,802639B1 00FF,D0264231 0012,80264231 00FF,D02643F1 0012,802643F1 00FF,D0263E31 0012,80263E31 00FF,D0263CF1 0012,80263CF1 00FF,D0263CB1 0012,80263CB1 00FF,D0263FF1 0012,80263FF1 00FF,D02641F1 0012,802641F1 00FF,D02640F1 0012,802640F1 00FF,D0263831 0020,80263831 00FF,D0263F31 0020,80263F31 00FF,D02643B1 0020,802643B1 00FF,D0264071 0020,80264071 00FF,D0263BF1 0020,80263BF1 00FF,D0263DF1 0020,80263DF1 00FF,D02638F1 0029,802638F1 00FF,D0263F71 0029,80263F71 00FF,D0263C71 0029,80263C71 00FF,D0264071 0029,80264071 00FF,D02642B1 0029,802642B1 00FF,D0263DF1 0029,80263DF1 00FF,D0264631 0029,80264631 00FF,D02647B1 0029,802647B1 00FF,D02640F1 0029,802640F1 00FF,D0263831 003D,80263831 00FF,D0264031 003D,80264031 00FF,D0263BB1 003D,80263BB1 00FF,D0263D31 003D,80263D31 00FF,D0263D71 003D,80263D71 00FF //Land Shadow Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Counter Factor=3
[C851961C-78FCAAFA-C:45]
@ -4748,6 +4780,7 @@ Internal Name=Pilot Wings64
Status=Compatible
Plugin Note=[video] (see GameFAQ)
Cheat0=D0263B41 0012,80263B41 00FF,D02643C1 0012,802643C1 00FF,D0264581 0012,80264581 00FF,D0263FC1 0012,80263FC1 00FF,D0263E81 0012,80263E81 00FF,D0263E41 0012,80263E41 00FF,D0264181 0012,80264181 00FF,D0264381 0012,80264381 00FF,D0264281 0012,80264281 00FF,D02639C1 0020,802639C1 00FF,D02640C1 0020,802640C1 00FF,D0264541 0020,80264541 00FF,D0264201 0020,80264201 00FF,D0263D81 0020,80263D81 00FF,D0263F81 0020,80263F81 00FF,D0263A81 0029,80263A81 00FF,D0264101 0029,80264101 00FF,D0263E01 0029,80263E01 00FF,D0264201 0029,80264201 00FF,D0264441 0029,80264441 00FF,D0263F81 0029,80263F81 00FF,D02647C1 0029,802647C1 00FF,D0264941 0029,80264941 00FF,D0264281 0029,80264281 00FF,D02639C1 003D,802639C1 00FF,D02641C1 003D,802641C1 00FF,D0263D41 003D,80263D41 00FF,D0263EC1 003D,80263EC1 00FF,D0263F01 003D,80263F01 00FF //Land Shadow Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Counter Factor=3
Culling=1
@ -4782,6 +4815,8 @@ Internal Name=POKEMON SNAP
Status=Compatible
Cheat0=D1382D1C 802C,80382D0F 0000 //Pass 1st Level and Controller Fix
Cheat1=D11E3C44 2881,811E3C44 2001,D11E3C46 0098,811E3C46 0001 //Make Picture selectable
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[4FF5976F-ACF559D8-C:50]
Good Name=Pokemon Snap (E)
@ -4789,6 +4824,8 @@ Internal Name=POKEMON SNAP
Status=Compatible
Cheat0=D1381BFC 802C,80381BEF 0000 //Pass 1st Level and Controller Fix
Cheat1=D11E3824 2881,811E3824 2001,D11E3826 0098,811E3826 0001 //Make Picture selectable
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
[BA6C293A-9FAFA338-C:46]
@ -4797,13 +4834,17 @@ Internal Name=POKEMON SNAP
Status=Compatible
Cheat0=D1381BFC 802C,80381BEF 0000 //Pass 1st Level and Controller Fix
Cheat1=D11E3744 2881,811E3744 2001,D11E3746 0098,811E3746 0001 //Make Picture selectable
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[5753720D-2A8A884D-C:44]
Good Name=Pokemon Snap (G)
Internal Name=POKEMON SNAP
Status=Compatible
Cheat0=D1381BDC 802C,80381BCF 0000 //Pass 1st Level and Controller Fix
Cheat2=D11E3744 2881,811E3744 2001,D11E3746 0098,811E3746 0001 //Make Picture selectable
Cheat1=D11E3744 2881,811E3744 2001,D11E3746 0098,811E3746 0001 //Make Picture selectable
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[C0C85046-61051B05-C:49]
Good Name=Pokemon Snap (I)
@ -4811,6 +4852,8 @@ Internal Name=POKEMON SNAP
Status=Compatible
Cheat0=D1381BFC 802C,80381BEF 0000 //Pass 1st Level and Controller Fix
Cheat1=D11E3994 2881,811E3994 2001,D11E3996 0098,811E3996 0001 //Make Picture selectable
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[EC0F690D-32A7438C-C:4A]
Good Name=Pokemon Snap (J) (V1.0)
@ -4818,6 +4861,8 @@ Internal Name=POKEMON SNAP
Status=Compatible
Cheat0=D136D22C 802A,8036D21F 0000 //Pass 1st Level and Controller Fix
Cheat1=D11E1EC4 2881,811E1EC4 2001,D11E1EC6 0098,811E1EC6 0001 //Make Picture selectable
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[E0044E9E-CD659D0D-C:4A]
Good Name=Pokemon Snap (J) (V1.1)
@ -4825,6 +4870,8 @@ Internal Name=POKEMON SNAP
Status=Compatible
Cheat0=D136D22C 802A,8036D21F 0000 //Pass 1st Level and Controller Fix
Cheat1=D11E1EC4 2881,811E1EC4 2001,D11E1EC6 0098,811E1EC6 0001 //Make Picture selectable
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[817D286A-EF417416-C:53]
Good Name=Pokemon Snap (S)
@ -4832,6 +4879,8 @@ Internal Name=POKEMON SNAP
Status=Compatible
Cheat0=D1381BFC 802C,80381BEF 0000 //Pass 1st Level and Controller Fix
Cheat1=D11E38C4 2881,811E38C4 2001,D11E38C6 0098,811E38C6 0001 //Make Picture selectable
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[CA12B547-71FA4EE4-C:45]
Good Name=Pokemon Snap (U)
@ -4839,6 +4888,8 @@ Internal Name=POKEMON SNAP
Status=Compatible
Cheat0=D1382D1C 802C,80382D0F 0000 //Pass 1st Level and Controller Fix
Cheat1=D11E3184 2881,811E3184 2001,D11E3186 0098,811E3186 0001 //Make Picture selectable
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[39119872-07722E9F-C:45]
Good Name=Pokemon Snap Station (U)
@ -4846,6 +4897,8 @@ Internal Name=POKEMON SNAP
Status=Compatible
Cheat0=D1382D1C 802C,80382D0F 0000 //Pass 1st Level and Controller Fix
Cheat1=D11E30F4 2881,811E30F4 2001,D11E30F6 0098,811E30F6 0001 //Make Picture selectable
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
[84077275-57315B9C-C:50]
Good Name=Pokemon Stadium (E) (V1.0)
@ -4855,12 +4908,8 @@ Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[91C9E05D-AD3AAFB9-C:50]
@ -4871,12 +4920,8 @@ Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[A23553A3-42BF2D39-C:46]
@ -4887,12 +4932,8 @@ Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[42011E1B-E3552DB5-C:44]
@ -4903,12 +4944,8 @@ Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[A53FA82D-DAE2C15D-C:49]
@ -4919,12 +4956,8 @@ Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[665E8259-D098BD1D-C:4A]
@ -4932,11 +4965,12 @@ Good Name=Pokemon Stadium (J)
Internal Name=POKEMON STADIUM
Status=Compatible
Plugin Note=[video] (see GameFAQ)
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
Self Texture=0
Save Type=Sram
[B6E549CE-DC8134C0-C:53]
@ -4947,12 +4981,8 @@ Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[90F5D9B3-9D0EDCF0-C:45]
@ -4962,13 +4992,9 @@ Status=Compatible
Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=0
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[1A122D43-C17DAF0F-C:45]
@ -4979,12 +5005,8 @@ Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[9C8FB2FA-9B84A09B-C:45]
@ -4994,13 +5016,9 @@ Status=Compatible
Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=0
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[2952369C-B6E4C3A8-C:50]
@ -5008,11 +5026,12 @@ Good Name=Pokemon Stadium 2 (E)
Internal Name=POKEMON STADIUM 2
Status=Compatible
Plugin Note=[video] (see GameFAQ)
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
Self Texture=0
[AC5AA5C7-A9B0CDC3-C:46]
Good Name=Pokemon Stadium 2 (F)
@ -5021,13 +5040,9 @@ Status=Compatible
Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=0
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[439B7E7E-C1A1495D-C:44]
@ -5035,44 +5050,48 @@ Good Name=Pokemon Stadium 2 (G)
Internal Name=POKEMON STADIUM 2
Status=Compatible
Plugin Note=[video] (see GameFAQ)
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
Self Texture=0
[EFCEAF00-22094848-C:49]
Good Name=Pokemon Stadium 2 (I)
Internal Name=POKEMON STADIUM 2
Status=Compatible
Plugin Note=[video] (see GameFAQ)
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
Self Texture=0
[63775886-5FB80E7B-C:4A]
Good Name=Pokemon Stadium 2 (J)
Internal Name=POKEMON STADIUM 2
Status=Compatible
Plugin Note=[video] (see GameFAQ)
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
Self Texture=0
[D0A1FC5B-2FB8074B-C:53]
Good Name=Pokemon Stadium 2 (S)
Internal Name=POKEMON STADIUM 2
Status=Compatible
Plugin Note=[video] (see GameFAQ)
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
Self Texture=0
[03571182-892FD06D-C:45]
Good Name=Pokemon Stadium 2 (U)
@ -5081,13 +5100,9 @@ Status=Compatible
Plugin Note=[video] (see GameFAQ)
Clear Frame=0
Culling=1
Emulate Clear=0
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Self Texture=0
[EE4FD7C2-9CF1D938-C:4A]
@ -5095,11 +5110,12 @@ Good Name=Pokemon Stadium Kin Gin (J)
Internal Name=POKEMON STADIUM G&S
Status=Compatible
Plugin Note=[video] (see GameFAQ)
SMM-Cache=0
SMM-FUNC=0
SMM-PI DMA=0
SMM-Protect=1
SMM-TLB=0
Clear Frame=0
Culling=1
Emulate Clear=1
Linking=Off
Primary Frame Buffer=0
Self Texture=0
[41380792-A167E045-C:45]
Good Name=Polaris SnoCross (U)
@ -5297,7 +5313,7 @@ Internal Name=RAT ATTACK
Status=Issues (core)
Core Note=hangs on multiplayer theme select
SMM-FUNC=0
Use TLB=0
Use TLB=No
[0304C48E-AC4001B8-C:45]
Good Name=Rat Attack (U) (M6)
@ -5305,7 +5321,7 @@ Internal Name=RAT ATTACK
Status=Issues (core)
Core Note=hangs on multiplayer theme select
SMM-FUNC=0
Use TLB=0
Use TLB=No
[60D5E10B-8BEDED46-C:50]
Good Name=Rayman 2 - The Great Escape (E) (M5)
@ -6080,25 +6096,38 @@ RDRAM Size=8
Save Type=16kbit Eeprom
Self Texture=0
[BC9B2CC3-4ED04DA5-C:37]
Good Name=StarCraft 64 (Beta)
Internal Name=Á2فE8y)±tU…y7àÕ]¹9
Status=Compatible
Clear Frame=2
RDRAM Size=8
[42CF5EA3-9A1334DF-C:50]
Good Name=StarCraft 64 (E)
Internal Name=STARCRAFT 64
Status=Compatible
Core Note=old [!] ROM is bad
Clear Frame=2
Culling=1
Emulate Clear=0
Primary Frame Buffer=0
RDRAM Size=8
Self Texture=0
[FD6907F0-83CBC160-C:44]
Good Name=Starcraft 64 (G) (Beta)
Good Name=StarCraft 64 (G) (Beta)
Internal Name=STARCRAFT 64
Status=Issues (plugin)
Status=Compatible
Clear Frame=2
Culling=1
Emulate Clear=0
Primary Frame Buffer=0
RDRAM Size=8
Self Texture=0
[BC9B2CC3-4ED04DA5-C:37]
Good Name=StarCraft 64 (U) (Beta)
Internal Name=Á2فE8y)±tU…y7àÕ]¹9
Status=Compatible
Clear Frame=2
Culling=1
Emulate Clear=0
Primary Frame Buffer=0
RDRAM Size=8
Self Texture=0
[0684FBFB-5D3EA8A5-C:45]
Good Name=StarCraft 64 (U)
@ -6281,6 +6310,7 @@ Good Name=Sydney 2000 (E) (Unreleased)
Internal Name=Syd2k GBR
Status=Compatible
Cheat0=80000303 0000
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Resolution Height=239
[80A78080-5F9F8833-C:0]
@ -6447,6 +6477,8 @@ Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
Cheat0=801D8F8B 0002 //Subscreen Delay Fix
Cheat1=D109A8E4 0320,8109A8E4 0000,D109A8E6 F809,8109A8E6 0000 //End Credits Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -6465,6 +6497,7 @@ Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
AiCountPerBytes=100
Cheat0=801D860B 0002 //Subscreen Delay Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -6483,6 +6516,7 @@ Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
AiCountPerBytes=100
Cheat0=801D864B 0002 //Subscreen Delay Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -6501,6 +6535,8 @@ Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
Cheat0=801DB78B 0002 //Subscreen Delay Fix
Cheat1=D109A814 0320,8109A814 0000,D109A816 F809,8109A816 0000 //End Credits Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -6521,6 +6557,7 @@ Plugin Note=[video] (see GameFAQ)
AiCountPerBytes=100
Aspect Correction=1
Cheat0=801DA5CB 0002 //Subscreen Delay Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
ClearvFrame=0
Culling=1
@ -6544,6 +6581,7 @@ Plugin Note=[video] (see GameFAQ)
32bit=No
AiCountPerBytes=100
Cheat0=801DA78B 0002 //Subscreen Delay Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -6566,6 +6604,7 @@ Plugin Note=[video] (see GameFAQ)
32bit=No
AiCountPerBytes=100
Cheat0=801DAE8B 0002
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -6587,6 +6626,8 @@ Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
Cheat0=801D8F4B 0002 //Subscreen Delay Fix
Cheat1=D109A8C4 0320,8109A8C4 0000,D109A8C6 F809,8109A8C6 0000 //End Credits Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
Emulate Clear=1
@ -6601,6 +6642,8 @@ Core Note=(see GameFAQ) edited ROM
Plugin Note=[video] (see GameFAQ)
Cheat0=801D8F4B 0002 //Subscreen Delay Fix
Cheat1=D109A8C4 0320,8109A8C4 0000,D109A8C6 F809,8109A8C6 0000 //End Credits Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -6619,6 +6662,8 @@ Core Note=(see GameFAQ) edited ROM
Plugin Note=[video] (see GameFAQ)
Cheat0=801D8F4B 0002 //Subscreen Delay Fix
Cheat1=D109A8C4 0320,8109A8C4 0000,D109A8C6 F809,8109A8C6 0000 //End Credits Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -6650,6 +6695,8 @@ Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
Cheat0=801DB74B 0002 //Subscreen Delay Fix
Cheat1=D109A7F4 0320,8109A7F4 0000,D109A7F6 F809,8109A7F6 0000 //End Credits Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -6987,7 +7034,16 @@ AiCountPerBytes=800
Clear Frame=0
[665FD963-B5CC6612-C:44]
Good Name=Turok - Dinosaur Hunter (G)
Good Name=Turok - Dinosaur Hunter (G) (V1.0)
Internal Name=TUROK_DINOSAUR_HUNTE
Status=Compatible
Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
AiCountPerBytes=800
Clear Frame=0
[665FC793-6934A73B-C:44]
Good Name=Turok - Dinosaur Hunter (G) (V1.1)/(V1.2)
Internal Name=TUROK_DINOSAUR_HUNTE
Status=Compatible
Core Note=(see GameFAQ)
@ -7004,7 +7060,7 @@ Plugin Note=[video] (see GameFAQ)
AiCountPerBytes=800
[2F700DCD-176CC5C9-C:45]
Good Name=Turok - Dinosaur Hunter (U) (V1.1)/(v1.2)
Good Name=Turok - Dinosaur Hunter (U) (V1.1)/(V1.2)
Internal Name=TUROK_DINOSAUR_HUNTE
Status=Compatible
Core Note=(see GameFAQ)
@ -7127,6 +7183,7 @@ Good Name=Turok 3 - Shadow of Oblivion (U) (Beta)
Internal Name=turok
Status=Compatible
Cheat0=80000303 0001
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
[E688A5B8-B14B3F18-C:50]
Good Name=Twisted Edge Extreme Snowboarding (E)
@ -7800,6 +7857,7 @@ Status=Compatible
Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
Cheat0=801DA5CB 0002 //Subscreen Delay Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -7817,6 +7875,7 @@ Status=Compatible
Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
Cheat0=801DA78B 0002 //Subscreen Delay Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -7834,6 +7893,7 @@ Status=Compatible
Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
Cheat0=801DAE8B 0002 //Subscreen Delay Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -7852,6 +7912,8 @@ Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
Cheat0=801DB78B 0002 //Subscreen Delay Fix
Cheat1=D109A814 0320,8109A814 0000,D109A816 F809,8109A816 0000 //End Credits Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -7870,6 +7932,8 @@ Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
Cheat0=801DB78B 0002 //Subscreen Delay Fix
Cheat1=D109A834 0320,8109A834 0000,D109A836 F809,8109A836 0000 //End Credits Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1
@ -7888,6 +7952,8 @@ Core Note=(see GameFAQ)
Plugin Note=[video] (see GameFAQ)
Cheat0=801DB78B 0002 //Subscreen Delay Fix
Cheat1=D109A814 0320,8109A814 0000,D109A816 F809,8109A816 0000 //End Credits Fix
CheatPlugin0=Jabo's Direct3D8,Glide64 For PJ64
CheatPlugin1=Jabo's Direct3D8,Glide64 For PJ64
Clear Frame=0
Culling=1
CustomSMM=1

View File

@ -1,21 +1,21 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Português Brasileiro" // LANGUAGE ID
#2 # "Marcos Spíndula e Felipe" // Author
#3 # "2.0" // Version
#4 # "08-04-2013" // Date
#1 # "Português Brasileiro" // LANGUAGE ID
#2 # "Marcos Spíndula e Felipe" // Author
#3 # "2.2" // Version
#4 # "Fevereiro, 2015" // Date
//About DLL Dialog
#5 # "Idioma Atual"
#6 # "Autor"
#7 # "Versão"
#7 # "Versão"
#8 # "Data"
#9 # "Visitar a Home Page"
#10 # "Base de Dados da ROM (.RDB)"
#11 # "Arquivo do Código de Trapaças (.CHT)"
#12 # "Informação Extendida da Rom (.RDX)"
#11 # "Arquivo do Código de Trapaças (.CHT)"
#12 # "Informação Extendida da Rom (.RDX)"
//About INI title
#20 # "Sobre os Arquivos INI"
@ -26,13 +26,13 @@
//File Menu
#100# "&Arquivo"
#101# "&Abrir a Rom"
#102# "Informação &da Rom...."
#103# "Iniciar a Emulação"
#104# "&Finalizar a Emulação"
#105# "Escolher o Diretório das Roms..."
#102# "Informação &da Rom...."
#103# "Iniciar a Emulação"
#104# "&Finalizar a Emulação"
#105# "Escolher o Diretório das Roms..."
#106# "Atualizar a Lista das Roms"
#107# "Roms Recentes"
#108# "Diretórios das Roms Recentes"
#108# "Diretórios das Roms Recentes"
#109# "S&air"
//System Menu
@ -46,20 +46,22 @@
#127# "&Restaurar"
#128# "Carregar..."
#129# "Save State A&tual"
#130# "Trapaças..."
#131# "Botão GS"
#130# "Trapaças..."
#131# "Botão GS"
#132# "Resumir"
#133# "&Resetar Software"
#134# "&Resetar Hardware"
//Options Menu
#140# "&Opções"
#140# "&Opções"
#141# "&Tela Cheia"
#142# "&Sempre no &Topo"
#143# "Configurar o Plugin dos Gráficos..."
#144# "Configurar o Plugin de Áudio..."
#143# "Configurar o Plugin dos Gráficos..."
#144# "Configurar o Plugin de Áudio..."
#145# "Configurar o Plugin do Controle..."
#146# "Configurar o Plugin RSP..."
#147# "Mostrar o uso da CPU %"
#148# "&Configurações..."
#148# "&Configurações..."
//Debugger Menu
#160# "&Debugger"
@ -71,11 +73,11 @@
#180# "&Ajuda"
#181# "Sobre &os Arquivos INI"
#182# "&Sobre o Project 64"
#183# "Fórum de &Suporte"
#183# "Fórum de &Suporte"
#184# "&Home page"
//Current Save Slot menu
#190# "Padrão"
#190# "Padrão"
#191# "Slot 1"
#192# "Slot 2"
#193# "Slot 3"
@ -89,48 +91,62 @@
//Pop up Menu
#210# "Jogar o Jogo"
#211# "Informação da ROM"
#212# "Editar as Configurações do Jogo"
#213# "Editar as Trapaças"
#211# "Informação da ROM"
#212# "Editar as Configurações do Jogo"
#213# "Editar as Trapaças"
#214# "Plugin Gráfico"
//Alternate Name to save Slot
#220# "Slot Padrão"
#221# "Save Slot - 1"
#222# "Save Slot - 2"
#223# "Save Slot - 3"
#224# "Save Slot - 4"
#225# "Save Slot - 5"
#226# "Save Slot - 6"
#227# "Save Slot - 7"
#228# "Save Slot - 8"
#229# "Save Slot - 9"
#230# "Save Slot - 10"
// Menu Descriptions
#250# "Abrir uma imagem da rom de N64"
#251# "Exibir Informação sobre a imagem carregada"
#252# "Iniciar a Emulação da imagem da rom carregada"
#253# "Parar a Emulação da imagem da rom carregada"
#254# "Selecionar o Diretório das Roms"
#251# "Exibir Informação sobre a imagem carregada"
#252# "Iniciar a Emulação da imagem da rom carregada"
#253# "Parar a Emulação da imagem da rom carregada"
#254# "Selecionar o Diretório das Roms"
#255# "Atualizar a lista de ROMs atuais no Explorador de ROMs"
#256# "Sair deste aplicativo"
#257# "Reiniciar a imagem da rom atual (recarregar quaisquer mudanças nas configurações)"
#258# "Pausar/Resumir a emulação da rom atual em execução"
#257# "Reiniciar a imagem da rom atual (recarregar quaisquer mudanças nas configurações)"
#258# "Pausar/Resumir a emulação da rom atual em execução"
#259# "Gerar uma imagem Bitmap da Tela atual"
#260# "Limitar o FPS para a velocidade correta do n64"
#261# "Criar um instante do sistema atual para o salvamento rápido"
#262# "Criar um instante do sistema atual com a seleção do local do arquivo"
#263# "Carregar um salvamento do instante rápido"
#261# "Criar um instante do sistema atual para o salvamento rápido"
#262# "Criar um instante do sistema atual com a seleção do local do arquivo"
#263# "Carregar um salvamento do instante rápido"
#264# "Escolher um arquivo de salvamento do instante para carregar"
#265# "Ativar/Desativar as trapaças do Game shark"
#266# "O botão do Game shark é usado com trapaças especifícas"
#267# "Mudar a emulação do modo de janela para tela cheia"
#265# "Ativar/Desativar as trapaças do Game shark"
#266# "O botão do Game shark é usado com trapaças especifícas"
#267# "Mudar a emulação do modo de janela para tela cheia"
#268# "Fazer a janela ficar acima de todas as outras janelas"
#269# "Mudar as configurações dentro do plugin dos Gráficos"
#270# "Mudar as configurações dentro do plugin de Áudio"
#271# "Mudar as configurações dentro do plugin do Controle (ex: definir as teclas)"
#272# "Mudar as configurações dentro do plugin RSP"
#269# "Mudar as configurações dentro do plugin dos Gráficos"
#270# "Mudar as configurações dentro do plugin de Áudio"
#271# "Mudar as configurações dentro do plugin do Controle (ex: definir as teclas)"
#272# "Mudar as configurações dentro do plugin RSP"
#273# "Mostrar o uso da CPU pelo emulador dividido sobre diferentes recursos"
#274# "Visualizar/Mudar as configurações para este aplicativo"
#274# "Visualizar/Mudar as configurações para este aplicativo"
#275# "Visualizar o Manual do aplicativo"
#276# "Visualizar o FAQ do aplicativo"
#278# "Sobre o aplicativo e os autores"
#277# "Sobre os autores dos arquivos de suporte"
#279# "Abrir esta imagem da ROM aberta anteriormente"
#280# "Escolher este diretório como seu diretório das roms"
#280# "Escolher este diretório como seu diretório das roms"
#281# "Mudar o Aplicativo para usar este idioma"
#282# "Escolher este local para salvamento rápido"
#282# "Escolher este local para salvamento rápido"
#283# "Jogar o jogo selecionado"
#284# "Informação sobre o jogo selecionado"
#285# "Editar as Configurações para o jogo selecionado"
#286# "Editar as trapaças para o jogo selecionado"
#284# "Informação sobre o jogo selecionado"
#285# "Editar as Configurações para o jogo selecionado"
#286# "Editar as trapaças para o jogo selecionado"
/*********************************************************************************
* Rom Browser *
@ -142,22 +158,22 @@
#303# "Status"
#304# "Tamanho da Rom"
#305# "Notas (Core)"
#306# "Notas (plugins padrão)"
#307# "Notas (Usuário)"
#306# "Notas (plugins padrão)"
#307# "Notas (Usuário)"
#308# "ID do Cartucho"
#309# "Fabricante"
#310# "País"
#310# "País"
#311# "Desenvolvedor"
#312# "CRC1"
#313# "CRC2"
#314# "Chip CIC"
#315# "Data de Lançamento"
#316# "Gênero"
#315# "Data de Lançamento"
#316# "Gênero"
#317# "Jogadores"
#318# "Force Feedback"
//Select Rom
#320# "Selecionar o diretório atual das Roms"
#320# "Selecionar o diretório atual das Roms"
//Messages
#340# "ROM ruim? Use o GoodN64 & procure RDBs atualizados"
@ -166,83 +182,104 @@
* Options *
*********************************************************************************/
//Options Title
#400# "Configurações"
#400# "Configurações"
//Tabs
#401# "Plugins"
#402# "Diretórios"
#403# "Opções"
#404# "Seleção das Roms"
#405# "Avançado"
#406# "Configurações da Rom"
#407# "Integração com o Shell"
#402# "Diretórios"
#403# "Opções"
#404# "Seleção das Roms"
#405# "Avançado"
#406# "Configurações da Rom"
#407# "Integração com o Shell"
#408# "Notas da Rom"
#409# "Atalhos de Teclado"
#410# "Estado"
#411# "Recompilador"
//Plugin Dialog
#420# "Sobre"
#421# " Plugin do Processador de Sinal da Realidade: "
#422# " Plugin de Vídeo (gráficos): "
#423# " Plugin de Áudio (som) : "
#422# " Plugin de Vídeo (gráficos): "
#423# " Plugin de Áudio (som) : "
#424# " Plugin de Entrada (controle): "
#425# "Usar Gráficos de Alto Nível?"
#426# "Usar Aúdio de Alto Nível?"
#427# "** Usar Plugin do Sistema **"
//Directory Dialog
#440# " Diretório dos Plugins:: "
#441# " Diretório das Roms: "
#440# " Diretório dos Plugins:: "
#441# " Diretório das Roms: "
#442# " Auto saves do N64: "
#443# " Salvamentos instantâneos: "
#443# " Salvamentos instantâneos: "
#444# " Screen Shots: "
#445# "Última pasta de onde uma rom foi aberta."
#446# "Selecionar o Diretório dos Plugins"
#447# "Selecionar o Diretório das Roms"
#448# "Selecionar o Diretório do Salvamento Automático"
#449# "Selecionar o Diretório do Salvamento Instantâneo"
#450# "Selecionar o Diretório dos Snapshots"
#445# "Última pasta de onde uma rom foi aberta."
#446# "Selecionar o Diretório dos Plugins"
#447# "Selecionar o Diretório das Roms"
#448# "Selecionar o Diretório do Salvamento Automático"
#449# "Selecionar o Diretório do Salvamento Instantâneo"
#450# "Selecionar o Diretório dos Snapshots"
#451# " Diretório de Texturas: "
#452# "Selecionar o Diretório de Texturas"
//Options Dialog
#460# "Pausar a emulação quando a janela não está ativa?"
#460# "Pausar a emulação quando a janela não está ativa?"
#461# "Ao carregar uma ROM ir para a tela cheia"
#462# "Esconder as Configurações Avançadas"
#463# "Lembrar as trapaças selecionadas"
#462# "Esconder as Configurações Avançadas"
#463# "Lembrar as trapaças selecionadas"
#464# "Desativar proteção de tela quando rodar a rom"
#465# "Mostrar Frame Rate"
#466# "Mudar forma de visualização do Frame Rate"
//Rom Browser Tab
#480# "Máx # de Roms Lembradas (Máx 10):"
#480# "Máx # de Roms Lembradas (Máx 10):"
#481# "roms"
#482# "Máx # de Dirs. de Roms Lembrados (Máx 10):"
#483# "diretórios"
#482# "Máx # de Dirs. de Roms Lembrados (Máx 10):"
#483# "diretórios"
#484# "Usar Explorador de Roms"
#485# "Usar repetição de diretório"
#486# "Campos disponíveis:"
#485# "Usar repetição de diretório"
#486# "Campos disponíveis:"
#487# "Mostrar os campos nesta ordem:"
#488# "Adicionar ->"
#489# "<- Remover"
#490# "Pra Cima"
#491# "Pra Baixo"
#492# "Atualizar automaticamente o navegador"
//Advanced Options
#500# "A maioria destas mudanças não acontecerão até que uma nova rom seja aberta ou que a rom atual seja resetada."
#501# "Padrões do Core"
#500# "A maioria destas mudanças não acontecerão até que uma nova rom seja aberta ou que a rom atual seja resetada."
#501# "Padrões do Core"
#502# "Estilo do core da CPU:"
#503# "Método do código Self-mod:"
#504# "Tamanho Padrão da Memória:"
#505# "Ligamento de Blocos Avançado:"
#506# "Iniciar a Emulação quando a rom está aberta?"
#507# "Sempre sobrescrever as configurações padrão com as do ini?"
#508# "Comprimir automaticamente os salvamentos instantâneos"
#503# "Método do código Self-mod:"
#504# "Tamanho Padrão da Memória:"
#505# "Ligamento de Blocos Avançado:"
#506# "Iniciar a Emulação quando a rom está aberta?"
#507# "Sempre sobrescrever as configurações padrão com as do ini?"
#508# "Comprimir automaticamente os salvamentos instantâneos"
#509# "Habilitar Debugger"
#510# "Cache"
#511# "PI DMA"
#512# "Start Changed"
#513# "Protect Memory"
#514# "TLB Unmapping"
//Rom Options
#520# "Estilo do core da CPU:"
#521# "Método do código auto-modificador:"
#522# "Tamanho da Memória:"
#523# "Ligamento de Blocos Avançado:"
#524# "Tipo de Salvamento Padrão:"
#522# "Tamanho da Memória:"
#523# "Ligamento de Blocos Avançado:"
#524# "Tipo de Salvamento Padrão:"
#525# "Contra Fator:"
#526# "Buffer de Compilação Maior"
#526# "Buffer de Compilação Maior"
#527# "Usar o TLB"
#528# "Caching do registro"
#529# "Atrasar o SI Interrupt"
#530# "Hack do SP"
#531# "Padrão"
#532# "Sinal de Áudio do RSP"
#531# "Padrão"
#532# "Sinal de Áudio do RSP"
#533# "Timing de Áudio Fixo"
#534# "Function lookup method:"
#535# "Custom Self Mod Method"
#536# "Sincronizar através do Áudio"
//Core Styles
#540# "Interpretador"
@ -252,10 +289,16 @@
//Self Mod Methods
#560# "Nenhum"
#561# "Cache"
#562# "Proteger a Memória"
#563# "Verificar a Memória & Cache"
#564# "Mudar a Memória & Cache"
#565# "Verificar o Avanço da Memória"
#562# "Proteger a Memória"
#563# "Verificar a Memória & Cache"
#564# "Mudar a Memória & Cache"
#565# "Verificar o Avanço da Memória"
#566# "Limpar Cógido no Cache"
//Function Lookup memthod
#570# "Tabela de Pesquisa Física"
#571# "Tabela de Pesquisa Virtual"
#572# "Mudar Memória"
//RDRAM Size
#580# "4 MB"
@ -273,18 +316,49 @@
#624# "Flashram"
//Shell Integration Tab
#640# "Associação da extensão dos arquivos:"
#640# "Associação da extensão dos arquivos:"
//Rom Notes
#660# "Status da Rom:"
#661# "Nota do Core:"
#662# "Nota do Plugin:"
// Accelerator Selector
#680# "Estado do CPU:"
#681# "Item do Menu:"
#682# "Atalhos Atuais:"
#683# "Selecionar Novo Atalho:"
#684# "Atualmente Atribuído Ao:"
#685# "Atribuir"
#686# "Remover"
#687# "Restaurar Todos"
#688# "Jogo Parado"
#689# "Jogo em Curso"
#690# "Jogo em Curso (Janela)"
#691# "Jogo em Curso (Tela Cheia)"
// Frame Rate Option
#700# "Vertical Interupts por segundo"
#701# "Display Lists por segundo"
#702# "Percentual de Velocidade"
// Increase speed
#710# "Aumentar Velocidade do Jogo"
#711# "Diminuir Velocidade do Jogo"
// short cut editor
#1100# "Restaurar Atalhos"
#1101# "Você tem certeza que deseja rastaurar os atalhos?\n\nEsta ação não pode ser desfeita."
#1102# "Menu de Arquivos"
#1103# "Menu de Sistema"
#1104# "Opções"
#1105# "Slots de Salvamento"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "Informação da Rom"
#800# "Informação da Rom"
//Rom Info Text
#801# "Nome da ROM:"
@ -293,55 +367,58 @@
#804# "Tamanho da Rom:"
#805# "ID do Cartucho:"
#806# "Fabricante:"
#807# "País:"
#807# "País:"
#808# "CRC1:"
#809# "CRC2:"
#810# "Chip CIC:"
#811# "MD5:"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "Trapaças"
#1001# "Trapaças:"
#1000# "Trapaças"
#1001# "Trapaças:"
#1002# " Notas: "
#1003# "Marcar Todos"
#1004# "Desmarcar Todos"
//Add Cheat
#1005# "Adicionar Trapaça"
#1005# "Adicionar Trapaça"
#1006# "Nome:"
#1007# "Código:"
#1007# "Código:"
#1008# "Inserir"
#1009# "Limpar"
#1010# " Notas da Trapaça: "
#1010# " Notas da Trapaça: "
#1011# "Adicionar a Base de Dados"
#1022# "Adicionar Trapaça"
#1023# "Nova Trapaça"
#1024# "<endereço> <valor>"
#1025# "Opções:"
#1026# "<valor> <rótulo>"
#1022# "Adicionar Trapaça"
#1023# "Nova Trapaça"
#1024# "<endereço> <valor>"
#1025# "Opções:"
#1026# "<valor> <rótulo>"
//Code extension
#1012# "Extensões do Código"
#1012# "Extensões do Código"
#1013# "Por favor escolha um valor a ser usado para:"
#1014# "OK"
#1015# "Cancelar"
//Digital Value
#1016# "Dígito de Quantidade"
#1016# "Dígito de Quantidade"
#1017# "Por favor escolha um valor para:"
#1018# "&Valor"
#1019# "de"
#1020# "até"
#1020# "até"
#1021# "&Notas:"
//Edit Cheat
#1027# "Editar a Trapaça"
#1028# "Atualizar a Trapaça"
#1027# "Editar a Trapaça"
#1028# "Atualizar a Trapaça"
#1029# "A trapaça foi mudada você quer atualizar?"
#1030# "Trapaça Atualizada"
//Cheat Popup Menu
#1040# "Adicionar Nova Trapaça..."
#1040# "Adicionar Nova Trapaça..."
#1041# "Editar"
#1042# "Apagar"
@ -350,27 +427,27 @@
*********************************************************************************/
#2000# "*** CPU PAUSADA ***"
#2001# "CPU Resumida"
#2002# "Em um loop permanente do qual não se pode sair.
A emulação parará agora.
#2002# "Em um loop permanente do qual não se pode sair.
A emulação parará agora.
Verificar a ROM e as Configurações da ROM."
#2003# "Falhou em distribuir a Memória"
#2004# "O plugin de vídeo padrão ou selecionado está desaparecido ou é inválido.
Verificar a ROM e as Configurações da ROM."
#2003# "Falhou em distribuir a Memória"
#2004# "O plugin de vídeo padrão ou selecionado está desaparecido ou é inválido.
Verifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
#2005# "O plugin de áudio padrão ou selecionado está desaparecido ou é inválido.
Verifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
#2005# "O plugin de áudio padrão ou selecionado está desaparecido ou é inválido.
Verifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
#2006# "O plugin RSP padrão ou selecionado está desaparecido ou é inválido.
Verifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
#2006# "O plugin RSP padrão ou selecionado está desaparecido ou é inválido.
Verifique se você tem o Project64 apropriadamente instalado com um caminho para plugins válido."
#2007# "O plugin de entrada padrão ou selecionado está desaparecido ou é inválido.
Verifique se você tem o Project64 apropriadamente instalado com um caminho para plugins válido."
#2007# "O plugin de entrada padrão ou selecionado está desaparecido ou é inválido.
Verifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
Verifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
#2008# "Falhou em carregar o plugin:"
#2009# "Falhou em carregar a palavra
Verificar a ROM e as configurações da ROM."
Verificar a ROM e as configurações da ROM."
#2010# "Falhou em abrir o Arquivo do Salvamento"
#2011# "Falhou em abrir o Eeprom"
#2012# "Falhou em abrir a Flashram"
@ -378,39 +455,39 @@ Verificar a ROM e as configura
#2014# "A tentativa de abrir o arquivo zip falhou.
Arquivo zip desaparecido ou corrompido - verifique o caminho e o arquivo.
Você pode precisar reiniciar o aplicativo."
Você pode precisar reiniciar o aplicativo."
#2015# "A tentativa de abrir o arquivo falhou."
#2016# "Um erro ocorreu quando tentava abrir o arquivo zip."
#2017# "O arquivo carregado não aparenta ser uma ROM de Nintendo64 válida.
#2017# "O arquivo carregado não aparenta ser uma ROM de Nintendo64 válida.
Verifique suas ROMs com o GoodN64."
#2018# "País desconhecido"
#2018# "País desconhecido"
#2019# "Chip Cic desconhecido"
#2020# "Formato do arquivo desconhecido"
#2021# "Ação da memória desconhecida
#2021# "Ação da memória desconhecida
Emulação agora parada"
#2022# "OpCode R4300i não manejado em"
#2023# "Executando do espaço não-mapeado.
Emulação agora parada"
#2022# "OpCode R4300i não manejado em"
#2023# "Executando do espaço não-mapeado.
Verificar a ROM e as configurações da ROM."
#2024# "O Save State não aparenta combinar com a ROM em execução.
Verificar a ROM e as configurações da ROM."
#2024# "O Save State não aparenta combinar com a ROM em execução.
Os save states devem ser salvos & carregados entre ROMs 100% idênticas,
em particular a REGIÃO e VERSÃO precisam ser as mesmas.
Os save states devem ser salvos & carregados entre ROMs 100% idênticas,
em particular a REGIÃO e VERSÃO precisam ser as mesmas.
Carregar este state provavelmente causaria um crash no jogo e/ou no emulador.
Você tem certeza que você quer continuar carregando?"
Você tem certeza que você quer continuar carregando?"
#2025# "Erro"
#2026# "Sequência de Copyright não achada no LUT. O jogo não mais funcionará."
#2027# "Falha da Proteção contra Cópia"
#2028# "Mudar um plugin requer que o Project64 resete uma ROM em execução.
Se você não quer perder seu lugar, responda Não e faça um save state primeiro.
#2026# "Sequência de Copyright não achada no LUT. O jogo não mais funcionará."
#2027# "Falha da Proteção contra Cópia"
#2028# "Mudar um plugin requer que o Project64 resete uma ROM em execução.
Se você não quer perder seu lugar, responda Não e faça um save state primeiro.
Mudar os plugins e reiniciar o jogo agora?"
#2029# "Mudar os Plugins"
#2030# "Emulação finalizada"
#2031# "Emulação iniciada"
#2030# "Emulação finalizada"
#2031# "Emulação iniciada"
#2032# "Incapaz de carregar o save state"
#2033# "Save state carregado"
#2034# "Salvar o state atual em"
@ -419,8 +496,21 @@ Mudar os plugins e reiniciar o jogo agora?"
#2037# "Escolhendo a imagem do N64"
#2038# "Carregado"
#2039# "Carregando a imagem"
#2040# "Não pode abrir uma rom porque os plugins não inicalizaram com sucesso"
#2041# "Voce tem certeza que você realmente quer apagar isto?"
#2042# "Apagar a Trapaça"
#2043# "O nome da trapaça já está em uso"
#2044# "Voce alcançou a quantia máxima de trapaças para esta rom"
#2040# "Não pode abrir uma rom porque os plugins não inicalizaram com sucesso"
#2041# "Voce tem certeza que você realmente quer apagar isto?"
#2042# "Apagar a Trapaça"
#2043# "O nome da trapaça já está em uso"
#2044# "Voce alcançou a quantia máxima de trapaças para esta rom"
#2045# "Plug-in Inicializando"
#2046# "Você não selecionou uma tecla virtual para atribuir ao item de menu"
#2047# "Você precisa selecionar um item de menu para atribuir esta tecla para"
#2048# "Este Atalho já foi atribuído a outro item de menu"
#2049# "Nenhum atalho foi selecionado para ser removido"
#2050# "Rom Carregada. Aguardando a emulação para começar."
#2051# "project64 beta é para membros apenas.\n\nse você tem uma conta no pj64.net, você pode não ver esse erro!!\npor favor contate-nos no website"
#2052# "Erro do Programa"
#2053# "Não foi possível encontrar um nome de arquivo no 7z"
#2054# "Utilizar Gráficos de Baixo Nível"
#2055# "Gráficos de baixo nível não são para uso geral!!!\nÉ aconselhável que você só utilize para testes, não para jogar qualquer jogo com ele\n\nMudar para Gráficos de Baixo Nível?"
#2056# "Utilizar Áudio de Alto Nível"
#2057# "Áudio de Alto Nível requer plugin de terceiros!!!\nSe você não tem um plugin de terceiros com suporte a Aúdio de Alto Nível você não vai ouvir nada.\n\nUtilizar Áudio de Alto Nível?"

View File

@ -1,424 +1,424 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Български" // LANGUAGE ID
#1 # "Български" // LANGUAGE ID
#2 # "Linker (linker@mail.bg)"// Author
#3 # "1.5.1" // Version
#4 # "17 Август 2002" // Date
#4 # "17 Август 2002" // Date
//About DLL Dialog
#5 # "Превод (.pj.Lang)"
#6 # "Автор"
#7 # "Версия"
#8 # "Дата"
#9 # "Уеб стр. на автора"
#10 # "База данни с игри (Project64.rdb)"
#11 # "Файл с кодове за игри (Project64.cht)"
#12 # "Разширена ROM инф. (Project64.rdx)"
#5 # "Превод (.pj.Lang)"
#6 # "Автор"
#7 # "Версия"
#8 # "Дата"
#9 # "Уеб стр. на автора"
#10 # "База данни с игри (Project64.rdb)"
#11 # "Файл с кодове за игри (Project64.cht)"
#12 # "Разширена ROM инф. (Project64.rdx)"
//About INI title
#20 # "Project64 използва:"
#20 # "Project64 използва:"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "&Файл"
#101# "&Отвори Rom"
#102# "&Rom информация"
#103# "&Започни емулацията"
#104# "&Спри емулацията"
#105# "&Избери ROM директория..."
#106# "&Презареди ROM листата"
#107# "Последно отворени ROM-ове"
#108# "Последно използвани ROM директории"
#109# "И&зход"
#100# "&Файл"
#101# "&Отвори Rom"
#102# "&Rom информация"
#103# "&Започни емулацията"
#104# "&Спри емулацията"
#105# "&Избери ROM директория..."
#106# "&Презареди ROM листата"
#107# "Последно отворени ROM-ове"
#108# "Последно използвани ROM директории"
#109# "И&зход"
//System Menu
#120# "&Система"
#121# "&Нулиране"
#122# "Па&уза"
#123# "&Създай изображение"
#124# "&Ограничение на скоростта"
#125# "&Запис"
#126# "Запиши &като..."
#127# "&Възстановяване"
#128# "Възстанови &от..."
#129# "Сегаш&но място на запис"
#130# "&Кодове за игри"
#131# "&Бутон за кодовете"
#132# "&Продължение"
#120# "&Система"
#121# "&Нулиране"
#122# "Па&уза"
#123# "&Създай изображение"
#124# "&Ограничение на скоростта"
#125# "&Запис"
#126# "Запиши &като..."
#127# "&Възстановяване"
#128# "Възстанови &от..."
#129# "Сегаш&но място на запис"
#130# "&Кодове за игри"
#131# "&Бутон за кодовете"
#132# "&Продължение"
//Options Menu
#140# "&Опции"
#141# "&Цял екран"
#142# "Винаги &отгоре"
#143# "Конфигуриране на &графиката..."
#144# "Конфигуриране на &звука..."
#145# "Конфигуриране на &управлението..."
#146# "Кунфигуриране на &RSP..."
#147# "&Покажи натовареността на CPU %"
#148# "&Настройки..."
#140# "&Опции"
#141# "&Цял екран"
#142# "Винаги &отгоре"
#143# "Конфигуриране на &графиката..."
#144# "Конфигуриране на &звука..."
#145# "Конфигуриране на &управлението..."
#146# "Кунфигуриране на &RSP..."
#147# "&Покажи натовареността на CPU %"
#148# "&Настройки..."
//Debugger Menu
#160# "&Debugger"
//Language Menu
#175# "&Език"
#175# "&Език"
//Help Menu
#180# "&Помощ"
#181# "Относно INI &файловете"
#182# "&Относно Project64"
#180# "&Помощ"
#181# "Относно INI &файловете"
#182# "&Относно Project64"
//Current Save Slot menu
#190# "&Обичайно място (.pj)"
#191# "Място&1 (.pj1)"
#192# "Място&2 (.pj2)"
#193# "Място&3 (.pj3)"
#194# "Място&4 (.pj4)"
#195# "Място&5 (.pj5)"
#196# "Място&6 (.pj6)"
#197# "Място&7 (.pj7)"
#198# "Място&8 (.pj8)"
#199# "Място&9 (.pj9)"
#200# "Място1&0 (.pj0)"
#190# "&Обичайно място (.pj)"
#191# "Място&1 (.pj1)"
#192# "Място&2 (.pj2)"
#193# "Място&3 (.pj3)"
#194# "Място&4 (.pj4)"
#195# "Място&5 (.pj5)"
#196# "Място&6 (.pj6)"
#197# "Място&7 (.pj7)"
#198# "Място&8 (.pj8)"
#199# "Място&9 (.pj9)"
#200# "Място1&0 (.pj0)"
//Pop up Menu
#210# "Играй игра"
#211# "ROM информация"
#212# "Редактиране настройките за играта"
#213# "Редактиране на кодовете"
#210# "Играй игра"
#211# "ROM информация"
#212# "Редактиране настройките за играта"
#213# "Редактиране на кодовете"
// Menu Descriptions
#250# "Отваряне на съществуващ N64 ROM"
#251# "Информация за отвореният ROM"
#252# "Стартиране на отвореният ROM"
#253# "Прекратяване емулацията на отвореният ROM"
#254# "Смяна на ROM директорията"
#255# "Презареждане на ROM листата с всички промени в ROM директорията"
#256# "Изход от Project64"
#257# "Рестартиране на CPU"
#258# "Паузиране емулацията на отворения ROM"
#259# "Създаване на изображение (използвайки vid. plugin-а) в snapshot директорията"
#260# "Включване/изключване лимита за скоростта (VI/s)"
#261# "Мигновен запис"
#262# "Запис в определен файл"
#263# "Зареждане на мигновен запис"
#264# "Зареждане на запис от определен файл"
#265# "Избор или редактиране на кодове за играта"
#266# "Емулация на натискане на Gameshark бутона - използва се при някои кодове"
#267# "Смяна на емулацията от прозоречен до пълен екран (натисни Escape за връщане!)"
#268# "Задържа Project64 прозореца пред всички други прозорци"
#269# "Промяна на настройките в графичния plugin"
#270# "Промяна на настройките в звуковия plugin"
#271# "Промяна на настройките в plugin-а за управлението"
#272# "Промяна на настройките в RSP plugin-а"
#273# "Показва натовареността на процесора"
#274# "Промяна на главните настройки на Project64"
#275# "Отваряне на ръководството на потребителя"
#276# "Отваряне на специфичното за определена игра FAQ"
#277# "Относно това приложение и авторите му"
#278# "Относно авторите на поддържащите файлове"
#279# "Отваряне на предишно зареждан ROM"
#280# "Избор на твоя ROM директория"
#281# "Промяна езика на Project64"
#282# "Смяна мястото за запис"
#283# "Зарежда и стартира избраната игра"
#284# "Показва информация за съответната игра"
#285# "Промяна настройките в RDB файла"
#286# "Промяна кодовете в CHT файла"
#250# "Отваряне на съществуващ N64 ROM"
#251# "Информация за отвореният ROM"
#252# "Стартиране на отвореният ROM"
#253# "Прекратяване емулацията на отвореният ROM"
#254# "Смяна на ROM директорията"
#255# "Презареждане на ROM листата с всички промени в ROM директорията"
#256# "Изход от Project64"
#257# "Рестартиране на CPU"
#258# "Паузиране емулацията на отворения ROM"
#259# "Създаване на изображение (използвайки vid. plugin-а) в snapshot директорията"
#260# "Включване/изключване лимита за скоростта (VI/s)"
#261# "Мигновен запис"
#262# "Запис в определен файл"
#263# "Зареждане на мигновен запис"
#264# "Зареждане на запис от определен файл"
#265# "Избор или редактиране на кодове за играта"
#266# "Емулация на натискане на Gameshark бутона - използва се при някои кодове"
#267# "Смяна на емулацията от прозоречен до пълен екран (натисни Escape за връщане!)"
#268# "Задържа Project64 прозореца пред всички други прозорци"
#269# "Промяна на настройките в графичния plugin"
#270# "Промяна на настройките в звуковия plugin"
#271# "Промяна на настройките в plugin-а за управлението"
#272# "Промяна на настройките в RSP plugin-а"
#273# "Показва натовареността на процесора"
#274# "Промяна на главните настройки на Project64"
#275# "Отваряне на ръководството на потребителя"
#276# "Отваряне на специфичното за определена игра FAQ"
#277# "Относно това приложение и авторите му"
#278# "Относно авторите на поддържащите файлове"
#279# "Отваряне на предишно зареждан ROM"
#280# "Избор на твоя ROM директория"
#281# "Промяна езика на Project64"
#282# "Смяна мястото за запис"
#283# "Зарежда и стартира избраната игра"
#284# "Показва информация за съответната игра"
#285# "Промяна настройките в RDB файла"
#286# "Промяна кодовете в CHT файла"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "Име на файла"
#301# "Вътрешно име"
#302# "Good Име"
#303# "Статус"
#304# "Rom големина"
#305# "Забележки (ядро)"
#306# "Забележки (plugin)"
#307# "Забележки (потребител)"
#308# "ID на дискетата"
#309# "Производител"
#310# "Регион"
#311# "Разработчик"
#300# "Име на файла"
#301# "Вътрешно име"
#302# "Good Име"
#303# "Статус"
#304# "Rom големина"
#305# "Забележки (ядро)"
#306# "Забележки (plugin)"
#307# "Забележки (потребител)"
#308# "ID на дискетата"
#309# "Производител"
#310# "Регион"
#311# "Разработчик"
#312# "CRC1"
#313# "CRC2"
#314# "CIC Chip"
#315# "Дата на излизане"
#316# "Жанр"
#317# "Играчи"
#315# "Дата на излизане"
#316# "Жанр"
#317# "Играчи"
//Select Rom
#320# "Избиране ROM директория за ROM браузера"
#320# "Избиране ROM директория за ROM браузера"
//Messages
#340# "Лош ROM? Използвай GoodN64 & и провери за ново INI"
#340# "Лош ROM? Използвай GoodN64 & и провери за ново INI"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Project64 Настройки"
#400# "Project64 Настройки"
//Tabs
#401# "Plugin-и"
#402# "Директории"
#403# "Опции"
#404# "Избор на ROM"
#405# "Допълнителни"
#401# "Plugin-и"
#402# "Директории"
#403# "Опции"
#404# "Избор на ROM"
#405# "Допълнителни"
#406# "ROM Settings"
#407# "Асоцииране на разширенията"
#408# "ROM забележки"
#407# "Асоцииране на разширенията"
#408# "ROM забележки"
//Plugin Dialog
#420# "Относно"
#421# "&Процесор за реалност (RDP) plugin"
#422# "&Графичен plugin"
#423# "&Звуков plugin"
#424# "Plugin за &управлението"
#420# "Относно"
#421# "&Процесор за реалност (RDP) plugin"
#422# "&Графичен plugin"
#423# "&Звуков plugin"
#424# "Plugin за &управлението"
//Directory Dialog
#440# "Plugin &директория"
#441# "ROM д&иректория"
#442# "Директория за N64 автоматични записи"
#443# "Директория за мигновени записи"
#444# "Създаване на изображение в директория"
#440# "Plugin &директория"
#441# "ROM д&иректория"
#442# "Директория за N64 автоматични записи"
#443# "Директория за мигновени записи"
#444# "Създаване на изображение в директория"
#445# "Remember the &last folder a ROM was opened from"
#446# "Избор на директория за plugin-ините"
#447# "Избор на директория за ROM-овете"
#448# "Избор на директория за N64 записи"
#449# "Избор на директория за Project64 записи"
#450# "Директория къде графичния plugin да слага снимките"
#446# "Избор на директория за plugin-ините"
#447# "Избор на директория за ROM-овете"
#448# "Избор на директория за N64 записи"
#449# "Избор на директория за Project64 записи"
#450# "Директория къде графичния plugin да слага снимките"
//Options Dialog
#460# "&Паузирай когато прозорецът не е активен"
#461# "&Цял екран при отваряне на ROM"
#462# "&Скрии допълнителните настройки (препоръчително)"
#463# "&Помни избраните кодове за игрите"
#460# "&Паузирай когато прозорецът не е активен"
#461# "&Цял екран при отваряне на ROM"
#462# "&Скрии допълнителните настройки (препоръчително)"
#463# "&Помни избраните кодове за игрите"
//Rom Browser Tab
#480# "&Брой запомненини ROM-ове (0-10)"
#481# "ROMа"
#482# "Брой на запомнени ROM &директории (0-10)"
#483# "папки"
#484# "ROM &Browser включен"
#485# "&Рекурсия на директориите"
#486# "Покажи полетата"
#487# "&Покажи в този ред:"
#488# "&Добави ->"
#489# "<- &Премахни"
#490# "На&горе"
#491# "На&долу"
#480# "&Брой запомненини ROM-ове (0-10)"
#481# "ROMа"
#482# "Брой на запомнени ROM &директории (0-10)"
#483# "папки"
#484# "ROM &Browser включен"
#485# "&Рекурсия на директориите"
#486# "Покажи полетата"
#487# "&Покажи в този ред:"
#488# "&Добави ->"
#489# "<- &Премахни"
#490# "На&горе"
#491# "На&долу"
//Advanced Options
#500# "Тези опции се използват когато във RDB-то няма указана стойност,
няма RDB, или 'презаписване' опцията отдолу е избрана"
#501# "&Подразбиращи се настройки за ядрото"
#502# "R4300i &ядро"
#503# "&Self-modifying код:"
#504# "RDRA&M размер:"
#500# "Тези опции се използват когато във RDB-то няма указана стойност,
няма RDB, или 'презаписване' опцията отдолу е избрана"
#501# "&Подразбиращи се настройки за ядрото"
#502# "R4300i &ядро"
#503# "&Self-modifying код:"
#504# "RDRA&M размер:"
#505# "&Advanced Block Linking:"
#506# "&Стартирай емулация при отваряне на ROM"
#507# "&Презапиши тези настройки по подразбиране с тези от RDB"
#508# "&Kомпресирай Pj64 записите (.zip)"
#506# "&Стартирай емулация при отваряне на ROM"
#507# "&Презапиши тези настройки по подразбиране с тези от RDB"
#508# "&Kомпресирай Pj64 записите (.zip)"
//Rom Options
#520# "R4300i &ядро:"
#521# "&Self-modifying код:"
#522# "RDRA&M размер:"
#520# "R4300i &ядро:"
#521# "&Self-modifying код:"
#522# "RDRA&M размер:"
#523# "&Advanced Block Linking:"
#524# "Тип &запис:"
#524# "Тип &запис:"
#525# "Counter &Factor:"
#526# "&По-голям комп. буфер"
#526# "&По-голям комп. буфер"
#527# "&TLB"
#528# "&Register Caching"
#529# "Задръж SI &прекъсване"
#530# "SP &Хак"
#531# "* използвай по подразбиране"
#529# "Задръж SI &прекъсване"
#530# "SP &Хак"
#531# "* използвай по подразбиране"
//Core Styles
#540# "Интерпретатор"
#541# "Рекомпилатор"
#542# "Синхронизирай ядрата"
#540# "Интерпретатор"
#541# "Рекомпилатор"
#542# "Синхронизирай ядрата"
//Self Mod Methods
#560# "Никакъв"
#561# "Кеш"
#562# "Защитена памет"
#563# "Проверка на памет & кеш"
#564# "Промяна на памет & кеш"
#565# "Задълбочена проверка на паметта"
#560# "Никакъв"
#561# "Кеш"
#562# "Защитена памет"
#563# "Проверка на памет & кеш"
#564# "Промяна на памет & кеш"
#565# "Задълбочена проверка на паметта"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "Включено"
#601# "Изключено"
#600# "Включено"
#601# "Изключено"
//Save Type
#620# "* открий първият използван тип"
#620# "* открий първият използван тип"
#621# "4kbit EEPROM"
#622# "16kbit EEPROM"
#623# "32kbyte SRAM"
#624# "128kbyte FlashRAM"
//Shell Intergration Tab
#640# "Асоциация на файловете с Project64"
#640# "Асоциация на файловете с Project64"
//Rom Notes
#660# "&Статус:"
#661# "&Забележка (ядро):"
#662# "&Забележка (plugin):"
#660# "&Статус:"
#661# "&Забележка (ядро):"
#662# "&Забележка (plugin):"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title Title
#800# "ROM информация"
#800# "ROM информация"
//Rom Info Text
#801# "Вътрешно име"
#802# "Име на файла"
#803# "Местоположение"
#804# "Размер"
#805# "ID на дискетата"
#806# "Производител"
#807# "Регион"
#801# "Вътрешно име"
#802# "Име на файла"
#803# "Местоположение"
#804# "Размер"
#805# "ID на дискетата"
#806# "Производител"
#807# "Регион"
#808# "CRC1"
#809# "CRC2"
#810# "CIC чип"
#810# "CIC чип"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "Кодове"
#1001# "Кодове:"
#1002# "Забележки: "
#1003# "Селектирай всички"
#1004# "Премахни селекцията"
#1000# "Кодове"
#1001# "Кодове:"
#1002# "Забележки: "
#1003# "Селектирай всички"
#1004# "Премахни селекцията"
//Add Cheat
#1005# "Добавяне на код"
#1006# "Име:"
#1007# "Код:"
#1008# "Вмъкни"
#1009# "Изчисти"
#1010# " Забележка за кода: "
#1011# "Добави към БД"
#1022# "Добавяне на код"
#1023# "Нов код"
#1024# "<адрес> <стойност>"
#1025# "опции:"
#1026# "<стойност> <етикет>"
#1005# "Добавяне на код"
#1006# "Име:"
#1007# "Код:"
#1008# "Вмъкни"
#1009# "Изчисти"
#1010# " Забележка за кода: "
#1011# "Добави към БД"
#1022# "Добавяне на код"
#1023# "Нов код"
#1024# "<адрес> <стойност>"
#1025# "опции:"
#1026# "<стойност> <етикет>"
//Code extension
#1012# "Разширения на кода"
#1013# "Моля изберете стойност която да бъде използвана:"
#1012# "Разширения на кода"
#1013# "Моля изберете стойност която да бъде използвана:"
#1014# "OK"
#1015# "Cancel"
//Digital Value
#1016# "Количество"
#1017# "Моля изберете стойност за:"
#1018# "&Стойност"
#1019# "от"
#1020# "до"
#1021# "&Забележки:"
#1016# "Количество"
#1017# "Моля изберете стойност за:"
#1018# "&Стойност"
#1019# "от"
#1020# "до"
#1021# "&Забележки:"
//Edit Cheat
#1027# "Редактиране на кода"
#1028# "Обновяване на кода"
#1027# "Редактиране на кода"
#1028# "Обновяване на кода"
//Cheat Popup Menu
#1040# "Добави нов код..."
#1041# "Радактирай..."
#1042# "Изтрий"
#1040# "Добави нов код..."
#1041# "Радактирай..."
#1042# "Изтрий"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "Паузирано"
#2001# "Продължено"
#2002# "В постоянен цикъл от който не може да се излезе.
Емулацията сега ще спре.
#2000# "Паузирано"
#2001# "Продължено"
#2002# "В постоянен цикъл от който не може да се излезе.
Емулацията сега ще спре.
Проверете ROM-а и неговите настройки."
#2003# "Неуспешно заделяне на памет"
#2004# "Графичния plugin липсва или е невалиден.
Проверете ROM-а и неговите настройки."
#2003# "Неуспешно заделяне на памет"
#2004# "Графичния plugin липсва или е невалиден.
Проверете дали имате поне един валиден plugin във вашата plugin директория."
#2005# "Звуковия plugin липсва или е невалиден.
Проверете дали имате поне един валиден plugin във вашата plugin директория."
#2005# "Звуковия plugin липсва или е невалиден.
Проверете дали имате поне един валиден plugin във вашата plugin директория."
#2006# "RSP plugin-а липсва или е невалиден.
Проверете дали имате поне един валиден plugin във вашата plugin директория."
#2006# "RSP plugin-а липсва или е невалиден.
Проверете дали имате поне един валиден plugin във вашата plugin директория."
#2007# "Plugin-а за управлението липсва или е невалиден.
Проверете дали имате поне един валиден plugin във вашата plugin директория."
#2007# "Plugin-а за управлението липсва или е невалиден.
Проверете дали имате поне един валиден plugin във вашата plugin директория."
#2008# "Plugin-ът не може да бъде зареден:"
#2009# "Неуспешно зареждане на дума
Проверете дали имате поне един валиден plugin във вашата plugin директория."
#2008# "Plugin-ът не може да бъде зареден:"
#2009# "Неуспешно зареждане на дума
Провери ROM-а и неговите настройки."
#2010# "Неуспешно отваряне на Project64 запис"
#2011# "Неуспешно отваряне на EEPROM-а"
#2012# "Неуспешно отваряне на FlashRAM-а"
#2013# "Неуспешно отваряне на MemPak-а"
#2014# "Неуспешно отваряне на ZIP файл-а.
Провери ROM-а и неговите настройки."
#2010# "Неуспешно отваряне на Project64 запис"
#2011# "Неуспешно отваряне на EEPROM-а"
#2012# "Неуспешно отваряне на FlashRAM-а"
#2013# "Неуспешно отваряне на MemPak-а"
#2014# "Неуспешно отваряне на ZIP файл-а.
Липсващ или повреден ZIP файл - проверете пътя към файла."
#2015# "Неуспешно отваряне на файл."
#2016# "Грешка при отварянето на zip файла."
#2017# "Зареденият файл не изглежда като Nintendo64 ROM.
Липсващ или повреден ZIP файл - проверете пътя към файла."
#2015# "Неуспешно отваряне на файл."
#2016# "Грешка при отварянето на zip файла."
#2017# "Зареденият файл не изглежда като Nintendo64 ROM.
Проверете Вашите ROMs със GoodN64."
#2018# "Непозната държава"
#2019# "Непознат CIC чип"
#2020# "Непознат формат на файла"
#2021# "Непозната функция на паметта
Проверете Вашите ROMs със GoodN64."
#2018# "Непозната държава"
#2019# "Непознат CIC чип"
#2020# "Непознат формат на файла"
#2021# "Непозната функция на паметта
Емулацията ще спре"
#2022# "Непознат R4300i OpCode в"
#2023# "Изпълняване от "non-mapped space".
Емулацията ще спре"
#2022# "Непознат R4300i OpCode в"
#2023# "Изпълняване от "non-mapped space".
Проверете ROM-a или неговите настройки."
#2024# "Pj64 записа който се опитвате да заредите изглежда не е за съответната игра.
Проверете ROM-a или неговите настройки."
#2024# "Pj64 записа който се опитвате да заредите изглежда не е за съответната игра.
Pj64 записите трябва да се записват & зареждат между 100% идентични ROM-ове,
като региона и весията ТРЯБВА да бъдат еднакви.
Зареждането на този запис може да предизвика забиването на емулатора/играта.
Pj64 записите трябва да се записват & зареждат между 100% идентични ROM-ове,
като региона и весията ТРЯБВА да бъдат еднакви.
Зареждането на този запис може да предизвика забиването на емулатора/играта.
Сигурни ли сте че искате да продължите?
#2025# "Програмна/грешка в ядрото"
#2026# "Copyright последователността не е намерена в LUT. Тази игра повече няма да функционира."
#2027# "Copy Protection грешка"
#2028# "Смяната на plugin изисква Project64 да рестартира пуснатия ROM.
Ако не искате да загубите вашето място, отговорете с No и първо направете запис.
Сигурни ли сте че искате да продължите?
#2025# "Програмна/грешка в ядрото"
#2026# "Copyright последователността не е намерена в LUT. Тази игра повече няма да функционира."
#2027# "Copy Protection грешка"
#2028# "Смяната на plugin изисква Project64 да рестартира пуснатия ROM.
Ако не искате да загубите вашето място, отговорете с No и първо направете запис.
Смяна на plugin-ите и рестартиране на играта сега?"
#2029# "Смяна на plugin-ите"
#2030# "Емулацията приключила"
#2031# "Емулацията стартирана"
#2032# "Невъзможно зареждането на запис"
#2033# "Зареден запис"
#2034# "Съхранен запис"
Смяна на plugin-ите и рестартиране на играта сега?"
#2029# "Смяна на plugin-ите"
#2030# "Емулацията приключила"
#2031# "Емулацията стартирана"
#2032# "Невъзможно зареждането на запис"
#2033# "Зареден запис"
#2034# "Съхранен запис"
#2035# "Current save state slot"
#2036# ""Byteswap"-ване на ROM"
#2037# "Изчакване за избор на ROM"
#2038# "Зареден"
#2039# "Зареждане на ROM"
#2040# "Отварянето на ROM преди инициализирането на всички plugin-и (графичен, звуков, за управление и RSP) не са инициализирани"
#2041# "Сигурен ли сте че искате да изтриете този код?"
#2042# "Изтриване на код"
#2043# "Вече съществува такова име за код. Моля използвайте друго."
#2044# "Достигнал сте максималния брой на кодове за една игра."
#2036# ""Byteswap"-ване на ROM"
#2037# "Изчакване за избор на ROM"
#2038# "Зареден"
#2039# "Зареждане на ROM"
#2040# "Отварянето на ROM преди инициализирането на всички plugin-и (графичен, звуков, за управление и RSP) не са инициализирани"
#2041# "Сигурен ли сте че искате да изтриете този код?"
#2042# "Изтриване на код"
#2043# "Вече съществува такова име за код. Моля използвайте друго."
#2044# "Достигнал сте максималния брой на кодове за една игра."

View File

@ -1,426 +1,426 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "简体中文" // LANGUAGE ID
#2 # "莫尼卡" // Author
#1 # "简体中文" // LANGUAGE ID
#2 # "莫尼卡" // Author
#3 # "4.0.5" // Version
#4 # "2005 年 4 月 25 日" // Date
#4 # "2005 年 4 月 25 日" // Date
//About DLL Dialog
#5 # "当前使用的语言"
#6 # "作者"
#7 # "版本"
#8 # "日期"
#9 # "访问作者主页"
#10 # "Rom 数据库 (.RDB)"
#11 # "金手指文件 (.CHT)"
#12 # "扩展 Rom 信息 (.RDX)"
#5 # "当前使用的语言"
#6 # "作者"
#7 # "版本"
#8 # "日期"
#9 # "访问作者主页"
#10 # "Rom 数据库 (.RDB)"
#11 # "金手指文件 (.CHT)"
#12 # "扩展 Rom 信息 (.RDX)"
//About INI title
#20 # "关于 INI 文件"
#20 # "关于 INI 文件"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "文件(&F)"
#101# "打开 Rom(&O)"
#102# "Rom 信息(&I)...."
#103# "开始模拟"
#104# "停止模拟(&S)"
#105# "选择 Rom 目录..."
#106# "刷新 Rom 列表"
#107# "近期的 Rom"
#108# "近期的 Rom 目录"
#109# "退出(&X)"
#100# "文件(&F)"
#101# "打开 Rom(&O)"
#102# "Rom 信息(&I)...."
#103# "开始模拟"
#104# "停止模拟(&S)"
#105# "选择 Rom 目录..."
#106# "刷新 Rom 列表"
#107# "近期的 Rom"
#108# "近期的 Rom 目录"
#109# "退出(&X)"
//System Menu
#120# "系统(&S)"
#121# "重置(&R)"
#122# "暂停(&P)"
#123# "截图"
#124# "限制帧数"
#125# "保存(&S)"
#126# "另存为..."
#127# "还原(&R)"
#128# "载入(&L)..."
#129# "选择保存位置(&T)"
#130# "金手指..."
#131# "GS 按钮"
#132# "继续"
#120# "系统(&S)"
#121# "重置(&R)"
#122# "暂停(&P)"
#123# "截图"
#124# "限制帧数"
#125# "保存(&S)"
#126# "另存为..."
#127# "还原(&R)"
#128# "载入(&L)..."
#129# "选择保存位置(&T)"
#130# "金手指..."
#131# "GS 按钮"
#132# "继续"
//Options Menu
#140# "选项(&O)"
#141# "全屏模式(&F)"
#142# "总在最前(&T)"
#143# "设置图形插件..."
#144# "设置音频插件..."
#145# "设置控制器插件..."
#146# "设置 RSP 插件..."
#147# "显示 CPU 占用率 %"
#148# "系统设置(&S)..."
#140# "选项(&O)"
#141# "全屏模式(&F)"
#142# "总在最前(&T)"
#143# "设置图形插件..."
#144# "设置音频插件..."
#145# "设置控制器插件..."
#146# "设置 RSP 插件..."
#147# "显示 CPU 占用率 %"
#148# "系统设置(&S)..."
//Debugger Menu
#160# "调试器(&D)"
#160# "调试器(&D)"
//Language Menu
#175# "语言(&L)"
#175# "语言(&L)"
//Help Menu
#180# "帮助(&H)"
#181# "关于 &INI 文件"
#182# "关于 Project 64(&A)"
#183# "支持论坛(&F)"
#184# "主页(&H)"
#180# "帮助(&H)"
#181# "关于 &INI 文件"
#182# "关于 Project 64(&A)"
#183# "支持论坛(&F)"
#184# "主页(&H)"
//Current Save Slot menu
#190# "默认"
#191# "位置 1"
#192# "位置 2"
#193# "位置 3"
#194# "位置 4"
#195# "位置 5"
#196# "位置 6"
#197# "位置 7"
#198# "位置 8"
#199# "位置 9"
#200# "位置 10"
#190# "默认"
#191# "位置 1"
#192# "位置 2"
#193# "位置 3"
#194# "位置 4"
#195# "位置 5"
#196# "位置 6"
#197# "位置 7"
#198# "位置 8"
#199# "位置 9"
#200# "位置 10"
//Pop up Menu
#210# "运行游戏"
#211# "Rom 信息"
#212# "编辑游戏设置"
#213# "编辑金手指"
#210# "运行游戏"
#211# "Rom 信息"
#212# "编辑游戏设置"
#213# "编辑金手指"
// Menu Descriptions
#250# "打开一个 N64 rom 镜像"
#251# "显示已装载镜像的信息"
#252# "开始模拟已载入的镜像"
#253# "停止模拟已载入的镜像"
#254# "选择 Rom 目录"
#255# "刷新 Rom 浏览器当前的 Rom 列表"
#256# "退出这个应用程序"
#257# "重新引导当前的 Rom 镜像 (重新装载一些已改动的设置)"
#258# "暂停/继续模拟当前的 Rom"
#259# "为当前的屏幕图象创建一个位图文件"
#260# "为当前的 N64 速度限制帧数"
#261# "为当前的系统创建一个即时存档"
#262# "选择要创建即时存档的位置"
#263# "载入一个即时存档"
#264# "选择一个要载入的即时存档"
#265# "开启/关闭 Game shark 代码"
#266# "在特定的金手指中使用 Game shark 按钮"
#267# "将模拟器的显示模式由窗口改为全屏"
#268# "使窗口总是停留在其它窗口之上"
#269# "更改图形插件的设置"
#270# "更改音频插件的设置"
#271# "更改控制器插件的设置"
#272# "更改 RSP 插件的设置"
#273# "显示 CPU 占用率"
#274# "显示/更改这个应用程序的设置"
#275# "查看这个程序的用户手册"
#276# "查看这个程序的游戏 FAQ"
#277# "关于支持文件的作者"
#278# "关于程序和作者"
#279# "打开这个先前打开过的 Rom"
#280# "选择您的 Rom 目录"
#281# "改变应用程序正使用的语言"
#282# "选择这个即时存档位置"
#283# "运行所选择的游戏"
#284# "关于所选择游戏的信息"
#285# "编辑所选择游戏的设置"
#286# "编辑所选择游戏的金手指"
#250# "打开一个 N64 rom 镜像"
#251# "显示已装载镜像的信息"
#252# "开始模拟已载入的镜像"
#253# "停止模拟已载入的镜像"
#254# "选择 Rom 目录"
#255# "刷新 Rom 浏览器当前的 Rom 列表"
#256# "退出这个应用程序"
#257# "重新引导当前的 Rom 镜像 (重新装载一些已改动的设置)"
#258# "暂停/继续模拟当前的 Rom"
#259# "为当前的屏幕图象创建一个位图文件"
#260# "为当前的 N64 速度限制帧数"
#261# "为当前的系统创建一个即时存档"
#262# "选择要创建即时存档的位置"
#263# "载入一个即时存档"
#264# "选择一个要载入的即时存档"
#265# "开启/关闭 Game shark 代码"
#266# "在特定的金手指中使用 Game shark 按钮"
#267# "将模拟器的显示模式由窗口改为全屏"
#268# "使窗口总是停留在其它窗口之上"
#269# "更改图形插件的设置"
#270# "更改音频插件的设置"
#271# "更改控制器插件的设置"
#272# "更改 RSP 插件的设置"
#273# "显示 CPU 占用率"
#274# "显示/更改这个应用程序的设置"
#275# "查看这个程序的用户手册"
#276# "查看这个程序的游戏 FAQ"
#277# "关于支持文件的作者"
#278# "关于程序和作者"
#279# "打开这个先前打开过的 Rom"
#280# "选择您的 Rom 目录"
#281# "改变应用程序正使用的语言"
#282# "选择这个即时存档位置"
#283# "运行所选择的游戏"
#284# "关于所选择游戏的信息"
#285# "编辑所选择游戏的设置"
#286# "编辑所选择游戏的金手指"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "文件名"
#301# "内部名称"
#302# "正确的名称"
#303# "状态"
#304# "Rom 容量"
#305# "说明 (核心)"
#306# "说明 (默认插件)"
#307# "说明 (用户)"
#308# "卡带 ID"
#309# "厂商"
#310# "国家"
#311# "开发者"
#300# "文件名"
#301# "内部名称"
#302# "正确的名称"
#303# "状态"
#304# "Rom 容量"
#305# "说明 (核心)"
#306# "说明 (默认插件)"
#307# "说明 (用户)"
#308# "卡带 ID"
#309# "厂商"
#310# "国家"
#311# "开发者"
#312# "CRC1"
#313# "CRC2"
#314# "CIC 芯片"
#315# "发售日期"
#316# "游戏类型"
#317# "游戏人数"
#318# "强制力回馈"
#314# "CIC 芯片"
#315# "发售日期"
#316# "游戏类型"
#317# "游戏人数"
#318# "强制力回馈"
//Select Rom
#320# "选择当前的 Rom 目录"
#320# "选择当前的 Rom 目录"
//Messages
#340# "错误的 ROM? 请使用 GoodN64 并检查更新您的 INI"
#340# "错误的 ROM? 请使用 GoodN64 并检查更新您的 INI"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "系统设置"
#400# "系统设置"
//Tabs
#401# "插件"
#402# "目录"
#403# "选项"
#404# "Rom 状态显示设置"
#405# "高级"
#406# "Rom 设置"
#407# "文件关联设置"
#408# "Rom 说明"
#401# "插件"
#402# "目录"
#403# "选项"
#404# "Rom 状态显示设置"
#405# "高级"
#406# "Rom 设置"
#407# "文件关联设置"
#408# "Rom 说明"
//Plugin Dialog
#420# "关于"
#421# " 实时信号处理器(RSP)插件: "
#422# " 视频 (图形) 插件: "
#423# " 音频 (声音) 插件: "
#424# " 输入 (控制器) 插件: "
#420# "关于"
#421# " 实时信号处理器(RSP)插件: "
#422# " 视频 (图形) 插件: "
#423# " 音频 (声音) 插件: "
#424# " 输入 (控制器) 插件: "
//Directory Dialog
#440# " 插件目录: "
#441# " Rom 目录: "
#442# " N64 自动存档: "
#443# " 即时记忆: "
#444# " 截图: "
#445# "最后一次打开 Rom 的目录."
#446# "选择插件目录"
#447# "选择 Rom 目录"
#448# "选择自动存档目录"
#449# "选择即时存档目录"
#450# "选择截图文件目录"
#440# " 插件目录: "
#441# " Rom 目录: "
#442# " N64 自动存档: "
#443# " 即时记忆: "
#444# " 截图: "
#445# "最后一次打开 Rom 的目录."
#446# "选择插件目录"
#447# "选择 Rom 目录"
#448# "选择自动存档目录"
#449# "选择即时存档目录"
#450# "选择截图文件目录"
//Options Dialog
#460# "当窗口挂起时暂停模拟器"
#461# "载入 Rom 完毕后切换为全屏模式"
#462# "隐藏高级设置选项"
#463# "记忆已选择的金手指"
#460# "当窗口挂起时暂停模拟器"
#461# "载入 Rom 完毕后切换为全屏模式"
#462# "隐藏高级设置选项"
#463# "记忆已选择的金手指"
//Rom Browser Tab
#480# "最大 # Rom 记忆数 (最大 10):"
#480# "最大 # Rom 记忆数 (最大 10):"
#481# "Rom"
#482# "最大 # Rom 目录记忆数 (最大 10):"
#483# "目录"
#484# "使用 Rom 浏览器"
#485# "包含所有子目录"
#486# "可显示的状态:"
#487# "已显示的状态:"
#488# "添加 ->"
#489# "<- 移除"
#490# "上"
#491# "下"
#482# "最大 # Rom 目录记忆数 (最大 10):"
#483# "目录"
#484# "使用 Rom 浏览器"
#485# "包含所有子目录"
#486# "可显示的状态:"
#487# "已显示的状态:"
#488# "添加 ->"
#489# "<- 移除"
#490# "上"
#491# "下"
//Advanced Options
#500# "在这里的大多数被更改的选项要重新载入一个 Rom 或将当前的 Rom 重置才能生效"
#501# "默认核心"
#502# "CPU 核心类型:"
#503# "自我修改码方案:"
#504# "默认记忆容量:"
#505# "扩展模块连接:"
#506# "当 Rom 载入完毕后开始模拟"
#507# "总是从 ini 中覆盖默认设置"
#508# "自动压缩即时记忆文件"
#500# "在这里的大多数被更改的选项要重新载入一个 Rom 或将当前的 Rom 重置才能生效"
#501# "默认核心"
#502# "CPU 核心类型:"
#503# "自我修改码方案:"
#504# "默认记忆容量:"
#505# "扩展模块连接:"
#506# "当 Rom 载入完毕后开始模拟"
#507# "总是从 ini 中覆盖默认设置"
#508# "自动压缩即时记忆文件"
//Rom Options
#520# "CPU 核心类型:"
#521# "自我修改码方案:"
#522# "记忆容量:"
#523# "扩展模块连接:"
#524# "默认记忆类型:"
#525# "计算因数:"
#526# "较大的编译器缓冲"
#527# "使用 TLB"
#528# "寄存缓冲器"
#529# "延迟 SI 中断信号"
#520# "CPU 核心类型:"
#521# "自我修改码方案:"
#522# "记忆容量:"
#523# "扩展模块连接:"
#524# "默认记忆类型:"
#525# "计算因数:"
#526# "较大的编译器缓冲"
#527# "使用 TLB"
#528# "寄存缓冲器"
#529# "延迟 SI 中断信号"
#530# "SP Hack"
#531# "默认"
#532# "RSP 音频信号"
#531# "默认"
#532# "RSP 音频信号"
//Core Styles
#540# "注释器"
#541# "重编译"
#542# "核心同步"
#540# "注释器"
#541# "重编译"
#542# "核心同步"
//Self Mod Methods
#560# "无"
#561# "缓冲器"
#562# "保护模式内存"
#563# "效验内存和缓冲器"
#564# "改变内存和缓冲器"
#565# "高级效验内存"
#560# "无"
#561# "缓冲器"
#562# "保护模式内存"
#563# "效验内存和缓冲器"
#564# "改变内存和缓冲器"
#565# "高级效验内存"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "开"
#601# "关"
#600# "开"
#601# "关"
//Save Type
#620# "使用第一次使用的记忆类型"
#620# "使用第一次使用的记忆类型"
#621# "4kbit Eeprom"
#622# "16kbit Eeprom"
#623# "32kbytes SRAM"
#624# "Flashram"
//Shell Integration Tab
#640# "要关联的文件扩展名:"
#640# "要关联的文件扩展名:"
//Rom Notes
#660# "Rom 状态:"
#661# "核心说明:"
#662# "插件说明:"
#660# "Rom 状态:"
#661# "核心说明:"
#662# "插件说明:"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "Rom 信息"
#800# "Rom 信息"
//Rom Info Text
#801# "ROM 名称:"
#802# "文件名:"
#803# "路径:"
#804# "Rom 容量:"
#805# "卡带 ID:"
#806# "厂商:"
#807# "国家:"
#801# "ROM 名称:"
#802# "文件名:"
#803# "路径:"
#804# "Rom 容量:"
#805# "卡带 ID:"
#806# "厂商:"
#807# "国家:"
#808# "CRC1:"
#809# "CRC2:"
#810# "CIC 芯片:"
#810# "CIC 芯片:"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "金手指"
#1001# "金手指:"
#1002# " 说明: "
#1003# "全选"
#1004# "取消所有选择"
#1000# "金手指"
#1001# "金手指:"
#1002# " 说明: "
#1003# "全选"
#1004# "取消所有选择"
//Add Cheat
#1005# "添加金手指"
#1006# "名称:"
#1007# "代码:"
#1008# "插入"
#1009# "清除"
#1010# " 修改说明: "
#1011# "添加到 DB"
#1022# "添加金手指"
#1023# "新建金手指"
#1024# "<地址> <值>"
#1025# "选项:"
#1026# "<值> <注释>"
#1005# "添加金手指"
#1006# "名称:"
#1007# "代码:"
#1008# "插入"
#1009# "清除"
#1010# " 修改说明: "
#1011# "添加到 DB"
#1022# "添加金手指"
#1023# "新建金手指"
#1024# "<地址> <值>"
#1025# "选项:"
#1026# "<值> <注释>"
//Code extension
#1012# "代码范围"
#1013# "请选择一个要使用的值:"
#1014# "确定"
#1015# "取消"
#1012# "代码范围"
#1013# "请选择一个要使用的值:"
#1014# "确定"
#1015# "取消"
//Digital Value
#1016# "数量"
#1017# "请选择一个值:"
#1018# "数值(&V)"
#1019# "从"
#1020# "到"
#1021# "说明(&N):"
#1016# "数量"
#1017# "请选择一个值:"
#1018# "数值(&V)"
#1019# "从"
#1020# "到"
#1021# "说明(&N):"
//Edit Cheat
#1027# "编辑金手指"
#1028# "更新金手指"
#1027# "编辑金手指"
#1028# "更新金手指"
//Cheat Popup Menu
#1040# "添加新的金手指..."
#1041# "编辑"
#1042# "删除"
#1040# "添加新的金手指..."
#1041# "编辑"
#1042# "删除"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "*** CPU 已暂停 ***"
#2001# "CPU 继续运行"
#2002# "进入了一个死循环无法停止。
模拟器现在将停止运行。
#2000# "*** CPU 已暂停 ***"
#2001# "CPU 继续运行"
#2002# "进入了一个死循环无法停止。
模拟器现在将停止运行。
请检查 ROM 和 ROM 的设置。"
#2003# "内存分配错误"
#2004# "默认或您选择的图形插件无效或不存在。
请检查 ROM 和 ROM 的设置。"
#2003# "内存分配错误"
#2004# "默认或您选择的图形插件无效或不存在。
请确认您至少有一个插件文件在您的插件目录内。"
#2005# "默认或您选择的音频插件无效或不存在。
请确认您至少有一个插件文件在您的插件目录内。"
#2005# "默认或您选择的音频插件无效或不存在。
请确认您至少有一个插件文件在您的插件目录内。"
#2006# "默认或您选择的 RSP 插件无效或不存在。
请确认您至少有一个插件文件在您的插件目录内。"
#2006# "默认或您选择的 RSP 插件无效或不存在。
请确认您是否完全安装了 Project64 或您的插件目录路径是否有效。"
#2007# "默认或您选择的输入插件无效或不存在。
请确认您是否完全安装了 Project64 或您的插件目录路径是否有效。"
#2007# "默认或您选择的输入插件无效或不存在。
请确认您至少有一个插件文件在您的插件目录内。"
#2008# "载入插件失败:"
#2009# "载入设置失败
请确认您至少有一个插件文件在您的插件目录内。"
#2008# "载入插件失败:"
#2009# "载入设置失败
请检查 ROM 和 ROM 设置。"
#2010# "打开记忆文件失败"
#2011# "打开 Eeprom 失败"
#2012# "打开 Flashram 失败"
#2013# "打开记忆卡失败"
#2014# "尝试打开 zip 文件失败。
不存在或损坏的 zip 文件 - 请检查路径和文件。
请检查 ROM 和 ROM 设置。"
#2010# "打开记忆文件失败"
#2011# "打开 Eeprom 失败"
#2012# "打开 Flashram 失败"
#2013# "打开记忆卡失败"
#2014# "尝试打开 zip 文件失败。
不存在或损坏的 zip 文件 - 请检查路径和文件。
您或许需要重新启动应用程序。"
#2015# "尝试打开文件失败。"
#2016# "在尝试打开 Zip 文件时发生错误。"
#2017# "被载入的文件看来不是一个正确的 Nintendo64 ROM。
您或许需要重新启动应用程序。"
#2015# "尝试打开文件失败。"
#2016# "在尝试打开 Zip 文件时发生错误。"
#2017# "被载入的文件看来不是一个正确的 Nintendo64 ROM。
请使用 GoodN64 来效验你的 Rom。"
#2018# "未知的国家"
#2019# "未知的 Cic 芯片"
#2020# "未知的文件格式"
#2021# "未知的记忆方式
请使用 GoodN64 来效验你的 Rom。"
#2018# "未知的国家"
#2019# "未知的 Cic 芯片"
#2020# "未知的文件格式"
#2021# "未知的记忆方式
模拟器现在已停止"
#2022# "未经处理的 R4300i Op 码"
#2023# "没有运行所需的映射空间。
模拟器现在已停止"
#2022# "未经处理的 R4300i Op 码"
#2023# "没有运行所需的映射空间。
请检查 Rom 和 Rom 设置."
#2024# "即时记忆看来不是当前正在运行的 Rom 的。
请检查 Rom 和 Rom 设置."
#2024# "即时记忆看来不是当前正在运行的 Rom 的。
即时记忆必须在 100% 相同的 Rom 上保存和载入,
特别是版本和区域必须相同。
载入这个即时记忆可能使模拟器或游戏死机
即时记忆必须在 100% 相同的 Rom 上保存和载入,
特别是版本和区域必须相同。
载入这个即时记忆可能使模拟器或游戏死机
您确实要继续载入吗?"
#2025# "错误"
#2026# "没有在 Lut 中发现版权序列。 游戏可能无法运行。"
#2027# "复制保护失败"
#2028# "改变插件需要 Project64 重置后重新运行这个 Rom。
如果您不想在现在丢失游戏进度, 那么请回答否然后保存一个即时记忆。
您确实要继续载入吗?"
#2025# "错误"
#2026# "没有在 Lut 中发现版权序列。 游戏可能无法运行。"
#2027# "复制保护失败"
#2028# "改变插件需要 Project64 重置后重新运行这个 Rom。
如果您不想在现在丢失游戏进度, 那么请回答否然后保存一个即时记忆。
改变插件并且重置游戏吗?"
#2029# "改变插件"
#2030# "模拟器已停止"
#2031# "开始模拟"
#2032# "不能载入即时记忆"
#2033# "已载入即时记忆"
#2034# "保存即时记忆到"
#2035# "记忆区域"
#2036# "交换数位镜像"
#2037# "关闭 N64 镜像"
#2038# "已载入"
#2039# "正载入镜像"
#2040# "无法打开 Rom 因为插件没有正确初始化"
#2041# "您确实要删除这个吗?"
#2042# "删除金手指"
#2043# "修改名称已被使用"
#2044# "您超过了这个 Rom 的最大修改值"
改变插件并且重置游戏吗?"
#2029# "改变插件"
#2030# "模拟器已停止"
#2031# "开始模拟"
#2032# "不能载入即时记忆"
#2033# "已载入即时记忆"
#2034# "保存即时记忆到"
#2035# "记忆区域"
#2036# "交换数位镜像"
#2037# "关闭 N64 镜像"
#2038# "已载入"
#2039# "正载入镜像"
#2040# "无法打开 Rom 因为插件没有正确初始化"
#2041# "您确实要删除这个吗?"
#2042# "删除金手指"
#2043# "修改名称已被使用"
#2044# "您超过了这个 Rom 的最大修改值"

View File

@ -1,429 +1,429 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "台灣正體中文(TW T-Chinese)" // LANGUAGE ID
#1 # "台灣正體中文(TW T-Chinese)" // LANGUAGE ID
#2 # "Dark Dragon (adolrs25@yahoo.com.tw)" // Author
#3 # "1.6.0.0" // Version
#4 # "2005-10-12" // Date
//About DLL Dialog
#5 # "GUI 翻譯 (.pj.Lang)"
#6 # "製作者"
#7 # "版本"
#8 # "日期"
#9 # "作者首頁"
#10 # "ROM 資料庫 (Project64.rdb)"
#11 # "作弊碼檔案 (Project64.cht)"
#12 # "ROM資訊 (Project64.rdx)"
#5 # "GUI 翻譯 (.pj.Lang)"
#6 # "製作者"
#7 # "版本"
#8 # "日期"
#9 # "作者首頁"
#10 # "ROM 資料庫 (Project64.rdb)"
#11 # "作弊碼檔案 (Project64.cht)"
#12 # "ROM資訊 (Project64.rdx)"
//About INI title
#20 # "Project64的INI檔案製作者"
#20 # "Project64的INI檔案製作者"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "檔案(&F)"
#101# "開啟ROM(&O)."
#102# "ROM資訊(&I)"
#103# "開始模擬(&S)"
#104# "結束模擬(&E)"
#105# "選擇ROM瀏覽資料夾(&S)"
#106# "重新整理(&R)"
#107# "最近開啟的ROM(&E)"
#108# "最近開啟的資料夾(&F)"
#109# "離開(&X)"
#100# "檔案(&F)"
#101# "開啟ROM(&O)."
#102# "ROM資訊(&I)"
#103# "開始模擬(&S)"
#104# "結束模擬(&E)"
#105# "選擇ROM瀏覽資料夾(&S)"
#106# "重新整理(&R)"
#107# "最近開啟的ROM(&E)"
#108# "最近開啟的資料夾(&F)"
#109# "離開(&X)"
//System Menu
#120# "系統(&S)"
#121# "重置ROM(&R)"
#122# "暫停(&P)"
#123# "抓圖(&N)"
#124# "速度限制(&E)"
#125# "儲存隨時記憶進度(&S)"
#126# "儲存進度至檔案(&A)..."
#127# "載入隨時記憶進度(&O)"
#128# "由檔案讀取進度(&L)..."
#129# "選擇進度使用編號(&T)"
#130# "作弊碼(&C)"
#131# "GS作弊碼(&B)"
#132# "繼續(&R)"
#120# "系統(&S)"
#121# "重置ROM(&R)"
#122# "暫停(&P)"
#123# "抓圖(&N)"
#124# "速度限制(&E)"
#125# "儲存隨時記憶進度(&S)"
#126# "儲存進度至檔案(&A)..."
#127# "載入隨時記憶進度(&O)"
#128# "由檔案讀取進度(&L)..."
#129# "選擇進度使用編號(&T)"
#130# "作弊碼(&C)"
#131# "GS作弊碼(&B)"
#132# "繼續(&R)"
//Options Menu
#140# "設定(&O)"
#141# "全螢幕(&F)"
#142# "最上層顯示(&T)"
#143# "視訊設定(&V)..."
#144# "音效設定(&A)..."
#145# "控制器設定(&I)..."
#146# "RSP設定(&R)..."
#147# "顯示CPU使用率(&S)"
#148# "進階設定(&T)"
#140# "設定(&O)"
#141# "全螢幕(&F)"
#142# "最上層顯示(&T)"
#143# "視訊設定(&V)..."
#144# "音效設定(&A)..."
#145# "控制器設定(&I)..."
#146# "RSP設定(&R)..."
#147# "顯示CPU使用率(&S)"
#148# "進階設定(&T)"
//Debugger Menu
#160# "除錯(&D)"
#160# "除錯(&D)"
//Language Menu
#175# "語言(&L)"
#175# "語言(&L)"
//Help Menu
#180# "說明(&H)"
#181# "關於INI(&F)"
#182# "關於Project64(&A)"
#183# "協助&論壇 (&F)"
#184# "首頁(&H)"
#180# "說明(&H)"
#181# "關於INI(&F)"
#182# "關於Project64(&A)"
#183# "協助&論壇 (&F)"
#184# "首頁(&H)"
//Current Save Slot menu
#190# "預設 &D(.pj)"
#191# "檔案 &1 (.pj1)"
#192# "檔案 &2 (.pj2)"
#193# "檔案 &3 (.pj3)"
#194# "檔案 &4 (.pj4)"
#195# "檔案 &5 (.pj5)"
#196# "檔案 &6 (.pj6)"
#197# "檔案 &7 (.pj7)"
#198# "檔案 &8 (.pj8)"
#199# "檔案 &9 (.pj9)"
#200# "檔案 1&0 (.pj0)"
#190# "預設 &D(.pj)"
#191# "檔案 &1 (.pj1)"
#192# "檔案 &2 (.pj2)"
#193# "檔案 &3 (.pj3)"
#194# "檔案 &4 (.pj4)"
#195# "檔案 &5 (.pj5)"
#196# "檔案 &6 (.pj6)"
#197# "檔案 &7 (.pj7)"
#198# "檔案 &8 (.pj8)"
#199# "檔案 &9 (.pj9)"
#200# "檔案 1&0 (.pj0)"
//Pop up Menu
#210# "開始遊戲(&P)"
#211# "ROM資訊(&O)"
#212# "修改ROM設定(&T)"
#213# "編輯作弊碼(&C)"
#210# "開始遊戲(&P)"
#211# "ROM資訊(&O)"
#212# "修改ROM設定(&T)"
#213# "編輯作弊碼(&C)"
// Menu Descriptions
#250# "開啟N64 ROM檔可開啟ZIP檔"
#251# "顯示目前執行的ROM資訊"
#252# "開始模擬載入的ROM檔"
#253# "停止模擬載入的ROM檔"
#254# "更改瀏覽ROM的資料夾"
#255# "重新整理ROM資料夾(若ROM檔案有變更時,請重新整理)"
#256# "離開Project64"
#257# "重新啟動ROM並且將設定生效"
#258# "暫停/繼續模擬ROM(可使用Pause鍵)"
#259# "抓取遊戲畫面(經由Plugin)"
#260# "限制模擬速度正確的顯示速度(較高速的電腦若不選取可能速度會過快)"
#261# "將目前狀態存至Project64設定的隨時記憶檔(系統\選擇進度使用編號)"
#262# "將目前狀態存至Project64記憶檔(可使用任何檔名)"
#263# "讀取Project64設定的隨時記憶檔"
#264# "讀取Project64記憶檔(任何檔名)"
#265# "選擇或增加作弊碼給目前執行的ROM使用"
#266# "使用一個按鈕來執行作弊碼"
#267# "將會重視窗模式變更到全螢幕模式(按Esc鍵返回)"
#268# "保持Project64在最上層"
#269# "開啟視訊(顯示)Plugin設定"
#270# "開啟音效(音樂)Plugin設定"
#271# "開啟控制器(搖桿)Plugin設定"
#272# "開啟RSPPlugin設定"
#273# "顯示或關閉CPU使用率"
#274# "Project64的進階設定(Plugin請在此選擇)"
#275# "開啟Project64的使用者手冊"
#276# "開啟Project64遊戲設定說明(Game FAQ)"
#277# "關於此應用程式及作者"
#278# "關於作者與感謝"
#279# "讀取最近開啟的ROM"
#280# "使用最近瀏覽的資料夾"
#281# "選擇不同的語言"
#282# "選擇不同的進度檔"
#283# "讀取並開始模擬這個ROM"
#284# "顯示這個ROM資訊"
#285# "編輯這個ROM設定在RDB檔案"
#286# "編輯這個ROM的作弊碼"
#250# "開啟N64 ROM檔可開啟ZIP檔"
#251# "顯示目前執行的ROM資訊"
#252# "開始模擬載入的ROM檔"
#253# "停止模擬載入的ROM檔"
#254# "更改瀏覽ROM的資料夾"
#255# "重新整理ROM資料夾(若ROM檔案有變更時,請重新整理)"
#256# "離開Project64"
#257# "重新啟動ROM並且將設定生效"
#258# "暫停/繼續模擬ROM(可使用Pause鍵)"
#259# "抓取遊戲畫面(經由Plugin)"
#260# "限制模擬速度正確的顯示速度(較高速的電腦若不選取可能速度會過快)"
#261# "將目前狀態存至Project64設定的隨時記憶檔(系統\選擇進度使用編號)"
#262# "將目前狀態存至Project64記憶檔(可使用任何檔名)"
#263# "讀取Project64設定的隨時記憶檔"
#264# "讀取Project64記憶檔(任何檔名)"
#265# "選擇或增加作弊碼給目前執行的ROM使用"
#266# "使用一個按鈕來執行作弊碼"
#267# "將會重視窗模式變更到全螢幕模式(按Esc鍵返回)"
#268# "保持Project64在最上層"
#269# "開啟視訊(顯示)Plugin設定"
#270# "開啟音效(音樂)Plugin設定"
#271# "開啟控制器(搖桿)Plugin設定"
#272# "開啟RSPPlugin設定"
#273# "顯示或關閉CPU使用率"
#274# "Project64的進階設定(Plugin請在此選擇)"
#275# "開啟Project64的使用者手冊"
#276# "開啟Project64遊戲設定說明(Game FAQ)"
#277# "關於此應用程式及作者"
#278# "關於作者與感謝"
#279# "讀取最近開啟的ROM"
#280# "使用最近瀏覽的資料夾"
#281# "選擇不同的語言"
#282# "選擇不同的進度檔"
#283# "讀取並開始模擬這個ROM"
#284# "顯示這個ROM資訊"
#285# "編輯這個ROM設定在RDB檔案"
#286# "編輯這個ROM的作弊碼"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "檔案名稱"
#301# "內部名稱"
#302# "遊戲名稱"
#303# "狀態"
#304# "ROM大小"
#305# "重要記錄"
#306# "Plugin記錄"
#307# "使用者記錄"
#308# "縮寫"
#309# "製作公司"
#310# "版本區域"
#311# "開發者"
#300# "檔案名稱"
#301# "內部名稱"
#302# "遊戲名稱"
#303# "狀態"
#304# "ROM大小"
#305# "重要記錄"
#306# "Plugin記錄"
#307# "使用者記錄"
#308# "縮寫"
#309# "製作公司"
#310# "版本區域"
#311# "開發者"
#312# "CRC1"
#313# "CRC2"
#314# "CIC 晶片"
#315# "發行日期"
#316# "類型"
#317# "玩家數"
#318# "強制反應"
#314# "CIC 晶片"
#315# "發行日期"
#316# "類型"
#317# "玩家數"
#318# "強制反應"
//Select Rom
#320# "選擇瀏覽ROM的資料夾"
#320# "選擇瀏覽ROM的資料夾"
//Messages
#340# "無法使用的ROM,請使用GoodN64檢查新的RDB檔"
#340# "無法使用的ROM,請使用GoodN64檢查新的RDB檔"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Project64 設定"
#400# "Project64 設定"
//Tabs
#401# "Plugin"
#402# "資料夾"
#403# "設定"
#404# "ROM瀏覽選項"
#405# "進階設定"
#406# "ROM選項"
#407# "關連"
#408# "ROM 紀錄"
#402# "資料夾"
#403# "設定"
#404# "ROM瀏覽選項"
#405# "進階設定"
#406# "ROM選項"
#407# "關連"
#408# "ROM 紀錄"
//Plugin Dialog
#420# "關於"
#420# "關於"
#421# "&Reality Signal Processor plugin"
#422# "視訊(顯示)Plugin(&V)"
#423# "音效(音樂)Plugin(&A)"
#424# "控制器(搖桿)Plugin(&I)"
#422# "視訊(顯示)Plugin(&V)"
#423# "音效(音樂)Plugin(&A)"
#424# "控制器(搖桿)Plugin(&I)"
//Directory Dialog
#440# "Plugin資料夾(&P)"
#441# "ROM資料夾(&R)"
#442# "N64存檔資料夾(&N)"
#443# "Project64隨時記憶檔資料夾(&T)"
#444# "抓取圖片資料夾(&S)"
#445# "使用最後開啟的ROM資料夾(&L)"
#446# "選擇您存放Plugin的資料夾"
#447# "選擇您存放ROM檔的資料夾"
#448# "選擇您存放N64存檔的資料夾"
#449# "選擇您存放Project64隨時記憶檔的資料夾"
#450# "選擇您欲抓取圖片的資料夾"
#440# "Plugin資料夾(&P)"
#441# "ROM資料夾(&R)"
#442# "N64存檔資料夾(&N)"
#443# "Project64隨時記憶檔資料夾(&T)"
#444# "抓取圖片資料夾(&S)"
#445# "使用最後開啟的ROM資料夾(&L)"
#446# "選擇您存放Plugin的資料夾"
#447# "選擇您存放ROM檔的資料夾"
#448# "選擇您存放N64存檔的資料夾"
#449# "選擇您存放Project64隨時記憶檔的資料夾"
#450# "選擇您欲抓取圖片的資料夾"
//Options Dialog
#460# "非使用Project時暫停(&P)"
#461# "讀取遊戲後自動切換至全螢幕(&F)"
#462# "隱藏進階設定(推薦) (&H)"
#463# "記憶每個遊戲所選擇的作弊碼(&R)"
#460# "非使用Project時暫停(&P)"
#461# "讀取遊戲後自動切換至全螢幕(&F)"
#462# "隱藏進階設定(推薦) (&H)"
#463# "記憶每個遊戲所選擇的作弊碼(&R)"
//Rom Browser Tab
#480# "最近開啟的ROM記憶數目(&N) (0-10)"
#481# "個紀錄"
#482# "最近開啟的資料夾記憶數目(&F) (0-10)"
#483# "個紀錄"
#484# "使用ROM瀏覽器(&B)"
#485# "功能表循環(&D)"
#486# "可使用的(&A)"
#487# "顯示出的(&S)"
#488# "增加(A)->"
#489# "<- 移除(&R)"
#490# "上(&U)"
#491# "下(&D)"
#480# "最近開啟的ROM記憶數目(&N) (0-10)"
#481# "個紀錄"
#482# "最近開啟的資料夾記憶數目(&F) (0-10)"
#483# "個紀錄"
#484# "使用ROM瀏覽器(&B)"
#485# "功能表循環(&D)"
#486# "可使用的(&A)"
#487# "顯示出的(&S)"
#488# "增加(A)->"
#489# "<- 移除(&R)"
#490# "上(&U)"
#491# "下(&D)"
//Advanced Options
#500# "這些設定只使用於RDB檔無正確及具體的設定時,
若RDB檔已經設定,則下列設定無效"
#501# "核心設定(&D)"
#502# "核心模擬模式(&C):"
#503# "內部修正方式(&S):"
#504# "記憶容量大小(&M):"
#505# "進階區塊連結(&A):"
#506# "遊戲讀取後立即開始模擬(&T)"
#507# "覆寫這些設定在RDB檔(&O)"
#508# "自動將隨時存檔壓縮成Zip檔(不壓縮速度較快)"
#500# "這些設定只使用於RDB檔無正確及具體的設定時,
若RDB檔已經設定,則下列設定無效"
#501# "核心設定(&D)"
#502# "核心模擬模式(&C):"
#503# "內部修正方式(&S):"
#504# "記憶容量大小(&M):"
#505# "進階區塊連結(&A):"
#506# "遊戲讀取後立即開始模擬(&T)"
#507# "覆寫這些設定在RDB檔(&O)"
#508# "自動將隨時存檔壓縮成Zip檔(不壓縮速度較快)"
//Rom Options
#520# "核心模擬模式(&C):"
#521# "內置記憶方式(&S):"
#522# "記憶容量大小(&M):"
#523# "進階區塊連結(&A):"
#524# "存檔類型(&V):"
#525# "最高速度限制(&F):"
#526# "較大的緩衝記憶體(&L)"
#527# "預定要使用TLB(&T)"
#528# "隱藏登記(&R)"
#529# "延緩SI中斷(&I)"
#520# "核心模擬模式(&C):"
#521# "內置記憶方式(&S):"
#522# "記憶容量大小(&M):"
#523# "進階區塊連結(&A):"
#524# "存檔類型(&V):"
#525# "最高速度限制(&F):"
#526# "較大的緩衝記憶體(&L)"
#527# "預定要使用TLB(&T)"
#528# "隱藏登記(&R)"
#529# "延緩SI中斷(&I)"
#530# "SP Hack(&H)"
#531# "* 使用預設"
#532# ""RSP 音頻信號""
#531# "* 使用預設"
#532# ""RSP 音頻信號""
//Core Styles
#540# "直譯器"
#541# "重譯器"
#542# "同時啟動"
#540# "直譯器"
#541# "重譯器"
#542# "同時啟動"
//Self Mod Methods
#560# "無"
#561# "隱藏"
#562# "安全記憶體"
#563# "檢查記憶體並隱藏"
#564# "更換記憶體並隱藏"
#565# "檢查進階記憶體"
#560# "無"
#561# "隱藏"
#562# "安全記憶體"
#563# "檢查記憶體並隱藏"
#564# "更換記憶體並隱藏"
#565# "檢查進階記憶體"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "開啟"
#601# "關閉"
#600# "開啟"
#601# "關閉"
//Save Type
#620# "* 使用第一個類型"
#621# "4千位元 EEPROM"
#622# "16千位元 EEPROM"
#623# "32千位元 SRAM"
#624# "128千位元 動態RAM"
#620# "* 使用第一個類型"
#621# "4千位元 EEPROM"
#622# "16千位元 EEPROM"
#623# "32千位元 SRAM"
#624# "128千位元 動態RAM"
//Shell Intergration Tab
#640# "檔案與Project64連結"
#640# "檔案與Project64連結"
//Rom Notes
#660# "狀態(&S):"
#661# "重要記錄(&C):"
#662# "Plugin記錄(&P):"
#660# "狀態(&S):"
#661# "重要記錄(&C):"
#662# "Plugin記錄(&P):"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title Title
#800# "ROM資訊"
#800# "ROM資訊"
//Rom Info Text
#801# "內部名稱"
#802# "檔案名稱"
#803# "位置"
#804# "大小"
#805# "縮寫"
#806# "製作公司"
#807# "版本區域"
#801# "內部名稱"
#802# "檔案名稱"
#803# "位置"
#804# "大小"
#805# "縮寫"
#806# "製作公司"
#807# "版本區域"
#808# "CRC1"
#809# "CRC2"
#810# "CIC 晶片"
#810# "CIC 晶片"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "作弊碼"
#1001# "作弊碼:"
#1002# "說明: "
#1003# "全選"
#1004# "取消選擇(&U)"
#1000# "作弊碼"
#1001# "作弊碼:"
#1002# "說明: "
#1003# "全選"
#1004# "取消選擇(&U)"
//Add Cheat
#1005# "新增作弊碼"
#1006# "名稱:"
#1007# "作弊碼碼:"
#1008# "插入"
#1009# "清除"
#1010# " 作弊碼說明:"
#1011# "新增到 DB"
#1022# "新增作弊碼"
#1023# "建立新作弊碼"
#1024# "<位址> <數值>"
#1025# "設定:"
#1026# "<數值> <標籤>"
#1005# "新增作弊碼"
#1006# "名稱:"
#1007# "作弊碼碼:"
#1008# "插入"
#1009# "清除"
#1010# " 作弊碼說明:"
#1011# "新增到 DB"
#1022# "新增作弊碼"
#1023# "建立新作弊碼"
#1024# "<位址> <數值>"
#1025# "設定:"
#1026# "<數值> <標籤>"
//Code extension
#1012# "編碼延長"
#1013# "請選擇一個數值使用:"
#1014# "確定"
#1015# "取消"
#1012# "編碼延長"
#1013# "請選擇一個數值使用:"
#1014# "確定"
#1015# "取消"
//Digital Value
#1016# "數位量"
#1017# "請選擇一個數值:"
#1016# "數位量"
#1017# "請選擇一個數值:"
#1018# "(&V)"
#1019# "給"
#1020# "到"
#1021# "說明(&N):"
#1019# "給"
#1020# "到"
#1021# "說明(&N):"
//Edit Cheat
#1027# "編輯作弊碼"
#1028# "更新作弊碼"
#1027# "編輯作弊碼"
#1028# "更新作弊碼"
//Cheat Popup Menu
#1040# "建立新作弊碼..."
#1041# "編輯..."
#1042# "刪除"
#1040# "建立新作弊碼..."
#1041# "編輯..."
#1042# "刪除"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "暫停"
#2001# "繼續"
#2002# "在無法改變的區域內不能退出,
模擬即將停止
#2000# "暫停"
#2001# "繼續"
#2002# "在無法改變的區域內不能退出,
模擬即將停止
Verify ROM and ROM Settings."
#2003# "記憶體分配失敗"
#2004# "預設的視訊Plugin檔案不存在或無法使用
#2003# "記憶體分配失敗"
#2004# "預設的視訊Plugin檔案不存在或無法使用
請確定您有一個以上可使用的視訊外掛檔案在你的視訊外掛資料夾裡"
#2005# "預設的音效Plugin檔案不存在或無法使用
請確定您有一個以上可使用的視訊外掛檔案在你的視訊外掛資料夾裡"
#2005# "預設的音效Plugin檔案不存在或無法使用
請確定您有一個以上可使用的音效外掛檔案在你的音效外掛資料夾裡"
#2006# "預設的RPSPlugin檔案不存在或無法使用
請確定您有一個以上可使用的音效外掛檔案在你的音效外掛資料夾裡"
#2006# "預設的RPSPlugin檔案不存在或無法使用
請確定您有正確的安裝Project64並且含有Plugin"
#2007# "預設的控制器Plugin檔案不存在或無法使用
請確定您有正確的安裝Project64並且含有Plugin"
#2007# "預設的控制器Plugin檔案不存在或無法使用
請確定您有一個以上可使用的控制器外掛檔案在你的控制器外掛資料夾裡"
#2008# "無法讀取外掛:"
#2009# "無法讀取
請確定您有一個以上可使用的控制器外掛檔案在你的控制器外掛資料夾裡"
#2008# "無法讀取外掛:"
#2009# "無法讀取
ROM驗證和設定"
#2010# "無法開啟隨時記憶檔"
#2011# "無法開啟EEPROM"
#2012# "無法開啟動態RAM"
#2013# "無法開啟MemPak"
#2014# "無法開啟此ZIP檔
請檢查此ZIP檔中是否含有正確的ROM
ROM驗證和設定"
#2010# "無法開啟隨時記憶檔"
#2011# "無法開啟EEPROM"
#2012# "無法開啟動態RAM"
#2013# "無法開啟MemPak"
#2014# "無法開啟此ZIP檔
請檢查此ZIP檔中是否含有正確的ROM
你可能需要重新開啟這個程式"
#2015# "開啟檔案時發生錯誤"
#2016# "當嘗試開啟ZIP檔時發生錯誤"
#2017# "這個檔案並不是N64的ROM檔
你可能需要重新開啟這個程式"
#2015# "開啟檔案時發生錯誤"
#2016# "當嘗試開啟ZIP檔時發生錯誤"
#2017# "這個檔案並不是N64的ROM檔
請使用GoodROM檢查這個ROM"
#2018# "未知的國家"
#2019# "未知的CIC 晶片"
#2020# "未知的檔案格式"
#2021# "未知的記憶動作
請使用GoodROM檢查這個ROM"
#2018# "未知的國家"
#2019# "未知的CIC 晶片"
#2020# "未知的檔案格式"
#2021# "未知的記憶動作
模擬結束"
#2022# "無法開啟核心碼"
#2023# "執行並無法映射空間
模擬結束"
#2022# "無法開啟核心碼"
#2023# "執行並無法映射空間
請檢查ROM檔和ROM設定"
#2024# "這個存檔並不適用於這個ROM
請檢查ROM檔和ROM設定"
#2024# "這個存檔並不適用於這個ROM
隨時記憶存檔必須100%的來自這個ROM
(包括ROM的版本區域)
讀取這個存檔可能會導致錯誤
隨時記憶存檔必須100%的來自這個ROM
(包括ROM的版本區域)
讀取這個存檔可能會導致錯誤
確定要繼續讀取嗎?"
#2025# "應用程式或核心錯誤"
#2026# "版權序列並未在LUT中找到, 遊戲無法長久執行"
#2027# "複製保護失敗"
#2028# "改變Plugin必須重新啟動以執行的ROM
若需存檔,請存檔再執行重新起動
確定要繼續讀取嗎?"
#2025# "應用程式或核心錯誤"
#2026# "版權序列並未在LUT中找到, 遊戲無法長久執行"
#2027# "複製保護失敗"
#2028# "改變Plugin必須重新啟動以執行的ROM
若需存檔,請存檔再執行重新起動
現在更改Plugin並重新啟動遊戲?"
#2029# "更改Plugin"
#2030# "模擬結束"
#2031# "模擬開始"
#2032# "不能讀取存檔"
#2033# "讀取進度:"
#2034# "儲存進度:"
#2035# "讀取隨時進度檔"
現在更改Plugin並重新啟動遊戲?"
#2029# "更改Plugin"
#2030# "模擬結束"
#2031# "模擬開始"
#2032# "不能讀取存檔"
#2033# "讀取進度:"
#2034# "儲存進度:"
#2035# "讀取隨時進度檔"
#2036# "Byteswapping ROM"
#2037# "請等候所選擇的ROM"
#2038# "讀取完成"
#2039# "正在讀取ROM"
#2040# "您不能開啟此ROM,可能是Plugin(視訊,音效,控制器,RSP)不支援"
#2041# "您確定以要刪除這個作弊碼?"
#2042# "刪除作弊碼"
#2043# "作弊碼名稱已經使用,請重新輸入"
#2044# "您的作弊碼數目以到達最大值,您將無法再添加作弊碼"
#2037# "請等候所選擇的ROM"
#2038# "讀取完成"
#2039# "正在讀取ROM"
#2040# "您不能開啟此ROM,可能是Plugin(視訊,音效,控制器,RSP)不支援"
#2041# "您確定以要刪除這個作弊碼?"
#2042# "刪除作弊碼"
#2043# "作弊碼名稱已經使用,請重新輸入"
#2044# "您的作弊碼數目以到達最大值,您將無法再添加作弊碼"

View File

@ -1,430 +1,430 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "繁體中文" // LANGUAGE ID
#1 # "繁體中文" // LANGUAGE ID
#2 # "nhlay" // Author
#3 # "1.6.0" // Version
#4 # "2005 年 10 月 22 日" // Date
#4 # "2005 年 10 月 22 日" // Date
//About DLL Dialog
#5 # "目前的語言檔案"
#6 # "作者"
#7 # "版本"
#8 # "日期"
#9 # "拜訪首頁"
#10 # "ROM 資料庫 (.RDB)"
#11 # "金手指密碼檔案 (.CHT)"
#12 # "擴充 ROM 資訊 (.RDX)"
#5 # "目前的語言檔案"
#6 # "作者"
#7 # "版本"
#8 # "日期"
#9 # "拜訪首頁"
#10 # "ROM 資料庫 (.RDB)"
#11 # "金手指密碼檔案 (.CHT)"
#12 # "擴充 ROM 資訊 (.RDX)"
//About INI title
#20 # "關於 INI 檔案"
#20 # "關於 INI 檔案"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "檔案(&F)"
#101# "開啟 ROM(&O)"
#102# "ROM 資訊(&I)...."
#103# "開始模擬"
#104# "結束模擬(&E)"
#105# "選擇 ROM 目錄..."
#106# "重新整理 ROM 清單"
#107# "最近使用的 ROM"
#108# "最近使用的 ROM 目錄"
#109# "結束(&X)"
#100# "檔案(&F)"
#101# "開啟 ROM(&O)"
#102# "ROM 資訊(&I)...."
#103# "開始模擬"
#104# "結束模擬(&E)"
#105# "選擇 ROM 目錄..."
#106# "重新整理 ROM 清單"
#107# "最近使用的 ROM"
#108# "最近使用的 ROM 目錄"
#109# "結束(&X)"
//System Menu
#120# "系統(&S)"
#121# "重置(&R)"
#122# "暫停(&P)"
#123# "螢幕抓圖"
#124# "限制 FPS"
#125# "儲存即時存檔(&S)"
#126# "另存 PJ64 存檔..."
#127# "載入即時存檔(&R)"
#128# "載入 PJ64 存檔..."
#129# "即時存檔插槽(&T)"
#130# "金手指..."
#131# "GS 按鈕"
#132# "繼續(&E)"
#120# "系統(&S)"
#121# "重置(&R)"
#122# "暫停(&P)"
#123# "螢幕抓圖"
#124# "限制 FPS"
#125# "儲存即時存檔(&S)"
#126# "另存 PJ64 存檔..."
#127# "載入即時存檔(&R)"
#128# "載入 PJ64 存檔..."
#129# "即時存檔插槽(&T)"
#130# "金手指..."
#131# "GS 按鈕"
#132# "繼續(&E)"
//Options Menu
#140# "選項(&O)"
#141# "全螢幕(&F)"
#142# "最上層顯示(&T)"
#143# "組態視訊外掛程式..."
#144# "組態音效外掛程式..."
#145# "組態控制器外掛程式..."
#146# "組態 RSP 外掛程式..."
#147# "顯示 CPU 使用率"
#148# "組態設定(&S)..."
#140# "選項(&O)"
#141# "全螢幕(&F)"
#142# "最上層顯示(&T)"
#143# "組態視訊外掛程式..."
#144# "組態音效外掛程式..."
#145# "組態控制器外掛程式..."
#146# "組態 RSP 外掛程式..."
#147# "顯示 CPU 使用率"
#148# "組態設定(&S)..."
//Debugger Menu
#160# "偵錯工具(&D)"
#160# "偵錯工具(&D)"
//Language Menu
#175# "語言選擇(&L)"
#175# "語言選擇(&L)"
//Help Menu
#180# "說明(&H)"
#181# "關於 INI 檔案(&I)"
#182# "關於 Project64(&A)"
#183# "支援論壇(&F)"
#184# "首頁(&H)"
#180# "說明(&H)"
#181# "關於 INI 檔案(&I)"
#182# "關於 Project64(&A)"
#183# "支援論壇(&F)"
#184# "首頁(&H)"
//Current Save Slot menu
#190# "預設"
#191# "插槽 1"
#192# "插槽 2"
#193# "插槽 3"
#194# "插槽 4"
#195# "插槽 5"
#196# "插槽 6"
#197# "插槽 7"
#198# "插槽 8"
#199# "插槽 9"
#200# "插槽 10"
#190# "預設"
#191# "插槽 1"
#192# "插槽 2"
#193# "插槽 3"
#194# "插槽 4"
#195# "插槽 5"
#196# "插槽 6"
#197# "插槽 7"
#198# "插槽 8"
#199# "插槽 9"
#200# "插槽 10"
//Pop up Menu
#210# "執行遊戲"
#211# "ROM 資訊"
#212# "編輯遊戲設定值"
#213# "編輯金手指"
#210# "執行遊戲"
#211# "ROM 資訊"
#212# "編輯遊戲設定值"
#213# "編輯金手指"
// Menu Descriptions
#250# "開啟一個 N64 ROM 映像"
#251# "顯示關於已載入映像的資訊"
#252# "開始模擬已載入的 ROM 映像"
#253# "停止模擬已載入的 ROM 映像"
#254# "選擇 ROM 目錄"
#255# "重新整理 ROM 瀏覽器目前的 ROM 清單"
#256# "離開這個模擬器"
#257# "重新啟動目前的 ROM 映像 (重新載入所有已變更的設定)"
#258# "暫停/繼續 模擬目前執行中的 ROM"
#259# "從目前的螢幕影像產生一個點陣圖檔"
#260# "限制 FPS 為 N64 的正確速度"
#261# "為目前的系統建立一個即時存檔"
#262# "選擇一個要建立即時存檔的位置"
#263# "載入一個即時存檔"
#264# "選擇一個要載入的即時存檔"
#265# "啟用/停用 Game shark 金手指"
#266# "在特定的金手指中使用 Game shark 按鈕"
#267# "將模擬器由視窗模式變更為全螢幕顯示"
#268# "設定視窗停留在所有其他視窗的最上層顯示"
#269# "變更視訊外掛程式的內部設定值"
#270# "變更音效外掛程式的內部設定值"
#271# "變更控制器外掛程式的內部設定值 (即設定按鍵)"
#272# "變更 RSP 外掛程式的內部設定值"
#273# "顯示模擬器被分隔後剩餘不同資源的 CPU 用法"
#274# "檢視/變更 這個模擬器的設定值"
#275# "檢視模擬器的使用者手冊"
#276# "檢視模擬器的常見問題解答"
#277# "關於支援檔案的作者"
#278# "關於模擬器和作者"
#279# "開啟這個先前開啟過的 ROM 映像"
#280# "選擇一個目錄作為您的 ROM 目錄"
#281# "變更這個模擬器使用的語言"
#282# "選擇這個即時存檔位置"
#283# "執行選擇的遊戲"
#284# "關於所選擇遊戲的資訊"
#285# "編輯所選擇遊戲的設定"
#286# "編輯所選擇遊戲的金手指"
#250# "開啟一個 N64 ROM 映像"
#251# "顯示關於已載入映像的資訊"
#252# "開始模擬已載入的 ROM 映像"
#253# "停止模擬已載入的 ROM 映像"
#254# "選擇 ROM 目錄"
#255# "重新整理 ROM 瀏覽器目前的 ROM 清單"
#256# "離開這個模擬器"
#257# "重新啟動目前的 ROM 映像 (重新載入所有已變更的設定)"
#258# "暫停/繼續 模擬目前執行中的 ROM"
#259# "從目前的螢幕影像產生一個點陣圖檔"
#260# "限制 FPS 為 N64 的正確速度"
#261# "為目前的系統建立一個即時存檔"
#262# "選擇一個要建立即時存檔的位置"
#263# "載入一個即時存檔"
#264# "選擇一個要載入的即時存檔"
#265# "啟用/停用 Game shark 金手指"
#266# "在特定的金手指中使用 Game shark 按鈕"
#267# "將模擬器由視窗模式變更為全螢幕顯示"
#268# "設定視窗停留在所有其他視窗的最上層顯示"
#269# "變更視訊外掛程式的內部設定值"
#270# "變更音效外掛程式的內部設定值"
#271# "變更控制器外掛程式的內部設定值 (即設定按鍵)"
#272# "變更 RSP 外掛程式的內部設定值"
#273# "顯示模擬器被分隔後剩餘不同資源的 CPU 用法"
#274# "檢視/變更 這個模擬器的設定值"
#275# "檢視模擬器的使用者手冊"
#276# "檢視模擬器的常見問題解答"
#277# "關於支援檔案的作者"
#278# "關於模擬器和作者"
#279# "開啟這個先前開啟過的 ROM 映像"
#280# "選擇一個目錄作為您的 ROM 目錄"
#281# "變更這個模擬器使用的語言"
#282# "選擇這個即時存檔位置"
#283# "執行選擇的遊戲"
#284# "關於所選擇遊戲的資訊"
#285# "編輯所選擇遊戲的設定"
#286# "編輯所選擇遊戲的金手指"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "檔案名稱"
#301# "內部名稱"
#302# "遊戲名稱"
#303# "狀態"
#304# "ROM 大小"
#305# "註解 (核心)"
#306# "註解 (預設外掛程式)"
#307# "註解 (使用者)"
#308# "卡帶 ID"
#309# "製造商"
#310# "國別"
#311# "開發商"
#300# "檔案名稱"
#301# "內部名稱"
#302# "遊戲名稱"
#303# "狀態"
#304# "ROM 大小"
#305# "註解 (核心)"
#306# "註解 (預設外掛程式)"
#307# "註解 (使用者)"
#308# "卡帶 ID"
#309# "製造商"
#310# "國別"
#311# "開發商"
#312# "CRC1"
#313# "CRC2"
#314# "CIC 晶片"
#315# "發售日期"
#316# "遊戲類型"
#317# "遊戲人數"
#318# "強制回饋"
#314# "CIC 晶片"
#315# "發售日期"
#316# "遊戲類型"
#317# "遊戲人數"
#318# "強制回饋"
//Select Rom
#320# "選擇一個您要瀏覽 ROM 的目錄"
#320# "選擇一個您要瀏覽 ROM 的目錄"
//Messages
#340# "錯誤的 ROM? 請使用 GoodN64 並檢查更新您的 RDB 檔"
#340# "錯誤的 ROM? 請使用 GoodN64 並檢查更新您的 RDB 檔"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "組態設定"
#400# "組態設定"
//Tabs
#401# "外掛程式"
#402# "目錄設定"
#403# "一般選項"
#404# "ROM 選項"
#405# "進階選項"
#406# "ROM 設定"
#407# "檔案關連"
#408# "ROM 註解"
#401# "外掛程式"
#402# "目錄設定"
#403# "一般選項"
#404# "ROM 選項"
#405# "進階選項"
#406# "ROM 設定"
#407# "檔案關連"
#408# "ROM 註解"
//Plugin Dialog
#420# "關於"
#421# " 真實信號處理器外掛程式: "
#422# " 視訊 (圖形) 外掛程式: "
#423# " 音效 (音訊) 外掛程式: "
#424# " 控制器 (手把) 外掛程式: "
#420# "關於"
#421# " 真實信號處理器外掛程式: "
#422# " 視訊 (圖形) 外掛程式: "
#423# " 音效 (音訊) 外掛程式: "
#424# " 控制器 (手把) 外掛程式: "
//Directory Dialog
#440# " 外掛程式目錄: "
#441# " ROM 目錄: "
#442# " N64 自動存檔: "
#443# " 即時存檔: "
#444# " 螢幕抓圖: "
#445# "從最後一次開啟 ROM 的目錄。"
#446# "選擇您存放外掛程式的目錄"
#447# "選擇您存放 ROM 的目錄"
#448# "選擇您存放 N64 自動存檔的目錄"
#449# "選擇您存放即時存檔的目錄"
#450# "選擇您存放螢幕抓圖的目錄"
#440# " 外掛程式目錄: "
#441# " ROM 目錄: "
#442# " N64 自動存檔: "
#443# " 即時存檔: "
#444# " 螢幕抓圖: "
#445# "從最後一次開啟 ROM 的目錄。"
#446# "選擇您存放外掛程式的目錄"
#447# "選擇您存放 ROM 的目錄"
#448# "選擇您存放 N64 自動存檔的目錄"
#449# "選擇您存放即時存檔的目錄"
#450# "選擇您存放螢幕抓圖的目錄"
//Options Dialog
#460# "模擬遊戲時當視窗非使用狀態則暫停"
#461# "在載入 ROM 後自動切換為全螢幕顯示"
#462# "隱藏部份進階設定選項"
#463# "記憶每個遊戲選取的金手指"
#460# "模擬遊戲時當視窗非使用狀態則暫停"
#461# "在載入 ROM 後自動切換為全螢幕顯示"
#462# "隱藏部份進階設定選項"
#463# "記憶每個遊戲選取的金手指"
//Rom Browser Tab
#480# "最近使用的 ROM 記憶數目 (最大10):"
#481# "個 ROM"
#482# "最近使用的 ROM 目錄記憶數目 (最大10):"
#483# "個目錄"
#484# "使用 ROM 瀏覽器"
#485# "使用目錄遞迴"
#486# "可用的欄位:"
#487# "目前已顯示的欄位:"
#488# "新增 ->"
#489# "<- 移除"
#490# "上移"
#491# "下移"
#480# "最近使用的 ROM 記憶數目 (最大10):"
#481# "個 ROM"
#482# "最近使用的 ROM 目錄記憶數目 (最大10):"
#483# "個目錄"
#484# "使用 ROM 瀏覽器"
#485# "使用目錄遞迴"
#486# "可用的欄位:"
#487# "目前已顯示的欄位:"
#488# "新增 ->"
#489# "<- 移除"
#490# "上移"
#491# "下移"
//Advanced Options
#500# "這些設定只使用在 ROM 沒有正確或具體設定時
如果 ROM 已經設定,則下列設定將沒有作用。"
#501# "預設核心"
#502# "CPU 核心樣式:"
#503# "自我修改代碼方式:"
#504# "預設記憶大小:"
#505# "進階區塊連結:"
#506# "當 ROM 被載入後則立即開始模擬"
#507# "總是從 RDB 中覆寫預設設定值"
#508# "自動壓縮即時存檔"
#500# "這些設定只使用在 ROM 沒有正確或具體設定時
如果 ROM 已經設定,則下列設定將沒有作用。"
#501# "預設核心"
#502# "CPU 核心樣式:"
#503# "自我修改代碼方式:"
#504# "預設記憶大小:"
#505# "進階區塊連結:"
#506# "當 ROM 被載入後則立即開始模擬"
#507# "總是從 RDB 中覆寫預設設定值"
#508# "自動壓縮即時存檔"
//Rom Options
#520# "CPU 核心樣式:"
#521# "自我修改代碼方式:"
#522# "記憶大小:"
#523# "進階區塊連結:"
#524# "預設存檔類型:"
#525# "計算因數:"
#526# "較大的編譯緩衝區"
#527# "使用 TLB"
#528# "暫存器快取"
#529# "延遲 SI 插斷"
#520# "CPU 核心樣式:"
#521# "自我修改代碼方式:"
#522# "記憶大小:"
#523# "進階區塊連結:"
#524# "預設存檔類型:"
#525# "計算因數:"
#526# "較大的編譯緩衝區"
#527# "使用 TLB"
#528# "暫存器快取"
#529# "延遲 SI 插斷"
#530# "SP Hack"
#531# "預設"
#532# "RSP 音訊信號"
#531# "預設"
#532# "RSP 音訊信號"
//Core Styles
#540# "解譯器"
#541# "重譯器"
#542# "同步核心"
#540# "解譯器"
#541# "重譯器"
#542# "同步核心"
//Self Mod Methods
#560# "無"
#561# "快取"
#562# "保護記憶體"
#563# "檢查記憶體及快取"
#564# "變更記憶體及快取"
#565# "進階檢查記憶體"
#560# "無"
#561# "快取"
#562# "保護記憶體"
#563# "檢查記憶體及快取"
#564# "變更記憶體及快取"
#565# "進階檢查記憶體"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "開"
#601# "關"
#600# "開"
#601# "關"
//Save Type
#620# "使用最初使用的存檔類型"
#620# "使用最初使用的存檔類型"
#621# "4 KBIT EEPROM"
#622# "16 KBIT EEPROM"
#623# "32 KBytes SRAM"
#624# "FlashRAM"
//Shell Integration Tab
#640# "您要關聯的檔案副檔名:"
#640# "您要關聯的檔案副檔名:"
//Rom Notes
#660# "ROM 狀態:"
#661# "核心註解:"
#662# "外掛程式註解:"
#660# "ROM 狀態:"
#661# "核心註解:"
#662# "外掛程式註解:"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "ROM 資訊"
#800# "ROM 資訊"
//Rom Info Text
#801# "ROM 名稱:"
#802# "檔案名稱:"
#803# "位置:"
#804# "ROM 大小:"
#805# "卡帶 ID:"
#806# "製造商:"
#807# "國別:"
#801# "ROM 名稱:"
#802# "檔案名稱:"
#803# "位置:"
#804# "ROM 大小:"
#805# "卡帶 ID:"
#806# "製造商:"
#807# "國別:"
#808# "CRC1:"
#809# "CRC2:"
#810# "CIC 晶片:"
#810# "CIC 晶片:"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "金手指"
#1001# "金手指:"
#1002# " 註解: "
#1003# "全選"
#1004# "取消全選"
#1000# "金手指"
#1001# "金手指:"
#1002# " 註解: "
#1003# "全選"
#1004# "取消全選"
//Add Cheat
#1005# "加入金手指"
#1006# "名稱:"
#1007# "代碼:"
#1008# "插入"
#1009# "清除"
#1010# " 金手指註解: "
#1011# "加入到資料庫"
#1022# "加入金手指"
#1023# "新增金手指"
#1024# "<位址> <值>"
#1025# "選項:"
#1026# "<值> <標籤>"
#1005# "加入金手指"
#1006# "名稱:"
#1007# "代碼:"
#1008# "插入"
#1009# "清除"
#1010# " 金手指註解: "
#1011# "加入到資料庫"
#1022# "加入金手指"
#1023# "新增金手指"
#1024# "<位址> <值>"
#1025# "選項:"
#1026# "<值> <標籤>"
//Code extension
#1012# "擴充金手指"
#1013# "請選擇一個要使用的值:"
#1014# "確定"
#1015# "取消"
#1012# "擴充金手指"
#1013# "請選擇一個要使用的值:"
#1014# "確定"
#1015# "取消"
//Digital Value
#1016# "數量"
#1017# "請選擇一個值:"
#1018# "數值(&V)"
#1019# "從"
#1020# "到"
#1021# "註解(&N):"
#1016# "數量"
#1017# "請選擇一個值:"
#1018# "數值(&V)"
#1019# "從"
#1020# "到"
#1021# "註解(&N):"
//Edit Cheat
#1027# "編輯金手指"
#1028# "更新金手指"
#1027# "編輯金手指"
#1028# "更新金手指"
//Cheat Popup Menu
#1040# "加入新的金手指..."
#1041# "編輯"
#1042# "刪除"
#1040# "加入新的金手指..."
#1041# "編輯"
#1042# "刪除"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "*** CPU 已暫停 ***"
#2001# "CPU 已繼續"
#2002# "進入一個無法離開的永久迴圈。
模擬器將立即停止執行。
#2000# "*** CPU 已暫停 ***"
#2001# "CPU 已繼續"
#2002# "進入一個無法離開的永久迴圈。
模擬器將立即停止執行。
請確認 ROM 及 ROM 的設定。"
#2003# "記憶體分派錯誤"
#2004# "預設或選取的視訊外掛程式遺漏或無效。
請確認 ROM 及 ROM 的設定。"
#2003# "記憶體分派錯誤"
#2004# "預設或選取的視訊外掛程式遺漏或無效。
您需要檢查設定及選擇一個視訊 (圖形) 外掛程式。
請檢查您的外掛程式資料夾,最少要有一個相容的外掛程式檔案。"
#2005# "預設或選取的音效外掛程式遺漏或無效。
您需要檢查設定及選擇一個視訊 (圖形) 外掛程式。
請檢查您的外掛程式資料夾,最少要有一個相容的外掛程式檔案。"
#2005# "預設或選取的音效外掛程式遺漏或無效。
您需要檢查設定及選擇一個音效 (音訊) 外掛程式。
請檢查您的外掛程式資料夾,最少要有一個相容的外掛程式檔案。"
#2006# "預設或選取的 RSP 外掛程式遺漏或無效。
您需要檢查設定及選擇一個音效 (音訊) 外掛程式。
請檢查您的外掛程式資料夾,最少要有一個相容的外掛程式檔案。"
#2006# "預設或選取的 RSP 外掛程式遺漏或無效。
您需要檢查設定及選擇一個 RSP 外掛程式。
請檢查您的外掛程式資料夾,最少要有一個相容的外掛程式檔案。"
#2007# "預設或選取的控制器外掛程式遺漏或無效。
您需要檢查設定及選擇一個 RSP 外掛程式。
請檢查您的外掛程式資料夾,最少要有一個相容的外掛程式檔案。"
#2007# "預設或選取的控制器外掛程式遺漏或無效。
您需要檢查設定及選擇一個控制器 (手把) 外掛程式。
請檢查您的外掛程式資料夾,最少要有一個相容的外掛程式檔案。"
#2008# "無法載入外掛程式:"
#2009# "載入設定錯誤
請驗證 ROM 及 ROM 的設定。"
#2010# "開啟即時存檔失敗"
#2011# "開啟 EEPROM 失敗"
#2012# "開啟 FlashRAM 失敗"
#2013# "開啟記憶卡失敗"
#2014# "嘗試開啟 ZIP 壓縮檔失敗。
遺漏或損壞的 ZIP 壓縮檔 - 請檢查路徑和文件。
您需要檢查設定及選擇一個控制器 (手把) 外掛程式。
請檢查您的外掛程式資料夾,最少要有一個相容的外掛程式檔案。"
#2008# "無法載入外掛程式:"
#2009# "載入設定錯誤
請驗證 ROM 及 ROM 的設定。"
#2010# "開啟即時存檔失敗"
#2011# "開啟 EEPROM 失敗"
#2012# "開啟 FlashRAM 失敗"
#2013# "開啟記憶卡失敗"
#2014# "嘗試開啟 ZIP 壓縮檔失敗。
遺漏或損壞的 ZIP 壓縮檔 - 請檢查路徑和文件。
您可能需要重新啟動應用程式。"
#2015# "嘗試開啟檔案失敗。"
#2016# "在嘗試開啟 ZIP 壓縮檔時發生錯誤。"
#2017# "被載入的檔案看來不是一個正確的 Nintendo64 ROM。
您可能需要重新啟動應用程式。"
#2015# "嘗試開啟檔案失敗。"
#2016# "在嘗試開啟 ZIP 壓縮檔時發生錯誤。"
#2017# "被載入的檔案看來不是一個正確的 Nintendo64 ROM。
請使用 GoodN64 來驗證您的 ROM。"
#2018# "未知的國別"
#2019# "未知的 CIC 晶片"
#2020# "未知的檔案格式"
#2021# "未知的記憶動作
請使用 GoodN64 來驗證您的 ROM。"
#2018# "未知的國別"
#2019# "未知的 CIC 晶片"
#2020# "未知的檔案格式"
#2021# "未知的記憶動作
模擬器現在已停止"
#2022# "未經處理的 R4300i 運算代碼在"
#2023# "沒有執行所需的對應空間。
模擬器現在已停止"
#2022# "未經處理的 R4300i 運算代碼在"
#2023# "沒有執行所需的對應空間。
請驗證 ROM 及 ROM 設定。"
#2024# "這個即時存檔看來不是目前正在執行的 ROM 的。
請驗證 ROM 及 ROM 設定。"
#2024# "這個即時存檔看來不是目前正在執行的 ROM 的。
即時存檔必須在 100% 相同的 ROM 上儲存和載入,
特別是 ROM 的版本及區域必須一定要相同。
載入這個即時存檔可能使模擬器或遊戲當機。
即時存檔必須在 100% 相同的 ROM 上儲存和載入,
特別是 ROM 的版本及區域必須一定要相同。
載入這個即時存檔可能使模擬器或遊戲當機。
您是否確定要繼續載入?"
#2025# "錯誤"
#2026# "沒有在 LUT 中發現版權序列。遊戲將無法長期使用。"
#2027# "複製保護失敗"
#2028# "變更外掛程式 Project64 必須重新啟動已執行的 ROM。
如果您不想丟失現在的遊戲進度,那麼請選擇否然後儲存一個即時存檔。
您是否確定要繼續載入?"
#2025# "錯誤"
#2026# "沒有在 LUT 中發現版權序列。遊戲將無法長期使用。"
#2027# "複製保護失敗"
#2028# "變更外掛程式 Project64 必須重新啟動已執行的 ROM。
如果您不想丟失現在的遊戲進度,那麼請選擇否然後儲存一個即時存檔。
變更外掛程式並立即重新啟動遊戲?"
#2029# "變更外掛程式"
#2030# "結束模擬"
#2031# "開始模擬"
#2032# "無法載入即時存檔"
#2033# "已載入即時存檔"
#2034# "儲存即時存檔到"
#2035# "即時存檔插槽"
#2036# "位元組交換的映像"
#2037# "選擇 N64 映像"
#2038# "已載入"
#2039# "載入映像中"
#2040# "無法開啟 ROM 因為外掛程式尚未初始化成功"
#2041# "您確定要刪除這個嗎?"
#2042# "刪除金手指"
#2043# "金手指名稱已經被使用"
#2044# "您的金手指數量已達到這個 ROM 的最大值"
變更外掛程式並立即重新啟動遊戲?"
#2029# "變更外掛程式"
#2030# "結束模擬"
#2031# "開始模擬"
#2032# "無法載入即時存檔"
#2033# "已載入即時存檔"
#2034# "儲存即時存檔到"
#2035# "即時存檔插槽"
#2036# "位元組交換的映像"
#2037# "選擇 N64 映像"
#2038# "已載入"
#2039# "載入映像中"
#2040# "無法開啟 ROM 因為外掛程式尚未初始化成功"
#2041# "您確定要刪除這個嗎?"
#2042# "刪除金手指"
#2043# "金手指名稱已經被使用"
#2044# "您的金手指數量已達到這個 ROM 的最大值"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* What's New *
*********************************************************************************/
//Alt+KEYS shortcut added (credit to mygod for pointing this out! Thanks)
@ -8,243 +8,243 @@
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "繁體中文"
#1 # "繁體中文"
#2 # "Maximus"
#3 # "1.1"
#4 # "10th September 2002"
//About DLL Dialog
#5 # "目前語文"
#6 # "作者"
#7 # "版本"
#8 # "日期"
#9 # "瀏覽網頁"
#10 # "遊戲檔資料庫(.RDB"
#11 # "作弊碼資料庫(.CHT"
#12 # "遊戲檔訊息資料庫(.RDX"
#5 # "目前語文"
#6 # "作者"
#7 # "版本"
#8 # "日期"
#9 # "瀏覽網頁"
#10 # "遊戲檔資料庫(.RDB"
#11 # "作弊碼資料庫(.CHT"
#12 # "遊戲檔訊息資料庫(.RDX"
//About INI title
#20 # "關於INI"
#20 # "關於INI"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "文件 &F"
#101# "打開 &O"
#102# "訊息... &I"
#103# "開始模擬"
#104# "結束模擬"
#105# "選擇文件夾..."
#106# "刷新"
#107# "最近使用遊戲檔"
#108# "最近使用遊戲檔文件夾"
#109# "離開 &X"
#100# "文件 &F"
#101# "打開 &O"
#102# "訊息... &I"
#103# "開始模擬"
#104# "結束模擬"
#105# "選擇文件夾..."
#106# "刷新"
#107# "最近使用遊戲檔"
#108# "最近使用遊戲檔文件夾"
#109# "離開 &X"
//System Menu
#120# "系統 &S"
#121# "重新啟動 &R"
#122# "暫停 &P"
#123# "螢幕抓取"
#124# "限制FPS"
#125# "儲存 &S"
#126# "更名另存..."
#127# "快速讀取 &R"
#128# "讀取檔案..."
#129# "快速存檔 &T"
#130# "作弊碼..."
#131# "作弊碼按鈕"
#132# "繼續"
#120# "系統 &S"
#121# "重新啟動 &R"
#122# "暫停 &P"
#123# "螢幕抓取"
#124# "限制FPS"
#125# "儲存 &S"
#126# "更名另存..."
#127# "快速讀取 &R"
#128# "讀取檔案..."
#129# "快速存檔 &T"
#130# "作弊碼..."
#131# "作弊碼按鈕"
#132# "繼續"
//Options Menu
#140# "設置 &O"
#141# "全螢幕 &F"
#142# "常置桌面 &A &T"
#143# "影像設定..."
#144# "音效設定..."
#145# "輸入設定..."
#146# "RSP設定..."
#147# "顯示CPU使用率%"
#148# "設定... &S"
#140# "設置 &O"
#141# "全螢幕 &F"
#142# "常置桌面 &A &T"
#143# "影像設定..."
#144# "音效設定..."
#145# "輸入設定..."
#146# "RSP設定..."
#147# "顯示CPU使用率%"
#148# "設定... &S"
//Debugger Menu
#160# "除錯 &D"
#160# "除錯 &D"
//Language Menu
#175# "語文 &L"
#175# "語文 &L"
//Help Menu
#180# "幫助 &H"
#181# "關於INI &I"
#182# "關於Project 64 &A"
#180# "幫助 &H"
#181# "關於INI &I"
#182# "關於Project 64 &A"
//Current Save Slot menu
#190# "初始設定"
#191# "快存捷徑一"
#192# "快存捷徑二"
#193# "快存捷徑三"
#194# "快存捷徑四"
#195# "快存捷徑五"
#196# "快存捷徑六"
#197# "快存捷徑七"
#198# "快存捷徑八"
#199# "快存捷徑九"
#200# "快存捷徑十"
#190# "初始設定"
#191# "快存捷徑一"
#192# "快存捷徑二"
#193# "快存捷徑三"
#194# "快存捷徑四"
#195# "快存捷徑五"
#196# "快存捷徑六"
#197# "快存捷徑七"
#198# "快存捷徑八"
#199# "快存捷徑九"
#200# "快存捷徑十"
//Pop up Menu
#210# "執行遊戲"
#211# "訊息"
#212# "遊戲設定"
#213# "作弊碼編輯"
#210# "執行遊戲"
#211# "訊息"
#212# "遊戲設定"
#213# "作弊碼編輯"
// Menu Descriptions
#250# "打開N64遊戲檔"
#251# "顯示N64遊戲檔訊息"
#252# "開始執行遊戲模擬"
#253# "停止執行遊戲模擬"
#254# "選擇遊戲檔文件夾"
#255# "刷新遊戲檔列示"
#256# "離開模擬器"
#257# "重新啟動遊戲檔(變更設定)"
#258# "暫定/繼續遊戲"
#259# "抓取遊戲畫面"
#260# "限制FPS以變更模擬器執行速度"
#261# "進行快速存檔"
#262# "進行快速存檔(快存捷徑選擇)"
#263# "讀取快存檔"
#264# "讀取指定快存檔"
#265# "啟動/關閉GAME SHARK作弊碼"
#266# "特殊作弊碼按鈕"
#267# "全螢幕切換"
#268# "遊戲視窗常置於桌面"
#269# "變更影像設定"
#270# "變更音效設定"
#271# "變更輸入設定"
#272# "變更RSP設定"
#273# "顯示目前處理器資源"
#274# "觀看/變更目前系統設定"
#275# "觀看使用手冊"
#276# "觀看常見問題集"
#277# "關於INI"
#278# "關於程式"
#279# "打開此遊戲檔"
#280# "選擇此文件夾為指定文件夾"
#281# "變更語文設定"
#282# "選擇此快存捷徑"
#283# "執行此遊戲檔"
#284# "此遊戲檔訊息"
#285# "指定遊戲檔設定"
#286# "指定遊戲檔作弊碼設定"
#250# "打開N64遊戲檔"
#251# "顯示N64遊戲檔訊息"
#252# "開始執行遊戲模擬"
#253# "停止執行遊戲模擬"
#254# "選擇遊戲檔文件夾"
#255# "刷新遊戲檔列示"
#256# "離開模擬器"
#257# "重新啟動遊戲檔(變更設定)"
#258# "暫定/繼續遊戲"
#259# "抓取遊戲畫面"
#260# "限制FPS以變更模擬器執行速度"
#261# "進行快速存檔"
#262# "進行快速存檔(快存捷徑選擇)"
#263# "讀取快存檔"
#264# "讀取指定快存檔"
#265# "啟動/關閉GAME SHARK作弊碼"
#266# "特殊作弊碼按鈕"
#267# "全螢幕切換"
#268# "遊戲視窗常置於桌面"
#269# "變更影像設定"
#270# "變更音效設定"
#271# "變更輸入設定"
#272# "變更RSP設定"
#273# "顯示目前處理器資源"
#274# "觀看/變更目前系統設定"
#275# "觀看使用手冊"
#276# "觀看常見問題集"
#277# "關於INI"
#278# "關於程式"
#279# "打開此遊戲檔"
#280# "選擇此文件夾為指定文件夾"
#281# "變更語文設定"
#282# "選擇此快存捷徑"
#283# "執行此遊戲檔"
#284# "此遊戲檔訊息"
#285# "指定遊戲檔設定"
#286# "指定遊戲檔作弊碼設定"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "檔案名"
#301# "遊戲名稱"
#302# "正常遊戲檔"
#303# "狀況"
#304# "遊戲檔容量"
#305# "核心程式備註"
#306# "外挂程式備註"
#307# "使用者備註"
#308# "遊戲標籤"
#309# "發行公司"
#310# "國家"
#311# "設計公司"
#300# "檔案名"
#301# "遊戲名稱"
#302# "正常遊戲檔"
#303# "狀況"
#304# "遊戲檔容量"
#305# "核心程式備註"
#306# "外挂程式備註"
#307# "使用者備註"
#308# "遊戲標籤"
#309# "發行公司"
#310# "國家"
#311# "設計公司"
#312# "CRC1"
#313# "CRC2"
#314# "CIC CHIP"
#315# "發行日期"
#316# "類型"
#317# "玩家人數"
#315# "發行日期"
#316# "類型"
#317# "玩家人數"
//Select Rom
#320# "選擇此遊戲檔文件夾"
#320# "選擇此遊戲檔文件夾"
//Messages
#340# "此為問題遊戲檔請使用GOODN64確定或查閱最新版INI"
#340# "此為問題遊戲檔請使用GOODN64確定或查閱最新版INI"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "設定"
#400# "設定"
//Tabs
#401# "外挂程式"
#402# "文件夾"
#403# "選項"
#404# "遊戲檔選擇"
#405# "進階設定"
#406# "遊戲檔設定"
#407# "副檔名連結"
#408# "遊戲檔備註"
#401# "外挂程式"
#402# "文件夾"
#403# "選項"
#404# "遊戲檔選擇"
#405# "進階設定"
#406# "遊戲檔設定"
#407# "副檔名連結"
#408# "遊戲檔備註"
//Plugin Dialog
#420# "關於"
#421# "同位訊號處理器RSP外挂程式"
#422# "影像外挂程式:"
#423# "音效外挂程式:"
#424# "輸入設備外挂程式:"
#420# "關於"
#421# "同位訊號處理器RSP外挂程式"
#422# "影像外挂程式:"
#423# "音效外挂程式:"
#424# "輸入設備外挂程式:"
//Directory Dialog
#440# "外挂程式文件夾:"
#441# "遊戲檔文件夾:"
#442# "N64自動存檔"
#443# "快存:"
#444# "畫面抓取:"
#445# "前次遊戲檔文件夾"
#446# "選擇外挂程式文件夾"
#447# "選擇遊戲檔文件夾"
#448# "選擇自存檔文件夾"
#449# "選擇快存檔文件夾"
#450# "選擇抓取畫面存檔路徑"
#440# "外挂程式文件夾:"
#441# "遊戲檔文件夾:"
#442# "N64自動存檔"
#443# "快存:"
#444# "畫面抓取:"
#445# "前次遊戲檔文件夾"
#446# "選擇外挂程式文件夾"
#447# "選擇遊戲檔文件夾"
#448# "選擇自存檔文件夾"
#449# "選擇快存檔文件夾"
#450# "選擇抓取畫面存檔路徑"
//Options Dialog
#460# "當跳離模擬器視窗時暫停遊戲"
#461# "直接切換為全螢幕"
#462# "隱藏進階設定"
#463# "自動記憶所選擇作弊碼"
#460# "當跳離模擬器視窗時暫停遊戲"
#461# "直接切換為全螢幕"
#462# "隱藏進階設定"
#463# "自動記憶所選擇作弊碼"
//Rom Browser Tab
#480# "最大遊戲檔數記憶(最多十個):"
#481# "遊戲檔"
#482# "最大遊戲檔路徑數記憶(最多十個):"
#483# "路徑"
#484# "使用遊戲檔瀏覽器"
#485# "使用完整路徑名稱"
#486# "可用選項:"
#487# "以此次序顯示:"
#488# "加入->"
#489# "<-刪除"
#490# "移上"
#491# "移下"
#480# "最大遊戲檔數記憶(最多十個):"
#481# "遊戲檔"
#482# "最大遊戲檔路徑數記憶(最多十個):"
#483# "路徑"
#484# "使用遊戲檔瀏覽器"
#485# "使用完整路徑名稱"
#486# "可用選項:"
#487# "以此次序顯示:"
#488# "加入->"
#489# "<-刪除"
#490# "移上"
#491# "移下"
//Advanced Options
#500# "除非重新啟動或更換遊戲檔,否則多數效果將無法更新/顯示"
#501# "核心程式初始設定"
#502# "核心處理器模式:"
#503# "記憶體處理模式:"
#504# "記憶體容量(初始設定):"
#505# "ADVANCED BLOCK LINKING"
#506# "打開遊戲檔時自動開始進行模擬"
#507# "自動覆蓋INI初始設定"
#508# "自動壓縮快存檔"
#500# "除非重新啟動或更換遊戲檔,否則多數效果將無法更新/顯示"
#501# "核心程式初始設定"
#502# "核心處理器模式:"
#503# "記憶體處理模式:"
#504# "記憶體容量(初始設定):"
#505# "ADVANCED BLOCK LINKING"
#506# "打開遊戲檔時自動開始進行模擬"
#507# "自動覆蓋INI初始設定"
#508# "自動壓縮快存檔"
//Rom Options
#520# "核心處理器模式:"
#521# "記憶體處理模式:"
#522# "記憶體容量:"
#523# "ADVANCED BLOCK LINKING"
#524# "儲存模式:"
#525# "COUNTER FACTOR"
#520# "核心處理器模式:"
#521# "記憶體處理模式:"
#522# "記憶體容量:"
#523# "ADVANCED BLOCK LINKING"
#524# "儲存模式:"
#525# "COUNTER FACTOR"
#526# "LARGE COMPILE BUFFER"
#527# "使用TLB"
#527# "使用TLB"
#528# "REGISTER CACHING"
#529# "暫緩SI INTERRUPT"
#529# "暫緩SI INTERRUPT"
#530# "SP HACK"
#531# "初始設定"
#531# "初始設定"
//Core Styles
#540# "INTERPRETER"
@ -264,163 +264,163 @@
#581# "8 MB"
//Advanced Block Linking
#600# "啟動"
#601# "關閉"
#600# "啟動"
#601# "關閉"
//Save Type
#620# "使用優先類型"
#620# "使用優先類型"
#621# "4KBIT EEPROM"
#622# "16KBIT EEPROM"
#623# "32KBYTES SRAM"
#624# "FLASHRAM"
//Shell Integration Tab
#640# "連結副檔名:"
#640# "連結副檔名:"
//Rom Notes
#660# "遊戲檔狀況:"
#661# "核心程式備注:"
#662# "外挂程式備注:"
#660# "遊戲檔狀況:"
#661# "核心程式備注:"
#662# "外挂程式備注:"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "遊戲檔資訊"
#800# "遊戲檔資訊"
//Rom Info Text
#801# "遊戲名稱:"
#802# "檔案名稱:"
#803# "位置:"
#804# "容量:"
#805# "遊戲標籤:"
#806# "設計公司:"
#807# "國家:"
#808# "CRC1"
#809# "CRC2"
#810# "CIC CHIP"
#801# "遊戲名稱:"
#802# "檔案名稱:"
#803# "位置:"
#804# "容量:"
#805# "遊戲標籤:"
#806# "設計公司:"
#807# "國家:"
#808# "CRC1"
#809# "CRC2"
#810# "CIC CHIP"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "作弊碼"
#1001# "作弊碼:"
#1002# "備注:"
#1003# "全部選擇"
#1004# "全部不選擇"
#1000# "作弊碼"
#1001# "作弊碼:"
#1002# "備注:"
#1003# "全部選擇"
#1004# "全部不選擇"
//Add Cheat
#1005# "加入作弊碼"
#1006# "名稱:"
#1007# "作弊碼:"
#1008# "增加"
#1009# "清除"
#1010# "作弊碼備注:"
#1011# "加入資料庫"
#1022# "加入作弊碼"
#1023# "新增作弊碼"
#1024# "〈位置〉〈數值〉"
#1025# "選項:"
#1026# "〈位置〉〈數值〉"
#1005# "加入作弊碼"
#1006# "名稱:"
#1007# "作弊碼:"
#1008# "增加"
#1009# "清除"
#1010# "作弊碼備注:"
#1011# "加入資料庫"
#1022# "加入作弊碼"
#1023# "新增作弊碼"
#1024# "〈位置〉〈數值〉"
#1025# "選項:"
#1026# "〈位置〉〈數值〉"
//Code extension
#1012# "進階碼"
#1013# "請選擇使用數值:"
#1014# "確定"
#1015# "取消"
#1012# "進階碼"
#1013# "請選擇使用數值:"
#1014# "確定"
#1015# "取消"
//Digital Value
#1016# "數據"
#1017# "請輸入數值:"
#1018# "數值"
#1019# "由"
#1020# "至"
#1021# "備注:"
#1016# "數據"
#1017# "請輸入數值:"
#1018# "數值"
#1019# "由"
#1020# "至"
#1021# "備注:"
//Edit Cheat
#1027# "作弊碼編輯"
#1028# "作弊碼更新"
#1027# "作弊碼編輯"
#1028# "作弊碼更新"
//Cheat Popup Menu
#1040# "新增作弊碼"
#1041# "編輯"
#1042# "刪除"
#1040# "新增作弊碼"
#1041# "編輯"
#1042# "刪除"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "*** 暫停 ***"
#2001# "繼續"
#2002# "程式出現循環錯誤,模擬將停止。
#2000# "*** 暫停 ***"
#2001# "繼續"
#2002# "程式出現循環錯誤,模擬將停止。
請重新設定遊戲"
#2003# "搜索記憶位置失敗"
#2004# "影像外挂程式錯誤。
請重新設定遊戲"
#2003# "搜索記憶位置失敗"
#2004# "影像外挂程式錯誤。
請確認是否有系統所支援外挂程式存在"
#2005# "音效外挂程式錯誤。
請確認是否有系統所支援外挂程式存在"
#2005# "音效外挂程式錯誤。
請確認是否有系統所支援外挂程式存在"
#2006# "RSP外挂程式錯誤。
請確認是否有系統所支援外挂程式存在"
#2006# "RSP外挂程式錯誤。
請確認PROJECT64是否完整安裝"
#2007# "輸入外挂程式錯誤。
請確認PROJECT64是否完整安裝"
#2007# "輸入外挂程式錯誤。
請確認是否有系統所支援外挂程式存在"
#2008# "無法讀取外挂程式:"
#2009# "無法讀取。
請確認是否有系統所支援外挂程式存在"
#2008# "無法讀取外挂程式:"
#2009# "無法讀取。
請確認遊戲檔設定"
#2010# "無法讀取存檔"
#2011# "無法讀取EEPROM"
#2012# "無法讀取FLASHRAM"
#2013# "無法讀取MEMPAK"
#2014# "無法讀取壓縮檔。
請檢查壓縮檔狀況。
請確認遊戲檔設定"
#2010# "無法讀取存檔"
#2011# "無法讀取EEPROM"
#2012# "無法讀取FLASHRAM"
#2013# "無法讀取MEMPAK"
#2014# "無法讀取壓縮檔。
請檢查壓縮檔狀況。
模擬器或許需要重新啟動"
#2015# "無法打開文件"
#2016# "打開壓縮檔出錯"
#2017# "此檔案為錯誤遊戲檔。
模擬器或許需要重新啟動"
#2015# "無法打開文件"
#2016# "打開壓縮檔出錯"
#2017# "此檔案為錯誤遊戲檔。
請使用GOODN64確認"
#2018# "資料不明(國家)"
#2019# "資料不明CIC CHIP"
#2020# "資料不明(檔案格式)"
#2021# "資料不明(記憶體執行錯誤)
請使用GOODN64確認"
#2018# "資料不明(國家)"
#2019# "資料不明CIC CHIP"
#2020# "資料不明(檔案格式)"
#2021# "資料不明(記憶體執行錯誤)
模擬停止"
#2022# "無法執行R4300i OPCODE"
#2023# "程式執行錯誤。
模擬停止"
#2022# "無法執行R4300i OPCODE"
#2023# "程式執行錯誤。
請確認遊戲檔設定"
#2024# "此快存檔無法執行於此遊戲檔。
請確認遊戲檔設定"
#2024# "此快存檔無法執行於此遊戲檔。
快存檔必需使用於原本遊戲檔,區碼及版本也必需相同。
強迫讀取將造成程式無法正常執行。
快存檔必需使用於原本遊戲檔,區碼及版本也必需相同。
強迫讀取將造成程式無法正常執行。
確定讀取?"
#2025# "錯誤"
#2026# "版權資訊不明。此遊戲檔將無法正常執行。"
#2027# "拷貝防護失敗"
#2028# "更換外挂程式後模擬器將重新啟動。
如果您不想失去目前遊戲進度,請選擇“否”並進行快存。
確定讀取?"
#2025# "錯誤"
#2026# "版權資訊不明。此遊戲檔將無法正常執行。"
#2027# "拷貝防護失敗"
#2028# "更換外挂程式後模擬器將重新啟動。
如果您不想失去目前遊戲進度,請選擇“否”並進行快存。
確定更換外挂程式?"
#2029# "更換外挂程式"
#2030# "模擬結束"
#2031# "模擬開始"
#2032# "無法讀取快存捷徑"
#2033# "讀取快存捷徑"
#2034# "將目前進度儲存於"
#2035# "快存結束"
#2036# "遊戲檔位元更換BYTE SWAPPING IMAGE"
#2037# "選擇N64遊戲檔"
#2038# "讀取"
#2039# "讀取遊戲檔"
#2040# "外挂程式尚未啟動,遊戲檔無法執行"
#2041# "確定刪除?"
#2042# "刪除作弊碼"
#2043# "此作弊碼名稱經已使用"
#2044# "此遊戲檔已無法新增作弊碼"
確定更換外挂程式?"
#2029# "更換外挂程式"
#2030# "模擬結束"
#2031# "模擬開始"
#2032# "無法讀取快存捷徑"
#2033# "讀取快存捷徑"
#2034# "將目前進度儲存於"
#2035# "快存結束"
#2036# "遊戲檔位元更換BYTE SWAPPING IMAGE"
#2037# "選擇N64遊戲檔"
#2038# "讀取"
#2039# "讀取遊戲檔"
#2040# "外挂程式尚未啟動,遊戲檔無法執行"
#2041# "確定刪除?"
#2042# "刪除作弊碼"
#2043# "此作弊碼名稱經已使用"
#2044# "此遊戲檔已無法新增作弊碼"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* What's New *
*********************************************************************************/
//Alt+KEYS shortcut added (credit to mygod for pointing this out! Thanks)
@ -8,243 +8,243 @@
* Meta Information *
*********************************************************************************/
//About DLL
#1# "简体中文"
#1# "简体中文"
#2# "Maximus"
#3# "1.1"
#4# "10th September 2002"
//About DLL Dialog
#5# "目前语文"
#6# "作者"
#7# "版本"
#8# "日期"
#9# "浏览网页"
#10# "游戏档资料库(.RDB"
#11# "作弊码资料库(.CHT"
#12# "游戏档讯息资料库(.RDX"
#5# "目前语文"
#6# "作者"
#7# "版本"
#8# "日期"
#9# "浏览网页"
#10# "游戏档资料库(.RDB"
#11# "作弊码资料库(.CHT"
#12# "游戏档讯息资料库(.RDX"
//About INI title
#20 # "关於INI"
#20 # "关於INI"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "文件 &F"
#101# "打开 &O"
#102# "讯息... &I"
#103# "开始模拟"
#104# "结束模拟"
#105# "选择文件夹..."
#106# "刷新"
#107# "最近使用游戏档"
#108# "最近使用游戏档文件夹"
#109# "离开 &X"
#100# "文件 &F"
#101# "打开 &O"
#102# "讯息... &I"
#103# "开始模拟"
#104# "结束模拟"
#105# "选择文件夹..."
#106# "刷新"
#107# "最近使用游戏档"
#108# "最近使用游戏档文件夹"
#109# "离开 &X"
//System Menu
#120# "系统 &S"
#121# "重新启动 &R"
#122# "暂停 &P"
#123# "萤幕抓取"
#124# "限制FPS"
#125# "储存 &S"
#126# "更名另存..."
#127# "读取 &R"
#128# "读取档案..."
#129# "快速存档 &T"
#130# "作弊码..."
#131# "作弊码按钮"
#132# "继续"
#120# "系统 &S"
#121# "重新启动 &R"
#122# "暂停 &P"
#123# "萤幕抓取"
#124# "限制FPS"
#125# "储存 &S"
#126# "更名另存..."
#127# "读取 &R"
#128# "读取档案..."
#129# "快速存档 &T"
#130# "作弊码..."
#131# "作弊码按钮"
#132# "继续"
//Options Menu
#140# "设置 &O"
#141# "全萤幕 &F"
#142# "常置桌面 &T"
#143# "影像设定..."
#144# "音效设定..."
#145# "输入设定..."
#146# "RSP设定..."
#147# "显示CPU使用率%"
#148# "设定... &S"
#140# "设置 &O"
#141# "全萤幕 &F"
#142# "常置桌面 &T"
#143# "影像设定..."
#144# "音效设定..."
#145# "输入设定..."
#146# "RSP设定..."
#147# "显示CPU使用率%"
#148# "设定... &S"
//Debugger Menu
#160# "除错 &D"
#160# "除错 &D"
//Language Menu
#175# "语文 &L"
#175# "语文 &L"
//Help Menu
#180# "帮助 &H"
#181# "关於INI &I"
#182# "关於Project 64 &A"
#180# "帮助 &H"
#181# "关於INI &I"
#182# "关於Project 64 &A"
//Current Save Slot menu
#190# "初始设定"
#191# "快存捷径一"
#192# "快存捷径二"
#193# "快存捷径三"
#194# "快存捷径四"
#195# "快存捷径五"
#196# "快存捷径六"
#197# "快存捷径七"
#198# "快存捷径八"
#199# "快存捷径九"
#200# "快存捷径十"
#190# "初始设定"
#191# "快存捷径一"
#192# "快存捷径二"
#193# "快存捷径三"
#194# "快存捷径四"
#195# "快存捷径五"
#196# "快存捷径六"
#197# "快存捷径七"
#198# "快存捷径八"
#199# "快存捷径九"
#200# "快存捷径十"
//Pop up Menu
#210# "执行游戏"
#211# "讯息"
#212# "游戏设定"
#213# "作弊码编辑"
#210# "执行游戏"
#211# "讯息"
#212# "游戏设定"
#213# "作弊码编辑"
// Menu Descriptions
#250# "打开N64游戏档"
#251# "显示N64游戏档讯息"
#252# "开始执行游戏模拟"
#253# "停止执行游戏模拟"
#254# "选择游戏档文件夹"
#255# "刷新游戏档列示"
#256# "离开模拟器"
#257# "重新启动游戏档(变更设定)"
#258# "暂定/继续游戏"
#259# "抓取游戏画面"
#260# "限制FPS以变更模拟器执行速度"
#261# "进行快速存档"
#262# "进行快速存档(快存捷径选择)"
#263# "读取快存档"
#264# "读取指定快存档"
#265# "启动/关闭GAME SHARK作弊码"
#266# "特殊作弊码按钮"
#267# "全萤幕切换"
#268# "游戏视窗常置於桌面"
#269# "变更影像设定"
#270# "变更音效设定"
#271# "变更输入设定"
#272# "变更RSP设定"
#273# "显示目前处理器资源"
#274# "观看/变更目前系统设定"
#275# "观看使用手册"
#276# "观看常见问题集"
#277# "关於INI"
#278# "关於程式"
#279# "打开此游戏档"
#280# "选择此文件夹为指定文件夹"
#281# "变更语文设定"
#282# "选择此快存捷径"
#283# "执行此游戏档"
#284# "此游戏档讯息"
#285# "指定游戏档设定"
#286# "指定游戏档作弊码设定"
#250# "打开N64游戏档"
#251# "显示N64游戏档讯息"
#252# "开始执行游戏模拟"
#253# "停止执行游戏模拟"
#254# "选择游戏档文件夹"
#255# "刷新游戏档列示"
#256# "离开模拟器"
#257# "重新启动游戏档(变更设定)"
#258# "暂定/继续游戏"
#259# "抓取游戏画面"
#260# "限制FPS以变更模拟器执行速度"
#261# "进行快速存档"
#262# "进行快速存档(快存捷径选择)"
#263# "读取快存档"
#264# "读取指定快存档"
#265# "启动/关闭GAME SHARK作弊码"
#266# "特殊作弊码按钮"
#267# "全萤幕切换"
#268# "游戏视窗常置於桌面"
#269# "变更影像设定"
#270# "变更音效设定"
#271# "变更输入设定"
#272# "变更RSP设定"
#273# "显示目前处理器资源"
#274# "观看/变更目前系统设定"
#275# "观看使用手册"
#276# "观看常见问题集"
#277# "关於INI"
#278# "关於程式"
#279# "打开此游戏档"
#280# "选择此文件夹为指定文件夹"
#281# "变更语文设定"
#282# "选择此快存捷径"
#283# "执行此游戏档"
#284# "此游戏档讯息"
#285# "指定游戏档设定"
#286# "指定游戏档作弊码设定"
/*********************************************************************************
* ROM Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "档案名"
#301# "游戏名称"
#302# "正常游戏档"
#303# "状况"
#304# "游戏档容量"
#305# "核心程式备注"
#306# "外挂程式备注"
#307# "使用者备注"
#308# "游戏标签"
#309# "发行公司"
#310# "国家"
#311# "设计公司"
#300# "档案名"
#301# "游戏名称"
#302# "正常游戏档"
#303# "状况"
#304# "游戏档容量"
#305# "核心程式备注"
#306# "外挂程式备注"
#307# "使用者备注"
#308# "游戏标签"
#309# "发行公司"
#310# "国家"
#311# "设计公司"
#312# "CRC1"
#313# "CRC2"
#314# "CIC CHIP"
#315# "发行日期"
#316# "类型"
#317# "玩家人数"
#315# "发行日期"
#316# "类型"
#317# "玩家人数"
//Select Rom
#320# "选择此游戏档文件夹"
#320# "选择此游戏档文件夹"
//Messages
#340# "此为问题游戏档请使用GOODN64确定或查阅最新版INI"
#340# "此为问题游戏档请使用GOODN64确定或查阅最新版INI"
/*********************************************************************************
* Option *
*********************************************************************************/
//Options Title
#400# "设定"
#400# "设定"
//Tabs
#401# "外挂程式"
#402# "文件夹"
#403# "选项"
#404# "游戏档选择"
#405# "进阶设定"
#406# "游戏档设定"
#407# "副档名连结"
#408# "游戏档备注"
#401# "外挂程式"
#402# "文件夹"
#403# "选项"
#404# "游戏档选择"
#405# "进阶设定"
#406# "游戏档设定"
#407# "副档名连结"
#408# "游戏档备注"
//Plugin Dialog
#420# "关於"
#421# "同位讯号处理器RSP外挂程式"
#422# "影像外挂程式:"
#423# "音效外挂程式:"
#424# "输入设备外挂程式:"
#420# "关於"
#421# "同位讯号处理器RSP外挂程式"
#422# "影像外挂程式:"
#423# "音效外挂程式:"
#424# "输入设备外挂程式:"
//Directory Dialog
#440# "外挂程式文件夹:"
#441# "游戏档文件夹:"
#442# "N64自动存档"
#443# "快存:"
#444# "画面抓取:"
#445# "前次游戏档文件夹"
#446# "选择外挂程式文件夹"
#447# "选择游戏档文件夹"
#448# "选择自存档文件夹"
#449# "选择快存档文件夹"
#450# "选择抓取画面存档路径"
#440# "外挂程式文件夹:"
#441# "游戏档文件夹:"
#442# "N64自动存档"
#443# "快存:"
#444# "画面抓取:"
#445# "前次游戏档文件夹"
#446# "选择外挂程式文件夹"
#447# "选择游戏档文件夹"
#448# "选择自存档文件夹"
#449# "选择快存档文件夹"
#450# "选择抓取画面存档路径"
//Options Dialog
#460# "当跳离模拟器视窗时暂停游戏"
#461# "直接切换为全萤幕"
#462# "隐藏进阶设定"
#463# "自动记忆所选择作弊码"
#460# "当跳离模拟器视窗时暂停游戏"
#461# "直接切换为全萤幕"
#462# "隐藏进阶设定"
#463# "自动记忆所选择作弊码"
//Rom Browser Tab
#480# "最大游戏档数记忆(最多十个):"
#481# "游戏档"
#482# "最大游戏档路径数记忆(最多十个):"
#483# "路径"
#484# "使用游戏档浏览器"
#485# "使用完整路径名称"
#486# "可用选项:"
#487# "以此次序显示:"
#488# "加入->"
#489# "<-删除"
#490# "移上"
#491# "移下"
#480# "最大游戏档数记忆(最多十个):"
#481# "游戏档"
#482# "最大游戏档路径数记忆(最多十个):"
#483# "路径"
#484# "使用游戏档浏览器"
#485# "使用完整路径名称"
#486# "可用选项:"
#487# "以此次序显示:"
#488# "加入->"
#489# "<-删除"
#490# "移上"
#491# "移下"
//Advanced Options
#500# "除非重新启动或更换游戏档,否则多数效果将无法更新/显示"
#501# "核心程式初始设定"
#502# "核心处理器模式:"
#503# "记忆体处理模式:"
#504# "记忆体容量(初始设定):"
#505# "ADVANCED BLOCK LINKING"
#506# "打开游戏档时自动开始进行模拟"
#507# "自动覆盖INI初始设定"
#508# "自动压缩快存档"
#500# "除非重新启动或更换游戏档,否则多数效果将无法更新/显示"
#501# "核心程式初始设定"
#502# "核心处理器模式:"
#503# "记忆体处理模式:"
#504# "记忆体容量(初始设定):"
#505# "ADVANCED BLOCK LINKING"
#506# "打开游戏档时自动开始进行模拟"
#507# "自动覆盖INI初始设定"
#508# "自动压缩快存档"
//Rom Options
#520# "核心处理器模式:"
#521# "记忆体处理模式:"
#522# "记忆体容量:"
#523# "ADVANCED BLOCK LINKING"
#524# "储存模式:"
#525# "COUNTER FACTOR"
#520# "核心处理器模式:"
#521# "记忆体处理模式:"
#522# "记忆体容量:"
#523# "ADVANCED BLOCK LINKING"
#524# "储存模式:"
#525# "COUNTER FACTOR"
#526# "LARGE COMPILE BUFFER"
#527# "使用TLB"
#527# "使用TLB"
#528# "REGISTER CACHING"
#529# "暂缓SI INTERRUPT"
#529# "暂缓SI INTERRUPT"
#530# "SP HACK"
#531# "初始设定"
#531# "初始设定"
//Core Styles
#540# "INTERPRETER"
@ -264,163 +264,163 @@
#581# "8 MB"
//Advanced Block Linking
#600# "启动"
#601# "关闭"
#600# "启动"
#601# "关闭"
//Save Type
#620# "使用优先类型"
#620# "使用优先类型"
#621# "4KBIT EEPROM"
#622# "16KBIT EEPROM"
#623# "32KBYTES SRAM"
#624# "FLASHRAM"
//Shell Integration Tab
#640# "连结副档名:"
#640# "连结副档名:"
//Rom Notes
#660# "游戏档状况:"
#661# "核心程式备注:"
#662# "外挂程式备注:"
#660# "游戏档状况:"
#661# "核心程式备注:"
#662# "外挂程式备注:"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "游戏档资讯"
#800# "游戏档资讯"
//Rom Info Text
#801# "游戏名称:"
#802# "档案名称:"
#803# "位置:"
#804# "容量:"
#805# "游戏标签:"
#806# "设计公司:"
#807# "国家:"
#808# "CRC1"
#809# "CRC2"
#810# "CIC CHIP"
#801# "游戏名称:"
#802# "档案名称:"
#803# "位置:"
#804# "容量:"
#805# "游戏标签:"
#806# "设计公司:"
#807# "国家:"
#808# "CRC1"
#809# "CRC2"
#810# "CIC CHIP"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "作弊码"
#1001# "作弊码:"
#1002# "备注:"
#1003# "全部选择"
#1004# "全部不选择"
#1000# "作弊码"
#1001# "作弊码:"
#1002# "备注:"
#1003# "全部选择"
#1004# "全部不选择"
//Add Cheat
#1005# "加入作弊码"
#1006# "名称:"
#1007# "作弊码:"
#1008# "增加"
#1009# "清除"
#1010# "作弊码备注:"
#1011# "加入资料库"
#1022# "加入作弊码"
#1023# "新增作弊码"
#1024# "〈位置〉〈数值〉"
#1025# "选项:"
#1026# "〈位置〉〈数值〉"
#1005# "加入作弊码"
#1006# "名称:"
#1007# "作弊码:"
#1008# "增加"
#1009# "清除"
#1010# "作弊码备注:"
#1011# "加入资料库"
#1022# "加入作弊码"
#1023# "新增作弊码"
#1024# "〈位置〉〈数值〉"
#1025# "选项:"
#1026# "〈位置〉〈数值〉"
//Code extension
#1012# "进阶码"
#1013# "请选择使用数值:"
#1014# "确定"
#1015# "取消"
#1012# "进阶码"
#1013# "请选择使用数值:"
#1014# "确定"
#1015# "取消"
//Digital Value
#1016# "数据"
#1017# "请输入数值:"
#1018# "数值"
#1019# "由"
#1020# "至"
#1021# "备注:"
#1016# "数据"
#1017# "请输入数值:"
#1018# "数值"
#1019# "由"
#1020# "至"
#1021# "备注:"
//Edit Cheat
#1027# "作弊码编辑"
#1028# "作弊码更新"
#1027# "作弊码编辑"
#1028# "作弊码更新"
//Cheat Popup Menu
#1040# "新增作弊码"
#1041# "编辑"
#1042# "删除"
#1040# "新增作弊码"
#1041# "编辑"
#1042# "删除"
/*********************************************************************************
* Message *
*********************************************************************************/
#2000# "*** 暂停 ***"
#2001# "继续"
#2002# "程式出现循环错误,模拟将停止。
#2000# "*** 暂停 ***"
#2001# "继续"
#2002# "程式出现循环错误,模拟将停止。
请重新设定游戏"
#2003# "搜索记忆位置失败"
#2004# "影像外挂程式错误。
请重新设定游戏"
#2003# "搜索记忆位置失败"
#2004# "影像外挂程式错误。
请确认是否有系统所支援外挂程式存在"
#2005# "音效外挂程式错误。
请确认是否有系统所支援外挂程式存在"
#2005# "音效外挂程式错误。
请确认是否有系统所支援外挂程式存在"
#2006# "RSP外挂程式错误。
请确认是否有系统所支援外挂程式存在"
#2006# "RSP外挂程式错误。
请确认PROJECT64是否完整安装"
#2007# "输入外挂程式错误。
请确认PROJECT64是否完整安装"
#2007# "输入外挂程式错误。
请确认是否有系统所支援外挂程式存在"
#2008# "无法读取外挂程式:"
#2009# "无法读取。
请确认是否有系统所支援外挂程式存在"
#2008# "无法读取外挂程式:"
#2009# "无法读取。
请确认游戏档设定"
#2010# "无法读取存档"
#2011# "无法读取EEPROM"
#2012# "无法读取FLASHRAM"
#2013# "无法读取MEMPAK"
#2014# "无法读取压缩档。
请检查压缩档状况。
请确认游戏档设定"
#2010# "无法读取存档"
#2011# "无法读取EEPROM"
#2012# "无法读取FLASHRAM"
#2013# "无法读取MEMPAK"
#2014# "无法读取压缩档。
请检查压缩档状况。
模拟器或许需要重新启动"
#2015# "无法打开文件"
#2016# "打开压缩档出错"
#2017# "此档案为错误游戏档。
模拟器或许需要重新启动"
#2015# "无法打开文件"
#2016# "打开压缩档出错"
#2017# "此档案为错误游戏档。
请使用GOODN64确认"
#2018# "资料不明(国家)"
#2019# "资料不明CIC CHIP"
#2020# "资料不明(档案格式)"
#2021# "资料不明(记忆体执行错误)
请使用GOODN64确认"
#2018# "资料不明(国家)"
#2019# "资料不明CIC CHIP"
#2020# "资料不明(档案格式)"
#2021# "资料不明(记忆体执行错误)
模拟停止"
#2022# "无法执行R4300I OPCODE"
#2023# "程式执行错误。
模拟停止"
#2022# "无法执行R4300I OPCODE"
#2023# "程式执行错误。
请确认游戏档设定"
#2024# "此快存档无法执行於此游戏档。
请确认游戏档设定"
#2024# "此快存档无法执行於此游戏档。
快存档必需使用於原本游戏档,区码及版本也必需相同。
强迫读取将造成程式无法正常执行。
快存档必需使用於原本游戏档,区码及版本也必需相同。
强迫读取将造成程式无法正常执行。
确定读取?"
#2025# "错误"
#2026# "版权资讯不明。此游戏档将无法正常执行。"
#2027# "拷贝防护失败"
#2028# "更换外挂程式后模拟器将重新启动。
如果您不想失去目前游戏进度,请选择“否”并进行快存。
确定读取?"
#2025# "错误"
#2026# "版权资讯不明。此游戏档将无法正常执行。"
#2027# "拷贝防护失败"
#2028# "更换外挂程式后模拟器将重新启动。
如果您不想失去目前游戏进度,请选择“否”并进行快存。
确定更换外挂程式?"
#2029# "更换外挂程式"
#2030# "模拟结束"
#2031# "模拟开始"
#2032# "无法读取快存捷径"
#2033# "读取快存捷径"
#2034# "将目前进度储存於"
#2035# "快存结束"
#2036# "游戏档位元更换BYTE SWAPPING IMAGE"
#2037# "选择N64游戏档"
#2038# "读取"
#2039# "读取游戏档"
#2040# "外挂程式尚未启动,游戏档无法执行"
#2041# "确定删除?"
#2042# "删除作弊码"
#2043# "此作弊码名称经已使用"
#2044# "此游戏档已无法新增作弊码"
确定更换外挂程式?"
#2029# "更换外挂程式"
#2030# "模拟结束"
#2031# "模拟开始"
#2032# "无法读取快存捷径"
#2033# "读取快存捷径"
#2034# "将目前进度储存於"
#2035# "快存结束"
#2036# "游戏档位元更换BYTE SWAPPING IMAGE"
#2037# "选择N64游戏档"
#2038# "读取"
#2039# "读取游戏档"
#2040# "外挂程式尚未启动,游戏档无法执行"
#2041# "确定删除?"
#2042# "删除作弊码"
#2043# "此作弊码名称经已使用"
#2044# "此游戏档已无法新增作弊码"

View File

@ -1,65 +1,65 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "český" // LANGUAGE ID
#2 # "Milan Hrubý (hruby@email.cz)" // Author
#1 # "èeský" // LANGUAGE ID
#2 # "Milan Hrubý (hruby@email.cz)" // Author
#3 # "1.5.3" // Version
#4 # "2002-09-13" // Date
//About DLL Dialog
#5 # "GUI překlad (.pj.Lang)"
#5 # "GUI pøeklad (.pj.Lang)"
#6 # "Autor"
#7 # "Verze"
#8 # "Datum"
#9 # "Autorova domovská stránka"
#10 # "ROM databáze (Project64.rdb)"
#11 # "Cheat kód soubor (Project64.cht)"
#12 # "Rozšířené ROM informace (Project64.rdx)"
#9 # "Autorova domovská stránka"
#10 # "ROM databáze (Project64.rdb)"
#11 # "Cheat kód soubor (Project64.cht)"
#12 # "Rozšíøené ROM informace (Project64.rdx)"
//About INI title
#20 # "Project64 aktuálně používá:"
#20 # "Project64 aktuálnì používá:"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "&Soubor"
#101# "&Otevřít ROM..."
#101# "&Otevøít ROM..."
#102# "ROM &informace...."
#103# "&Začít emulaci"
#104# "&Ukončit emulaci"
#105# "&Vybrat ROM složku..."
#106# "Obnovit p&rohlížeč"
#107# "&Poslední ROM"
#108# "Poslední ROM &složka"
#103# "&Zaèít emulaci"
#104# "&Ukonèit emulaci"
#105# "&Vybrat ROM složku..."
#106# "Obnovit p&rohlížeè"
#107# "&Poslední ROM"
#108# "Poslední ROM &složka"
#109# "&Konec"
//System Menu
#120# "Systé&m"
#120# "Systé&m"
#121# "&Resetovat ROM"
#122# "Po&zastavit"
#123# "S&ejmout obrazovku"
#124# "&Omezovač rychlosti"
#125# "&Uložit stav"
#126# "Uložit j&ako..."
#127# "&Nahrát stav"
#128# "Na&hrát..."
#129# "S&tavový sektor"
#124# "&Omezovaè rychlosti"
#125# "&Uložit stav"
#126# "Uložit j&ako..."
#127# "&Nahrát stav"
#128# "Na&hrát..."
#129# "S&tavový sektor"
#130# "&Cheaty..."
#131# "Cheat tlačít&ko"
#132# "&Pokračovat"
#131# "Cheat tlaèít&ko"
#132# "&Pokraèovat"
//Options Menu
#140# "M&ožnosti"
#141# "&Přejít na celou obrazovku"
#142# "Vždy &navrchu"
#140# "M&ožnosti"
#141# "&Pøejít na celou obrazovku"
#142# "Vždy &navrchu"
#143# "&Video plugin..."
#144# "&Audio plugin..."
#145# "Vstupní plug&in..."
#145# "Vstupní plug&in..."
#146# "&RSP..."
#147# "&Ukázat CPU využití %"
#148# "Nas&tavení..."
#147# "&Ukázat CPU využití %"
#148# "Nas&tavení..."
//Debugger Menu
#160# "&Debugger"
@ -68,12 +68,12 @@
#175# "&Jazyk"
//Help Menu
#180# "&Nápověda"
#180# "&Nápovìda"
#181# "O INI &souborech"
#182# "&O programu Project64"
//Current Save Slot menu
#190# "&Standardní sektor (.pj)"
#190# "&Standardní sektor (.pj)"
#191# "Sektor &1 (.pj1)"
#192# "Sektor &2 (.pj2)"
#193# "Sektor &3 (.pj3)"
@ -86,173 +86,173 @@
#200# "Sektor 1&0 (.pj0)"
//Pop up Menu
#210# "&Hrát hru"
#210# "&Hrát hru"
#211# "&Vlastnosti"
#212# "&Editovat nastavení ROM"
#212# "&Editovat nastavení ROM"
#213# "Editovat &cheaty"
// Menu Descriptions
#250# "Projde počítač pro nalezení a nahrání N64 ROM"
#251# "Zobrazí informace o nahrané ROM"
#252# "Začne emulaci nahrané ROM"
#253# "Zastaví emulaci nahrané ROM a vrátí se do prohlížeče"
#254# "Změní složku ROM prohlížeče"
#255# "Obnoví okno prohlížeče k promítnutí změn v ROM složce"
#256# "Ukončí Project64"
#257# "Restartuje běžící ROM a nechá nabýt účinku jakýkoliv změn v nastavení"
#258# "Pozastaví/obnoví emulaci běžící ROM"
#250# "Projde poèítaè pro nalezení a nahrání N64 ROM"
#251# "Zobrazí informace o nahrané ROM"
#252# "Zaène emulaci nahrané ROM"
#253# "Zastaví emulaci nahrané ROM a vrátí se do prohlížeèe"
#254# "Zmìní složku ROM prohlížeèe"
#255# "Obnoví okno prohlížeèe k promítnutí zmìn v ROM složce"
#256# "Ukonèí Project64"
#257# "Restartuje bìžící ROM a nechá nabýt úèinku jakýkoliv zmìn v nastavení"
#258# "Pozastaví/obnoví emulaci bìžící ROM"
#259# "Vygeneruje bitmapu skrz video plugin"
#260# "Omezí VI/s ke korekci rychlosti pro ROM region"
#261# "Uloží Project64 stav do nynějšího sektoru"
#262# "Uloží Project64 stav do jakéhokoliv umístění a názvu souboru"
#263# "Nahraje Project64 stav z nynějšího sektoru"
#264# "Nahraje Project64 stav z jakéhokoliv umístění a názvu souboru"
#265# "Vybere nebo přidá cheat kódy pro běžící ROM"
#266# "Emuluje stisk GameShark tlačítka - pro použití s některými cheaty"
#267# "Přepne z okenního módu do celoobrazovkového módu (stiskněte Escape k návratu!)"
#268# "Drží okno Project64 před ostatními okny"
#269# "Nakonfiguruje vybraný video (grafický) plugin"
#270# "Nakonfiguruje vybraný audio (zvukový) plugin"
#271# "Nakonfiguruje vybraný vstupní (ovladač) plugin"
#260# "Omezí VI/s ke korekci rychlosti pro ROM region"
#261# "Uloží Project64 stav do nynìjšího sektoru"
#262# "Uloží Project64 stav do jakéhokoliv umístìní a názvu souboru"
#263# "Nahraje Project64 stav z nynìjšího sektoru"
#264# "Nahraje Project64 stav z jakéhokoliv umístìní a názvu souboru"
#265# "Vybere nebo pøidá cheat kódy pro bìžící ROM"
#266# "Emuluje stisk GameShark tlaèítka - pro použití s nìkterými cheaty"
#267# "Pøepne z okenního módu do celoobrazovkového módu (stisknìte Escape k návratu!)"
#268# "Drží okno Project64 pøed ostatními okny"
#269# "Nakonfiguruje vybraný video (grafický) plugin"
#270# "Nakonfiguruje vybraný audio (zvukový) plugin"
#271# "Nakonfiguruje vybraný vstupní (ovladaè) plugin"
#272# "Nakonfiguruje RSP plugin"
#273# "Ukáže/skryje zobrazení využití systému CPU rozdělený mezi složky emulátoru"
#274# "Project64 hlavní nastavení aplikace (výběr pluginu atd.)"
#275# "Otevře uživatelský manuál Project64"
#276# "Otevře Project64 herní FAQ"
#273# "Ukáže/skryje zobrazení využití systému CPU rozdìlený mezi složky emulátoru"
#274# "Project64 hlavní nastavení aplikace (výbìr pluginu atd.)"
#275# "Otevøe uživatelský manuál Project64"
#276# "Otevøe Project64 herní FAQ"
#278# "O aplikaci a autorech"
#277# "O autorech podpůrných souborů"
#279# "Nahraje nedávno nahranou ROM"
#280# "Přepne zobrazení prohlížeče na tuto složku"
#281# "Přepne Project64 GUI do jiného jazyka"
#282# "Přepne do jiného stavu uloženého sektoru"
#283# "Nahraje a začne emulaci vybrané hry"
#284# "Zobrazí informace o vybrané hře"
#285# "Edituje nastavení v RDB souboru pro vybranou hru"
#277# "O autorech podpùrných souborù"
#279# "Nahraje nedávno nahranou ROM"
#280# "Pøepne zobrazení prohlížeèe na tuto složku"
#281# "Pøepne Project64 GUI do jiného jazyka"
#282# "Pøepne do jiného stavu uloženého sektoru"
#283# "Nahraje a zaène emulaci vybrané hry"
#284# "Zobrazí informace o vybrané høe"
#285# "Edituje nastavení v RDB souboru pro vybranou hru"
#286# "Edituje cheaty v CHT souboru pro vybranou hru"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "Název souboru"
#301# "Vnitřní název"
#302# "Řádný název"
#300# "Název souboru"
#301# "Vnitøní název"
#302# "Øádný název"
#303# "Stav"
#304# "Velikost ROM"
#305# "Poznámka jádra"
#306# "Poznámka pluginu"
#307# "Poznámky (uživatel)"
#305# "Poznámka jádra"
#306# "Poznámka pluginu"
#307# "Poznámky (uživatel)"
#308# "ID kazety"
#309# "Výrobce"
#309# "Výrobce"
#310# "Region"
#311# "Vývojář"
#311# "Vývojáø"
#312# "CRC1"
#313# "CRC2"
#314# "CIC čip"
#315# "Datum uveřejnění"
#316# "Žánr"
#317# "Hráči"
#314# "CIC èip"
#315# "Datum uveøejnìní"
#316# "Žánr"
#317# "Hráèi"
//Select Rom
#320# "Nastavte ROM složku pro ROM prohlížeč"
#320# "Nastavte ROM složku pro ROM prohlížeè"
//Messages
#340# "Špatná ROM? Použijte GoodN64, hledejte novou RDB"
#340# "Špatná ROM? Použijte GoodN64, hledejte novou RDB"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Nastavení Project64"
#400# "Nastavení Project64"
//Tabs
#401# "Pluginy"
#402# "Složky"
#403# "Možnosti"
#404# "Výběr ROM"
#405# "Pokročilé"
#406# "Nastavení ROM"
#402# "Složky"
#403# "Možnosti"
#404# "Výbìr ROM"
#405# "Pokroèilé"
#406# "Nastavení ROM"
#407# "Integrace"
#408# "ROM poznámky"
#408# "ROM poznámky"
//Plugin Dialog
#420# "O pluginu"
#421# "&Reality Signal Processor plugin"
#422# "&Video (grafický) plugin"
#423# "&Audio (zvukový) plugin"
#424# "Vst&upní (ovladač) plugin"
#422# "&Video (grafický) plugin"
#423# "&Audio (zvukový) plugin"
#424# "Vst&upní (ovladaè) plugin"
//Directory Dialog
#440# "&Plugin složka"
#441# "&ROM složka"
#442# "Původ&ní N64 ukládací složka"
#443# "Projec&t64 ukládací složka stavů"
#444# "&Složka screenshotů"
#445# "Pa&matovat si poslední složku, z které byla otevřena"
#446# "Vyberte složku pro pluginy"
#447# "Vyberte složku pro ROM"
#448# "Vyberte složku pro původní N64 uložení"
#449# "Vyberte složku pro Project64 uložení stavů"
#450# "Vyberte složku pro screenshoty"
#440# "&Plugin složka"
#441# "&ROM složka"
#442# "Pùvod&ní N64 ukládací složka"
#443# "Projec&t64 ukládací složka stavù"
#444# "&Složka screenshotù"
#445# "Pa&matovat si poslední složku, z které byla otevøena"
#446# "Vyberte složku pro pluginy"
#447# "Vyberte složku pro ROM"
#448# "Vyberte složku pro pùvodní N64 uložení"
#449# "Vyberte složku pro Project64 uložení stavù"
#450# "Vyberte složku pro screenshoty"
//Options Dialog
#460# "&Pozastavit, když okno ztratí zaměření"
#461# "Přepn&out na celou obrazovku automaticky po nahrání hry"
#462# "&Skrýt pokročilé nastavení (doporučeno)"
#463# "Pamatovat si vyb&rané cheaty pro hry"
#460# "&Pozastavit, když okno ztratí zamìøení"
#461# "Pøepn&out na celou obrazovku automaticky po nahrání hry"
#462# "&Skrýt pokroèilé nastavení (doporuèeno)"
#463# "Pamatovat si vyb&rané cheaty pro hry"
//Rom Browser Tab
#480# "&Počet ROM k zapamatování (0-10)"
#480# "&Poèet ROM k zapamatování (0-10)"
#481# "ROM"
#482# "Počet slože&k ROM k zapamatování (0-10)"
#483# "složky"
#484# "P&rohlížeč ROM povolený"
#485# "R&ekurze adresáře"
#486# "Do&stupná pole"
#487# "&Ukázat v tomto pořadí:"
#488# "Přid&at ->"
#482# "Poèet slože&k ROM k zapamatování (0-10)"
#483# "složky"
#484# "P&rohlížeè ROM povolený"
#485# "R&ekurze adresáøe"
#486# "Do&stupná pole"
#487# "&Ukázat v tomto poøadí:"
#488# "Pøid&at ->"
#489# "<- &Odebrat"
#490# "&Nahoru"
#491# "&Dolů"
#491# "&Dolù"
//Advanced Options
#500# "Tato nastavení se používají, když RDB nemá určenou hodnotu,
RDB není přítomno nebo volba dole 'přepsat' je nezaškrtnutá"
#501# "Stan&dardy jádra"
#502# "R4300i &jádro"
#503# "&Samo-mod. kódovací metoda:"
#500# "Tato nastavení se používají, když RDB nemá urèenou hodnotu,
RDB není pøítomno nebo volba dole 'pøepsat' je nezaškrtnutá"
#501# "Stan&dardy jádra"
#502# "R4300i &jádro"
#503# "&Samo-mod. kódovací metoda:"
#504# "RDRA&M velikost:"
#505# "&Pokročilé blokové spojování:"
#506# "&Začít emulaci po nahrání ROM"
#507# "Přepsat tat&o standardní nastavení údaji z RDB"
#508# "&Komprimovat všechna stavová ukládáni do zipu"
#505# "&Pokroèilé blokové spojování:"
#506# "&Zaèít emulaci po nahrání ROM"
#507# "Pøepsat tat&o standardní nastavení údaji z RDB"
#508# "&Komprimovat všechna stavová ukládáni do zipu"
//Rom Options
#520# "R4300i &jádro:"
#521# "&Samo-mod. kódovací metoda:"
#520# "R4300i &jádro:"
#521# "&Samo-mod. kódovací metoda:"
#522# "RDRA&M velikost:"
#523# "&Pokročilé blokové spojování:"
#524# "&Typ uložení:"
#525# "&Faktor čítače:"
#526# "&Větší kompilační buffer"
#523# "&Pokroèilé blokové spojování:"
#524# "&Typ uložení:"
#525# "&Faktor èítaèe:"
#526# "&Vìtší kompilaèní buffer"
#527# "T&LB"
#528# "Caching &registru"
#529# "Zpozd&it SI přerušení"
#529# "Zpozd&it SI pøerušení"
#530# "SP &hack"
#531# "* užívat standardní"
#531# "* užívat standardní"
//Core Styles
#540# "Překladač"
#540# "Pøekladaè"
#541# "Rekompiler"
#542# "Seřízení jádra"
#542# "Seøízení jádra"
//Self Mod Methods
#560# "Žádná"
#560# "Žádná"
#561# "Cache"
#562# "Chránit paměť"
#563# "Ověřit paměť & cache"
#564# "Střídat paměť & cache"
#565# "Ověřit postup paměti"
#562# "Chránit pamì"
#563# "Ovìøit pamì & cache"
#564# "Støídat pamì & cache"
#565# "Ovìøit postup pamìti"
//RDRAM Size
#580# "4 MB"
@ -263,19 +263,19 @@ RDB nen
#601# "Vypnuto"
//Save Type
#620# "* detek. první užívaný typ"
#620# "* detek. první užívaný typ"
#621# "4kbit EEPROM"
#622# "16kbit EEPROM"
#623# "32kbajtů SRAM"
#624# "128kbajtů FlashRAM"
#623# "32kbajtù SRAM"
#624# "128kbajtù FlashRAM"
//Shell Intergration Tab
#640# "S Project64 asociovat soubory"
//Rom Notes
#660# "&Stav:"
#661# "P&oznámka jádra:"
#662# "&Poznámka pluginu:"
#661# "P&oznámka jádra:"
#662# "&Poznámka pluginu:"
/*********************************************************************************
* ROM Information *
@ -284,16 +284,16 @@ RDB nen
#800# "ROM informace"
//Rom Info Text
#801# "Vnitřní název"
#802# "Název souboru"
#803# "Umístění"
#801# "Vnitøní název"
#802# "Název souboru"
#803# "Umístìní"
#804# "Velikost"
#805# "ID kazety"
#806# "Výrobce"
#806# "Výrobce"
#807# "Region"
#808# "CRC1"
#809# "CRC2"
#810# "CIC čip"
#810# "CIC èip"
/*********************************************************************************
* Cheats *
@ -301,44 +301,44 @@ RDB nen
//Cheat List
#1000# "Cheaty"
#1001# "Cheaty:"
#1002# "Poznámky: "
#1003# "Označit všechny"
#1004# "&Odznačit všechny"
#1002# "Poznámky: "
#1003# "Oznaèit všechny"
#1004# "&Odznaèit všechny"
//Add Cheat
#1005# "Přidat cheat"
#1006# "Název:"
#1007# "Kód:"
#1008# "Vložit"
#1005# "Pøidat cheat"
#1006# "Název:"
#1007# "Kód:"
#1008# "Vložit"
#1009# "Odstranit"
#1010# " Cheat poznámky: "
#1011# "Přidat do DB"
#1022# "Přidat cheat"
#1023# "Nový cheat"
#1010# " Cheat poznámky: "
#1011# "Pøidat do DB"
#1022# "Pøidat cheat"
#1023# "Nový cheat"
#1024# "<adresa> <hodnota>"
#1025# "Možnosti:"
#1026# "<hodnota> <označení>"
#1025# "Možnosti:"
#1026# "<hodnota> <oznaèení>"
//Code extension
#1012# "Rozšíření kódu"
#1013# "Prosím vyberte hodnotu, která bude užívána pro:"
#1012# "Rozšíøení kódu"
#1013# "Prosím vyberte hodnotu, která bude užívána pro:"
#1014# "OK"
#1015# "Zrušit"
#1015# "Zrušit"
//Digital Value
#1016# "Číslo kvantity"
#1017# "Prosím vyberte hodnotu pro:"
#1016# "Èíslo kvantity"
#1017# "Prosím vyberte hodnotu pro:"
#1018# "&Hodnota"
#1019# "od"
#1020# "do"
#1021# "&Poznámky:"
#1021# "&Poznámky:"
//Edit Cheat
#1027# "Editace cheatu"
#1028# "Aktualiz. cheat"
//Cheat Popup Menu
#1040# "Přidat nový cheat..."
#1040# "Pøidat nový cheat..."
#1041# "Editovat..."
#1042# "Vymazat"
@ -347,77 +347,77 @@ RDB nen
*********************************************************************************/
#2000# "Pozastaveno"
#2001# "Obnoveno"
#2002# "Ve stálé smyčce kterou nelze opustit.
Emulace bude nyní zastavena.
#2002# "Ve stálé smyèce kterou nelze opustit.
Emulace bude nyní zastavena.
Ověřuji ROM a její nastavení."
#2003# "Selhalo přidělení paměti"
#2004# "Standardní nebo vybraný video plugin chybí nebo je poškozený.
Ovìøuji ROM a její nastavení."
#2003# "Selhalo pøidìlení pamìti"
#2004# "Standardní nebo vybraný video plugin chybí nebo je poškozený.
Zkontrolujte, že máte alespoň jeden kompatibilní plugin soubor v plugin složce."
#2005# "Standardní nebo vybraný audio plugin chybí nebo je poškozený.
Zkontrolujte, že máte alespoò jeden kompatibilní plugin soubor v plugin složce."
#2005# "Standardní nebo vybraný audio plugin chybí nebo je poškozený.
Zkontrolujte, že máte alespoň jeden kompatibilní plugin soubor v plugin složce."
#2006# "Standardní nebo vybraný RSP plugin chybí nebo je poškozený.
Zkontrolujte, že máte alespoò jeden kompatibilní plugin soubor v plugin složce."
#2006# "Standardní nebo vybraný RSP plugin chybí nebo je poškozený.
Zkontrolujte, zda máte Project64 řádně nainstalovaný s platnou plugin cestou."
#2007# "Standardní nebo vybraný vstupní plugin chybí nebo je poškozený.
Zkontrolujte, zda máte Project64 øádnì nainstalovaný s platnou plugin cestou."
#2007# "Standardní nebo vybraný vstupní plugin chybí nebo je poškozený.
Zkontrolujte, že máte alespoň jeden kompatibilní plugin soubor v plugin složce."
#2008# "Selhalo nahrání pluginu:"
#2009# "Selhalo nahrání slova
Zkontrolujte, že máte alespoò jeden kompatibilní plugin soubor v plugin složce."
#2008# "Selhalo nahrání pluginu:"
#2009# "Selhalo nahrání slova
Ověřuji ROM a její nastavení."
#2010# "Selhalo otevření uloženého souboru stavu"
#2011# "Selhalo otevření EEPROM"
#2012# "Selhalo otevření FlashRAM"
#2013# "Selhalo otevření MemPaku"
#2014# "Pokus otevřít zip soubor selhal.
Chybějící nebo poškozený zip soubor - zkontrolujte cestu a soubor.
Ovìøuji ROM a její nastavení."
#2010# "Selhalo otevøení uloženého souboru stavu"
#2011# "Selhalo otevøení EEPROM"
#2012# "Selhalo otevøení FlashRAM"
#2013# "Selhalo otevøení MemPaku"
#2014# "Pokus otevøít zip soubor selhal.
Chybìjící nebo poškozený zip soubor - zkontrolujte cestu a soubor.
Možná budete muset restartovat aplikaci."
#2015# "Pokus otevřít soubor selhal."
#2016# "Při pokusu otevřít zip soubor nastala chyba."
#2017# "Nahraný soubor se nezdá být platnou Nintendo64 ROM.
Možná budete muset restartovat aplikaci."
#2015# "Pokus otevøít soubor selhal."
#2016# "Pøi pokusu otevøít zip soubor nastala chyba."
#2017# "Nahraný soubor se nezdá být platnou Nintendo64 ROM.
Prověřte Váš ROM s GoodN64."
#2018# "Neznámá země"
#2019# "Neznámý CIC čip"
#2020# "Neznámý formát souboru"
#2021# "Neznámá paměťová činnost
Provìøte Váš ROM s GoodN64."
#2018# "Neznámá zemì"
#2019# "Neznámý CIC èip"
#2020# "Neznámý formát souboru"
#2021# "Neznámá pamìová èinnost
Emulace zastavena"
#2022# "Nevhodný R4300i OpKód na"
#2023# "Provedení z nenamapovaného prostoru.
#2022# "Nevhodný R4300i OpKód na"
#2023# "Provedení z nenamapovaného prostoru.
Ověřuji ROM a její nastavení."
#2024# "Zdá se, že uložený stav neodpovídá běžící ROM.
Ovìøuji ROM a její nastavení."
#2024# "Zdá se, že uložený stav neodpovídá bìžící ROM.
Stavová uložení musí být uložena & nahrána mezi 100% stejnými ROM,
zvláště REGION a VERZE musí být stejné.
Nahrání tohoto stavu je pravděpodobně příčinou pádu hry a/nebo emulátoru.
Stavová uložení musí být uložena & nahrána mezi 100% stejnými ROM,
zvláštì REGION a VERZE musí být stejné.
Nahrání tohoto stavu je pravdìpodobnì pøíèinou pádu hry a/nebo emulátoru.
Jste si jistý, že chcete pokračovat v nahrávání?"
#2025# "Chyba aplikace/jádra"
#2026# "Copyright sekvence nenalezena v LUT. Hra již nebude nadále funkční."
#2027# "Selhala ochrana proti kopírování"
#2028# "Změna pluginu vyžaduje, aby Project64 resetoval běžící ROM.
Jestliže nechcete ztratit Vaši pozici, odpovězte Ne a nejprve vytvořte uložení stavu.
Jste si jistý, že chcete pokraèovat v nahrávání?"
#2025# "Chyba aplikace/jádra"
#2026# "Copyright sekvence nenalezena v LUT. Hra již nebude nadále funkèní."
#2027# "Selhala ochrana proti kopírování"
#2028# "Zmìna pluginu vyžaduje, aby Project64 resetoval bìžící ROM.
Jestliže nechcete ztratit Vaši pozici, odpovìzte Ne a nejprve vytvoøte uložení stavu.
Změnit pluginy a restartovat hru?"
#2029# "Změna pluginů"
#2030# "Emulace skončila"
#2031# "Emulace začala"
#2032# "Nemohu nahrát uložený stav"
#2033# "Nahraný stav:"
#2034# "Uložený stav:"
#2035# "Aktuální sektor uloženého stavu"
#2036# "Bajt-vyměňující ROM"
#2037# "Čekám až si vyberete ROM"
#2038# "Nahráno"
#2039# "Nahrávám ROM"
#2040# "Nemůžete otevřít ROM, jestliže nebyly spuštěny pluginy všech typů (Video, Audio, Vstupní a RSP)"
#2041# "Jste si jistý, že chcete vymazat tento cheat?"
Zmìnit pluginy a restartovat hru?"
#2029# "Zmìna pluginù"
#2030# "Emulace skonèila"
#2031# "Emulace zaèala"
#2032# "Nemohu nahrát uložený stav"
#2033# "Nahraný stav:"
#2034# "Uložený stav:"
#2035# "Aktuální sektor uloženého stavu"
#2036# "Bajt-vymìòující ROM"
#2037# "Èekám až si vyberete ROM"
#2038# "Nahráno"
#2039# "Nahrávám ROM"
#2040# "Nemùžete otevøít ROM, jestliže nebyly spuštìny pluginy všech typù (Video, Audio, Vstupní a RSP)"
#2041# "Jste si jistý, že chcete vymazat tento cheat?"
#2042# "Vymazat cheat"
#2043# "Název cheatu již existuje, prosím vyberte jiný"
#2044# "Dosáhli jste maximálního počtu cheatů na hru"
#2043# "Název cheatu již existuje, prosím vyberte jiný"
#2044# "Dosáhli jste maximálního poètu cheatù na hru"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
@ -8,11 +8,11 @@
#4 # "2002-08-21" // Date
//About DLL Dialog
#5 # "GUI Oversættelse (.pj.Lang)"
#6 # "Programmør"
#5 # "GUI Oversættelse (.pj.Lang)"
#6 # "Programmør"
#7 # "Version"
#8 # "Dato"
#9 # "Programmørens Hjemmeside"
#9 # "Programmørens Hjemmeside"
#10 # "spil Database (Project64.rdb)"
#11 # "Snyde kode fil (Project64.cht)"
#12 # "Udvidet spil Information (Project64.rdx)"
@ -25,12 +25,12 @@
*********************************************************************************/
//File Menu
#100# "&Filer"
#101# "&Åben spil"
#101# "&Åben spil"
#102# "Spil &info..."
#103# "&Genoptag Spil"
#104# "Afslut Spil"
#105# "&Vælg spil folder..."
#106# "&Opdatér vindue"
#105# "&Vælg spil folder..."
#106# "&Opdatér vindue"
#107# "&Seneste spil"
#108# "Seneste spil Foldere"
#109# "&Afslut"
@ -39,8 +39,8 @@
#120# "&System"
#121# "Genstart spil"
#122# "&Pause"
#123# "Skærm&billeder"
#124# "&Hastigheds begrænser"
#123# "Skærm&billeder"
#124# "&Hastigheds begrænser"
#125# "&Gem Spilstadie"
#126# "Gem Som..."
#127# "&Hent Spilstadie"
@ -52,8 +52,8 @@
//Option Menu
#140# "&Konfiguration"
#141# "&Fuld skærm"
#142# "Altid &Øverst"
#141# "&Fuld skærm"
#142# "Altid &Øverst"
#143# "&Video udvidelse..."
#144# "&Audio udvidelse..."
#145# "Ind&put udvidelse..."
@ -68,7 +68,7 @@
#175# "&Sprog"
//Help Menu
#180# "&Hjælp"
#180# "&Hjælp"
#181# "Om &INI filer"
#182# "&Om Project64"
@ -92,37 +92,37 @@
#213# "Skift snyd"
// Menu Descriptions
#250# "Søg på computeren for at finde og hente et N64 spil"
#250# "Søg på computeren for at finde og hente et N64 spil"
#251# "Vis information om det hentede spil"
#252# "Start spillet med den fundne spil-fil"
#253# "Stop spillet og vend tilbage til Søg"
#254# "Skift søgemaskinens spil folder"
#255# "Updater søgevinduet for at vise ændringer i spil folderen"
#253# "Stop spillet og vend tilbage til Søg"
#254# "Skift søgemaskinens spil folder"
#255# "Updater søgevinduet for at vise ændringer i spil folderen"
#256# "Afslut Project64"
#257# "Genstart spillet og lad alle indstillings ændringer træde i kraft"
#257# "Genstart spillet og lad alle indstillings ændringer træde i kraft"
#258# "Paus/Genoptag spillet med den anvendte spil-fil"
#259# "lav et billede ved hjælp af video udvidelsen"
#260# "Begræns VI/s til den korrekte hastighed for spillets region"
#261# "Gem Project64 stadie til det nuværende arkiv"
#259# "lav et billede ved hjælp af video udvidelsen"
#260# "Begræns VI/s til den korrekte hastighed for spillets region"
#261# "Gem Project64 stadie til det nuværende arkiv"
#262# "Gem Project64 stadie til et hvilket som helst filnavn og sted"
#263# "Hent Project64 stadie fra nuværende arkiv"
#263# "Hent Project64 stadie fra nuværende arkiv"
#264# "Hent Project64 state fra et hvilket som helst filnavn og sted"
#265# "Vælg og brug snyde-koder til det anvendte spil"
#266# "Efterlign et tryk på GameShark knappen - til brug for nogle snyde-koder"
#267# "Skift fra vindue-tilstand til fuld skærm (Tryk på Esc for at vende tilbage!)"
#268# "Vis Project64 vindue foran andre åbne vinduer"
#265# "Vælg og brug snyde-koder til det anvendte spil"
#266# "Efterlign et tryk på GameShark knappen - til brug for nogle snyde-koder"
#267# "Skift fra vindue-tilstand til fuld skærm (Tryk på Esc for at vende tilbage!)"
#268# "Vis Project64 vindue foran andre åbne vinduer"
#269# "Skift den valgte video (grafik) udvidelse"
#270# "Skift den valgte Audio (lyd) udvidelse"
#271# "Skift den valgte Indput (Kontroller) udvidelse"
#272# "Skift RSP udvidelsen"
#273# "Vis/skjul system CPU brug delt mellem emulator komponenter"
#274# "Project64 hoved indstillinger (indsats valg etc.)"
#275# "Åben brugervejledningen til Project64"
#276# "Åben Project64 spil-specifik hjælp"
#277# "Om Programmørerne"
#278# "Om programmørerne af hjælpefilerne"
#275# "Åben brugervejledningen til Project64"
#276# "Åben Project64 spil-specifik hjælp"
#277# "Om Programmørerne"
#278# "Om programmørerne af hjælpefilerne"
#279# "Hent senest hentede spil"
#280# "Indstil søger til denne folder"
#280# "Indstil søger til denne folder"
#281# "Skift Project64 GUI til et andet sprog"
#282# "Skift til et andet gem spilstadie arkiv"
#283# "Hent og start det valgte spil"
@ -138,7 +138,7 @@
#301# "Internt Navn"
#302# "GoodN64 Navn"
#303# "Status"
#304# "Spillets størrelse"
#304# "Spillets størrelse"
#305# "Kerne Note"
#306# "Indsats Note"
#307# "Noter (Bruger)"
@ -154,7 +154,7 @@
#317# "Spillere"
//Select Rom
#320# "Indstil spil søgeren til din valgte spil folder"
#320# "Indstil spil søgeren til din valgte spil folder"
//Messages
#340# "Fejl i spillet? Brug GoodN64 og se efter opdateret INI"
@ -189,15 +189,15 @@
#443# "Project64 spils&tadie gemme folder"
#444# "&Billede folder"
#445# "Husk den sidste folder hvorfra et spil blev hentet"
#446# "Vælg en folder til udvidelser"
#447# "Vælg en folder til spil"
#448# "vælg en folder til standard N64 gemte spil"
#449# "Vælg en folder til gemte Project64 spilstadier"
#450# "Vælg den folder hvor video udvidelsen skal gemme spil billeder"
#446# "Vælg en folder til udvidelser"
#447# "Vælg en folder til spil"
#448# "vælg en folder til standard N64 gemte spil"
#449# "Vælg en folder til gemte Project64 spilstadier"
#450# "Vælg den folder hvor video udvidelsen skal gemme spil billeder"
//Options Dialog
#460# "Paus når vinduet mister fokus"
#461# "Skift automatisk til fuld skærm når spil hentes"
#460# "Paus når vinduet mister fokus"
#461# "Skift automatisk til fuld skærm når spil hentes"
#462# "Skjul avancerede indstillinger (Anbefales)"
#463# "Husk valgte snyde-koder til spil"
@ -206,34 +206,34 @@
#481# "Spil"
#482# "Antal af spil og &foldere som skal huskes (0-10)"
#483# "foldere"
#484# "Spil og søge&maskine aktiv"
#484# "Spil og søge&maskine aktiv"
#485# "Mappe Rekursion"
#486# "Tilgængelige &områder"
#487# "&Vis i denne rækkefølge:"
#488# "&Tilføj ->"
#486# "Tilgængelige &områder"
#487# "&Vis i denne rækkefølge:"
#488# "&Tilføj ->"
#489# "<- &Fjern"
#490# "Op"
#491# "Ned"
//Advanced Options
#500# "Disse indstillinger træder i kræft når RDB'en ikke har fastsat en værdi, der ikke er en RDB, eller overskrive muligheden forneden ikke er valgt"
#500# "Disse indstillinger træder i kræft når RDB'en ikke har fastsat en værdi, der ikke er en RDB, eller overskrive muligheden forneden ikke er valgt"
#501# "&Kerne & Standarder"
#502# "R4300i kerne"
#503# "Selv-mod. kode &metode:"
#504# "RDRAM størrelse:"
#505# "&Avanceret Blokkér binding:"
#506# "&Start spillet så snart det er hentet"
#504# "RDRAM størrelse:"
#505# "&Avanceret Blokkér binding:"
#506# "&Start spillet så snart det er hentet"
#507# "&Overskriv disse standard indstillinger med dem fra RDB'en"
#508# "&Pak alle gemte spilstadier"
//Rom Options
#520# "R4300i Kerne:"
#521# "Selv-mod. &kode metode:"
#522# "RDRA&M størrelse:"
#523# "Avanceret &Blokkér binding:"
#522# "RDRA&M størrelse:"
#523# "Avanceret &Blokkér binding:"
#524# "&Gemt stadie type:"
#525# "&Mod Faktor:"
#526# "Større sammenlignings Buffer"
#526# "Større sammenlignings Buffer"
#527# "&TLB"
#528# "&Registrer Caching"
#529# "&Forsink SI afbryd"
@ -243,15 +243,15 @@
//Core Styles
#540# "Interpreter"
#541# "Recompiler"
#542# "Synkronisér kerner"
#542# "Synkronisér kerner"
//Self Mod Methods
#560# "Ingen"
#561# "Cache"
#562# "Beskyt hukommelse"
#563# "Vælg hukommelse & cache"
#563# "Vælg hukommelse & cache"
#564# "Skift hukommelse & cache"
#565# "Vælg hukommelse avancert"
#565# "Vælg hukommelse avancert"
//RDRAM Size
#580# "4 MB"
@ -262,7 +262,7 @@
#601# "Fra"
//Save Type
#620# "* Find den først anvendte type"
#620# "* Find den først anvendte type"
#621# "4kbit EEPROM"
#622# "16kbit EEPROM"
#623# "32kbyte SRAM"
@ -286,7 +286,7 @@
#801# "Internt Navn"
#802# "Fil Navn"
#803# "Sted"
#804# "Størrelse"
#804# "Størrelse"
#805# "Kassette ID"
#806# "Bagmand"
#807# "Region"
@ -299,45 +299,45 @@
*********************************************************************************/
//Cheat List
#1000# "Snyd"
#1001# "Vælg snyd:"
#1001# "Vælg snyd:"
#1002# "Noter: "
#1003# "Vælg Alle"
#1004# "Vælg Alle fra"
#1003# "Vælg Alle"
#1004# "Vælg Alle fra"
//Add Cheat
#1005# "Tilføj Snyd"
#1005# "Tilføj Snyd"
#1006# "Navn:"
#1007# "kode:"
#1008# "Insæt"
#1008# "Insæt"
#1009# "Fjern"
#1010# "Snyde Noter: "
#1011# "Tilføj til DB"
#1022# "Tilføj snyd"
#1011# "Tilføj til DB"
#1022# "Tilføj snyd"
#1023# "Ny Snyd"
#1024# "<adresse> <værdi>"
#1025# "Redeigér:"
#1026# "<værdi> <label>"
#1024# "<adresse> <værdi>"
#1025# "Redeigér:"
#1026# "<værdi> <label>"
//Code extension
#1012# "kode Udvidelser"
#1013# "Vælg venligst en værdi der skal bruges til:"
#1013# "Vælg venligst en værdi der skal bruges til:"
#1014# "OK"
#1015# "Afbryd"
//Digital Value
#1016# "Mængde"
#1017# "Vælg venligst en værdi til:"
#1018# "&Værdi"
#1016# "Mængde"
#1017# "Vælg venligst en værdi til:"
#1018# "&Værdi"
#1019# "fra"
#1020# "til"
#1021# "&Noter:"
//Edit Cheat
#1027# "Skift Snyd"
#1028# "Updatér snyd"
#1028# "Updatér snyd"
//Cheat Popup Menu
#1040# "Tilføj ny snyd..."
#1040# "Tilføj ny snyd..."
#1041# "Konfigurer..."
#1042# "Slet"
@ -350,32 +350,32 @@
Spillet vil nu stoppe.
Godkend spil og spil indstillinger."
#2003# "Kunne ikke allokére hukkommelsen"
#2003# "Kunne ikke allokére hukkommelsen"
#2004# "Standard eller valgte video udvidelse mangler eller er ugyldigt.
Check om du har mindst ét kompatibelt lyd indput i din lyd indput folder."
Check om du har mindst ét kompatibelt lyd indput i din lyd indput folder."
#2005# "Standard eller valgte lyd udvidelse mangler eller er ugyldige.
Check om du har mindst én kompatibel udvidelse i din indput folder."
Check om du har mindst én kompatibel udvidelse i din indput folder."
#2006# "Standard eller valgte RSP udvidelse mangler eller er ugyldig.
Check om PJ64 er korrekt indstalleret med en gyldig indput sti."
#2007# "Standard eller valgte indput udvidelse mangler eller er ugyldige.
Check om du har mindst én gyldig udvidelse i din indput folder."
Check om du har mindst én gyldig udvidelse i din indput folder."
#2008# "Kunne ikke hente udvidelsen:"
#2009# "Kunne ikke hente ord"
Godkend spil og spil indstillinger."
#2010# "Kunne ikke åbne gemt spilstadie fil"
#2011# "Kunne ikke åbne EEPROM"
#2012# "Kunne ikke åbne FlashRAM"
#2013# "Kunne ikke åbne MemPak"
#2014# "Forsøget på at åbne pakket fil mislykkedes.
#2010# "Kunne ikke åbne gemt spilstadie fil"
#2011# "Kunne ikke åbne EEPROM"
#2012# "Kunne ikke åbne FlashRAM"
#2013# "Kunne ikke åbne MemPak"
#2014# "Forsøget på at åbne pakket fil mislykkedes.
Manglende eller beskadiget pakket fil - check sti og fil."
#2015# "Forsøg på at åbne filen mislykkedes."
#2016# "Fejl opstod i forsøget på at åbne pakket fil."
#2015# "Forsøg på at åbne filen mislykkedes."
#2016# "Fejl opstod i forsøget på at åbne pakket fil."
#2017# "Det hentede spil er ikke et gyldigt N64 spil.
Godkend dine spil med GoodN64."
@ -385,21 +385,21 @@ Godkend dine spil med GoodN64."
#2021# "Ukendt hukommelses handling"
Spil stop!"
#2022# "Uhåndteret R4300i Opkode ved"
#2022# "Uhåndteret R4300i Opkode ved"
#2023# "Starter fra tom eller ugyldig fil.
Godkend Spil og Spil Indstillinger."
#2024# "Det gemte stadie passer umiddelbart ikke til det hentede spil.
Gemte stadier må kun gemmes og hentes mellem 100% identiske spil,
Ganske enkelt skal region og version være den samme.
Gemte stadier må kun gemmes og hentes mellem 100% identiske spil,
Ganske enkelt skal region og version være den samme.
Hvis du alligevel bruger dette stadie vil Spillet og emulatoren nok afbrydes.
Vil du alligevel bruge stadiet?"
#2025# "Forespørgsel/Kerne Fejl"
#2026# "Copyright sekvens ikke fundet i LUT. Spillet vil ikke længere fungere."
#2025# "Forespørgsel/Kerne Fejl"
#2026# "Copyright sekvens ikke fundet i LUT. Spillet vil ikke længere fungere."
#2027# "Kopi Beskyttelses fejl"
#2028# "Ændring af indsatser gør at du må genstarte et kørende spil.
#2028# "Ændring af indsatser gør at du må genstarte et kørende spil.
Hvis du ikke vil miste dit spil, svar da nej og gem dit spilstadie.
Vil du skifte udvidelse og genstarte spillet?"
@ -409,15 +409,15 @@ Vil du skifte udvidelse og genstarte spillet?"
#2032# "Kan ikke hente gemt spilstadie"
#2033# "Hentet spilstadie"
#2034# "Gemt spilstadie"
#2035# "Nuværende arkiv for gemte spilstadier"
#2035# "Nuværende arkiv for gemte spilstadier"
#2036# "Byteswapp'er Spillet"
#2037# "Venter på at du vælger et spil"
#2037# "Venter på at du vælger et spil"
#2038# "Hentet"
#2039# "Henter Spil"
#2040# "Du kan ikke starte et spil før alle udvidelses typer (video, lyd, indput og RSP) er tilpasset"
#2041# "Er du sikker på at du vil slette dette snyd?"
#2040# "Du kan ikke starte et spil før alle udvidelses typer (video, lyd, indput og RSP) er tilpasset"
#2041# "Er du sikker på at du vil slette dette snyd?"
#2042# "Slet Snyd"
#2043# "Snyd navn allerede i brug, vælg venligst et andet"
#2044# "Du har nået maksimum af snyd du kan anvende pr spil"
#2043# "Snyd navn allerede i brug, vælg venligst et andet"
#2044# "Du har nået maksimum af snyd du kan anvende pr spil"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
@ -157,7 +157,7 @@
#320# "Selecteer de huidige rom directory"
//Messages
#340# "Slechte ROM? Gebruik GoodN64 & kijk voor een geüpdate INI"
#340# "Slechte ROM? Gebruik GoodN64 & kijk voor een geüpdate INI"
/*********************************************************************************
* Options *
@ -405,7 +405,7 @@ Als je dat niet wilt kies dan nee en maak een save state.
Verander de plugins en herstart het spel?"
#2029# "Verander plugins"
#2030# "Emulatie beëindigd"
#2030# "Emulatie beëindigd"
#2031# "Emulatie gestart"
#2032# "Niet mogelijk om de save state te laden"
#2033# "De save state is geladen"

View File

@ -1,11 +1,11 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "English" // LANGUAGE ID
#2 # "Tooie" // Author
#3 # "2" // Version
#4 # "April, 2005" // Date
#3 # "2.2" // Version
#4 # "February, 2015" // Date
//About DLL Dialog
#5 # "Current Language"
@ -49,6 +49,8 @@
#130# "Cheats..."
#131# "GS Button"
#132# "Resume"
#133# "&Soft Reset"
#134# "&Hard Reset"
//Options Menu
#140# "&Options"
@ -92,6 +94,20 @@
#211# "Rom Information"
#212# "Edit Game Settings"
#213# "Edit Cheats"
#214# "GFX Plugin"
//Alternate Name to save Slot
#220# "Default"
#221# "Save Slot - 1"
#222# "Save Slot - 2"
#223# "Save Slot - 3"
#224# "Save Slot - 4"
#225# "Save Slot - 5"
#226# "Save Slot - 6"
#227# "Save Slot - 7"
#228# "Save Slot - 8"
#229# "Save Slot - 9"
#230# "Save Slot - 10"
// Menu Descriptions
#250# "Open a N64 rom image"
@ -177,6 +193,9 @@
#406# "Rom Settings"
#407# "Shell Integration"
#408# "Rom Notes"
#409# "Keyboard Shortcuts"
#410# "Status"
#411# "Recompiler"
//Plugin Dialog
#420# "About"
@ -184,6 +203,9 @@
#422# " Video (graphics) plugin: "
#423# " Audio (sound) plugin: "
#424# " Input (controller) plugin: "
#425# "Use High Level GFX?"
#426# "Use High Level Audio?"
#427# "** Use System Plugin **"
//Directory Dialog
#440# " Plugin Directory:: "
@ -197,12 +219,17 @@
#448# "Select Automatic save Directory"
#449# "Select Instant save Directory"
#450# "Select snap shot Directory"
#451# " Texture Directory: "
#452# "Select texture pack directory"
//Options Dialog
#460# "Pause emulation when window is not active?"
#461# "On loading a ROM go to full screen"
#462# "Hide Advanced Settings"
#463# "Remember selected cheats"
#464# "Disable Screen Saver when running rom"
#465# "Display Frame Rate"
#466# "Change Frame Rate Display Type"
//Rom Browser Tab
#480# "Max # of Roms Remembered (Max 10):"
@ -217,6 +244,7 @@
#489# "<- Remove"
#490# "Up"
#491# "Down"
#492# "Automatically refresh browser"
//Advanced Options
#500# "Most of these changes will not take effect till a new rom is opened or current rom is reset."
@ -228,10 +256,15 @@
#506# "Start Emulation when rom is opened?"
#507# "Always overwrite default settings with ones from ini?"
#508# "Automatically compress instant saves"
#509# "Enable Debugger"
#510# "Cache"
#511# "PI DMA"
#512# "Start Changed"
#513# "Protect Memory"
#514# "TLB Unmapping"
//Rom Options
#520# "CPU core style:"
#521# "Self-modifying code Method:"
#522# "Memory Size:"
#523# "Advanced Block Linking:"
#524# "Default Save type:"
@ -243,6 +276,10 @@
#530# "SP Hack"
#531# "Default"
#532# "RSP Audio Signal"
#533# "Fixed Audio Timing"
#534# "Function lookup method:"
#535# "Custom Self Mod Method"
#536# "Sync using Audio"
//Core Styles
#540# "Interpreter"
@ -256,6 +293,12 @@
#563# "Check Memory & Cache"
#564# "Change Memory & Cache"
#565# "Check Memory Advance"
#566# "Clear Code on Cache"
//Function Lookup memthod
#570# "Physical Lookup Table"
#571# "Virtual Lookup Table"
#572# "Change Memory"
//RDRAM Size
#580# "4 MB"
@ -280,6 +323,37 @@
#661# "Core Note:"
#662# "Plugin Note:"
// Accelerator Selector
#680# "CPU State:"
#681# "Menu Item:"
#682# "Current Keys:"
#683# "Select New Shortcut Key:"
#684# "Currently Assigned To:"
#685# "Assign"
#686# "Remove"
#687# "Reset All"
#688# "Game not playing"
#689# "Game playing"
#690# "Game playing (windowed)"
#691# "Game playing (Fullscreen)"
// Frame Rate Option
#700# "Vertical Interupts per second"
#701# "Display Lists per second"
#702# "Percent of Speed"
// Increase speed
#710# "Increase Game Speed"
#711# "Decrease Game Speed"
// short cut editor
#1100# "Reset Short Cuts"
#1101# "Are you sure you want to reset the short cuts?\n\nThis action cannot be undone."
#1102# "File Menu"
#1103# "System Menu"
#1104# "Options"
#1105# "Save Slots"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
@ -297,6 +371,7 @@
#808# "CRC1:"
#809# "CRC2:"
#810# "CIC Chip:"
#811# "MD5:"
/*********************************************************************************
* Cheats *
@ -339,6 +414,8 @@
//Edit Cheat
#1027# "Edit Cheat"
#1028# "Update Cheat"
#1029# "Cheat has been changed do you want to update?"
#1030# "Cheat Updated"
//Cheat Popup Menu
#1040# "Add New Cheat..."
@ -424,3 +501,16 @@ Change plugins and restart game now?"
#2042# "Delete Cheat"
#2043# "Cheat Name is already in use"
#2044# "You Have reached the Maximum amount of cheats for this rom"
#2045# "Plug-in Initializing"
#2046# "You have not selected a virtual key to assign to the menu item"
#2047# "You need to select a menu item to assign this key to"
#2048# "Short cut has already been assigned to another menu item"
#2049# "No shortcut has been selected to be removed"
#2050# "Rom Loaded. Waiting for emulation to start."
#2051# "project64 beta is for members only.\n\nif you have an account at pj64.net, you should not be seeing this error!!\nplease contact us on the site"
#2052# "Program Error"
#2053# "Failed to find filename in 7z file"
#2054# "Use Low Level Graphics"
#2055# "Low Level Graphics are not for general use!!!\nIt is advisable that you only use this for testing, not for playing any games with\n\nChange to LLE GFX?"
#2056# "Use High Level Audio"
#2057# "High level Audio requires a 3rd party plugin!!!\nIf you do not use a 3rd party plugin that supports high level audio then you will hear no sound.\n\nUse high level audio?"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
@ -8,10 +8,10 @@
#4 # "10.4.2005" // Date
//About DLL Dialog
#5 # "Käytössä oleva kieli"
#6 # "Tekijä"
#5 # "Käytössä oleva kieli"
#6 # "Tekijä"
#7 # "Versio"
#8 # "Päivämäärä"
#8 # "Päivämäärä"
#9 # "Vieraile kotisivulla"
#10 # "Rom tietokanta (.RDB)"
#11 # "Huijaus tiedosto (.CHT)"
@ -27,22 +27,22 @@
#100# "&Tiedosto"
#101# "&Avaa Rom tiedosto"
#102# "T&ietoa Rom tiedostosta..."
#103# "&Käynnistä emulointi"
#103# "&Käynnistä emulointi"
#104# "L&opeta emulointi"
#105# "&Valitse Rom hakemisto..."
#106# "&Päivitä Rom selaimen tiedot"
#107# "Vii&meisimmät Rom tiedostot"
#108# "Viim&eisimmät Rom hakemistot"
#106# "&Päivitä Rom selaimen tiedot"
#107# "Vii&meisimmät Rom tiedostot"
#108# "Viim&eisimmät Rom hakemistot"
#109# "&Lopeta"
//System Menu
#120# "&Järjestelmä"
#120# "&Järjestelmä"
#121# "&Nollaa"
#122# "&Keskeytä"
#122# "&Keskeytä"
#123# "Tee &bitmap kuvatiedosto"
#124# "&Rajoita FPS"
#125# "T&allenna"
#126# "Ta&llenna nimellä..."
#126# "Ta&llenna nimellä..."
#127# "&Palauta"
#128# "La&taa..."
#129# "N&ykyinen tallennus paikka"
@ -52,13 +52,13 @@
//Options Menu
#140# "&Asetukset"
#141# "&Koko näyttö"
#142# "A&ina päällimmäisenä"
#143# "&Näytönohjaimen asetukset..."
#144# "&Äänen asetukset..."
#141# "&Koko näyttö"
#142# "A&ina päällimmäisenä"
#143# "&Näytönohjaimen asetukset..."
#144# "&Äänen asetukset..."
#145# "&Ohjaimen asetukset..."
#146# "&RSP Pluginin asetukset..."
#147# "&Näytä prosessorin käyttö %"
#147# "&Näytä prosessorin käyttö %"
#148# "&Muut asetukset..."
//Debugger Menu
@ -71,7 +71,7 @@
#180# "A&pua"
#181# "Tietoa &INI tiedostoista"
#182# "&Tietoa Project 64 ohjelmasta"
#183# "T&uki keskusteluryhmät"
#183# "T&uki keskusteluryhmät"
#184# "K&otisivu"
//Current Save Slot menu
@ -88,47 +88,47 @@
#200# "Paikka 1&0 (.pj10)"
//Pop up Menu
#210# "Käynnistä tämä peli"
#211# "Tietoa tästä pelistä"
#210# "Käynnistä tämä peli"
#211# "Tietoa tästä pelistä"
#212# "Muokkaa pelin asetuksia"
#213# "Muokkaa pelin huijauskoodeja"
// Menu Descriptions
#250# "Avaa N64 Rom tiedosto"
#251# "Näytä avatun Rom tiedoston tiedot"
#252# "Käynnistä avatun Rom tiedoston emulointi"
#251# "Näytä avatun Rom tiedoston tiedot"
#252# "Käynnistä avatun Rom tiedoston emulointi"
#253# "Lopeta avatun Rom tiedoston emulointi"
#254# "Valitse hakemisto, josta Rom tiedostot haetaan"
#255# "Päivitä Rom Selaimen tiedot"
#256# "Poistu tästä ohjelmasta"
#257# "Käynnistä avattu Rom tiedosto uudelleen (ota muutetut asetukset käyttöön)"
#258# "Keskeytä/Jatka avatun Rom tiedoston emulointia"
#259# "Tee Bitmap tiedosto ruudussa näkyvästä kuvasta (Kuvankaappaus)"
#260# "Rajoita ruudunpäivitys N64:n oikeaan arvoon"
#261# "Tee pikatallennus nykyisestä pelitilanteesta"
#255# "Päivitä Rom Selaimen tiedot"
#256# "Poistu tästä ohjelmasta"
#257# "Käynnistä avattu Rom tiedosto uudelleen (ota muutetut asetukset käyttöön)"
#258# "Keskeytä/Jatka avatun Rom tiedoston emulointia"
#259# "Tee Bitmap tiedosto ruudussa näkyvästä kuvasta (Kuvankaappaus)"
#260# "Rajoita ruudunpäivitys N64:n oikeaan arvoon"
#261# "Tee pikatallennus nykyisestä pelitilanteesta"
#262# "Tallenna nykyinen pelitilanne haluamaasi tiedostoon"
#263# "Lataa pikatallennus"
#264# "Valitse mistä tiedostosta pelitallennus ladataan"
#265# "Aseta päälle/pois päältä Game Shark huijaukset"
#266# "Game Shark Button -ominaisuutta käytetään tiettyjen huijausten kanssa"
#267# "Muuta emulointi-ikkuna koko näytön kokoiseksi"
#268# "Pidä tämä ikkuna aina päällimmäisenä"
#264# "Valitse mistä tiedostosta pelitallennus ladataan"
#265# "Aseta päälle/pois päältä Game Shark huijaukset"
#266# "Game Shark Button -ominaisuutta käytetään tiettyjen huijausten kanssa"
#267# "Muuta emulointi-ikkuna koko näytön kokoiseksi"
#268# "Pidä tämä ikkuna aina päällimmäisenä"
#269# "Muuta grafiikka plugin tiedoston asetuksia"
#270# "Muuta ääni plugin tiedoston asetuksia"
#270# "Muuta ääni plugin tiedoston asetuksia"
#271# "Muuta ohjain plugin tiedoston asetuksia"
#272# "Muuta RSP pluginin asetuksia"
#273# "Näytä emulaattorin prosessorin käyttö jaettuna eri resursseihin"
#274# "Näytä/Muuta tämän ohjelman asetuksia"
#275# "Näytä Project64 ohjelman ohjeet"
#276# "Näytä pelien usein kysytyt kysymykset"
#277# "Tietoa INI tiedostojen tekijöistä"
#278# "Tietoa Project64 ohjelmasta ja sen tekijöistä"
#279# "Avaa tämä Rom tiedosto"
#280# "Valitse tämä hakemisto Rom hakemistoksi"
#281# "Vaihda ohjelma käyttämään tätä kieltä - Choose language"
#282# "Valitse tämä pikatallennus paikka"
#283# "Pelaa valittua peliä"
#284# "Tietoa valitusta pelistä"
#273# "Näytä emulaattorin prosessorin käyttö jaettuna eri resursseihin"
#274# "Näytä/Muuta tämän ohjelman asetuksia"
#275# "Näytä Project64 ohjelman ohjeet"
#276# "Näytä pelien usein kysytyt kysymykset"
#277# "Tietoa INI tiedostojen tekijöistä"
#278# "Tietoa Project64 ohjelmasta ja sen tekijöistä"
#279# "Avaa tämä Rom tiedosto"
#280# "Valitse tämä hakemisto Rom hakemistoksi"
#281# "Vaihda ohjelma käyttämään tätä kieltä - Choose language"
#282# "Valitse tämä pikatallennus paikka"
#283# "Pelaa valittua peliä"
#284# "Tietoa valitusta pelistä"
#285# "Muokkaa valitun pelin asetuksia"
#286# "Muokkaa valitun pelin huijauskoodeja"
@ -137,30 +137,30 @@
*********************************************************************************/
//Rom Browser Fields
#300# "Tiedoston nimi"
#301# "Sisäinen nimi"
#301# "Sisäinen nimi"
#302# "Pelin nimi"
#303# "Tila"
#304# "Tiedoston koko"
#305# "Merkinnät (Ydin)"
#306# "Merkinnät (Oletus plugin tiedostot)"
#307# "Merkinnät (Käyttäjä)"
#305# "Merkinnät (Ydin)"
#306# "Merkinnät (Oletus plugin tiedostot)"
#307# "Merkinnät (Käyttäjä)"
#308# "Pelikasetin tunnus"
#309# "Valmistaja"
#310# "Maa"
#311# "Kehittäjä"
#311# "Kehittäjä"
#312# "CRC1"
#313# "CRC2"
#314# "CIC Siru"
#315# "Julkaisu päivä"
#315# "Julkaisu päivä"
#316# "Tyylilaji"
#317# "Pelaajamäärä"
#318# "Tärinä ominaisuus"
#317# "Pelaajamäärä"
#318# "Tärinä ominaisuus"
//Select Rom
#320# "Valitse käytettävä Rom hakemisto"
#320# "Valitse käytettävä Rom hakemisto"
//Messages
#340# "Viallinen Rom tiedosto? Käytä GoodN64 ohjelmaa/päivitä INI tiedosto"
#340# "Viallinen Rom tiedosto? Käytä GoodN64 ohjelmaa/päivitä INI tiedosto"
/*********************************************************************************
* Options *
@ -173,16 +173,16 @@
#402# "Hakemistot"
#403# "Asetukset"
#404# "Rom valikko"
#405# "Lisäasetukset"
#405# "Lisäasetukset"
#406# "Rom tiedoston asetukset"
#407# "Tiedostopäätteiden yhdistäminen ohjelmaan"
#408# "Rom tiedoston merkinnät"
#407# "Tiedostopäätteiden yhdistäminen ohjelmaan"
#408# "Rom tiedoston merkinnät"
//Plugin Dialog
#420# "Tietoa"
#421# " Reality Signal Processor (RSP) plugin: "
#422# " Video (grafiikka) plugin: "
#423# " Audio (ääni) plugin: "
#423# " Audio (ääni) plugin: "
#424# " Input (ohjain) plugin: "
//Directory Dialog
@ -191,7 +191,7 @@
#442# " N64:n Automaattiset tallennukset: "
#443# " Mihin pikatallennukset tallennetaan: "
#444# " Mihin kuvankaappaukset tallennetaan: "
#445# "Hakemisto, josta Rom tiedostoja on viimeksi löytynyt."
#445# "Hakemisto, josta Rom tiedostoja on viimeksi löytynyt."
#446# "Valitse plugin hakemisto"
#447# "Valitse Rom hakemisto"
#448# "Valitse automaattisten tallennusten hakemisto"
@ -199,23 +199,23 @@
#450# "Valitse kuvankaappausten hakemisto"
//Options Dialog
#460# "Keskeytä emulointi, kun emulaattori ei ole aktiivinen"
#461# "Mene koko näytön tilaan, kun Rom tiedosto on avattu"
#462# "Piilota lisäasetukset"
#460# "Keskeytä emulointi, kun emulaattori ei ole aktiivinen"
#461# "Mene koko näytön tilaan, kun Rom tiedosto on avattu"
#462# "Piilota lisäasetukset"
#463# "Muista valitut huijauskoodit"
//Rom Browser Tab
#480# "Suurin muistettava määärä Rom tiedostoja:"
#480# "Suurin muistettava määärä Rom tiedostoja:"
#481# "kpl / 10"
#482# "Suurin muistettava määrä Rom hakemistoja:"
#482# "Suurin muistettava määrä Rom hakemistoja:"
#483# "kpl / 10"
#484# "Käytä Rom Selainta"
#485# "Käytä hakemiston rekursiointia"
#486# "Lisää nämä selaimeen:"
#487# "Näytä nämä selaimessa:"
#488# "Lisää ->"
#484# "Käytä Rom Selainta"
#485# "Käytä hakemiston rekursiointia"
#486# "Lisää nämä selaimeen:"
#487# "Näytä nämä selaimessa:"
#488# "Lisää ->"
#489# "<- Poista"
#490# "Ylös"
#490# "Ylös"
#491# "Alas"
//Advanced Options
@ -232,12 +232,12 @@
//Rom Options
#520# "CPU ytimen tyyli:"
#521# "Self-modifying code Method:"
#522# "Muistin määrä:"
#522# "Muistin määrä:"
#523# "Advanced Block Linking:"
#524# "Oletus tallennustyyppi:"
#525# "Counter Factor:"
#526# "Suurempi käännös puskuri"
#527# "Käytä TLB:tä"
#526# "Suurempi käännös puskuri"
#527# "Käytä TLB:tä"
#528# "Register caching"
#529# "Delay SI Interrupt"
#530# "SP Hack"
@ -246,15 +246,15 @@
//Core Styles
#540# "Tulkki"
#541# "Uudelleen kääntäjä"
#541# "Uudelleen kääntäjä"
#542# "Synkronoi ytimet"
//Self Mod Methods
#560# "Ei mitään"
#561# "Välimuisti"
#560# "Ei mitään"
#561# "Välimuisti"
#562# "Protect Memory"
#563# "Tarkista muisti & välimuisti"
#564# "Muuta muisti & välimuisti"
#563# "Tarkista muisti & välimuisti"
#564# "Muuta muisti & välimuisti"
#565# "Check Memory Advance"
//RDRAM Size
@ -262,23 +262,23 @@
#581# "8 Mt"
//Advanced Block Linking
#600# "Päällä"
#601# "Pois päältä"
#600# "Päällä"
#601# "Pois päältä"
//Save Type
#620# "Käytä 1. tallennustyyppiä"
#620# "Käytä 1. tallennustyyppiä"
#621# "4kbit EepRom"
#622# "16kbit EepRom"
#623# "32kbytes SRAM"
#624# "Flashram"
//Shell Integration Tab
#640# "Tiedostopäätteiden yhdistäminen ohjelmaan:"
#640# "Tiedostopäätteiden yhdistäminen ohjelmaan:"
//Rom Notes
#660# "Pelin tila:"
#661# "Ytimen merkinnät:"
#662# "Plugin merkinnät:"
#661# "Ytimen merkinnät:"
#662# "Plugin merkinnät:"
/*********************************************************************************
* Rom Information *
@ -304,44 +304,44 @@
//Cheat List
#1000# "Huijauskoodit"
#1001# " Valittavana olevat huijauskoodit: "
#1002# " Merkinnät: "
#1002# " Merkinnät: "
#1003# "Valitse kaikki"
#1004# "Poista käytöstä"
#1004# "Poista käytöstä"
//Add Cheat
#1005# " Lisää huijauskoodi"
#1005# " Lisää huijauskoodi"
#1006# "Nimi:"
#1007# "Koodi:"
#1008# "Lisää"
#1009# "Tyhjennä"
#1010# " Merkinnät huijauskoodille: "
#1011# "Lisää tietokantaan"
#1022# "Lisää koodi"
#1023# "Tyhjennä"
#1008# "Lisää"
#1009# "Tyhjennä"
#1010# " Merkinnät huijauskoodille: "
#1011# "Lisää tietokantaan"
#1022# "Lisää koodi"
#1023# "Tyhjennä"
#1024# "<osoite> <arvo>"
#1025# "Asetukset:"
#1026# "<arvo> <ostikko>"
//Code extension
#1012# "Koodin laajenukset"
#1013# "Valitse käytettävä arvo:"
#1013# "Valitse käytettävä arvo:"
#1014# "OK"
#1015# "Peruuta"
//Digital Value
#1016# "Lukujen määrä"
#1016# "Lukujen määrä"
#1017# "Valitse arvo:"
#1018# "&Arvo"
#1019# "mistä"
#1019# "mistä"
#1020# "mihin"
#1021# "&Merkinnät:"
#1021# "&Merkinnät:"
//Edit Cheat
#1027# " Muokkaa huijauskoodia"
#1028# "Päivitä koodi"
#1028# "Päivitä koodi"
//Cheat Popup Menu
#1040# "Lisää uusi huijauskoodi..."
#1040# "Lisää uusi huijauskoodi..."
#1041# "Muokkaa"
#1042# "Poista"
@ -349,37 +349,37 @@
* Messages *
*********************************************************************************/
#2000# "*** Emulaatio keskeytetty ***"
#2001# "Emulaatio käynnissä"
#2002# "Pysyvässä silmukassa josta ei voi poistua.
#2001# "Emulaatio käynnissä"
#2002# "Pysyvässä silmukassa josta ei voi poistua.
Emulaatio keskeytyy nyt.
Verify Rom and Rom Settings."
#2003# "Failed to allocate Memory"
#2004# "Oletus- tai valittu video plugin puuttuu tai on viallinen.
Tarkista, että sinulle on ainakin yksi toimiva plugin tiedosto plugin hakemistossasi."
Tarkista, että sinulle on ainakin yksi toimiva plugin tiedosto plugin hakemistossasi."
#2005# "Oletus- tai valittu audio plugin puuttuu tai on viallinen.
Tarkista, että sinulla ainakin yksi toimiva plugin tiedosto plugin hakemistossasi."
Tarkista, että sinulla ainakin yksi toimiva plugin tiedosto plugin hakemistossasi."
#2006# "Oletus- tai valittu RSP plugin puuttuu tai on viallinen.
Tarkista, että olet asentanut Project64:n oikein ja että plugin hakemisto on oikea."
Tarkista, että olet asentanut Project64:n oikein ja että plugin hakemisto on oikea."
#2007# "Oletus- tai valittu input plugin puuttuu tai on viallinen.
Tarkista, että sinulle on ainakin yksi toimiva plugin tiedosto plugin hakemistossasi."
#2008# "Plugin tiedoston lataaminen epäonnistui:"
Tarkista, että sinulle on ainakin yksi toimiva plugin tiedosto plugin hakemistossasi."
#2008# "Plugin tiedoston lataaminen epäonnistui:"
#2009# "Failed to load word
Tarkista Rom tiedosto ja sen asetukset."
#2010# "Tallennustiedoston avaus epäonnistui"
#2011# "EepRomin avaus epäonnistui"
#2012# "Flashramin avaus epäonnistui"
#2013# "Mempakin avaus epäonnistui"
#2014# "Zip tiedoston avaus epäonnistui.
#2010# "Tallennustiedoston avaus epäonnistui"
#2011# "EepRomin avaus epäonnistui"
#2012# "Flashramin avaus epäonnistui"
#2013# "Mempakin avaus epäonnistui"
#2014# "Zip tiedoston avaus epäonnistui.
Puuttuva tai viallinen zip tiedosto - tarkista tiedosto ja hakemisto.
Sinun täytyy ehkä käynnistää tämä ohjelma uudestaan."
#2015# "Tiedoston avaus epäonnistui."
Sinun täytyy ehkä käynnistää tämä ohjelma uudestaan."
#2015# "Tiedoston avaus epäonnistui."
#2016# "Virhe avattaessa zip tiedostoa."
#2017# "AVattu tiedosto ei ole Nintendo64 Rom tiedosto tai se on viallinen.
@ -389,38 +389,38 @@ Varmista Rom tiedostosi GoodN64 ohjelmalla."
#2020# "Tuntematon formaatti"
#2021# "Tuntematon muisti toiminto
Emulaatio on pysäytetty"
Emulaatio on pysäytetty"
#2022# "Unhandled R4300i OpCode at"
#2023# "Executing fRom non-mapped space.
Verify Rom and Rom Settings."
#2024# "Tallennettu tiedosto ei täsmää avattua Rom tiedostoa.
#2024# "Tallennettu tiedosto ei täsmää avattua Rom tiedostoa.
Tallennus pitää olla tallennettu & ladattu kahden 100% identtisen Rom tiedoston välillä,
etenkin MAAN ja VERSION pitää olla sama.
Tämän tallenteen lataaminen aiheuttaa todennäköisesti pelin ja/tai emulaattorin kaatumisen.
Tallennus pitää olla tallennettu & ladattu kahden 100% identtisen Rom tiedoston välillä,
etenkin MAAN ja VERSION pitää olla sama.
Tämän tallenteen lataaminen aiheuttaa todennäköisesti pelin ja/tai emulaattorin kaatumisen.
Haluatko varmasti jatkaa lataamista?"
#2025# "Virhe"
#2026# "Tekijänoikeus jaksoa ei löytynyt LUT:stä. Peli ei enää toimi."
#2026# "Tekijänoikeus jaksoa ei löytynyt LUT:stä. Peli ei enää toimi."
#2027# "Kopiosuojaus virhe"
#2028# "Plugin muutosten takia Project64:n on käynnistettävä avattu Rom tiedosto uudestaan.
Jos et halua menettää nykyistä pelitilannetta, vastaa Ei, ja tee tallennus pelitilanteesta ensin.
#2028# "Plugin muutosten takia Project64:n on käynnistettävä avattu Rom tiedosto uudestaan.
Jos et halua menettää nykyistä pelitilannetta, vastaa Ei, ja tee tallennus pelitilanteesta ensin.
Muuta plugini(t) ja käynnistä peli uudestaan nyt?"
#2029# "Muuta Pluginejä"
#2030# "Emulaatio päättynyt"
#2031# "Emulaatio käynnistetty"
#2032# "Tallennetus tilanteen lataus epäonnistui"
Muuta plugini(t) ja käynnistä peli uudestaan nyt?"
#2029# "Muuta Pluginejä"
#2030# "Emulaatio päättynyt"
#2031# "Emulaatio käynnistetty"
#2032# "Tallennetus tilanteen lataus epäonnistui"
#2033# "Tallennettu tilanne ladattu onnistuneesti"
#2034# "Tallenna nykyinen tilanne nimellä.."
#2034# "Tallenna nykyinen tilanne nimellä.."
#2035# "Tallennuspaikka"
#2036# "Byte swapping image"
#2037# "Valitaan N64 tiedosto"
#2038# "Ladattu"
#2039# "Ladataan tiedostoa"
#2040# "Rom tiedostoa ei voi avata, koska plugineja ei ole onnistuneesti saatu käyttöön"
#2041# "Haluatko varmasti poistaa tämän?"
#2040# "Rom tiedostoa ei voi avata, koska plugineja ei ole onnistuneesti saatu käyttöön"
#2041# "Haluatko varmasti poistaa tämän?"
#2042# "Poista huijauskoodi"
#2043# "Huijauskoodin nimi on jo olemassa"
#2044# "Suurin määrä huijauskoodeja on jo valittu tälle pelille"
#2044# "Suurin määrä huijauskoodeja on jo valittu tälle pelille"

View File

@ -1,8 +1,8 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Français" // LANGUAGE ID
#1 # "Français" // LANGUAGE ID
#2 # "Pharmboy (Pharmboy_VII@hotmail.com)" // Author
#3 # "1.5.3" // Version
#4 # "2002-09-11" // Date
@ -13,9 +13,9 @@
#7 # "Version"
#8 # "Date"
#9 # "Site de l'auteur"
#10 # "Base de données des roms (Project64.rdb)"
#10 # "Base de données des roms (Project64.rdb)"
#11 # "Fichier des codes triche (Project64.cht)"
#12 # "Informations étendues des roms (Project64.rdx)"
#12 # "Informations étendues des roms (Project64.rdx)"
//About INI title
#20 # "Project64 utilise actuellement :"
@ -27,42 +27,42 @@
#100# "&Fichier"
#101# "&Ouvrir une rom..."
#102# "&Infos sur la rom..."
#103# "&Démarrer l'émulation"
#104# "&Arrêter l'émulation"
#103# "&Démarrer l'émulation"
#104# "&Arrêter l'émulation"
#105# "&Choix du dossier des roms..."
#106# "&Rafraîchir la liste des roms"
#107# "Ro&ms récentes"
#108# "Do&ssier des roms récentes"
#106# "&Rafraîchir la liste des roms"
#107# "Ro&ms récentes"
#108# "Do&ssier des roms récentes"
#109# "&Quitter"
//System Menu
#120# "S&ystème"
#121# "&Redémarrer la rom"
#120# "S&ystème"
#121# "&Redémarrer la rom"
#122# "&Pause"
#123# "Cap&ture d'écran"
#124# "&Vitesse réelle"
#123# "Cap&ture d'écran"
#124# "&Vitesse réelle"
#125# "&Sauvegarde rapide"
#126# "S&auvegarder sous..."
#127# "&Chargement rapide"
#128# "C&harger..."
#129# "&Numéro de la sauvegarde rapide"
#129# "&Numéro de la sauvegarde rapide"
#130# "C&odes triche..."
#131# "&Bouton triche"
#132# "Cont&inuer"
//Options Menu
#140# "&Options"
#141# "&Plein écran"
#141# "&Plein écran"
#142# "&Toujours au premier plan"
#143# "Configurer le plugin &Vidéo..."
#143# "Configurer le plugin &Vidéo..."
#144# "Configurer le plugin &Audio..."
#145# "Configurer le plugin &Contrôles..."
#145# "Configurer le plugin &Contrôles..."
#146# "Configurer le plugin &RSP..."
#147# "A&fficher la charge du CPU en %"
#148# "Ré&glages..."
#148# "Ré&glages..."
//Debugger Menu
#160# "&Débogueur"
#160# "&Débogueur"
//Language Menu
#175# "&Langue"
@ -73,7 +73,7 @@
#182# "A propos de &Project64"
//Current Save Slot menu
#190# "&Par défaut (.pj)"
#190# "&Par défaut (.pj)"
#191# "&1 (.pj1)"
#192# "&2 (.pj2)"
#193# "&3 (.pj3)"
@ -88,46 +88,46 @@
//Pop up Menu
#210# "&Jouer"
#211# "&Informations sur la rom"
#212# "&Editer les réglages du jeu"
#212# "&Editer les réglages du jeu"
#213# "Editer les codes &triche"
// Menu Descriptions
#250# "Parcourir l'ordinateur pour trouver et charger une rom"
#251# "Afficher des informations sur la rom chargée"
#252# "Démarrer l'émulation de la rom chargée"
#253# "Arrêter l'émulation de la rom chargée et retourner au navigateur"
#251# "Afficher des informations sur la rom chargée"
#252# "Démarrer l'émulation de la rom chargée"
#253# "Arrêter l'émulation de la rom chargée et retourner au navigateur"
#254# "Changer le dossier du navigateur de roms"
#255# "Rafraîchir la fenêtre du navigateur pour refléter les changements du dossier des roms"
#255# "Rafraîchir la fenêtre du navigateur pour refléter les changements du dossier des roms"
#256# "Quitter Project64"
#257# "Redémarrer l'émulation de la rom"
#258# "Mettre en pause/redémarrer l'émulation de la rom"
#259# "Générer un fichier bitmap à partir du plugin graphique"
#260# "Limiter le nombre de 'VI/s' à la vitesse réelle selon la région de la rom"
#261# "Sauvegarder l'état actuel du système avec le numéro choisi"
#262# "Sauvegarder l'état du système avec choix du dossier où sauvegarder"
#263# "Charger l'état du système contenu dans une sauvegarde rapide"
#264# "Choisir une sauvegarde de l'état à charger"
#265# "Choisir ou ajouter des codes triche pour la rom chargée"
#266# "Emuler l'appui sur le bouton du 'GameShark' - à utiliser avec certains codes triche"
#267# "Basculer du mode fenêtre au mode plein écran (appuyer sur Esc pour revenir au mode fenêtre)"
#268# "Garder la fenêtre de Project64 devant les autres fenêtres"
#269# "Configurer le plugin vidéo actuel"
#257# "Redémarrer l'émulation de la rom"
#258# "Mettre en pause/redémarrer l'émulation de la rom"
#259# "Générer un fichier bitmap à partir du plugin graphique"
#260# "Limiter le nombre de 'VI/s' à la vitesse réelle selon la région de la rom"
#261# "Sauvegarder l'état actuel du système avec le numéro choisi"
#262# "Sauvegarder l'état du système avec choix du dossier où sauvegarder"
#263# "Charger l'état du système contenu dans une sauvegarde rapide"
#264# "Choisir une sauvegarde de l'état à charger"
#265# "Choisir ou ajouter des codes triche pour la rom chargée"
#266# "Emuler l'appui sur le bouton du 'GameShark' - à utiliser avec certains codes triche"
#267# "Basculer du mode fenêtre au mode plein écran (appuyer sur Esc pour revenir au mode fenêtre)"
#268# "Garder la fenêtre de Project64 devant les autres fenêtres"
#269# "Configurer le plugin vidéo actuel"
#270# "Configurer le plugin audio actuel"
#271# "Configurer le plugin des contrôles actuel"
#271# "Configurer le plugin des contrôles actuel"
#272# "Configurer le plugin 'Reality Signal Processor'"
#273# "Montrer/masquer l'affichage de la charge actuelle du CPU selon les composants"
#274# "Réglages principaux de Project64 (sélection des plugins, etc...)"
#274# "Réglages principaux de Project64 (sélection des plugins, etc...)"
#275# "Ouvrir le manuel de l'utilisateur pour Project64"
#276# "Ouvrir la Foire Aux Questions sur les jeux"
#277# "A propos des auteurs des fichiers de support"
#278# "A propos du programme et de ces auteurs"
#279# "Charger une rom chargée récemment"
#279# "Charger une rom chargée récemment"
#280# "Basculer le navigateur de roms vers le dossier choisi"
#281# "Changer la langue de l'interface graphique de Project64"
#282# "Changer le numéro de la sauvegarde rapide"
#283# "Charger et démarrer l'émulation du jeu choisi"
#282# "Changer le numéro de la sauvegarde rapide"
#283# "Charger et démarrer l'émulation du jeu choisi"
#284# "Voir les informations sur le jeu choisi"
#285# "Editer les réglages du jeu choisi dans le fichier RDB"
#285# "Editer les réglages du jeu choisi dans le fichier RDB"
#286# "Editer les codes triche du jeu choisi dans le fichier CHT"
/*********************************************************************************
@ -145,7 +145,7 @@
#308# "ID de la cartouche"
#309# "Constructeur"
#310# "Pays"
#311# "Développeur"
#311# "Développeur"
#312# "CRC1"
#313# "CRC2"
#314# "Puce CIC"
@ -163,51 +163,51 @@
* Options *
*********************************************************************************/
//Options Title
#400# "Réglages de Project64"
#400# "Réglages de Project64"
//Tabs
#401# "Plugins"
#402# "Dossiers"
#403# "Options"
#404# "Sélection d'une rom"
#405# "Avancées"
#406# "Réglages de la rom"
#404# "Sélection d'une rom"
#405# "Avancées"
#406# "Réglages de la rom"
#407# "Association"
#408# "Notes sur la rom"
//Plugin Dialog
#420# "A propos"
#421# "Plugin &Reality Signal Processor"
#422# "Plugin &Vidéo"
#422# "Plugin &Vidéo"
#423# "Plugin &Audio"
#424# "Plugin &Contrôles"
#424# "Plugin &Contrôles"
//Directory Dialog
#440# "Dossier des &plugins"
#441# "Dossier des &roms"
#442# "Dossier des sauvegardes de la &N64"
#443# "Dossier des &sauvegardes rapides"
#444# "Dossier des &captures d'écran"
#445# "Retenir le dernier dossier où une rom a été ouverte"
#444# "Dossier des &captures d'écran"
#445# "Retenir le dernier dossier où une rom a été ouverte"
#446# "Choisir un dossier pour les plugins"
#447# "Choisir un dossier pour les roms"
#448# "Choisir un dossier pour les sauvegardes de la N64"
#449# "Choisir un dossier pour les sauvegardes rapides"
#450# "Choisir un dossier pour les captures d'écran"
#450# "Choisir un dossier pour les captures d'écran"
//Options Dialog
#460# "&Mettre en pause quand la fenêtre perd le focus"
#461# "Basculer en &plein écran quand une rom est chargée"
#462# "&Cacher les réglages avancés (recommandé)"
#463# "&Retenir les codes triche sélectionnés"
#460# "&Mettre en pause quand la fenêtre perd le focus"
#461# "Basculer en &plein écran quand une rom est chargée"
#462# "&Cacher les réglages avancés (recommandé)"
#463# "&Retenir les codes triche sélectionnés"
//Rom Browser Tab
#480# "&Nombres de roms à retenir (0-10)"
#480# "&Nombres de roms à retenir (0-10)"
#481# "roms"
#482# "N&ombre de dossiers de roms à retenir (0-10)"
#482# "N&ombre de dossiers de roms à retenir (0-10)"
#483# "dossiers"
#484# "Na&vigateur de roms activé"
#485# "&Récursivité des dossiers"
#484# "Na&vigateur de roms activé"
#485# "&Récursivité des dossiers"
#486# "&Champs disponibles :"
#487# "&Montrer dans cet ordre :"
#488# "&Ajouter ->"
@ -216,20 +216,20 @@
#491# "&Bas"
//Advanced Options
#500# "Ces réglages sont utilisés si le RDB n'a pas spécifié de valeur,
aucun RDB n'existe ou l'option 'Préférer ...' n'est pas cochée"
#501# "&Réglages par défaut du noyau"
#500# "Ces réglages sont utilisés si le RDB n'a pas spécifié de valeur,
aucun RDB n'existe ou l'option 'Préférer ...' n'est pas cochée"
#501# "&Réglages par défaut du noyau"
#502# "&Noyau R4300i :"
#503# "&Méthode du 'Self-mod. Code' :"
#503# "&Méthode du 'Self-mod. Code' :"
#504# "&Taille de la RDRAM :"
#505# "&Advanced Block Linking :"
#506# "&Démarrer l'émulation après le chargement des roms"
#507# "&Préférer les réglages du fichier RDB à ceux par défaut"
#506# "&Démarrer l'émulation après le chargement des roms"
#507# "&Préférer les réglages du fichier RDB à ceux par défaut"
#508# "&Compresser (zip) toutes les sauvegardes rapides"
//Rom Options
#520# "&Noyau R4300i :"
#521# "&Méthode du 'Self-mod. Code' :"
#521# "&Méthode du 'Self-mod. Code' :"
#522# "&Taille de la RDRAM :"
#523# "&Advanced Block Linking :"
#524# "T&ype de sauvegarde :"
@ -239,10 +239,10 @@ aucun RDB n'existe ou l'option 'Pr
#528# "&Register Caching"
#529# "Delay SI &Interrupt"
#530# "SP &Hack"
#531# "* par défaut"
#531# "* par défaut"
//Core Styles
#540# "Interpréteur"
#540# "Interpréteur"
#541# "Recompileur"
#542# "Synchroniser les noyaux"
@ -263,14 +263,14 @@ aucun RDB n'existe ou l'option 'Pr
#601# "Non"
//Save Type
#620# "* détecter automatiquement"
#620# "* détecter automatiquement"
#621# "4kbit EEPROM"
#622# "16kbit EEPROM"
#623# "32ko SRAM"
#624# "128ko FlashRAM"
//Shell Intergration Tab
#640# "Associer à Project64 :"
#640# "Associer à Project64 :"
//Rom Notes
#660# "&Statut :"
@ -303,13 +303,13 @@ aucun RDB n'existe ou l'option 'Pr
#1001# "Codes :"
#1002# "Notes :"
#1003# "Tout cocher"
#1004# "&Tout décocher"
#1004# "&Tout décocher"
//Add Cheat
#1005# "Ajouter un code"
#1006# "Nom :"
#1007# "Code :"
#1008# "Insérer"
#1008# "Insérer"
#1009# "Effacer"
#1010# "Notes (code) : "
#1011# "Ajouter au fichier"
@ -321,21 +321,21 @@ aucun RDB n'existe ou l'option 'Pr
//Code extension
#1012# "Extensions des codes"
#1013# "Choisir une valeur à utiliser pour :"
#1013# "Choisir une valeur à utiliser pour :"
#1014# "OK"
#1015# "Annuler"
//Digital Value
#1016# "Chiffre de quantité"
#1016# "Chiffre de quantité"
#1017# "Choisir une valeur pour :"
#1018# "&Valeur"
#1019# "de"
#1020# "jusqu'à"
#1020# "jusqu'à"
#1021# "&Notes :"
//Edit Cheat
#1027# "Editer le code"
#1028# "Mettre à jour"
#1028# "Mettre à jour"
//Cheat Popup Menu
#1040# "Ajouter un nouveau code..."
@ -347,78 +347,78 @@ aucun RDB n'existe ou l'option 'Pr
*********************************************************************************/
#2000# "Pause"
#2001# "Reprise"
#2002# "Dans une boucle permanente qui ne peut pas être quittée.
L'émulation va maintenant s'arrêter.
#2002# "Dans une boucle permanente qui ne peut pas être quittée.
L'émulation va maintenant s'arrêter.
Verifiez la rom et ces réglages."
#2003# "Echec de l'allocation la mémoire"
#2004# "Le plugin vidéo par défaut ou sélectionné est manquant ou est invalide.
Verifiez la rom et ces réglages."
#2003# "Echec de l'allocation la mémoire"
#2004# "Le plugin vidéo par défaut ou sélectionné est manquant ou est invalide.
Vérifiez que vous avez au moins un fichier plugin compatible dans le dossier des plugins."
#2005# "Le plugin audio par défaut ou sélectionné est manquant ou est invalide.
Vérifiez que vous avez au moins un fichier plugin compatible dans le dossier des plugins."
#2005# "Le plugin audio par défaut ou sélectionné est manquant ou est invalide.
Vérifiez que vous avez au moins un fichier plugin compatible dans le dossier des plugins."
#2006# "Le plugin RSP par défaut ou sélectionné est manquant ou est invalide.
Vérifiez que vous avez au moins un fichier plugin compatible dans le dossier des plugins."
#2006# "Le plugin RSP par défaut ou sélectionné est manquant ou est invalide.
Vérifiez que vous avez installé proprement Project64 avec le dossier des plugins bien défini."
#2007# "Le plugin contrôles par défaut ou sélectionné est manquant ou est invalide.
Vérifiez que vous avez installé proprement Project64 avec le dossier des plugins bien défini."
#2007# "Le plugin contrôles par défaut ou sélectionné est manquant ou est invalide.
Vérifiez que vous avez au moins un fichier plugin compatible dans le dossier des plugins."
Vérifiez que vous avez au moins un fichier plugin compatible dans le dossier des plugins."
#2008# "Echec du chargement du plugin :"
#2009# "Echec du chargement du mot
Vérifiez la rom et ces réglages."
Vérifiez la rom et ces réglages."
#2010# "Echec de l'ouverture de la sauvegarde rapide"
#2011# "Echec de l'ouverture de l'EEPROM"
#2012# "Echec de l'ouverture de la FlashRAM"
#2013# "Echec de l'ouverture du MemPak"
#2014# "La tentative d'ouverture du fichier zip a échoué.
#2014# "La tentative d'ouverture du fichier zip a échoué.
Fichier zip manquant ou corrompu - vérifiez le chemin et le fichier."
#2015# "La tentative d'ouverture du fichier a échoué."
Fichier zip manquant ou corrompu - vérifiez le chemin et le fichier."
#2015# "La tentative d'ouverture du fichier a échoué."
#2016# "Une erreur s'est produite en essayant d'ouvrir le fichier zip."
#2017# "Le fichier chargé ne semble pas être une rom N64 valide.
#2017# "Le fichier chargé ne semble pas être une rom N64 valide.
Vérifiez vos roms avec GoodN64."
Vérifiez vos roms avec GoodN64."
#2018# "Pays inconnu"
#2019# "Puce CIC inconnue"
#2020# "Format de fichier inconnu"
#2021# "Action sur la mémoire inconnue
#2021# "Action sur la mémoire inconnue
Arrêt de l'émulation"
#2022# "OpCode R4300i non pris en charge à"
#2023# "Exécution à partir d'un espace non mappé.
Arrêt de l'émulation"
#2022# "OpCode R4300i non pris en charge à"
#2023# "Exécution à partir d'un espace non mappé.
Vérifiez la rom et ces réglages."
#2024# "La sauvegarde rapide ne semble pas correspondre à la rom actuelle.
Vérifiez la rom et ces réglages."
#2024# "La sauvegarde rapide ne semble pas correspondre à la rom actuelle.
Les sauvegardes rapides doivent être sauvegardées et chargées à partir d'une rom
100% identique, le pays et la version doivent être les mêmes en particulier.
Le chargement de cette sauvegarde rapide pourrait causer un plantage du jeu/émulateur.
Les sauvegardes rapides doivent être sauvegardées et chargées à partir d'une rom
100% identique, le pays et la version doivent être les mêmes en particulier.
Le chargement de cette sauvegarde rapide pourrait causer un plantage du jeu/émulateur.
Êtes-vous sur de vouloir continuer à charger ?"
Êtes-vous sur de vouloir continuer à charger ?"
#2025# "Erreur de l'application/noyau"
#2026# "Séquence du 'copyright' non trouvée dans le 'LUT'. Le jeu ne va plus fonctionner."
#2026# "Séquence du 'copyright' non trouvée dans le 'LUT'. Le jeu ne va plus fonctionner."
#2027# "Echec de la protection contre la copie"
#2028# "Changer un plugin nécessite que Project64 redémarre la rom chargée.
Si vous ne voulez pas perdre votre partie, répondez Non et réalisez une sauvegarde rapide d'abord.
#2028# "Changer un plugin nécessite que Project64 redémarre la rom chargée.
Si vous ne voulez pas perdre votre partie, répondez Non et réalisez une sauvegarde rapide d'abord.
Changer les plugins et redémarrer le jeu maintenant ?"
Changer les plugins et redémarrer le jeu maintenant ?"
#2029# "Changer les plugins"
#2030# "Emulation terminée"
#2031# "Emulation démarrée"
#2030# "Emulation terminée"
#2031# "Emulation démarrée"
#2032# "Impossible de charger la sauvegarde rapide"
#2033# "Chargement effectué :"
#2034# "Sauvegarde effectuée :"
#2035# "Numéro actuel de la sauvegarde rapide"
#2033# "Chargement effectué :"
#2034# "Sauvegarde effectuée :"
#2035# "Numéro actuel de la sauvegarde rapide"
#2036# "'Byteswapping' de la rom"
#2037# "Attente du choix d'une rom"
#2038# "Chargée"
#2038# "Chargée"
#2039# "Chargement de la rom"
#2040# "Vous ne pouvez pas ouvrir une rom si tous les plugins (Vidéo, Audio, Contrôles & RSP) ne sont pas initialisés"
#2041# "Êtes-vous sur de vouloir effacer ce code ?"
#2040# "Vous ne pouvez pas ouvrir une rom si tous les plugins (Vidéo, Audio, Contrôles & RSP) ne sont pas initialisés"
#2041# "Êtes-vous sur de vouloir effacer ce code ?"
#2042# "Effacer le code"
#2043# "Nom du code déjà utilisé, utilisez un autre nom"
#2043# "Nom du code déjà utilisé, utilisez un autre nom"
#2044# "Vous avez atteint le nombre maximum de codes triche pour ce jeu"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
@ -8,14 +8,14 @@
#4 # "04. April 2005" // Date
//About DLL Dialog
#5 # "Übersetzung (Lang\German.pj.Lang)"
#5 # "Übersetzung (Lang\German.pj.Lang)"
#6 # "Autor"
#7 # "Version"
#8 # "Datum"
#9 # "Homepage des Autors"
#10 # "ROM Datenbank (Project64.rdb)"
#11 # "Cheat Code Datei (Project64.cht)"
#12 # "Zusätzliche ROM Info (Project64.rdx)"
#12 # "Zusätzliche ROM Info (Project64.rdx)"
//About INI title
#20 # "Dateien im Gebrauch:"
@ -25,11 +25,11 @@
*********************************************************************************/
//File Menu
#100# "&Datei"
#101# "ROM &öffnen..."
#101# "ROM &öffnen..."
#102# "ROM &Info..."
#103# "Emulation &starten"
#104# "Emulation &beenden"
#105# "ROMverzeichnis &auswählen..."
#105# "ROMverzeichnis &auswählen..."
#106# "Browserliste &erneuern"
#107# "&ROMliste"
#108# "&Verzeichnisse"
@ -37,7 +37,7 @@
//System Menu
#120# "&System"
#121# "&Zurücksetzen"
#121# "&Zurücksetzen"
#122# "&Pause"
#123# "Screensho&t"
#124# "&Geschwindigkeitsbegrenzung"
@ -70,7 +70,7 @@
//Help Menu
#180# "&Hilfe"
#181# "Benutzte &Dateien"
#182# "&Über Project64"
#182# "&Über Project64"
#183# "&Forum"
#184# "&Homepage"
@ -94,43 +94,43 @@
#213# "&Cheats bearbeiten"
// Menu Descriptions
#250# "Spiel öffnen (es kann auch in einer .zip Datei sein)"
#251# "Informationen über das geladene Spiel anzeigen"
#250# "Spiel öffnen (es kann auch in einer .zip Datei sein)"
#251# "Informationen über das geladene Spiel anzeigen"
#252# "Emulation des geladenen Spiels starten"
#253# "Emulation des geladenen Spiels beenden"
#254# "Spiele aus diesem Verzeichnis werden im Browser angezeigt"
#255# "Hier drücken wenn neue Spiele ins Verzeichnis hinzugefügt wurden"
#255# "Hier drücken wenn neue Spiele ins Verzeichnis hinzugefügt wurden"
#256# "Programm beenden"
#257# "Geladenes Spiel zurücksetzen"
#257# "Geladenes Spiel zurücksetzen"
#258# "Geladenes Spiel anhalten/fortsetzen"
#259# "Bild vom Bildschirm in das Screenshotverzeichnis speichern"
#260# "Anzahl der Bilder pro Sekunde auf den korrekten Stand bringen"
#261# "Derzeitigen Spielstand im gewählten Speicherblock speichern"
#262# "Derzeitigen Spielstand in das gewählte Verzeichnis speichern"
#261# "Derzeitigen Spielstand im gewählten Speicherblock speichern"
#262# "Derzeitigen Spielstand in das gewählte Verzeichnis speichern"
#263# "Gespeicherten Spielstand laden"
#264# "Gespeicherten Spielstand auswählen und laden"
#265# "GameShark Cheats für das geladene Spiel auswählen"
#266# "Emuliert das Drücken des GameShark-Knopfes für bestimmte Cheats"
#264# "Gespeicherten Spielstand auswählen und laden"
#265# "GameShark Cheats für das geladene Spiel auswählen"
#266# "Emuliert das Drücken des GameShark-Knopfes für bestimmte Cheats"
#267# "Vom Fenster zu Vollbild umschalten"
#268# "Dieses Fenster über allen anderen anzeigen"
#268# "Dieses Fenster über allen anderen anzeigen"
#269# "Videoplugin konfigurieren"
#270# "Audioplugin konfigurieren"
#271# "Kontrollerplugin konfigurieren"
#272# "RSP Plugin konfigurieren"
#273# "Informationen über die Auslastung des Zentralprozessors anzeigen/verbergen"
#273# "Informationen über die Auslastung des Zentralprozessors anzeigen/verbergen"
#274# "Programmeinstellungen konfigurieren"
#275# "Bedienungsanleitung zum Programm lesen"
#276# "Game FAQ lesen"
#277# "Über die Autoren der Hilfsdateien"
#278# "Über das Programm und die Autoren"
#279# "Dieses ROM öffnen"
#280# "Dieses Verzeichnis als ROMverzeichnis auswählen"
#277# "Über die Autoren der Hilfsdateien"
#278# "Über das Programm und die Autoren"
#279# "Dieses ROM öffnen"
#280# "Dieses Verzeichnis als ROMverzeichnis auswählen"
#281# "Diese Sprache benutzen"
#282# "Speicherblock auswählen"
#283# "Das gewählte Spiel laden"
#284# "Informationen über das gewählte Spiel anzeigen"
#282# "Speicherblock auswählen"
#283# "Das gewählte Spiel laden"
#284# "Informationen über das gewählte Spiel anzeigen"
#285# "Spieleinstellungen in der .rdb Datei konfigurieren"
#286# "Cheats für das gewählte Spiel in der .cht Datei bearbeiten"
#286# "Cheats für das gewählte Spiel in der .cht Datei bearbeiten"
/*********************************************************************************
* Rom Browser *
@ -140,7 +140,7 @@
#301# "Name intern"
#302# "Name laut GoodN64"
#303# "Status"
#304# "ROM Grösse"
#304# "ROM Grösse"
#305# "Vermerke - Kern"
#306# "Vermerke - Plugin"
#307# "Ihre Vermerke in Project64.rdn"
@ -157,7 +157,7 @@
#318# "Force Feedback"
//Select Rom
#320# "ROMverzeichnis für den Browser auswählen"
#320# "ROMverzeichnis für den Browser auswählen"
//Messages
#340# "Schlechtes ROM? Benutzen Sie GoodN64 und suchen Sie nach neuen Hilfsdateien"
@ -173,7 +173,7 @@
#402# "Verzeichnisse"
#403# "Optionen"
#404# "Listen"
#405# "Zusätzlich"
#405# "Zusätzlich"
#406# "ROMeinstellungen"
#407# "Integration"
#408# "Vermerke zum ROM"
@ -188,55 +188,55 @@
//Directory Dialog
#440# "&Pluginverzeichnis:"
#441# "&ROMverzeichnis:"
#442# "&N64 Spielstände im Verzeichnis:"
#443# "&Project64 Spielstände im Verzeichnis:"
#442# "&N64 Spielstände im Verzeichnis:"
#443# "&Project64 Spielstände im Verzeichnis:"
#444# "Screenshots im &Verzeichnis:"
#445# "&Letztes ROMverzeichnis speichern"
#446# "Verzeichnis für Plugins auswählen"
#447# "Verzeichnis für ROMs auswählen"
#448# "Verzeichnis für N64 Spielstände auswählen"
#449# "Verzeichnis für Project64 Spielstände auswählen"
#450# "Verzeichnis für Screenshots auswählen"
#446# "Verzeichnis für Plugins auswählen"
#447# "Verzeichnis für ROMs auswählen"
#448# "Verzeichnis für N64 Spielstände auswählen"
#449# "Verzeichnis für Project64 Spielstände auswählen"
#450# "Verzeichnis für Screenshots auswählen"
//Options Dialog
#460# "&Emulation anhalten wenn Fenster nicht aktiv"
#461# "&Beim Spielstart zu Vollbild umschalten"
#462# "&Zusätzliche Optionen verbergen (empfohlen)"
#463# "&Gewählte Cheats speichern"
#462# "&Zusätzliche Optionen verbergen (empfohlen)"
#463# "&Gewählte Cheats speichern"
//Rom Browser Tab
#480# "&ROMs in der ROMliste (bis 10):"
#481# "Stück"
#481# "Stück"
#482# "&Verzeichnisse in der Liste (bis 10):"
#483# "Stück"
#483# "Stück"
#484# "&Browser eingeschaltet"
#485# "&Mehrere Verzeichnisse"
#486# "&Nicht in der Browserliste:"
#487# "Reihen&folge:"
#488# "&Hin ->"
#489# "<- &Zurück"
#490# "H&öher"
#489# "<- &Zurück"
#490# "H&öher"
#491# "T&iefer"
//Advanced Options
#500# "Diese Einstellungen werden benutzt wenn keine .rdb Datei da ist oder wenn die überschreibeoption unten deaktiviert ist."
#500# "Diese Einstellungen werden benutzt wenn keine .rdb Datei da ist oder wenn die überschreibeoption unten deaktiviert ist."
#501# "&Kern Default"
#502# "&R4300i Kern:"
#503# "&selbstmodifizierender Code:"
#504# "RDRAM &Grösse:"
#504# "RDRAM &Grösse:"
#505# "&Advanced Block Linking:"
#506# "&Emulation gleich nach dem Laden des Spiels starten"
#507# "&Diese Einstellungen mit denen von der .rdb Datei überschreiben"
#508# "Alle Spielstände &zippen"
#507# "&Diese Einstellungen mit denen von der .rdb Datei überschreiben"
#508# "Alle Spielstände &zippen"
//Rom Options
#520# "R4300i &Kern:"
#521# "selbst&modifizierender Code:"
#522# "RDRAM &Grösse:"
#522# "RDRAM &Grösse:"
#523# "&Advanced Block Linking:"
#524# "&Speicherart:"
#525# "&Counter Factor:"
#526# "Grösserer &Puffer"
#526# "Grösserer &Puffer"
#527# "&TLB"
#528# "&Registercaching"
#529# "SI seltener &unterbrechen"
@ -252,10 +252,10 @@
//Self Mod Methods
#560# "nichts unternehmen"
#561# "Cache"
#562# "Speicher beschützen"
#563# "Speicher & Cache prüfen"
#564# "Speicher & Cache ändern"
#565# "Speicher besser prüfen"
#562# "Speicher beschützen"
#563# "Speicher & Cache prüfen"
#564# "Speicher & Cache ändern"
#565# "Speicher besser prüfen"
//RDRAM Size
#580# "4 MB"
@ -290,7 +290,7 @@
#801# "Name intern"
#802# "Dateiname"
#803# "Pfad"
#804# "Grösse"
#804# "Grösse"
#805# "Cartridge ID"
#806# "Hersteller"
#807# "Region"
@ -309,14 +309,14 @@
#1004# "Alle &deaktivieren"
//Add Cheat
#1005# "Cheat hinzufügen"
#1005# "Cheat hinzufügen"
#1006# "Name:"
#1007# "Code:"
#1008# "Einfügen"
#1009# "Löschen"
#1008# "Einfügen"
#1009# "Löschen"
#1010# " Vermerke: "
#1011# "Zur Datenbank hinzufügen"
#1022# "Hinzufügen"
#1011# "Zur Datenbank hinzufügen"
#1022# "Hinzufügen"
#1023# "Neuer Cheat"
#1024# "<Adresse> <Inhalt>"
#1025# "Optionen:"
@ -324,13 +324,13 @@
//Code extension
#1012# "Codeerweiterung"
#1013# "Inhalt für den Gebrauch mit:"
#1013# "Inhalt für den Gebrauch mit:"
#1014# "Ja"
#1015# "Nein"
//Digital Value
#1016# "Grössezahl"
#1017# "Inhalt auswählen für:"
#1016# "Grössezahl"
#1017# "Inhalt auswählen für:"
#1018# "&Inhalt"
#1019# "von"
#1020# "bis"
@ -341,9 +341,9 @@
#1028# "Speichern"
//Cheat Popup Menu
#1040# "Cheat hinzufügen..."
#1040# "Cheat hinzufügen..."
#1041# "Bearbeiten..."
#1042# "Löschen"
#1042# "Löschen"
/*********************************************************************************
* Messages *
@ -353,40 +353,40 @@
#2002# "Programm befindet sich in einem Kreislauf ohne Ausweg.
Emulation wird jetzt beendet.
Tip: ROM und Einstellungen überprüfen."
Tip: ROM und Einstellungen überprüfen."
#2003# "Fehler bei Speichervermittlung"
#2004# "Videoplugin nicht gefunden oder beschädigt.
#2004# "Videoplugin nicht gefunden oder beschädigt.
Tip: Sie sollen in Einstellungen ein passendes Videoplugin auswählen.
Tip: Sie sollen in Einstellungen ein passendes Videoplugin auswählen.
Es soll sich wenigstens ein passendes Plugin im Pluginverzeichnis befinden."
#2005# "Audioplugin nicht gefunden oder beschädigt.
#2005# "Audioplugin nicht gefunden oder beschädigt.
Tip: Sie sollen in Einstellungen ein passendes Audioplugin auswählen.
Tip: Sie sollen in Einstellungen ein passendes Audioplugin auswählen.
Es soll sich wenigstens ein passendes Plugin im Pluginverzeichnis befinden."
#2006# "RSP Plugin nicht gefunden oder beschädigt.
#2006# "RSP Plugin nicht gefunden oder beschädigt.
Tip: Sie sollen in Einstellungen ein passendes RSP Plugin auswählen.
Tip: Sie sollen in Einstellungen ein passendes RSP Plugin auswählen.
Es soll sich wenigstens ein passendes Plugin im Pluginverzeichnis befinden."
#2007# "Kontrollerplugin nicht gefunden oder beschädigt.
#2007# "Kontrollerplugin nicht gefunden oder beschädigt.
Tip: Sie sollen in Einstellungen ein passendes Kontrollerplugin auswählen.
Tip: Sie sollen in Einstellungen ein passendes Kontrollerplugin auswählen.
Es soll sich wenigstens ein passendes Plugin im Pluginverzeichnis befinden."
#2008# "Fehler beim Öffnen von:"
#2009# "Fehler beim Öffnen des Wortes
#2008# "Fehler beim Öffnen von:"
#2009# "Fehler beim Öffnen des Wortes
Tip: ROM und Einstellungen überprüfen."
#2010# "Fehler beim Öffnen des Spielstandes"
#2011# "Fehler beim Öffnen von EEPROM"
#2012# "Fehler beim Öffnen von FlashRAM"
#2013# "Fehler beim Öffnen vom MemPak"
#2014# "Der Versuch eine .zip Datei zu öffnen hat fehlgeschlagen.
Tip: ROM und Einstellungen überprüfen."
#2010# "Fehler beim Öffnen des Spielstandes"
#2011# "Fehler beim Öffnen von EEPROM"
#2012# "Fehler beim Öffnen von FlashRAM"
#2013# "Fehler beim Öffnen vom MemPak"
#2014# "Der Versuch eine .zip Datei zu öffnen hat fehlgeschlagen.
Tip: die Datei kann beschädigt sein - Datei und Pfad überprüfen."
#2015# "Fehler beim Versuch Datei zu öffnen."
#2016# "Fehler beim Versuch .zip Datei zu öffnen."
#2017# "Geladene Datei scheint kein gültiger Nintendo64 ROM zu sein.
Tip: die Datei kann beschädigt sein - Datei und Pfad überprüfen."
#2015# "Fehler beim Versuch Datei zu öffnen."
#2016# "Fehler beim Versuch .zip Datei zu öffnen."
#2017# "Geladene Datei scheint kein gültiger Nintendo64 ROM zu sein.
Tip: ROMs mit GoodN64 überprüfen."
Tip: ROMs mit GoodN64 überprüfen."
#2018# "Unbekannte Region"
#2019# "unbekannter CIC Chip"
#2020# "Unbekannte Datei"
@ -394,48 +394,48 @@ Tip: ROMs mit GoodN64
Emulation gestoppt"
#2022# "Unkontrollierbares R4300i OpCode in"
#2023# "Befehl wurde falsch Ausgeführt.
#2023# "Befehl wurde falsch Ausgeführt.
Tip: ROM und Einstellungen überprüfen."
Tip: ROM und Einstellungen überprüfen."
#2024# "Spielstand scheint zum ROM nicht zu passen.
Spielstände sollen zwischen auf 100% gleichen Spielen gespeichert und geladen werden,
Spielstände sollen zwischen auf 100% gleichen Spielen gespeichert und geladen werden,
dass heisst REGION und VERSION sollen gleich sein.
Das Laden dieses Spielstandes kann zum Absturz des Spiels und/oder Emulators führen.
Das Laden dieses Spielstandes kann zum Absturz des Spiels und/oder Emulators führen.
Wollen Sie wirklich das Laden fortsetzen?"
#2025# "Kern- oder Programmfehler"
#2026# "Copyright im LUT nicht gefunden. Das Spiel ist nicht mehr funktionsfähig."
#2026# "Copyright im LUT nicht gefunden. Das Spiel ist nicht mehr funktionsfähig."
#2027# "Kopierschutzabsage"
#2028# "Pluginwechsel führt zur Zurücksetzung des laufenden Spiels.
#2028# "Pluginwechsel führt zur Zurücksetzung des laufenden Spiels.
Tip: wenn Sie den derzeitigen Spielstand nicht verlieren wollen,
antworten Sie Nein und speichern Sie den Spielstand zuerst.
Plugins wechseln und Spiel zurücksetzen?"
Plugins wechseln und Spiel zurücksetzen?"
#2029# "Pluginwechsel"
#2030# "Emulation beendet"
#2031# "Emulation gestartet"
#2032# "Unmöglich zu laden: Spielstand"
#2032# "Unmöglich zu laden: Spielstand"
#2033# "Geladen: Spielstand"
#2034# "Gespeichert: Spielstand"
#2035# "Derzeitiger Speicherblock"
#2036# "Anpassung des ROMs"
#2037# "ROM wird ausgewählt"
#2037# "ROM wird ausgewählt"
#2038# "Geladen"
#2039# "ROM wird geladen"
#2040# "Sie können ein ROM nicht öffnen bis alle Plugins (Video, Audio, Kontroller und RSP) initialisiert sind.
#2040# "Sie können ein ROM nicht öffnen bis alle Plugins (Video, Audio, Kontroller und RSP) initialisiert sind.
Tip: versuchen Sie in Einstellungen passende Plugins auszuwählen."
#2041# "Sind Sie sicher dass Sie diesen Cheat löschen wollen?"
#2042# "Cheat löschen"
#2043# "Cheatname existiert schon, bitte einen anderen Namen wählen."
#2044# "Sie haben die maximale Anzahl von Cheats für dieses Spiel erreicht."
Tip: versuchen Sie in Einstellungen passende Plugins auszuwählen."
#2041# "Sind Sie sicher dass Sie diesen Cheat löschen wollen?"
#2042# "Cheat löschen"
#2043# "Cheatname existiert schon, bitte einen anderen Namen wählen."
#2044# "Sie haben die maximale Anzahl von Cheats für dieses Spiel erreicht."
//Thanks to hellhound for fixing 266, 274, 2028, 2033 and 2034.
//Thanks to Bartleby for fixing 2024.
//Thanks to DarkThunder for active participation.
//Official support site: http://vdx2004.narod.ru
//Made in Ukraine.
//ÄäÖöÜüß
//ÄäÖöÜüß
//Fin.

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL

View File

@ -1,21 +1,21 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Deutsch mit äöü" // LANGUAGE ID
#1 # "Deutsch mit äöü" // LANGUAGE ID
#2 # "Volodymyr Dudenko" // Author
#3 # "1.5.3.6" // Version
#4 # "17. Oktober 2002" // Date
//About DLL Dialog
#5 # "Übersetzung (Lang\German.pj.Lang)"
#5 # "Übersetzung (Lang\German.pj.Lang)"
#6 # "Autor"
#7 # "Version"
#8 # "Datum"
#9 # "Homepage des Autors"
#10 # "ROM Datenbank (Project64.rdb)"
#11 # "Cheat Code Datei (Project64.cht)"
#12 # "Zusätzliche ROM Info (Project64.rdx)"
#12 # "Zusätzliche ROM Info (Project64.rdx)"
//About INI title
#20 # "Dateien im Gebrauch:"
@ -25,11 +25,11 @@
*********************************************************************************/
//File Menu
#100# "&Datei"
#101# "ROM &öffnen..."
#101# "ROM &öffnen..."
#102# "ROM &Info..."
#103# "Emulation &starten"
#104# "Emulation &beenden"
#105# "ROMverzeichnis &auswählen..."
#105# "ROMverzeichnis &auswählen..."
#106# "Browserliste &erneuern"
#107# "&ROMliste"
#108# "&Verzeichnisse"
@ -37,7 +37,7 @@
//System Menu
#120# "&System"
#121# "&Zurücksetzen"
#121# "&Zurücksetzen"
#122# "&Pause"
#123# "Screensho&t"
#124# "&Geschwindigkeitsbegrenzung"
@ -70,7 +70,7 @@
//Help Menu
#180# "&Hilfe"
#181# "Benutzte &Dateien"
#182# "&Über Project64"
#182# "&Über Project64"
//Current Save Slot menu
#190# "&Programmeigen (.pj)"
@ -92,43 +92,43 @@
#213# "&Cheats bearbeiten"
// Menu Descriptions
#250# "Spiel öffnen (es kann auch in einer .zip Datei sein)"
#251# "Informationen über das geladene Spiel anzeigen"
#250# "Spiel öffnen (es kann auch in einer .zip Datei sein)"
#251# "Informationen über das geladene Spiel anzeigen"
#252# "Emulation des geladenen Spiels starten"
#253# "Emulation des geladenen Spiels beenden"
#254# "Spiele aus diesem Verzeichnis werden im Browser angezeigt"
#255# "Hier drücken wenn neue Spiele ins Verzeichnis hinzugefügt wurden"
#255# "Hier drücken wenn neue Spiele ins Verzeichnis hinzugefügt wurden"
#256# "Programm beenden"
#257# "Geladenes Spiel zurücksetzen"
#257# "Geladenes Spiel zurücksetzen"
#258# "Geladenes Spiel anhalten/fortsetzen"
#259# "Bild vom Bildschirm in das Screenshotverzeichnis speichern"
#260# "Anzahl der Bilder pro Sekunde auf den korrekten Stand bringen"
#261# "Derzeitigen Spielstand auf den gewählten Speicherblock speichern"
#262# "Derzeitigen Spielstand in das gewählte Verzeichnis speichern"
#261# "Derzeitigen Spielstand auf den gewählten Speicherblock speichern"
#262# "Derzeitigen Spielstand in das gewählte Verzeichnis speichern"
#263# "Gespeicherten Spielstand laden"
#264# "Gespeicherten Spielstand auswählen und laden"
#265# "GameShark Cheats für das geladene Spiel auswählen"
#266# "Emuliert das Drücken des GameShark-Knopfes für bestimmte Cheats"
#264# "Gespeicherten Spielstand auswählen und laden"
#265# "GameShark Cheats für das geladene Spiel auswählen"
#266# "Emuliert das Drücken des GameShark-Knopfes für bestimmte Cheats"
#267# "Vom Fenster zu Vollbild umschalten"
#268# "Dieses Fenster über allen anderen anzeigen"
#268# "Dieses Fenster über allen anderen anzeigen"
#269# "Videoplugin konfigurieren"
#270# "Audioplugin konfigurieren"
#271# "Kontrollerplugin konfigurieren"
#272# "RSP Plugin konfigurieren"
#273# "Informationen über die Auslastung des Zentralprozessors anzeigen/verbergen"
#273# "Informationen über die Auslastung des Zentralprozessors anzeigen/verbergen"
#274# "Programmeinstellungen konfigurieren"
#275# "Bedienungsanleitung zum Programm lesen"
#276# "Game FAQ lesen"
#277# "Über die Autoren der Hilfsdateien"
#278# "Über das Programm und die Autoren"
#279# "Dieses ROM öffnen"
#280# "Dieses Verzeichnis als ROMverzeichnis auswählen"
#277# "Über die Autoren der Hilfsdateien"
#278# "Über das Programm und die Autoren"
#279# "Dieses ROM öffnen"
#280# "Dieses Verzeichnis als ROMverzeichnis auswählen"
#281# "Diese Sprache benutzen"
#282# "Speicherblock auswählen"
#283# "Das gewählte Spiel laden"
#284# "Informationen über das gewählte Spiel anzeigen"
#282# "Speicherblock auswählen"
#283# "Das gewählte Spiel laden"
#284# "Informationen über das gewählte Spiel anzeigen"
#285# "Spieleinstellungen in der .rdb Datei konfigurieren"
#286# "Cheats für das gewählte Spiel in der .cht Datei bearbeiten"
#286# "Cheats für das gewählte Spiel in der .cht Datei bearbeiten"
/*********************************************************************************
* Rom Browser *
@ -138,7 +138,7 @@
#301# "Name intern"
#302# "Name laut GoodN64"
#303# "Status"
#304# "ROM Grösse"
#304# "ROM Grösse"
#305# "Vermerke - Kern"
#306# "Vermerke - Plugin"
#307# "Ihre Vermerke in Project64.rdn"
@ -154,7 +154,7 @@
#317# "Anzahl der Spieler"
//Select Rom
#320# "ROMverzeichnis für den Browser auswählen"
#320# "ROMverzeichnis für den Browser auswählen"
//Messages
#340# "Schlechtes ROM? Benutzen Sie GoodN64 und suchen Sie nach neuen Hilfsdateien"
@ -170,7 +170,7 @@
#402# "Verzeichnisse"
#403# "Optionen"
#404# "Listen"
#405# "Zusätzlich"
#405# "Zusätzlich"
#406# "ROMeinstellungen"
#407# "Integration"
#408# "Vermerke zum ROM"
@ -185,55 +185,55 @@
//Directory Dialog
#440# "&Pluginverzeichnis:"
#441# "&ROMverzeichnis:"
#442# "&N64 Spielstände im Verzeichnis:"
#443# "&Project64 Spielstände im Verzeichnis:"
#442# "&N64 Spielstände im Verzeichnis:"
#443# "&Project64 Spielstände im Verzeichnis:"
#444# "Screenshots im &Verzeichnis:"
#445# "&Letztes ROMverzeichnis speichern"
#446# "Verzeichnis für Plugins auswählen"
#447# "Verzeichnis für ROMs auswählen"
#448# "Verzeichnis für N64 Spielstände auswählen"
#449# "Verzeichnis für Project64 Spielstände auswählen"
#450# "Verzeichnis für Screenshots auswählen"
#446# "Verzeichnis für Plugins auswählen"
#447# "Verzeichnis für ROMs auswählen"
#448# "Verzeichnis für N64 Spielstände auswählen"
#449# "Verzeichnis für Project64 Spielstände auswählen"
#450# "Verzeichnis für Screenshots auswählen"
//Options Dialog
#460# "&Emulation anhalten wenn Fenster nicht aktiv"
#461# "&Beim Spielstart zu Vollbild umschalten"
#462# "&Zusätzliche Optionen verbergen (empfohlen)"
#463# "&Gewählte Cheats speichern"
#462# "&Zusätzliche Optionen verbergen (empfohlen)"
#463# "&Gewählte Cheats speichern"
//Rom Browser Tab
#480# "&ROMs in der ROMliste (bis 10):"
#481# "Stück"
#481# "Stück"
#482# "&Verzeichnisse in der Liste (bis 10):"
#483# "Stück"
#483# "Stück"
#484# "&Browser eingeschaltet"
#485# "Re&kursion"
#486# "&Nicht in der Browserliste:"
#487# "Reihen&folge:"
#488# "&Hin ->"
#489# "<- &Zurück"
#490# "H&öher"
#489# "<- &Zurück"
#490# "H&öher"
#491# "T&iefer"
//Advanced Options
#500# "Diese Einstellungen werden benutzt wenn keine .rdb Datei da ist oder wenn die überschreibeoption unten deaktiviert ist."
#500# "Diese Einstellungen werden benutzt wenn keine .rdb Datei da ist oder wenn die überschreibeoption unten deaktiviert ist."
#501# "&Kern Default"
#502# "&R4300i Kern:"
#503# "&Self-mod. Code Methode:"
#504# "RDRAM &Grösse:"
#504# "RDRAM &Grösse:"
#505# "&Advanced Block Linking:"
#506# "&Emulation gleich nach dem Laden des Spiels starten"
#507# "&Diese Einstellungen mit denen von der .rdb Datei überscreiben"
#508# "Alle Spielstände &zippen"
#507# "&Diese Einstellungen mit denen von der .rdb Datei überscreiben"
#508# "Alle Spielstände &zippen"
//Rom Options
#520# "R4300i &Kern:"
#521# "Self-mod. Code &Methode:"
#522# "RDRAM &Grösse:"
#522# "RDRAM &Grösse:"
#523# "&Advanced Block Linking:"
#524# "&Speicherart:"
#525# "&Counter Factor:"
#526# "Grösserer &Puffer"
#526# "Grösserer &Puffer"
#527# "&TLB"
#528# "&Registercaching"
#529# "SI seltener &unterbrechen"
@ -248,10 +248,10 @@
//Self Mod Methods
#560# "Keine"
#561# "Cache"
#562# "Speicher beschützen"
#563# "Speicher & Cache prüfen"
#564# "Speicher & Cache ändern"
#565# "Speicher besser prüfen"
#562# "Speicher beschützen"
#563# "Speicher & Cache prüfen"
#564# "Speicher & Cache ändern"
#565# "Speicher besser prüfen"
//RDRAM Size
#580# "4 MB"
@ -286,7 +286,7 @@
#801# "Name intern"
#802# "Dateiname"
#803# "Pfad"
#804# "Grösse"
#804# "Grösse"
#805# "Cartridge ID"
#806# "Hersteller"
#807# "Region"
@ -305,14 +305,14 @@
#1004# "Alle &deaktivieren"
//Add Cheat
#1005# "Cheat hinzufügen"
#1005# "Cheat hinzufügen"
#1006# "Name:"
#1007# "Code:"
#1008# "Einfügen"
#1009# "Löschen"
#1008# "Einfügen"
#1009# "Löschen"
#1010# " Vermerke: "
#1011# "Zur Datenbank hinzufügen"
#1022# "Hinzufügen"
#1011# "Zur Datenbank hinzufügen"
#1022# "Hinzufügen"
#1023# "Neuer Cheat"
#1024# "<Adresse> <Inhalt>"
#1025# "Optionen:"
@ -320,13 +320,13 @@
//Code extension
#1012# "Codeerweiterung"
#1013# "Inhalt für den Gebrauch mit:"
#1013# "Inhalt für den Gebrauch mit:"
#1014# "Ja"
#1015# "Nein"
//Digital Value
#1016# "Grössezahl"
#1017# "Inhalt auswählen für:"
#1016# "Grössezahl"
#1017# "Inhalt auswählen für:"
#1018# "&Inhalt"
#1019# "von"
#1020# "bis"
@ -337,9 +337,9 @@
#1028# "Speichern"
//Cheat Popup Menu
#1040# "Cheat hinzufügen..."
#1040# "Cheat hinzufügen..."
#1041# "Bearbeiten..."
#1042# "Löschen"
#1042# "Löschen"
/*********************************************************************************
* Messages *
@ -349,40 +349,40 @@
#2002# "Programm befindet sich in einem Kreislauf ohne Ausweg.
Emulation wird jetzt beendet.
Tip: ROM und Einstellungen überprüfen."
Tip: ROM und Einstellungen überprüfen."
#2003# "Fehler bei Speichervermittlung"
#2004# "Videoplugin nicht gefunden oder beschädigt.
#2004# "Videoplugin nicht gefunden oder beschädigt.
Tip: Sie sollen in Einstellungen ein passendes Videoplugin auswählen.
Tip: Sie sollen in Einstellungen ein passendes Videoplugin auswählen.
Es soll sich wenigstens ein passendes Plugin im Pluginverzeichnis befinden."
#2005# "Audioplugin nicht gefunden oder beschädigt.
#2005# "Audioplugin nicht gefunden oder beschädigt.
Tip: Sie sollen in Einstellungen ein passendes Audioplugin auswählen.
Tip: Sie sollen in Einstellungen ein passendes Audioplugin auswählen.
Es soll sich wenigstens ein passendes Plugin im Pluginverzeichnis befinden."
#2006# "RSP Plugin nicht gefunden oder beschädigt.
#2006# "RSP Plugin nicht gefunden oder beschädigt.
Tip: Sie sollen in Einstellungen ein passendes RSP Plugin auswählen.
Tip: Sie sollen in Einstellungen ein passendes RSP Plugin auswählen.
Es soll sich wenigstens ein passendes Plugin im Pluginverzeichnis befinden."
#2007# "Kontrollerplugin nicht gefunden oder beschädigt.
#2007# "Kontrollerplugin nicht gefunden oder beschädigt.
Tip: Sie sollen in Einstellungen ein passendes Kontrollerplugin auswählen.
Tip: Sie sollen in Einstellungen ein passendes Kontrollerplugin auswählen.
Es soll sich wenigstens ein passendes Plugin im Pluginverzeichnis befinden."
#2008# "Fehler beim Öffnen von:"
#2009# "Fehler beim Öffnen des Wortes
#2008# "Fehler beim Öffnen von:"
#2009# "Fehler beim Öffnen des Wortes
Tip: ROM und Einstellungen überprüfen."
#2010# "Fehler beim Öffnen des Spielstandes"
#2011# "Fehler beim Öffnen von EEPROM"
#2012# "Fehler beim Öffnen von FlashRAM"
#2013# "Fehler beim Öffnen vom MemPak"
#2014# "Der Versuch eine .zip Datei zu öffnen hat fehlgeschlagen.
Tip: ROM und Einstellungen überprüfen."
#2010# "Fehler beim Öffnen des Spielstandes"
#2011# "Fehler beim Öffnen von EEPROM"
#2012# "Fehler beim Öffnen von FlashRAM"
#2013# "Fehler beim Öffnen vom MemPak"
#2014# "Der Versuch eine .zip Datei zu öffnen hat fehlgeschlagen.
Tip: die Datei kann beschädigt sein - Datei und Pfad überprüfen."
#2015# "Fehler beim Versuch Datei zu öffnen."
#2016# "Fehler beim Versuch .zip Datei zu öffnen."
#2017# "Geladene Datei scheint kein gültiger Nintendo64 ROM zu sein.
Tip: die Datei kann beschädigt sein - Datei und Pfad überprüfen."
#2015# "Fehler beim Versuch Datei zu öffnen."
#2016# "Fehler beim Versuch .zip Datei zu öffnen."
#2017# "Geladene Datei scheint kein gültiger Nintendo64 ROM zu sein.
Tip: ROMs mit GoodN64 überprüfen."
Tip: ROMs mit GoodN64 überprüfen."
#2018# "Unbekannte Region"
#2019# "unbekannter CIC Chip"
#2020# "Unbekannte Datei"
@ -390,48 +390,48 @@ Tip: ROMs mit GoodN64
Emulation gestoppt"
#2022# "Unkontrollierbares R4300i OpCode in"
#2023# "Befehl wurde falsch Ausgeführt.
#2023# "Befehl wurde falsch Ausgeführt.
Tip: ROM und Einstellungen überprüfen."
Tip: ROM und Einstellungen überprüfen."
#2024# "Spielstand scheint zum ROM nicht zu passen.
Spielstände sollen zwischen auf 100% gleichen Spielen gespeichert und geladen werden,
Spielstände sollen zwischen auf 100% gleichen Spielen gespeichert und geladen werden,
dass heisst REGION und VERSION sollen gleich sein.
Das Laden dieses Spielstandes kann zum Absturz des Spiels und/oder Emulators führen.
Das Laden dieses Spielstandes kann zum Absturz des Spiels und/oder Emulators führen.
Wollen Sie wirklich das Laden fortsetzen?"
#2025# "Kern- oder Programmfehler"
#2026# "Copyright im LUT nicht gefunden. Das Spiel ist nicht mehr funktionsfähig."
#2026# "Copyright im LUT nicht gefunden. Das Spiel ist nicht mehr funktionsfähig."
#2027# "Kopierschutzabsage"
#2028# "Pluginwechsel führt zur Zurücksetzung des laufenden Spiels.
#2028# "Pluginwechsel führt zur Zurücksetzung des laufenden Spiels.
Tip: wenn Sie den derzeitigen Spielstand nicht verlieren wollen,
antworten Sie Nein und speichern Sie den Spielstand zuerst.
Plugins wechseln und Spiel zurücksetzen?"
Plugins wechseln und Spiel zurücksetzen?"
#2029# "Pluginwechsel"
#2030# "Emulation beendet"
#2031# "Emulation gestartet"
#2032# "Unmöglich zu laden: Spielstand"
#2032# "Unmöglich zu laden: Spielstand"
#2033# "Geladen: Spielstand"
#2034# "Gespeichert: Spielstand"
#2035# "Derzeitiger Speicherblock"
#2036# "Anpassung des ROMs"
#2037# "ROM wird ausgewählt"
#2037# "ROM wird ausgewählt"
#2038# "Geladen"
#2039# "ROM wird geladen"
#2040# "Sie können ein ROM nicht öffnen bis alle Plugins (Video, Audio, Kontroller und Rsp) initialisiert sind.
#2040# "Sie können ein ROM nicht öffnen bis alle Plugins (Video, Audio, Kontroller und Rsp) initialisiert sind.
Tip: versuchen Sie in Einstellungen passende Plugins auszuwählen."
#2041# "Sind Sie sicher dass Sie diesen Cheat löschen wollen?"
#2042# "Cheat löschen"
#2043# "Cheatname existiert schon, bitte einen anderen Namen wählen."
#2044# "Sie haben die maximale Anzahl von Cheats für dieses Spiel erreicht."
Tip: versuchen Sie in Einstellungen passende Plugins auszuwählen."
#2041# "Sind Sie sicher dass Sie diesen Cheat löschen wollen?"
#2042# "Cheat löschen"
#2043# "Cheatname existiert schon, bitte einen anderen Namen wählen."
#2044# "Sie haben die maximale Anzahl von Cheats für dieses Spiel erreicht."
//http://dudenko.bigmir.net; http://dudenko.hoha.ru; http://webua.net/dudenko; drd@ukr.net
//Thanks to hellhound for fixing 266, 274, 2028, 2033 and 2034.
//Thanks to Bartleby for fixing 2024.
//Thanks to DarkThunder.
//Made in Germany.
//ÄäÖöÜüß
//ÄäÖöÜüß
//Fin.

View File

@ -1,253 +1,253 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Ελληνική" // LANGUAGE ID
#1 # "Ελληνική" // LANGUAGE ID
#2 # "64ultramaniac" // Author
#3 # "1.5.2.3" // Version
#4 # "22 Αυγούστου, 2002" // Date
#4 # "22 Αυγούστου, 2002" // Date
//About DLL Dialog
#5 # "Τρέχουσα Γλώσσα"
#6 # "Δημιουργός"
#7 # "Έκδοση"
#8 # "Ημερομηνία"
#9 # "Ιστοσελίδα"
#10 # "Βάση Ρυθμίσεων Roms (.RDB)"
#11 # "Αρχείο Cheats (.CHT)"
#12 # "Βάση Πληροφοριών Roms (.RDX)"
#5 # "Τρέχουσα Γλώσσα"
#6 # "Δημιουργός"
#7 # "Έκδοση"
#8 # "Ημερομηνία"
#9 # "Ιστοσελίδα"
#10 # "Βάση Ρυθμίσεων Roms (.RDB)"
#11 # "Αρχείο Cheats (.CHT)"
#12 # "Βάση Πληροφοριών Roms (.RDX)"
//About INI title
#20 # "Τρέχον RDB:"
#20 # "Τρέχον RDB:"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "Α&ρχείο"
#101# "&νοιγμα Rom"
#102# "&Στοιχεία Rom..."
#103# "&Αρχή Εξομοίωσης"
#104# "&Τέλος Εξομοίωσης"
#105# "&Επιλογή Φακέλου Με Roms..."
#106# "Ανανέωση &Περιηγητή Roms"
#107# "Πρόσ&φατα Roms"
#108# "Πρόσφατοι Φάκε&λοι Με Roms"
#109# "Έ&ξοδος"
#100# "Α&ρχείο"
#101# "ʼ&νοιγμα Rom"
#102# "&Στοιχεία Rom..."
#103# "&Αρχή Εξομοίωσης"
#104# "&Τέλος Εξομοίωσης"
#105# "&Επιλογή Φακέλου Με Roms..."
#106# "Ανανέωση &Περιηγητή Roms"
#107# "Πρόσ&φατα Roms"
#108# "Πρόσφατοι Φάκε&λοι Με Roms"
#109# "Έ&ξοδος"
//System Menu
#120# "&Σύστημα"
#121# "&Επανεκκίνηση"
#122# "&Παύση"
#123# "&Δημιουργία Εικόνας"
#124# "Όριο &Ταχύτητας"
#125# "&Αποθήκευση"
#126# "Αποθήκευση &Ως..."
#127# "&Φόρτωση"
#128# "Φ&όρτωση Από..."
#129# "Τρέχουσα &Θέση Αποθήκευσης"
#130# "&Κωδικοί (Cheats)..."
#131# "Κου&μπί GS"
#132# "Επα&ναφορά Δράσης"
#120# "&Σύστημα"
#121# "&Επανεκκίνηση"
#122# "&Παύση"
#123# "&Δημιουργία Εικόνας"
#124# "Όριο &Ταχύτητας"
#125# "&Αποθήκευση"
#126# "Αποθήκευση &Ως..."
#127# "&Φόρτωση"
#128# "Φ&όρτωση Από..."
#129# "Τρέχουσα &Θέση Αποθήκευσης"
#130# "&Κωδικοί (Cheats)..."
#131# "Κου&μπί GS"
#132# "Επα&ναφορά Δράσης"
//Options Menu
#140# "&Επιλογές"
#141# "&Πλήρης Οθόνη"
#142# "Πάντα Σε Π&ρώτο Πλάνο"
#143# "Ρύθμιση &Γραφικών..."
#144# "Ρύθμισ&η Ήχου..."
#145# "Ρύθμιση &Χειριστηρίου..."
#146# "Ρύθμι&ση RSP..."
#147# "Χρήση Πόρ&ων CPU %"
#148# "Γενι&κές Ρυθμίσεις..."
#140# "&Επιλογές"
#141# "&Πλήρης Οθόνη"
#142# "Πάντα Σε Π&ρώτο Πλάνο"
#143# "Ρύθμιση &Γραφικών..."
#144# "Ρύθμισ&η Ήχου..."
#145# "Ρύθμιση &Χειριστηρίου..."
#146# "Ρύθμι&ση RSP..."
#147# "Χρήση Πόρ&ων CPU %"
#148# "Γενι&κές Ρυθμίσεις..."
//Debugger Menu
#160# "&Μηχανή Αναζήτησης Σφαλμάτων"
#160# "&Μηχανή Αναζήτησης Σφαλμάτων"
//Language Menu
#175# "&Γλώσσα"
#175# "&Γλώσσα"
//Help Menu
#180# "&Βοήθεια"
#181# "&Σχετικά Με Αρχεία RDB"
#182# "Σ&χετικά Με Project 64"
#180# "&Βοήθεια"
#181# "&Σχετικά Με Αρχεία RDB"
#182# "Σ&χετικά Με Project 64"
//Current Save Slot menu
#190# "Προεπι&λεγμένη"
#191# "Θέση &1"
#192# "Θέση &2"
#193# "Θέση &3"
#194# "Θέση &4"
#195# "Θέση &5"
#196# "Θέση &6"
#197# "Θέση &7"
#198# "Θέση &8"
#199# "Θέση &9"
#200# "Θέση 1&0"
#190# "Προεπι&λεγμένη"
#191# "Θέση &1"
#192# "Θέση &2"
#193# "Θέση &3"
#194# "Θέση &4"
#195# "Θέση &5"
#196# "Θέση &6"
#197# "Θέση &7"
#198# "Θέση &8"
#199# "Θέση &9"
#200# "Θέση 1&0"
//Pop up Menu
#210# "Παίξιμο Παιχνιδιού"
#211# "Πληροφορίες Για Το Rom"
#212# "Αλλαγή Ρυθμίσεων Παιχνιδιού"
#213# "Εισαγωγή Των Cheats"
#210# "Παίξιμο Παιχνιδιού"
#211# "Πληροφορίες Για Το Rom"
#212# "Αλλαγή Ρυθμίσεων Παιχνιδιού"
#213# "Εισαγωγή Των Cheats"
// Menu Descriptions
#250# "νοιγμα Ενός N64 Rom"
#251# "Εμφάνιση Πληροφοριών Για Το Φορτωμένο Rom"
#252# "Ξεκίνημα Εξομοίωσης Φορτωμένου Rom"
#253# "Σταμάτημα Εξομοίωσης Φορτωμένου Rom"
#254# "Καθορισμός Μιας Θέσης Με Roms"
#255# "Ανανέωση Της Λίστας Των Roms Στον Περιηγητή Roms"
#256# "Κλείσιμο Του Project 64"
#257# "Επαναφόρτωση Του Τρέχοντος Rom (Επαναφόρτωση Τυχόν Αλλαγών Στις Ρυθμίσεις)"
#258# "Παύση/Επαναφορά Εξομοίωσης Του Τρέχοντος Rom"
#259# "Δημιουργία Μιας Bitmap Εικόνας Της Τρέχουσας Οθόνης"
#260# "Οριοθέτηση Των FPS Στη Σωστή Ταχύτητα Του Ν64"
#261# "Αποθήκευση Του Τρέχοντος Σημείου Του Παιχνιδιού"
#262# "Αποθήκευση Του Τρέχοντος Σημείου Του Παιχνιδιού Με Επιλογή Ονόματος Του Αρχείου"
#263# "Φόρτωση Μιας Στιγμιαίας Αποθήκευσης"
#264# "Επιλογή Ενός Αρχείου Αποθήκευσης Για Φόρτωση"
#265# "Ενεργοποίηση/Απενεργοποίηση Των Cheats Του Game Shark"
#266# "Χρησιμοποίηση Του Κουμπιού Του Game Shark Με Ειδικά Cheats"
#267# "Αλλαγή Εξομοίωσης Απο Παράθυρο Σε Πλήρη Οθόνη"
#268# "Το Παράθυρο Της Εξομοίωσης Πάντα Πάνω Από Κάθε λλο Παράθυρο"
#269# "Αλλαγή Των Ρυθμίσεων Του Τρέχοντος Plugin Γραφικών"
#270# "Αλλαγή Των Ρυθμίσεων Του Τρέχοντος Plugin Ήχου"
#271# "Αλλαγή Των Ρυθμίσεων Του Τρέχοντος Plugin Χειριστηρίου"
#272# "Αλλαγή Των Ρυθμίσεων Του Plugin RSP"
#273# "Εμφάνιση Της Χρήσης Των Πόρων Του Επεξεργαστή Όπως Κατανέμεται Στους Επιμέρους Τομείς"
#274# "Εμφάνιση/Αλλάγη Των Ρυθμίσεων Του Project 64"
#275# "Εμφάνιση Οδηγιών Χρήσης Του Project 64"
#276# "Απαντήσεις Σε Προβλήματα Σχετικά Με Κάποια Παιχνίδια"
#277# "Πληροφορίες Σχετικά Με Τους Δημιουργούς Του Project 64"
#278# "Πληροφορίες Για Τους Δημιουργούς Των Αρχείων Υποστήριξης"
#279# "νοιγμα Αυτού Του Rom"
#280# "Επιλογή Αυτού Του Φακέλου Για Θέση Των Roms"
#281# "Επιλογή Αυτής Της Γλώσσας"
#282# "Επιλογή Αυτής Της Θέσης Αποθήκευσης"
#283# "Παίξιμο Επιλεγμένου Παιχνιδιού"
#284# "Πληροφορίες Επιλεγμένου Παιχνιδιού"
#285# "Αλλαγή Ρυθμίσεων Στο RDB Για Το Επιλεγμένο Παιχνίδι"
#286# "Εισαγωγή Cheats Για Το Επιλεγμένο Παιχνίδι"
#250# "ʼνοιγμα Ενός N64 Rom"
#251# "Εμφάνιση Πληροφοριών Για Το Φορτωμένο Rom"
#252# "Ξεκίνημα Εξομοίωσης Φορτωμένου Rom"
#253# "Σταμάτημα Εξομοίωσης Φορτωμένου Rom"
#254# "Καθορισμός Μιας Θέσης Με Roms"
#255# "Ανανέωση Της Λίστας Των Roms Στον Περιηγητή Roms"
#256# "Κλείσιμο Του Project 64"
#257# "Επαναφόρτωση Του Τρέχοντος Rom (Επαναφόρτωση Τυχόν Αλλαγών Στις Ρυθμίσεις)"
#258# "Παύση/Επαναφορά Εξομοίωσης Του Τρέχοντος Rom"
#259# "Δημιουργία Μιας Bitmap Εικόνας Της Τρέχουσας Οθόνης"
#260# "Οριοθέτηση Των FPS Στη Σωστή Ταχύτητα Του Ν64"
#261# "Αποθήκευση Του Τρέχοντος Σημείου Του Παιχνιδιού"
#262# "Αποθήκευση Του Τρέχοντος Σημείου Του Παιχνιδιού Με Επιλογή Ονόματος Του Αρχείου"
#263# "Φόρτωση Μιας Στιγμιαίας Αποθήκευσης"
#264# "Επιλογή Ενός Αρχείου Αποθήκευσης Για Φόρτωση"
#265# "Ενεργοποίηση/Απενεργοποίηση Των Cheats Του Game Shark"
#266# "Χρησιμοποίηση Του Κουμπιού Του Game Shark Με Ειδικά Cheats"
#267# "Αλλαγή Εξομοίωσης Απο Παράθυρο Σε Πλήρη Οθόνη"
#268# "Το Παράθυρο Της Εξομοίωσης Πάντα Πάνω Από Κάθε ʼλλο Παράθυρο"
#269# "Αλλαγή Των Ρυθμίσεων Του Τρέχοντος Plugin Γραφικών"
#270# "Αλλαγή Των Ρυθμίσεων Του Τρέχοντος Plugin Ήχου"
#271# "Αλλαγή Των Ρυθμίσεων Του Τρέχοντος Plugin Χειριστηρίου"
#272# "Αλλαγή Των Ρυθμίσεων Του Plugin RSP"
#273# "Εμφάνιση Της Χρήσης Των Πόρων Του Επεξεργαστή Όπως Κατανέμεται Στους Επιμέρους Τομείς"
#274# "Εμφάνιση/Αλλάγη Των Ρυθμίσεων Του Project 64"
#275# "Εμφάνιση Οδηγιών Χρήσης Του Project 64"
#276# "Απαντήσεις Σε Προβλήματα Σχετικά Με Κάποια Παιχνίδια"
#277# "Πληροφορίες Σχετικά Με Τους Δημιουργούς Του Project 64"
#278# "Πληροφορίες Για Τους Δημιουργούς Των Αρχείων Υποστήριξης"
#279# "ʼνοιγμα Αυτού Του Rom"
#280# "Επιλογή Αυτού Του Φακέλου Για Θέση Των Roms"
#281# "Επιλογή Αυτής Της Γλώσσας"
#282# "Επιλογή Αυτής Της Θέσης Αποθήκευσης"
#283# "Παίξιμο Επιλεγμένου Παιχνιδιού"
#284# "Πληροφορίες Επιλεγμένου Παιχνιδιού"
#285# "Αλλαγή Ρυθμίσεων Στο RDB Για Το Επιλεγμένο Παιχνίδι"
#286# "Εισαγωγή Cheats Για Το Επιλεγμένο Παιχνίδι"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "Όνομα Αρχείου"
#301# "Εσωτερικό Όνομα"
#302# "Καλό Όνομα"
#303# "Κατάσταση"
#304# "Μέγεθος Rom"
#305# "Σημειώσεις (Πυρήνας)"
#306# "Σημειώσεις (Plugins)"
#307# "Σημειώσεις (Χρήστης)"
#308# "ID Κασέτας"
#309# "Κατασκευαστής"
#310# "Περιοχή"
#311# "Δημιουργός"
#300# "Όνομα Αρχείου"
#301# "Εσωτερικό Όνομα"
#302# "Καλό Όνομα"
#303# "Κατάσταση"
#304# "Μέγεθος Rom"
#305# "Σημειώσεις (Πυρήνας)"
#306# "Σημειώσεις (Plugins)"
#307# "Σημειώσεις (Χρήστης)"
#308# "ID Κασέτας"
#309# "Κατασκευαστής"
#310# "Περιοχή"
#311# "Δημιουργός"
#312# "CRC1"
#313# "CRC2"
#314# "CIC Chip"
#315# "Ημερομηνία Διάθεσης"
#316# "Κατηγορία"
#317# "Παίχτες"
#315# "Ημερομηνία Διάθεσης"
#316# "Κατηγορία"
#317# "Παίχτες"
//Select Rom
#320# "Επιλογή Τρέχοντος Φακέλου Ως Φακέλου Με Roms"
#320# "Επιλογή Τρέχοντος Φακέλου Ως Φακέλου Με Roms"
//Messages
#340# "Κακό Rom; Χρησιμοποιήστε Το GoodN64 Και Αναβαθμίστε Το RDB"
#340# "Κακό Rom; Χρησιμοποιήστε Το GoodN64 Και Αναβαθμίστε Το RDB"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Ρυθμίσεις Project64"
#400# "Ρυθμίσεις Project64"
//Tabs
#401# "Plugins"
#402# "Θέσεις"
#403# "Επιλογές"
#404# "Επιλογή Rom"
#405# "Για Προχωρημένους"
#406# "Ρυθμίσεις Rom"
#407# "Συσχετισμός Αρχείων"
#408# "Σημειώσεις Rom"
#402# "Θέσεις"
#403# "Επιλογές"
#404# "Επιλογή Rom"
#405# "Για Προχωρημένους"
#406# "Ρυθμίσεις Rom"
#407# "Συσχετισμός Αρχείων"
#408# "Σημειώσεις Rom"
//Plugin Dialog
#420# "Σχετικά"
#420# "Σχετικά"
#421# "&Reality Signal Processor Plugin"
#422# "Plugin &Γραφικών"
#423# "Plugin Ήχ&ου"
#424# "Plugin &Χειριστηρίου"
#422# "Plugin &Γραφικών"
#423# "Plugin Ήχ&ου"
#424# "Plugin &Χειριστηρίου"
//Directory Dialog
#440# "&Θέση Των Plugins"
#441# "Θ&έση Των Roms"
#442# "Θέση &Αυτόματων Αποθηκεύσεων"
#443# "Θέση &Στιγμιαίων Αποθηκεύσεων"
#444# "Θέση Ει&κόνων"
#445# "&Τελευταία Θέση Ανοίγματος Rom"
#446# "Επιλογή Θέσης Plugins"
#447# "Επιλογή Θέσης Roms"
#448# "Επιλογή Θέσης Αυτόματων Αποθηκεύσεων"
#449# "Επιλογή Θέσης Στιγμιαίων Αποθηκεύσεων"
#450# "Επιλογή Θέσης Εικόνων"
#440# "&Θέση Των Plugins"
#441# "Θ&έση Των Roms"
#442# "Θέση &Αυτόματων Αποθηκεύσεων"
#443# "Θέση &Στιγμιαίων Αποθηκεύσεων"
#444# "Θέση Ει&κόνων"
#445# "&Τελευταία Θέση Ανοίγματος Rom"
#446# "Επιλογή Θέσης Plugins"
#447# "Επιλογή Θέσης Roms"
#448# "Επιλογή Θέσης Αυτόματων Αποθηκεύσεων"
#449# "Επιλογή Θέσης Στιγμιαίων Αποθηκεύσεων"
#450# "Επιλογή Θέσης Εικόνων"
//Options Dialog
#460# "&Παύση Εξομοίωσης Σε Ανενεργό Παράθυρο"
#461# "Πλήρης &Οθόνη Με Φόρτωμα Rom"
#462# "&Απόκρυψη Προχωρημένων Ρυθμίσεων"
#463# "&Κράτηση Των Cheats Που Επιλέχθηκαν"
#460# "&Παύση Εξομοίωσης Σε Ανενεργό Παράθυρο"
#461# "Πλήρης &Οθόνη Με Φόρτωμα Rom"
#462# "&Απόκρυψη Προχωρημένων Ρυθμίσεων"
#463# "&Κράτηση Των Cheats Που Επιλέχθηκαν"
//Rom Browser Tab
#480# "Α&ριθμός Πρόσφατων Roms (Μέγ. 10):"
#480# "Α&ριθμός Πρόσφατων Roms (Μέγ. 10):"
#481# "Roms"
#482# "Αριθμός Πρόσφατων &Φακέλων (Μεγ. 10):"
#483# "Φάκ."
#484# "&Περιηγητής Roms"
#485# "&Χρήση Υποφακέλων"
#486# "&Διαθέσιμα Πεδία:"
#487# "&Εμφάνιση Με Αυτή Τη Σειρά:"
#488# "Πρόσ&θ. ->"
#489# "<- &Αφαίρ."
#490# "Πά&νω"
#491# "&Κάτω"
#482# "Αριθμός Πρόσφατων &Φακέλων (Μεγ. 10):"
#483# "Φάκ."
#484# "&Περιηγητής Roms"
#485# "&Χρήση Υποφακέλων"
#486# "&Διαθέσιμα Πεδία:"
#487# "&Εμφάνιση Με Αυτή Τη Σειρά:"
#488# "Πρόσ&θ. ->"
#489# "<- &Αφαίρ."
#490# "Πά&νω"
#491# "&Κάτω"
//Advanced Options
#500# "Αυτές Οι Ρυθμίσεις Θα Χρησιμοποιηθούν Όταν Δεν Υπάρχει,
Ανάλογη Προκαθορισμένη Ρύθμιση Στο RDB"
#501# "Προεπιλογές &Πυρήνα"
#502# "&Είδος Πυρήνα R4300i:"
#503# "Self-Mod Code &Μέθοδος:"
#504# "Μέ&γεθος RDRAM Μνήμης:"
#500# "Αυτές Οι Ρυθμίσεις Θα Χρησιμοποιηθούν Όταν Δεν Υπάρχει,
Ανάλογη Προκαθορισμένη Ρύθμιση Στο RDB"
#501# "Προεπιλογές &Πυρήνα"
#502# "&Είδος Πυρήνα R4300i:"
#503# "Self-Mod Code &Μέθοδος:"
#504# "Μέ&γεθος RDRAM Μνήμης:"
#505# "&Advanced Block Linking:"
#506# "Α&ρχή Εξομοίωσης Με νοιγμα Rom"
#507# "Πά&ντα Προτεραιότητα Στις Ρυθμίσεις Του RDB"
#508# "Αυτόματη &Συμπίεση Στιγμιαίων Αποθηκεύσεων"
#506# "Α&ρχή Εξομοίωσης Με ʼνοιγμα Rom"
#507# "Πά&ντα Προτεραιότητα Στις Ρυθμίσεις Του RDB"
#508# "Αυτόματη &Συμπίεση Στιγμιαίων Αποθηκεύσεων"
//Rom Options
#520# "Είδος &Πυρήνα R4300i:"
#521# "Self-Modifying Code &Μέθοδος:"
#522# "Μέ&γεθος RDRAM Μνήμης:"
#520# "Είδος &Πυρήνα R4300i:"
#521# "Self-Modifying Code &Μέθοδος:"
#522# "Μέ&γεθος RDRAM Μνήμης:"
#523# "&Advanced Block Linking:"
#524# "&Τύπος Αποθήκευσης:"
#524# "&Τύπος Αποθήκευσης:"
#525# "&Counter Factor:"
#526# "&Larger Compile Buffer"
#527# "&Χρησιμοποίηση TLB"
#527# "&Χρησιμοποίηση TLB"
#528# "&Register Caching"
#529# "Καθυστέρηση SI &Διακοπής"
#529# "Καθυστέρηση SI &Διακοπής"
#530# "SP &Hack"
#531# "Χρήση Προεπιλογών"
#531# "Χρήση Προεπιλογών"
//Core Styles
#540# "Interpreter"
#541# "Recompiler"
#542# "Συγχρονισμός Πυρήνων"
#542# "Συγχρονισμός Πυρήνων"
//Self Mod Methods
#560# "Καμία"
#560# "Καμία"
#561# "Cache"
#562# "Protect Memory"
#563# "Check Memory & Cache"
@ -259,38 +259,38 @@
#581# "8 MB"
//Advanced Block Linking
#600# "Ανοιχτό"
#601# "Κλειστό"
#600# "Ανοιχτό"
#601# "Κλειστό"
//Save Type
#620# "Αυτόματος"
#620# "Αυτόματος"
#621# "4kbit Eeprom"
#622# "16kbit Eeprom"
#623# "32kbytes SRAM"
#624# "128kbyte Flashram"
//Shell Integration Tab
#640# "Συσχετισμός Αρχείων Επέκτασης:"
#640# "Συσχετισμός Αρχείων Επέκτασης:"
//Rom Notes
#660# "&Κατάσταση Rom:"
#661# "&Σημειώσεις Πυρήνα:"
#662# "Σ&ημειώσεις Plugin:"
#660# "&Κατάσταση Rom:"
#661# "&Σημειώσεις Πυρήνα:"
#662# "Σ&ημειώσεις Plugin:"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "Στοιχεία Rom"
#800# "Στοιχεία Rom"
//Rom Info Text
#801# "Εσωτερικό Όνομα:"
#802# "Όνομα Αρχείου:"
#803# "Τοποθεσία:"
#804# "Μέγεθος Rom:"
#805# "ID Κασέτας:"
#806# "Κατασκευαστής:"
#807# "Περιοχή:"
#801# "Εσωτερικό Όνομα:"
#802# "Όνομα Αρχείου:"
#803# "Τοποθεσία:"
#804# "Μέγεθος Rom:"
#805# "ID Κασέτας:"
#806# "Κατασκευαστής:"
#807# "Περιοχή:"
#808# "CRC1:"
#809# "CRC2:"
#810# "CIC Chip:"
@ -301,126 +301,126 @@
//Cheat List
#1000# "Cheats"
#1001# "Cheats:"
#1002# "Σημειώσεις:"
#1003# "Επιλογή Όλων"
#1004# "Αποεπιλογή Όλων"
#1002# "Σημειώσεις:"
#1003# "Επιλογή Όλων"
#1004# "Αποεπιλογή Όλων"
//Add Cheat
#1005# "Πρόσθεση Cheat"
#1006# "Όνομα:"
#1007# "Κωδικός:"
#1008# "Εισαγωγή"
#1009# "Καθαρισμός"
#1010# "Σημειώσεις Cheat:"
#1011# "Πρόσθεση Στο DB"
#1022# "Πρόσθεση Cheat"
#1023# "Νέο Cheat"
#1024# "<Διεύθυνση> <Τιμή>"
#1025# "Επιλογές:"
#1026# "<Τιμή> <Επιγραφή>"
#1005# "Πρόσθεση Cheat"
#1006# "Όνομα:"
#1007# "Κωδικός:"
#1008# "Εισαγωγή"
#1009# "Καθαρισμός"
#1010# "Σημειώσεις Cheat:"
#1011# "Πρόσθεση Στο DB"
#1022# "Πρόσθεση Cheat"
#1023# "Νέο Cheat"
#1024# "<Διεύθυνση> <Τιμή>"
#1025# "Επιλογές:"
#1026# "<Τιμή> <Επιγραφή>"
//Code extension
#1012# "Επεκτάσεις Κωδικών"
#1013# "Επιλογή Τιμής Για Χρησιμοποίηση Με:"
#1012# "Επεκτάσεις Κωδικών"
#1013# "Επιλογή Τιμής Για Χρησιμοποίηση Με:"
#1014# "OK"
#1015# "κυρο"
#1015# "ʼκυρο"
//Digital Value
#1016# "Ψηφίο Ποσότητας"
#1017# "Επιλογή Τιμής Για:"
#1018# "&Τιμή"
#1019# "Από"
#1020# "Προς"
#1021# "&Σημειώσεις:"
#1016# "Ψηφίο Ποσότητας"
#1017# "Επιλογή Τιμής Για:"
#1018# "&Τιμή"
#1019# "Από"
#1020# "Προς"
#1021# "&Σημειώσεις:"
//Edit Cheat
#1027# "Σύνταξη Cheat"
#1028# "Αναβάθμιση Cheat"
#1027# "Σύνταξη Cheat"
#1028# "Αναβάθμιση Cheat"
//Cheat Popup Menu
#1040# "Πρόσθεση Νέου Cheat..."
#1041# "Σύνταξη..."
#1042# "Διαγραφή"
#1040# "Πρόσθεση Νέου Cheat..."
#1041# "Σύνταξη..."
#1042# "Διαγραφή"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "Παύση"
#2001# "Επαναφορά"
#2002# "Μόνιμο Κόλλημα Χωρίς Δυνατότητα Εξόδου.
Η Εξομοίωση Θα Σταματήσει.
#2000# "Παύση"
#2001# "Επαναφορά"
#2002# "Μόνιμο Κόλλημα Χωρίς Δυνατότητα Εξόδου.
Η Εξομοίωση Θα Σταματήσει.
Βεβαιωθείτε Ότι Το Rom Είναι Καλό Και Ελέγξτε Τις Ρυθμίσεις Του."
#2003# "Απέτυχε Να Κατανείμει Την Μνήμη"
#2004# "Το Επιλεγμένο Plugin Γραφικών Λείπει Ή Είναι κυρο.
Βεβαιωθείτε Ότι Το Rom Είναι Καλό Και Ελέγξτε Τις Ρυθμίσεις Του."
#2003# "Απέτυχε Να Κατανείμει Την Μνήμη"
#2004# "Το Επιλεγμένο Plugin Γραφικών Λείπει Ή Είναι ʼκυρο.
Πρέπει Να Πάτε Στις Γενικές Ρυθμίσεις Και Να Επιλέξετε Ένα Νέο.
Βεβαιωθείτε Ότι Έχετε Κάποιο Συμβατό Plugin Στο Φάκελο Με Τα Plugins."
#2005# "Το Επιλεγμένο Plugin Ήχου Λείπει Ή Είναι κυρο.
Πρέπει Να Πάτε Στις Γενικές Ρυθμίσεις Και Να Επιλέξετε Ένα Νέο.
Βεβαιωθείτε Ότι Έχετε Κάποιο Συμβατό Plugin Στο Φάκελο Με Τα Plugins."
#2005# "Το Επιλεγμένο Plugin Ήχου Λείπει Ή Είναι ʼκυρο.
Πρέπει Να Πάτε Στις Γενικές Ρυθμίσεις Και Να Επιλέξετε Ένα Νέο.
Βεβαιωθείτε Ότι Έχετε Κάποιο Συμβατό Plugin Στο Φάκελο Με Τα Plugins."
#2006# "Το Επιλεγμένο RSP Plugin Λείπει Ή Είναι κυρο.
Πρέπει Να Πάτε Στις Γενικές Ρυθμίσεις Και Να Επιλέξετε Ένα Νέο.
Βεβαιωθείτε Ότι Έχετε Κάποιο Συμβατό Plugin Στο Φάκελο Με Τα Plugins."
#2006# "Το Επιλεγμένο RSP Plugin Λείπει Ή Είναι ʼκυρο.
Πρέπει Να Πάτε Στις Γενικές Ρυθμίσεις Και Να Επιλέξετε Ένα Νέο.
Βεβαιωθείτε Ότι Έχετε Κάποιο Συμβατό Plugin Στο Φάκελο Με Τα Plugins."
#2007# "Το Επιλεγμένο Plugin Χειριστηρίου Λείπει Ή Είναι κυρο.
Πρέπει Να Πάτε Στις Γενικές Ρυθμίσεις Και Να Επιλέξετε Ένα Νέο.
Βεβαιωθείτε Ότι Έχετε Κάποιο Συμβατό Plugin Στο Φάκελο Με Τα Plugins."
#2007# "Το Επιλεγμένο Plugin Χειριστηρίου Λείπει Ή Είναι ʼκυρο.
Πρέπει Να Πάτε Στις Γενικές Ρυθμίσεις Και Να Επιλέξετε Ένα Νέο.
Βεβαιωθείτε Ότι Έχετε Κάποιο Συμβατό Plugin Στο Φάκελο Με Τα Plugins."
#2008# "Απέτυχε Να Φορτώσει Το Plugin:"
#2009# "Απέτυχε Να Φορτώσει Τη Τιμή
Πρέπει Να Πάτε Στις Γενικές Ρυθμίσεις Και Να Επιλέξετε Ένα Νέο.
Βεβαιωθείτε Ότι Έχετε Κάποιο Συμβατό Plugin Στο Φάκελο Με Τα Plugins."
#2008# "Απέτυχε Να Φορτώσει Το Plugin:"
#2009# "Απέτυχε Να Φορτώσει Τη Τιμή
Βεβαιωθείτε Ότι Το Rom Είναι Καλό Και Ελέγξτε Τις Ρυθμίσεις Του."
#2010# "Απέτυχε Να Ανοίξει Το Αποθηκευμένο Αρχείο"
#2011# "Απέτυχε Να Ανοίξει Την Eeprom"
#2012# "Απέτυχε Να Ανοίξει Τη Flashram"
#2013# "Απέτυχε Να Ανοίξει Το MemPak"
#2014# "Απέτυχε Να Ανοίξει Το Συμπιεσμένο Αρχείο.
Βεβαιωθείτε Ότι Το Rom Είναι Καλό Και Ελέγξτε Τις Ρυθμίσεις Του."
#2010# "Απέτυχε Να Ανοίξει Το Αποθηκευμένο Αρχείο"
#2011# "Απέτυχε Να Ανοίξει Την Eeprom"
#2012# "Απέτυχε Να Ανοίξει Τη Flashram"
#2013# "Απέτυχε Να Ανοίξει Το MemPak"
#2014# "Απέτυχε Να Ανοίξει Το Συμπιεσμένο Αρχείο.
Πιθανώς Να Είναι Κατεστραμμένο - Ελέγξτε Επίσης Τη Διαδρομή Του."
#2015# "Απέτυχε Να Ανοίξει Το Αρχείο."
#2016# "Προέκυψε Σφάλμα Στη Προσπάθεια Ανοίγματος Του Συμπιεσμένου Αρχείου."
#2017# "Το Αρχείο Αυτό Δεν Είναι Ένα Έγκυρο Nintendo64 Rom.
Πιθανώς Να Είναι Κατεστραμμένο - Ελέγξτε Επίσης Τη Διαδρομή Του."
#2015# "Απέτυχε Να Ανοίξει Το Αρχείο."
#2016# "Προέκυψε Σφάλμα Στη Προσπάθεια Ανοίγματος Του Συμπιεσμένου Αρχείου."
#2017# "Το Αρχείο Αυτό Δεν Είναι Ένα Έγκυρο Nintendo64 Rom.
Ελέγξτε Τα Roms Σας Με Το GoodN64."
#2018# "γνωστη Περιοχή"
#2019# "γνωστο Cic Chip"
#2020# "γνωστος Τύπος Αρχείου"
#2021# "γνωστη Ενέργεια Μνήμης.
Ελέγξτε Τα Roms Σας Με Το GoodN64."
#2018# "ʼγνωστη Περιοχή"
#2019# "ʼγνωστο Cic Chip"
#2020# "ʼγνωστος Τύπος Αρχείου"
#2021# "ʼγνωστη Ενέργεια Μνήμης.
Η Εξομοίωση Θα Σταματήσει"
#2022# "Μη Αναγνωρίσιμος R4300i OpCode Σε"
#2023# "Εκτέλεση Από Μη Καθορισμένη Περιοχή.
Η Εξομοίωση Θα Σταματήσει"
#2022# "Μη Αναγνωρίσιμος R4300i OpCode Σε"
#2023# "Εκτέλεση Από Μη Καθορισμένη Περιοχή.
Βεβαιωθείτε Ότι Το Rom Είναι Καλό Και Ελέγξτε Τις Ρυθμίσεις Του."
#2024# "Η Αποθήκευση Αυτή Δεν Ταιριάζει Στο Τρέχον Rom.
Βεβαιωθείτε Ότι Το Rom Είναι Καλό Και Ελέγξτε Τις Ρυθμίσεις Του."
#2024# "Η Αποθήκευση Αυτή Δεν Ταιριάζει Στο Τρέχον Rom.
Οι Στοιγμιαίες Αποθηκεύσεις Πρέπει Να Φορτώνονται Ανάμεσα Σε 100% Όμοια Roms,
Η Περιοχή Και Η Έκδοση Πρέπει Να Είναι Ίδια.
Αν Φορτώσετε Αυτή Την Αποθήκευση Με Αυτό Το Rom Θα Υπάρξει Δυσλειτουργία Στο Παιχνίδι.
Οι Στοιγμιαίες Αποθηκεύσεις Πρέπει Να Φορτώνονται Ανάμεσα Σε 100% Όμοια Roms,
Η Περιοχή Και Η Έκδοση Πρέπει Να Είναι Ίδια.
Αν Φορτώσετε Αυτή Την Αποθήκευση Με Αυτό Το Rom Θα Υπάρξει Δυσλειτουργία Στο Παιχνίδι.
Είστε Σίγουροι Ότι Θέλετε Να Συνεχιστεί Η Φόρτωση;"
#2025# "Σφάλμα Εφαρμογής/Πυρήνα"
#2026# "Η Σειρά Copyright Δεν Βρέθηκε Στο LUT. Το Παιχνίδι Δεν Θα Λειτουργήσει Πλέον."
#2027# "Αποτυχία Λόγω Προστασίας Παιχνιδιού"
#2028# "Η Αλλαγή Του Plugin Απαιτεί Την Επανεκκίνηση Του Rom.
Για Να Μη Χάσετε Τη Θέση Σας Στο Παιχνίδι Απαντήστε Όχι Και Αποθηκεύστε Το Πρώτα.
Είστε Σίγουροι Ότι Θέλετε Να Συνεχιστεί Η Φόρτωση;"
#2025# "Σφάλμα Εφαρμογής/Πυρήνα"
#2026# "Η Σειρά Copyright Δεν Βρέθηκε Στο LUT. Το Παιχνίδι Δεν Θα Λειτουργήσει Πλέον."
#2027# "Αποτυχία Λόγω Προστασίας Παιχνιδιού"
#2028# "Η Αλλαγή Του Plugin Απαιτεί Την Επανεκκίνηση Του Rom.
Για Να Μη Χάσετε Τη Θέση Σας Στο Παιχνίδι Απαντήστε Όχι Και Αποθηκεύστε Το Πρώτα.
Αλλαγή Plugin Και Επανεκκίνηση Τώρα;"
#2029# "Αλλαγή Plugin"
#2030# "Η Εξομοίωση Τερματίστηκε"
#2031# "Η Εξομοίωση Ξεκίνησε"
#2032# "Δεν Μπόρεσε Να Φορτωθεί Η Θέση Αποθήκευσης"
#2033# "Φορτώθηκε Η Θέση Αποθήκευσης"
#2034# "Αποθήκευση Θέσης Σε"
#2035# "Τρέχουσα Θέση Αποθήκευσης"
#2036# "Ανταλλαγή Byte Του Rom"
#2037# "Επιλογή Ενός N64 Rom"
#2038# "Φορτώθηκε"
#2039# "Φόρτωση Rom"
#2040# "Δεν Μπόρεσε Να Φορτωθεί Το Rom Επειδή Κάποιο Plugin Δεν Εισάχθηκε Σωστά"
#2041# "Είστε Σίγουροι Ότι Θέλετε Να Διαγραφεί Το Cheat;"
#2042# "Διαγραφή Cheat"
#2043# "Αυτό Το Όνομα Του Cheat Βρίσκεται Ήδη Σε Χρήση"
#2044# "Φτάσατε Το Ανώτατο Όριο Των Cheats Για Αυτό Το Rom"
Αλλαγή Plugin Και Επανεκκίνηση Τώρα;"
#2029# "Αλλαγή Plugin"
#2030# "Η Εξομοίωση Τερματίστηκε"
#2031# "Η Εξομοίωση Ξεκίνησε"
#2032# "Δεν Μπόρεσε Να Φορτωθεί Η Θέση Αποθήκευσης"
#2033# "Φορτώθηκε Η Θέση Αποθήκευσης"
#2034# "Αποθήκευση Θέσης Σε"
#2035# "Τρέχουσα Θέση Αποθήκευσης"
#2036# "Ανταλλαγή Byte Του Rom"
#2037# "Επιλογή Ενός N64 Rom"
#2038# "Φορτώθηκε"
#2039# "Φόρτωση Rom"
#2040# "Δεν Μπόρεσε Να Φορτωθεί Το Rom Επειδή Κάποιο Plugin Δεν Εισάχθηκε Σωστά"
#2041# "Είστε Σίγουροι Ότι Θέλετε Να Διαγραφεί Το Cheat;"
#2042# "Διαγραφή Cheat"
#2043# "Αυτό Το Όνομα Του Cheat Βρίσκεται Ήδη Σε Χρήση"
#2044# "Φτάσατε Το Ανώτατο Όριο Των Cheats Για Αυτό Το Rom"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
@ -8,70 +8,70 @@
#4 # "04.02.2005" // Date
//About DLL Dialog
#5 # "Kiválasztott nyelv"
#6 # "Készítő"
#7 # "Verzió"
#8 # "Dátum"
#9 # "Honlap meglátogatása"
#10 # "ROM adatbázis (.RDB)"
#11 # "Csalás kódok fájl (.CHT)"
#12 # "Kibővített ROM információ (.RDX)"
#5 # "Kiválasztott nyelv"
#6 # "Készítõ"
#7 # "Verzió"
#8 # "Dátum"
#9 # "Honlap meglátogatása"
#10 # "ROM adatbázis (.RDB)"
#11 # "Csalás kódok fájl (.CHT)"
#12 # "Kibõvített ROM információ (.RDX)"
//About INI title
#20 # "Az INI fájlokról"
#20 # "Az INI fájlokról"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "&Fájl"
#101# "&ROM betöltés"
#102# "ROM &infó...."
#103# "Emuláció indítás"
#104# "&Emuláció leállítás"
#105# "ROM könyvtár választás..."
#106# "ROM lista frissítés"
#107# "Előző ROM fájlok"
#108# "Előző ROM könyvtárak"
#109# "K&ilépés"
#100# "&Fájl"
#101# "&ROM betöltés"
#102# "ROM &infó...."
#103# "Emuláció indítás"
#104# "&Emuláció leállítás"
#105# "ROM könyvtár választás..."
#106# "ROM lista frissítés"
#107# "Elõzõ ROM fájlok"
#108# "Elõzõ ROM könyvtárak"
#109# "K&ilépés"
//System Menu
#120# "&Rendszer"
#121# "&Nullázás"
#122# "&Megállítás"
#123# "Bitkép készítés"
#124# "FPS korlátozás"
#125# "&Mentés"
#126# "Mentés másként..."
#127# "&Visszaállítás"
#128# "Betöltés..."
#129# "Jelenlegi m&entett állás"
#130# "Csalások..."
#121# "&Nullázás"
#122# "&Megállítás"
#123# "Bitkép készítés"
#124# "FPS korlátozás"
#125# "&Mentés"
#126# "Mentés másként..."
#127# "&Visszaállítás"
#128# "Betöltés..."
#129# "Jelenlegi m&entett állás"
#130# "Csalások..."
#131# "GS gomb"
#132# "Folytatás"
#132# "Folytatás"
//Options Menu
#140# "&Beállítások"
#141# "&Teljes képernyő"
#142# "&Mindig &felül"
#143# "Kép plugin beállítása..."
#144# "Hang plugin beállítása..."
#145# "Irányítás plugin beállítása..."
#146# "RSP plugin beállítása..."
#147# "CPU használat megjelenítése %"
#148# "&Beállítások..."
#140# "&Beállítások"
#141# "&Teljes képernyõ"
#142# "&Mindig &felül"
#143# "Kép plugin beállítása..."
#144# "Hang plugin beállítása..."
#145# "Irányítás plugin beállítása..."
#146# "RSP plugin beállítása..."
#147# "CPU használat megjelenítése %"
#148# "&Beállítások..."
//Debugger Menu
#160# "&Hibakereső"
#160# "&Hibakeresõ"
//Language Menu
#175# "&Nyelv"
//Help Menu
#180# "&Súgó"
#181# "Az &INI fájlokról"
#182# "&Project 64 névjegye"
#183# "Segítség: &Fórum"
#180# "&Súgó"
#181# "Az &INI fájlokról"
#182# "&Project 64 névjegye"
#183# "Segítség: &Fórum"
#184# "&Honlap"
//Current Save Slot menu
@ -88,174 +88,174 @@
#200# "10. hely"
//Pop up Menu
#210# "Játék indítás"
#211# "ROM információ"
#212# "Játék beállítások változtatása"
#213# "Csalások szerkesztése"
#210# "Játék indítás"
#211# "ROM információ"
#212# "Játék beállítások változtatása"
#213# "Csalások szerkesztése"
// Menu Descriptions
#250# "N64 ROM kép megnyitás"
#251# "Betöltött játék információk megjelenítése"
#252# "Betöltött ROM kép emuláció indítása"
#253# "Betöltött ROM kép emuláció leállítása"
#254# "ROM könyvtár választás"
#255# "Meglévő ROM lista frissítése a ROM vizsgálóban"
#256# "Kilépés az alkalmazásból"
#257# "Jelenlegi ROM kép újraindítása (megváltozott beállítások betöltése)"
#258# "Jelenlegi játék megállítása/folytatása"
#259# "Jelenlegi képernyőről bitkép készítése"
#260# "FPS korlátozás a N64 megfelelő sebességére"
#261# "Összegzés létrehozás a jelenlegi rendszerről gyors mentéshez"
#262# "Összegzés létrehozás a jelenlegi rendszerről fájl helyzet meghatározással"
#263# "Összegzett gyors mentés betöltés"
#264# "Összegzett gyors mentés fájl kiválasztás betöltéshez"
#265# "Game shark csalások bekapcsolása/kikapcsolása"
#266# "Game shark gomb meghatározott csalásra fenntartva"
#267# "Emuláció átváltása ablakról teljes képernyőre"
#268# "Az ablak mindig a többi ablak felett maradjon"
#269# "Beállítások megváltoztatása a kép pluginon belül"
#270# "Beállítások megváltoztatása a hang pluginon belül"
#271# "Beállítások megváltoztatása az irányítás pluginon belül (pl. gomb kiosztás)"
#272# "Beállítások megváltoztatása az RSP pluginon belül"
#273# "Processzorhasználat megjelenítés forrásonkénti lebontásban"
#274# "Az alkalmazás beállításainak megtekintése/változtatása"
#275# "Az alkalmazás tájékoztatójának megtekintése"
#276# "Az alkalmazás gyakran feltett kérdéseinek megtekintése"
#277# "A program és készítőinek névjegye"
#278# "A készítők és a támogatott fájlok névjegye"
#279# "Előzőleg megnyitott ROM kép megnyitása"
#280# "Könyvtár kijelölése ROM könyvtárként"
#281# "Program átállítása erre a nyelvre"
#282# "Ennek a gyors mentése helynek a kiválasztása"
#283# "kijelölt játék indítása"
#284# "Információ a kijelölt játékról"
#285# "kijelölt játék beállításainak szerkesztése"
#286# "Kijelölt játékhoz csalások szerkesztése"
#250# "N64 ROM kép megnyitás"
#251# "Betöltött játék információk megjelenítése"
#252# "Betöltött ROM kép emuláció indítása"
#253# "Betöltött ROM kép emuláció leállítása"
#254# "ROM könyvtár választás"
#255# "Meglévõ ROM lista frissítése a ROM vizsgálóban"
#256# "Kilépés az alkalmazásból"
#257# "Jelenlegi ROM kép újraindítása (megváltozott beállítások betöltése)"
#258# "Jelenlegi játék megállítása/folytatása"
#259# "Jelenlegi képernyõrõl bitkép készítése"
#260# "FPS korlátozás a N64 megfelelõ sebességére"
#261# "Összegzés létrehozás a jelenlegi rendszerrõl gyors mentéshez"
#262# "Összegzés létrehozás a jelenlegi rendszerrõl fájl helyzet meghatározással"
#263# "Összegzett gyors mentés betöltés"
#264# "Összegzett gyors mentés fájl kiválasztás betöltéshez"
#265# "Game shark csalások bekapcsolása/kikapcsolása"
#266# "Game shark gomb meghatározott csalásra fenntartva"
#267# "Emuláció átváltása ablakról teljes képernyõre"
#268# "Az ablak mindig a többi ablak felett maradjon"
#269# "Beállítások megváltoztatása a kép pluginon belül"
#270# "Beállítások megváltoztatása a hang pluginon belül"
#271# "Beállítások megváltoztatása az irányítás pluginon belül (pl. gomb kiosztás)"
#272# "Beállítások megváltoztatása az RSP pluginon belül"
#273# "Processzorhasználat megjelenítés forrásonkénti lebontásban"
#274# "Az alkalmazás beállításainak megtekintése/változtatása"
#275# "Az alkalmazás tájékoztatójának megtekintése"
#276# "Az alkalmazás gyakran feltett kérdéseinek megtekintése"
#277# "A program és készítõinek névjegye"
#278# "A készítõk és a támogatott fájlok névjegye"
#279# "Elõzõleg megnyitott ROM kép megnyitása"
#280# "Könyvtár kijelölése ROM könyvtárként"
#281# "Program átállítása erre a nyelvre"
#282# "Ennek a gyors mentése helynek a kiválasztása"
#283# "kijelölt játék indítása"
#284# "Információ a kijelölt játékról"
#285# "kijelölt játék beállításainak szerkesztése"
#286# "Kijelölt játékhoz csalások szerkesztése"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "Fájl név"
#301# "Eredeti név"
#302# "Belső név"
#303# "Állapot"
#304# "ROM méret"
#305# "Működési infók"
#306# "Plugin infók"
#307# "Felhasználói infók"
#308# "N64 kazetta azonosítója"
#309# "Gyártó"
#310# "Terület"
#311# "Forgalmazó"
#300# "Fájl név"
#301# "Eredeti név"
#302# "Belsõ név"
#303# "Állapot"
#304# "ROM méret"
#305# "Mûködési infók"
#306# "Plugin infók"
#307# "Felhasználói infók"
#308# "N64 kazetta azonosítója"
#309# "Gyártó"
#310# "Terület"
#311# "Forgalmazó"
#312# "CRC1"
#313# "CRC2"
#314# "CIC chip"
#315# "Megjelenés dátuma"
#316# "Általános"
#317# "Játékosok"
#318# "Irányító vibráció"
#315# "Megjelenés dátuma"
#316# "Általános"
#317# "Játékosok"
#318# "Irányító vibráció"
//Select Rom
#320# "A jelenlegi ROM mappa kiválasztása"
#320# "A jelenlegi ROM mappa kiválasztása"
//Messages
#340# "Rossz ROM? Használd a GoodN64-et & ellenőrizd a legfrissebb INI fájlt"
#340# "Rossz ROM? Használd a GoodN64-et & ellenõrizd a legfrissebb INI fájlt"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Beállítások"
#400# "Beállítások"
//Tabs
#401# "Pluginek"
#402# "Könyvtárak"
#403# "Beállítások"
#404# "ROM választás"
#405# "Haladó"
#406# "ROM beállítások"
#407# "Társítások"
#408# "ROM megjegyzések"
#402# "Könyvtárak"
#403# "Beállítások"
#404# "ROM választás"
#405# "Haladó"
#406# "ROM beállítások"
#407# "Társítások"
#408# "ROM megjegyzések"
//Plugin Dialog
#420# "Névjegy"
#421# " Valós idejű jel processzor plugin: "
#422# " Kép (grafikai) plugin: "
#420# "Névjegy"
#421# " Valós idejû jel processzor plugin: "
#422# " Kép (grafikai) plugin: "
#423# " Hang (hang) plugin: "
#424# " Irányítás (játékirányító) plugin: "
#424# " Irányítás (játékirányító) plugin: "
//Directory Dialog
#440# " Plugin könyvtár:: "
#441# " ROM könyvtár: "
#442# " N64 automatikus mentések: "
#443# " Gyors mentések: "
#444# " Pillanatképek: "
#445# "Az utolsó könyvtár amiből ROM volt megnyitva."
#446# "Plugin könyvtár választás"
#447# "ROM könyvtár választás"
#448# "Automatikus mentés könyvtár választás"
#449# "Gyors mentés könyvtár választás"
#450# "Pillnatképek könyvtárának kiválasztása"
#440# " Plugin könyvtár:: "
#441# " ROM könyvtár: "
#442# " N64 automatikus mentések: "
#443# " Gyors mentések: "
#444# " Pillanatképek: "
#445# "Az utolsó könyvtár amibõl ROM volt megnyitva."
#446# "Plugin könyvtár választás"
#447# "ROM könyvtár választás"
#448# "Automatikus mentés könyvtár választás"
#449# "Gyors mentés könyvtár választás"
#450# "Pillnatképek könyvtárának kiválasztása"
//Options Dialog
#460# "Megállítja az emulációt ha az ablak nem aktív?"
#461# "ROM betöltés közben váltás teljes képernyőre"
#462# "Haladó beállítások elrejtése"
#463# "Emlékezés a kijelölt csalásokra"
#460# "Megállítja az emulációt ha az ablak nem aktív?"
#461# "ROM betöltés közben váltás teljes képernyõre"
#462# "Haladó beállítások elrejtése"
#463# "Emlékezés a kijelölt csalásokra"
//Rom Browser Tab
#480# "Emlékezés ennyi ROM-ra (max. 10):"
#480# "Emlékezés ennyi ROM-ra (max. 10):"
#481# "ROM"
#482# "Emlékezés ennyi ROM könyvtárra (max. 10):"
#483# "könyvtár"
#484# "ROM vizsgáló használata"
#485# "Emlékezés a könyvtárakra"
#486# "Megjeleníhető oszlopok:"
#487# "Megjelenített oszlopok:"
#488# "Beadás ->"
#489# "<- Kivétel"
#482# "Emlékezés ennyi ROM könyvtárra (max. 10):"
#483# "könyvtár"
#484# "ROM vizsgáló használata"
#485# "Emlékezés a könyvtárakra"
#486# "Megjeleníhetõ oszlopok:"
#487# "Megjelenített oszlopok:"
#488# "Beadás ->"
#489# "<- Kivétel"
#490# "Fel"
#491# "Le"
//Advanced Options
#500# "Beállítások többsége akkor lép érvénybe amikor új ROM kerül megnyitásra illetve a jelenlegi nullázását követően."
#501# "Mag alapbeállítás"
#502# "Processzor mag fajtája:"
#503# "Önmódosító kód eljárás:"
#504# "Alapértelmezett memória méret:"
#505# "Fejlett tömb helymeghatározás:"
#506# "Emuláció indítása ROM megnyitáskor?"
#507# "Alapértelmezettek felülírása ini-ből mindig?"
#508# "Gyors mentések automatikus tömörítése"
#500# "Beállítások többsége akkor lép érvénybe amikor új ROM kerül megnyitásra illetve a jelenlegi nullázását követõen."
#501# "Mag alapbeállítás"
#502# "Processzor mag fajtája:"
#503# "Önmódosító kód eljárás:"
#504# "Alapértelmezett memória méret:"
#505# "Fejlett tömb helymeghatározás:"
#506# "Emuláció indítása ROM megnyitáskor?"
#507# "Alapértelmezettek felülírása ini-bõl mindig?"
#508# "Gyors mentések automatikus tömörítése"
//Rom Options
#520# "Processzor mag fajtája:"
#521# "Önmódosító kód eljárás:"
#522# "Memória méret:"
#523# "Fejlett tömb helymeghatározás:"
#524# "Alapértelmezett mentés fajta:"
#525# "Számláló érték:"
#526# "Nagyobb létrehozó puffer"
#527# "TLB használat"
#528# "Cash regisztráció"
#529# "SI megszakítás törlése"
#520# "Processzor mag fajtája:"
#521# "Önmódosító kód eljárás:"
#522# "Memória méret:"
#523# "Fejlett tömb helymeghatározás:"
#524# "Alapértelmezett mentés fajta:"
#525# "Számláló érték:"
#526# "Nagyobb létrehozó puffer"
#527# "TLB használat"
#528# "Cash regisztráció"
#529# "SI megszakítás törlése"
#530# "SP hack"
#531# "Alapértelmezett"
#532# "RSP hang szignál"
#531# "Alapértelmezett"
#532# "RSP hang szignál"
//Core Styles
#540# "Fordító"
#541# "Újraszerkesztő"
#542# "Mag szinkronizáció"
#540# "Fordító"
#541# "Újraszerkesztõ"
#542# "Mag szinkronizáció"
//Self Mod Methods
#560# "Nincs"
#561# "Cache"
#562# "Memória védelem"
#563# "Memória ellenőrzés és cache"
#564# "Memória váltás és cache"
#565# "Memória növekedés ellenőrzése"
#562# "Memória védelem"
#563# "Memória ellenõrzés és cache"
#564# "Memória váltás és cache"
#565# "Memória növekedés ellenõrzése"
//RDRAM Size
#580# "4 MB"
@ -266,34 +266,34 @@
#601# "Ki"
//Save Type
#620# "Előszöri mentés fajta használata"
#620# "Elõszöri mentés fajta használata"
#621# "4kbit Eeprom"
#622# "16kbit Eeprom"
#623# "32kbytes SRAM"
#624# "Flashram"
//Shell Integration Tab
#640# "Fájl kiterjesztés társítása:"
#640# "Fájl kiterjesztés társítása:"
//Rom Notes
#660# "ROM állapot:"
#661# "Mag infó:"
#662# "Plugin infó:"
#660# "ROM állapot:"
#661# "Mag infó:"
#662# "Plugin infó:"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "ROM információ"
#800# "ROM információ"
//Rom Info Text
#801# "ROM név:"
#802# "Fájl név:"
#803# "Elérés:"
#804# "ROM méret:"
#805# "Kazetta azonosítója:"
#806# "Gyártó:"
#807# "Terület:"
#801# "ROM név:"
#802# "Fájl név:"
#803# "Elérés:"
#804# "ROM méret:"
#805# "Kazetta azonosítója:"
#806# "Gyártó:"
#807# "Terület:"
#808# "CRC1:"
#809# "CRC2:"
#810# "CIC chip:"
@ -302,125 +302,125 @@
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "Csalások"
#1001# "Csalások:"
#1002# " Megjegyzések: "
#1003# "Mind kijelölése"
#1004# "Kijelöltek vissza"
#1000# "Csalások"
#1001# "Csalások:"
#1002# " Megjegyzések: "
#1003# "Mind kijelölése"
#1004# "Kijelöltek vissza"
//Add Cheat
#1005# "Csalás beírás"
#1006# "Név:"
#1007# "Kód:"
#1008# "Beszúrás"
#1009# "Törlés"
#1010# " Csalás megjegyzések: "
#1011# "Hozzáadás a DB-hez"
#1022# "Csalás beírás"
#1023# "Új csalás"
#1024# "<cím> <érték>"
#1025# "Beállítások:"
#1026# "<érték> <cimke>"
#1005# "Csalás beírás"
#1006# "Név:"
#1007# "Kód:"
#1008# "Beszúrás"
#1009# "Törlés"
#1010# " Csalás megjegyzések: "
#1011# "Hozzáadás a DB-hez"
#1022# "Csalás beírás"
#1023# "Új csalás"
#1024# "<cím> <érték>"
#1025# "Beállítások:"
#1026# "<érték> <cimke>"
//Code extension
#1012# "Kód kiterjesztések"
#1013# "Kérlek válassz használandó értéket:"
#1012# "Kód kiterjesztések"
#1013# "Kérlek válassz használandó értéket:"
#1014# "Rendben"
#1015# "Mégse"
#1015# "Mégse"
//Digital Value
#1016# "Szám mennyiség"
#1017# "Kérlek válassz hozzá értéket:"
#1018# "&Érték"
#1019# "ettől:"
#1016# "Szám mennyiség"
#1017# "Kérlek válassz hozzá értéket:"
#1018# "&Érték"
#1019# "ettõl:"
#1020# "eddig:"
#1021# "&Megjegyzés:"
#1021# "&Megjegyzés:"
//Edit Cheat
#1027# "Csalás szerkesztés"
#1028# "Csalás frissítés"
#1027# "Csalás szerkesztés"
#1028# "Csalás frissítés"
//Cheat Popup Menu
#1040# "Új csalás hozzáadás..."
#1041# "Szerkesztés"
#1042# "Törlés"
#1040# "Új csalás hozzáadás..."
#1041# "Szerkesztés"
#1042# "Törlés"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "*** Processzor megállt ***"
#2001# "Processzor visszaállt"
#2002# "Közvetlen kapcsolatban nem léptethető ki.
Emuláció most leáll.
#2000# "*** Processzor megállt ***"
#2001# "Processzor visszaállt"
#2002# "Közvetlen kapcsolatban nem léptethetõ ki.
Emuláció most leáll.
ROM és ROM beállítások ellenőrzése."
#2003# "Memória behatárolás sikertelen"
#2004# "Alap- vagy választott plugin hiányzik illetve nem megfelelő.
ROM és ROM beállítások ellenõrzése."
#2003# "Memória behatárolás sikertelen"
#2004# "Alap- vagy választott plugin hiányzik illetve nem megfelelõ.
Ellenőrizd, hogy legyen legalább egy kompatibilis plugin fájl a plugin könyvtárban."
#2005# "Alap- vagy választott hang plugin hiányzik illetve nem megfelelő.
Ellenõrizd, hogy legyen legalább egy kompatibilis plugin fájl a plugin könyvtárban."
#2005# "Alap- vagy választott hang plugin hiányzik illetve nem megfelelõ.
Ellenőrizd, hogy legyen legalább egy kompatibilis plugin fájl a plugin könyvtárban."
#2006# "Alap- vagy választott RSP plugin hiányzik illetve nem megfelelő.
Ellenõrizd, hogy legyen legalább egy kompatibilis plugin fájl a plugin könyvtárban."
#2006# "Alap- vagy választott RSP plugin hiányzik illetve nem megfelelõ.
Ellenőrizd, hogy a Project64 megfelelően van telepítve meglévő plugin könyvtár megadásával."
#2007# "Alap- vagy választott irányítás plugin hiányzik illetve nem megfelelő.
Ellenõrizd, hogy a Project64 megfelelõen van telepítve meglévõ plugin könyvtár megadásával."
#2007# "Alap- vagy választott irányítás plugin hiányzik illetve nem megfelelõ.
Ellenőrizd, hogy legyen legalább egy kompatibilis plugin fájl a plugin könyvtárban."
#2008# "Plugin betöltés sikertelen:"
#2009# "Parancs betöltés sikertelen
Ellenõrizd, hogy legyen legalább egy kompatibilis plugin fájl a plugin könyvtárban."
#2008# "Plugin betöltés sikertelen:"
#2009# "Parancs betöltés sikertelen
ROM és ROM beállítások hitelesítése."
#2010# "Mentett állás megnyitása sikertelen"
#2011# "Eeprom megnyitása sikertelen"
#2012# "Flashram megnyitása sikertelen"
#2013# "Mempak megnyitása sikertelen"
#2014# "Zip fájl megnyitási kisérlet sikertelen.
Hibás vagy sérült zip fájl - ellenőrizd az elérést és a fájlt.
ROM és ROM beállítások hitelesítése."
#2010# "Mentett állás megnyitása sikertelen"
#2011# "Eeprom megnyitása sikertelen"
#2012# "Flashram megnyitása sikertelen"
#2013# "Mempak megnyitása sikertelen"
#2014# "Zip fájl megnyitási kisérlet sikertelen.
Hibás vagy sérült zip fájl - ellenõrizd az elérést és a fájlt.
Indítsd újra a programot."
#2015# "Fájl megnyitási kisérlet sikertelen."
#2016# "Hiba lépett fel a zip fájl megnyitása közben."
#2017# "Fájl betöltve valószínűleg nem Nintendo64 ROM.
Indítsd újra a programot."
#2015# "Fájl megnyitási kisérlet sikertelen."
#2016# "Hiba lépett fel a zip fájl megnyitása közben."
#2017# "Fájl betöltve valószínûleg nem Nintendo64 ROM.
Ellenőrizd a ROM-jaidat GoodN64-el."
#2018# "Ismeretlen terület"
Ellenõrizd a ROM-jaidat GoodN64-el."
#2018# "Ismeretlen terület"
#2019# "Ismeretlen Cic chip"
#2020# "Ismeretlen fájl formátum"
#2021# "Ismeretlen memória megnyilvánulás
#2020# "Ismeretlen fájl formátum"
#2021# "Ismeretlen memória megnyilvánulás
Emuláció leállt"
Emuláció leállt"
#2022# "Kezelhetetlen R4300i OpCode itt:"
#2023# "Leállítás ismeretlen helyről.
#2023# "Leállítás ismeretlen helyrõl.
ROM és ROM beállítások ellenőrzése."
#2024# "Mentett állás nem egyezik a használatban lévő ROM-mal.
ROM és ROM beállítások ellenõrzése."
#2024# "Mentett állás nem egyezik a használatban lévõ ROM-mal.
Állásmentés elmentés és betöltés csak 100% egyforma ROM-ok estén működik,
a RÉGIÓNAK és VERZIÓNAK pontosan egyezni kell.
Az állás betöltése valószínűleg a játék és/vagy az emulátor kifagyásához vezet.
Állásmentés elmentés és betöltés csak 100% egyforma ROM-ok estén mûködik,
a RÉGIÓNAK és VERZIÓNAK pontosan egyezni kell.
Az állás betöltése valószínûleg a játék és/vagy az emulátor kifagyásához vezet.
Biztos folytatod a mentés betöltését?"
Biztos folytatod a mentés betöltését?"
#2025# "Hiba"
#2026# "Jogvédelmi utalás nem található a LUT-ban. A játék többé nem fog működni."
#2027# "Másolás védelmi probléma"
#2028# "Plugin váltáshoz a Project64-nek le kell nullázni a futó ROM-ot.
Ha nem akarod elveszíteni a helyzeted, válassz NEM-et és ments állást.
#2026# "Jogvédelmi utalás nem található a LUT-ban. A játék többé nem fog mûködni."
#2027# "Másolás védelmi probléma"
#2028# "Plugin váltáshoz a Project64-nek le kell nullázni a futó ROM-ot.
Ha nem akarod elveszíteni a helyzeted, válassz NEM-et és ments állást.
Váltasz plugint és újraindítod a játékot most?"
#2029# "Plugin váltás"
#2030# "Emuláció befejeződött"
#2031# "Emuláció elkezdődött"
#2032# "Nem lehet mentést betölteni"
#2033# "Mentés betöltve"
#2034# "Állás elmentve ide:"
#2035# "Állásmentés helye"
#2036# "Byte swapping képfájl"
#2037# "N64 képfájl kiválasztás"
#2038# "Betöltve"
#2039# "Képfájl betöltés"
#2040# "A ROM nem nyitható meg mert a pluginok nem megfelelően vannak beállítva"
#2041# "Biztos vagy benne, hogy törölni akarod ezt?"
#2042# "Csalás törlés"
#2043# "Ez a csalás név már használatban van"
#2044# "Elérted a maximálisan alkalmazható csalások számát ehhez a ROM-hoz"
Váltasz plugint és újraindítod a játékot most?"
#2029# "Plugin váltás"
#2030# "Emuláció befejezõdött"
#2031# "Emuláció elkezdõdött"
#2032# "Nem lehet mentést betölteni"
#2033# "Mentés betöltve"
#2034# "Állás elmentve ide:"
#2035# "Állásmentés helye"
#2036# "Byte swapping képfájl"
#2037# "N64 képfájl kiválasztás"
#2038# "Betöltve"
#2039# "Képfájl betöltés"
#2040# "A ROM nem nyitható meg mert a pluginok nem megfelelõen vannak beállítva"
#2041# "Biztos vagy benne, hogy törölni akarod ezt?"
#2042# "Csalás törlés"
#2043# "Ez a csalás név már használatban van"
#2044# "Elérted a maximálisan alkalmazható csalások számát ehhez a ROM-hoz"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
@ -32,7 +32,7 @@
#105# "&Scegli la Cartella delle ROM..."
#106# "Aggiorna l'&elenco delle ROM"
#107# "ROM emulate recentemente"
#108# "&Cartella delle ROM più recenti"
#108# "&Cartella delle ROM più recenti"
#109# "&Esci"
//System Menu
@ -104,14 +104,14 @@
#257# "Ricarica l'immagine ROM"
#258# "Pausa/Riavvia l'emulazione della ROM"
#259# "Crea adesso un'immagine Bitmap"
#260# "Limita gli FPS alla velocità del N64"
#260# "Limita gli FPS alla velocità del N64"
#261# "Salva le impostazioni del Project64 nell'attuale slot"
#262# "Salva le impostazioni del Project64 in un altro slot"
#263# "Carica le impostazioni del Project64 dall'attuale slot"
#264# "Carica le impostazioni del Project64 da..."
#265# "Scegli o aggiungi un trucco per l'attuale ROM"
#266# "Emula la pressione del pulsante del 'GameShark' - da usare con certi trucchi"
#267# "Cambia da modalità Finestra a Schermo Intero (premi Esc per tornare in Finestra)"
#267# "Cambia da modalità Finestra a Schermo Intero (premi Esc per tornare in Finestra)"
#268# "Metti la finestra del Project64 sempre in primo piano"
#269# "Configura l'attuale plugin video"
#270# "Configura l'attuale plugin audio"
@ -191,7 +191,7 @@
#442# "Cartella salvataggi del N64"
#443# "Cartella salvataggi rapidi"
#444# "Cartella Screenshots"
#445# "Ultima cartella dov'è stata aperta la ROM"
#445# "Ultima cartella dov'è stata aperta la ROM"
#446# "Scegli una Cartella dei Plugins"
#447# "Scegli una Cartella delle ROM"
#448# "Scegli una Cartella dei salvataggi del N64"
@ -199,8 +199,8 @@
#450# "Scegli una Cartella degli Screenshots"
//Options Dialog
#460# "&Metti in pausa quando la finestra non è attiva"
#461# "Modalità a 'Schermo Intero' all'avvio di una ROM"
#460# "&Metti in pausa quando la finestra non è attiva"
#461# "Modalità a 'Schermo Intero' all'avvio di una ROM"
#462# "Nascondi le impostazioni avanzate"
#463# "&Ricorda i trucchi scelti"
@ -216,16 +216,16 @@
#488# "&Aggiungi ->"
#489# "<- &Rimuovi"
#490# "&Su"
#491# "&Giù"
#491# "&Giù"
//Advanced Options
#500# "La maggior parte di questi cambiamenti non avrà effetto finché una nuova ROM non sarà caricata"
#500# "La maggior parte di questi cambiamenti non avrà effetto finché una nuova ROM non sarà caricata"
#501# "Impostazioni predefinite del Core"
#502# "Stile del core della CPU"
#503# "Codice Self-mod"
#504# "Grandezza della RDRAM"
#505# "Advanced Block Linking"
#506# "Avvia l'emulazione quando la ROM è aperta"
#506# "Avvia l'emulazione quando la ROM è aperta"
#507# "Sovrascrivi le impostazioni predefinite con quelli dell'RDB"
#508# "Comprimi automaticamente i salvataggi rapidi"
@ -329,7 +329,7 @@
#1015# "Annulla"
//Digital Value
#1016# "Digita la quantità"
#1016# "Digita la quantità"
#1017# "Scegli un valore per:"
#1018# "&Valore"
#1019# "da"
@ -350,21 +350,21 @@
*********************************************************************************/
#2000# "Pausa"
#2001# "Riprendi"
#2002# "Il programma si trova in loop permanente da cui non può uscire.
#2002# "Il programma si trova in loop permanente da cui non può uscire.
L'emulazione sta per arrestarsi.
Verifica la ROM e le sue impostazioni."
#2003# "Fallita l'allocazione della memoria"
#2004# "Il plugin video predefinito o appena scelto manca, o non è corretto.
#2004# "Il plugin video predefinito o appena scelto manca, o non è corretto.
Verifica le Impostazioni e seleziona un plugin video compatibile."
#2005# "Il plugin audio predefinito o appena scelto, manca o non è corretto.
#2005# "Il plugin audio predefinito o appena scelto, manca o non è corretto.
Verifica le Impostazioni e seleziona un plugin audio compatibile."
#2006# "Il plugin RSP predefinito o appena scelto, manca o non è corretto.
#2006# "Il plugin RSP predefinito o appena scelto, manca o non è corretto.
Verifica le Impostazioni e seleziona un plugin RSP compatibile."
#2007# "Il plugin dei Controlli predefinito o appena scelto manca, o non è corretto.
#2007# "Il plugin dei Controlli predefinito o appena scelto manca, o non è corretto.
Verifica le Impostazioni e seleziona un plugin dei Controlli compatibile."
#2008# "Errore nel caricamento del plugin:"
@ -375,11 +375,11 @@ Verifica la ROM e le sue Impostazioni."
#2011# "Errore all'apertura dell'EEPROM"
#2012# "Errore all'apertura della FlashRAM"
#2013# "Errore all'apertura del MemPak"
#2014# "Il tentativo di aprire il file zip è fallito.
#2014# "Il tentativo di aprire il file zip è fallito.
File zip mancante o corrotto - verifica il percorso e il file stesso."
#2015# "Il tentativo di aprire il file è fallito."
#2016# "Si è verificato un errore all'apertura del file zip."
#2015# "Il tentativo di aprire il file è fallito."
#2016# "Si è verificato un errore all'apertura del file zip."
#2017# "Il file caricato non sembra essere una ROM valida del N64.
Verifica le ROMs con il GoodN64."
@ -403,7 +403,7 @@ Vuoi davvero continuare il caricamento?"
#2025# "Errore dell'Applicazione/Core"
#2026# "Sequenza del 'copyright' non trovata nel LUT. Il gioco non funziona."
#2027# "Errore nella Protezione della Copia"
#2028# "Per cambiare il plugin è necessario che il Project64 riavvii l'attuale ROM.
#2028# "Per cambiare il plugin è necessario che il Project64 riavvii l'attuale ROM.
Se non vuoi perdere la posizione attuale, rispondi No e prima crea un salvataggio veloce.
Cambi plugin e riavvii il gioco adesso?"
@ -421,5 +421,5 @@ Cambi plugin e riavvii il gioco adesso?"
#2040# "Non puoi aprire una ROM se tutti i plugins (Video, Audio, Controlli e RSP) non sono stati avviati"
#2041# "Vuoi rimuovere questo trucco?"
#2042# "Rimuovi trucco"
#2043# "Nome del trucco già usato, scegli un altro nome"
#2043# "Nome del trucco già usato, scegli un altro nome"
#2044# "Hai raggiunto il massimo numero di trucchi per questo gioco"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
@ -196,7 +196,7 @@
#450# "Scegli una Directory per gli Screenshot"
//Options Dialog
#460# "&Metti in pausa quando la finestra del Project64 non è attiva"
#460# "&Metti in pausa quando la finestra del Project64 non è attiva"
#461# "Attiva la modalita' Fullscreen all'avvio di una ROM"
#462# "Nascondi i settaggi avanzati (raccomandato)"
#463# "&Ricorda i trucchi scelti per ogni singolo gioco"
@ -212,8 +212,8 @@
#487# "Mostra i campi in quest'ordine:"
#488# "&Aggiungi ->"
#489# "<- &Rimuovi"
#490# "&Sù"
#491# "&Giù"
#490# "&Sù"
#491# "&Giù"
//Advanced Options
#500# "Questi settaggi vengono utilizzati nei casi in cui non si trovino valori nell'RDB, non sia presente un RDB, l'opzione 'sovrascrivi' non sia selezionata"
@ -325,7 +325,7 @@
#1015# "Cancella"
//Digital Value
#1016# "Digita la quantità"
#1016# "Digita la quantità"
#1017# "Per favore, scegli un valore per :"
#1018# "&Valore"
#1019# "da"
@ -351,16 +351,16 @@ A causa di questo problema l'emulazione verra' terminata.
Verifica la qualita' della ROM e i suoi settaggi."
#2003# "Allocazione della memoria non riuscita"
#2004# "Il plugin video e' assente o non è corretto.
#2004# "Il plugin video e' assente o non è corretto.
Controlla di avere almeno un plugin video compatibile con pj64 nella directory che hai scelto per i plugin."
#2005# "Il plugin audio e' assente o non è corretto.
#2005# "Il plugin audio e' assente o non è corretto.
Controlla di avere almeno un plugin audio compatibile con pj64 nella directory che hai scelto per i plugin."
#2006# "Il plugin RSP e' assente o non è corretto.
#2006# "Il plugin RSP e' assente o non è corretto.
Controlla che la directory che hai scelto per i plugin sia giusta."
#2007# "Il plugin per i controlli e' assente o non è corretto.
#2007# "Il plugin per i controlli e' assente o non è corretto.
Controlla di avere almeno un plugin per i controlli compatibile con pj64 nella directory che hai scelto per i plugin."
#2008# "Caricamento plugin non riuscito:"
@ -371,13 +371,13 @@ Verifica la ROM e i suoi settaggi."
#2011# "Caricamento EEPROM fallito"
#2012# "Caricamento FlashRAM fallito"
#2013# "Caricamento del MemoryPack fallito"
#2014# "Il tentativo di aprire il file zip è fallito.
#2014# "Il tentativo di aprire il file zip è fallito.
File compresso (.zip) mancante o corrotto - verifica il percorso e il file.
Potresti aver bisogno di chiudere e riavviare il programma."
#2015# "Il tentativo di caricamento del file fallito."
#2016# "Si è verificato un errore nel tentativo di apertura di un file compresso (.zip)."
#2016# "Si è verificato un errore nel tentativo di apertura di un file compresso (.zip)."
#2017# "Il file caricato non sembra essere una ROM valida.
Verifica la ROM con il GoodN64."
@ -401,7 +401,7 @@ Sei sicuro di voler continuare il caricamento?"
#2025# "Errore dell'Applicazione o nel Core"
#2026# "Sequenza del 'copyright' non trovata nel LUT. Il gioco non funzionera'."
#2027# "Errore nella Copy Protection"
#2028# "Per cambiare un plugin è necessario che il Project64 resetti e riavvii la ROM.
#2028# "Per cambiare un plugin è necessario che il Project64 resetti e riavvii la ROM.
Se non vuoi perdere la posizione, rispondi 'no' e salva il gioco.
Vuoi riavviare la ROM adesso?"
@ -419,7 +419,7 @@ Vuoi riavviare la ROM adesso?"
#2040# "Non puoi aprire una ROM se tutti i plugins (Video, Audio, Controller e RSP) non sono stati correttamente inizializzati"
#2041# "Sei sicuro di voler rimuovere questo trucco?"
#2042# "Rimuovi trucco"
#2043# "Il nome del trucco e' già usato, scegline un altro "
#2043# "Il nome del trucco e' già usato, scegline un altro "
#2044# "Hai raggiunto il massimo numero di trucchi per il gioco"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
@ -8,431 +8,431 @@
#4 # "2005/4/5" // Date
//About DLL Dialog
#5 # "現在の言語"
#6 # "作者"
#7 # "バージョン"
#8 # "日付"
#9 # "ホームページへ"
#10 # "ロムデータベース(.RDB"
#11 # "チートコードファイル(.CHT"
#12 # "ロム拡張情報(.RDX"
#5 # "現在の言語"
#6 # "作者"
#7 # "バージョン"
#8 # "日付"
#9 # "ホームページへ"
#10 # "ロムデータベース(.RDB"
#11 # "チートコードファイル(.CHT"
#12 # "ロム拡張情報(.RDX"
//About INI title
#20 # "設定ファイルについて"
#20 # "設定ファイルについて"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "ファイル(&F)"
#101# "ロムを開く(&O)"
#102# "ロム情報(&I)...."
#103# "エミュレーション開始(&S)"
#104# "エミュレーション終了(&E)"
#105# "ロムフォルダの選択(&F)..."
#106# "ロムリストの更新(&R)"
#107# "最近開いたロムファイル(&N)"
#108# "最近開いたロムフォルダ(&D)"
#109# "終了(&X)"
#100# "ファイル(&F)"
#101# "ロムを開く(&O)"
#102# "ロム情報(&I)...."
#103# "エミュレーション開始(&S)"
#104# "エミュレーション終了(&E)"
#105# "ロムフォルダの選択(&F)..."
#106# "ロムリストの更新(&R)"
#107# "最近開いたロムファイル(&N)"
#108# "最近開いたロムフォルダ(&D)"
#109# "終了(&X)"
//System Menu
#120# "システム(&S)"
#121# "リセット(&R)"
#122# "停止(&P)"
#123# "スクリーンショット(&N)"
#124# "FPSの制限(&E)"
#125# "クイックセーブ(&S)"
#126# "ファイルに状態を保存(&A)..."
#127# "クイックロード(&L)"
#128# "ファイルから状態を復元(&O)..."
#129# "スロットの変更(&T)"
#130# "チート(&C)..."
#131# "GSボタン(&G)"
#132# "再開(&U)"
#120# "システム(&S)"
#121# "リセット(&R)"
#122# "停止(&P)"
#123# "スクリーンショット(&N)"
#124# "FPSの制限(&E)"
#125# "クイックセーブ(&S)"
#126# "ファイルに状態を保存(&A)..."
#127# "クイックロード(&L)"
#128# "ファイルから状態を復元(&O)..."
#129# "スロットの変更(&T)"
#130# "チート(&C)..."
#131# "GSボタン(&G)"
#132# "再開(&U)"
//Options Menu
#140# "オプション(&O)"
#141# "フルスクリーン(&F)"
#142# "つねに前面表示(&T)"
#143# "ビデオプラグインの設定(&V)..."
#144# "オーディオプラグインの設定(&A)..."
#145# "インプットプラグインの設定(&I)..."
#146# "RSPプラグインの設定(&R)..."
#147# "CPU使用率を表示(&C)"
#148# "設定(&S)..."
#140# "オプション(&O)"
#141# "フルスクリーン(&F)"
#142# "つねに前面表示(&T)"
#143# "ビデオプラグインの設定(&V)..."
#144# "オーディオプラグインの設定(&A)..."
#145# "インプットプラグインの設定(&I)..."
#146# "RSPプラグインの設定(&R)..."
#147# "CPU使用率を表示(&C)"
#148# "設定(&S)..."
//Debugger Menu
#160# "デバッガー(&D)"
#160# "デバッガー(&D)"
//Language Menu
#175# "言語(&L)"
#175# "言語(&L)"
//Help Menu
#180# "ヘルプ(&H)"
#181# "設定ファイルについて(&I)"
#182# "Project 64について(&A)"
#183# "サポートフォーラム(&F)"
#184# "ホームページ(&H)"
#180# "ヘルプ(&H)"
#181# "設定ファイルについて(&I)"
#182# "Project 64について(&A)"
#183# "サポートフォーラム(&F)"
#184# "ホームページ(&H)"
//Current Save Slot menu
#190# "デフォルト"
#191# "スロット &1"
#192# "スロット &2"
#193# "スロット &3"
#194# "スロット &4"
#195# "スロット &5"
#196# "スロット &6"
#197# "スロット &7"
#198# "スロット &8"
#199# "スロット &9"
#200# "スロット 1&0"
#190# "デフォルト"
#191# "スロット &1"
#192# "スロット &2"
#193# "スロット &3"
#194# "スロット &4"
#195# "スロット &5"
#196# "スロット &6"
#197# "スロット &7"
#198# "スロット &8"
#199# "スロット &9"
#200# "スロット 1&0"
//Pop up Menu
#210# "ゲーム開始(&P)"
#211# "ロム情報(&I)"
#212# "ロム設定の編集(&S)"
#213# "チートの編集(&E)"
#210# "ゲーム開始(&P)"
#211# "ロム情報(&I)"
#212# "ロム設定の編集(&S)"
#213# "チートの編集(&E)"
// Menu Descriptions
#250# "Nintendo64ロムイメージを開きます"
#251# "現在開いているロムについての情報を表示します"
#252# "現在開いているロムのエミュレーションを開始します"
#253# "現在開いているロムのエミュレーションを終了します"
#254# "ロムディレクトリを選択します"
#255# "ロムブラウザのリストを更新します"
#256# "Project64を終了します"
#257# "現在開いているロムのエミュレーションをリセットします"
#258# "現在開いているロムのエミュレーションを一時停止します"
#259# "現在のスクリーンを画像ファイルに保存します"
#260# "FPSを正しいスピードに制限します"
#261# "現在の状態をスロットに保存します"
#262# "現在の状態をファイルに保存します"
#263# "スロットから状態を復元します"
#264# "ファイルから状態を復元します"
#265# "プロアクションリプレイのコードを使用します"
#266# "GSボタンは特殊なチートコードで使用します"
#267# "エミュレーションをフルスクリーンに切り換えます"
#268# "ウィンドウをつねに前面に表示するようにします"
#269# "ビデオプラグインの設定を変更します"
#270# "オーディオプラグインの設定を変更します"
#271# "インプットプラグインの設定を変更します"
#272# "RSPプラグインの設定を変更します"
#273# "エミュレーターの各コンポネートのCPU使用率を表示します"
#274# "Project64の設定を表示します"
#275# "Project64のユーザーマニュアルを表示します"
#276# "Project64のゲームFAQを表示します"
#277# "設定ファイルについて表示します"
#278# "プログラム情報、バージョン、および著作権を表示します"
#279# "前回開いたロムファイルを読み込みます"
#280# "前回開いたフォルダをロムフォルダとして表示します"
#281# "Project64の言語を変更します"
#282# "セ-ブスロットを変更します"
#283# "選択したゲームを実行します"
#284# "選択したゲームの情報を表示します"
#285# "選択したゲームの設定を編集します"
#286# "選択したゲームのチートを編集します"
#250# "Nintendo64ロムイメージを開きます"
#251# "現在開いているロムについての情報を表示します"
#252# "現在開いているロムのエミュレーションを開始します"
#253# "現在開いているロムのエミュレーションを終了します"
#254# "ロムディレクトリを選択します"
#255# "ロムブラウザのリストを更新します"
#256# "Project64を終了します"
#257# "現在開いているロムのエミュレーションをリセットします"
#258# "現在開いているロムのエミュレーションを一時停止します"
#259# "現在のスクリーンを画像ファイルに保存します"
#260# "FPSを正しいスピードに制限します"
#261# "現在の状態をスロットに保存します"
#262# "現在の状態をファイルに保存します"
#263# "スロットから状態を復元します"
#264# "ファイルから状態を復元します"
#265# "プロアクションリプレイのコードを使用します"
#266# "GSボタンは特殊なチートコードで使用します"
#267# "エミュレーションをフルスクリーンに切り換えます"
#268# "ウィンドウをつねに前面に表示するようにします"
#269# "ビデオプラグインの設定を変更します"
#270# "オーディオプラグインの設定を変更します"
#271# "インプットプラグインの設定を変更します"
#272# "RSPプラグインの設定を変更します"
#273# "エミュレーターの各コンポネートのCPU使用率を表示します"
#274# "Project64の設定を表示します"
#275# "Project64のユーザーマニュアルを表示します"
#276# "Project64のゲームFAQを表示します"
#277# "設定ファイルについて表示します"
#278# "プログラム情報、バージョン、および著作権を表示します"
#279# "前回開いたロムファイルを読み込みます"
#280# "前回開いたフォルダをロムフォルダとして表示します"
#281# "Project64の言語を変更します"
#282# "セ-ブスロットを変更します"
#283# "選択したゲームを実行します"
#284# "選択したゲームの情報を表示します"
#285# "選択したゲームの設定を編集します"
#286# "選択したゲームのチートを編集します"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "ファイル名"
#301# "内部名"
#300# "ファイル名"
#301# "内部名"
#302# "Good Name"
#303# "ステータス"
#304# "サイズ"
#305# "情報(コア)"
#306# "情報(デフォルトプラグイン)"
#307# "情報(ユーザー)"
#308# "カートリッジID"
#309# "製造元"
#310# "国情報"
#311# "開発元"
#303# "ステータス"
#304# "サイズ"
#305# "情報(コア)"
#306# "情報(デフォルトプラグイン)"
#307# "情報(ユーザー)"
#308# "カートリッジID"
#309# "製造元"
#310# "国情報"
#311# "開発元"
#312# "CRC1"
#313# "CRC2"
#314# "CICチップ"
#315# "発売日"
#316# "ジャンル"
#317# "プレイヤー"
#318# "振動機能"
#314# "CICチップ"
#315# "発売日"
#316# "ジャンル"
#317# "プレイヤー"
#318# "振動機能"
//Select Rom
#320# "ロムディレクトリを選択して下さい"
#320# "ロムディレクトリを選択して下さい"
//Messages
#340# "不明なロム? GoodN64を使用するかINIファイルをアップデートして下さい"
#340# "不明なロム? GoodN64を使用するかINIファイルをアップデートして下さい"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "設定"
#400# "設定"
//Tabs
#401# "プラグイン"
#402# "フォルダ"
#403# "オプション"
#404# "ロムブラウザ"
#405# "高度な設定"
#406# "ロム設定"
#407# "関連付け"
#408# "ロム情報"
#401# "プラグイン"
#402# "フォルダ"
#403# "オプション"
#404# "ロムブラウザ"
#405# "高度な設定"
#406# "ロム設定"
#407# "関連付け"
#408# "ロム情報"
//Plugin Dialog
#420# "アバウト"
#421# "RSPプラグイン:"
#422# "ビデオプラグイン:"
#423# "オーディオプラグイン:"
#424# "インプットプラグイン:"
#420# "アバウト"
#421# "RSPプラグイン:"
#422# "ビデオプラグイン:"
#423# "オーディオプラグイン:"
#424# "インプットプラグイン:"
//Directory Dialog
#440# "プラグインフォルダ:"
#441# "ロムフォルダ:"
#442# "セーブフォルダ:"
#443# "クイックセーブフォルダ:"
#444# "スクリーンショットフォルダ:"
#445# "最後に開いたフォルダ"
#446# "プラグインフォルダの選択"
#447# "ロムフォルダの選択"
#448# "セーブフォルダの選択"
#449# "クイックセーブフォルダの選択"
#450# "スクリーンショットフォルダの選択"
#440# "プラグインフォルダ:"
#441# "ロムフォルダ:"
#442# "セーブフォルダ:"
#443# "クイックセーブフォルダ:"
#444# "スクリーンショットフォルダ:"
#445# "最後に開いたフォルダ"
#446# "プラグインフォルダの選択"
#447# "ロムフォルダの選択"
#448# "セーブフォルダの選択"
#449# "クイックセーブフォルダの選択"
#450# "スクリーンショットフォルダの選択"
//Options Dialog
#460# "ウィンドウがアクティブじゃない時はエミュレーション停止(&P)"
#461# "ロムを読み込んだらフルスクリーンにする(&F)"
#462# "高度な設定を隠す(&H)"
#463# "前回使ったチートを記憶する(&R)"
#460# "ウィンドウがアクティブじゃない時はエミュレーション停止(&P)"
#461# "ロムを読み込んだらフルスクリーンにする(&F)"
#462# "高度な設定を隠す(&H)"
#463# "前回使ったチートを記憶する(&R)"
//Rom Browser Tab
#480# "最近開いたロムファイルの表示する数最大10:"
#481# "個"
#482# "最近開いたロムフォルダの表示する数最大10:"
#483# "個"
#484# "ロムブラウザを使用する(&U)"
#485# "サブフォルダも検索(&S)"
#486# "使用できる項目:"
#487# "表示する項目:"
#488# "追加 ->"
#489# "<- 削除"
#490# "上へ"
#491# "下へ"
#480# "最近開いたロムファイルの表示する数最大10:"
#481# "個"
#482# "最近開いたロムフォルダの表示する数最大10:"
#483# "個"
#484# "ロムブラウザを使用する(&U)"
#485# "サブフォルダも検索(&S)"
#486# "使用できる項目:"
#487# "表示する項目:"
#488# "追加 ->"
#489# "<- 削除"
#490# "上へ"
#491# "下へ"
//Advanced Options
#500# "ここでの変更は、新しくロムを開くか現在のロムをリセットするまで反映されません"
#501# "デフォルト設定:"
#502# "CPUコアスタイル(&C):"
#503# "自己修正コード処理方法(&M):"
#504# "メモリー拡張パック(&E):"
#505# "アドバンスブロックリンク(&A):"
#506# "ロムを開いたらエミュレーションを開始する(&O)"
#507# "RDBファイルから設定を読み込む(&R)"
#508# "クイックセーブを圧縮して保存する(&Z)"
#500# "ここでの変更は、新しくロムを開くか現在のロムをリセットするまで反映されません"
#501# "デフォルト設定:"
#502# "CPUコアスタイル(&C):"
#503# "自己修正コード処理方法(&M):"
#504# "メモリー拡張パック(&E):"
#505# "アドバンスブロックリンク(&A):"
#506# "ロムを開いたらエミュレーションを開始する(&O)"
#507# "RDBファイルから設定を読み込む(&R)"
#508# "クイックセーブを圧縮して保存する(&Z)"
//Rom Options
#520# "CPUコアスタイル(&C):"
#521# "自己修正コード処理方法(&M):"
#522# "メモリー拡張パック(&E):"
#523# "アドバンスブロックリンク(&A):"
#524# "セーブタイプ(&S):"
#525# "カウンターファクター(&F):"
#526# "コンパイルバッファを大きくする(&L)"
#527# "TLBを使用する(&U)"
#528# "レジスターキャッシュ(&R)"
#529# "SI割込み遅延(&D)"
#530# "SPハック(&P)"
#531# "デフォルト設定"
#532# "RSPオーディオシグナル"
#520# "CPUコアスタイル(&C):"
#521# "自己修正コード処理方法(&M):"
#522# "メモリー拡張パック(&E):"
#523# "アドバンスブロックリンク(&A):"
#524# "セーブタイプ(&S):"
#525# "カウンターファクター(&F):"
#526# "コンパイルバッファを大きくする(&L)"
#527# "TLBを使用する(&U)"
#528# "レジスターキャッシュ(&R)"
#529# "SI割込み遅延(&D)"
#530# "SPハック(&P)"
#531# "デフォルト設定"
#532# "RSPオーディオシグナル"
//Core Styles
#540# "インタプリタ"
#541# "リコンパイラ"
#542# "コアの同期"
#540# "インタプリタ"
#541# "リコンパイラ"
#542# "コアの同期"
//Self Mod Methods
#560# "なし"
#561# "キャッシュ"
#562# "プロテクトメモリー"
#563# "チェックメモリー&キャッシュ"
#564# "チェンジメモリー&キャッシュ"
#565# "高度なチェックメモリー"
#560# "なし"
#561# "キャッシュ"
#562# "プロテクトメモリー"
#563# "チェックメモリー&キャッシュ"
#564# "チェンジメモリー&キャッシュ"
#565# "高度なチェックメモリー"
//RDRAM Size
#580# "使用しない"
#581# "使用する"
#580# "使用しない"
#581# "使用する"
//Advanced Block Linking
#600# "ON"
#601# "OFF"
//Save Type
#620# "自動検出"
#620# "自動検出"
#621# "4kbit Eeprom"
#622# "16kbit Eeprom"
#623# "32kbytes SRAM"
#624# "Flashram"
//Shell Integration Tab
#640# "ファイルの関連付け(&F):"
#640# "ファイルの関連付け(&F):"
//Rom Notes
#660# "ロム情報(&R):"
#661# "コア情報(&C):"
#662# "プラグイン情報(&P):"
#660# "ロム情報(&R):"
#661# "コア情報(&C):"
#662# "プラグイン情報(&P):"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "ロム情報"
#800# "ロム情報"
//Rom Info Text
#801# "ロム名:"
#802# "ファイル名:"
#803# "保存場所:"
#804# "ロムサイズ:"
#805# "カートリッジID:"
#806# "製造元:"
#807# "国情報:"
#801# "ロム名:"
#802# "ファイル名:"
#803# "保存場所:"
#804# "ロムサイズ:"
#805# "カートリッジID:"
#806# "製造元:"
#807# "国情報:"
#808# "CRC1:"
#809# "CRC2:"
#810# "CICチップ:"
#810# "CICチップ:"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "チート"
#1001# "チート:"
#1002# "情報:"
#1003# "すべてON"
#1004# "すべてOFF"
#1000# "チート"
#1001# "チート:"
#1002# "情報:"
#1003# "すべてON"
#1004# "すべてOFF"
//Add Cheat
#1005# "チート追加"
#1006# "名前:"
#1007# "コード:"
#1008# "挿入"
#1009# "クリア"
#1010# "チート情報(&I):"
#1011# "DBに追加"
#1022# "チートの追加"
#1023# "クリア"
#1024# "<アドレス> <値>"
#1025# "オプション:"
#1026# "<値> <ラベル>"
#1005# "チート追加"
#1006# "名前:"
#1007# "コード:"
#1008# "挿入"
#1009# "クリア"
#1010# "チート情報(&I):"
#1011# "DBに追加"
#1022# "チートの追加"
#1023# "クリア"
#1024# "<アドレス> <値>"
#1025# "オプション:"
#1026# "<値> <ラベル>"
//Code extension
#1012# "コードエクステンション"
#1013# "使用する値を選択して下さい:"
#1012# "コードエクステンション"
#1013# "使用する値を選択して下さい:"
#1014# "OK"
#1015# "キャンセル"
#1015# "キャンセル"
//Digital Value
#1016# "値の入力"
#1017# "使用する値を入力して下さい:"
#1018# "値"
#1016# "値の入力"
#1017# "使用する値を入力して下さい:"
#1018# "値"
#1019# ""
#1020# "から"
#1021# "情報:"
#1020# "から"
#1021# "情報:"
//Edit Cheat
#1027# "チート編集"
#1028# "チート更新"
#1027# "チート編集"
#1028# "チート更新"
//Cheat Popup Menu
#1040# "チートの追加(&A)..."
#1041# "編集(&E)"
#1042# "削除(&D)"
#1040# "チートの追加(&A)..."
#1041# "編集(&E)"
#1042# "削除(&D)"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "*** CPU 停止 ***"
#2001# "CPU 再開"
#2002# "無限ループによりエミュレーションを停止しました。
#2000# "*** CPU 停止 ***"
#2001# "CPU 再開"
#2002# "無限ループによりエミュレーションを停止しました。
ロムとロム設定を確認して下さい。"
#2003# "メモリの割り当てに失敗"
#2004# "選択されているビデオプラグインは、見つからないか使用できません。
ロムとロム設定を確認して下さい。"
#2003# "メモリの割り当てに失敗"
#2004# "選択されているビデオプラグインは、見つからないか使用できません。
設定でビデオプラグインを選択しなおしてください。
また、プラグインフォルダに最低1つ以上互換性のあるプラグインが
あるかどうか確認して下さい。"
#2005# "選択されているオーディオプラグインは、見つからないか使用できません。
設定でビデオプラグインを選択しなおしてください。
また、プラグインフォルダに最低1つ以上互換性のあるプラグインが
あるかどうか確認して下さい。"
#2005# "選択されているオーディオプラグインは、見つからないか使用できません。
設定でオーディオプラグインを選択しなおしてください。
また、プラグインフォルダに最低1つ以上互換性のあるプラグインが
あるかどうか確認して下さい。"
#2006# "選択されているRSPプラグインは、見つからないか使用できません。
設定でオーディオプラグインを選択しなおしてください。
また、プラグインフォルダに最低1つ以上互換性のあるプラグインが
あるかどうか確認して下さい。"
#2006# "選択されているRSPプラグインは、見つからないか使用できません。
設定でRSPプラグインを選択しなおしてください。
また、プラグインフォルダに最低1つ以上互換性のあるプラグインが
あるかどうか確認して下さい。"
#2007# "選択されているインプットプラグインは、見つからないか使用できません。
設定でRSPプラグインを選択しなおしてください。
また、プラグインフォルダに最低1つ以上互換性のあるプラグインが
あるかどうか確認して下さい。"
#2007# "選択されているインプットプラグインは、見つからないか使用できません。
設定でインプットプラグインを選択しなおしてください。
また、プラグインフォルダに最低1つ以上互換性のあるプラグインが
あるかどうか確認して下さい。"
#2008# "プラグインの読み込みに失敗:"
#2009# "ワードの読み込みに失敗。
設定でインプットプラグインを選択しなおしてください。
また、プラグインフォルダに最低1つ以上互換性のあるプラグインが
あるかどうか確認して下さい。"
#2008# "プラグインの読み込みに失敗:"
#2009# "ワードの読み込みに失敗。
ロムとロム設定を確認して下さい。"
#2010# "セーブファイルを開くのに失敗"
#2011# "Eepromを開くのに失敗"
#2012# "Flashramを開くのに失敗"
#2013# "Mempakを開くのに失敗"
#2014# "Zip圧縮ファイルを開くのに失敗しました。
Zipファイルは破損している可能性があります。
ロムが解凍できるか確認して下さい。
ロムとロム設定を確認して下さい。"
#2010# "セーブファイルを開くのに失敗"
#2011# "Eepromを開くのに失敗"
#2012# "Flashramを開くのに失敗"
#2013# "Mempakを開くのに失敗"
#2014# "Zip圧縮ファイルを開くのに失敗しました。
Zipファイルは破損している可能性があります。
ロムが解凍できるか確認して下さい。
アプリケーションを再スタートする必要があるかもしれません。"
#2015# "ファイルを開くのに失敗"
#2016# "Zipファイルを開く時にエラーが発生"
#2017# "読み込まれたロムは有効なNintendo64ロムではありません。
アプリケーションを再スタートする必要があるかもしれません。"
#2015# "ファイルを開くのに失敗"
#2016# "Zipファイルを開く時にエラーが発生"
#2017# "読み込まれたロムは有効なNintendo64ロムではありません。
GoodN64でロムを確認して見て下さい。"
#2018# "不明な国情報"
#2019# "不明なCICチップ"
#2020# "不明なファイルフォーマット"
#2021# "不明なメモリアクション
GoodN64でロムを確認して見て下さい。"
#2018# "不明な国情報"
#2019# "不明なCICチップ"
#2020# "不明なファイルフォーマット"
#2021# "不明なメモリアクション
エミュレーションを停止しました。"
#2022# "次のR4300i OpCodeを処理できません
エミュレーションを停止しました。"
#2022# "次のR4300i OpCodeを処理できません
"
#2023# "存在しないマップスペースを実行しています。
#2023# "存在しないマップスペースを実行しています。
ロムとロム設定を確認して下さい。"
#2024# "クイックセーブは現在プレイ中のロムと一致していません。
ロムとロム設定を確認して下さい。"
#2024# "クイックセーブは現在プレイ中のロムと一致していません。
クイックセーブは100%同一のロム、特に国情報とバージョン
は同じでなければ、保存、復元はすることができません。
このセーブを読み込むと、ゲームまたはエミュレーターが
クラッシュする恐れがあります。
クイックセーブは100%同一のロム、特に国情報とバージョン
は同じでなければ、保存、復元はすることができません。
このセーブを読み込むと、ゲームまたはエミュレーターが
クラッシュする恐れがあります。
読み込みを続けてよろしいですか?"
#2025# "エラー"
#2026# "著作権シーケンスがLUT中に見つかりません。
ゲームはおそらく動作しません。"
#2027# "コピープロテクトにより失敗"
#2028# "プラグインを変更するにはゲームをリセットする必要があります。
もし、現在の状態を失いたくないのであれば、いいえを選び
状態を保存して下さい。
読み込みを続けてよろしいですか?"
#2025# "エラー"
#2026# "著作権シーケンスがLUT中に見つかりません。
ゲームはおそらく動作しません。"
#2027# "コピープロテクトにより失敗"
#2028# "プラグインを変更するにはゲームをリセットする必要があります。
もし、現在の状態を失いたくないのであれば、いいえを選び
状態を保存して下さい。
今すぐプラグインを変更してリスタートしますか?"
#2029# "プラグインの変更"
#2030# "エミュレーション終了"
#2031# "エミュレーション開始"
#2032# "ファイルを読み込めません:"
#2033# "状態を復元しました:"
#2034# "状態を保存しました:"
#2035# "スロットの変更"
#2036# "バイトオーダーの変換"
#2037# "N64イメージの選択"
#2038# "読み込み中"
#2039# "イメージの読み込み"
#2040# "プラグインの初期化に失敗したため、ロムを開くことができません。"
#2041# "このチートを削除してよろしいですか?"
#2042# "チートの削除"
#2043# "同じ名前がすでに使われています。"
#2044# "チートの数が1つのロムに設定できる最大数を超えました。"
今すぐプラグインを変更してリスタートしますか?"
#2029# "プラグインの変更"
#2030# "エミュレーション終了"
#2031# "エミュレーション開始"
#2032# "ファイルを読み込めません:"
#2033# "状態を復元しました:"
#2034# "状態を保存しました:"
#2035# "スロットの変更"
#2036# "バイトオーダーの変換"
#2037# "N64イメージの選択"
#2038# "読み込み中"
#2039# "イメージの読み込み"
#2040# "プラグインの初期化に失敗したため、ロムを開くことができません。"
#2041# "このチートを削除してよろしいですか?"
#2042# "チートの削除"
#2043# "同じ名前がすでに使われています。"
#2044# "チートの数が1つのロムに設定できる最大数を超えました。"

View File

@ -1,8 +1,8 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Lietuviø" // LANGUAGE ID
#1 # "Lietuviø" // LANGUAGE ID
#2 # "WildSOfT emu.puslapiai.lt" // Author
#3 # "2.1" // Version
#4 # "2005 04 12" // Date
@ -12,10 +12,10 @@
#6 # "Autorius"
#7 # "Versija"
#8 # "Data"
#9 # "Aplankyti tinklapá"
#10 # "ROM'ø duombazë (.rdb)"
#11 # "Cheat kodø failas (.cht)"
#12 # "Iðplëstinë ROM'ø informacija (.rdx)"
#9 # "Aplankyti tinklapá"
#10 # "ROM'ø duombazë (.rdb)"
#11 # "Cheat kodø failas (.cht)"
#12 # "Iðplëstinë ROM'ø informacija (.rdx)"
//About INI title
#20 # "Apie INI failus"
@ -25,40 +25,40 @@
*********************************************************************************/
//File Menu
#100# "&Failas"
#101# "&Atidaryti ROM'à..."
#102# "&Informacija apie ROM'à..."
#103# "P&radëti emuliacijà"
#104# "Bai&gti emuliacijà"
#105# "&Pasirinkti ROM'ø aplankà..."
#106# "A&tnaujinti ROM'ø sàraðà"
#101# "&Atidaryti ROM'à..."
#102# "&Informacija apie ROM'à..."
#103# "P&radëti emuliacijà"
#104# "Bai&gti emuliacijà"
#105# "&Pasirinkti ROM'ø aplankà..."
#106# "A&tnaujinti ROM'ø sàraðà"
#107# "&Neseniai naudoti ROM'ai"
#108# "Neseniai naudoti ROM'ø ap&lankai"
#109# "Ið&eiti"
#108# "Neseniai naudoti ROM'ø ap&lankai"
#109# "Ið&eiti"
//System Menu
#120# "&Sistema"
#121# "&Perkrauti"
#122# "Pau&zë"
#122# "Pau&zë"
#123# "Ekrano &nuotrauka"
#124# "&Greièio apribojimas"
#125# "&Iðsaugoti"
#126# "Iðsaugoti &kaip..."
#127# "&Uþkrauti"
#128# "Uþk&rauti..."
#129# "Iðsaugojimo &vieta"
#124# "&Greièio apribojimas"
#125# "&Iðsaugoti"
#126# "Iðsaugoti &kaip..."
#127# "&Uþkrauti"
#128# "Uþk&rauti..."
#129# "Iðsaugojimo &vieta"
#130# "&Cheat'ai..."
#131# "GS &mygtukas"
#132# "Pra&tæsti"
#132# "Pra&tæsti"
//Options Menu
#140# "&Pasirinktys"
#141# "Per visà &ekranà"
#142# "Vi&sada virðuje"
#143# "Konfigûruoti &vaizdo plugin'à..."
#144# "Konfigûruoti &garso plugin'à..."
#145# "Konfigûruoti ávest&ies plugin'à..."
#146# "Konfigûruoti &RSP plugin'à..."
#147# "Ro&dyti CPU panaudojimà, %"
#141# "Per visà &ekranà"
#142# "Vi&sada virðuje"
#143# "Konfigûruoti &vaizdo plugin'à..."
#144# "Konfigûruoti &garso plugin'à..."
#145# "Konfigûruoti ávest&ies plugin'à..."
#146# "Konfigûruoti &RSP plugin'à..."
#147# "Ro&dyti CPU panaudojimà, %"
#148# "&Nustatymai..."
//Debugger Menu
@ -88,49 +88,49 @@
#200# "1&0 vieta"
//Pop up Menu
#210# "Þaisti þaidimà"
#210# "Þaisti þaidimà"
#211# "ROM'o informacija"
#212# "Redaguoti þaidimo nustatymus"
#212# "Redaguoti þaidimo nustatymus"
#213# "Redaguoti Cheat'us"
// Menu Descriptions
#250# "Atidaryti N64 ROM'à"
#251# "Rodyti informacijà apie uþkrautà ROM'à"
#252# "Pradëti uþkrauto ROM'o emuliacijà"
#253# "Sustabdyti uþkrauto ROM'o emuliacijà ir gráþti á narðyklæ"
#254# "Pasirinkti ROM'ø aplankà"
#255# "Atnaujinti ROM'ø sàraðà narðyklëje"
#256# "Iðeiti ið Project64"
#257# "Perkrauti einamàjá ROM'à (perkrauti su pakeistais nustatymais)"
#258# "Pristabdyti/Pratæsti einamojo ROM'o emuliacijà"
#259# "Sukurti lango atvaizdà panaudojant video plugin'à"
#260# "Apriboti FPS iki teisingo N64 greièio, atsiþvelgiant á regionà"
#261# "Iðsaugoti Project64 esamà padëtá á einamàjà iðsaugojimo vietà"
#262# "Iðsaugoti Project64 esamà padëtá, pasirinkus failo vietà ir pavadinimà"
#263# "Uþkrauti Project64 iðsaugotà padëtá ið einamosios iðsaugojimo vietos"
#264# "Uþkrauti Project64 iðsaugotà padëtá ið pasirinkto failo"
#265# "Pasirinkti ar pridëti cheat kodus einamajam ROM'ui"
#266# "Emuliuoti GameShark mygtuko paspaudimà - kai kuriø cheat'ø naudojimui"
#267# "Persijungti ið lango á pilno ekrano reþimà (paspauskite Escape kad gráþti!)"
#268# "Laikyti Project64 langà virð kitø langø"
#269# "Konfigûruoti pasirinktà video (grafikos) plugin'à"
#270# "Konfigûruoti pasirinktà audio (garso) plugin'à"
#271# "Konfigûruoti pasirinktà ávesties (valdymo) plugin'à"
#272# "Konfigûruoti RSP plugin'à"
#273# "Rodyti/paslëpti sistemos procesoriaus panaudojimo padalinimà tarp sistemos komponentø"
#274# "Pagrindiniai Project64 programos nustatymai (plugin'ø pasirinkimas ir pan.)"
#275# "Atidaryti vartotojo vadovà Project64 programai"
#276# "Atidaryti Project64 specifinius þaidimø DUK"
#277# "Apie pagalbiniø failø autorius"
#278# "Apie programà ir autorius"
#279# "Uþkrauti paskutiná naudotà ROM'à"
#280# "Perjungti narðyklës vaizdà á ðá aplankà"
#281# "Perjungti Project64 GUI á kità kalbà"
#282# "Pereiti prie kitos iðsaugojimo vietos"
#283# "Uþkrauti pasirinktà þaidimà ir pradëti jo emuliacijà"
#284# "Perþiûrëti informacijà apie pasirinktà þaidimà "
#285# "Redaguoti RDB failo nustatymus pasirinktam þaidimui"
#286# "Redaguoti cheat'us CHT faile pasirinktam þaidimui"
#250# "Atidaryti N64 ROM'à"
#251# "Rodyti informacijà apie uþkrautà ROM'à"
#252# "Pradëti uþkrauto ROM'o emuliacijà"
#253# "Sustabdyti uþkrauto ROM'o emuliacijà ir gráþti á narðyklæ"
#254# "Pasirinkti ROM'ø aplankà"
#255# "Atnaujinti ROM'ø sàraðà narðyklëje"
#256# "Iðeiti ið Project64"
#257# "Perkrauti einamàjá ROM'à (perkrauti su pakeistais nustatymais)"
#258# "Pristabdyti/Pratæsti einamojo ROM'o emuliacijà"
#259# "Sukurti lango atvaizdà panaudojant video plugin'à"
#260# "Apriboti FPS iki teisingo N64 greièio, atsiþvelgiant á regionà"
#261# "Iðsaugoti Project64 esamà padëtá á einamàjà iðsaugojimo vietà"
#262# "Iðsaugoti Project64 esamà padëtá, pasirinkus failo vietà ir pavadinimà"
#263# "Uþkrauti Project64 iðsaugotà padëtá ið einamosios iðsaugojimo vietos"
#264# "Uþkrauti Project64 iðsaugotà padëtá ið pasirinkto failo"
#265# "Pasirinkti ar pridëti cheat kodus einamajam ROM'ui"
#266# "Emuliuoti GameShark mygtuko paspaudimà - kai kuriø cheat'ø naudojimui"
#267# "Persijungti ið lango á pilno ekrano reþimà (paspauskite Escape kad gráþti!)"
#268# "Laikyti Project64 langà virð kitø langø"
#269# "Konfigûruoti pasirinktà video (grafikos) plugin'à"
#270# "Konfigûruoti pasirinktà audio (garso) plugin'à"
#271# "Konfigûruoti pasirinktà ávesties (valdymo) plugin'à"
#272# "Konfigûruoti RSP plugin'à"
#273# "Rodyti/paslëpti sistemos procesoriaus panaudojimo padalinimà tarp sistemos komponentø"
#274# "Pagrindiniai Project64 programos nustatymai (plugin'ø pasirinkimas ir pan.)"
#275# "Atidaryti vartotojo vadovà Project64 programai"
#276# "Atidaryti Project64 specifinius þaidimø DUK"
#277# "Apie pagalbiniø failø autorius"
#278# "Apie programà ir autorius"
#279# "Uþkrauti paskutiná naudotà ROM'à"
#280# "Perjungti narðyklës vaizdà á ðá aplankà"
#281# "Perjungti Project64 GUI á kità kalbà"
#282# "Pereiti prie kitos iðsaugojimo vietos"
#283# "Uþkrauti pasirinktà þaidimà ir pradëti jo emuliacijà"
#284# "Perþiûrëti informacijà apie pasirinktà þaidimà "
#285# "Redaguoti RDB failo nustatymus pasirinktam þaidimui"
#286# "Redaguoti cheat'us CHT faile pasirinktam þaidimui"
/*********************************************************************************
* Rom Browser *
@ -144,20 +144,20 @@
#305# "Branduolio pastaba"
#306# "Plugin'o pastaba"
#307# "Pastabos (vartotojo)"
#308# "Kartridþo ID"
#308# "Kartridþo ID"
#309# "Gamintojas"
#310# "Regionas"
#311# "Kûrëjas"
#311# "Kûrëjas"
#312# "CRC1"
#313# "CRC2"
#314# "CIC èipas"
#315# "Iðleidimo data"
#316# "Þanras"
#317# "Þaidëjai"
#318# "Jëgos atgalinis ryðys"
#314# "CIC èipas"
#315# "Iðleidimo data"
#316# "Þanras"
#317# "Þaidëjai"
#318# "Jëgos atgalinis ryðys"
//Select Rom
#320# "Nustatyti ROM'ø aplankà"
#320# "Nustatyti ROM'ø aplankà"
//Messages
#340# "Blogas ROM'as? Naudokite GoodN64 ir pasitikrinkite ar yra atnaujintas RDB"
@ -183,63 +183,63 @@
#421# "&Reality Signal Processor plugin'as:"
#422# "&Vaizdo (grafikos) plugin'as"
#423# "&Audio (garso) plugin'as"
#424# "Ávest&ies (valdymo) plugin'as"
#424# "Ávest&ies (valdymo) plugin'as"
//Directory Dialog
#440# "Plugin'ø aplankas:"
#441# "ROM'ø aplankas:"
#442# "N64 automatiniai iðsaugojimai:"
#443# "Greiti iðsaugojimai:"
#440# "Plugin'ø aplankas:"
#441# "ROM'ø aplankas:"
#442# "N64 automatiniai iðsaugojimai:"
#443# "Greiti iðsaugojimai:"
#444# "Ekrano nuotraukos:"
#445# "Paskutinis aplankas, ið kurio buvo atidarytas ROM'as"
#446# "Pasirinkti plugin'ø aplankà"
#447# "Pasirinkti ROM'ø aplankà"
#448# "Pasirinkti automatiniø iðsaugojimø aplankà"
#449# "Pasirinkti greito iðsaugojimo aplankà"
#450# "Pasirinkti aplankà ekrano nuotraukoms"
#445# "Paskutinis aplankas, ið kurio buvo atidarytas ROM'as"
#446# "Pasirinkti plugin'ø aplankà"
#447# "Pasirinkti ROM'ø aplankà"
#448# "Pasirinkti automatiniø iðsaugojimø aplankà"
#449# "Pasirinkti greito iðsaugojimo aplankà"
#450# "Pasirinkti aplankà ekrano nuotraukoms"
//Options Dialog
#460# "Ájungti &pauzæ kai langas tampa neaktyviu"
#461# "Pereiti prie pilno &ekrano paleidus þaidimà"
#462# "Pa&slëpti nustatymus patyrusiems"
#460# "Ájungti &pauzæ kai langas tampa neaktyviu"
#461# "Pereiti prie pilno &ekrano paleidus þaidimà"
#462# "Pa&slëpti nustatymus patyrusiems"
#463# "P&risiminti pasirinktus cheat'us"
//Rom Browser Tab
#480# "&Prisimenamø ROM'ø skaièius (0-10)"
#480# "&Prisimenamø ROM'ø skaièius (0-10)"
#481# "ROM'ai"
#482# "Prisimenamø ROM'ø &aplankø skaièius (0-10)"
#482# "Prisimenamø ROM'ø &aplankø skaièius (0-10)"
#483# "Aplankai"
#484# "ROM'ø &narðyklë ájungta"
#484# "ROM'ø &narðyklë ájungta"
#485# "&Direktorijos rekursija"
#486# "&Esami laukai"
#487# "&Rodyti tokia tvarka:"
#488# "Pridë&ti ->"
#489# "<- &Iðmesti"
#490# "Á &virðø"
#491# "Þe&myn"
#488# "Pridë&ti ->"
#489# "<- &Iðmesti"
#490# "Á &virðø"
#491# "Þe&myn"
//Advanced Options
#500# "Dauguma ðiø nustatymø ásigalios atidarius naujà ROM'à arba perkrovus dabartiná"
#501# "Branduolio &nustatymai pagal nutylëjimà"
#500# "Dauguma ðiø nustatymø ásigalios atidarius naujà ROM'à arba perkrovus dabartiná"
#501# "Branduolio &nustatymai pagal nutylëjimà"
#502# "CPU &branduolio stilius"
#503# "&Savæs-mod. kodo metodas:"
#503# "&Savæs-mod. kodo metodas:"
#504# "Nustatytas atminties dydis:"
#505# "&Paþangus blokø suriðimas:"
#506# "P&radëti emuliacijà, uþkrovus ROM'à"
#507# "&Naudoti nustatymus ið RDB vietoj ðiø nustatymø pagal nutylëjimà"
#508# "Suspausti greito iðsaugojimo failà naudojant &Zip"
#505# "&Paþangus blokø suriðimas:"
#506# "P&radëti emuliacijà, uþkrovus ROM'à"
#507# "&Naudoti nustatymus ið RDB vietoj ðiø nustatymø pagal nutylëjimà"
#508# "Suspausti greito iðsaugojimo failà naudojant &Zip"
//Rom Options
#520# "CPU &branduolio stilius:"
#521# "&Savæs-mod. branduolio metodas:"
#521# "&Savæs-mod. branduolio metodas:"
#522# "At&minties dydis:"
#523# "&Paþangus blokø suriðimas:"
#524# "&Iðsaugojimo failø tipas:"
#523# "&Paþangus blokø suriðimas:"
#524# "&Iðsaugojimo failø tipas:"
#525# "Skaitiklio &faktorius:"
#526# "&Didesnis kompiliavimo buferis"
#527# "Naudoti &TLB"
#528# "&Registro keðavimas"
#529# "Uþdelsti SI P&ertraukimà"
#528# "&Registro keðavimas"
#529# "Uþdelsti SI P&ertraukimà"
#530# "SP &Hack'as"
#531# "Nustatytas"
#532# "RSP garso signalas"
@ -251,29 +251,29 @@
//Self Mod Methods
#560# "Jokio"
#561# "Keðas"
#562# "Apsaugoti atmintá"
#563# "Patikrinti atmintá ir keðà"
#564# "Pakeisti atmintá ir keðà"
#565# "Paþangus atminties patikrinimas"
#561# "Keðas"
#562# "Apsaugoti atmintá"
#563# "Patikrinti atmintá ir keðà"
#564# "Pakeisti atmintá ir keðà"
#565# "Paþangus atminties patikrinimas"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "Ájungtas"
#601# "Iðjungtas"
#600# "Ájungtas"
#601# "Iðjungtas"
//Save Type
#620# "Naudoti pirmà naudotà tipà"
#620# "Naudoti pirmà naudotà tipà"
#621# "4kbit EEPROM"
#622# "16kbit EEPROM"
#623# "32kbyte SRAM"
#624# "128kbyte FlashRAM"
//Shell Intergration Tab
#640# "Failø susiejimas:"
#640# "Failø susiejimas:"
//Rom Notes
#660# "ROM'o &statusas:"
@ -291,12 +291,12 @@
#802# "Failo pavadinimas"
#803# "Vieta"
#804# "Dydis"
#805# "Kartridþo ID"
#805# "Kartridþo ID"
#806# "Gamintojas"
#807# "Regionas"
#808# "CRC1"
#809# "CRC2"
#810# "CIC èipas"
#810# "CIC èipas"
/*********************************************************************************
* Cheats *
@ -305,123 +305,123 @@
#1000# "Cheat'ai"
#1001# "Cheat'ai:"
#1002# "Pastabos: "
#1003# "Paþymëti visus"
#1004# "Neþymëti nei vieno"
#1003# "Paþymëti visus"
#1004# "Neþymëti nei vieno"
//Add Cheat
#1005# "Pridëti cheat'à"
#1005# "Pridëti cheat'à"
#1006# "Pavadinimas:"
#1007# "Kodas:"
#1008# "Áterpti"
#1009# "Iðvalyti"
#1008# "Áterpti"
#1009# "Iðvalyti"
#1010# "Cheat'o pastabos: "
#1011# "Pridëti á DB"
#1022# "Pridëti cheat'à"
#1011# "Pridëti á DB"
#1022# "Pridëti cheat'à"
#1023# "Naujas cheat'as"
#1024# "<address> <value>"
#1025# "Pasirinktys:"
#1026# "<value> <label>"
//Code extension
#1012# "Kodo pratæsimai"
#1013# "Praðome pasirinkti reikðmæ, naudotinà:"
#1012# "Kodo pratæsimai"
#1013# "Praðome pasirinkti reikðmæ, naudotinà:"
#1014# "Gerai"
#1015# "Atðaukti"
#1015# "Atðaukti"
//Digital Value
#1016# "Kiekybës skaitmuo"
#1017# "Praðome pasirinkti reikðmæ, naudotinà:"
#1018# "&Reikðmë"
#1016# "Kiekybës skaitmuo"
#1017# "Praðome pasirinkti reikðmæ, naudotinà:"
#1018# "&Reikðmë"
#1019# "nuo"
#1020# "iki"
#1021# "&Pastabos:"
//Edit Cheat
#1027# "Redaguoti cheat'à"
#1028# "Atnaujinti cheat'à"
#1027# "Redaguoti cheat'à"
#1028# "Atnaujinti cheat'à"
//Cheat Popup Menu
#1040# "Pridëti naujà cheat'à..."
#1040# "Pridëti naujà cheat'à..."
#1041# "Redaguoti"
#1042# "Iðtrinti"
#1042# "Iðtrinti"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "Pauzë"
#2001# "Tæsiama"
#2002# "Nuolatiniame cikle, kuris negali bûti uþbaigtas.
#2000# "Pauzë"
#2001# "Tæsiama"
#2002# "Nuolatiniame cikle, kuris negali bûti uþbaigtas.
Emuliacija stabdoma.
Patikrinkite ROM'à ir ROM'o nustatymus."
Patikrinkite ROM'à ir ROM'o nustatymus."
#2003# "Nepavyko paskirti atminties"
#2004# "Nustatytas ar pasirinktas vaizdo plugin'as neegzistuoja arba netinkamas.
Ásitikinkite, kad turite bent vienà suderinamà video plugin'o failà Jûsø plugin'ø aplanke."
Ásitikinkite, kad turite bent vienà suderinamà video plugin'o failà Jûsø plugin'ø aplanke."
#2005# "Nustatytas ar pasirinktas audio plugin'as neegzistuoja arba netinkamas.
Ásitikinkite, kad turite bent vienà suderinamà audio plugin'o failà Jûsø plugin'ø aplanke."
Ásitikinkite, kad turite bent vienà suderinamà audio plugin'o failà Jûsø plugin'ø aplanke."
#2006# "Nustatytas ar pasirinktas RSP plugin'as neegzistuoja arba netinkamas.
Ásitikinkite, kad teisingai suinstaliavote Project64 ir nurodëte tinkamà kelià iki plugin'ø."
#2007# "Nustatytas ar pasirinktas ávesties plugin'as neegzistuoja arba netinkamas.
Ásitikinkite, kad teisingai suinstaliavote Project64 ir nurodëte tinkamà kelià iki plugin'ø."
#2007# "Nustatytas ar pasirinktas ávesties plugin'as neegzistuoja arba netinkamas.
Ásitikinkite, kad turite bent vienà suderinamà ávesties plugin'o failà Jûsø plugin'ø aplanke."
#2008# "Nepavyko uþkrauti plugin'à:"
#2009# "Nepavyko uþkrauti þodþio
Ásitikinkite, kad turite bent vienà suderinamà ávesties plugin'o failà Jûsø plugin'ø aplanke."
#2008# "Nepavyko uþkrauti plugin'à:"
#2009# "Nepavyko uþkrauti þodþio
Patikrinkite ROM'à ir ROM'o nustatymus."
#2010# "Nepavyko atidaryti iðsaugojimo failo"
Patikrinkite ROM'à ir ROM'o nustatymus."
#2010# "Nepavyko atidaryti iðsaugojimo failo"
#2011# "Nepavyko atidaryti EEPROM"
#2012# "Nepavyko atidaryti FlashRAM"
#2013# "Nepavyko atidaryti MemPak"
#2014# "Bandymas atidaryti zip failà nepavyko.
ZIP failas neegzistuoja arba sugadintas - patikrinkite kelià ir failà.
#2014# "Bandymas atidaryti zip failà nepavyko.
ZIP failas neegzistuoja arba sugadintas - patikrinkite kelià ir failà.
Jums gali reikëti perkrauti programà"
#2015# "Bandymas atidaryti failà nepavyko."
#2016# "Bandant atidaryti zip failà, ávyko klaida."
#2017# "Uþkrautas failas yra nepanaðus á tinkamà Nintendo64 ROM'à.
Jums gali reikëti perkrauti programà"
#2015# "Bandymas atidaryti failà nepavyko."
#2016# "Bandant atidaryti zip failà, ávyko klaida."
#2017# "Uþkrautas failas yra nepanaðus á tinkamà Nintendo64 ROM'à.
Patikrinkite Jûsø ROM'us naudojant GoodN64."
#2018# "Neþinoma ðalis"
#2019# "Neþinomas CIC èipas"
#2020# "Neþinomas failo formatas"
#2021# "Neþinomas atminties veiksmas
Patikrinkite Jûsø ROM'us naudojant GoodN64."
#2018# "Neþinoma ðalis"
#2019# "Neþinomas CIC èipas"
#2020# "Neþinomas failo formatas"
#2021# "Neþinomas atminties veiksmas
Emuliacija sustabdoma"
#2022# "Nepalaikomas R4300i OpCode'as"
#2023# "Paleidþiama ið non-mapped vietos.
#2023# "Paleidþiama ið non-mapped vietos.
Patekrinkite ROM'à ir ROM'o nustatymus."
#2024# "Iðsaugojimo failas netinka einamajam ROM'ui.
Patekrinkite ROM'à ir ROM'o nustatymus."
#2024# "Iðsaugojimo failas netinka einamajam ROM'ui.
Iðsaugojimo failas turi bûti iðsaugomas ir uþkraunamas 100% identiðkiems ROM'ams,
tiksliau REGIONAS ir VERSIJA turi bûti tokie patys.
Ðio iðsaugojimo failo uþkrovimas greièiausiai sàlygos þaidimo ir/arba emuliatoriaus lûþimà.
Iðsaugojimo failas turi bûti iðsaugomas ir uþkraunamas 100% identiðkiems ROM'ams,
tiksliau REGIONAS ir VERSIJA turi bûti tokie patys.
Ðio iðsaugojimo failo uþkrovimas greièiausiai sàlygos þaidimo ir/arba emuliatoriaus lûþimà.
Ar Jûs ásitikinæ, kad norite tæsti uþkrovimà?"
Ar Jûs ásitikinæ, kad norite tæsti uþkrovimà?"
#2025# "Programos/branduolio klaida"
#2026# "Autoriniø teisiø seka nerasta LUT'e. Þaidimas nebefunkcionuos."
#2027# "Kopijavimo apsaugos nesëkmë"
#2028# "Plugin'o pakeitimas reikalauja Project64 perkrauti einamàjá ROM'à.
Jei nenorite prarasti savo pozicijos, atsakykite No ir pirma iðsaugokite esamà padëtá.
#2026# "Autoriniø teisiø seka nerasta LUT'e. Þaidimas nebefunkcionuos."
#2027# "Kopijavimo apsaugos nesëkmë"
#2028# "Plugin'o pakeitimas reikalauja Project64 perkrauti einamàjá ROM'à.
Jei nenorite prarasti savo pozicijos, atsakykite No ir pirma iðsaugokite esamà padëtá.
Pakeisti plugin'à ir paleisti þaidimà ið naujo?"
Pakeisti plugin'à ir paleisti þaidimà ið naujo?"
#2029# "Pakeisti plugin'us"
#2030# "Emuliacija baigta"
#2031# "Emuliacija pradëta"
#2032# "Negaliu uþkrauti iðsaugojimo failo"
#2033# "Iðsaugojimo failas uþkrautas"
#2034# "Esama padëtis iðsaugota"
#2035# "Einamoji iðsaugojimo vieta"
#2036# "Sukeièiu baitus ROM'e"
#2037# "laukiu kol Jûs pasirinksite ROM'à"
#2038# "Uþkrauta"
#2039# "Uþkraunamas ROM'as"
#2040# "Jûs negalite atidaryti ROM'à kol nesiinicializavo visi plugin'ø tipai (Video, Audio, Ávesties ir RSP)"
#2041# "Ar Jûs ásitikinæ, kad norite iðtrinti ðá cheat'à?"
#2042# "Iðtrinti Cheat'à"
#2043# "Cheat'o pavadinimas jau naudojamas, praðome pasirinkti kità"
#2044# "Jûs pasiekëte maksimalø cheat'ø skaièiø, kurá galite turëti vienam þaidimui"
#2031# "Emuliacija pradëta"
#2032# "Negaliu uþkrauti iðsaugojimo failo"
#2033# "Iðsaugojimo failas uþkrautas"
#2034# "Esama padëtis iðsaugota"
#2035# "Einamoji iðsaugojimo vieta"
#2036# "Sukeièiu baitus ROM'e"
#2037# "laukiu kol Jûs pasirinksite ROM'à"
#2038# "Uþkrauta"
#2039# "Uþkraunamas ROM'as"
#2040# "Jûs negalite atidaryti ROM'à kol nesiinicializavo visi plugin'ø tipai (Video, Audio, Ávesties ir RSP)"
#2041# "Ar Jûs ásitikinæ, kad norite iðtrinti ðá cheat'à?"
#2042# "Iðtrinti Cheat'à"
#2043# "Cheat'o pavadinimas jau naudojamas, praðome pasirinkti kità"
#2044# "Jûs pasiekëte maksimalø cheat'ø skaièiø, kurá galite turëti vienam þaidimui"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
@ -8,7 +8,7 @@
#4 # "02. April, 2005" // Date
//About DLL Dialog
#5 # "Nåværende Språk"
#5 # "Nåværende Språk"
#6 # "Forfatter"
#7 # "Versjon"
#8 # "Dato"
@ -25,7 +25,7 @@
*********************************************************************************/
//File Menu
#100# "&Fil"
#101# "&Åpne ROM"
#101# "&Åpne ROM"
#102# "Rom &info...."
#103# "Start &emulering"
#104# "&Stopp emulering"
@ -45,7 +45,7 @@
#126# "Lagre s&om..."
#127# "&Gjenopprett"
#128# "L&ast..."
#129# "Nå&værende lagringsplass"
#129# "Nå&værende lagringsplass"
#130# "&Koder..."
#131# "&Jukse knapp"
#132# "F&ortsett"
@ -53,7 +53,7 @@
//Options Menu
#140# "&Alternativer"
#141# "&Full skjerm"
#142# "Alltid på &topp"
#142# "Alltid på &topp"
#143# "Konfigurer &grafikk plugin..."
#144# "Konfigurer &lyd plugin..."
#145# "Konfigurer &kontroll plugin..."
@ -65,13 +65,13 @@
#160# "&Debugger"
//Language Menu
#175# "&Språk"
#175# "&Språk"
//Help Menu
#180# "&Hjelp"
#181# "Om &ini filene"
#182# "&Om Project 64"
#183# "Støtte &Forum"
#183# "Støtte &Forum"
#184# "&Hjemmeside"
//Current Save Slot menu
@ -88,7 +88,7 @@
#200# "Slot &10 (.pj0)"
//Pop up Menu
#210# "Kjør Spill"
#210# "Kjør Spill"
#211# "Rom informasjon"
#212# "Endre spillets innstillinger"
#213# "Endre koder"
@ -99,33 +99,33 @@
#252# "Start emulering av den lastede ROM'en"
#253# "Stopp emulering av den lastede ROM'en"
#254# "Velg ROM mappe"
#255# "Oppdater nåværende ROM liste i browseren"
#255# "Oppdater nåværende ROM liste i browseren"
#256# "Avslutt Project 64"
#257# "Restart nåværende ROM og la alle endringer ta effekt"
#258# "Paus/fortsett emulering av nåværende ROM"
#259# "Generer ett bitmap bilde av nåværende skjerm"
#257# "Restart nåværende ROM og la alle endringer ta effekt"
#258# "Paus/fortsett emulering av nåværende ROM"
#259# "Generer ett bitmap bilde av nåværende skjerm"
#260# "Begrens FPS til det korrekte for N64"
#261# "Lag en hurtig lagring til nåværende plass"
#261# "Lag en hurtig lagring til nåværende plass"
#262# "Lag en hurtig lagring til hvilket som helst filnavn og mappe"
#263# "Last en hurtig lagring fra nåværende plass"
#264# "Velg en hurtig lagrings fil å laste"
#263# "Last en hurtig lagring fra nåværende plass"
#264# "Velg en hurtig lagrings fil å laste"
#265# "Velg eller legg til koder"
#266# "Emulér et trykk på knappen på GameShark'en"
#267# "Skift fra vindu til fullskjerm (trykk ESC for å gå tilbake)"
#268# "La Project 64 vindu være på toppen"
#266# "Emulér et trykk på knappen på GameShark'en"
#267# "Skift fra vindu til fullskjerm (trykk ESC for å gå tilbake)"
#268# "La Project 64 vindu være på toppen"
#269# "Konfigurer instillingene i grafikk pluginen"
#270# "Konfigurer instillingene i audio pluginen"
#271# "Konfigurer instillingene i kontroll pluginen"
#272# "Konfigurer instillingene i RSP pluginen"
#273# "Vis/skjul emulatorens CPU bruk ved de forskjellige ressurser"
#274# "Se på/skift instillinge for dette programmet"
#275# "Åpen bruker manualen for Project 64"
#276# "Åpen FAQ'en for Project 64"
#274# "Se på/skift instillinge for dette programmet"
#275# "Åpen bruker manualen for Project 64"
#276# "Åpen FAQ'en for Project 64"
#277# "Om programmet og forfatterene"
#278# "Om forfatterene av support filene"
#279# "Åpen sist brukte ROM"
#279# "Åpen sist brukte ROM"
#280# "Bruk denne mappen som din ROM mappe"
#281# "Skift Project 64 til dette språket"
#281# "Skift Project 64 til dette språket"
#282# "Skift til annen lagrings plass"
#283# "Starter det valgte spillet"
#284# "Se informasjonen om det valgte spillet"
@ -140,7 +140,7 @@
#301# "Internt navn"
#302# "GoodN64 navn"
#303# "Status"
#304# "ROM størrelse"
#304# "ROM størrelse"
#305# "Notater (kjerne)"
#306# "Notater (standard plugins)"
#307# "Notater (bruker)"
@ -160,7 +160,7 @@
#320# "Velg ROM mappe for browseren"
//Messages
#340# "Dårlig ROM? Bruk GoodN64 & sjekk etter oppdatert ini"
#340# "Dårlig ROM? Bruk GoodN64 & sjekk etter oppdatert ini"
/*********************************************************************************
* Options *
@ -191,7 +191,7 @@
#442# "&N64 auto lagrings mappe: "
#443# "&Hurtig lagrings mappe: "
#444# "&Screenshot mappe: "
#445# "Husk siste &mappe en ROM ble åpnet fra."
#445# "Husk siste &mappe en ROM ble åpnet fra."
#446# "Velg plugin mappe"
#447# "Velg ROM mappe"
#448# "Velg mappe for auto lagringer"
@ -199,8 +199,8 @@
#450# "Velg mappe for Screenshots"
//Options Dialog
#460# "&Paus emulering når vindu er inaktivt?"
#461# "&Gå til fullskjerm når en rom er sartet"
#460# "&Paus emulering når vindu er inaktivt?"
#461# "&Gå til fullskjerm når en rom er sartet"
#462# "&Skjul avanserte innstillinger"
#463# "&Husk valgte koder for spill"
@ -211,8 +211,8 @@
#483# "mapper"
#484# "Bruk ROM &browser"
#485# "Bruk mappe &gjentagelse"
#486# "Ledige &områder:"
#487# "Vis områder i denne r&ekkefølgen:"
#486# "Ledige &områder:"
#487# "Vis områder i denne r&ekkefølgen:"
#488# "&Legg til ->"
#489# "<- &Ta vekk"
#490# "O&pp"
@ -221,24 +221,24 @@
//Advanced Options
#500# "Disse instillingene blir brukt om RDB ikke har satt en verdi,
RDB ikke er tilstede eller overskriving ikke er tillatt.
De vil ta effekt når ROM'en er resatt eller en ny er startet."
De vil ta effekt når ROM'en er resatt eller en ny er startet."
#501# "%Standarer for kjernen"
#502# "R%4300i kjerne"
#503# "%Behandling av selv-mod kode:"
#504# "Standard %RDRAM størrelse:"
#504# "Standard %RDRAM størrelse:"
#505# "%Avansert blokk linking:"
#506# "Start %emulering når ROM er åpnet?"
#506# "Start %emulering når ROM er åpnet?"
#507# "Alltid %overskriv standard innstillinger med dem fra ini?"
#508# "Automatisk %pakking av hurtig lagringer?"
//Rom Options
#520# "R%4300i kjerne"
#521# "Be&handling av selv-mod kode:"
#522# "&RDRAM størrelse:"
#522# "&RDRAM størrelse:"
#523# "&Avansert blokk linking:"
#524# "&Standard lagrings type:"
#525# "Mot &faktor:"
#526# "Større kompilerings &buffer"
#526# "Større kompilerings &buffer"
#527# "&TLB"
#528# "R&egister caching"
#529# "&Forsink SI avbrytelsen"
@ -264,11 +264,11 @@ De vil ta effekt n
#581# "8 MB"
//Advanced Block Linking
#600# "På"
#600# "På"
#601# "Av"
//Save Type
#620# "bruk den første brukte lagrings typen"
#620# "bruk den første brukte lagrings typen"
#621# "4kbit EEPROM"
#622# "16kbit EEPROM"
#623# "32kbyte SRAM"
@ -292,7 +292,7 @@ De vil ta effekt n
#801# "Internt navn:"
#802# "Fil navn:"
#803# "Sted:"
#804# "ROM størrelse:"
#804# "ROM størrelse:"
#805# "Cartridge ID:"
#806# "Produsent:"
#807# "Region:"
@ -308,7 +308,7 @@ De vil ta effekt n
#1001# "Koder:"
#1002# "Notater: "
#1003# "Merk alle"
#1004# "Umarkér alle"
#1004# "Umarkér alle"
//Add Cheat
#1005# "Legg til kode"
@ -326,13 +326,13 @@ De vil ta effekt n
//Code extension
#1012# "Filtype for koder"
#1013# "Vær vennlig å velg hvilken verdi som skal bli brukt:"
#1013# "Vær vennlig å velg hvilken verdi som skal bli brukt:"
#1014# "OK"
#1015# "Avbryt"
//Digital Value
#1016# "Kvantums nummer"
#1017# "Vær vennlig å velg en verdi:"
#1017# "Vær vennlig å velg en verdi:"
#1018# "&Verdi"
#1019# "fra"
#1020# "til"
@ -353,40 +353,40 @@ De vil ta effekt n
#2000# "*** CPU PAUSET ***"
#2001# "CPU Resumed"
#2002# "I en permanent loop som ikke kan bli avsluttet.
Emulering vil nå stoppe.
Emulering vil nå stoppe.
Sjekk ROM'en og dens instillinger."
#2003# "Mislykte i å tildele minne"
#2003# "Mislykte i å tildele minne"
#2004# "Standard eler valgte video plugin er ikke tilstede eller er ugyldig.
Du må gå inn i instillingene og velge en video(grafikk) plugin.
Sjekk at du har i allefall én kompatibel plugin fil i plugin mappen."
Du må gå inn i instillingene og velge en video(grafikk) plugin.
Sjekk at du har i allefall én kompatibel plugin fil i plugin mappen."
#2005# "Standard eler valgte lyd plugin er ikke tilstede eller er ugyldig.
Du må gå inn i instillingene og velge en audio(lyd) plugin.
Sjekk at du har i allefall én kompatibel plugin fil i plugin mappen."
Du må gå inn i instillingene og velge en audio(lyd) plugin.
Sjekk at du har i allefall én kompatibel plugin fil i plugin mappen."
#2006# "Standard eler valgte RSP plugin er ikke tilstede eller er ugyldig.
Du må gå inn i instillingene og velge en RSP plugin.
Du må gå inn i instillingene og velge en RSP plugin.
Sjekk at du har installert Project 64 riktig med en gyldig plugin mappe."
#2007# "Standard eler valgte input plugin er ikke tilstede eller er ugyldig.
Du må gå inn i instillingene og velge en input plugin.
Sjekk at du har i allefall én kompatibel plugin fil i plugin mappen."
#2008# "Mislyktes i å laste plugin:"
#2009# "Mislyktes i å laste ord(word?)
Du må gå inn i instillingene og velge en input plugin.
Sjekk at du har i allefall én kompatibel plugin fil i plugin mappen."
#2008# "Mislyktes i å laste plugin:"
#2009# "Mislyktes i å laste ord(word?)
Sjekk ROM'en og dens innstillinger."
#2010# "Mislykte i å åpne lagrings fil"
#2011# "Mislykte i å åpne EEPROM"
#2012# "Mislykte i å åpne FlashRAM"
#2013# "Mislykte i å åpne MemPak"
#2014# "Forsøk på å åpne zip fil mislyktes.
#2010# "Mislykte i å åpne lagrings fil"
#2011# "Mislykte i å åpne EEPROM"
#2012# "Mislykte i å åpne FlashRAM"
#2013# "Mislykte i å åpne MemPak"
#2014# "Forsøk på å åpne zip fil mislyktes.
Trolig en korrupt zip fil - prøv å unzippe ROM'en manuelt."
#2015# "Forsøk på å åpne fil mislyktes."
#2016# "En feil oppstod når en prøvde å åpne zip fil."
#2017# "Den lastede filen virker ikke til å være en gyldig Nintendo 64 ROM.
Trolig en korrupt zip fil - prøv å unzippe ROM'en manuelt."
#2015# "Forsøk på å åpne fil mislyktes."
#2016# "En feil oppstod når en prøvde å åpne zip fil."
#2017# "Den lastede filen virker ikke til å være en gyldig Nintendo 64 ROM.
Sjekk ROM'en med GoodN64."
#2018# "Ukjent land"
@ -394,40 +394,40 @@ Sjekk ROM'en med GoodN64."
#2020# "Ukjent fil format"
#2021# "Ukjent minne handling
Emulering vil nå stoppe"
#2022# "R4300i OpCode som ikke er tatt hånd om ved"
#2023# "Kjører fra et ikke kartlagt område.
Emulering vil nå stoppe"
#2022# "R4300i OpCode som ikke er tatt hånd om ved"
#2023# "Kjører fra et ikke kartlagt område.
Sjekk ROM'en og dens innstillinger."
#2024# "Hurtig lagrings filen virker ikke som om den passer til den ROM'en som kjører.
#2024# "Hurtig lagrings filen virker ikke som om den passer til den ROM'en som kjører.
Hurtig lagringer må lagres & lastes mellom 100% identiske ROMs,
spesielt REGIONEN og VERSIONEN må være den samme.
Laster du denne lagringen vil den trolig kræsje både emulator og spill.
Hurtig lagringer må lagres & lastes mellom 100% identiske ROMs,
spesielt REGIONEN og VERSIONEN må være den samme.
Laster du denne lagringen vil den trolig kræsje både emulator og spill.
Er du sikker på at du fremdeles vil laste den?"
Er du sikker på at du fremdeles vil laste den?"
#2025# "Program/kjerne feil"
#2026# "Kopirettighets sekvens er ikke funnet i LUT. Spillet vil ikke lenger fungere."
#2027# "Kopi beskyttelses feil"
#2028# "Forandring av en plugin krever at Project 64 må resette den kjørende ROM'en.
Om du ikke vil miste det du gjorde siden sist lagring, svarer du nei og lager en hurtig lagring først.
#2028# "Forandring av en plugin krever at Project 64 må resette den kjørende ROM'en.
Om du ikke vil miste det du gjorde siden sist lagring, svarer du nei og lager en hurtig lagring først.
Skift plugin og restart spill nå?"
Skift plugin og restart spill nå?"
#2029# "Skift plugins"
#2030# "Emulering stoppet"
#2031# "Emulering startet"
#2032# "Ikke mulig å laste hurtig lagring"
#2032# "Ikke mulig å laste hurtig lagring"
#2033# "Lastet hurtig lagring"
#2034# "Lagret nåværend tilstand til"
#2034# "Lagret nåværend tilstand til"
#2035# "Lag en hurtig lagring"
#2036# "Byte swapping ROM"
#2037# "Velger N64 ROM"
#2038# "Lastet"
#2039# "Laster ROM"
#2040# "Kan ikke åpne ROM fordi pluginene ikke er tilpasset"
#2041# "Er du sikker på at du vil slette dette?"
#2040# "Kan ikke åpne ROM fordi pluginene ikke er tilpasset"
#2041# "Er du sikker på at du vil slette dette?"
#2042# "Slett kode"
#2043# "Det kode navnet er allerede i bruk"
#2044# "Du har nådd det maksimumme antall koder for denne ROM'en"
#2044# "Du har nådd det maksimumme antall koder for denne ROM'en"
//The End

View File

@ -1,428 +1,428 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Русский" // LANGUAGE ID
#2 # "Владимир Дуденко" // Author
#1 # "Русский" // LANGUAGE ID
#2 # "Владимир Дуденко" // Author
#3 # "1.6.2" // Version
#4 # "02 апреля 2005" // Date
#4 # "02 апреля 2005" // Date
//About DLL Dialog
#5 # "Перевод (Lang\Russian.pj.Lang)"
#6 # "Автор"
#7 # "Версия"
#8 # "Дата"
#9 # "Страница автора в интернете"
#10 # "База данных игр (.rdb)"
#11 # "Файл с секретными кодами (.cht)"
#12 # "Файл информации (.rdx)"
#5 # "Перевод (Lang\Russian.pj.Lang)"
#6 # "Автор"
#7 # "Версия"
#8 # "Дата"
#9 # "Страница автора в интернете"
#10 # "База данных игр (.rdb)"
#11 # "Файл с секретными кодами (.cht)"
#12 # "Файл информации (.rdx)"
//About INI title
#20 # "Используются файлы:"
#20 # "Используются файлы:"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "&Файл"
#101# "&Открыть игру..."
#102# "&Информация об игре..."
#103# "&Начать эмуляцию"
#104# "&Закончить эмуляцию"
#105# "Выбрать &папку с играми..."
#106# "Обновить &список игр"
#107# "&Последние игры"
#108# "&Какие есть папки"
#109# "Выхо&д"
#100# "&Файл"
#101# "&Открыть игру..."
#102# "&Информация об игре..."
#103# "&Начать эмуляцию"
#104# "&Закончить эмуляцию"
#105# "Выбрать &папку с играми..."
#106# "Обновить &список игр"
#107# "&Последние игры"
#108# "&Какие есть папки"
#109# "Выхо&д"
//System Menu
#120# "&Система"
#121# "&Перезапустить"
#122# "Пауз&а"
#123# "Сделать скриншо&т"
#124# "&Ограничение скорости"
#125# "Со&хранить"
#126# "Сохранить &как..."
#127# "&Возобновить"
#128# "Возобновить &из..."
#129# "Текущий &блок памяти"
#130# "С&екретные коды..."
#131# "GS-к&нопка"
#132# "П&родолжить"
#120# "&Система"
#121# "&Перезапустить"
#122# "Пауз&а"
#123# "Сделать скриншо&т"
#124# "&Ограничение скорости"
#125# "Со&хранить"
#126# "Сохранить &как..."
#127# "&Возобновить"
#128# "Возобновить &из..."
#129# "Текущий &блок памяти"
#130# "С&екретные коды..."
#131# "GS-к&нопка"
#132# "П&родолжить"
//Options Menu
#140# "&Опции"
#141# "Во весь &экран"
#142# "&Всегда сверху"
#143# "Настроить &графику..."
#144# "Настроить &звук..."
#145# "Настроить &управление..."
#146# "&Настроить RSP..."
#147# "&Детально о нагрузке на процессор"
#148# "Настройк&и..."
#140# "&Опции"
#141# "Во весь &экран"
#142# "&Всегда сверху"
#143# "Настроить &графику..."
#144# "Настроить &звук..."
#145# "Настроить &управление..."
#146# "&Настроить RSP..."
#147# "&Детально о нагрузке на процессор"
#148# "Настройк&и..."
//Debugger Menu
#160# "О&тладка"
#160# "О&тладка"
//Language Menu
#175# "&Язык"
#175# "&Язык"
//Help Menu
#180# "&Помощь"
#181# "О файла&х"
#182# "&О Project 64"
#183# "&Форум поддержки"
#184# "&Страница в интернете"
#180# "&Помощь"
#181# "О файла&х"
#182# "&О Project 64"
#183# "&Форум поддержки"
#184# "&Страница в интернете"
//Current Save Slot menu
#190# "По умолчанию"
#191# "&Блок &1"
#192# "Блок &2"
#193# "Блок &3"
#194# "Блок &4"
#195# "Блок &5"
#196# "Блок &6"
#197# "Блок &7"
#198# "Блок &8"
#199# "Блок &9"
#200# "Блок 1&0"
#190# "По умолчанию"
#191# "&Блок &1"
#192# "Блок &2"
#193# "Блок &3"
#194# "Блок &4"
#195# "Блок &5"
#196# "Блок &6"
#197# "Блок &7"
#198# "Блок &8"
#199# "Блок &9"
#200# "Блок 1&0"
//Pop up Menu
#210# "Играть &в игру"
#211# "Информация &об игре"
#212# "Редактировать опции &игры"
#213# "Редактировать секретные &коды"
#210# "Играть &в игру"
#211# "Информация &об игре"
#212# "Редактировать опции &игры"
#213# "Редактировать секретные &коды"
// Menu Descriptions
#250# "Открыть игру (она может быть внутри .zip-файла)"
#251# "Показать информацию об открытой игре"
#252# "Начать эмуляцию загруженной игры"
#253# "Закончить эмуляцию загруженной игры"
#254# "Игры из этой папки будут показаны в списке"
#255# "Отобразить новые (добавленные) игры в окне списка"
#256# "Выйти из программы"
#257# "Перезагрузить текущую игру"
#258# "Приостановить/продолжить текущую игру"
#259# "Сохранить изображение на экране в папку со скриншотами"
#260# "Ограничить количество кадров в секунду до реальной скорости Nintendo64"
#261# "Сохранить текущее состояние игры на выбранный блок памяти"
#262# "Сохранить текущее состояние игры в выбранную папку"
#263# "Возобновить сохраненное состояние игры"
#264# "Выбрать и возобновить сохраненное состояние игры"
#265# "Выбрать секретные коды Game Shark для текущей игры"
#266# "Эмуляция нажатия Game Shark-кнопки для некоторых кодов"
#267# "Развернуть изображение на весь экран"
#268# "Чтобы это окно было поверх всех остальных"
#269# "Настроить выбранный графический плагин"
#270# "Настроить выбранный звуковой плагин"
#271# "Настроить выбранный плагин управления (выбрать кнопки)"
#272# "Настроить Reality Signal Processor"
#273# "Показать/спрятать данные об использовании программой центрального процессора"
#274# "Изменить настройки программы"
#275# "Почитать инструкцию к программе"
#276# "Почитать указания к играм"
#277# "Об авторах файлов поддержки"
#278# "О программе и ее авторах"
#279# "Открыть игру из списка"
#280# "Выбрать эту папку папкой с играми"
#281# "Выбрать этот язык"
#282# "Выбрать этот блок памяти"
#283# "Играть в выбранную игру"
#284# "Информация о выбранной игре"
#285# "Редактировать опции выбранной игры"
#286# "Редактировать секретные коды для выбранной игры"
#250# "Открыть игру (она может быть внутри .zip-файла)"
#251# "Показать информацию об открытой игре"
#252# "Начать эмуляцию загруженной игры"
#253# "Закончить эмуляцию загруженной игры"
#254# "Игры из этой папки будут показаны в списке"
#255# "Отобразить новые (добавленные) игры в окне списка"
#256# "Выйти из программы"
#257# "Перезагрузить текущую игру"
#258# "Приостановить/продолжить текущую игру"
#259# "Сохранить изображение на экране в папку со скриншотами"
#260# "Ограничить количество кадров в секунду до реальной скорости Nintendo64"
#261# "Сохранить текущее состояние игры на выбранный блок памяти"
#262# "Сохранить текущее состояние игры в выбранную папку"
#263# "Возобновить сохраненное состояние игры"
#264# "Выбрать и возобновить сохраненное состояние игры"
#265# "Выбрать секретные коды Game Shark для текущей игры"
#266# "Эмуляция нажатия Game Shark-кнопки для некоторых кодов"
#267# "Развернуть изображение на весь экран"
#268# "Чтобы это окно было поверх всех остальных"
#269# "Настроить выбранный графический плагин"
#270# "Настроить выбранный звуковой плагин"
#271# "Настроить выбранный плагин управления (выбрать кнопки)"
#272# "Настроить Reality Signal Processor"
#273# "Показать/спрятать данные об использовании программой центрального процессора"
#274# "Изменить настройки программы"
#275# "Почитать инструкцию к программе"
#276# "Почитать указания к играм"
#277# "Об авторах файлов поддержки"
#278# "О программе и ее авторах"
#279# "Открыть игру из списка"
#280# "Выбрать эту папку папкой с играми"
#281# "Выбрать этот язык"
#282# "Выбрать этот блок памяти"
#283# "Играть в выбранную игру"
#284# "Информация о выбранной игре"
#285# "Редактировать опции выбранной игры"
#286# "Редактировать секретные коды для выбранной игры"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "Название файла"
#301# "Внутреннее имя"
#302# "Название согласно GoodN64"
#303# "Состояние"
#304# "Размер игры"
#305# "Примечания - ядро"
#306# "Примечания - плагины"
#307# "Примечания юзера в Project64.rdn"
#308# "Код картриджа"
#309# "Изготовитель"
#310# "Регион"
#311# "Разработчик"
#300# "Название файла"
#301# "Внутреннее имя"
#302# "Название согласно GoodN64"
#303# "Состояние"
#304# "Размер игры"
#305# "Примечания - ядро"
#306# "Примечания - плагины"
#307# "Примечания юзера в Project64.rdn"
#308# "Код картриджа"
#309# "Изготовитель"
#310# "Регион"
#311# "Разработчик"
#312# "CRC1"
#313# "CRC2"
#314# "CIC-чип"
#315# "Дата издания"
#316# "Жанр"
#317# "Игроков"
#318# "Вибрация"
#314# "CIC-чип"
#315# "Дата издания"
#316# "Жанр"
#317# "Игроков"
#318# "Вибрация"
//Select Rom
#320# "Выбрать текущую папку с играми"
#340# "Плохой ROM? воспользуйтесь GoodN64 и поищите обновленные файлы поддержки"
#320# "Выбрать текущую папку с играми"
#340# "Плохой ROM? воспользуйтесь GoodN64 и поищите обновленные файлы поддержки"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Опции"
#400# "Опции"
//Tabs
#401# "Плагины"
#402# "Папки"
#403# "Опции"
#404# "Список"
#405# "Дополнительно"
#406# "Опции игры"
#407# "Интеграция"
#408# "Примечания к игре"
#401# "Плагины"
#402# "Папки"
#403# "Опции"
#404# "Список"
#405# "Дополнительно"
#406# "Опции игры"
#407# "Интеграция"
#408# "Примечания к игре"
//Plugin Dialog
#420# "Информация"
#421# " &Плагин RSP: "
#422# " &Графический плагин: "
#423# " &Звуковой плагин: "
#424# " Плагин &упрваления: "
#420# "Информация"
#421# " &Плагин RSP: "
#422# " &Графический плагин: "
#423# " &Звуковой плагин: "
#424# " Плагин &упрваления: "
//Directory Dialog
#440# " Папка с &плагинами: "
#441# " Папка с &играми: "
#442# " &Автоматические сохраненки в папке: "
#443# " &Ваши сохраненки в папке: "
#444# " &Скриншоты в папке: "
#445# "П&омнить последнюю папку"
#446# "Выбрать папку с плагинами"
#447# "Выбрать папку с играми"
#448# "Выбрать папку для автоматических сохраненок"
#449# "Выбрать папку для ваших сохраненок"
#450# "Выбрать папку для скриншотов"
#440# " Папка с &плагинами: "
#441# " Папка с &играми: "
#442# " &Автоматические сохраненки в папке: "
#443# " &Ваши сохраненки в папке: "
#444# " &Скриншоты в папке: "
#445# "П&омнить последнюю папку"
#446# "Выбрать папку с плагинами"
#447# "Выбрать папку с играми"
#448# "Выбрать папку для автоматических сохраненок"
#449# "Выбрать папку для ваших сохраненок"
#450# "Выбрать папку для скриншотов"
//Options Dialog
#460# "&Останавливать эмуляцию когда окно не активно"
#461# "С&разу переходить на полный экран"
#462# "Спр&ятать дополнительные опции"
#463# "&Помнить выбранные секретные коды"
#460# "&Останавливать эмуляцию когда окно не активно"
#461# "С&разу переходить на полный экран"
#462# "Спр&ятать дополнительные опции"
#463# "&Помнить выбранные секретные коды"
//Rom Browser Tab
#480# "&Игр в списке (до 10):"
#481# "шт."
#482# "&Папок в списке (до 10):"
#483# "шт."
#484# "&Включить список"
#485# "Искать в подкаталога&х"
#486# "&Доступные поля:"
#487# "Порядо&к показа:"
#488# "&Список ->"
#489# "<- &Назад"
#490# "Вв&ерх"
#491# "Вн&из"
#480# "&Игр в списке (до 10):"
#481# "шт."
#482# "&Папок в списке (до 10):"
#483# "шт."
#484# "&Включить список"
#485# "Искать в подкаталога&х"
#486# "&Доступные поля:"
#487# "Порядо&к показа:"
#488# "&Список ->"
#489# "<- &Назад"
#490# "Вв&ерх"
#491# "Вн&из"
//Advanced Options
#500# "Эти настройки будут использоваться когда не будет .rdb-файла или будет отключена опция замены внизу."
#501# "&Ядро"
#502# "&Тип ядра:"
#503# "&Метод обработки кода:"
#504# "&Размер памяти:"
#505# "&Соединение блоков:"
#506# "&Начинать эмуляцию при открытии игры"
#507# "&Заменять выбранные опции опциями с базы данных"
#508# "&Автоматически компрессовать сохраненки"
#500# "Эти настройки будут использоваться когда не будет .rdb-файла или будет отключена опция замены внизу."
#501# "&Ядро"
#502# "&Тип ядра:"
#503# "&Метод обработки кода:"
#504# "&Размер памяти:"
#505# "&Соединение блоков:"
#506# "&Начинать эмуляцию при открытии игры"
#507# "&Заменять выбранные опции опциями с базы данных"
#508# "&Автоматически компрессовать сохраненки"
//Rom Options
#520# "&Тип ядра:"
#521# "&Метод обработки кода:"
#522# "&Размер памяти:"
#523# "&Соединение блоков:"
#524# "Т&ип сохранения:"
#525# "Т&акт ядра:"
#526# "&Больший буфер"
#527# "&Включить TLB"
#528# "&Кэшинг регистра"
#529# "&Задержка прерывания SI"
#530# "SP &хак"
#531# "По умолчанию"
#532# "Звук через RSP"
#520# "&Тип ядра:"
#521# "&Метод обработки кода:"
#522# "&Размер памяти:"
#523# "&Соединение блоков:"
#524# "Т&ип сохранения:"
#525# "Т&акт ядра:"
#526# "&Больший буфер"
#527# "&Включить TLB"
#528# "&Кэшинг регистра"
#529# "&Задержка прерывания SI"
#530# "SP &хак"
#531# "По умолчанию"
#532# "Звук через RSP"
//Core Styles
#540# "Интерпретатор"
#541# "Рекомпилятор"
#542# "Синхронизировать ядра"
#540# "Интерпретатор"
#541# "Рекомпилятор"
#542# "Синхронизировать ядра"
//Self Mod Methods
#560# "Нет"
#561# "Кэш"
#562# "Защищать память"
#563# "Проверять память и кэш"
#564# "Изменять память и кэш"
#565# "Лучше проверять память"
#560# "Нет"
#561# "Кэш"
#562# "Защищать память"
#563# "Проверять память и кэш"
#564# "Изменять память и кэш"
#565# "Лучше проверять память"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "Да"
#601# "Нет"
#600# "Да"
#601# "Нет"
//Save Type
#620# "По умолчанию"
#620# "По умолчанию"
#621# "4kbit EEPROM"
#622# "16kbit EEPROM"
#623# "32kbytes SRAM"
#624# "128kbyte FlashRAM"
//Shell Integration Tab
#640# "Объединить с Project64:"
#640# "Объединить с Project64:"
//Rom Notes
#660# "&Состояние игры:"
#661# "Примечания - &ядро:"
#662# "Примечания - &плагин:"
#660# "&Состояние игры:"
#661# "Примечания - &ядро:"
#662# "Примечания - &плагин:"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "Информация об игре"
#800# "Информация об игре"
//Rom Info Text
#801# "Название ROMа:"
#802# "Название файла:"
#803# "Путь к файлу:"
#804# "Размер игры:"
#805# "Код картриджа:"
#806# "Изготовитель:"
#807# "Регион:"
#801# "Название ROMа:"
#802# "Название файла:"
#803# "Путь к файлу:"
#804# "Размер игры:"
#805# "Код картриджа:"
#806# "Изготовитель:"
#807# "Регион:"
#808# "CRC1:"
#809# "CRC2:"
#810# "CIC-чип:"
#810# "CIC-чип:"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "Коды"
#1001# "Коды:"
#1002# " Примечания: "
#1003# "Включить все"
#1004# "&Отключить все"
#1000# "Коды"
#1001# "Коды:"
#1002# " Примечания: "
#1003# "Включить все"
#1004# "&Отключить все"
//Add Cheat
#1005# "Добавить код"
#1006# "Название:"
#1007# "Код:"
#1008# "Вставить"
#1009# "Очистить"
#1010# " Примечания к коду: "
#1011# "Добавить в базу данных"
#1005# "Добавить код"
#1006# "Название:"
#1007# "Код:"
#1008# "Вставить"
#1009# "Очистить"
#1010# " Примечания к коду: "
#1011# "Добавить в базу данных"
//Code extension
#1012# "Расширение кода"
#1013# "Выберите значение к:"
#1014# "Да"
#1015# "Нет"
#1012# "Расширение кода"
#1013# "Выберите значение к:"
#1014# "Да"
#1015# "Нет"
//Digital Value
#1016# "Цифра величины"
#1017# "Выберите значение для:"
#1018# "&Значение"
#1019# "от"
#1020# "до"
#1021# "&Примечания:"
#1022# "Добавить код"
#1023# "Новый код"
#1024# "<адресс> <код>"
#1025# "Опции:"
#1026# "<код> <метка>"
#1027# "Редактировать код"
#1028# "Обновить код"
#1040# "Добавить код..."
#1041# "Редактировать..."
#1042# "Удалить"
#1016# "Цифра величины"
#1017# "Выберите значение для:"
#1018# "&Значение"
#1019# "от"
#1020# "до"
#1021# "&Примечания:"
#1022# "Добавить код"
#1023# "Новый код"
#1024# "<адресс> <код>"
#1025# "Опции:"
#1026# "<код> <метка>"
#1027# "Редактировать код"
#1028# "Обновить код"
#1040# "Добавить код..."
#1041# "Редактировать..."
#1042# "Удалить"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "Пауза"
#2001# "Работа возобновлена"
#2002# "Программа бесповоротно зациклилась.
Эмуляция будет приостановлена.
#2000# "Пауза"
#2001# "Работа возобновлена"
#2002# "Программа бесповоротно зациклилась.
Эмуляция будет приостановлена.
Проверьте игру и её опции."
#2003# "Не удалось распределить память"
#2004# "Графический плагин не найден или поврежден.
Проверьте игру и её опции."
#2003# "Не удалось распределить память"
#2004# "Графический плагин не найден или поврежден.
Вам нужно зайти в Настройки и выбрать графический плагин.
В папке с плагинами должен быть хотя бы один совместимый плагин."
#2005# "Звуковой плагин не найден или поврежден.
Вам нужно зайти в Настройки и выбрать графический плагин.
В папке с плагинами должен быть хотя бы один совместимый плагин."
#2005# "Звуковой плагин не найден или поврежден.
Вам нужно зайти в Настройки и выбрать звуковой плагин.
В папке с плагинами должен быть хотя бы один совместимый плагин."
#2006# "Плагин RSP не найден или поврежден.
Вам нужно зайти в Настройки и выбрать звуковой плагин.
В папке с плагинами должен быть хотя бы один совместимый плагин."
#2006# "Плагин RSP не найден или поврежден.
Вам нужно зайти в Настройки и выбрать плагин RSP.
В папке с плагинами должен быть хотя бы один совместимый плагин."
#2007# "Плагин управления не найден или поврежден.
Вам нужно зайти в Настройки и выбрать плагин RSP.
В папке с плагинами должен быть хотя бы один совместимый плагин."
#2007# "Плагин управления не найден или поврежден.
Вам нужно зайти в Настройки и выбрать плагин управления.
В папке с плагинами должен быть хотя бы один совместимый плагин."
#2008# "Не удалось загрузить плагин:"
#2009# "Не удалось загрузить слово
Вам нужно зайти в Настройки и выбрать плагин управления.
В папке с плагинами должен быть хотя бы один совместимый плагин."
#2008# "Не удалось загрузить плагин:"
#2009# "Не удалось загрузить слово
Проверьте игру и её опции."
#2010# "Не удалось открыть сохраненку"
#2011# "Не удалось открыть EEPROM"
#2012# "Не удалось открыть FlashRAM"
#2013# "Не удалось открыть MemPak"
#2014# "Не удалось открыть .zip-файл.
Проверьте игру и её опции."
#2010# "Не удалось открыть сохраненку"
#2011# "Не удалось открыть EEPROM"
#2012# "Не удалось открыть FlashRAM"
#2013# "Не удалось открыть MemPak"
#2014# "Не удалось открыть .zip-файл.
Возможно .zip-файл сломан - проверьте файл и путь к нему."
#2015# "Не удалось открыть файл."
#2016# "Случилась ошибка при открытии .zip-файла."
#2017# "Загруженный файл не является действительным Nintendo64 ROMом.
Возможно .zip-файл сломан - проверьте файл и путь к нему."
#2015# "Не удалось открыть файл."
#2016# "Случилась ошибка при открытии .zip-файла."
#2017# "Загруженный файл не является действительным Nintendo64 ROMом.
Проверьте ваши игры прграммой GoodN64."
#2018# "Неизвестный регион"
#2019# "Неизвестный CIC-чип"
#2020# "Неизвестный формат файла"
#2021# "Неизвестное деиствие памяти
Проверьте ваши игры прграммой GoodN64."
#2018# "Неизвестный регион"
#2019# "Неизвестный CIC-чип"
#2020# "Неизвестный формат файла"
#2021# "Неизвестное деиствие памяти
Эмуляция приостановлена"
#2022# "Неуправляемый R4300i код в "
#2023# "Неправильное выполнение команды.
Эмуляция приостановлена"
#2022# "Неуправляемый R4300i код в "
#2023# "Неправильное выполнение команды.
Проверьте игру и её опции."
#2024# "Сохраненка не подходит к текущей игре.
Проверьте игру и её опции."
#2024# "Сохраненка не подходит к текущей игре.
Состояния игры должны сохраняться и загружаться на 100% идентичными играми,
то есть РЕГИОН и ВЕРСИЯ должны быть одинаковыми.
Загрузка этой сохраненки может привести к зависанию.
Состояния игры должны сохраняться и загружаться на 100% идентичными играми,
то есть РЕГИОН и ВЕРСИЯ должны быть одинаковыми.
Загрузка этой сохраненки может привести к зависанию.
Вы действительно желаете продолжить загрузку?"
#2025# "Ошибка программы/ядра"
#2026# "Авторские права в LUT не найдены. Игра не будет работать."
#2027# "Отказ защиты от копирования"
#2028# "Смена плагина приведет к перезагрузке текущей игры.
Если вы не желаете начинать игру сначала, отвечайте Нет и сохраните состояние игры.
Вы действительно желаете продолжить загрузку?"
#2025# "Ошибка программы/ядра"
#2026# "Авторские права в LUT не найдены. Игра не будет работать."
#2027# "Отказ защиты от копирования"
#2028# "Смена плагина приведет к перезагрузке текущей игры.
Если вы не желаете начинать игру сначала, отвечайте Нет и сохраните состояние игры.
Заменить плагины и перезапустить игру?"
#2029# "Замена плагинов"
#2030# "Эмуляция прекращена"
#2031# "Начата эмуляция"
#2032# "Невозможно загрузиттть сохраненку"
#2033# "Загружена сохраненка"
#2034# "Состояние сохранено в файл "
#2035# "Выбран блок памяти"
#2036# "Оптимизация ROMа"
#2037# "Выбирается игра"
#2038# "Загружено"
#2039# "Загружается игра"
#2040# "Невозможно открыть игру из-за неудачной инициализации плагинов.
Заменить плагины и перезапустить игру?"
#2029# "Замена плагинов"
#2030# "Эмуляция прекращена"
#2031# "Начата эмуляция"
#2032# "Невозможно загрузиттть сохраненку"
#2033# "Загружена сохраненка"
#2034# "Состояние сохранено в файл "
#2035# "Выбран блок памяти"
#2036# "Оптимизация ROMа"
#2037# "Выбирается игра"
#2038# "Загружено"
#2039# "Загружается игра"
#2040# "Невозможно открыть игру из-за неудачной инициализации плагинов.
Попробуйте выбрать подходящий плагин в Настройках."
#2041# "Вы действительно желаете удалить этот код?"
#2042# "Удалить код"
#2043# "Уже есть код с таким названием, выберите другое название."
#2044# "Достигнуто максимальное количество секретных кодов к этой игре."
Попробуйте выбрать подходящий плагин в Настройках."
#2041# "Вы действительно желаете удалить этот код?"
#2042# "Удалить код"
#2043# "Уже есть код с таким названием, выберите другое название."
#2044# "Достигнуто максимальное количество секретных кодов к этой игре."
//Thanks to KuKzz for fixing 141, 256, 268, 302, 308, 317 and 2004-2007.
//Official support site: http://vdx2004.narod.ru

View File

@ -1,431 +0,0 @@
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Español" // LANGUAGE ID
#2 # "NeOak <sebashoyos@yahoo.com>" // Author
#3 # "1.3" // Version
#4 # "11 de Abril de 2005" // Date
//About DLL Dialog
#5 # "Idioma Actual"
#6 # "Autor"
#7 # "Versión"
#8 # "Fecha"
#9 # "Visitar Sitio Web"
#10 # "Base de datos de ROMs (.RDB)"
#11 # "Archivo de Cheats (.CHT)"
#12 # "Información Adicional del ROM (.RDX)"
//About INI title
#20 # "Project64 esta actualmente usando:"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "&Archivo"
#101# "A&brir Rom"
#102# "Info. del Rom...."
#103# "Comen&zar Emulación"
#104# "Terminar Emu&lación"
#105# "Escoger el Directorio de ROMs..."
#106# "Actualizar Lista de ROMs"
#107# "Ultimo ROM"
#108# "Ultimo Directorio de ROMs"
#109# "&Salir"
//System Menu
#120# "Sis&tema"
#121# "&Reiniciar"
#122# "&Pausar"
#123# "Generar Imagen"
#124# "Limitar Cuadros por Segundo"
#125# "&Guardar"
#126# "Guardar Como..."
#127# "R&estaurar"
#128# "Cargar..."
#129# "Actual Estado de Partida G&uardada"
#130# "Cheats..."
#131# "Botón de GameShark"
#132# "Continuar"
//Options Menu
#140# "&Opciones"
#141# "Pantalla Completa"
#142# "Siempre al Frente"
#143# "Configurar Plugin Grafico ..."
#144# "Configurar Plugin de Sonido..."
#145# "Configurar Plugin del Control..."
#146# "Configurar Plugin del RSP..."
#147# "Mostrar uso del Procesador en %"
#148# "Co&nfiguración..."
//Debugger Menu
#160# "&Debugger"
//Language Menu
#175# "&Idioma"
//Help Menu
#180# "A&yuda"
#181# "Acerca de los archi&vos INI"
#182# "A&cerca de Project 64"
//Help Menu for 1.6
#183# "Foro de Ay&uda"
#184# "&Pagina Web"
//Current Save Slot menu
#190# "Prederteminado"
#191# "Ranura 1"
#192# "Ranura 2"
#193# "Ranura 3"
#194# "Ranura 4"
#195# "Ranura 5"
#196# "Ranura 6"
#197# "Ranura 7"
#198# "Ranura 8"
#199# "Ranura 9"
#200# "Ranura 10"
//Pop up Menu
#210# "Jugar Videojuego"
#211# "Información del ROM"
#212# "Editar Configuración del Juego"
#213# "Editar Cheats"
// Menu Descriptions
#250# "Abrir una imagen ROM de N64"
#251# "Mostrar Información acerca de la imagen escogida"
#252# "Comenzar Emulación de la imagen ROM escogida"
#253# "Detener Emulación de la imagen ROM escogida"
#254# "Escoger el Directorio de los ROMs"
#255# "Actualizar la lista de ROMs en el Navegador de ROMs"
#256# "Salir de este Emulador"
#257# "Reiniciar la imagen ROM actual (recarga cualquier cambio de configuración)"
#258# "Pausar / Continuar Emulación del ROM corriendo actualmente"
#259# "Generar una Captura en Imagen de Bits de la Escena actual"
#260# "Limitar Cuadros por Segundos a la velocidad correcta del N64"
#261# "Crear una instantánea del sistema actual para un Guardado Rápido"
#262# "Crear una instantánea del sistema actual para guardar a un archivo"
#263# "Cargar una instantánea guardada "
#264# "Escoger un archivo de instantánea para cargar"
#265# "Activar/Desactivar cheats del GameShark"
#266# "El Botón del GameShark es usado con cheats específicos"
#267# "Cambiar emulación de modo ventana a modo pantalla completa"
#268# "Hacer que la ventana quede enfrente de las demás"
#269# "Cambiar Configuración dentro del plugin Grafico"
#270# "Cambiar Configuración dentro del plugin de Sonido"
#271# "Cambiar Configuración dentro del plugin del Control (escoger teclas)"
#272# "Cambiar Configuración dentro del plugin del RSP"
#273# "Mostrar el uso del procesador por el emulador dividido sobre varios recursos"
#274# "Ver / Cambiar preferencias para este programa"
#275# "Ver Manual del programa"
#276# "Ver FAQ del programa"
#277# "Acerca de los Autores de los archivos de soporte .INI"
#278# "Acerca del programa y los Autores"
#279# "Abrir la anterior imagen ROM"
#280# "Escoger este directorio como el directorio de ROMs"
#281# "Cambiar el idioma que usa el emulador"
#282# "Escoger este directorio para guardado rápido"
#283# "Jugar Videojuego escogido"
#284# "Información acerca del juego escogido"
#285# "Editar Configuración para el juego escogido"
#286# "Editar cheats para el juego escogido"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "Nombre Archivo"
#301# "Nombre Interno"
#302# "Buen Nombre"
#303# "Estado"
#304# "Tamaño del ROM"
#305# "Notas (Core)"
#306# "Notas (plugins determinados)"
#307# "Notas (Usuario)"
#308# "ID del Cartucho"
#309# "Fabricante"
#310# "País"
#311# "Desarrollador"
#312# "CRC1"
#313# "CRC2"
#314# "Chip CIC"
#315# "Fecha de Lanzamiento"
#316# "Genero"
#317# "# Jugadores"
//Rom Browser Fields for 1.6
#318# "Vibracion"
//Select Rom
#320# "Escoger Directorio Actual de ROMs"
#340# "ROM Dañado? Usa GoodN64 & revisa por INIs actualizados"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Configuración"
//Tabs
#401# "Plugins"
#402# "Directorios"
#403# "Opciones"
#404# "Selección de Rom"
#405# "Avanzado"
#406# "Configuración del Rom"
#407# "Integración de Interfase"
#408# "Notas del Rom"
//Plugin Dialog
#420# "Acerca de"
#421# " plugin del Reality Signal Processor: "
#422# " plugin de Video (gráficos): "
#423# " plugin de Audio (sonido) : "
#424# " plugin de Control (mando): "
//Directory Dialog
#440# " Directorio de Plugin:: "
#441# " Directorio Rom: "
#442# " Batería del N64: "
#443# " Guardados Instantáneos: "
#444# " Capturas de Pantalla: "
#445# "Ultima Carpeta de la cual un Rom fue abierto."
#446# "Escoger Directorio de Plugin"
#447# "Escoger Directorio de ROMs"
#448# "Escoger Directorio de la Batería del N64"
#449# "Escoger Directorio de Guardados Instantáneos"
#450# "Escoger Directorio de Capturas de Pantalla"
//Options Dialog
#460# "Pausar emulación cuando la ventana no este al frente"
#461# "Cuando se cargue un ROM cambiar a Pantalla Completa"
#462# "Esconder Configuración Avanzada"
#463# "Recordar cheats escogidos"
//Rom Browser Tab
#480# "Máx. # de Roms Recordados (Máx. 10):"
#481# "roms"
#482# "Máx. # de Dir. de Rom Recordados (Máx. 10):"
#483# "dir."
#484# "Usar Navegador de Roms"
#485# "Usar recurso de Directorio"
#486# "Campos disponibles:"
#487# "Mostrar campos en este orden:"
#488# "Agregar->"
#489# "<-Remover"
#490# "Arriba"
#491# "Abajo"
//Advanced Options
#500# "La mayoría de los cambios no tendrán efecto hasta que un nuevo ROM sea abierto o el actual sea reiniciado."
#501# "Predeterminado por el Core"
#502# "Estilo de CPU core:"
#503# "Método de trabajar código:"
#504# "Tamaño de Memoria RAM:"
#505# "Enlazado Avanzado de Bloques:"
#506# "¿Comenzar Emulación cuando el ROM sea abierto?"
#507# "Siempre sobrescribir configuración predeterminada con las del INI?"
#508# "Automáticamente comprimir partidas guardadas"
//Rom Options
#520# "Estilo de CPU core:"
#521# "Método de trabajar código:"
#522# "Tamaño de Memoria:"
#523# "Enlazado Avanzado de Bloques:"
#524# "Tipo de Batería predeterminado:"
#525# "Contra Factor:"
#526# "Buffer de Compilación mayor"
#527# "Usar TLB"
#528# "Registro a mem.cache"
#529# "Demorar Interrupción 'SI'"
#530# "Hackear SP"
#531# "Predeterminado"
//Rom Options for 1.6
#532# ""Señal de Audio del RSP""
//Core Styles
#540# "Interprete"
#541# "Recompilador"
#542# "Sincronizar Cores"
//Self Mod Methods
#560# "Ninguno"
#561# "Cache"
#562# "Proteger Memoria"
#563# "Revisa Memoria & Cache"
#564# "Cambia Memoria & Cache"
#565# "Revisa Mem. Avanzada"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "Si"
#601# "No"
//Save Type
#620# "Usar Primer Tipo Escogido"
#621# "4Kbit Eeprom"
#622# "16Kbit Eeprom"
#623# "32Kbytes SRAM"
#624# "Flash RAM"
//Shell Integration Tab
#640# "Asociación de Extensiones:"
//Rom Notes
#660# "Estado Rom:"
#661# "Nota Core:"
#662# "Nota Plugin:"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "Información del Rom"
//Rom Info Text
#801# "Nombre ROM:"
#802# "Nombre Archivo:"
#803# "Localización:"
#804# "Tamaño Rom:"
#805# "ID del Cartucho:"
#806# "Fabricante:"
#807# "País:"
#808# "CRC1:"
#809# "CRC2:"
#810# "Chip CIC:"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "Cheats"
#1001# "Cheats:"
#1002# " Notas: "
#1003# "Marcar Todas"
#1004# "Desmarcar Todas"
//Add Cheat
#1005# "Añadir Cheat"
#1006# "Nombre:"
#1007# "Código:"
#1008# "Insertar"
#1009# "Borrar"
#1010# " Notas de Cheat: "
#1011# "Añadir a BD"
//Code extension
#1012# "Extensiones Código"
#1013# "Escoja un valor a ser usado para:"
#1014# "OK"
#1015# "Cancelar"
//Digital Value
#1016# "Digito Cantidad"
#1017# "Escoja un valor para:"
#1018# "&Valor"
#1019# "de"
#1020# "para"
#1021# "&Notas:"
#1022# "Añadir Cheat"
#1023# "Nuevo Cheat"
#1024# "<dirección> <valor>"
#1025# "Opciones:"
#1026# "<valor> <etiqueta>"
#1027# "Editar Cheat"
#1028# "Actualizar Cheat"
#1040# "Añadir Nuevo Cheat..."
#1041# "Editar"
#1042# "Borrar"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "*** CPU DETENIDO ***"
#2001# "CPU Resumido"
#2002# "En un ciclo perpetuo que no puede cancelarse.
La Emulación se detendrá.
Verifique ROM y configuración del ROM."
#2003# "Error al llenar Memoria"
#2004# "El plugin Grafico falta o es invalido.
Vaya a Configuración y escoja un plugin de video (grafico).
Revise que tenga al menos un plugin compatible en su carpeta de plugins."
#2005# "El plugin de Sonido falta o es invalido.
Vaya a Configuración y escoja un plugin de audio (sonido).
Revise que tenga al menos un plugin compatible en su carpeta de plugins."
#2006# "El plugin de RSP falta o es invalido.
Vaya a Configuración y escoja un plugin del RSP.
Revise que tenga al menos un plugin compatible en su carpeta de plugins."
#2007# "El plugin del Control falta o es invalido.
Vaya a Configuración y escoja un plugin de control (mando).
Revise que tenga al menos un plugin compatible en su carpeta de plugins."
#2008# "Error al cargar plugin:"
#2009# "Error al cargar codigo
Verifica ROM y configuración del ROM."
#2010# "Error al abrir Partida Guardada"
#2011# "Error al abrir Eeprom"
#2012# "Error al abrir Flashram"
#2013# "Error al abrir mempak"
#2014# "Error al abrir ZIP.
Tal vez este dañado - intenta descomprimirlo."
#2015# "Intento para abrir archivo fallo."
#2016# "Error ocurrió intentando abrir archivo ZIP."
#2017# "Este archivo no parece ser un ROM de Nintendo64."
Verifica tus ROMs con GoodN64."
#2018# "País desconocido"
#2019# "Chip CIC desconocido"
#2020# "Formato de Archivo desconocido"
#2021# "Acción de Memoria desconocida
Emulación detenida"
#2022# "OpCode R4300i sin manejar en"
#2023# "Ejecutando espacio no mapeado.
Verifica ROM y configuración del ROM."
#2024# "Partida no parece concordar con el ROM corriendo.
Partidas deben ser guardadas y cargadas entre ROMs idénticos,
En particular la REGION y VERSION deben ser iguales.
Cargar esta partida podría causar al juego y/o emulador no responder.
Seguro que quieres continuar?"
#2025# "Error"
#2026# "Secuencia de Copyright falta en el LUT. El Juego no funcionara más."
#2027# "Error en Sistema Anti-Copia"
#2028# "Cambiar un plugin requiere que Project64 reinicie el ROM corriendo.
Si no quieres perder tu progreso, di No y crea una partida primero.
¿Cambiar plugins y reiniciar juego ahora?"
#2029# "Cambiar Plugins"
#2030# "Emulación terminada"
#2031# "Emulación iniciada"
#2032# "Incapaz de cargar partida"
#2033# "Partida cargada"
#2034# "Guardar partida actual en"
#2035# "Ranura de Partida"
#2036# "Cambiando Bytes de la imagen"
#2037# "Escogiendo imagen de N64"
#2038# "Cargada"
#2039# "Cargando imagen"
#2040# "ROM no se puede abrir porque los plugins no se han iniciado correctamente"
#2041# "Estas seguro de querer borrar esto?"
#2042# "Borrar Cheat"
#2043# "Nombre de Cheat ya esta en uso"
#2044# "Haz alcanzado el limite de Cheats para este ROM"
//Fin

View File

@ -1,425 +0,0 @@
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Español (España)" // LANGUAGE ID
#2 # "NeOak Editado: PacoChan" // Author
#3 # "1.3" // Version
#4 # "1 de Abril de 2005" // Date
//About DLL Dialog
#5 # "Idioma Actual"
#6 # "Autor"
#7 # "Versión"
#8 # "Fecha"
#9 # "Visitar Sitio Web"
#10 # "Base de datos de ROMs (.RDB)"
#11 # "Archivo de Trucos (.CHT)"
#12 # "Información Adicional de la ROM (.RDX)"
//About INI title
#20 # "Project64 está actualmente usando:"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "&Archivo"
#101# "A&brir Rom"
#102# "Información de la Rom..."
#103# "Comen&zar Emulación"
#104# "Terminar Emu&lación"
#105# "Escoger el Directorio de ROMs..."
#106# "Actualizar Lista de ROMs"
#107# "Última ROM Utilizada"
#108# "Último Directorio de ROMs Utilizado"
#109# "&Salir"
//System Menu
#120# "Sis&tema"
#121# "&Reiniciar"
#122# "&Pausar"
#123# "Capturar Pantalla"
#124# "Limitar Cuadros por Segundo"
#125# "&Guardar"
#126# "Guardar Como..."
#127# "R&estaurar"
#128# "Cargar..."
#129# "Estado Actual de la Partida G&uardada"
#130# "Trucos..."
#131# "Botón de GameShark"
#132# "Continuar"
//Options Menu
#140# "&Opciones"
#141# "Pantalla Completa"
#142# "Siempre al Frente"
#143# "Configurar Plugin Gráfico..."
#144# "Configurar Plugin de Sonido..."
#145# "Configurar Plugin de Control..."
#146# "Configurar Plugin del RSP..."
#147# "Mostrar uso del Procesador en %"
#148# "Co&nfiguración..."
//Debugger Menu
#160# "&Debugger"
//Language Menu
#175# "&Idioma"
//Help Menu
#180# "A&yuda"
#181# "Acerca de los archi&vos INI"
#182# "A&cerca de Project 64"
#183# "Visitar el &Foro"
#184# "&Página Principal"
//Current Save Slot menu
#190# "Prederteminado"
#191# "Ranura 1"
#192# "Ranura 2"
#193# "Ranura 3"
#194# "Ranura 4"
#195# "Ranura 5"
#196# "Ranura 6"
#197# "Ranura 7"
#198# "Ranura 8"
#199# "Ranura 9"
#200# "Ranura 10"
//Pop up Menu
#210# "Jugar Juego"
#211# "Información de la ROM"
#212# "Editar la Configuración del Juego"
#213# "Editar Trucos"
// Menu Descriptions
#250# "Abrir una ROM de N64"
#251# "Mostrar Información acerca de la ROM escogida"
#252# "Comenzar Emulación de la ROM escogida"
#253# "Detener Emulación de la ROM escogida"
#254# "Escoger el Directorio de las ROMs"
#255# "Actualizar la lista de ROMs en el Navegador de ROMs"
#256# "Salir del Emulador"
#257# "Reiniciar la ROM actual (recarga cualquier cambio en la configuración)"
#258# "Pausar / Continuar Emulación de la ROM actual"
#259# "Genera una Imágen de la Escena actual"
#260# "Limitar Cuadros por Segundo a la velocidad correcta de la N64"
#261# "Crear un Guardado instantáneo de la Partida Actual"
#262# "Crear un Guardado instantáneo de la Partida Actual en el Archivo Especificado"
#263# "Cargar un Guardado Instantáneo"
#264# "Cargar un Guardado Instantáneo desde un Archivo"
#265# "Activar/Desactivar Trucos del GameShark"
#266# "El Botón del GameShark es usado con Trucos específicos"
#267# "Cambiar emulación de modo ventana a modo pantalla completa"
#268# "Hacer que la ventana quede enfrente de las demás"
#269# "Cambiar Configuración del plugin Gráfico"
#270# "Cambiar Configuración del plugin de Sonido"
#271# "Cambiar Configuración del plugin del Control (escoger teclas)"
#272# "Cambiar Configuración del plugin del RSP"
#273# "Mostrar el uso del procesador por el emulador dividido en varios recursos"
#274# "Ver / Cambiar preferencias de este programa"
#275# "Ver Manual del programa"
#276# "Ver FAQ del programa"
#277# "Acerca de los Autores de los archivos de soporte .INI"
#278# "Acerca del programa y los Autores"
#279# "Abrir la ROM Anterior"
#280# "Escoger este directorio como el directorio de ROMs"
#281# "Cambiar el idioma que usa el emulador"
#282# "Escoger este directorio para los guardados rápidos"
#283# "Jugar Juego escogido"
#284# "Información acerca del juego escogido"
#285# "Editar Configuración para el juego escogido"
#286# "Editar Trucos para el juego escogido"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "Nombre Archivo"
#301# "Nombre Interno"
#302# "Nombre del Good"
#303# "Estado"
#304# "Tamaño del ROM"
#305# "Notas (Core)"
#306# "Notas (plugins predeterminados)"
#307# "Notas (Usuario)"
#308# "ID del Cartucho"
#309# "Fabricante"
#310# "País"
#311# "Desarrollador"
#312# "CRC1"
#313# "CRC2"
#314# "Chip CIC"
#315# "Fecha de Lanzamiento"
#316# "Genero"
#317# "# Jugadores"
#318# "Vibración"
//Select Rom
#320# "Escoger Directorio Actual de ROMs"
#340# "¿ROM Dañado? Usa GoodN64 y comprueba si hay INIs actualizados"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Configuración"
//Tabs
#401# "Plugins"
#402# "Directorios"
#403# "Opciones"
#404# "Selección de Rom"
#405# "Avanzado"
#406# "Configuración de la Rom"
#407# "Integración de la Interfaz"
#408# "Notas de la Rom"
//Plugin Dialog
#420# "Acerca de..."
#421# " Plugin del Reality Signal Processor: "
#422# " Plugin de Video (gráficos): "
#423# " Plugin de Audio (sonido) : "
#424# " Plugin de Control (mando): "
//Directory Dialog
#440# " Directorio de Plugins: "
#441# " Directorio de Roms: "
#442# " Batería de N64: "
#443# " Guardados Instantáneos: "
#444# " Capturas de Pantalla: "
#445# "Última Carpeta en la que una Rom fue abierta."
#446# "Escoger Directorio de Plugins"
#447# "Escoger Directorio de ROMs"
#448# "Escoger Directorio de la Batería de N64"
#449# "Escoger Directorio de Guardados Instantáneos"
#450# "Escoger Directorio de Capturas de Pantalla"
//Options Dialog
#460# "Pausar emulación cuando la ventana no esté activa"
#461# "Al cargar una ROM, cambiar a Pantalla Completa"
#462# "Ocultar Configuración Avanzada"
#463# "Recordar los Trucos Escogidos"
//Rom Browser Tab
#480# "Nº de Roms Recordadas (Máximo 10):"
#481# "Roms"
#482# "Nº de Directorios Recordados (Máximo 10):"
#483# "Dir."
#484# "Usar Navegador de Roms"
#485# "Usar recurso de Directorio"
#486# "Campos disponibles:"
#487# "Ver campos en orden:"
#488# "Agregar->"
#489# "<-Quitar"
#490# "Arriba"
#491# "Abajo"
//Advanced Options
#500# "La mayoría de los cambios no tendrán efecto hasta que se cargue una ROM o se reinicie la actual."
#501# "Ajustes Predeterminados del Core"
#502# "Estilo del Core de la CPU:"
#503# "Método de trabajar código:"
#504# "Tamaño de Memoria RAM:"
#505# "Enlazado Avanzado de Bloques:"
#506# "Comenzar Emulación al cargar una ROM"
#507# "Siempre sobreescribir configuración predeterminada con la del INI"
#508# "Automáticamente comprimir partidas guardadas"
//Rom Options
#520# "Estilo del Core de la CPU:"
#521# "Método de trabajar código:"
#522# "Tamaño de Memoria:"
#523# "Enlazado Avanzado de Bloques:"
#524# "Tipo de Batería predeterminado:"
#525# "Contra Factor:"
#526# "Buffer de Compilación mayor"
#527# "Usar TLB"
#528# "Registrar a la Caché"
#529# "Retrasar Interrupción 'SI'"
#530# "Hackear SP"
#531# "Predeterminado"
#532# ""Señal de Audio del RSP""
//Core Styles
#540# "Intérprete"
#541# "Recompilador"
#542# "Sincronizar Cores"
//Self Mod Methods
#560# "Ninguno"
#561# "Caché"
#562# "Proteger Memoria"
#563# "Revisa Memoria & Cache"
#564# "Cambia Memoria & Cache"
#565# "Revisa Mem. Avanzada"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "Sí"
#601# "No"
//Save Type
#620# "Usar Primer Tipo Escogido"
#621# "4Kbit Eeprom"
#622# "16Kbit Eeprom"
#623# "32Kbytes SRAM"
#624# "Flash RAM"
//Shell Integration Tab
#640# "Asociación de Extensiones:"
//Rom Notes
#660# "Estado Rom:"
#661# "Nota Core:"
#662# "Nota Plugin:"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "Información del Rom"
//Rom Info Text
#801# "Nombre ROM:"
#802# "Nombre Archivo:"
#803# "Localización:"
#804# "Tamaño Rom:"
#805# "ID del Cartucho:"
#806# "Fabricante:"
#807# "País:"
#808# "CRC1:"
#809# "CRC2:"
#810# "Chip CIC:"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "Trucos"
#1001# "Trucos:"
#1002# " Notas: "
#1003# "Activar Todo"
#1004# "Desactivar Todo"
//Add Cheat
#1005# "Añadir Truco"
#1006# "Nombre:"
#1007# "Código:"
#1008# "Insertar"
#1009# "Borrar"
#1010# " Notas del Truco: "
#1011# "Añadir a la Base de Datos"
//Code extension
#1012# "Extensiones de Código"
#1013# "Elige un valor a ser usado para:"
#1014# "Aceptar"
#1015# "Cancelar"
//Digital Value
#1016# "Digito de Cantidad"
#1017# "Elige un valor para:"
#1018# "&Valor"
#1019# "de"
#1020# "para"
#1021# "&Notas:"
#1022# "Añadir Truco"
#1023# "Nuevo Truco"
#1024# "<dirección> <valor>"
#1025# "Opciones:"
#1026# "<valor> <etiqueta>"
#1027# "Editar Truco"
#1028# "Actualizar Truco"
#1040# "Añadir Nuevo Truco..."
#1041# "Editar"
#1042# "Borrar"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "*** CPU DETENIDO ***"
#2001# "CPU Resumido"
#2002# "Se ha producido un bucle infinito del que no se puede Salir.
La Emulación se detendrá.
Verifica la ROM y su configuración."
#2003# "Error al llenar la Memoria"
#2004# "No se ha detectado el plugin Gráfico.
En Configuración, escoge un plugin de Gráfico.
Comprueba que tengas al menos un plugin compatible en la carpeta de plugins."
#2005# "No se ha detectado el plugin de Sonido.
En Configuración, escoge un plugin de Sonido.
Comprueba que tengas al menos un plugin compatible en la carpeta de plugins."
#2006# "No se ha detectado el plugin RSP.
En Configuración, escoge un plugin de RSP.
Comprueba que tengas al menos un plugin compatible en la carpeta de plugins."
#2007# "No se ha detectado el plugin del Control.
En Configuración, escoge un plugin de Control.
Comprueba que tengas al menos un plugin compatible en la carpeta de plugins."
#2008# "Error al cargar plugin:"
#2009# "Error al cargar código.
Comprueba la ROM y su configuración."
#2010# "Error al abrir Partida Guardada"
#2011# "Error al abrir Eeprom"
#2012# "Error al abrir Flashram"
#2013# "Error al abrir mempak"
#2014# "Error al abrir ZIP.
Es posible esté dañado. Intenta descomprimirlo."
#2015# "No se pudo abrir el archivo."
#2016# "Ocurrió un error intentando abrir un archivo ZIP."
#2017# "Este archivo no parece ser una ROM de Nintendo64."
Verifica tus ROMs con GoodN64."
#2018# "País desconocido"
#2019# "Chip CIC desconocido"
#2020# "Formato de Archivo desconocido"
#2021# "Acción de Memoria desconocida
Emulación detenida"
#2022# "OpCode R4300i sin manejar en"
#2023# "Ejecutando espacio no mapeado.
Verifica ROM y configuración del ROM."
#2024# "La Partida no parece que concuerde con la ROM actual.
Las Partidas deben ser guardadas y cargadas en ROMs idénticas. Concretamente, la REGIÓN y VERSIÓN deben ser iguales.
Cargar esta partida podría causar que el juego o el emulador no respondan.
¿Seguro que quieres continuar?"
#2025# "Error"
#2026# "Secuencia de Copyright no encontrada en el LUT. El Juego no funcionara más."
#2027# "Error en el Sistema Anti-Copia."
#2028# "Al cambiar de plugin, la ROM actual tendrá que reiniciarse.
Si no quieres perder tu progreso, di No y guarda la partida.
¿Cambiar plugins y reiniciar juego ahora?"
#2029# "Cambiar Plugins"
#2030# "Emulación terminada"
#2031# "Emulación iniciada"
#2032# "Incapaz de cargar partida"
#2033# "Partida cargada"
#2034# "Guardar partida actual en:"
#2035# "Ranura de Partida"
#2036# "Cambiando Bytes de la imagen"
#2037# "Escogiendo imagen de N64"
#2038# "Cargada"
#2039# "Cargando ROM..."
#2040# "La ROM no se puede abrir porque los plugins no se han iniciado correctamente"
#2041# "¿Seguro que quieres borrar esto?"
#2042# "Borrar Truco"
#2043# "El Nombre del Truco ya está en uso"
#2044# "Has alcanzado el límite de Trucos para esta ROM"
//Fin... Colorín, colorado, este cuento se ha acabado xD.

View File

@ -1,79 +1,83 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Español" // LANGUAGE ID
#2 # "NeOak <sebashoyos@yahoo.com>" // Author
#3 # "1.2" // Version
#4 # "3 de Septiembre de 2002" // Date
#1 # "Español" // LANGUAGE ID
#2 # "MELERIX" // Author
#3 # "20150301" // Version
#4 # "March, 2015" // Date
//About DLL Dialog
#5 # "Idioma Actual"
#5 # "Lenguaje Actual"
#6 # "Autor"
#7 # "Versión"
#7 # "Versión"
#8 # "Fecha"
#9 # "Visitar Sitio Web"
#10 # "Base de datos de ROMs (.RDB)"
#11 # "Archivo de Cheats (.CHT)"
#12 # "Información Adicional del ROM (.RDX)"
#9 # "Visitar la Pagina Principal"
#10 # "Base de datos de ROMS (.RDB)"
#11 # "Archivo de Códigos de Trucos (.CHT)"
#12 # "Información Extendida del Rom (.RDX)"
//About INI title
#20 # "Project64 esta actualmente usando:"
#20 # "Acerca de los Archivos INI"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "&Archivo"
#101# "A&brir Rom"
#102# "Info. del Rom...."
#103# "Comen&zar Emulación"
#104# "Terminar Emu&lación"
#105# "Escoger el Directorio de ROMs..."
#101# "&Abrir Rom"
#102# "&Info del Rom...."
#103# "Iniciar Emulación"
#104# "&Finalizar Emulación"
#105# "Elegir Directorio de ROMs..."
#106# "Actualizar Lista de ROMs"
#107# "Ultimo ROM"
#108# "Ultimo Directorio de ROMs"
#107# "Rom Reciente"
#108# "Directorio de ROMs Reciente"
#109# "&Salir"
//System Menu
#120# "Sis&tema"
#120# "&Sistema"
#121# "&Reiniciar"
#122# "&Pausar"
#123# "Generar Imagen"
#124# "Limitar Cuadros por Segundo"
#123# "Generar Bitmap"
#124# "Limitar FPS"
#125# "&Guardar"
#126# "Guardar Como..."
#127# "R&estaurar"
#127# "&Restaurar"
#128# "Cargar..."
#129# "Actual Estado de Partida G&uardada"
#130# "Cheats..."
#131# "Botón de GameShark"
#129# "&Partida Guardada Actual"
#130# "Trucos..."
#131# "Botón GS"
#132# "Continuar"
#133# "&Reinicio Simple"
#134# "&Reinicio Completo"
//Options Menu
#140# "&Opciones"
#141# "Pantalla Completa"
#142# "Siempre al Frente"
#143# "Configurar Plugin Grafico ..."
#144# "Configurar Plugin de Sonido..."
#145# "Configurar Plugin del Control..."
#146# "Configurar Plugin del RSP..."
#147# "Mostrar uso del Procesador en %"
#148# "Co&nfiguración..."
#141# "&Pantalla Completa"
#142# "&Siempre Por Encima"
#143# "Configurar Plugin de Gráficos..."
#144# "Configurar Plugin de Audio..."
#145# "Configurar Plugin de Control..."
#146# "Configurar Plugin de RSP..."
#147# "Mostrar uso del CPU %"
#148# "&Ajustes..."
//Debugger Menu
#160# "&Debugger"
#160# "&Depurador"
//Language Menu
#175# "&Idioma"
#175# "&Lenguaje"
//Help Menu
#180# "A&yuda"
#181# "Acerca de los archi&vos INI"
#182# "A&cerca de Project 64"
#180# "Ayuda"
#181# "Acerca de los Archivos &INI"
#182# "&Acerca de Project 64"
#183# "&Foro de Soporte"
#184# "&Pagina Principal"
//Current Save Slot menu
#190# "Prederteminado"
#190# "Predeterminado"
#191# "Ranura 1"
#192# "Ranura 2"
#193# "Ranura 3"
@ -86,336 +90,427 @@
#200# "Ranura 10"
//Pop up Menu
#210# "Jugar Videojuego"
#211# "Información del ROM"
#212# "Editar Configuración del Juego"
#213# "Editar Cheats"
#210# "Jugar Juego"
#211# "Información del Rom"
#212# "Editar Ajustes del Juego"
#213# "Editar Trucos"
#214# "Plugin GFX"
//Alternate Name to save Slot
#220# "Predeterminado"
#221# "Ranura de Guardado - 1"
#222# "Ranura de Guardado - 2"
#223# "Ranura de Guardado - 3"
#224# "Ranura de Guardado - 4"
#225# "Ranura de Guardado - 5"
#226# "Ranura de Guardado - 6"
#227# "Ranura de Guardado - 7"
#228# "Ranura de Guardado - 8"
#229# "Ranura de Guardado - 9"
#230# "Ranura de Guardado - 10"
// Menu Descriptions
#250# "Abrir una imagen ROM de N64"
#251# "Mostrar Información acerca de la imagen escogida"
#252# "Comenzar Emulación de la imagen ROM escogida"
#253# "Detener Emulación de la imagen ROM escogida"
#254# "Escoger el Directorio de los ROMs"
#255# "Actualizar la lista de ROMs en el Navegador de ROMs"
#256# "Salir de este Emulador"
#257# "Reiniciar la imagen ROM actual (recarga cualquier cambio de configuración)"
#258# "Pausar / Continuar Emulación del ROM corriendo actualmente"
#259# "Generar una Captura en Imagen de Bits de la Escena actual"
#260# "Limitar Cuadros por Segundos a la velocidad correcta del N64"
#261# "Crear una instantánea del sistema actual para un Guardado Rápido"
#262# "Crear una instantánea del sistema actual para guardar a un archivo"
#263# "Cargar una instantánea guardada "
#264# "Escoger un archivo de instantánea para cargar"
#265# "Activar/Desactivar cheats del GameShark"
#266# "El Botón del GameShark es usado con cheats específicos"
#267# "Cambiar emulación de modo ventana a modo pantalla completa"
#268# "Hacer que la ventana quede enfrente de las demás"
#269# "Cambiar Configuración dentro del plugin Grafico"
#270# "Cambiar Configuración dentro del plugin de Sonido"
#271# "Cambiar Configuración dentro del plugin del Control (escoger teclas)"
#272# "Cambiar Configuración dentro del plugin del RSP"
#273# "Mostrar el uso del procesador por el emulador dividido sobre varios recursos"
#274# "Ver / Cambiar preferencias para este programa"
#275# "Ver Manual del programa"
#276# "Ver FAQ del programa"
#277# "Acerca de los Autores de los archivos de soporte .INI"
#278# "Acerca del programa y los Autores"
#279# "Abrir la anterior imagen ROM"
#280# "Escoger este directorio como el directorio de ROMs"
#281# "Cambiar el idioma que usa el emulador"
#282# "Escoger este directorio para guardado rápido"
#283# "Jugar Videojuego escogido"
#284# "Información acerca del juego escogido"
#285# "Editar Configuración para el juego escogido"
#286# "Editar cheats para el juego escogido"
#250# "Abrir una imagen rom de N64"
#251# "Mostrar Información acerca de la imagen cargada"
#252# "Iniciar Emulación de la imagen rom cargada"
#253# "Detener Emulación de la imagen rom cargada"
#254# "Seleccionar Directorio de Roms"
#255# "Actualizar la lista Actual de ROMs en el Navegador de ROMs"
#256# "Salir de esta aplicación"
#257# "Reiniciar la imagen rom actual (recarga cualquier cambio de ajustes)"
#258# "Pausar/Reanudar emulación del rom en ejecución actual"
#259# "Generar una imagen Bitmap de la Pantalla actual"
#260# "Limitar FPS a la velocidad correcta del N64"
#261# "Crear una instantánea del sistema actual para guardado rápido"
#262# "Crear una instantánea del sistema actual seleccionando la ubicación del archivo"
#263# "Cargar una instantánea de guardado rápido"
#264# "Elegir un archivo de guardado instantáneo para cargar"
#265# "Activar/Desactivar trucos Game shark"
#266# "El Botón Game shark es usado con trucos específicos"
#267# "Cambiar emulación de modo ventana a pantalla completa"
#268# "Hacer que la ventana quede por encima las demás ventanas"
#269# "Cambiar ajustes dentro del plugin de Gráficos"
#270# "Cambiar ajustes dentro del plugin de Audio"
#271# "Cambiar ajustes dentro del plugin de Control (es decir definir las teclas)"
#272# "Cambiar ajustes dentro del plugin de RSP"
#273# "Mostrar uso del CPU del emulador dividido sobre diferentes recursos"
#274# "Ver/Cambiar ajustes para esta aplicación"
#275# "Ver Manual para la aplicación"
#276# "Ver FAQ para la aplicación"
#278# "Acerca de la aplicación y Autores"
#277# "Acerca de los Autores de los archivos de soporte"
#279# "Abrir esta imagen ROM abierta previamente"
#280# "Elegir este directorio como tu directorio de roms"
#281# "Cambiar Aplicación para usar este lenguaje"
#282# "Elegir esta ubicación de guardado rápido"
#283# "Jugar juego seleccionado"
#284# "Información acerca del juego seleccionado"
#285# "Editar Ajustes para el juego seleccionado"
#286# "Editar trucos para el juego seleccionado"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "Nombre Archivo"
#300# "Nombre del Archivo"
#301# "Nombre Interno"
#302# "Buen Nombre"
#302# "Nombre Correcto"
#303# "Estado"
#304# "Tamaño del ROM"
#305# "Notas (Core)"
#306# "Notas (plugins determinados)"
#304# "Tamaño del Rom"
#305# "Notas (Nucleo)"
#306# "Notas (plugins predeterminados)"
#307# "Notas (Usuario)"
#308# "ID del Cartucho"
#309# "Fabricante"
#310# "País"
#310# "País"
#311# "Desarrollador"
#312# "CRC1"
#313# "CRC2"
#314# "Chip CIC"
#315# "Fecha de Lanzamiento"
#316# "Genero"
#317# "# Jugadores"
#317# "Jugadores"
#318# "Retroalimentación de Fuerza"
//Select Rom
#320# "Escoger Directorio Actual de ROMs"
#340# "ROM Dañado? Usa GoodN64 & revisa por INIs actualizados"
#320# "Seleccionar Directorio actual de Roms"
//Messages
#340# "ROM Dañado? Usa GoodN64 y verifica por una RDB actualizada"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Configuración"
#400# "Ajustes"
//Tabs
#401# "Plugins"
#402# "Directorios"
#403# "Opciones"
#404# "Selección de Rom"
#404# "Selección de Rom"
#405# "Avanzado"
#406# "Configuración del Rom"
#407# "Integración de Interfase"
#406# "Ajustes del Rom"
#407# "Integración de Shell"
#408# "Notas del Rom"
#409# "Atajos de Teclado"
#410# "Estado"
#411# "Recompilador"
//Plugin Dialog
#420# "Acerca de"
#421# " plugin del Reality Signal Processor: "
#422# " plugin de Video (gráficos): "
#421# " plugin de Reality Signal Processor: "
#422# " plugin de Vídeo (gráficos): "
#423# " plugin de Audio (sonido) : "
#424# " plugin de Control (mando): "
#425# "Usar GFX de Alto Nivel?"
#426# "Usar Audio de Alto Nivel?"
#427# "** Usar Plugin de Sistema **"
//Directory Dialog
#440# " Directorio de Plugin:: "
#441# " Directorio Rom: "
#442# " Batería del N64: "
#443# " Guardados Instantáneos: "
#440# " Directorio de Plugins:: "
#441# " Directorio de Roms: "
#442# " Guardados Automáticos de N64: "
#443# " Guardados Instantáneos: "
#444# " Capturas de Pantalla: "
#445# "Ultima Carpeta de la cual un Rom fue abierto."
#446# "Escoger Directorio de Plugin"
#447# "Escoger Directorio de ROMs"
#448# "Escoger Directorio de la Batería del N64"
#449# "Escoger Directorio de Guardados Instantáneos"
#450# "Escoger Directorio de Capturas de Pantalla"
#445# "Ultima Carpeta de la cual un rom fue abierto."
#446# "Seleccionar Directorio de Plugins"
#447# "Seleccionar Directorio de Roms"
#448# "Seleccionar Directorio de Guardados Automáticos"
#449# "Seleccionar Directorio de Guardados Instantáneos"
#450# "Seleccionar Directorio de capturas de pantalla"
#451# " Directorio de Texturas: "
#452# "Seleccionar directorio de paquetes de texturas"
//Options Dialog
#460# "Pausar emulación cuando la ventana no este al frente"
#461# "Cuando se cargue un ROM cambiar a Pantalla Completa"
#462# "Esconder Configuración Avanzada"
#463# "Recordar cheats escogidos"
#460# "Pausar emulación cuando la ventana no este activa?"
#461# "Al cargar un ROM ir a pantalla completa"
#462# "Ocultar Ajustes Avanzados"
#463# "Recordar trucos seleccionados"
#464# "Desactivar Protector de Pantalla cuando un rom esté en ejecución"
#465# "Mostrar Frecuencia de Cuadros"
#466# "Cambiar Tipo de Frecuencia de Cuadros"
//Rom Browser Tab
#480# "Máx. # de Roms Recordados (Máx. 10):"
#480# "Máx # de Roms Recordados (Máx 10):"
#481# "roms"
#482# "Máx. # de Dir. de Rom Recordados (Máx. 10):"
#483# "dir."
#482# "Máx # de Directorios de Roms Recordados (Máx 10):"
#483# "directorios"
#484# "Usar Navegador de Roms"
#485# "Usar recurso de Directorio"
#485# "Usar recursión de Directorio"
#486# "Campos disponibles:"
#487# "Mostrar campos en este orden:"
#488# "Agregar->"
#489# "<-Remover"
#488# "Agregar ->"
#489# "<- Remover"
#490# "Arriba"
#491# "Abajo"
#492# "Actualizar navegador automáticamente"
//Advanced Options
#500# "La mayoría de los cambios no tendrán efecto hasta que un nuevo ROM sea abierto o el actual sea reiniciado."
#501# "Predeterminado por el Core"
#502# "Estilo de CPU core:"
#503# "Método de trabajar código:"
#504# "Tamaño de Memoria RAM:"
#505# "Enlazado Avanzado de Bloques:"
#506# "¿Comenzar Emulación cuando el ROM sea abierto?"
#507# "Siempre sobrescribir configuración predeterminada con las del INI?"
#508# "Automáticamente comprimir partidas guardadas"
#500# "La mayoría de estos cambios no tendrán efecto hasta que un nuevo rom sea abierto o el actual rom sea reiniciado."
#501# "Predeterminados del Núcleo"
#502# "Estilo de núcleo del CPU:"
#503# "Método de código Self-mod:"
#504# "Tamaño Predeterminado de Memoria:"
#505# "Vinculación Avanzada de Bloques:"
#506# "Iniciar Emulación cuando el rom sea abierto?"
#507# "Siempre sobrescribir ajustes predeterminados con los del ini?"
#508# "Comprimir automáticamente guardados instantáneos"
#509# "Habilitar Depurador"
#510# "Caché"
#511# "PI DMA"
#512# "Inicio Cambiado"
#513# "Proteger Memoria"
#514# "TLB Unmapping"
//Rom Options
#520# "Estilo de CPU core:"
#521# "Método de trabajar código:"
#522# "Tamaño de Memoria:"
#523# "Enlazado Avanzado de Bloques:"
#524# "Tipo de Batería predeterminado:"
#525# "Contra Factor:"
#526# "Buffer de Compilación mayor"
#520# "Estilo de núcleo del CPU:"
#522# "Tamaño de Memoria:"
#523# "Vinculación Avanzada de Bloques:"
#524# "Tipo de Guardado predeterminado:"
#525# "Factor de Contador:"
#526# "Buffer de Compilación Ampliado"
#527# "Usar TLB"
#528# "Registro a mem.cache"
#529# "Demorar Interrupción 'SI'"
#530# "Hackear SP"
#528# "Registrar almacenamiento en caché"
#529# "Demorar Interrupción SI"
#530# "Hack SP"
#531# "Predeterminado"
#532# "Señal de Audio RSP"
#533# "Tiempo de Audio Fijo"
#534# "Método de Función de búsqueda:"
#535# "Método Personalizado Self Mod"
#536# "Sincronizar usando Audio"
//Core Styles
#540# "Interprete"
#540# "Interpretador"
#541# "Recompilador"
#542# "Sincronizar Cores"
#542# "Sincronizar Núcleos"
//Self Mod Methods
#560# "Ninguno"
#561# "Cache"
#561# "Caché"
#562# "Proteger Memoria"
#563# "Revisa Memoria & Cache"
#564# "Cambia Memoria & Cache"
#565# "Revisa Mem. Avanzada"
#563# "Comprobar Memoria y Caché"
#564# "Cambia Memoria y Caché"
#565# "Comprobar Avance de Memoria"
#566# "Limpiar Código en Caché"
//Function Lookup memthod
#570# "Tabla Física de Búsqueda"
#571# "Tabla Virtual de Búsqueda"
#572# "Cambiar Memoria"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "Si"
#601# "No"
#600# "Encendido"
#601# "Apagado"
//Save Type
#620# "Usar Primer Tipo Escogido"
#620# "Usar Primer Tipo de Guardado Usado"
#621# "4Kbit Eeprom"
#622# "16Kbit Eeprom"
#623# "32Kbytes SRAM"
#624# "Flash RAM"
#624# "Flashram"
//Shell Integration Tab
#640# "Asociación de Extensiones:"
#640# "Asociación de extensión de archivo:"
//Rom Notes
#660# "Estado Rom:"
#661# "Nota Core:"
#662# "Nota Plugin:"
#660# "Estado del Rom:"
#661# "Nota del Núcleo:"
#662# "Nota del Plugin:"
// Accelerator Selector
#680# "Estado del CPU:"
#681# "Elemento del Menú"
#682# "Teclas Actuales:"
#683# "Seleccionar Nueva Tecla de Atajo:"
#684# "Actualmente Asignado a:"
#685# "Asignar"
#686# "Remover"
#687# "Reiniciar Todo"
#688# "Juego no se está jugando"
#689# "Jugando Juego"
#690# "Jugando Juego (ventana)"
#691# "Jugando Juego (Pantalla Completa)"
// Frame Rate Option
#700# "Interrupciones Verticales por segundo"
#701# "Mostrar Listas por segundo"
#702# "Porcentaje de Velocidad"
// Increase speed
#710# "Incrementar Velocidad del Juego"
#711# "Disminuir Velocidad del Juego"
// short cut editor
#1100# "Reiniciar Accesos Directos"
#1101# "Estás seguro de que quieres reiniciar los accesos directos?\n\nEsta acción no se puede deshacer."
#1102# "Menú de Archivo"
#1103# "Menú de Sistema"
#1104# "Opciones"
#1105# "Ranuras de Guardado"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "Información del Rom"
#800# "Información del Rom"
//Rom Info Text
#801# "Nombre ROM:"
#802# "Nombre Archivo:"
#803# "Localización:"
#804# "Tamaño Rom:"
#801# "Nombre del ROM:"
#802# "Nombre del Archivo:"
#803# "Ubicación:"
#804# "Tamaño del Rom:"
#805# "ID del Cartucho:"
#806# "Fabricante:"
#807# "País:"
#807# "País:"
#808# "CRC1:"
#809# "CRC2:"
#810# "Chip CIC:"
#811# "MD5:"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "Cheats"
#1001# "Cheats:"
#1000# "Trucos"
#1001# "Trucos:"
#1002# " Notas: "
#1003# "Marcar Todas"
#1004# "Desmarcar Todas"
#1003# "Marcar Todo"
#1004# "Desmarcar Todo"
//Add Cheat
#1005# "Añadir Cheat"
#1005# "Agregar Truco"
#1006# "Nombre:"
#1007# "Código:"
#1007# "Código:"
#1008# "Insertar"
#1009# "Borrar"
#1010# " Notas de Cheat: "
#1011# "Añadir a BD"
#1009# "Limpiar"
#1010# " Notas del Truco: "
#1011# "Añadir a la BD"
#1022# "Agregar Truco"
#1023# "Nuevo Truco"
#1024# "<dirección> <valor>"
#1025# "Opciones:"
#1026# "<valor> <etiqueta>"
//Code extension
#1012# "Extensiones Código"
#1013# "Escoja un valor a ser usado para:"
#1012# "Extensiones de Código"
#1013# "Por favor elige un valor a ser usado para:"
#1014# "OK"
#1015# "Cancelar"
//Digital Value
#1016# "Digito Cantidad"
#1017# "Escoja un valor para:"
#1016# "Cantidad de Dígitos"
#1017# "Por favor elije un valor para:"
#1018# "&Valor"
#1019# "de"
#1020# "para"
#1021# "&Notas:"
#1022# "Añadir Cheat"
#1023# "Nuevo Cheat"
#1024# "<dirección> <valor>"
#1025# "Opciones:"
#1026# "<valor> <etiqueta>"
#1027# "Editar Cheat"
#1028# "Actualizar Cheat"
#1040# "Añadir Nuevo Cheat..."
//Edit Cheat
#1027# "Editar Truco"
#1028# "Actualizar Truco"
#1029# "El Truco ha sido cambiado, quieres actualizar?"
#1030# "Truco Actualizado"
//Cheat Popup Menu
#1040# "Añadir Nuevo Truco..."
#1041# "Editar"
#1042# "Borrar"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "*** CPU DETENIDO ***"
#2001# "CPU Resumido"
#2002# "En un ciclo perpetuo que no puede cancelarse.
La Emulación se detendrá.
#2000# "*** CPU PAUSADO ***"
#2001# "CPU Reanudado"
#2002# "En un bucle permanente que no se puede salir.
La Emulación ahora se detendrá.
Verifique ROM y configuración del ROM."
#2003# "Error al llenar Memoria"
#2004# "El plugin Grafico falta o es invalido.
Comprueba el ROM y los Ajustes del ROM."
#2003# "Error al asignar Memoria"
#2004# "El plugin predeterminado o seleccionado de vídeo falta o es invalido.
Vaya a Configuración y escoja un plugin de video (grafico).
Revise que tenga al menos un plugin compatible en su carpeta de plugins."
#2005# "El plugin de Sonido falta o es invalido.
Comprueba que tengas al menos un archivo de plugin compatible en tu carpeta de plugins."
#2005# "El plugin predeterminado o seleccionado de audio falta o es invalido.
Vaya a Configuración y escoja un plugin de audio (sonido).
Revise que tenga al menos un plugin compatible en su carpeta de plugins."
#2006# "El plugin de RSP falta o es invalido.
Comprueba que tengas al menos un archivo de plugin compatible en tu carpeta de plugins."
#2006# "El plugin predeterminado o seleccionado de RSP falta o es invalido.
Vaya a Configuración y escoja un plugin del RSP.
Revise que tenga al menos un plugin compatible en su carpeta de plugins."
#2007# "El plugin del Control falta o es invalido.
Comprueba que tengas Project64 correctamente instalado con una ruta valida de plugins."
#2007# "El plugin predeterminado o seleccionado de entrada falta o es invalido.
Vaya a Configuración y escoja un plugin de control (mando).
Revise que tenga al menos un plugin compatible en su carpeta de plugins."
Comprueba que tengas al menos un archivo de plugin compatible en tu carpeta de plugins."
#2008# "Error al cargar plugin:"
#2009# "Error al cargar codigo
#2009# "Error al cargar palabra
Verifica ROM y configuración del ROM."
#2010# "Error al abrir Partida Guardada"
Compruebe el ROM y los Ajustes del ROM."
#2010# "Error al abrir el Archivo Guardado"
#2011# "Error al abrir Eeprom"
#2012# "Error al abrir Flashram"
#2013# "Error al abrir mempak"
#2014# "Error al abrir ZIP.
#2014# "Intento de abrir el archivo zip fallido.
Falta o esta corrupto el archivo zip - comprueba la ruta y el archivo.
Tal vez este dañado - intenta descomprimirlo."
#2015# "Intento para abrir archivo fallo."
#2016# "Error ocurrió intentando abrir archivo ZIP."
#2017# "Este archivo no parece ser un ROM de Nintendo64."
Es posible que necesites reiniciar la aplicación."
#2015# "Intento de abrir el archivo fallido."
#2016# "Ocurrió un error cuando se intentaba abrir el archivo zip."
#2017# "El archivo cargado no parece ser un ROM de Nintendo64 valido."
Verifica tus ROMs con GoodN64."
#2018# "País desconocido"
#2018# "País desconocido"
#2019# "Chip CIC desconocido"
#2020# "Formato de Archivo desconocido"
#2021# "Acción de Memoria desconocida
#2021# "Acción de Memoria desconocida
Emulación detenida"
#2022# "OpCode R4300i sin manejar en"
#2023# "Ejecutando espacio no mapeado.
Emulación detenida"
#2022# "OpCode R4300i no manejado en"
#2023# "Ejecutando desde un espacio no-mapeado.
Verifica ROM y configuración del ROM."
#2024# "Partida no parece concordar con el ROM corriendo.
Verifica el ROM y los Ajustes del ROM."
#2024# "La partida guardada no parece coincidir con el ROM en ejecución.
Partidas deben ser guardadas y cargadas entre ROMs idénticos,
En particular la REGION y VERSION deben ser iguales.
Cargar esta partida podría causar al juego y/o emulador no responder.
Las Partidas Guardadas deben ser guardadas y cargadas entre ROMs 100% idénticos,
en particular la REGION y VERSION necesita ser la misma.
Cargar esta partida es probable que cause al juego y/o al emulador se bloquee.
Seguro que quieres continuar?"
Estas seguro de que quieres continuar cargando?"
#2025# "Error"
#2026# "Secuencia de Copyright falta en el LUT. El Juego no funcionara más."
#2027# "Error en Sistema Anti-Copia"
#2028# "Cambiar un plugin requiere que Project64 reinicie el ROM corriendo.
Si no quieres perder tu progreso, di No y crea una partida primero.
#2026# "Secuencia de Copyright no encontrada en el LUT. El Juego ya no funcionara."
#2027# "Falla en la Protección de Copia"
#2028# "Cambiar un plugin requiere que Project64 reinicie un ROM en ejecución.
Si no quieres perder tu posición, responde No y guarda una partida primero.
¿Cambiar plugins y reiniciar juego ahora?"
¿Cambiar plugins y reiniciar juego ahora?"
#2029# "Cambiar Plugins"
#2030# "Emulación terminada"
#2031# "Emulación iniciada"
#2032# "Incapaz de cargar partida"
#2033# "Partida cargada"
#2030# "Emulación finalizada"
#2031# "Emulación iniciada"
#2032# "Imposible cargar partida guardada"
#2033# "Cargada la partida guardada"
#2034# "Guardar partida actual en"
#2035# "Ranura de Partida"
#2036# "Cambiando Bytes de la imagen"
#2037# "Escogiendo imagen de N64"
#2035# "Ranura de partida guardada"
#2036# "Imagen de Intercambio de Byte"
#2037# "Eligiendo imagen de N64"
#2038# "Cargada"
#2039# "Cargando imagen"
#2040# "ROM no se puede abrir porque los plugins no se han iniciado correctamente"
#2041# "Estas seguro de querer borrar esto?"
#2042# "Borrar Cheat"
#2043# "Nombre de Cheat ya esta en uso"
#2044# "Haz alcanzado el limite de Cheats para este ROM"
//Fin
#2040# "No se puede abrir un rom porque los plugins no se han inicializado correctamente"
#2041# "Estas seguro de que realmente quieres borrar esto?"
#2042# "Borrar Truco"
#2043# "El Nombre del Truco ya esta en uso"
#2044# "Haz Alcanzado la cantidad Máxima de trucos para este rom"
#2045# "Inicializando el Plug-in"
#2046# "No has seleccionado una tecla virtual para asignarla al elemento del menú"
#2047# "Necesitas seleccionar un elemento del menú para asignarle esta tecla a"
#2048# "El Acceso directo ya está asignado a otro elemento del menú"
#2049# "Ningún acceso directo ha sido seleccionado para ser removido"
#2050# "Rom Cargada. Esperando por la emulación para iniciar."
#2051# "project64 beta es solo para miembros.\n\nsi tienes una cuenta en pj64.net, no deberías estar viendo este error!!\npor favor contacta con nosotros en el sitio"
#2052# "Error del Programa"
#2053# "Fallo al encontrar el nombre de archivo en archivo 7z"
#2054# "Usar Gráficos de Bajo Nivel "
#2055# "Los Gráficos de Bajo Nivel no son para uso general!!!\nEs aconsejable que tu solo uses esto para pruebas, no para jugar algún juego con ello\n\nCambiar a LLE GFX?"
#2056# "Usar Audio de Alto Nivel"
#2057# "El Audio de Alto nivel requiere un plugin de terceros!!!\nSi no usas un plugin de terceros que soporte audio de alto nivel entonces no oirás ningún sonido.\n\nUsar audio de alto nivel?"

View File

@ -1,4 +1,4 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
@ -8,11 +8,11 @@
#4 # "September, 2005" // Date
//About DLL Dialog
#5 # "Nuvarande Språk"
#6 # "Översättare"
#5 # "Nuvarande Språk"
#6 # "Översättare"
#7 # "Version"
#8 # "Datum"
#9 # "Besök Hemsidan"
#9 # "Besök Hemsidan"
#10 # "ROM Databas (.RDB)"
#11 # "Fusk fil (.CHT)"
#12 # "Rom Information (.RDX)"
@ -25,11 +25,11 @@
*********************************************************************************/
//File Menu
#100# "&Fil"
#101# "&Öppna N64 Fil"
#101# "&Öppna N64 Fil"
#102# "N64 Fil &Information...."
#103# "Starta Emulering"
#104# "&Avbryt Emulering"
#105# "Välj Fil Katalog..."
#105# "Välj Fil Katalog..."
#106# "Uppdatera listan"
#107# "Nuvarande N64 Fil"
#108# "Nuvarande Fil Kataloger"
@ -40,35 +40,35 @@
#121# "&Starta om"
#122# "&Pausa"
#123# "Generera Bitmap"
#124# "Begränsa FPS"
#124# "Begränsa FPS"
#125# "&Spara"
#126# "Spara Som..."
#127# "&Återställ"
#127# "&Återställ"
#128# "Ladda..."
#129# "Nuvarande Sparnings S&lot"
#130# "Fusk..."
#131# "GS Knapp"
#132# "Fortsätt"
#132# "Fortsätt"
//Options Menu
#140# "&Alternativ"
#141# "&Helskärm"
#142# "&Alltid &Överst"
#141# "&Helskärm"
#142# "&Alltid &Överst"
#143# "Konfigurera Grafik Pluginen..."
#144# "Konfigurera Ljud Pluginen..."
#145# "Konfigurera Kontroll Pluginen..."
#146# "Konfigurera RSP Pluginen..."
#147# "Visa CPU Användning %"
#148# "&Inställningar..."
#147# "Visa CPU Användning %"
#148# "&Inställningar..."
//Debugger Menu
#160# "&Debugger"
//Language Menu
#175# "&Språk"
#175# "&Språk"
//Help Menu
#180# "&Hjälp"
#180# "&Hjälp"
#181# "Om &INI Filer"
#182# "&Om Project 64"
@ -88,47 +88,47 @@
//Pop up Menu
#210# "Starta Spel"
#211# "N64 Fil Information"
#212# "Ändra Spel Inställningar"
#213# "Ändra Fusk"
#212# "Ändra Spel Inställningar"
#213# "Ändra Fusk"
// Menu Descriptions
#250# "Öppna en N64 fil"
#250# "Öppna en N64 fil"
#251# "Visa information om den laddade N64 filen"
#252# "Starta Emulering av den laddade N64 filen"
#253# "Avbryt Emulering av den laddade N64 filen"
#254# "Välj Fil Katalog"
#254# "Välj Fil Katalog"
#255# "Uppdatera nuvarande lista av N64 filer i filhanteraren"
#256# "Avsluta detta programmet"
#257# "Starta om den nuvarande N64 filen"
#258# "Pausa/Fortsätt emulering av den nuvarande spelet"
#259# "Generera en Bitmap bild av den nuvarande skärmen"
#260# "Begränsa FPS till N64 orginal hastigheten"
#258# "Pausa/Fortsätt emulering av den nuvarande spelet"
#259# "Generera en Bitmap bild av den nuvarande skärmen"
#260# "Begränsa FPS till N64 orginal hastigheten"
#261# ""
#262# ""
#263# "Ladda snabb sparning"
#264# ""
#265# "Använd/Använd Inte Game shark fusk"
#266# "Game shark knappen används för specefika fusk"
#267# "Förstorar upp till helskärm"
#268# "Gör att fönstret överlappar alla andra"
#269# "Ändra inställningar i Grafik Pluginen"
#270# "Ändra inställningar i Ljud Pluginen"
#271# "Ändra inställningar i Kontroll Pluginen (ändra knappar)"
#272# "Ändra inställningar i RSP Pluginen"
#273# "Visar processor användning"
#274# "Visa/Ändra inställningar för detta programmet"
#275# "VIsa Manual för detta programmet"
#276# "Visa FAQ för programmet"
#265# "Använd/Använd Inte Game shark fusk"
#266# "Game shark knappen används för specefika fusk"
#267# "Förstorar upp till helskärm"
#268# "Gör att fönstret överlappar alla andra"
#269# "Ändra inställningar i Grafik Pluginen"
#270# "Ändra inställningar i Ljud Pluginen"
#271# "Ändra inställningar i Kontroll Pluginen (ändra knappar)"
#272# "Ändra inställningar i RSP Pluginen"
#273# "Visar processor användning"
#274# "Visa/Ändra inställningar för detta programmet"
#275# "VIsa Manual för detta programmet"
#276# "Visa FAQ för programmet"
#278# "Om programmet och skaparna"
#277# "Om skaparna av support filerna"
#279# "Öppna den förra N64 filen"
#280# "Välj den här katalogen för N64 filerna"
#281# "Ändra programmet till detta språket"
#282# "Välj snabbsparnings slot"
#279# "Öppna den förra N64 filen"
#280# "Välj den här katalogen för N64 filerna"
#281# "Ändra programmet till detta språket"
#282# "Välj snabbsparnings slot"
#283# "Starta den valda N64 filen"
#284# "Information om den valda N64 filen"
#285# "Ändra Inställningar för den valda N64 filen"
#286# "Ändra fusk för valda N64 filen"
#285# "Ändra Inställningar för den valda N64 filen"
#286# "Ändra fusk för valda N64 filen"
/*********************************************************************************
* Rom Browser *
@ -139,31 +139,31 @@
#302# "Version Namn"
#303# "Status"
#304# "Fil Storlek"
#305# "Anteckningar (Kärna)"
#305# "Anteckningar (Kärna)"
#306# "Anteckningar (Standard plugins)"
#307# "Anteckningar (Användare)"
#308# "Förpacknings ID"
#307# "Anteckningar (Användare)"
#308# "Förpacknings ID"
#309# "Tillverkare"
#310# "Land"
#311# "Utvecklare"
#312# "CRC1"
#313# "CRC2"
#314# "CIC Chip"
#315# "Släppnings Datum"
#315# "Släppnings Datum"
#316# "Kategori"
#317# "Spelare"
//Select Rom
#320# "Välj nuvarande fil katalog"
#320# "Välj nuvarande fil katalog"
//Messages
#340# "Dålig N64 fil? Använd GoodN64 & leta efter uppdaterad RDB"
#340# "Dålig N64 fil? Använd GoodN64 & leta efter uppdaterad RDB"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Inställningar"
#400# "Inställningar"
//Tabs
#401# "Plugins"
@ -171,7 +171,7 @@
#403# "Alternativ"
#404# "Val av N64 fil"
#405# "Avancerat"
#406# "N64 Fil Inställningar"
#406# "N64 Fil Inställningar"
#407# "Skal Integrering"
#408# "N64 Fil Anteckningar"
@ -188,69 +188,69 @@
#442# " N64 Auto sparning: "
#443# " Direkt sparning: "
#444# " Screen Shots: "
#445# "Senaste Katalogen N64 filen var öppnad från."
#446# "Välj Plugin Katalog"
#447# "Välj Fil Katalog"
#448# "Välj Automatisk sparnings Katalog"
#449# "Välj Direkt sparnings Katalog"
#450# "Välj snap shot Katalog"
#445# "Senaste Katalogen N64 filen var öppnad från."
#446# "Välj Plugin Katalog"
#447# "Välj Fil Katalog"
#448# "Välj Automatisk sparnings Katalog"
#449# "Välj Direkt sparnings Katalog"
#450# "Välj snap shot Katalog"
//Options Dialog
#460# "Pausa emulering när fönstret är inaktivt?"
#461# "När N64 filen laddas gå till helskärm"
#462# "Göm Avancerade Inställningar"
#463# "Kom ihåg valda fusk"
#460# "Pausa emulering när fönstret är inaktivt?"
#461# "När N64 filen laddas gå till helskärm"
#462# "Göm Avancerade Inställningar"
#463# "Kom ihåg valda fusk"
//Rom Browser Tab
#480# "Max # av filer ihågkomna (Max 10):"
#480# "Max # av filer ihågkomna (Max 10):"
#481# "roms"
#482# "Max # av fil kataloger ihågkomna (Max 10):"
#482# "Max # av fil kataloger ihågkomna (Max 10):"
#483# "Kataloger"
#484# "Använd Filhanteraren"
#485# "Använd Katalog standard"
#486# "Lediga Fält:"
#487# "Visa Fält i denna ordning:"
#488# "Lägg till ->"
#484# "Använd Filhanteraren"
#485# "Använd Katalog standard"
#486# "Lediga Fält:"
#487# "Visa Fält i denna ordning:"
#488# "Lägg till ->"
#489# "<- Ta bort"
#490# "Upp"
#491# "Ner"
//Advanced Options
#500# "Dom flesta av dom här ändringarna kommer inte att användas förren en ny N64 fil öppnas eller att den nuvarande N64 filen startas om."
#501# "Kärna Standard"
#502# "CPU Kärnans Typ:"
#500# "Dom flesta av dom här ändringarna kommer inte att användas förren en ny N64 fil öppnas eller att den nuvarande N64 filen startas om."
#501# "Kärna Standard"
#502# "CPU Kärnans Typ:"
#503# "Kod Metod:"
#504# "Standard Minnes Storlek:"
#505# "Avancerad Blockering:"
#506# "Starta Emulering när N64 filen är öppnad?"
#507# "Skriv alltid över standard inställningarna från INI filen?"
#506# "Starta Emulering när N64 filen är öppnad?"
#507# "Skriv alltid över standard inställningarna från INI filen?"
#508# "Komprimera automatiskt direkt sparning"
//Rom Options
#520# "CPU Kärnans Typ:"
#520# "CPU Kärnans Typ:"
#521# "Kod Metod:"
#522# "Minnes Storlek:"
#523# "Avancerad Blockering:"
#524# "Standard Sparnings typ:"
#525# "Räkneverk:"
#526# "Större Kompilerings Buffert"
#527# "Använd TLB"
#525# "Räkneverk:"
#526# "Större Kompilerings Buffert"
#527# "Använd TLB"
#528# "Registrera caching"
#529# "Vänta Med SI Avbrytandet"
#529# "Vänta Med SI Avbrytandet"
#530# "SP Hack"
#531# "Standard"
//Core Styles
#540# "Interpreter"
#541# "Recompiler"
#542# "Synkronisera Kärnorna"
#542# "Synkronisera Kärnorna"
//Self Mod Methods
#560# "Ingen"
#561# "Cache"
#562# "Skydda Minne"
#563# "Kolla Minne & Cache"
#564# "Ändra Minne & Cache"
#564# "Ändra Minne & Cache"
#565# "Kolla Avancerat Minne"
//RDRAM Size
@ -258,11 +258,11 @@
#581# "8 MB"
//Advanced Block Linking
#600# "På"
#600# "På"
#601# "Av"
//Save Type
#620# "Använd Första sparnings typ"
#620# "Använd Första sparnings typ"
#621# "4kbit Eeprom"
#622# "16kbit Eeprom"
#623# "32kbytes SRAM"
@ -273,7 +273,7 @@
//Rom Notes
#660# "N64 Filens Status:"
#661# "Kärna Anteckning:"
#661# "Kärna Anteckning:"
#662# "Plugin Anteckning:"
/*********************************************************************************
@ -287,7 +287,7 @@
#802# "Fil typ Namn:"
#803# "Plats:"
#804# "Fil Storlek:"
#805# "Förpacknings ID"
#805# "Förpacknings ID"
#806# "Tillverkare:"
#807# "Land:"
#808# "CRC1:"
@ -305,30 +305,30 @@
#1004# "Omakera Alla"
//Add Cheat
#1005# "Lägg till Fusk"
#1005# "Lägg till Fusk"
#1006# "Namn:"
#1007# "Kod:"
#1008# "Sätt in"
#1008# "Sätt in"
#1009# "Rensa"
#1010# " Fusk Anteckning: "
#1011# "Lägg till i DB"
#1022# "Lägg till Fusk"
#1011# "Lägg till i DB"
#1022# "Lägg till Fusk"
#1023# "Nya Fusk"
#1024# "<address> <värde>"
#1024# "<address> <värde>"
#1025# "Alternativ:"
#1026# "<värde> <lager>"
#1026# "<värde> <lager>"
//Code extension
#1012# "Kod typ"
#1013# "Var vänlig att välja värde:"
#1013# "Var vänlig att välja värde:"
#1014# "OK"
#1015# "Avbryt"
//Digital Value
#1016# "Kvantitet Digit"
#1017# "Var vänlig välj värde för:"
#1018# "&Värde"
#1019# "från"
#1017# "Var vänlig välj värde för:"
#1018# "&Värde"
#1019# "från"
#1020# "till"
#1021# "&Anteckning:"
@ -337,8 +337,8 @@
#1028# "Uppdatera Fusk"
//Cheat Popup Menu
#1040# "Lägg till nytt fusk..."
#1041# "Ändra"
#1040# "Lägg till nytt fusk..."
#1041# "Ändra"
#1042# "Ta bort"
/*********************************************************************************
@ -349,77 +349,77 @@
#2002# "I en permanent loop som inte kan avbrytas.
Emulering kommer nu att avbrytas.
Verifiera fil och fil inställningar."
Verifiera fil och fil inställningar."
#2003# "Misslyckades att hitta minne"
#2004# "Standard pluginen eller nuvarande vald grafik plugin är saknad eller korrupt.
#2004# "Standard pluginen eller nuvarande vald grafik plugin är saknad eller korrupt.
Kolla så att du åtminstånde har en kompatible plugin i din plugin katalog."
#2005# "Standard pluginen eller nuvarande vald ljud plugin är saknad eller korrupt.
Kolla så att du åtminstånde har en kompatible plugin i din plugin katalog."
#2005# "Standard pluginen eller nuvarande vald ljud plugin är saknad eller korrupt.
Kolla så att du åtminstånde har en kompatible plugin i din plugin katalog."
#2006# "Standard pluginen eller nuvarande vald RSP plugin är saknad eller korrupt.
Kolla så att du åtminstånde har en kompatible plugin i din plugin katalog."
#2006# "Standard pluginen eller nuvarande vald RSP plugin är saknad eller korrupt.
Kolla så att du har Project64 korrekt installerad med en korrekt plugin katalog."
#2007# "Standard pluginen eller nuvarande vald kontroll plugin är saknad eller korrupt.
Kolla så att du har Project64 korrekt installerad med en korrekt plugin katalog."
#2007# "Standard pluginen eller nuvarande vald kontroll plugin är saknad eller korrupt.
Kolla så att du åtminstånde har en kompatible plugin i din plugin katalog."
Kolla så att du åtminstånde har en kompatible plugin i din plugin katalog."
#2008# "Misslyckades med att ladda plugin:"
#2009# "Misslyckade till att word
Verify ROM and ROM Settings."
#2010# "Misslyckade öppna den sparade filen"
#2011# "Misslyckade öppna Eeprom"
#2012# "Misslyckade öppna Flashram"
#2013# "Misslyckade öppna mempak"
#2014# "Försök att öppna zip filen misslyckades.
#2010# "Misslyckade öppna den sparade filen"
#2011# "Misslyckade öppna Eeprom"
#2012# "Misslyckade öppna Flashram"
#2013# "Misslyckade öppna mempak"
#2014# "Försök att öppna zip filen misslyckades.
Saknad eller korrupt zip fil - kolla katalog och fil.
Du kanske måste starta om programmet."
#2015# "Försök att öppna fil misslyckades."
#2016# "Fel uppstod av öppnande av zip fil."
#2017# "Den öppnade filen verkar inte va en korrekt N64 fil.
Du kanske måste starta om programmet."
#2015# "Försök att öppna fil misslyckades."
#2016# "Fel uppstod av öppnande av zip fil."
#2017# "Den öppnade filen verkar inte va en korrekt N64 fil.
Verifiera dina N64 filer with GoodN64."
#2018# "Okänt land"
#2019# "Okänt Cic Chip"
#2020# "Okänt fil format"
#2021# "Okänt minnes aktion
#2018# "Okänt land"
#2019# "Okänt Cic Chip"
#2020# "Okänt fil format"
#2021# "Okänt minnes aktion
Emulering är nu avbryten"
#2022# "Ohanterlig R4300i OpCode på"
#2023# "Stänger ner från ej kartlagt område.
Emulering är nu avbryten"
#2022# "Ohanterlig R4300i OpCode på"
#2023# "Stänger ner från ej kartlagt område.
Verifiera fil och fil inställingar."
Verifiera fil och fil inställingar."
#2024# "Sparningen verkar inte matcha den nuvarande filen.
Sparningar måste vara sparade & loddade mellan 100% identiska filer,
Regionen och versionen måste stämma överens med sparningen.
Att ladda denna slotten kommer antagligen och/eller att få emulatorn att krasha.
Sparningar måste vara sparade & loddade mellan 100% identiska filer,
Regionen och versionen måste stämma överens med sparningen.
Att ladda denna slotten kommer antagligen och/eller att få emulatorn att krasha.
Är du säker på att du vill fortsätta ladda filen?"
Är du säker på att du vill fortsätta ladda filen?"
#2025# "Fel"
#2026# "Kopierings sekvensen inte funnen i LUT. Spelet kommer nu längre inte att fungera."
#2026# "Kopierings sekvensen inte funnen i LUT. Spelet kommer nu längre inte att fungera."
#2027# "Kopierings skydds fel"
#2028# "Att byta plugin kommer att få Project64 att starta om det starta spelet.
Om du inte vill förlora spelet, välj nej och spara först.
#2028# "Att byta plugin kommer att få Project64 att starta om det starta spelet.
Om du inte vill förlora spelet, välj nej och spara först.
Byta plugin och starta om nu?"
#2029# "Byta plugin"
#2030# "Emulering avbryten"
#2031# "Emulering startad"
#2032# "Oförmögen att ladda sparning"
#2032# "Oförmögen att ladda sparning"
#2033# "Laddad sparnings slot"
#2034# "Spara nuvarande läge till"
#2034# "Spara nuvarande läge till"
#2035# "sparnings slot"
#2036# "Byte uppdaterande fil"
#2037# "Val av N64 fil"
#2038# "Laddad"
#2039# "Laddar fil"
#2040# "Kan inte öppna filen på grund av att grafik pluginen inte är helt OK"
#2041# "Är du säker på att du vill ta bort det?"
#2040# "Kan inte öppna filen på grund av att grafik pluginen inte är helt OK"
#2041# "Är du säker på att du vill ta bort det?"
#2042# "Borttagna fusk"
#2043# "Fuskets namn används redan"
#2044# "Du har nåt max antalet av fusk för detta spelet"
#2043# "Fuskets namn används redan"
#2044# "Du har nåt max antalet av fusk för detta spelet"
//Nytt i 1.6
/**************************************** **************************************** *

View File

@ -1,425 +1,425 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "台灣繁體中文" // LANGUAGE ID
#1 # "台灣繁體中文" // LANGUAGE ID
#2 # "YoshiAdol" // Author
#3 # "1.5.0.0" // Version
#4 # "2002-10-12" // Date
//About DLL Dialog
#5 # "GUI 翻譯 (.pj.Lang)"
#6 # "製作者"
#7 # "版本"
#8 # "日期"
#9 # "作者首頁"
#10 # "ROM 資料庫 (Project64.rdb)"
#11 # "金手指檔案 (Project64.cht)"
#12 # "ROM資訊 (Project64.rdx)"
#5 # "GUI 翻譯 (.pj.Lang)"
#6 # "製作者"
#7 # "版本"
#8 # "日期"
#9 # "作者首頁"
#10 # "ROM 資料庫 (Project64.rdb)"
#11 # "金手指檔案 (Project64.cht)"
#12 # "ROM資訊 (Project64.rdx)"
//About INI title
#20 # "Project64現在使用的INI作者"
#20 # "Project64現在使用的INI作者"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "檔案(&F)"
#101# "開啟ROM(&O)."
#102# "ROM資訊(&I)"
#103# "開始模擬(&S)"
#104# "結束模擬(&E)"
#105# "選擇ROM瀏覽資料夾(&S)"
#106# "重新整理(&R)"
#107# "最近開啟的ROM(&E)"
#108# "最近開啟的資料夾(&F)"
#109# "離開(&X)"
#100# "檔案(&F)"
#101# "開啟ROM(&O)."
#102# "ROM資訊(&I)"
#103# "開始模擬(&S)"
#104# "結束模擬(&E)"
#105# "選擇ROM瀏覽資料夾(&S)"
#106# "重新整理(&R)"
#107# "最近開啟的ROM(&E)"
#108# "最近開啟的資料夾(&F)"
#109# "離開(&X)"
//System Menu
#120# "系統(&S)"
#121# "重置ROM(&R)"
#122# "暫停(&P)"
#123# "抓圖(&N)"
#124# "速度限制(&E)"
#125# "儲存隨時記憶進度(&S)"
#126# "儲存進度至檔案(&A)..."
#127# "載入隨時記憶進度(&O)"
#128# "由檔案讀取進度(&L)..."
#129# "選擇進度使用編號(&T)"
#130# "金手指(&C)"
#131# "GS金手指(&B)"
#132# "繼續(&R)"
#120# "系統(&S)"
#121# "重置ROM(&R)"
#122# "暫停(&P)"
#123# "抓圖(&N)"
#124# "速度限制(&E)"
#125# "儲存隨時記憶進度(&S)"
#126# "儲存進度至檔案(&A)..."
#127# "載入隨時記憶進度(&O)"
#128# "由檔案讀取進度(&L)..."
#129# "選擇進度使用編號(&T)"
#130# "金手指(&C)"
#131# "GS金手指(&B)"
#132# "繼續(&R)"
//Options Menu
#140# "設定(&O)"
#141# "全螢幕(&F)"
#142# "最上層顯示(&T)"
#143# "視訊外掛程式設定(&V)..."
#144# "音效外掛程式設定(&A)..."
#145# "控制器外掛程式設定(&I)..."
#146# "RSP外掛程式設定(&R)..."
#147# "顯示CPU使用率(&S)"
#148# "進階設定(&T)"
#140# "設定(&O)"
#141# "全螢幕(&F)"
#142# "最上層顯示(&T)"
#143# "視訊外掛程式設定(&V)..."
#144# "音效外掛程式設定(&A)..."
#145# "控制器外掛程式設定(&I)..."
#146# "RSP外掛程式設定(&R)..."
#147# "顯示CPU使用率(&S)"
#148# "進階設定(&T)"
//Debugger Menu
#160# "除錯(&D)"
#160# "除錯(&D)"
//Language Menu
#175# "語言選擇(&L)"
#175# "語言選擇(&L)"
//Help Menu
#180# "說明(&H)"
#181# "關於INI檔案(&F)"
#182# "關於Project64(&A)"
#180# "說明(&H)"
#181# "關於INI檔案(&F)"
#182# "關於Project64(&A)"
//Current Save Slot menu
#190# "預設 &D(.pj)"
#191# "檔案 &1 (.pj1)"
#192# "檔案 &2 (.pj2)"
#193# "檔案 &3 (.pj3)"
#194# "檔案 &4 (.pj4)"
#195# "檔案 &5 (.pj5)"
#196# "檔案 &6 (.pj6)"
#197# "檔案 &7 (.pj7)"
#198# "檔案 &8 (.pj8)"
#199# "檔案 &9 (.pj9)"
#200# "檔案 1&0 (.pj0)"
#190# "預設 &D(.pj)"
#191# "檔案 &1 (.pj1)"
#192# "檔案 &2 (.pj2)"
#193# "檔案 &3 (.pj3)"
#194# "檔案 &4 (.pj4)"
#195# "檔案 &5 (.pj5)"
#196# "檔案 &6 (.pj6)"
#197# "檔案 &7 (.pj7)"
#198# "檔案 &8 (.pj8)"
#199# "檔案 &9 (.pj9)"
#200# "檔案 1&0 (.pj0)"
//Pop up Menu
#210# "開始遊戲(&P)"
#211# "ROM資訊(&O)"
#212# "修改ROM設定(&T)"
#213# "編輯金手指(&C)"
#210# "開始遊戲(&P)"
#211# "ROM資訊(&O)"
#212# "修改ROM設定(&T)"
#213# "編輯金手指(&C)"
// Menu Descriptions
#250# "開啟N64 ROM檔可能使用ZIP檔"
#251# "顯示目前執行的ROM資訊"
#252# "開始模擬載入的ROM檔"
#253# "停止模擬載入的ROM檔"
#254# "更改瀏覽ROM的資料夾"
#255# "重新整理ROM資料夾(若ROM檔案有變更時,請重新整理)"
#256# "離開Project64"
#257# "重新啟動ROM並且將設定生效"
#258# "暫停/繼續模擬ROM(可以使用鍵盤上的Pause鍵!)"
#259# "抓取遊戲畫面(經由外掛程式)"
#260# "限制模擬速度正確的顯示速度(較高速的電腦若不選取可能速度會過快)"
#261# "將目前狀態存至Project64設定的隨時記憶檔(系統\選擇進度使用編號)"
#262# "將目前狀態存至Project64記憶檔(可使用任何檔名)"
#263# "讀取Project64設定的隨時記憶檔"
#264# "讀取Project64記憶檔(任何檔名)"
#265# "選擇或增加金手指給目前執行的ROM使用"
#266# "使用一個按鈕來執行金手指"
#267# "將會重視窗模式變更到全螢幕模式(按Esc鍵返回)"
#268# "保持Project64在最上層"
#269# "開啟視訊(顯示)外掛程式設定"
#270# "開啟音效(音樂)外掛程式設定"
#271# "開啟控制器(搖桿)外掛程式設定"
#272# "開啟RSP外掛程式設定"
#273# "顯示或關閉CPU使用率"
#274# "Project64的進階設定(外掛程式請在此選擇)"
#275# "開啟Project64的使用者手冊"
#276# "開啟Project64遊戲設定說明"
#277# "關於此應用程式及作者"
#278# "關於作者與感謝"
#279# "讀取最近開啟的ROM"
#280# "使用最近瀏覽的資料夾"
#281# "選擇不同的語言"
#282# "選擇不同的進度檔"
#283# "讀取並開始模擬這個ROM"
#284# "顯示這個ROM資訊"
#285# "編輯這個ROM設定在RDB檔案"
#286# "編輯這個ROM的金手指"
#250# "開啟N64 ROM檔可能使用ZIP檔"
#251# "顯示目前執行的ROM資訊"
#252# "開始模擬載入的ROM檔"
#253# "停止模擬載入的ROM檔"
#254# "更改瀏覽ROM的資料夾"
#255# "重新整理ROM資料夾(若ROM檔案有變更時,請重新整理)"
#256# "離開Project64"
#257# "重新啟動ROM並且將設定生效"
#258# "暫停/繼續模擬ROM(可以使用鍵盤上的Pause鍵!)"
#259# "抓取遊戲畫面(經由外掛程式)"
#260# "限制模擬速度正確的顯示速度(較高速的電腦若不選取可能速度會過快)"
#261# "將目前狀態存至Project64設定的隨時記憶檔(系統\選擇進度使用編號)"
#262# "將目前狀態存至Project64記憶檔(可使用任何檔名)"
#263# "讀取Project64設定的隨時記憶檔"
#264# "讀取Project64記憶檔(任何檔名)"
#265# "選擇或增加金手指給目前執行的ROM使用"
#266# "使用一個按鈕來執行金手指"
#267# "將會重視窗模式變更到全螢幕模式(按Esc鍵返回)"
#268# "保持Project64在最上層"
#269# "開啟視訊(顯示)外掛程式設定"
#270# "開啟音效(音樂)外掛程式設定"
#271# "開啟控制器(搖桿)外掛程式設定"
#272# "開啟RSP外掛程式設定"
#273# "顯示或關閉CPU使用率"
#274# "Project64的進階設定(外掛程式請在此選擇)"
#275# "開啟Project64的使用者手冊"
#276# "開啟Project64遊戲設定說明"
#277# "關於此應用程式及作者"
#278# "關於作者與感謝"
#279# "讀取最近開啟的ROM"
#280# "使用最近瀏覽的資料夾"
#281# "選擇不同的語言"
#282# "選擇不同的進度檔"
#283# "讀取並開始模擬這個ROM"
#284# "顯示這個ROM資訊"
#285# "編輯這個ROM設定在RDB檔案"
#286# "編輯這個ROM的金手指"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "檔案名稱"
#301# "內部名稱"
#302# "遊戲名稱"
#303# "狀態"
#304# "ROM大小"
#305# "重要記錄"
#306# "外掛程式記錄"
#307# "使用者記錄"
#308# "縮寫"
#309# "製作公司"
#310# "版本區域"
#311# "開發者"
#300# "檔案名稱"
#301# "內部名稱"
#302# "遊戲名稱"
#303# "狀態"
#304# "ROM大小"
#305# "重要記錄"
#306# "外掛程式記錄"
#307# "使用者記錄"
#308# "縮寫"
#309# "製作公司"
#310# "版本區域"
#311# "開發者"
#312# "CRC1"
#313# "CRC2"
#314# "CIC 片"
#315# "發行日期"
#316# "類型"
#317# "玩家數目"
#314# "CIC 片"
#315# "發行日期"
#316# "類型"
#317# "玩家數目"
//Select Rom
#320# "選擇瀏覽ROM的資料夾"
#320# "選擇瀏覽ROM的資料夾"
//Messages
#340# "無法使用的ROM,請使用GoodN64檢查新的RDB檔"
#340# "無法使用的ROM,請使用GoodN64檢查新的RDB檔"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Project64 設定"
#400# "Project64 設定"
//Tabs
#401# "外掛程式"
#402# "資料夾"
#403# "設定"
#404# "ROM瀏覽選項"
#405# "進階設定"
#406# "ROM選項"
#407# "關連"
#408# "ROM 紀錄"
#401# "外掛程式"
#402# "資料夾"
#403# "設定"
#404# "ROM瀏覽選項"
#405# "進階設定"
#406# "ROM選項"
#407# "關連"
#408# "ROM 紀錄"
//Plugin Dialog
#420# "關於"
#420# "關於"
#421# "&Reality Signal Processor plugin"
#422# "視訊(顯示)外掛程式(&V)"
#423# "音效(音樂)外掛程式(&A)"
#424# "控制器(搖桿)外掛程式(&I)"
#422# "視訊(顯示)外掛程式(&V)"
#423# "音效(音樂)外掛程式(&A)"
#424# "控制器(搖桿)外掛程式(&I)"
//Directory Dialog
#440# "外掛程式資料夾(&P)"
#441# "ROM資料夾(&R)"
#442# "N64存檔資料夾(&N)"
#443# "Project64隨時記憶檔資料夾(&T)"
#444# "抓取圖片資料夾(&S)"
#445# "使用最後開啟的ROM資料夾(&L)"
#446# "選擇您存放外掛程式的資料夾"
#447# "選擇您存放ROM檔的資料夾"
#448# "選擇您存放N64存檔的資料夾"
#449# "選擇您存放Project64隨時記憶檔的資料夾"
#450# "選擇您欲抓取圖片的資料夾"
#440# "外掛程式資料夾(&P)"
#441# "ROM資料夾(&R)"
#442# "N64存檔資料夾(&N)"
#443# "Project64隨時記憶檔資料夾(&T)"
#444# "抓取圖片資料夾(&S)"
#445# "使用最後開啟的ROM資料夾(&L)"
#446# "選擇您存放外掛程式的資料夾"
#447# "選擇您存放ROM檔的資料夾"
#448# "選擇您存放N64存檔的資料夾"
#449# "選擇您存放Project64隨時記憶檔的資料夾"
#450# "選擇您欲抓取圖片的資料夾"
//Options Dialog
#460# "當Project不是使用視窗時暫停(&P)"
#461# "讀取遊戲後自動切換至全螢幕(&F)"
#462# "隱藏進階設定(推薦!) (&H)"
#463# "記憶每個遊戲所選擇的金手指(&R)"
#460# "當Project不是使用視窗時暫停(&P)"
#461# "讀取遊戲後自動切換至全螢幕(&F)"
#462# "隱藏進階設定(推薦!) (&H)"
#463# "記憶每個遊戲所選擇的金手指(&R)"
//Rom Browser Tab
#480# "最近開啟的ROM記憶數目(&N) (0-10)"
#481# "個紀錄"
#482# "最近開啟的資料夾記憶數目(&F) (0-10)"
#483# "資紀錄"
#484# "使用ROM瀏覽器(&B)"
#485# "功能表循環(&D)"
#486# "可使用的(&A)"
#487# "顯示出的(&S)"
#488# "增加(A)->"
#489# "<- 移除(&R)"
#490# "上(&U)"
#491# "下(&D)"
#480# "最近開啟的ROM記憶數目(&N) (0-10)"
#481# "個紀錄"
#482# "最近開啟的資料夾記憶數目(&F) (0-10)"
#483# "資紀錄"
#484# "使用ROM瀏覽器(&B)"
#485# "功能表循環(&D)"
#486# "可使用的(&A)"
#487# "顯示出的(&S)"
#488# "增加(A)->"
#489# "<- 移除(&R)"
#490# "上(&U)"
#491# "下(&D)"
//Advanced Options
#500# "這些設定只使用在RDB檔沒有正確及具體的設定時,
若RDB檔已經設定,則下列設定無效"
#501# "核心設定(&D)"
#502# "核心模擬模式(&C):"
#503# "內部修正方式(&S):"
#504# "記憶容量大小(&M):"
#505# "進階區塊連結(&A):"
#506# "遊戲讀取後立即開始模擬(&T)"
#507# "覆寫這些設定在RDB檔(&O)"
#508# "自動將隨時存檔壓縮成Zip檔(不壓縮速度較快)"
#500# "這些設定只使用在RDB檔沒有正確及具體的設定時,
若RDB檔已經設定,則下列設定無效"
#501# "核心設定(&D)"
#502# "核心模擬模式(&C):"
#503# "內部修正方式(&S):"
#504# "記憶容量大小(&M):"
#505# "進階區塊連結(&A):"
#506# "遊戲讀取後立即開始模擬(&T)"
#507# "覆寫這些設定在RDB檔(&O)"
#508# "自動將隨時存檔壓縮成Zip檔(不壓縮速度較快)"
//Rom Options
#520# "核心模擬模式(&C):"
#521# "內置記憶方式(&S):"
#522# "記憶容量大小(&M):"
#523# "進階區塊連結(&A):"
#524# "存檔類型(&V):"
#525# "最高速度限制(&F):"
#526# "較大的緩衝記憶體(&L)"
#527# "預定要使用TLB(&T)"
#528# "隱藏登記(&R)"
#529# "延緩SI中斷(&I)"
#520# "核心模擬模式(&C):"
#521# "內置記憶方式(&S):"
#522# "記憶容量大小(&M):"
#523# "進階區塊連結(&A):"
#524# "存檔類型(&V):"
#525# "最高速度限制(&F):"
#526# "較大的緩衝記憶體(&L)"
#527# "預定要使用TLB(&T)"
#528# "隱藏登記(&R)"
#529# "延緩SI中斷(&I)"
#530# "SP Hack(&H)"
#531# "* 使用預設"
#531# "* 使用預設"
//Core Styles
#540# "直譯器"
#541# "重譯器"
#542# "同時啟動"
#540# "直譯器"
#541# "重譯器"
#542# "同時啟動"
//Self Mod Methods
#560# "無"
#561# "隱藏"
#562# "安全記憶體"
#563# "檢查記憶體並隱藏"
#564# "更換記憶體並隱藏"
#565# "檢查進階記憶體"
#560# "無"
#561# "隱藏"
#562# "安全記憶體"
#563# "檢查記憶體並隱藏"
#564# "更換記憶體並隱藏"
#565# "檢查進階記憶體"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "開啟"
#601# "關閉"
#600# "開啟"
#601# "關閉"
//Save Type
#620# "* 使用第一個類型"
#621# "4千位元 EEPROM"
#622# "16千位元 EEPROM"
#623# "32千位元 SRAM"
#624# "128千位元 動態RAM"
#620# "* 使用第一個類型"
#621# "4千位元 EEPROM"
#622# "16千位元 EEPROM"
#623# "32千位元 SRAM"
#624# "128千位元 動態RAM"
//Shell Intergration Tab
#640# "檔案與Project64連結"
#640# "檔案與Project64連結"
//Rom Notes
#660# "狀態(&S):"
#661# "重要記錄(&C):"
#662# "外掛程式記錄(&P):"
#660# "狀態(&S):"
#661# "重要記錄(&C):"
#662# "外掛程式記錄(&P):"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title Title
#800# "ROM資訊"
#800# "ROM資訊"
//Rom Info Text
#801# "內部名稱"
#802# "檔案名稱"
#803# "位置"
#804# "大小"
#805# "縮寫"
#806# "製作公司"
#807# "版本區域"
#801# "內部名稱"
#802# "檔案名稱"
#803# "位置"
#804# "大小"
#805# "縮寫"
#806# "製作公司"
#807# "版本區域"
#808# "CRC1"
#809# "CRC2"
#810# "CIC 片"
#810# "CIC 片"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "金手指"
#1001# "金手指:"
#1002# "說明: "
#1003# "選擇全部"
#1004# "全部取消選擇(&U)"
#1000# "金手指"
#1001# "金手指:"
#1002# "說明: "
#1003# "選擇全部"
#1004# "全部取消選擇(&U)"
//Add Cheat
#1005# "新增金手指"
#1006# "名稱:"
#1007# "金手指碼:"
#1008# "插入"
#1009# "清除"
#1010# " 金手指說明:"
#1011# "新增到 DB"
#1022# "新增金手指"
#1023# "建立新金手指"
#1024# "<位址> <數值>"
#1025# "設定:"
#1026# "<數值> <標籤>"
#1005# "新增金手指"
#1006# "名稱:"
#1007# "金手指碼:"
#1008# "插入"
#1009# "清除"
#1010# " 金手指說明:"
#1011# "新增到 DB"
#1022# "新增金手指"
#1023# "建立新金手指"
#1024# "<位址> <數值>"
#1025# "設定:"
#1026# "<數值> <標籤>"
//Code extension
#1012# "編碼延長"
#1013# "請選擇一個數值使用:"
#1014# "確定"
#1015# "取消"
#1012# "編碼延長"
#1013# "請選擇一個數值使用:"
#1014# "確定"
#1015# "取消"
//Digital Value
#1016# "數位量"
#1017# "請選擇一個數值:"
#1016# "數位量"
#1017# "請選擇一個數值:"
#1018# "(&V)"
#1019# "給"
#1020# "到"
#1021# "說明(&N):"
#1019# "給"
#1020# "到"
#1021# "說明(&N):"
//Edit Cheat
#1027# "編輯金手指"
#1028# "更新金手指"
#1027# "編輯金手指"
#1028# "更新金手指"
//Cheat Popup Menu
#1040# "建立新金手指..."
#1041# "編輯..."
#1042# "刪除"
#1040# "建立新金手指..."
#1041# "編輯..."
#1042# "刪除"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "暫停"
#2001# "繼續"
#2002# "在無法改變的區域內不能退出,
模擬即將停止
#2000# "暫停"
#2001# "繼續"
#2002# "在無法改變的區域內不能退出,
模擬即將停止
Verify ROM and ROM Settings."
#2003# "記憶體分配失敗"
#2004# "預設的視訊外掛程式檔案不存在或無法使用
#2003# "記憶體分配失敗"
#2004# "預設的視訊外掛程式檔案不存在或無法使用
請確定您有一個以上可使用的視訊外掛檔案在你的視訊外掛資料夾裡"
#2005# "預設的音效外掛程式檔案不存在或無法使用
請確定您有一個以上可使用的視訊外掛檔案在你的視訊外掛資料夾裡"
#2005# "預設的音效外掛程式檔案不存在或無法使用
請確定您有一個以上可使用的音效外掛檔案在你的音效外掛資料夾裡"
#2006# "預設的RPS外掛程式檔案不存在或無法使用
請確定您有一個以上可使用的音效外掛檔案在你的音效外掛資料夾裡"
#2006# "預設的RPS外掛程式檔案不存在或無法使用
請確定您有正確的安裝Project64並且含有外掛程式"
#2007# "預設的控制器外掛程式檔案不存在或無法使用
請確定您有正確的安裝Project64並且含有外掛程式"
#2007# "預設的控制器外掛程式檔案不存在或無法使用
請確定您有一個以上可使用的控制器外掛檔案在你的控制器外掛資料夾裡"
#2008# "無法讀取外掛:"
#2009# "無法讀取
請確定您有一個以上可使用的控制器外掛檔案在你的控制器外掛資料夾裡"
#2008# "無法讀取外掛:"
#2009# "無法讀取
ROM驗證和設定"
#2010# "無法開啟隨時記憶檔"
#2011# "無法開啟EEPROM"
#2012# "無法開啟動態RAM"
#2013# "無法開啟MemPak"
#2014# "無法開啟此ZIP檔
請檢查此ZIP檔中是否含有正確的ROM
ROM驗證和設定"
#2010# "無法開啟隨時記憶檔"
#2011# "無法開啟EEPROM"
#2012# "無法開啟動態RAM"
#2013# "無法開啟MemPak"
#2014# "無法開啟此ZIP檔
請檢查此ZIP檔中是否含有正確的ROM
你可能需要重新開啟這個程式"
#2015# "開啟檔案時發生錯誤"
#2016# "當嘗試開啟ZIP檔時發生錯誤"
#2017# "這個檔案並不是N64的ROM檔
你可能需要重新開啟這個程式"
#2015# "開啟檔案時發生錯誤"
#2016# "當嘗試開啟ZIP檔時發生錯誤"
#2017# "這個檔案並不是N64的ROM檔
請使用GoodROM檢查這個ROM"
#2018# "未知的國家"
#2019# "未知的CIC 片"
#2020# "未知的檔案格式"
#2021# "未知的記憶動作
請使用GoodROM檢查這個ROM"
#2018# "未知的國家"
#2019# "未知的CIC 片"
#2020# "未知的檔案格式"
#2021# "未知的記憶動作
模擬結束"
#2022# "無法開啟核心碼"
#2023# "執行並無法映射空間
模擬結束"
#2022# "無法開啟核心碼"
#2023# "執行並無法映射空間
請檢查ROM檔和ROM設定"
#2024# "這個存檔並不適用於這個ROM
請檢查ROM檔和ROM設定"
#2024# "這個存檔並不適用於這個ROM
隨時記憶存檔必須100%的來自這個ROM
(包括ROM的版本區域)
讀取這個存檔可能會導致錯誤
隨時記憶存檔必須100%的來自這個ROM
(包括ROM的版本區域)
讀取這個存檔可能會導致錯誤
確定要繼續讀取嗎?"
#2025# "應用程式或核心錯誤"
#2026# "版權序列並未在LUT中找到, 遊戲無法長久執行"
#2027# "複製保護失敗"
#2028# "改變外掛程式必須重新啟動以執行的ROM
假使您需要存檔,請選擇取消,存檔後再執行重新起動
確定要繼續讀取嗎?"
#2025# "應用程式或核心錯誤"
#2026# "版權序列並未在LUT中找到, 遊戲無法長久執行"
#2027# "複製保護失敗"
#2028# "改變外掛程式必須重新啟動以執行的ROM
假使您需要存檔,請選擇取消,存檔後再執行重新起動
現在更改外掛程式並重新啟動遊戲??"
#2029# "更改外掛程式"
#2030# "模擬結束"
#2031# "模擬開始"
#2032# "不能讀取存檔"
#2033# "讀取進度:"
#2034# "儲存進度:"
#2035# "讀取隨時進度檔"
現在更改外掛程式並重新啟動遊戲??"
#2029# "更改外掛程式"
#2030# "模擬結束"
#2031# "模擬開始"
#2032# "不能讀取存檔"
#2033# "讀取進度:"
#2034# "儲存進度:"
#2035# "讀取隨時進度檔"
#2036# "Byteswapping ROM"
#2037# "請等候所選擇的ROM"
#2038# "讀取完成"
#2039# "正在讀取ROM"
#2040# "您不能開啟此ROM,可能是外掛程式(視訊,音效,控制器,RSP)不支援"
#2041# "您確定以要刪除這個金手指?"
#2042# "刪除Cheat"
#2043# "金手指名稱已經使用,請使用其他的"
#2044# "您的金手指數目以到達最大值,您將無法再添加金手指"
#2037# "請等候所選擇的ROM"
#2038# "讀取完成"
#2039# "正在讀取ROM"
#2040# "您不能開啟此ROM,可能是外掛程式(視訊,音效,控制器,RSP)不支援"
#2041# "您確定以要刪除這個金手指?"
#2042# "刪除Cheat"
#2043# "金手指名稱已經使用,請使用其他的"
#2044# "您的金手指數目以到達最大值,您將無法再添加金手指"

View File

@ -1,428 +1,428 @@
/*********************************************************************************
/*********************************************************************************
* Meta Information *
*********************************************************************************/
//About DLL
#1 # "Українська" // LANGUAGE ID
#2 # "Володимир Дуденко" // Author
#1 # "Українська" // LANGUAGE ID
#2 # "Володимир Дуденко" // Author
#3 # "1.6.2" // Version
#4 # "02 квітня 2005" // Date
#4 # "02 квітня 2005" // Date
//About DLL Dialog
#5 # "Переклад (Lang\Ukrainian.pj.Lang)"
#6 # "Автор"
#7 # "Версія"
#8 # "Дата"
#9 # "Сторінка автора в інтернеті"
#10 # "База даних ігор (.rdb)"
#11 # "Файл з секретними кодами (.cht)"
#12 # "Файл інформації (.rdx)"
#5 # "Переклад (Lang\Ukrainian.pj.Lang)"
#6 # "Автор"
#7 # "Версія"
#8 # "Дата"
#9 # "Сторінка автора в інтернеті"
#10 # "База даних ігор (.rdb)"
#11 # "Файл з секретними кодами (.cht)"
#12 # "Файл інформації (.rdx)"
//About INI title
#20 # "Використовуються файли:"
#20 # "Використовуються файли:"
/*********************************************************************************
* Menu *
*********************************************************************************/
//File Menu
#100# "&Файл"
#101# "&Відкрити гру..."
#102# "&Інформація про гру..."
#103# "&Почати емуляцію"
#104# "&Завершити емуляцію"
#105# "&Обрати папку з іграми..."
#106# "О&бновити список ігор"
#107# "О&станні ігри"
#108# "&Які є папки"
#109# "Вихі&д"
#100# "&Файл"
#101# "&Відкрити гру..."
#102# "&Інформація про гру..."
#103# "&Почати емуляцію"
#104# "&Завершити емуляцію"
#105# "&Обрати папку з іграми..."
#106# "О&бновити список ігор"
#107# "О&станні ігри"
#108# "&Які є папки"
#109# "Вихі&д"
//System Menu
#120# "&Система"
#121# "&Перезапустити"
#122# "Пауз&а"
#123# "З&робити скріншот"
#124# "&Обмеження швидкості"
#125# "&Зберегти"
#126# "Зберегти &як..."
#127# "&Відновити"
#128# "Завантажит&и..."
#129# "Обраний &блок пам'яті"
#130# "Секретні &коди..."
#131# "GS-к&нопка"
#132# "Про&довжити"
#120# "&Система"
#121# "&Перезапустити"
#122# "Пауз&а"
#123# "З&робити скріншот"
#124# "&Обмеження швидкості"
#125# "&Зберегти"
#126# "Зберегти &як..."
#127# "&Відновити"
#128# "Завантажит&и..."
#129# "Обраний &блок пам'яті"
#130# "Секретні &коди..."
#131# "GS-к&нопка"
#132# "Про&довжити"
//Options Menu
#140# "&Опції"
#141# "&На весь екран"
#142# "&Завжди зверху"
#143# "Налаштувати &графіку..."
#144# "Налаштувати зву&к..."
#145# "Налаштувати &управління..."
#146# "Налаштуват&и RSP..."
#147# "&Детально про завантаження процесора"
#148# "Настроюванн&я..."
#140# "&Опції"
#141# "&На весь екран"
#142# "&Завжди зверху"
#143# "Налаштувати &графіку..."
#144# "Налаштувати зву&к..."
#145# "Налаштувати &управління..."
#146# "Налаштуват&и RSP..."
#147# "&Детально про завантаження процесора"
#148# "Настроюванн&я..."
//Debugger Menu
#160# "&Дебаггер"
#160# "&Дебаггер"
//Language Menu
#175# "&Мова"
#175# "&Мова"
//Help Menu
#180# "Допомог&а"
#181# "Про &файли"
#182# "&Про Project 64"
#183# "Форум підтримк&и"
#184# "&Сторінка в інтернеті"
#180# "Допомог&а"
#181# "Про &файли"
#182# "&Про Project 64"
#183# "Форум підтримк&и"
#184# "&Сторінка в інтернеті"
//Current Save Slot menu
#190# "&Обирає програма"
#191# "Блок &1"
#192# "Блок &2"
#193# "Блок &3"
#194# "Блок &4"
#195# "Блок &5"
#196# "Блок &6"
#197# "Блок &7"
#198# "Блок &8"
#199# "Блок &9"
#200# "Блок 1&0"
#190# "&Обирає програма"
#191# "Блок &1"
#192# "Блок &2"
#193# "Блок &3"
#194# "Блок &4"
#195# "Блок &5"
#196# "Блок &6"
#197# "Блок &7"
#198# "Блок &8"
#199# "Блок &9"
#200# "Блок 1&0"
//Pop up Menu
#210# "&Грати в гру"
#211# "&Інформація про гру"
#212# "&Редагувати опції гри"
#213# "Редагувати &секретні коди"
#210# "&Грати в гру"
#211# "&Інформація про гру"
#212# "&Редагувати опції гри"
#213# "Редагувати &секретні коди"
// Menu Descriptions
#250# "Відкрити гру (вона може бути всередині .zip-файлу)"
#251# "Відобразити інформацію про відкриту гру"
#252# "Почати емуляцію завантаженої гри"
#253# "Завершити емуляцію завантаженої гри"
#254# "Ігри з цієї папки будуть показані в списку"
#255# "Відобразити щойно додані ігри у вікні списку"
#256# "Вийти з програми"
#257# "Перезавантажити поточну гру"
#258# "Призупинити/відновити поточну гру"
#259# "Зберегти зображення на екрані у папку зі скріншотами"
#260# "Обмежити кількість кадрів за секунду до дійсної швидкості Nintendo64"
#261# "Зберегти поточний стан гри на обраний блок пам'яті"
#262# "Зберегти поточний стан гри в обрану папку"
#263# "Відновити збережений стан гри"
#264# "Обрати та відновити збережений стан гри"
#265# "Обрати секретні коди Game Shark до поточної гри"
#266# "Емуляція натискання Game Shark-кнопки для деяких кодів"
#267# "Розгорнути зображення на весь екран"
#268# "Щоб це вікно було понад усіма іншими"
#269# "Налаштувати обраний графічний плагін"
#270# "Налаштувати обраний звуковий плагін"
#271# "Налаштувати обраний плагін управління (обрати кнопки)"
#272# "Налаштувати Reality Signal Processor"
#273# "Показати/сховати дані про використання програмою центрального процесора"
#274# "Налаштувати програму"
#275# "Почитати інструкцію до програми"
#276# "Почитати вказівки до ігор"
#277# "Про авторів файлів підтримки"
#278# "Про програму та її авторів"
#279# "Відкрити гру зі списку"
#280# "Обрати цю папку папкою з іграми"
#281# "Обрати цю мову"
#282# "Обрати цей блок пам'яті"
#283# "Грати в обрану гру"
#284# "Інформація про обрану гру"
#285# "Редагувати опції обраної гри"
#286# "Редагувати секретні коди для обраної гри"
#250# "Відкрити гру (вона може бути всередині .zip-файлу)"
#251# "Відобразити інформацію про відкриту гру"
#252# "Почати емуляцію завантаженої гри"
#253# "Завершити емуляцію завантаженої гри"
#254# "Ігри з цієї папки будуть показані в списку"
#255# "Відобразити щойно додані ігри у вікні списку"
#256# "Вийти з програми"
#257# "Перезавантажити поточну гру"
#258# "Призупинити/відновити поточну гру"
#259# "Зберегти зображення на екрані у папку зі скріншотами"
#260# "Обмежити кількість кадрів за секунду до дійсної швидкості Nintendo64"
#261# "Зберегти поточний стан гри на обраний блок пам'яті"
#262# "Зберегти поточний стан гри в обрану папку"
#263# "Відновити збережений стан гри"
#264# "Обрати та відновити збережений стан гри"
#265# "Обрати секретні коди Game Shark до поточної гри"
#266# "Емуляція натискання Game Shark-кнопки для деяких кодів"
#267# "Розгорнути зображення на весь екран"
#268# "Щоб це вікно було понад усіма іншими"
#269# "Налаштувати обраний графічний плагін"
#270# "Налаштувати обраний звуковий плагін"
#271# "Налаштувати обраний плагін управління (обрати кнопки)"
#272# "Налаштувати Reality Signal Processor"
#273# "Показати/сховати дані про використання програмою центрального процесора"
#274# "Налаштувати програму"
#275# "Почитати інструкцію до програми"
#276# "Почитати вказівки до ігор"
#277# "Про авторів файлів підтримки"
#278# "Про програму та її авторів"
#279# "Відкрити гру зі списку"
#280# "Обрати цю папку папкою з іграми"
#281# "Обрати цю мову"
#282# "Обрати цей блок пам'яті"
#283# "Грати в обрану гру"
#284# "Інформація про обрану гру"
#285# "Редагувати опції обраної гри"
#286# "Редагувати секретні коди для обраної гри"
/*********************************************************************************
* Rom Browser *
*********************************************************************************/
//Rom Browser Fields
#300# "Назва файлу"
#301# "Внутрішня назва"
#302# "Назва згідно GoodN64"
#303# "Стан"
#304# "Розмір гри"
#305# "Нотатки - ядро"
#306# "Нотатки - плагіни"
#307# "Нотатки юзера в Project64.rdn"
#308# "Код касети"
#309# "Виробник"
#310# "Регіон"
#311# "Розробник"
#300# "Назва файлу"
#301# "Внутрішня назва"
#302# "Назва згідно GoodN64"
#303# "Стан"
#304# "Розмір гри"
#305# "Нотатки - ядро"
#306# "Нотатки - плагіни"
#307# "Нотатки юзера в Project64.rdn"
#308# "Код касети"
#309# "Виробник"
#310# "Регіон"
#311# "Розробник"
#312# "CRC1"
#313# "CRC2"
#314# "CIC-чіп"
#315# "Дата видання"
#316# "Жанр"
#317# "Гравців"
#318# "Вібрація"
#314# "CIC-чіп"
#315# "Дата видання"
#316# "Жанр"
#317# "Гравців"
#318# "Вібрація"
//Select Rom
#320# "Обрати поточну папку з іграми"
#340# "Поганий ROM? скористайтеся GoodN64 та пошукайте оновлені файли підтримки"
#320# "Обрати поточну папку з іграми"
#340# "Поганий ROM? скористайтеся GoodN64 та пошукайте оновлені файли підтримки"
/*********************************************************************************
* Options *
*********************************************************************************/
//Options Title
#400# "Опції"
#400# "Опції"
//Tabs
#401# "Плагіни"
#402# "Папки"
#403# "Опції"
#404# "Список"
#405# "Додатково"
#406# "Опції гри"
#407# "Інтеграція"
#408# "Нотатки до гри"
#401# "Плагіни"
#402# "Папки"
#403# "Опції"
#404# "Список"
#405# "Додатково"
#406# "Опції гри"
#407# "Інтеграція"
#408# "Нотатки до гри"
//Plugin Dialog
#420# "Інформація"
#421# " &Плагін RSP: "
#422# " &Графічний плагін: "
#423# " &Звуковий плагін: "
#424# " Плагін &упрваління: "
#420# "Інформація"
#421# " &Плагін RSP: "
#422# " &Графічний плагін: "
#423# " &Звуковий плагін: "
#424# " Плагін &упрваління: "
//Directory Dialog
#440# " Папка з &плагінами: "
#441# " Папка з &іграми: "
#442# " &Автоматично збережені стани в папці: "
#443# " &Ваші стани в папці: "
#444# " &Скріншоти в папці: "
#445# "Пам'ятати &останню папку"
#446# "Обрати папку з плагінами"
#447# "Обрати папку з іграми"
#448# "Обрати папку для автоматично збережених станів"
#449# "Обрати папку для ваших станів"
#450# "Обрати папку для скріншотів"
#440# " Папка з &плагінами: "
#441# " Папка з &іграми: "
#442# " &Автоматично збережені стани в папці: "
#443# " &Ваші стани в папці: "
#444# " &Скріншоти в папці: "
#445# "Пам'ятати &останню папку"
#446# "Обрати папку з плагінами"
#447# "Обрати папку з іграми"
#448# "Обрати папку для автоматично збережених станів"
#449# "Обрати папку для ваших станів"
#450# "Обрати папку для скріншотів"
//Options Dialog
#460# "&Зупиняти емуляцію коли вікно не активне"
#461# "&Відразу переходити на повний екран"
#462# "&Приховати додаткові опції"
#463# "Пам'ятати &обрані секретні коди"
#460# "&Зупиняти емуляцію коли вікно не активне"
#461# "&Відразу переходити на повний екран"
#462# "&Приховати додаткові опції"
#463# "Пам'ятати &обрані секретні коди"
//Rom Browser Tab
#480# "Кількість &ігор у списку (до 10):"
#481# "шт."
#482# "Кількість &папок у списку (до 10):"
#483# "шт."
#484# "&Увімкнути список"
#485# "&Шукати в підкаталогах"
#486# "&Доступні поля:"
#487# "Порядо&к показу:"
#488# "Д&одати ->"
#489# "<- Н&азад"
#490# "В&гору"
#491# "В&низ"
#480# "Кількість &ігор у списку (до 10):"
#481# "шт."
#482# "Кількість &папок у списку (до 10):"
#483# "шт."
#484# "&Увімкнути список"
#485# "&Шукати в підкаталогах"
#486# "&Доступні поля:"
#487# "Порядо&к показу:"
#488# "Д&одати ->"
#489# "<- Н&азад"
#490# "В&гору"
#491# "В&низ"
//Advanced Options
#500# "Ці настройки будуть діяти коли не буде .rdb-файлу або буде вимкнена опція заміни внизу."
#501# "&Ядро"
#502# "&Тип ядра:"
#503# "&Метод обробки коду:"
#504# "&Розмір пам'яті:"
#505# "&З'єднування блоків:"
#506# "&Починати емуляцію при відкритті гри"
#507# "Замінювати &обрані опції опціями з бази даних"
#508# "&Автоматично компресувати збережені стани"
#500# "Ці настройки будуть діяти коли не буде .rdb-файлу або буде вимкнена опція заміни внизу."
#501# "&Ядро"
#502# "&Тип ядра:"
#503# "&Метод обробки коду:"
#504# "&Розмір пам'яті:"
#505# "&З'єднування блоків:"
#506# "&Починати емуляцію при відкритті гри"
#507# "Замінювати &обрані опції опціями з бази даних"
#508# "&Автоматично компресувати збережені стани"
//Rom Options
#520# "&Тип ядра:"
#521# "&Метод обробки коду:"
#522# "&Розмір пам'яті:"
#523# "&З'єднування блоків:"
#524# "Т&ип збереження:"
#525# "Такт &ядра:"
#526# "&Більший буфер"
#527# "&Увімкнути TLB"
#528# "&Кешинг реєстру"
#529# "Затримка &переривання SI"
#530# "SP &хак"
#531# "Обирає програма"
#532# "Звук з RSP"
#520# "&Тип ядра:"
#521# "&Метод обробки коду:"
#522# "&Розмір пам'яті:"
#523# "&З'єднування блоків:"
#524# "Т&ип збереження:"
#525# "Такт &ядра:"
#526# "&Більший буфер"
#527# "&Увімкнути TLB"
#528# "&Кешинг реєстру"
#529# "Затримка &переривання SI"
#530# "SP &хак"
#531# "Обирає програма"
#532# "Звук з RSP"
//Core Styles
#540# "Інтерпретатор"
#541# "Рекомпілятор"
#542# "Синхронізувати ядра"
#540# "Інтерпретатор"
#541# "Рекомпілятор"
#542# "Синхронізувати ядра"
//Self Mod Methods
#560# "Немає"
#561# "Кеш"
#562# "Захист пам'яті"
#563# "Перевірка пам'яті й кешу"
#564# "Заміна пам'яті та кешу"
#565# "Краща перевірка пам'яті"
#560# "Немає"
#561# "Кеш"
#562# "Захист пам'яті"
#563# "Перевірка пам'яті й кешу"
#564# "Заміна пам'яті та кешу"
#565# "Краща перевірка пам'яті"
//RDRAM Size
#580# "4 MB"
#581# "8 MB"
//Advanced Block Linking
#600# "Так"
#601# "Ні"
#600# "Так"
#601# "Ні"
//Save Type
#620# "Обирає програма"
#620# "Обирає програма"
#621# "4kbit EEPROM"
#622# "16kbit EEPROM"
#623# "32kbytes SRAM"
#624# "128kbyte FlashRAM"
//Shell Integration Tab
#640# "Поєднати з Project64:"
#640# "Поєднати з Project64:"
//Rom Notes
#660# "&Стан гри:"
#661# "Нотатки - &ядро:"
#662# "Нотатки - &плагіни:"
#660# "&Стан гри:"
#661# "Нотатки - &ядро:"
#662# "Нотатки - &плагіни:"
/*********************************************************************************
* ROM Information *
*********************************************************************************/
//Rom Info Title
#800# "Інформація про гру"
#800# "Інформація про гру"
//Rom Info Text
#801# "Назва ROMу:"
#802# "Назва файлу:"
#803# "Шлях до файлу:"
#804# "Розмір гри:"
#805# "Код касети:"
#806# "Виробник:"
#807# "Регіон:"
#801# "Назва ROMу:"
#802# "Назва файлу:"
#803# "Шлях до файлу:"
#804# "Розмір гри:"
#805# "Код касети:"
#806# "Виробник:"
#807# "Регіон:"
#808# "CRC1:"
#809# "CRC2:"
#810# "CIC-чіп:"
#810# "CIC-чіп:"
/*********************************************************************************
* Cheats *
*********************************************************************************/
//Cheat List
#1000# "Коди"
#1001# "Коди:"
#1002# " Нотатки: "
#1003# "Увімкнути всі"
#1004# "&Вимкнути всі"
#1000# "Коди"
#1001# "Коди:"
#1002# " Нотатки: "
#1003# "Увімкнути всі"
#1004# "&Вимкнути всі"
//Add Cheat
#1005# "Додати код"
#1006# "Назва:"
#1007# "Код:"
#1008# "Вставити"
#1009# "Очистити"
#1010# " Нотатки до коду: "
#1011# "Додати до бази даних"
#1005# "Додати код"
#1006# "Назва:"
#1007# "Код:"
#1008# "Вставити"
#1009# "Очистити"
#1010# " Нотатки до коду: "
#1011# "Додати до бази даних"
//Code extension
#1012# "Розширення коду"
#1013# "Оберіть значення до:"
#1014# "Так"
#1015# "Ні"
#1012# "Розширення коду"
#1013# "Оберіть значення до:"
#1014# "Так"
#1015# "Ні"
//Digital Value
#1016# "Цифра величини"
#1017# "Оберіть значення для:"
#1018# "&Значення"
#1019# "від"
#1020# "до"
#1021# "&Нотатки:"
#1022# "Додати код"
#1023# "Новий код"
#1024# "<адреса> <код>"
#1025# "Опції:"
#1026# "<код> <позначка>"
#1027# "Редагувати код"
#1028# "Обновити код"
#1040# "Додати код..."
#1041# "Редагувати..."
#1042# "Видалити"
#1016# "Цифра величини"
#1017# "Оберіть значення для:"
#1018# "&Значення"
#1019# "від"
#1020# "до"
#1021# "&Нотатки:"
#1022# "Додати код"
#1023# "Новий код"
#1024# "<адреса> <код>"
#1025# "Опції:"
#1026# "<код> <позначка>"
#1027# "Редагувати код"
#1028# "Обновити код"
#1040# "Додати код..."
#1041# "Редагувати..."
#1042# "Видалити"
/*********************************************************************************
* Messages *
*********************************************************************************/
#2000# "Пауза"
#2001# "Роботу поновлено"
#2002# "Програма знаходиться у безвихідному циклі.
Емуляцію буде припинено.
#2000# "Пауза"
#2001# "Роботу поновлено"
#2002# "Програма знаходиться у безвихідному циклі.
Емуляцію буде припинено.
Перевірте гру та її опції."
#2003# "Не вдалося розподілити пам'ять"
#2004# "Графічний плагін не знайдено або він пошкоджений.
Перевірте гру та її опції."
#2003# "Не вдалося розподілити пам'ять"
#2004# "Графічний плагін не знайдено або він пошкоджений.
Вам потрібно зайти до Настроювання та обрати графічний плагін.
У папці з плагінами повинен бути хоча б один сумісний плагін."
#2005# "Звуковий плагін не знайдено або він пошкоджений.
Вам потрібно зайти до Настроювання та обрати графічний плагін.
У папці з плагінами повинен бути хоча б один сумісний плагін."
#2005# "Звуковий плагін не знайдено або він пошкоджений.
Вам потрібно зайти до Настроювання та обрати звуковий плагін.
У папці з плагінами повинен бути хоча б один сумісний плагін."
#2006# "Плагін RSP не знайдено або він пошкоджений.
Вам потрібно зайти до Настроювання та обрати звуковий плагін.
У папці з плагінами повинен бути хоча б один сумісний плагін."
#2006# "Плагін RSP не знайдено або він пошкоджений.
Вам потрібно зайти до Настроювання та обрати плагін RSP.
У папці з плагінами повинен бути хоча б один сумісний плагін."
#2007# "Плагін управління не знайдено або він пошкоджений.
Вам потрібно зайти до Настроювання та обрати плагін RSP.
У папці з плагінами повинен бути хоча б один сумісний плагін."
#2007# "Плагін управління не знайдено або він пошкоджений.
Вам потрібно зайти до Настроювання та обрати плагін управління.
У папці з плагінами повинен бути хоча б один сумісний плагін."
#2008# "Не вдалося завантажити плагін:"
#2009# "Не вдалося завантажити слово
Вам потрібно зайти до Настроювання та обрати плагін управління.
У папці з плагінами повинен бути хоча б один сумісний плагін."
#2008# "Не вдалося завантажити плагін:"
#2009# "Не вдалося завантажити слово
Перевірте гру та її опції."
#2010# "Не вдалося відкрити стан"
#2011# "Не вдалося відкрити EEPROM"
#2012# "Не вдалося відкрити FlashRAM"
#2013# "Не вдалося відкрити MemPak"
#2014# "Не вдалося відкрити .zip-файл.
Перевірте гру та її опції."
#2010# "Не вдалося відкрити стан"
#2011# "Не вдалося відкрити EEPROM"
#2012# "Не вдалося відкрити FlashRAM"
#2013# "Не вдалося відкрити MemPak"
#2014# "Не вдалося відкрити .zip-файл.
Можливо .zip-файл зламано - перевірте файл та шлях до нього."
#2015# "Не вдалося відкрити файл."
#2016# "Сталася помилка при відкритті .zip-файлу."
#2017# "Завантажений файл не є дійсним Nintendo64 ROMом.
Можливо .zip-файл зламано - перевірте файл та шлях до нього."
#2015# "Не вдалося відкрити файл."
#2016# "Сталася помилка при відкритті .zip-файлу."
#2017# "Завантажений файл не є дійсним Nintendo64 ROMом.
Перевірте ваші ігри прграмою GoodN64."
#2018# "Невідомий регіон"
#2019# "Невідомий CIC-чіп"
#2020# "Невідомий формат файла"
#2021# "Невідома дія пам'яті
Перевірте ваші ігри прграмою GoodN64."
#2018# "Невідомий регіон"
#2019# "Невідомий CIC-чіп"
#2020# "Невідомий формат файла"
#2021# "Невідома дія пам'яті
Емуляцію припинено"
#2022# "Некерований R4300i код в "
#2023# "Команду виконано невірно.
Емуляцію припинено"
#2022# "Некерований R4300i код в "
#2023# "Команду виконано невірно.
Перевірте гру та її опції."
#2024# "Збережений стан не підходить до поточної гри.
Перевірте гру та її опції."
#2024# "Збережений стан не підходить до поточної гри.
Стани гри повинні зберігатися та завантажуватися на 100% ідентичними іграми,
тобто РЕГІОН та ВЕРСІЯ мають бути однаковими.
Завантаження цього стану можливо призведе до зависання.
Стани гри повинні зберігатися та завантажуватися на 100% ідентичними іграми,
тобто РЕГІОН та ВЕРСІЯ мають бути однаковими.
Завантаження цього стану можливо призведе до зависання.
Ви дійсно бажаєте продовжити завантаження?"
#2025# "Помилка програми/ядра"
#2026# "Не знайдено авторських прав у LUT. Гра не буде працювати."
#2027# "Відмова захисту від копіювання"
#2028# "Зміна плагіна змусить Project64 перезавантажити поточну гру.
Якщо ви не бажаєте починати гру з початку, відповідайте Ні та збережіть стан гри.
Ви дійсно бажаєте продовжити завантаження?"
#2025# "Помилка програми/ядра"
#2026# "Не знайдено авторських прав у LUT. Гра не буде працювати."
#2027# "Відмова захисту від копіювання"
#2028# "Зміна плагіна змусить Project64 перезавантажити поточну гру.
Якщо ви не бажаєте починати гру з початку, відповідайте Ні та збережіть стан гри.
Замінити плагіни та перезапустити гру?"
#2029# "Заміна плагінів"
#2030# "Емуляцію завершено"
#2031# "Почато емуляцію"
#2032# "Неможливо завантажити збережений стан"
#2033# "Завантажено збережений стан"
#2034# "Стан збережено у файл "
#2035# "Обрано блок пам'яті"
#2036# "Оптимізація ROMу"
#2037# "Обирається гра"
#2038# "Завантажено"
#2039# "Завантажується гра"
#2040# "Неможливо відкрити гру через невдалу ініціалізацію плагінів.
Замінити плагіни та перезапустити гру?"
#2029# "Заміна плагінів"
#2030# "Емуляцію завершено"
#2031# "Почато емуляцію"
#2032# "Неможливо завантажити збережений стан"
#2033# "Завантажено збережений стан"
#2034# "Стан збережено у файл "
#2035# "Обрано блок пам'яті"
#2036# "Оптимізація ROMу"
#2037# "Обирається гра"
#2038# "Завантажено"
#2039# "Завантажується гра"
#2040# "Неможливо відкрити гру через невдалу ініціалізацію плагінів.
Спробуйте обрати придатний плагін у вікні Настроювання."
#2041# "Ви дійсно бажаєте видалити цей код?"
#2042# "Видалити код"
#2043# "Вже є код з такою назвою, оберіть другу назву."
#2044# "Досягнуто максимальної кількості секретних кодів до цієї гри."
Спробуйте обрати придатний плагін у вікні Настроювання."
#2041# "Ви дійсно бажаєте видалити цей код?"
#2042# "Видалити код"
#2043# "Вже є код з такою назвою, оберіть другу назву."
#2044# "Досягнуто максимальної кількості секретних кодів до цієї гри."
//official support site: http://vdx2004.narod.ru
//Made in Ukraine.

203
Source/3rd Party/7zip/7z.h Normal file
View File

@ -0,0 +1,203 @@
/* 7z.h -- 7z interface
2010-03-11 : Igor Pavlov : Public domain */
#ifndef __7Z_H
#define __7Z_H
#include "7zBuf.h"
EXTERN_C_BEGIN
#define k7zStartHeaderSize 0x20
#define k7zSignatureSize 6
extern Byte k7zSignature[k7zSignatureSize];
#define k7zMajorVersion 0
enum EIdEnum
{
k7zIdEnd,
k7zIdHeader,
k7zIdArchiveProperties,
k7zIdAdditionalStreamsInfo,
k7zIdMainStreamsInfo,
k7zIdFilesInfo,
k7zIdPackInfo,
k7zIdUnpackInfo,
k7zIdSubStreamsInfo,
k7zIdSize,
k7zIdCRC,
k7zIdFolder,
k7zIdCodersUnpackSize,
k7zIdNumUnpackStream,
k7zIdEmptyStream,
k7zIdEmptyFile,
k7zIdAnti,
k7zIdName,
k7zIdCTime,
k7zIdATime,
k7zIdMTime,
k7zIdWinAttributes,
k7zIdComment,
k7zIdEncodedHeader,
k7zIdStartPos,
k7zIdDummy
};
typedef struct
{
UInt32 NumInStreams;
UInt32 NumOutStreams;
UInt64 MethodID;
CBuf Props;
} CSzCoderInfo;
void SzCoderInfo_Init(CSzCoderInfo *p);
void SzCoderInfo_Free(CSzCoderInfo *p, ISzAlloc *alloc);
typedef struct
{
UInt32 InIndex;
UInt32 OutIndex;
} CSzBindPair;
typedef struct
{
CSzCoderInfo *Coders;
CSzBindPair *BindPairs;
UInt32 *PackStreams;
UInt64 *UnpackSizes;
UInt32 NumCoders;
UInt32 NumBindPairs;
UInt32 NumPackStreams;
int UnpackCRCDefined;
UInt32 UnpackCRC;
UInt32 NumUnpackStreams;
} CSzFolder;
void SzFolder_Init(CSzFolder *p);
UInt64 SzFolder_GetUnpackSize(CSzFolder *p);
int SzFolder_FindBindPairForInStream(CSzFolder *p, UInt32 inStreamIndex);
UInt32 SzFolder_GetNumOutStreams(CSzFolder *p);
UInt64 SzFolder_GetUnpackSize(CSzFolder *p);
SRes SzFolder_Decode(const CSzFolder *folder, const UInt64 *packSizes,
ILookInStream *stream, UInt64 startPos,
Byte *outBuffer, size_t outSize, ISzAlloc *allocMain);
typedef struct
{
UInt32 Low;
UInt32 High;
} CNtfsFileTime;
typedef struct
{
CNtfsFileTime MTime;
UInt64 Size;
UInt32 Crc;
UInt32 Attrib;
Byte HasStream;
Byte IsDir;
Byte IsAnti;
Byte CrcDefined;
Byte MTimeDefined;
Byte AttribDefined;
} CSzFileItem;
void SzFile_Init(CSzFileItem *p);
typedef struct
{
UInt64 *PackSizes;
Byte *PackCRCsDefined;
UInt32 *PackCRCs;
CSzFolder *Folders;
CSzFileItem *Files;
UInt32 NumPackStreams;
UInt32 NumFolders;
UInt32 NumFiles;
} CSzAr;
void SzAr_Init(CSzAr *p);
void SzAr_Free(CSzAr *p, ISzAlloc *alloc);
/*
SzExtract extracts file from archive
*outBuffer must be 0 before first call for each new archive.
Extracting cache:
If you need to decompress more than one file, you can send
these values from previous call:
*blockIndex,
*outBuffer,
*outBufferSize
You can consider "*outBuffer" as cache of solid block. If your archive is solid,
it will increase decompression speed.
If you use external function, you can declare these 3 cache variables
(blockIndex, outBuffer, outBufferSize) as static in that external function.
Free *outBuffer and set *outBuffer to 0, if you want to flush cache.
*/
typedef struct
{
CSzAr db;
UInt64 startPosAfterHeader;
UInt64 dataPos;
UInt32 *FolderStartPackStreamIndex;
UInt64 *PackStreamStartPositions;
UInt32 *FolderStartFileIndex;
UInt32 *FileIndexToFolderIndexMap;
size_t *FileNameOffsets; /* in 2-byte steps */
CBuf FileNames; /* UTF-16-LE */
} CSzArEx;
void SzArEx_Init(CSzArEx *p);
void SzArEx_Free(CSzArEx *p, ISzAlloc *alloc);
UInt64 SzArEx_GetFolderStreamPos(const CSzArEx *p, UInt32 folderIndex, UInt32 indexInFolder);
int SzArEx_GetFolderFullPackSize(const CSzArEx *p, UInt32 folderIndex, UInt64 *resSize);
/*
if dest == NULL, the return value specifies the required size of the buffer,
in 16-bit characters, including the null-terminating character.
if dest != NULL, the return value specifies the number of 16-bit characters that
are written to the dest, including the null-terminating character. */
size_t SzArEx_GetFileNameUtf16(const CSzArEx *p, size_t fileIndex, UInt16 *dest);
SRes SzArEx_Extract(
const CSzArEx *db,
ILookInStream *inStream,
UInt32 fileIndex, /* index of file */
UInt32 *blockIndex, /* index of solid block */
Byte **outBuffer, /* pointer to pointer to output buffer (allocated with allocMain) */
size_t *outBufferSize, /* buffer size for output buffer */
size_t *offset, /* offset of stream for required file in *outBuffer */
size_t *outSizeProcessed, /* size of file in *outBuffer */
ISzAlloc *allocMain,
ISzAlloc *allocTemp);
/*
SzArEx_Open Errors:
SZ_ERROR_NO_ARCHIVE
SZ_ERROR_ARCHIVE
SZ_ERROR_UNSUPPORTED
SZ_ERROR_MEM
SZ_ERROR_CRC
SZ_ERROR_INPUT_EOF
SZ_ERROR_FAIL
*/
SRes SzArEx_Open(CSzArEx *p, ILookInStream *inStream, ISzAlloc *allocMain, ISzAlloc *allocTemp);
EXTERN_C_END
#endif

View File

@ -1,6 +1,6 @@
/* 7zAlloc.c */
/* 7zAlloc.c -- Allocation functions
2010-10-29 : Igor Pavlov : Public domain */
#include <stdlib.h>
#include "7zAlloc.h"
/* #define _SZ_ALLOC_DEBUG */
@ -11,13 +11,16 @@
#ifdef _WIN32
#include <windows.h>
#endif
#include <stdio.h>
int g_allocCount = 0;
int g_allocCountTemp = 0;
#endif
void *SzAlloc(size_t size)
void *SzAlloc(void *p, size_t size)
{
p = p;
if (size == 0)
return 0;
#ifdef _SZ_ALLOC_DEBUG
@ -27,8 +30,9 @@ void *SzAlloc(size_t size)
return malloc(size);
}
void SzFree(void *address)
void SzFree(void *p, void *address)
{
p = p;
#ifdef _SZ_ALLOC_DEBUG
if (address != 0)
{
@ -39,8 +43,9 @@ void SzFree(void *address)
free(address);
}
void *SzAllocTemp(size_t size)
void *SzAllocTemp(void *p, size_t size)
{
p = p;
if (size == 0)
return 0;
#ifdef _SZ_ALLOC_DEBUG
@ -53,8 +58,9 @@ void *SzAllocTemp(size_t size)
return malloc(size);
}
void SzFreeTemp(void *address)
void SzFreeTemp(void *p, void *address)
{
p = p;
#ifdef _SZ_ALLOC_DEBUG
if (address != 0)
{

View File

@ -1,20 +1,15 @@
/* 7zAlloc.h */
/* 7zAlloc.h -- Allocation functions
2010-10-29 : Igor Pavlov : Public domain */
#ifndef __7Z_ALLOC_H
#define __7Z_ALLOC_H
#include <stddef.h>
#include <stdlib.h>
typedef struct _ISzAlloc
{
void *(*Alloc)(size_t size);
void (*Free)(void *address); /* address can be 0 */
} ISzAlloc;
void *SzAlloc(void *p, size_t size);
void SzFree(void *p, void *address);
void *SzAlloc(size_t size);
void SzFree(void *address);
void *SzAllocTemp(size_t size);
void SzFreeTemp(void *address);
void *SzAllocTemp(void *p, size_t size);
void SzFreeTemp(void *p, void *address);
#endif

View File

@ -0,0 +1,36 @@
/* 7zBuf.c -- Byte Buffer
2008-03-28
Igor Pavlov
Public domain */
#include "7zBuf.h"
void Buf_Init(CBuf *p)
{
p->data = 0;
p->size = 0;
}
int Buf_Create(CBuf *p, size_t size, ISzAlloc *alloc)
{
p->size = 0;
if (size == 0)
{
p->data = 0;
return 1;
}
p->data = (Byte *)alloc->Alloc(alloc, size);
if (p->data != 0)
{
p->size = size;
return 1;
}
return 0;
}
void Buf_Free(CBuf *p, ISzAlloc *alloc)
{
alloc->Free(alloc, p->data);
p->data = 0;
p->size = 0;
}

View File

@ -0,0 +1,39 @@
/* 7zBuf.h -- Byte Buffer
2009-02-07 : Igor Pavlov : Public domain */
#ifndef __7Z_BUF_H
#define __7Z_BUF_H
#include "Types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct
{
Byte *data;
size_t size;
} CBuf;
void Buf_Init(CBuf *p);
int Buf_Create(CBuf *p, size_t size, ISzAlloc *alloc);
void Buf_Free(CBuf *p, ISzAlloc *alloc);
typedef struct
{
Byte *data;
size_t size;
size_t pos;
} CDynBuf;
void DynBuf_Construct(CDynBuf *p);
void DynBuf_SeekToBeg(CDynBuf *p);
int DynBuf_Write(CDynBuf *p, const Byte *buf, size_t size, ISzAlloc *alloc);
void DynBuf_Free(CDynBuf *p, ISzAlloc *alloc);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,45 @@
/* 7zBuf2.c -- Byte Buffer
2008-10-04 : Igor Pavlov : Public domain */
#include <string.h>
#include "7zBuf.h"
void DynBuf_Construct(CDynBuf *p)
{
p->data = 0;
p->size = 0;
p->pos = 0;
}
void DynBuf_SeekToBeg(CDynBuf *p)
{
p->pos = 0;
}
int DynBuf_Write(CDynBuf *p, const Byte *buf, size_t size, ISzAlloc *alloc)
{
if (size > p->size - p->pos)
{
size_t newSize = p->pos + size;
Byte *data;
newSize += newSize / 4;
data = (Byte *)alloc->Alloc(alloc, newSize);
if (data == 0)
return 0;
p->size = newSize;
memcpy(data, p->data, p->pos);
alloc->Free(alloc, p->data);
p->data = data;
}
memcpy(p->data + p->pos, buf, size);
p->pos += size;
return 1;
}
void DynBuf_Free(CDynBuf *p, ISzAlloc *alloc)
{
alloc->Free(alloc, p->data);
p->data = 0;
p->size = 0;
p->pos = 0;
}

View File

@ -1,29 +0,0 @@
/* 7zBuffer.c */
#include "7zBuffer.h"
#include "7zAlloc.h"
void SzByteBufferInit(CSzByteBuffer *buffer)
{
buffer->Capacity = 0;
buffer->Items = 0;
}
int SzByteBufferCreate(CSzByteBuffer *buffer, size_t newCapacity, void * (*allocFunc)(size_t size))
{
buffer->Capacity = newCapacity;
if (newCapacity == 0)
{
buffer->Items = 0;
return 1;
}
buffer->Items = (Byte *)allocFunc(newCapacity);
return (buffer->Items != 0);
}
void SzByteBufferFree(CSzByteBuffer *buffer, void (*freeFunc)(void *))
{
freeFunc(buffer->Items);
buffer->Items = 0;
buffer->Capacity = 0;
}

View File

@ -1,19 +0,0 @@
/* 7zBuffer.h */
#ifndef __7Z_BUFFER_H
#define __7Z_BUFFER_H
#include <stddef.h>
#include "7zTypes.h"
typedef struct _CSzByteBuffer
{
size_t Capacity;
Byte *Items;
}CSzByteBuffer;
void SzByteBufferInit(CSzByteBuffer *buffer);
int SzByteBufferCreate(CSzByteBuffer *buffer, size_t newCapacity, void * (*allocFunc)(size_t size));
void SzByteBufferFree(CSzByteBuffer *buffer, void (*freeFunc)(void *));
#endif

View File

@ -1,76 +1,74 @@
/* 7zCrc.c */
/* 7zCrc.c -- CRC32 calculation
2009-11-23 : Igor Pavlov : Public domain */
#include "7zCrc.h"
#include "CpuArch.h"
#define kCrcPoly 0xEDB88320
UInt32 g_CrcTable[256];
#ifdef MY_CPU_LE
#define CRC_NUM_TABLES 8
#else
#define CRC_NUM_TABLES 1
#endif
void InitCrcTable()
typedef UInt32 (MY_FAST_CALL *CRC_FUNC)(UInt32 v, const void *data, size_t size, const UInt32 *table);
static CRC_FUNC g_CrcUpdate;
UInt32 g_CrcTable[256 * CRC_NUM_TABLES];
#if CRC_NUM_TABLES == 1
#define CRC_UPDATE_BYTE_2(crc, b) (table[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8))
static UInt32 MY_FAST_CALL CrcUpdateT1(UInt32 v, const void *data, size_t size, const UInt32 *table)
{
const Byte *p = (const Byte *)data;
for (; size > 0; size--, p++)
v = CRC_UPDATE_BYTE_2(v, *p);
return v;
}
#else
UInt32 MY_FAST_CALL CrcUpdateT4(UInt32 v, const void *data, size_t size, const UInt32 *table);
UInt32 MY_FAST_CALL CrcUpdateT8(UInt32 v, const void *data, size_t size, const UInt32 *table);
#endif
UInt32 MY_FAST_CALL CrcUpdate(UInt32 v, const void *data, size_t size)
{
return g_CrcUpdate(v, data, size, g_CrcTable);
}
UInt32 MY_FAST_CALL CrcCalc(const void *data, size_t size)
{
return g_CrcUpdate(CRC_INIT_VAL, data, size, g_CrcTable) ^ CRC_INIT_VAL;
}
void MY_FAST_CALL CrcGenerateTable()
{
UInt32 i;
for (i = 0; i < 256; i++)
{
UInt32 r = i;
int j;
unsigned j;
for (j = 0; j < 8; j++)
if (r & 1)
r = (r >> 1) ^ kCrcPoly;
else
r >>= 1;
r = (r >> 1) ^ (kCrcPoly & ~((r & 1) - 1));
g_CrcTable[i] = r;
}
}
void CrcInit(UInt32 *crc) { *crc = 0xFFFFFFFF; }
UInt32 CrcGetDigest(UInt32 *crc) { return *crc ^ 0xFFFFFFFF; }
void CrcUpdateByte(UInt32 *crc, Byte b)
{
*crc = g_CrcTable[((*crc & 0xFF)) ^ b] ^ (*crc >> 8);
}
void CrcUpdateUInt16(UInt32 *crc, UInt16 v)
{
CrcUpdateByte(crc, (Byte)v);
CrcUpdateByte(crc, (Byte)(v >> 8));
}
void CrcUpdateUInt32(UInt32 *crc, UInt32 v)
{
int i;
for (i = 0; i < 4; i++)
CrcUpdateByte(crc, (v >> (8 * i)) & 0xFF);
}
void CrcUpdateUInt64(UInt32 *crc, UInt64 v)
{
int i;
for (i = 0; i < 8; i++)
#if CRC_NUM_TABLES == 1
g_CrcUpdate = CrcUpdateT1;
#else
for (; i < 256 * CRC_NUM_TABLES; i++)
{
CrcUpdateByte(crc, (v&0xFF));
v >>= 8;
UInt32 r = g_CrcTable[i - 256];
g_CrcTable[i] = g_CrcTable[r & 0xFF] ^ (r >> 8);
}
}
void CrcUpdate(UInt32 *crc, const void *data, size_t size)
{
UInt32 v = *crc;
const Byte *p = (const Byte *)data;
for (; size > 0 ; size--, p++)
v = g_CrcTable[((v & 0xFF)) ^ *p] ^ (v >> 8);
*crc = v;
}
UInt32 CrcCalculateDigest(const void *data, size_t size)
{
UInt32 crc;
CrcInit(&crc);
CrcUpdate(&crc, data, size);
return CrcGetDigest(&crc);
}
int CrcVerifyDigest(UInt32 digest, const void *data, size_t size)
{
return (CrcCalculateDigest(data, size) == digest);
g_CrcUpdate = CrcUpdateT4;
#ifdef MY_CPU_X86_OR_AMD64
if (!CPU_Is_InOrder())
g_CrcUpdate = CrcUpdateT8;
#endif
#endif
}

View File

@ -1,24 +1,25 @@
/* 7zCrc.h */
/* 7zCrc.h -- CRC32 calculation
2009-11-21 : Igor Pavlov : Public domain */
#ifndef __7Z_CRC_H
#define __7Z_CRC_H
#include <stddef.h>
#include "Types.h"
#include "7zTypes.h"
EXTERN_C_BEGIN
extern UInt32 g_CrcTable[256];
void InitCrcTable();
extern UInt32 g_CrcTable[];
void CrcInit(UInt32 *crc);
UInt32 CrcGetDigest(UInt32 *crc);
void CrcUpdateByte(UInt32 *crc, Byte v);
void CrcUpdateUInt16(UInt32 *crc, UInt16 v);
void CrcUpdateUInt32(UInt32 *crc, UInt32 v);
void CrcUpdateUInt64(UInt32 *crc, UInt64 v);
void CrcUpdate(UInt32 *crc, const void *data, size_t size);
UInt32 CrcCalculateDigest(const void *data, size_t size);
int CrcVerifyDigest(UInt32 digest, const void *data, size_t size);
/* Call CrcGenerateTable one time before other CRC functions */
void MY_FAST_CALL CrcGenerateTable(void);
#define CRC_INIT_VAL 0xFFFFFFFF
#define CRC_GET_DIGEST(crc) ((crc) ^ CRC_INIT_VAL)
#define CRC_UPDATE_BYTE(crc, b) (g_CrcTable[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8))
UInt32 MY_FAST_CALL CrcUpdate(UInt32 crc, const void *data, size_t size);
UInt32 MY_FAST_CALL CrcCalc(const void *data, size_t size);
EXTERN_C_END
#endif

View File

@ -0,0 +1,34 @@
/* 7zCrcOpt.c -- CRC32 calculation : optimized version
2009-11-23 : Igor Pavlov : Public domain */
#include "CpuArch.h"
#ifdef MY_CPU_LE
#define CRC_UPDATE_BYTE_2(crc, b) (table[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8))
UInt32 MY_FAST_CALL CrcUpdateT4(UInt32 v, const void *data, size_t size, const UInt32 *table)
{
const Byte *p = (const Byte *)data;
for (; size > 0 && ((unsigned)(ptrdiff_t)p & 3) != 0; size--, p++)
v = CRC_UPDATE_BYTE_2(v, *p);
for (; size >= 4; size -= 4, p += 4)
{
v ^= *(const UInt32 *)p;
v =
table[0x300 + (v & 0xFF)] ^
table[0x200 + ((v >> 8) & 0xFF)] ^
table[0x100 + ((v >> 16) & 0xFF)] ^
table[0x000 + ((v >> 24))];
}
for (; size > 0; size--, p++)
v = CRC_UPDATE_BYTE_2(v, *p);
return v;
}
UInt32 MY_FAST_CALL CrcUpdateT8(UInt32 v, const void *data, size_t size, const UInt32 *table)
{
return CrcUpdateT4(v, data, size, table);
}
#endif

View File

@ -0,0 +1,470 @@
/* 7zDec.c -- Decoding from 7z folder
2010-11-02 : Igor Pavlov : Public domain */
#include <string.h>
/* #define _7ZIP_PPMD_SUPPPORT */
#include "7z.h"
#include "Bcj2.h"
#include "Bra.h"
#include "CpuArch.h"
#include "LzmaDec.h"
#include "Lzma2Dec.h"
#ifdef _7ZIP_PPMD_SUPPPORT
#include "Ppmd7.h"
#endif
#define k_Copy 0
#define k_LZMA2 0x21
#define k_LZMA 0x30101
#define k_BCJ 0x03030103
#define k_PPC 0x03030205
#define k_ARM 0x03030501
#define k_ARMT 0x03030701
#define k_SPARC 0x03030805
#define k_BCJ2 0x0303011B
#ifdef _7ZIP_PPMD_SUPPPORT
#define k_PPMD 0x30401
typedef struct
{
IByteIn p;
const Byte *cur;
const Byte *end;
const Byte *begin;
UInt64 processed;
Bool extra;
SRes res;
ILookInStream *inStream;
} CByteInToLook;
static Byte ReadByte(void *pp)
{
CByteInToLook *p = (CByteInToLook *)pp;
if (p->cur != p->end)
return *p->cur++;
if (p->res == SZ_OK)
{
size_t size = p->cur - p->begin;
p->processed += size;
p->res = p->inStream->Skip(p->inStream, size);
size = (1 << 25);
p->res = p->inStream->Look(p->inStream, (const void **)&p->begin, &size);
p->cur = p->begin;
p->end = p->begin + size;
if (size != 0)
return *p->cur++;;
}
p->extra = True;
return 0;
}
static SRes SzDecodePpmd(CSzCoderInfo *coder, UInt64 inSize, ILookInStream *inStream,
Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain)
{
CPpmd7 ppmd;
CByteInToLook s;
SRes res = SZ_OK;
s.p.Read = ReadByte;
s.inStream = inStream;
s.begin = s.end = s.cur = NULL;
s.extra = False;
s.res = SZ_OK;
s.processed = 0;
if (coder->Props.size != 5)
return SZ_ERROR_UNSUPPORTED;
{
unsigned order = coder->Props.data[0];
UInt32 memSize = GetUi32(coder->Props.data + 1);
if (order < PPMD7_MIN_ORDER ||
order > PPMD7_MAX_ORDER ||
memSize < PPMD7_MIN_MEM_SIZE ||
memSize > PPMD7_MAX_MEM_SIZE)
return SZ_ERROR_UNSUPPORTED;
Ppmd7_Construct(&ppmd);
if (!Ppmd7_Alloc(&ppmd, memSize, allocMain))
return SZ_ERROR_MEM;
Ppmd7_Init(&ppmd, order);
}
{
CPpmd7z_RangeDec rc;
Ppmd7z_RangeDec_CreateVTable(&rc);
rc.Stream = &s.p;
if (!Ppmd7z_RangeDec_Init(&rc))
res = SZ_ERROR_DATA;
else if (s.extra)
res = (s.res != SZ_OK ? s.res : SZ_ERROR_DATA);
else
{
SizeT i;
for (i = 0; i < outSize; i++)
{
int sym = Ppmd7_DecodeSymbol(&ppmd, &rc.p);
if (s.extra || sym < 0)
break;
outBuffer[i] = (Byte)sym;
}
if (i != outSize)
res = (s.res != SZ_OK ? s.res : SZ_ERROR_DATA);
else if (s.processed + (s.cur - s.begin) != inSize || !Ppmd7z_RangeDec_IsFinishedOK(&rc))
res = SZ_ERROR_DATA;
}
}
Ppmd7_Free(&ppmd, allocMain);
return res;
}
#endif
static SRes SzDecodeLzma(CSzCoderInfo *coder, UInt64 inSize, ILookInStream *inStream,
Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain)
{
CLzmaDec state;
SRes res = SZ_OK;
LzmaDec_Construct(&state);
RINOK(LzmaDec_AllocateProbs(&state, coder->Props.data, (unsigned)coder->Props.size, allocMain));
state.dic = outBuffer;
state.dicBufSize = outSize;
LzmaDec_Init(&state);
for (;;)
{
Byte *inBuf = NULL;
size_t lookahead = (1 << 18);
if (lookahead > inSize)
lookahead = (size_t)inSize;
res = inStream->Look((void *)inStream, (const void **)&inBuf, &lookahead);
if (res != SZ_OK)
break;
{
SizeT inProcessed = (SizeT)lookahead, dicPos = state.dicPos;
ELzmaStatus status;
res = LzmaDec_DecodeToDic(&state, outSize, inBuf, &inProcessed, LZMA_FINISH_END, &status);
lookahead -= inProcessed;
inSize -= inProcessed;
if (res != SZ_OK)
break;
if (state.dicPos == state.dicBufSize || (inProcessed == 0 && dicPos == state.dicPos))
{
if (state.dicBufSize != outSize || lookahead != 0 ||
(status != LZMA_STATUS_FINISHED_WITH_MARK &&
status != LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK))
res = SZ_ERROR_DATA;
break;
}
res = inStream->Skip((void *)inStream, inProcessed);
if (res != SZ_OK)
break;
}
}
LzmaDec_FreeProbs(&state, allocMain);
return res;
}
static SRes SzDecodeLzma2(CSzCoderInfo *coder, UInt64 inSize, ILookInStream *inStream,
Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain)
{
CLzma2Dec state;
SRes res = SZ_OK;
Lzma2Dec_Construct(&state);
if (coder->Props.size != 1)
return SZ_ERROR_DATA;
RINOK(Lzma2Dec_AllocateProbs(&state, coder->Props.data[0], allocMain));
state.decoder.dic = outBuffer;
state.decoder.dicBufSize = outSize;
Lzma2Dec_Init(&state);
for (;;)
{
Byte *inBuf = NULL;
size_t lookahead = (1 << 18);
if (lookahead > inSize)
lookahead = (size_t)inSize;
res = inStream->Look((void *)inStream, (const void **)&inBuf, &lookahead);
if (res != SZ_OK)
break;
{
SizeT inProcessed = (SizeT)lookahead, dicPos = state.decoder.dicPos;
ELzmaStatus status;
res = Lzma2Dec_DecodeToDic(&state, outSize, inBuf, &inProcessed, LZMA_FINISH_END, &status);
lookahead -= inProcessed;
inSize -= inProcessed;
if (res != SZ_OK)
break;
if (state.decoder.dicPos == state.decoder.dicBufSize || (inProcessed == 0 && dicPos == state.decoder.dicPos))
{
if (state.decoder.dicBufSize != outSize || lookahead != 0 ||
(status != LZMA_STATUS_FINISHED_WITH_MARK))
res = SZ_ERROR_DATA;
break;
}
res = inStream->Skip((void *)inStream, inProcessed);
if (res != SZ_OK)
break;
}
}
Lzma2Dec_FreeProbs(&state, allocMain);
return res;
}
static SRes SzDecodeCopy(UInt64 inSize, ILookInStream *inStream, Byte *outBuffer)
{
while (inSize > 0)
{
void *inBuf;
size_t curSize = (1 << 18);
if (curSize > inSize)
curSize = (size_t)inSize;
RINOK(inStream->Look((void *)inStream, (const void **)&inBuf, &curSize));
if (curSize == 0)
return SZ_ERROR_INPUT_EOF;
memcpy(outBuffer, inBuf, curSize);
outBuffer += curSize;
inSize -= curSize;
RINOK(inStream->Skip((void *)inStream, curSize));
}
return SZ_OK;
}
static Bool IS_MAIN_METHOD(UInt32 m)
{
switch(m)
{
case k_Copy:
case k_LZMA:
case k_LZMA2:
#ifdef _7ZIP_PPMD_SUPPPORT
case k_PPMD:
#endif
return True;
}
return False;
}
static Bool IS_SUPPORTED_CODER(const CSzCoderInfo *c)
{
return
c->NumInStreams == 1 &&
c->NumOutStreams == 1 &&
c->MethodID <= (UInt32)0xFFFFFFFF &&
IS_MAIN_METHOD((UInt32)c->MethodID);
}
#define IS_BCJ2(c) ((c)->MethodID == k_BCJ2 && (c)->NumInStreams == 4 && (c)->NumOutStreams == 1)
static SRes CheckSupportedFolder(const CSzFolder *f)
{
if (f->NumCoders < 1 || f->NumCoders > 4)
return SZ_ERROR_UNSUPPORTED;
if (!IS_SUPPORTED_CODER(&f->Coders[0]))
return SZ_ERROR_UNSUPPORTED;
if (f->NumCoders == 1)
{
if (f->NumPackStreams != 1 || f->PackStreams[0] != 0 || f->NumBindPairs != 0)
return SZ_ERROR_UNSUPPORTED;
return SZ_OK;
}
if (f->NumCoders == 2)
{
CSzCoderInfo *c = &f->Coders[1];
if (c->MethodID > (UInt32)0xFFFFFFFF ||
c->NumInStreams != 1 ||
c->NumOutStreams != 1 ||
f->NumPackStreams != 1 ||
f->PackStreams[0] != 0 ||
f->NumBindPairs != 1 ||
f->BindPairs[0].InIndex != 1 ||
f->BindPairs[0].OutIndex != 0)
return SZ_ERROR_UNSUPPORTED;
switch ((UInt32)c->MethodID)
{
case k_BCJ:
case k_ARM:
break;
default:
return SZ_ERROR_UNSUPPORTED;
}
return SZ_OK;
}
if (f->NumCoders == 4)
{
if (!IS_SUPPORTED_CODER(&f->Coders[1]) ||
!IS_SUPPORTED_CODER(&f->Coders[2]) ||
!IS_BCJ2(&f->Coders[3]))
return SZ_ERROR_UNSUPPORTED;
if (f->NumPackStreams != 4 ||
f->PackStreams[0] != 2 ||
f->PackStreams[1] != 6 ||
f->PackStreams[2] != 1 ||
f->PackStreams[3] != 0 ||
f->NumBindPairs != 3 ||
f->BindPairs[0].InIndex != 5 || f->BindPairs[0].OutIndex != 0 ||
f->BindPairs[1].InIndex != 4 || f->BindPairs[1].OutIndex != 1 ||
f->BindPairs[2].InIndex != 3 || f->BindPairs[2].OutIndex != 2)
return SZ_ERROR_UNSUPPORTED;
return SZ_OK;
}
return SZ_ERROR_UNSUPPORTED;
}
static UInt64 GetSum(const UInt64 *values, UInt32 index)
{
UInt64 sum = 0;
UInt32 i;
for (i = 0; i < index; i++)
sum += values[i];
return sum;
}
#define CASE_BRA_CONV(isa) case k_ ## isa: isa ## _Convert(outBuffer, outSize, 0, 0); break;
static SRes SzFolder_Decode2(const CSzFolder *folder, const UInt64 *packSizes,
ILookInStream *inStream, UInt64 startPos,
Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain,
Byte *tempBuf[])
{
UInt32 ci;
SizeT tempSizes[3] = { 0, 0, 0};
SizeT tempSize3 = 0;
Byte *tempBuf3 = 0;
RINOK(CheckSupportedFolder(folder));
for (ci = 0; ci < folder->NumCoders; ci++)
{
CSzCoderInfo *coder = &folder->Coders[ci];
if (IS_MAIN_METHOD((UInt32)coder->MethodID))
{
UInt32 si = 0;
UInt64 offset;
UInt64 inSize;
Byte *outBufCur = outBuffer;
SizeT outSizeCur = outSize;
if (folder->NumCoders == 4)
{
UInt32 indices[] = { 3, 2, 0 };
UInt64 unpackSize = folder->UnpackSizes[ci];
si = indices[ci];
if (ci < 2)
{
Byte *temp;
outSizeCur = (SizeT)unpackSize;
if (outSizeCur != unpackSize)
return SZ_ERROR_MEM;
temp = (Byte *)IAlloc_Alloc(allocMain, outSizeCur);
if (temp == 0 && outSizeCur != 0)
return SZ_ERROR_MEM;
outBufCur = tempBuf[1 - ci] = temp;
tempSizes[1 - ci] = outSizeCur;
}
else if (ci == 2)
{
if (unpackSize > outSize) /* check it */
return SZ_ERROR_PARAM;
tempBuf3 = outBufCur = outBuffer + (outSize - (size_t)unpackSize);
tempSize3 = outSizeCur = (SizeT)unpackSize;
}
else
return SZ_ERROR_UNSUPPORTED;
}
offset = GetSum(packSizes, si);
inSize = packSizes[si];
RINOK(LookInStream_SeekTo(inStream, startPos + offset));
if (coder->MethodID == k_Copy)
{
if (inSize != outSizeCur) /* check it */
return SZ_ERROR_DATA;
RINOK(SzDecodeCopy(inSize, inStream, outBufCur));
}
else if (coder->MethodID == k_LZMA)
{
RINOK(SzDecodeLzma(coder, inSize, inStream, outBufCur, outSizeCur, allocMain));
}
else if (coder->MethodID == k_LZMA2)
{
RINOK(SzDecodeLzma2(coder, inSize, inStream, outBufCur, outSizeCur, allocMain));
}
else
{
#ifdef _7ZIP_PPMD_SUPPPORT
RINOK(SzDecodePpmd(coder, inSize, inStream, outBufCur, outSizeCur, allocMain));
#else
return SZ_ERROR_UNSUPPORTED;
#endif
}
}
else if (coder->MethodID == k_BCJ2)
{
UInt64 offset = GetSum(packSizes, 1);
UInt64 s3Size = packSizes[1];
SRes res;
if (ci != 3)
return SZ_ERROR_UNSUPPORTED;
RINOK(LookInStream_SeekTo(inStream, startPos + offset));
tempSizes[2] = (SizeT)s3Size;
if (tempSizes[2] != s3Size)
return SZ_ERROR_MEM;
tempBuf[2] = (Byte *)IAlloc_Alloc(allocMain, tempSizes[2]);
if (tempBuf[2] == 0 && tempSizes[2] != 0)
return SZ_ERROR_MEM;
res = SzDecodeCopy(s3Size, inStream, tempBuf[2]);
RINOK(res)
res = Bcj2_Decode(
tempBuf3, tempSize3,
tempBuf[0], tempSizes[0],
tempBuf[1], tempSizes[1],
tempBuf[2], tempSizes[2],
outBuffer, outSize);
RINOK(res)
}
else
{
if (ci != 1)
return SZ_ERROR_UNSUPPORTED;
switch(coder->MethodID)
{
case k_BCJ:
{
UInt32 state;
x86_Convert_Init(state);
x86_Convert(outBuffer, outSize, 0, &state, 0);
break;
}
CASE_BRA_CONV(ARM)
default:
return SZ_ERROR_UNSUPPORTED;
}
}
}
return SZ_OK;
}
SRes SzFolder_Decode(const CSzFolder *folder, const UInt64 *packSizes,
ILookInStream *inStream, UInt64 startPos,
Byte *outBuffer, size_t outSize, ISzAlloc *allocMain)
{
Byte *tempBuf[3] = { 0, 0, 0};
int i;
SRes res = SzFolder_Decode2(folder, packSizes, inStream, startPos,
outBuffer, (SizeT)outSize, allocMain, tempBuf);
for (i = 0; i < 3; i++)
IAlloc_Free(allocMain, tempBuf[i]);
return res;
}

View File

@ -1,151 +0,0 @@
/* 7zDecode.c */
#include "7zDecode.h"
#ifdef _SZ_ONE_DIRECTORY
#include "LzmaDecode.h"
#else
#include "Compress/LzmaDecode.h"
#endif
CMethodID k_Copy = { { 0x0 }, 1 };
CMethodID k_LZMA = { { 0x3, 0x1, 0x1 }, 3 };
#ifdef _LZMA_IN_CB
typedef struct _CLzmaInCallbackImp
{
ILzmaInCallback InCallback;
ISzInStream *InStream;
size_t Size;
} CLzmaInCallbackImp;
int LzmaReadImp(void *object, const unsigned char **buffer, SizeT *size)
{
CLzmaInCallbackImp *cb = (CLzmaInCallbackImp *)object;
size_t processedSize;
SZ_RESULT res;
*size = 0;
res = cb->InStream->Read((void *)cb->InStream, (void **)buffer, cb->Size, &processedSize);
*size = (SizeT)processedSize;
if (processedSize > cb->Size)
return (int)SZE_FAIL;
cb->Size -= processedSize;
if (res == SZ_OK)
return 0;
return (int)res;
}
#endif
SZ_RESULT SzDecode(const CFileSize *packSizes, const CFolder *folder,
#ifdef _LZMA_IN_CB
ISzInStream *inStream,
#else
const Byte *inBuffer,
#endif
Byte *outBuffer, size_t outSize,
size_t *outSizeProcessed, ISzAlloc *allocMain,
LP7ZSTATUS_UPDATE statusupdate, void * StatusInfo )
{
UInt32 si;
size_t inSize = 0;
CCoderInfo *coder;
if (folder->NumPackStreams != 1)
return SZE_NOTIMPL;
if (folder->NumCoders != 1)
return SZE_NOTIMPL;
coder = folder->Coders;
*outSizeProcessed = 0;
for (si = 0; si < folder->NumPackStreams; si++)
inSize += (size_t)packSizes[si];
if (AreMethodsEqual(&coder->MethodID, &k_Copy))
{
size_t i;
if (inSize != outSize)
return SZE_DATA_ERROR;
#ifdef _LZMA_IN_CB
for (i = 0; i < inSize;)
{
size_t j;
Byte *inBuffer;
size_t bufferSize;
RINOK(inStream->Read((void *)inStream, (void **)&inBuffer, inSize - i, &bufferSize));
if (bufferSize == 0)
return SZE_DATA_ERROR;
if (bufferSize > inSize - i)
return SZE_FAIL;
*outSizeProcessed += bufferSize;
for (j = 0; j < bufferSize && i < inSize; j++, i++)
outBuffer[i] = inBuffer[j];
}
#else
for (i = 0; i < inSize; i++)
outBuffer[i] = inBuffer[i];
*outSizeProcessed = inSize;
#endif
return SZ_OK;
}
if (AreMethodsEqual(&coder->MethodID, &k_LZMA))
{
#ifdef _LZMA_IN_CB
CLzmaInCallbackImp lzmaCallback;
#else
SizeT inProcessed;
#endif
CLzmaDecoderState state; /* it's about 24-80 bytes structure, if int is 32-bit */
int result;
SizeT outSizeProcessedLoc;
#ifdef _LZMA_IN_CB
lzmaCallback.Size = inSize;
lzmaCallback.InStream = inStream;
lzmaCallback.InCallback.Read = LzmaReadImp;
#endif
if (LzmaDecodeProperties(&state.Properties, coder->Properties.Items,
coder->Properties.Capacity) != LZMA_RESULT_OK)
return SZE_FAIL;
state.Probs = (CProb *)allocMain->Alloc(LzmaGetNumProbs(&state.Properties) * sizeof(CProb));
if (state.Probs == 0)
return SZE_OUTOFMEMORY;
#ifdef _LZMA_OUT_READ
if (state.Properties.DictionarySize == 0)
state.Dictionary = 0;
else
{
state.Dictionary = (unsigned char *)allocMain->Alloc(state.Properties.DictionarySize);
if (state.Dictionary == 0)
{
allocMain->Free(state.Probs);
return SZE_OUTOFMEMORY;
}
}
LzmaDecoderInit(&state);
#endif
result = LzmaDecode(&state,
#ifdef _LZMA_IN_CB
&lzmaCallback.InCallback,
#else
inBuffer, (SizeT)inSize, &inProcessed,
#endif
outBuffer, (SizeT)outSize, &outSizeProcessedLoc, statusupdate, StatusInfo);
*outSizeProcessed = (size_t)outSizeProcessedLoc;
allocMain->Free(state.Probs);
#ifdef _LZMA_OUT_READ
allocMain->Free(state.Dictionary);
#endif
if (result == LZMA_RESULT_DATA_ERROR)
return SZE_DATA_ERROR;
if (result != LZMA_RESULT_OK)
return SZE_FAIL;
return SZ_OK;
}
return SZE_NOTIMPL;
}

View File

@ -1,23 +0,0 @@
/* 7zDecode.h */
#ifndef __7Z_DECODE_H
#define __7Z_DECODE_H
#include "7zItem.h"
#include "7zAlloc.h"
#ifdef _LZMA_IN_CB
#include "7zIn.h"
#endif
#include "status.h"
SZ_RESULT SzDecode(const CFileSize *packSizes, const CFolder *folder,
#ifdef _LZMA_IN_CB
ISzInStream *stream,
#else
const Byte *inBuffer,
#endif
Byte *outBuffer, size_t outSize,
size_t *outSizeProcessed, ISzAlloc *allocMain,
LP7ZSTATUS_UPDATE statusupdate, void * StatusInfo);
#endif

View File

@ -1,119 +0,0 @@
/* 7zExtract.c */
#include "7zExtract.h"
#include "7zDecode.h"
#include "7zCrc.h"
SZ_RESULT SzExtract(
ISzInStream *inStream,
CArchiveDatabaseEx *db,
UInt32 fileIndex,
UInt32 *blockIndex,
Byte **outBuffer,
size_t *outBufferSize,
size_t *offset,
size_t *outSizeProcessed,
ISzAlloc *allocMain,
ISzAlloc *allocTemp,
LP7ZSTATUS_UPDATE statusupdate,
void * StatusInfo
)
{
UInt32 folderIndex = db->FileIndexToFolderIndexMap[fileIndex];
SZ_RESULT res = SZ_OK;
*offset = 0;
*outSizeProcessed = 0;
if (folderIndex == (UInt32)-1)
{
allocMain->Free(*outBuffer);
*blockIndex = folderIndex;
*outBuffer = 0;
*outBufferSize = 0;
return SZ_OK;
}
if (*outBuffer == 0 || *blockIndex != folderIndex)
{
CFolder *folder = db->Database.Folders + folderIndex;
CFileSize unPackSize = SzFolderGetUnPackSize(folder);
#ifndef _LZMA_IN_CB
CFileSize packSize = SzArDbGetFolderFullPackSize(db, folderIndex);
Byte *inBuffer = 0;
size_t processedSize;
#endif
*blockIndex = folderIndex;
allocMain->Free(*outBuffer);
*outBuffer = 0;
RINOK(inStream->Seek(inStream, SzArDbGetFolderStreamPos(db, folderIndex, 0)));
#ifndef _LZMA_IN_CB
if (packSize != 0)
{
inBuffer = (Byte *)allocTemp->Alloc((size_t)packSize);
if (inBuffer == 0)
return SZE_OUTOFMEMORY;
}
res = inStream->Read(inStream, inBuffer, (size_t)packSize, &processedSize);
if (res == SZ_OK && processedSize != (size_t)packSize)
res = SZE_FAIL;
#endif
if (res == SZ_OK)
{
*outBufferSize = (size_t)unPackSize;
if (unPackSize != 0)
{
*outBuffer = (Byte *)allocMain->Alloc((size_t)unPackSize);
if (*outBuffer == 0)
res = SZE_OUTOFMEMORY;
}
if (res == SZ_OK)
{
size_t outRealSize;
res = SzDecode(db->Database.PackSizes +
db->FolderStartPackStreamIndex[folderIndex], folder,
#ifdef _LZMA_IN_CB
inStream,
#else
inBuffer,
#endif
*outBuffer, (size_t)unPackSize, &outRealSize, allocTemp, statusupdate, StatusInfo);
if (res == SZ_OK)
{
if (outRealSize == (size_t)unPackSize)
{
if (folder->UnPackCRCDefined)
{
if (!CrcVerifyDigest(folder->UnPackCRC, *outBuffer, (size_t)unPackSize))
res = SZE_FAIL;
}
}
else
res = SZE_FAIL;
}
}
}
#ifndef _LZMA_IN_CB
allocTemp->Free(inBuffer);
#endif
}
if (res == SZ_OK)
{
UInt32 i;
CFileItem *fileItem = db->Database.Files + fileIndex;
*offset = 0;
for(i = db->FolderStartFileIndex[folderIndex]; i < fileIndex; i++)
*offset += (UInt32)db->Database.Files[i].Size;
*outSizeProcessed = (size_t)fileItem->Size;
if (*offset + *outSizeProcessed > *outBufferSize)
return SZE_FAIL;
{
if (fileItem->IsFileCRCDefined)
{
if (!CrcVerifyDigest(fileItem->FileCRC, *outBuffer + *offset, *outSizeProcessed))
res = SZE_FAIL;
}
}
}
return res;
}

View File

@ -1,44 +0,0 @@
/* 7zExtract.h */
#ifndef __7Z_EXTRACT_H
#define __7Z_EXTRACT_H
#include "7zIn.h"
#include "status.h"
/*
SzExtract extracts file from archive
*outBuffer must be 0 before first call for each new archive.
Extracting cache:
If you need to decompress more than one file, you can send
these values from previous call:
*blockIndex,
*outBuffer,
*outBufferSize
You can consider "*outBuffer" as cache of solid block. If your archive is solid,
it will increase decompression speed.
If you use external function, you can declare these 3 cache variables
(blockIndex, outBuffer, outBufferSize) as static in that external function.
Free *outBuffer and set *outBuffer to 0, if you want to flush cache.
*/
SZ_RESULT SzExtract(
ISzInStream *inStream,
CArchiveDatabaseEx *db,
UInt32 fileIndex, /* index of file */
UInt32 *blockIndex, /* index of solid block */
Byte **outBuffer, /* pointer to pointer to output buffer (allocated with allocMain) */
size_t *outBufferSize, /* buffer size for output buffer */
size_t *offset, /* offset of stream for required file in *outBuffer */
size_t *outSizeProcessed, /* size of file in *outBuffer */
ISzAlloc *allocMain,
ISzAlloc *allocTemp,
LP7ZSTATUS_UPDATE statusupdate,
void * StatusInfo
);
#endif

View File

@ -0,0 +1,284 @@
/* 7zFile.c -- File IO
2009-11-24 : Igor Pavlov : Public domain */
#include "7zFile.h"
#ifndef USE_WINDOWS_FILE
#ifndef UNDER_CE
#include <errno.h>
#endif
#else
/*
ReadFile and WriteFile functions in Windows have BUG:
If you Read or Write 64MB or more (probably min_failure_size = 64MB - 32KB + 1)
from/to Network file, it returns ERROR_NO_SYSTEM_RESOURCES
(Insufficient system resources exist to complete the requested service).
Probably in some version of Windows there are problems with other sizes:
for 32 MB (maybe also for 16 MB).
And message can be "Network connection was lost"
*/
#define kChunkSizeMax (1 << 22)
#endif
void File_Construct(CSzFile *p)
{
#ifdef USE_WINDOWS_FILE
p->handle = INVALID_HANDLE_VALUE;
#else
p->file = NULL;
#endif
}
#if !defined(UNDER_CE) || !defined(USE_WINDOWS_FILE)
static WRes File_Open(CSzFile *p, const char *name, int writeMode)
{
#ifdef USE_WINDOWS_FILE
p->handle = CreateFileA(name,
writeMode ? GENERIC_WRITE : GENERIC_READ,
FILE_SHARE_READ, NULL,
writeMode ? CREATE_ALWAYS : OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
return (p->handle != INVALID_HANDLE_VALUE) ? 0 : GetLastError();
#else
p->file = fopen(name, writeMode ? "wb+" : "rb");
return (p->file != 0) ? 0 :
#ifdef UNDER_CE
2; /* ENOENT */
#else
errno;
#endif
#endif
}
WRes InFile_Open(CSzFile *p, const char *name) { return File_Open(p, name, 0); }
WRes OutFile_Open(CSzFile *p, const char *name) { return File_Open(p, name, 1); }
#endif
#ifdef USE_WINDOWS_FILE
static WRes File_OpenW(CSzFile *p, const WCHAR *name, int writeMode)
{
p->handle = CreateFileW(name,
writeMode ? GENERIC_WRITE : GENERIC_READ,
FILE_SHARE_READ, NULL,
writeMode ? CREATE_ALWAYS : OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
return (p->handle != INVALID_HANDLE_VALUE) ? 0 : GetLastError();
}
WRes InFile_OpenW(CSzFile *p, const WCHAR *name) { return File_OpenW(p, name, 0); }
WRes OutFile_OpenW(CSzFile *p, const WCHAR *name) { return File_OpenW(p, name, 1); }
#endif
WRes File_Close(CSzFile *p)
{
#ifdef USE_WINDOWS_FILE
if (p->handle != INVALID_HANDLE_VALUE)
{
if (!CloseHandle(p->handle))
return GetLastError();
p->handle = INVALID_HANDLE_VALUE;
}
#else
if (p->file != NULL)
{
int res = fclose(p->file);
if (res != 0)
return res;
p->file = NULL;
}
#endif
return 0;
}
WRes File_Read(CSzFile *p, void *data, size_t *size)
{
size_t originalSize = *size;
if (originalSize == 0)
return 0;
#ifdef USE_WINDOWS_FILE
*size = 0;
do
{
DWORD curSize = (originalSize > kChunkSizeMax) ? kChunkSizeMax : (DWORD)originalSize;
DWORD processed = 0;
BOOL res = ReadFile(p->handle, data, curSize, &processed, NULL);
data = (void *)((Byte *)data + processed);
originalSize -= processed;
*size += processed;
if (!res)
return GetLastError();
if (processed == 0)
break;
}
while (originalSize > 0);
return 0;
#else
*size = fread(data, 1, originalSize, p->file);
if (*size == originalSize)
return 0;
return ferror(p->file);
#endif
}
WRes File_Write(CSzFile *p, const void *data, size_t *size)
{
size_t originalSize = *size;
if (originalSize == 0)
return 0;
#ifdef USE_WINDOWS_FILE
*size = 0;
do
{
DWORD curSize = (originalSize > kChunkSizeMax) ? kChunkSizeMax : (DWORD)originalSize;
DWORD processed = 0;
BOOL res = WriteFile(p->handle, data, curSize, &processed, NULL);
data = (void *)((Byte *)data + processed);
originalSize -= processed;
*size += processed;
if (!res)
return GetLastError();
if (processed == 0)
break;
}
while (originalSize > 0);
return 0;
#else
*size = fwrite(data, 1, originalSize, p->file);
if (*size == originalSize)
return 0;
return ferror(p->file);
#endif
}
WRes File_Seek(CSzFile *p, Int64 *pos, ESzSeek origin)
{
#ifdef USE_WINDOWS_FILE
LARGE_INTEGER value;
DWORD moveMethod;
value.LowPart = (DWORD)*pos;
value.HighPart = (LONG)((UInt64)*pos >> 16 >> 16); /* for case when UInt64 is 32-bit only */
switch (origin)
{
case SZ_SEEK_SET: moveMethod = FILE_BEGIN; break;
case SZ_SEEK_CUR: moveMethod = FILE_CURRENT; break;
case SZ_SEEK_END: moveMethod = FILE_END; break;
default: return ERROR_INVALID_PARAMETER;
}
value.LowPart = SetFilePointer(p->handle, value.LowPart, &value.HighPart, moveMethod);
if (value.LowPart == 0xFFFFFFFF)
{
WRes res = GetLastError();
if (res != NO_ERROR)
return res;
}
*pos = ((Int64)value.HighPart << 32) | value.LowPart;
return 0;
#else
int moveMethod;
int res;
switch (origin)
{
case SZ_SEEK_SET: moveMethod = SEEK_SET; break;
case SZ_SEEK_CUR: moveMethod = SEEK_CUR; break;
case SZ_SEEK_END: moveMethod = SEEK_END; break;
default: return 1;
}
res = fseek(p->file, (long)*pos, moveMethod);
*pos = ftell(p->file);
return res;
#endif
}
WRes File_GetLength(CSzFile *p, UInt64 *length)
{
#ifdef USE_WINDOWS_FILE
DWORD sizeHigh;
DWORD sizeLow = GetFileSize(p->handle, &sizeHigh);
if (sizeLow == 0xFFFFFFFF)
{
DWORD res = GetLastError();
if (res != NO_ERROR)
return res;
}
*length = (((UInt64)sizeHigh) << 32) + sizeLow;
return 0;
#else
long pos = ftell(p->file);
int res = fseek(p->file, 0, SEEK_END);
*length = ftell(p->file);
fseek(p->file, pos, SEEK_SET);
return res;
#endif
}
/* ---------- FileSeqInStream ---------- */
static SRes FileSeqInStream_Read(void *pp, void *buf, size_t *size)
{
CFileSeqInStream *p = (CFileSeqInStream *)pp;
return File_Read(&p->file, buf, size) == 0 ? SZ_OK : SZ_ERROR_READ;
}
void FileSeqInStream_CreateVTable(CFileSeqInStream *p)
{
p->s.Read = FileSeqInStream_Read;
}
/* ---------- FileInStream ---------- */
static SRes FileInStream_Read(void *pp, void *buf, size_t *size)
{
CFileInStream *p = (CFileInStream *)pp;
return (File_Read(&p->file, buf, size) == 0) ? SZ_OK : SZ_ERROR_READ;
}
static SRes FileInStream_Seek(void *pp, Int64 *pos, ESzSeek origin)
{
CFileInStream *p = (CFileInStream *)pp;
return File_Seek(&p->file, pos, origin);
}
void FileInStream_CreateVTable(CFileInStream *p)
{
p->s.Read = FileInStream_Read;
p->s.Seek = FileInStream_Seek;
}
/* ---------- FileOutStream ---------- */
static size_t FileOutStream_Write(void *pp, const void *data, size_t size)
{
CFileOutStream *p = (CFileOutStream *)pp;
File_Write(&p->file, data, &size);
return size;
}
void FileOutStream_CreateVTable(CFileOutStream *p)
{
p->s.Write = FileOutStream_Write;
}

View File

@ -0,0 +1,83 @@
/* 7zFile.h -- File IO
2009-11-24 : Igor Pavlov : Public domain */
#ifndef __7Z_FILE_H
#define __7Z_FILE_H
#ifdef _WIN32
#define USE_WINDOWS_FILE
#endif
#ifdef USE_WINDOWS_FILE
#include <windows.h>
#else
#include <stdio.h>
#endif
#include "Types.h"
EXTERN_C_BEGIN
/* ---------- File ---------- */
typedef struct
{
#ifdef USE_WINDOWS_FILE
HANDLE handle;
#else
FILE *file;
#endif
} CSzFile;
void File_Construct(CSzFile *p);
#if !defined(UNDER_CE) || !defined(USE_WINDOWS_FILE)
WRes InFile_Open(CSzFile *p, const char *name);
WRes OutFile_Open(CSzFile *p, const char *name);
#endif
#ifdef USE_WINDOWS_FILE
WRes InFile_OpenW(CSzFile *p, const WCHAR *name);
WRes OutFile_OpenW(CSzFile *p, const WCHAR *name);
#endif
WRes File_Close(CSzFile *p);
/* reads max(*size, remain file's size) bytes */
WRes File_Read(CSzFile *p, void *data, size_t *size);
/* writes *size bytes */
WRes File_Write(CSzFile *p, const void *data, size_t *size);
WRes File_Seek(CSzFile *p, Int64 *pos, ESzSeek origin);
WRes File_GetLength(CSzFile *p, UInt64 *length);
/* ---------- FileInStream ---------- */
typedef struct
{
ISeqInStream s;
CSzFile file;
} CFileSeqInStream;
void FileSeqInStream_CreateVTable(CFileSeqInStream *p);
typedef struct
{
ISeekInStream s;
CSzFile file;
} CFileInStream;
void FileInStream_CreateVTable(CFileInStream *p);
typedef struct
{
ISeqOutStream s;
CSzFile file;
} CFileOutStream;
void FileOutStream_CreateVTable(CFileOutStream *p);
EXTERN_C_END
#endif

View File

@ -1,5 +0,0 @@
/* 7zHeader.c */
#include "7zHeader.h"
Byte k7zSignature[k7zSignatureSize] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C};

View File

@ -1,55 +0,0 @@
/* 7zHeader.h */
#ifndef __7Z_HEADER_H
#define __7Z_HEADER_H
#include "7zTypes.h"
#define k7zSignatureSize 6
extern Byte k7zSignature[k7zSignatureSize];
#define k7zMajorVersion 0
#define k7zStartHeaderSize 0x20
enum EIdEnum
{
k7zIdEnd,
k7zIdHeader,
k7zIdArchiveProperties,
k7zIdAdditionalStreamsInfo,
k7zIdMainStreamsInfo,
k7zIdFilesInfo,
k7zIdPackInfo,
k7zIdUnPackInfo,
k7zIdSubStreamsInfo,
k7zIdSize,
k7zIdCRC,
k7zIdFolder,
k7zIdCodersUnPackSize,
k7zIdNumUnPackStream,
k7zIdEmptyStream,
k7zIdEmptyFile,
k7zIdAnti,
k7zIdName,
k7zIdCreationTime,
k7zIdLastAccessTime,
k7zIdLastWriteTime,
k7zIdWinAttributes,
k7zIdComment,
k7zIdEncodedHeader,
k7zIdStartPos
};
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,55 +0,0 @@
/* 7zIn.h */
#ifndef __7Z_IN_H
#define __7Z_IN_H
#include "7zHeader.h"
#include "7zItem.h"
#include "7zAlloc.h"
typedef struct _CInArchiveInfo
{
CFileSize StartPositionAfterHeader;
CFileSize DataStartPosition;
}CInArchiveInfo;
typedef struct _CArchiveDatabaseEx
{
CArchiveDatabase Database;
CInArchiveInfo ArchiveInfo;
UInt32 *FolderStartPackStreamIndex;
CFileSize *PackStreamStartPositions;
UInt32 *FolderStartFileIndex;
UInt32 *FileIndexToFolderIndexMap;
}CArchiveDatabaseEx;
void SzArDbExInit(CArchiveDatabaseEx *db);
void SzArDbExFree(CArchiveDatabaseEx *db, void (*freeFunc)(void *));
CFileSize SzArDbGetFolderStreamPos(CArchiveDatabaseEx *db, UInt32 folderIndex, UInt32 indexInFolder);
CFileSize SzArDbGetFolderFullPackSize(CArchiveDatabaseEx *db, UInt32 folderIndex);
typedef struct _ISzInStream
{
#ifdef _LZMA_IN_CB
SZ_RESULT (*Read)(
void *object, /* pointer to ISzInStream itself */
void **buffer, /* out: pointer to buffer with data */
size_t maxRequiredSize, /* max required size to read */
size_t *processedSize); /* real processed size.
processedSize can be less than maxRequiredSize.
If processedSize == 0, then there are no more
bytes in stream. */
#else
SZ_RESULT (*Read)(void *object, void *buffer, size_t size, size_t *processedSize);
#endif
SZ_RESULT (*Seek)(void *object, CFileSize pos);
} ISzInStream;
int SzArchiveOpen(
ISzInStream *inStream,
CArchiveDatabaseEx *db,
ISzAlloc *allocMain,
ISzAlloc *allocTemp);
#endif

View File

@ -1,133 +0,0 @@
/* 7zItem.c */
#include "7zItem.h"
#include "7zAlloc.h"
void SzCoderInfoInit(CCoderInfo *coder)
{
SzByteBufferInit(&coder->Properties);
}
void SzCoderInfoFree(CCoderInfo *coder, void (*freeFunc)(void *p))
{
SzByteBufferFree(&coder->Properties, freeFunc);
SzCoderInfoInit(coder);
}
void SzFolderInit(CFolder *folder)
{
folder->NumCoders = 0;
folder->Coders = 0;
folder->NumBindPairs = 0;
folder->BindPairs = 0;
folder->NumPackStreams = 0;
folder->PackStreams = 0;
folder->UnPackSizes = 0;
folder->UnPackCRCDefined = 0;
folder->UnPackCRC = 0;
folder->NumUnPackStreams = 0;
}
void SzFolderFree(CFolder *folder, void (*freeFunc)(void *p))
{
UInt32 i;
for (i = 0; i < folder->NumCoders; i++)
SzCoderInfoFree(&folder->Coders[i], freeFunc);
freeFunc(folder->Coders);
freeFunc(folder->BindPairs);
freeFunc(folder->PackStreams);
freeFunc(folder->UnPackSizes);
SzFolderInit(folder);
}
UInt32 SzFolderGetNumOutStreams(CFolder *folder)
{
UInt32 result = 0;
UInt32 i;
for (i = 0; i < folder->NumCoders; i++)
result += folder->Coders[i].NumOutStreams;
return result;
}
int SzFolderFindBindPairForInStream(CFolder *folder, UInt32 inStreamIndex)
{
UInt32 i;
for(i = 0; i < folder->NumBindPairs; i++)
if (folder->BindPairs[i].InIndex == inStreamIndex)
return i;
return -1;
}
int SzFolderFindBindPairForOutStream(CFolder *folder, UInt32 outStreamIndex)
{
UInt32 i;
for(i = 0; i < folder->NumBindPairs; i++)
if (folder->BindPairs[i].OutIndex == outStreamIndex)
return i;
return -1;
}
CFileSize SzFolderGetUnPackSize(CFolder *folder)
{
int i = (int)SzFolderGetNumOutStreams(folder);
if (i == 0)
return 0;
for (i--; i >= 0; i--)
if (SzFolderFindBindPairForOutStream(folder, i) < 0)
return folder->UnPackSizes[i];
/* throw 1; */
return 0;
}
/*
int FindPackStreamArrayIndex(int inStreamIndex) const
{
for(int i = 0; i < PackStreams.Size(); i++)
if (PackStreams[i] == inStreamIndex)
return i;
return -1;
}
*/
void SzFileInit(CFileItem *fileItem)
{
fileItem->IsFileCRCDefined = 0;
fileItem->HasStream = 1;
fileItem->IsDirectory = 0;
fileItem->IsAnti = 0;
fileItem->Name = 0;
}
void SzFileFree(CFileItem *fileItem, void (*freeFunc)(void *p))
{
freeFunc(fileItem->Name);
SzFileInit(fileItem);
}
void SzArchiveDatabaseInit(CArchiveDatabase *db)
{
db->NumPackStreams = 0;
db->PackSizes = 0;
db->PackCRCsDefined = 0;
db->PackCRCs = 0;
db->NumFolders = 0;
db->Folders = 0;
db->NumFiles = 0;
db->Files = 0;
}
void SzArchiveDatabaseFree(CArchiveDatabase *db, void (*freeFunc)(void *))
{
UInt32 i;
for (i = 0; i < db->NumFolders; i++)
SzFolderFree(&db->Folders[i], freeFunc);
for (i = 0; i < db->NumFiles; i++)
SzFileFree(&db->Files[i], freeFunc);
freeFunc(db->PackSizes);
freeFunc(db->PackCRCsDefined);
freeFunc(db->PackCRCs);
freeFunc(db->Folders);
freeFunc(db->Files);
SzArchiveDatabaseInit(db);
}

View File

@ -1,90 +0,0 @@
/* 7zItem.h */
#ifndef __7Z_ITEM_H
#define __7Z_ITEM_H
#include "7zMethodID.h"
#include "7zHeader.h"
#include "7zBuffer.h"
typedef struct _CCoderInfo
{
UInt32 NumInStreams;
UInt32 NumOutStreams;
CMethodID MethodID;
CSzByteBuffer Properties;
}CCoderInfo;
void SzCoderInfoInit(CCoderInfo *coder);
void SzCoderInfoFree(CCoderInfo *coder, void (*freeFunc)(void *p));
typedef struct _CBindPair
{
UInt32 InIndex;
UInt32 OutIndex;
}CBindPair;
typedef struct _CFolder
{
UInt32 NumCoders;
CCoderInfo *Coders;
UInt32 NumBindPairs;
CBindPair *BindPairs;
UInt32 NumPackStreams;
UInt32 *PackStreams;
CFileSize *UnPackSizes;
int UnPackCRCDefined;
UInt32 UnPackCRC;
UInt32 NumUnPackStreams;
}CFolder;
void SzFolderInit(CFolder *folder);
CFileSize SzFolderGetUnPackSize(CFolder *folder);
int SzFolderFindBindPairForInStream(CFolder *folder, UInt32 inStreamIndex);
UInt32 SzFolderGetNumOutStreams(CFolder *folder);
CFileSize SzFolderGetUnPackSize(CFolder *folder);
/* #define CArchiveFileTime UInt64 */
typedef struct _CFileItem
{
/*
CArchiveFileTime LastWriteTime;
CFileSize StartPos;
UInt32 Attributes;
*/
CFileSize Size;
UInt32 FileCRC;
char *Name;
Byte IsFileCRCDefined;
Byte HasStream;
Byte IsDirectory;
Byte IsAnti;
/*
int AreAttributesDefined;
int IsLastWriteTimeDefined;
int IsStartPosDefined;
*/
}CFileItem;
void SzFileInit(CFileItem *fileItem);
typedef struct _CArchiveDatabase
{
UInt32 NumPackStreams;
CFileSize *PackSizes;
Byte *PackCRCsDefined;
UInt32 *PackCRCs;
UInt32 NumFolders;
CFolder *Folders;
UInt32 NumFiles;
CFileItem *Files;
}CArchiveDatabase;
void SzArchiveDatabaseInit(CArchiveDatabase *db);
void SzArchiveDatabaseFree(CArchiveDatabase *db, void (*freeFunc)(void *));
#endif

View File

@ -1,14 +0,0 @@
/* 7zMethodID.c */
#include "7zMethodID.h"
int AreMethodsEqual(CMethodID *a1, CMethodID *a2)
{
int i;
if (a1->IDSize != a2->IDSize)
return 0;
for (i = 0; i < a1->IDSize; i++)
if (a1->ID[i] != a2->ID[i])
return 0;
return 1;
}

View File

@ -1,18 +0,0 @@
/* 7zMethodID.h */
#ifndef __7Z_METHOD_ID_H
#define __7Z_METHOD_ID_H
#include "7zTypes.h"
#define kMethodIDSize 15
typedef struct _CMethodID
{
Byte ID[kMethodIDSize];
Byte IDSize;
} CMethodID;
int AreMethodsEqual(CMethodID *a1, CMethodID *a2);
#endif

View File

@ -0,0 +1,169 @@
/* 7zStream.c -- 7z Stream functions
2010-03-11 : Igor Pavlov : Public domain */
#include <string.h>
#include "Types.h"
SRes SeqInStream_Read2(ISeqInStream *stream, void *buf, size_t size, SRes errorType)
{
while (size != 0)
{
size_t processed = size;
RINOK(stream->Read(stream, buf, &processed));
if (processed == 0)
return errorType;
buf = (void *)((Byte *)buf + processed);
size -= processed;
}
return SZ_OK;
}
SRes SeqInStream_Read(ISeqInStream *stream, void *buf, size_t size)
{
return SeqInStream_Read2(stream, buf, size, SZ_ERROR_INPUT_EOF);
}
SRes SeqInStream_ReadByte(ISeqInStream *stream, Byte *buf)
{
size_t processed = 1;
RINOK(stream->Read(stream, buf, &processed));
return (processed == 1) ? SZ_OK : SZ_ERROR_INPUT_EOF;
}
SRes LookInStream_SeekTo(ILookInStream *stream, UInt64 offset)
{
Int64 t = offset;
return stream->Seek(stream, &t, SZ_SEEK_SET);
}
SRes LookInStream_LookRead(ILookInStream *stream, void *buf, size_t *size)
{
const void *lookBuf;
if (*size == 0)
return SZ_OK;
RINOK(stream->Look(stream, &lookBuf, size));
memcpy(buf, lookBuf, *size);
return stream->Skip(stream, *size);
}
SRes LookInStream_Read2(ILookInStream *stream, void *buf, size_t size, SRes errorType)
{
while (size != 0)
{
size_t processed = size;
RINOK(stream->Read(stream, buf, &processed));
if (processed == 0)
return errorType;
buf = (void *)((Byte *)buf + processed);
size -= processed;
}
return SZ_OK;
}
SRes LookInStream_Read(ILookInStream *stream, void *buf, size_t size)
{
return LookInStream_Read2(stream, buf, size, SZ_ERROR_INPUT_EOF);
}
static SRes LookToRead_Look_Lookahead(void *pp, const void **buf, size_t *size)
{
SRes res = SZ_OK;
CLookToRead *p = (CLookToRead *)pp;
size_t size2 = p->size - p->pos;
if (size2 == 0 && *size > 0)
{
p->pos = 0;
size2 = LookToRead_BUF_SIZE;
res = p->realStream->Read(p->realStream, p->buf, &size2);
p->size = size2;
}
if (size2 < *size)
*size = size2;
*buf = p->buf + p->pos;
return res;
}
static SRes LookToRead_Look_Exact(void *pp, const void **buf, size_t *size)
{
SRes res = SZ_OK;
CLookToRead *p = (CLookToRead *)pp;
size_t size2 = p->size - p->pos;
if (size2 == 0 && *size > 0)
{
p->pos = 0;
if (*size > LookToRead_BUF_SIZE)
*size = LookToRead_BUF_SIZE;
res = p->realStream->Read(p->realStream, p->buf, size);
size2 = p->size = *size;
}
if (size2 < *size)
*size = size2;
*buf = p->buf + p->pos;
return res;
}
static SRes LookToRead_Skip(void *pp, size_t offset)
{
CLookToRead *p = (CLookToRead *)pp;
p->pos += offset;
return SZ_OK;
}
static SRes LookToRead_Read(void *pp, void *buf, size_t *size)
{
CLookToRead *p = (CLookToRead *)pp;
size_t rem = p->size - p->pos;
if (rem == 0)
return p->realStream->Read(p->realStream, buf, size);
if (rem > *size)
rem = *size;
memcpy(buf, p->buf + p->pos, rem);
p->pos += rem;
*size = rem;
return SZ_OK;
}
static SRes LookToRead_Seek(void *pp, Int64 *pos, ESzSeek origin)
{
CLookToRead *p = (CLookToRead *)pp;
p->pos = p->size = 0;
return p->realStream->Seek(p->realStream, pos, origin);
}
void LookToRead_CreateVTable(CLookToRead *p, int lookahead)
{
p->s.Look = lookahead ?
LookToRead_Look_Lookahead :
LookToRead_Look_Exact;
p->s.Skip = LookToRead_Skip;
p->s.Read = LookToRead_Read;
p->s.Seek = LookToRead_Seek;
}
void LookToRead_Init(CLookToRead *p)
{
p->pos = p->size = 0;
}
static SRes SecToLook_Read(void *pp, void *buf, size_t *size)
{
CSecToLook *p = (CSecToLook *)pp;
return LookInStream_LookRead(p->realStream, buf, size);
}
void SecToLook_CreateVTable(CSecToLook *p)
{
p->s.Read = SecToLook_Read;
}
static SRes SecToRead_Read(void *pp, void *buf, size_t *size)
{
CSecToRead *p = (CSecToRead *)pp;
return p->realStream->Read(p->realStream, buf, size);
}
void SecToRead_CreateVTable(CSecToRead *p)
{
p->s.Read = SecToRead_Read;
}

View File

@ -0,0 +1,7 @@
#define MY_VER_MAJOR 9
#define MY_VER_MINOR 20
#define MY_VER_BUILD 0
#define MY_VERSION "9.20"
#define MY_DATE "2010-11-18"
#define MY_COPYRIGHT ": Igor Pavlov : Public domain"
#define MY_VERSION_COPYRIGHT_DATE MY_VERSION " " MY_COPYRIGHT " : " MY_DATE

View File

@ -1,205 +0,0 @@
# Microsoft Developer Studio Project File - Name="7zip" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=7zip - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "7zip.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "7zip.mak" CFG="7zip - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "7zip - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "7zip - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE "7zip - Win32 External Release" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "7zip - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../Build/7zip/Release"
# PROP Intermediate_Dir "../../Build/7zip/Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD BASE RSC /l 0xc09 /d "NDEBUG"
# ADD RSC /l 0xc09 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "7zip - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../Build/7zip/Debug"
# PROP Intermediate_Dir "../../Build/7zip/Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD BASE RSC /l 0xc09 /d "_DEBUG"
# ADD RSC /l 0xc09 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "7zip - Win32 External Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "7zip___Win32_External_Release"
# PROP BASE Intermediate_Dir "7zip___Win32_External_Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../Bin/External"
# PROP Intermediate_Dir "../../Build/7zip/External"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD BASE RSC /l 0xc09 /d "NDEBUG"
# ADD RSC /l 0xc09 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "7zip - Win32 Release"
# Name "7zip - Win32 Debug"
# Name "7zip - Win32 External Release"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\7zAlloc.c
# End Source File
# Begin Source File
SOURCE=.\7zBuffer.c
# End Source File
# Begin Source File
SOURCE=.\7zCrc.c
# End Source File
# Begin Source File
SOURCE=.\7zDecode.c
# End Source File
# Begin Source File
SOURCE=.\7zExtract.c
# End Source File
# Begin Source File
SOURCE=.\7zHeader.c
# End Source File
# Begin Source File
SOURCE=.\7zIn.c
# End Source File
# Begin Source File
SOURCE=.\7zItem.c
# End Source File
# Begin Source File
SOURCE=.\7zMethodID.c
# End Source File
# Begin Source File
SOURCE=.\Compress\LzmaDecode.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\7zAlloc.h
# End Source File
# Begin Source File
SOURCE=.\7zBuffer.h
# End Source File
# Begin Source File
SOURCE=.\7zCrc.h
# End Source File
# Begin Source File
SOURCE=.\7zDecode.h
# End Source File
# Begin Source File
SOURCE=.\7zExtract.h
# End Source File
# Begin Source File
SOURCE=.\7zHeader.h
# End Source File
# Begin Source File
SOURCE=.\7zIn.h
# End Source File
# Begin Source File
SOURCE=.\7zItem.h
# End Source File
# Begin Source File
SOURCE=.\7zMethodID.h
# End Source File
# Begin Source File
SOURCE=.\7zTypes.h
# End Source File
# Begin Source File
SOURCE=.\Compress\LzmaDecode.h
# End Source File
# Begin Source File
SOURCE=.\status.h
# End Source File
# End Group
# End Target
# End Project

View File

@ -37,6 +37,7 @@
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
UsePrecompiledHeader="0"
DisableSpecificWarnings="4127"
/>
@ -130,43 +131,147 @@
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="7zAlloc.c"
RelativePath=".\7zAlloc.c"
>
</File>
<File
RelativePath="7zBuffer.c"
RelativePath=".\7zBuf.c"
>
</File>
<File
RelativePath="7zCrc.c"
RelativePath=".\7zBuf2.c"
>
</File>
<File
RelativePath="7zDecode.c"
RelativePath=".\7zCrc.c"
>
</File>
<File
RelativePath="7zExtract.c"
RelativePath=".\7zCrcOpt.c"
>
</File>
<File
RelativePath="7zHeader.c"
RelativePath=".\7zDec.c"
>
</File>
<File
RelativePath="7zIn.c"
RelativePath=".\7zFile.c"
>
</File>
<File
RelativePath="7zItem.c"
RelativePath=".\7zIn.c"
>
</File>
<File
RelativePath="7zMethodID.c"
RelativePath=".\7zStream.c"
>
</File>
<File
RelativePath="Compress\LzmaDecode.c"
RelativePath=".\Alloc.c"
>
</File>
<File
RelativePath=".\Bcj2.c"
>
</File>
<File
RelativePath=".\Bra.c"
>
</File>
<File
RelativePath=".\Bra86.c"
>
</File>
<File
RelativePath=".\BraIA64.c"
>
</File>
<File
RelativePath=".\CpuArch.c"
>
</File>
<File
RelativePath=".\Delta.c"
>
</File>
<File
RelativePath=".\LzFind.c"
>
</File>
<File
RelativePath=".\LzFindMt.c"
>
</File>
<File
RelativePath=".\Lzma2Dec.c"
>
</File>
<File
RelativePath=".\Lzma2Enc.c"
>
</File>
<File
RelativePath=".\Lzma86Dec.c"
>
</File>
<File
RelativePath=".\Lzma86Enc.c"
>
</File>
<File
RelativePath=".\LzmaDec.c"
>
</File>
<File
RelativePath=".\LzmaEnc.c"
>
</File>
<File
RelativePath=".\LzmaLib.c"
>
</File>
<File
RelativePath=".\MtCoder.c"
>
</File>
<File
RelativePath=".\Ppmd7.c"
>
</File>
<File
RelativePath=".\Ppmd7Dec.c"
>
</File>
<File
RelativePath=".\Ppmd7Enc.c"
>
</File>
<File
RelativePath=".\Sha256.c"
>
</File>
<File
RelativePath=".\Threads.c"
>
</File>
<File
RelativePath=".\Xz.c"
>
</File>
<File
RelativePath=".\XzCrc64.c"
>
</File>
<File
RelativePath=".\XzDec.c"
>
</File>
<File
RelativePath=".\XzEnc.c"
>
</File>
<File
RelativePath=".\XzIn.c"
>
</File>
</Filter>
@ -175,51 +280,127 @@
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath="7zAlloc.h"
RelativePath=".\7z.h"
>
</File>
<File
RelativePath="7zBuffer.h"
RelativePath=".\7zAlloc.h"
>
</File>
<File
RelativePath="7zCrc.h"
RelativePath=".\7zBuf.h"
>
</File>
<File
RelativePath="7zDecode.h"
RelativePath=".\7zCrc.h"
>
</File>
<File
RelativePath="7zExtract.h"
RelativePath=".\7zFile.h"
>
</File>
<File
RelativePath="7zHeader.h"
RelativePath=".\7zTypes.h"
>
</File>
<File
RelativePath="7zIn.h"
RelativePath=".\7zVersion.h"
>
</File>
<File
RelativePath="7zItem.h"
RelativePath=".\Alloc.h"
>
</File>
<File
RelativePath="7zMethodID.h"
RelativePath=".\Bcj2.h"
>
</File>
<File
RelativePath="7zTypes.h"
RelativePath=".\Bra.h"
>
</File>
<File
RelativePath="Compress\LzmaDecode.h"
RelativePath=".\CpuArch.h"
>
</File>
<File
RelativePath="status.h"
RelativePath=".\Delta.h"
>
</File>
<File
RelativePath=".\LzFind.h"
>
</File>
<File
RelativePath=".\LzFindMt.h"
>
</File>
<File
RelativePath=".\LzHash.h"
>
</File>
<File
RelativePath=".\Lzma2Dec.h"
>
</File>
<File
RelativePath=".\Lzma2Enc.h"
>
</File>
<File
RelativePath=".\Lzma86.h"
>
</File>
<File
RelativePath=".\LzmaDec.h"
>
</File>
<File
RelativePath=".\LzmaEnc.h"
>
</File>
<File
RelativePath=".\LzmaLib.h"
>
</File>
<File
RelativePath=".\MtCoder.h"
>
</File>
<File
RelativePath=".\Ppmd.h"
>
</File>
<File
RelativePath=".\Ppmd7.h"
>
</File>
<File
RelativePath=".\RotateDefs.h"
>
</File>
<File
RelativePath=".\Sha256.h"
>
</File>
<File
RelativePath=".\Threads.h"
>
</File>
<File
RelativePath=".\Types.h"
>
</File>
<File
RelativePath=".\Xz.h"
>
</File>
<File
RelativePath=".\XzCrc64.h"
>
</File>
<File
RelativePath=".\XzEnc.h"
>
</File>
</Filter>

View File

@ -10,6 +10,77 @@
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="7z.h" />
<ClInclude Include="7zAlloc.h" />
<ClInclude Include="7zBuf.h" />
<ClInclude Include="7zCrc.h" />
<ClInclude Include="7zFile.h" />
<ClInclude Include="7zTypes.h" />
<ClInclude Include="7zVersion.h" />
<ClInclude Include="Alloc.h" />
<ClInclude Include="Bcj2.h" />
<ClInclude Include="Bra.h" />
<ClInclude Include="CpuArch.h" />
<ClInclude Include="Delta.h" />
<ClInclude Include="LzFind.h" />
<ClInclude Include="LzFindMt.h" />
<ClInclude Include="LzHash.h" />
<ClInclude Include="Lzma2Dec.h" />
<ClInclude Include="Lzma2Enc.h" />
<ClInclude Include="Lzma86.h" />
<ClInclude Include="LzmaDec.h" />
<ClInclude Include="LzmaEnc.h" />
<ClInclude Include="LzmaLib.h" />
<ClInclude Include="MtCoder.h" />
<ClInclude Include="Ppmd.h" />
<ClInclude Include="Ppmd7.h" />
<ClInclude Include="RotateDefs.h" />
<ClInclude Include="Sha256.h" />
<ClInclude Include="Threads.h" />
<ClInclude Include="Types.h" />
<ClInclude Include="Xz.h" />
<ClInclude Include="XzCrc64.h" />
<ClInclude Include="XzEnc.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="7zAlloc.c" />
<ClCompile Include="7zBuf.c" />
<ClCompile Include="7zBuf2.c" />
<ClCompile Include="7zCrc.c" />
<ClCompile Include="7zCrcOpt.c" />
<ClCompile Include="7zDec.c" />
<ClCompile Include="7zFile.c" />
<ClCompile Include="7zIn.c" />
<ClCompile Include="7zStream.c" />
<ClCompile Include="Alloc.c" />
<ClCompile Include="Bcj2.c" />
<ClCompile Include="Bra.c" />
<ClCompile Include="Bra86.c" />
<ClCompile Include="BraIA64.c" />
<ClCompile Include="CpuArch.c" />
<ClCompile Include="Delta.c" />
<ClCompile Include="LzFind.c" />
<ClCompile Include="LzFindMt.c" />
<ClCompile Include="Lzma2Dec.c" />
<ClCompile Include="Lzma2Enc.c" />
<ClCompile Include="Lzma86Dec.c" />
<ClCompile Include="Lzma86Enc.c" />
<ClCompile Include="LzmaDec.c" />
<ClCompile Include="LzmaEnc.c" />
<ClCompile Include="LzmaLib.c" />
<ClCompile Include="MtCoder.c" />
<ClCompile Include="Ppmd7.c" />
<ClCompile Include="Ppmd7Dec.c" />
<ClCompile Include="Ppmd7Enc.c" />
<ClCompile Include="Sha256.c" />
<ClCompile Include="Threads.c" />
<ClCompile Include="Xz.c" />
<ClCompile Include="XzCrc64.c" />
<ClCompile Include="XzDec.c" />
<ClCompile Include="XzEnc.c" />
<ClCompile Include="XzIn.c" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{3326E128-33AF-422C-BB7C-67CC6B915610}</ProjectGuid>
<RootNamespace>7zip</RootNamespace>
@ -36,32 +107,6 @@
<DisableSpecificWarnings>4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="7zAlloc.c" />
<ClCompile Include="7zBuffer.c" />
<ClCompile Include="7zCrc.c" />
<ClCompile Include="7zDecode.c" />
<ClCompile Include="7zExtract.c" />
<ClCompile Include="7zHeader.c" />
<ClCompile Include="7zIn.c" />
<ClCompile Include="7zItem.c" />
<ClCompile Include="7zMethodID.c" />
<ClCompile Include="Compress\LzmaDecode.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="7zAlloc.h" />
<ClInclude Include="7zBuffer.h" />
<ClInclude Include="7zCrc.h" />
<ClInclude Include="7zDecode.h" />
<ClInclude Include="7zExtract.h" />
<ClInclude Include="7zHeader.h" />
<ClInclude Include="7zIn.h" />
<ClInclude Include="7zItem.h" />
<ClInclude Include="7zMethodID.h" />
<ClInclude Include="7zTypes.h" />
<ClInclude Include="Compress\LzmaDecode.h" />
<ClInclude Include="status.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -11,73 +11,208 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="7zAlloc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zBuffer.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zCrc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zDecode.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zExtract.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zHeader.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zIn.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zItem.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zMethodID.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Compress\LzmaDecode.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="7z.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="7zAlloc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="7zBuffer.h">
<ClInclude Include="7zBuf.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="7zCrc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="7zDecode.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="7zExtract.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="7zHeader.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="7zIn.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="7zItem.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="7zMethodID.h">
<ClInclude Include="7zFile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="7zTypes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Compress\LzmaDecode.h">
<ClInclude Include="7zVersion.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="status.h">
<ClInclude Include="Alloc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Bcj2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Bra.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="CpuArch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Delta.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="LzFind.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="LzFindMt.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="LzHash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Lzma2Dec.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Lzma2Enc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Lzma86.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="LzmaDec.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="LzmaEnc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="LzmaLib.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MtCoder.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Ppmd.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Ppmd7.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="RotateDefs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Sha256.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Threads.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Types.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Xz.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="XzCrc64.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="XzEnc.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="7zAlloc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zBuf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zBuf2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zCrc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zCrcOpt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zDec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zFile.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zIn.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="7zStream.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Alloc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Bcj2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Bra.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Bra86.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="BraIA64.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="CpuArch.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Delta.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="LzFind.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="LzFindMt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Lzma2Dec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Lzma2Enc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Lzma86Dec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Lzma86Enc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="LzmaDec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="LzmaEnc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="LzmaLib.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="MtCoder.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Ppmd7.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Ppmd7Dec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Ppmd7Enc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Sha256.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Threads.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Xz.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="XzCrc64.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="XzDec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="XzEnc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="XzIn.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -0,0 +1,127 @@
/* Alloc.c -- Memory allocation functions
2008-09-24
Igor Pavlov
Public domain */
#ifdef _WIN32
#include <windows.h>
#endif
#include <stdlib.h>
#include "Alloc.h"
/* #define _SZ_ALLOC_DEBUG */
/* use _SZ_ALLOC_DEBUG to debug alloc/free operations */
#ifdef _SZ_ALLOC_DEBUG
#include <stdio.h>
int g_allocCount = 0;
int g_allocCountMid = 0;
int g_allocCountBig = 0;
#endif
void *MyAlloc(size_t size)
{
if (size == 0)
return 0;
#ifdef _SZ_ALLOC_DEBUG
{
void *p = malloc(size);
fprintf(stderr, "\nAlloc %10d bytes, count = %10d, addr = %8X", size, g_allocCount++, (unsigned)p);
return p;
}
#else
return malloc(size);
#endif
}
void MyFree(void *address)
{
#ifdef _SZ_ALLOC_DEBUG
if (address != 0)
fprintf(stderr, "\nFree; count = %10d, addr = %8X", --g_allocCount, (unsigned)address);
#endif
free(address);
}
#ifdef _WIN32
void *MidAlloc(size_t size)
{
if (size == 0)
return 0;
#ifdef _SZ_ALLOC_DEBUG
fprintf(stderr, "\nAlloc_Mid %10d bytes; count = %10d", size, g_allocCountMid++);
#endif
return VirtualAlloc(0, size, MEM_COMMIT, PAGE_READWRITE);
}
void MidFree(void *address)
{
#ifdef _SZ_ALLOC_DEBUG
if (address != 0)
fprintf(stderr, "\nFree_Mid; count = %10d", --g_allocCountMid);
#endif
if (address == 0)
return;
VirtualFree(address, 0, MEM_RELEASE);
}
#ifndef MEM_LARGE_PAGES
#undef _7ZIP_LARGE_PAGES
#endif
#ifdef _7ZIP_LARGE_PAGES
SIZE_T g_LargePageSize = 0;
typedef SIZE_T (WINAPI *GetLargePageMinimumP)();
#endif
void SetLargePageSize()
{
#ifdef _7ZIP_LARGE_PAGES
SIZE_T size = 0;
GetLargePageMinimumP largePageMinimum = (GetLargePageMinimumP)
GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "GetLargePageMinimum");
if (largePageMinimum == 0)
return;
size = largePageMinimum();
if (size == 0 || (size & (size - 1)) != 0)
return;
g_LargePageSize = size;
#endif
}
void *BigAlloc(size_t size)
{
if (size == 0)
return 0;
#ifdef _SZ_ALLOC_DEBUG
fprintf(stderr, "\nAlloc_Big %10d bytes; count = %10d", size, g_allocCountBig++);
#endif
#ifdef _7ZIP_LARGE_PAGES
if (g_LargePageSize != 0 && g_LargePageSize <= (1 << 30) && size >= (1 << 18))
{
void *res = VirtualAlloc(0, (size + g_LargePageSize - 1) & (~(g_LargePageSize - 1)),
MEM_COMMIT | MEM_LARGE_PAGES, PAGE_READWRITE);
if (res != 0)
return res;
}
#endif
return VirtualAlloc(0, size, MEM_COMMIT, PAGE_READWRITE);
}
void BigFree(void *address)
{
#ifdef _SZ_ALLOC_DEBUG
if (address != 0)
fprintf(stderr, "\nFree_Big; count = %10d", --g_allocCountBig);
#endif
if (address == 0)
return;
VirtualFree(address, 0, MEM_RELEASE);
}
#endif

View File

@ -0,0 +1,38 @@
/* Alloc.h -- Memory allocation functions
2009-02-07 : Igor Pavlov : Public domain */
#ifndef __COMMON_ALLOC_H
#define __COMMON_ALLOC_H
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
void *MyAlloc(size_t size);
void MyFree(void *address);
#ifdef _WIN32
void SetLargePageSize();
void *MidAlloc(size_t size);
void MidFree(void *address);
void *BigAlloc(size_t size);
void BigFree(void *address);
#else
#define MidAlloc(size) MyAlloc(size)
#define MidFree(address) MyFree(address)
#define BigAlloc(size) MyAlloc(size)
#define BigFree(address) MyFree(address)
#endif
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,132 @@
/* Bcj2.c -- Converter for x86 code (BCJ2)
2008-10-04 : Igor Pavlov : Public domain */
#include "Bcj2.h"
#ifdef _LZMA_PROB32
#define CProb UInt32
#else
#define CProb UInt16
#endif
#define IsJcc(b0, b1) ((b0) == 0x0F && ((b1) & 0xF0) == 0x80)
#define IsJ(b0, b1) ((b1 & 0xFE) == 0xE8 || IsJcc(b0, b1))
#define kNumTopBits 24
#define kTopValue ((UInt32)1 << kNumTopBits)
#define kNumBitModelTotalBits 11
#define kBitModelTotal (1 << kNumBitModelTotalBits)
#define kNumMoveBits 5
#define RC_READ_BYTE (*buffer++)
#define RC_TEST { if (buffer == bufferLim) return SZ_ERROR_DATA; }
#define RC_INIT2 code = 0; range = 0xFFFFFFFF; \
{ int i; for (i = 0; i < 5; i++) { RC_TEST; code = (code << 8) | RC_READ_BYTE; }}
#define NORMALIZE if (range < kTopValue) { RC_TEST; range <<= 8; code = (code << 8) | RC_READ_BYTE; }
#define IF_BIT_0(p) ttt = *(p); bound = (range >> kNumBitModelTotalBits) * ttt; if (code < bound)
#define UPDATE_0(p) range = bound; *(p) = (CProb)(ttt + ((kBitModelTotal - ttt) >> kNumMoveBits)); NORMALIZE;
#define UPDATE_1(p) range -= bound; code -= bound; *(p) = (CProb)(ttt - (ttt >> kNumMoveBits)); NORMALIZE;
int Bcj2_Decode(
const Byte *buf0, SizeT size0,
const Byte *buf1, SizeT size1,
const Byte *buf2, SizeT size2,
const Byte *buf3, SizeT size3,
Byte *outBuf, SizeT outSize)
{
CProb p[256 + 2];
SizeT inPos = 0, outPos = 0;
const Byte *buffer, *bufferLim;
UInt32 range, code;
Byte prevByte = 0;
unsigned int i;
for (i = 0; i < sizeof(p) / sizeof(p[0]); i++)
p[i] = kBitModelTotal >> 1;
buffer = buf3;
bufferLim = buffer + size3;
RC_INIT2
if (outSize == 0)
return SZ_OK;
for (;;)
{
Byte b;
CProb *prob;
UInt32 bound;
UInt32 ttt;
SizeT limit = size0 - inPos;
if (outSize - outPos < limit)
limit = outSize - outPos;
while (limit != 0)
{
Byte b = buf0[inPos];
outBuf[outPos++] = b;
if (IsJ(prevByte, b))
break;
inPos++;
prevByte = b;
limit--;
}
if (limit == 0 || outPos == outSize)
break;
b = buf0[inPos++];
if (b == 0xE8)
prob = p + prevByte;
else if (b == 0xE9)
prob = p + 256;
else
prob = p + 257;
IF_BIT_0(prob)
{
UPDATE_0(prob)
prevByte = b;
}
else
{
UInt32 dest;
const Byte *v;
UPDATE_1(prob)
if (b == 0xE8)
{
v = buf1;
if (size1 < 4)
return SZ_ERROR_DATA;
buf1 += 4;
size1 -= 4;
}
else
{
v = buf2;
if (size2 < 4)
return SZ_ERROR_DATA;
buf2 += 4;
size2 -= 4;
}
dest = (((UInt32)v[0] << 24) | ((UInt32)v[1] << 16) |
((UInt32)v[2] << 8) | ((UInt32)v[3])) - ((UInt32)outPos + 4);
outBuf[outPos++] = (Byte)dest;
if (outPos == outSize)
break;
outBuf[outPos++] = (Byte)(dest >> 8);
if (outPos == outSize)
break;
outBuf[outPos++] = (Byte)(dest >> 16);
if (outPos == outSize)
break;
outBuf[outPos++] = prevByte = (Byte)(dest >> 24);
}
}
return (outPos == outSize) ? SZ_OK : SZ_ERROR_DATA;
}

View File

@ -0,0 +1,38 @@
/* Bcj2.h -- Converter for x86 code (BCJ2)
2009-02-07 : Igor Pavlov : Public domain */
#ifndef __BCJ2_H
#define __BCJ2_H
#include "Types.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
Conditions:
outSize <= FullOutputSize,
where FullOutputSize is full size of output stream of x86_2 filter.
If buf0 overlaps outBuf, there are two required conditions:
1) (buf0 >= outBuf)
2) (buf0 + size0 >= outBuf + FullOutputSize).
Returns:
SZ_OK
SZ_ERROR_DATA - Data error
*/
int Bcj2_Decode(
const Byte *buf0, SizeT size0,
const Byte *buf1, SizeT size1,
const Byte *buf2, SizeT size2,
const Byte *buf3, SizeT size3,
Byte *outBuf, SizeT outSize);
#ifdef __cplusplus
}
#endif
#endif

133
Source/3rd Party/7zip/Bra.c Normal file
View File

@ -0,0 +1,133 @@
/* Bra.c -- Converters for RISC code
2010-04-16 : Igor Pavlov : Public domain */
#include "Bra.h"
SizeT ARM_Convert(Byte *data, SizeT size, UInt32 ip, int encoding)
{
SizeT i;
if (size < 4)
return 0;
size -= 4;
ip += 8;
for (i = 0; i <= size; i += 4)
{
if (data[i + 3] == 0xEB)
{
UInt32 dest;
UInt32 src = ((UInt32)data[i + 2] << 16) | ((UInt32)data[i + 1] << 8) | (data[i + 0]);
src <<= 2;
if (encoding)
dest = ip + (UInt32)i + src;
else
dest = src - (ip + (UInt32)i);
dest >>= 2;
data[i + 2] = (Byte)(dest >> 16);
data[i + 1] = (Byte)(dest >> 8);
data[i + 0] = (Byte)dest;
}
}
return i;
}
SizeT ARMT_Convert(Byte *data, SizeT size, UInt32 ip, int encoding)
{
SizeT i;
if (size < 4)
return 0;
size -= 4;
ip += 4;
for (i = 0; i <= size; i += 2)
{
if ((data[i + 1] & 0xF8) == 0xF0 &&
(data[i + 3] & 0xF8) == 0xF8)
{
UInt32 dest;
UInt32 src =
(((UInt32)data[i + 1] & 0x7) << 19) |
((UInt32)data[i + 0] << 11) |
(((UInt32)data[i + 3] & 0x7) << 8) |
(data[i + 2]);
src <<= 1;
if (encoding)
dest = ip + (UInt32)i + src;
else
dest = src - (ip + (UInt32)i);
dest >>= 1;
data[i + 1] = (Byte)(0xF0 | ((dest >> 19) & 0x7));
data[i + 0] = (Byte)(dest >> 11);
data[i + 3] = (Byte)(0xF8 | ((dest >> 8) & 0x7));
data[i + 2] = (Byte)dest;
i += 2;
}
}
return i;
}
SizeT PPC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding)
{
SizeT i;
if (size < 4)
return 0;
size -= 4;
for (i = 0; i <= size; i += 4)
{
if ((data[i] >> 2) == 0x12 && (data[i + 3] & 3) == 1)
{
UInt32 src = ((UInt32)(data[i + 0] & 3) << 24) |
((UInt32)data[i + 1] << 16) |
((UInt32)data[i + 2] << 8) |
((UInt32)data[i + 3] & (~3));
UInt32 dest;
if (encoding)
dest = ip + (UInt32)i + src;
else
dest = src - (ip + (UInt32)i);
data[i + 0] = (Byte)(0x48 | ((dest >> 24) & 0x3));
data[i + 1] = (Byte)(dest >> 16);
data[i + 2] = (Byte)(dest >> 8);
data[i + 3] &= 0x3;
data[i + 3] |= dest;
}
}
return i;
}
SizeT SPARC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding)
{
UInt32 i;
if (size < 4)
return 0;
size -= 4;
for (i = 0; i <= size; i += 4)
{
if ((data[i] == 0x40 && (data[i + 1] & 0xC0) == 0x00) ||
(data[i] == 0x7F && (data[i + 1] & 0xC0) == 0xC0))
{
UInt32 src =
((UInt32)data[i + 0] << 24) |
((UInt32)data[i + 1] << 16) |
((UInt32)data[i + 2] << 8) |
((UInt32)data[i + 3]);
UInt32 dest;
src <<= 2;
if (encoding)
dest = ip + i + src;
else
dest = src - (ip + i);
dest >>= 2;
dest = (((0 - ((dest >> 22) & 1)) << 22) & 0x3FFFFFFF) | (dest & 0x3FFFFF) | 0x40000000;
data[i + 0] = (Byte)(dest >> 24);
data[i + 1] = (Byte)(dest >> 16);
data[i + 2] = (Byte)(dest >> 8);
data[i + 3] = (Byte)dest;
}
}
return i;
}

View File

@ -0,0 +1,68 @@
/* Bra.h -- Branch converters for executables
2009-02-07 : Igor Pavlov : Public domain */
#ifndef __BRA_H
#define __BRA_H
#include "Types.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
These functions convert relative addresses to absolute addresses
in CALL instructions to increase the compression ratio.
In:
data - data buffer
size - size of data
ip - current virtual Instruction Pinter (IP) value
state - state variable for x86 converter
encoding - 0 (for decoding), 1 (for encoding)
Out:
state - state variable for x86 converter
Returns:
The number of processed bytes. If you call these functions with multiple calls,
you must start next call with first byte after block of processed bytes.
Type Endian Alignment LookAhead
x86 little 1 4
ARMT little 2 2
ARM little 4 0
PPC big 4 0
SPARC big 4 0
IA64 little 16 0
size must be >= Alignment + LookAhead, if it's not last block.
If (size < Alignment + LookAhead), converter returns 0.
Example:
UInt32 ip = 0;
for ()
{
; size must be >= Alignment + LookAhead, if it's not last block
SizeT processed = Convert(data, size, ip, 1);
data += processed;
size -= processed;
ip += processed;
}
*/
#define x86_Convert_Init(state) { state = 0; }
SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding);
SizeT ARM_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
SizeT ARMT_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
SizeT PPC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
SizeT SPARC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
SizeT IA64_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,85 @@
/* Bra86.c -- Converter for x86 code (BCJ)
2008-10-04 : Igor Pavlov : Public domain */
#include "Bra.h"
#define Test86MSByte(b) ((b) == 0 || (b) == 0xFF)
const Byte kMaskToAllowedStatus[8] = {1, 1, 1, 0, 1, 0, 0, 0};
const Byte kMaskToBitNumber[8] = {0, 1, 2, 2, 3, 3, 3, 3};
SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding)
{
SizeT bufferPos = 0, prevPosT;
UInt32 prevMask = *state & 0x7;
if (size < 5)
return 0;
ip += 5;
prevPosT = (SizeT)0 - 1;
for (;;)
{
Byte *p = data + bufferPos;
Byte *limit = data + size - 4;
for (; p < limit; p++)
if ((*p & 0xFE) == 0xE8)
break;
bufferPos = (SizeT)(p - data);
if (p >= limit)
break;
prevPosT = bufferPos - prevPosT;
if (prevPosT > 3)
prevMask = 0;
else
{
prevMask = (prevMask << ((int)prevPosT - 1)) & 0x7;
if (prevMask != 0)
{
Byte b = p[4 - kMaskToBitNumber[prevMask]];
if (!kMaskToAllowedStatus[prevMask] || Test86MSByte(b))
{
prevPosT = bufferPos;
prevMask = ((prevMask << 1) & 0x7) | 1;
bufferPos++;
continue;
}
}
}
prevPosT = bufferPos;
if (Test86MSByte(p[4]))
{
UInt32 src = ((UInt32)p[4] << 24) | ((UInt32)p[3] << 16) | ((UInt32)p[2] << 8) | ((UInt32)p[1]);
UInt32 dest;
for (;;)
{
Byte b;
int index;
if (encoding)
dest = (ip + (UInt32)bufferPos) + src;
else
dest = src - (ip + (UInt32)bufferPos);
if (prevMask == 0)
break;
index = kMaskToBitNumber[prevMask] * 8;
b = (Byte)(dest >> (24 - index));
if (!Test86MSByte(b))
break;
src = dest ^ ((1 << (32 - index)) - 1);
}
p[4] = (Byte)(~(((dest >> 24) & 1) - 1));
p[3] = (Byte)(dest >> 16);
p[2] = (Byte)(dest >> 8);
p[1] = (Byte)dest;
bufferPos += 5;
}
else
{
prevMask = ((prevMask << 1) & 0x7) | 1;
bufferPos++;
}
}
prevPosT = bufferPos - prevPosT;
*state = ((prevPosT > 3) ? 0 : ((prevMask << ((int)prevPosT - 1)) & 0x7));
return bufferPos;
}

View File

@ -0,0 +1,67 @@
/* BraIA64.c -- Converter for IA-64 code
2008-10-04 : Igor Pavlov : Public domain */
#include "Bra.h"
static const Byte kBranchTable[32] =
{
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
4, 4, 6, 6, 0, 0, 7, 7,
4, 4, 0, 0, 4, 4, 0, 0
};
SizeT IA64_Convert(Byte *data, SizeT size, UInt32 ip, int encoding)
{
SizeT i;
if (size < 16)
return 0;
size -= 16;
for (i = 0; i <= size; i += 16)
{
UInt32 instrTemplate = data[i] & 0x1F;
UInt32 mask = kBranchTable[instrTemplate];
UInt32 bitPos = 5;
int slot;
for (slot = 0; slot < 3; slot++, bitPos += 41)
{
UInt32 bytePos, bitRes;
UInt64 instruction, instNorm;
int j;
if (((mask >> slot) & 1) == 0)
continue;
bytePos = (bitPos >> 3);
bitRes = bitPos & 0x7;
instruction = 0;
for (j = 0; j < 6; j++)
instruction += (UInt64)data[i + j + bytePos] << (8 * j);
instNorm = instruction >> bitRes;
if (((instNorm >> 37) & 0xF) == 0x5 && ((instNorm >> 9) & 0x7) == 0)
{
UInt32 src = (UInt32)((instNorm >> 13) & 0xFFFFF);
UInt32 dest;
src |= ((UInt32)(instNorm >> 36) & 1) << 20;
src <<= 4;
if (encoding)
dest = ip + (UInt32)i + src;
else
dest = src - (ip + (UInt32)i);
dest >>= 4;
instNorm &= ~((UInt64)(0x8FFFFF) << 13);
instNorm |= ((UInt64)(dest & 0xFFFFF) << 13);
instNorm |= ((UInt64)(dest & 0x100000) << (36 - 20));
instruction &= (1 << bitRes) - 1;
instruction |= (instNorm << bitRes);
for (j = 0; j < 6; j++)
data[i + j + bytePos] = (Byte)(instruction >> (8 * j));
}
}
}
return i;
}

View File

@ -1,609 +0,0 @@
/*
LzmaDecode.c
LZMA Decoder (optimized for Speed version)
LZMA SDK 4.22 Copyright (c) 1999-2005 Igor Pavlov (2005-06-10)
http://www.7-zip.org/
LZMA SDK is licensed under two licenses:
1) GNU Lesser General Public License (GNU LGPL)
2) Common Public License (CPL)
It means that you can select one of these two licenses and
follow rules of that license.
SPECIAL EXCEPTION:
Igor Pavlov, as the author of this Code, expressly permits you to
statically or dynamically link your Code (or bind by name) to the
interfaces of this file without subjecting your linked Code to the
terms of the CPL or GNU LGPL. Any modifications or additions
to this file, however, are subject to the LGPL or CPL terms.
*/
#include "LzmaDecode.h"
enum { STATUS_EXTRACT_NOTIFY_SIZE = 0x100000 };
#ifndef Byte
#define Byte unsigned char
#endif
#define kNumTopBits 24
#define kTopValue ((UInt32)1 << kNumTopBits)
#define kNumBitModelTotalBits 11
#define kBitModelTotal (1 << kNumBitModelTotalBits)
#define kNumMoveBits 5
#define RC_READ_BYTE (*Buffer++)
#define RC_INIT2 Code = 0; Range = 0xFFFFFFFF; \
{ int i; for(i = 0; i < 5; i++) { RC_TEST; Code = (Code << 8) | RC_READ_BYTE; }}
#ifdef _LZMA_IN_CB
#define RC_TEST { if (Buffer == BufferLim) \
{ SizeT size; int result = InCallback->Read(InCallback, &Buffer, &size); if (result != LZMA_RESULT_OK) return result; \
BufferLim = Buffer + size; if (size == 0) return LZMA_RESULT_DATA_ERROR; }}
#define RC_INIT Buffer = BufferLim = 0; RC_INIT2
#else
#define RC_TEST { if (Buffer == BufferLim) return LZMA_RESULT_DATA_ERROR; }
#define RC_INIT(buffer, bufferSize) Buffer = buffer; BufferLim = buffer + bufferSize; RC_INIT2
#endif
#define RC_NORMALIZE if (Range < kTopValue) { RC_TEST; Range <<= 8; Code = (Code << 8) | RC_READ_BYTE; }
#define IfBit0(p) RC_NORMALIZE; bound = (Range >> kNumBitModelTotalBits) * *(p); if (Code < bound)
#define UpdateBit0(p) Range = bound; *(p) += (kBitModelTotal - *(p)) >> kNumMoveBits;
#define UpdateBit1(p) Range -= bound; Code -= bound; *(p) -= (*(p)) >> kNumMoveBits;
#define RC_GET_BIT2(p, mi, A0, A1) IfBit0(p) \
{ UpdateBit0(p); mi <<= 1; A0; } else \
{ UpdateBit1(p); mi = (mi + mi) + 1; A1; }
#define RC_GET_BIT(p, mi) RC_GET_BIT2(p, mi, ; , ;)
#define RangeDecoderBitTreeDecode(probs, numLevels, res) \
{ int i = numLevels; res = 1; \
do { CProb *p = probs + res; RC_GET_BIT(p, res) } while(--i != 0); \
res -= (1 << numLevels); }
#define kNumPosBitsMax 4
#define kNumPosStatesMax (1 << kNumPosBitsMax)
#define kLenNumLowBits 3
#define kLenNumLowSymbols (1 << kLenNumLowBits)
#define kLenNumMidBits 3
#define kLenNumMidSymbols (1 << kLenNumMidBits)
#define kLenNumHighBits 8
#define kLenNumHighSymbols (1 << kLenNumHighBits)
#define LenChoice 0
#define LenChoice2 (LenChoice + 1)
#define LenLow (LenChoice2 + 1)
#define LenMid (LenLow + (kNumPosStatesMax << kLenNumLowBits))
#define LenHigh (LenMid + (kNumPosStatesMax << kLenNumMidBits))
#define kNumLenProbs (LenHigh + kLenNumHighSymbols)
#define kNumStates 12
#define kNumLitStates 7
#define kStartPosModelIndex 4
#define kEndPosModelIndex 14
#define kNumFullDistances (1 << (kEndPosModelIndex >> 1))
#define kNumPosSlotBits 6
#define kNumLenToPosStates 4
#define kNumAlignBits 4
#define kAlignTableSize (1 << kNumAlignBits)
#define kMatchMinLen 2
#define IsMatch 0
#define IsRep (IsMatch + (kNumStates << kNumPosBitsMax))
#define IsRepG0 (IsRep + kNumStates)
#define IsRepG1 (IsRepG0 + kNumStates)
#define IsRepG2 (IsRepG1 + kNumStates)
#define IsRep0Long (IsRepG2 + kNumStates)
#define PosSlot (IsRep0Long + (kNumStates << kNumPosBitsMax))
#define SpecPos (PosSlot + (kNumLenToPosStates << kNumPosSlotBits))
#define Align (SpecPos + kNumFullDistances - kEndPosModelIndex)
#define LenCoder (Align + kAlignTableSize)
#define RepLenCoder (LenCoder + kNumLenProbs)
#define Literal (RepLenCoder + kNumLenProbs)
#if Literal != LZMA_BASE_SIZE
StopCompilingDueBUG
#endif
int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size)
{
unsigned char prop0;
if (size < LZMA_PROPERTIES_SIZE)
return LZMA_RESULT_DATA_ERROR;
prop0 = propsData[0];
if (prop0 >= (9 * 5 * 5))
return LZMA_RESULT_DATA_ERROR;
{
for (propsRes->pb = 0; prop0 >= (9 * 5); propsRes->pb++, prop0 -= (9 * 5));
for (propsRes->lp = 0; prop0 >= 9; propsRes->lp++, prop0 -= 9);
propsRes->lc = prop0;
/*
unsigned char remainder = (unsigned char)(prop0 / 9);
propsRes->lc = prop0 % 9;
propsRes->pb = remainder / 5;
propsRes->lp = remainder % 5;
*/
}
#ifdef _LZMA_OUT_READ
{
int i;
propsRes->DictionarySize = 0;
for (i = 0; i < 4; i++)
propsRes->DictionarySize += (UInt32)(propsData[1 + i]) << (i * 8);
if (propsRes->DictionarySize == 0)
propsRes->DictionarySize = 1;
}
#endif
return LZMA_RESULT_OK;
}
#define kLzmaStreamWasFinishedId (-1)
int LzmaDecode(CLzmaDecoderState *vs,
#ifdef _LZMA_IN_CB
ILzmaInCallback *InCallback,
#else
const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed,
#endif
unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed,
LP7ZSTATUS_UPDATE statusupdate, void * StatusInfo)
{
CProb *p = vs->Probs;
SizeT nowPos = 0;
Byte previousByte = 0;
UInt32 posStateMask = (1 << (vs->Properties.pb)) - 1;
UInt32 literalPosMask = (1 << (vs->Properties.lp)) - 1;
int lc = vs->Properties.lc;
SizeT NextReport;
SizeT StartExtract;
#ifdef _LZMA_OUT_READ
UInt32 Range = vs->Range;
UInt32 Code = vs->Code;
#ifdef _LZMA_IN_CB
const Byte *Buffer = vs->Buffer;
const Byte *BufferLim = vs->BufferLim;
#else
const Byte *Buffer = inStream;
const Byte *BufferLim = inStream + inSize;
#endif
int state = vs->State;
UInt32 rep0 = vs->Reps[0], rep1 = vs->Reps[1], rep2 = vs->Reps[2], rep3 = vs->Reps[3];
int len = vs->RemainLen;
UInt32 globalPos = vs->GlobalPos;
UInt32 distanceLimit = vs->DistanceLimit;
Byte *dictionary = vs->Dictionary;
UInt32 dictionarySize = vs->Properties.DictionarySize;
UInt32 dictionaryPos = vs->DictionaryPos;
Byte tempDictionary[4];
#ifndef _LZMA_IN_CB
*inSizeProcessed = 0;
#endif
*outSizeProcessed = 0;
if (len == kLzmaStreamWasFinishedId)
return LZMA_RESULT_OK;
if (dictionarySize == 0)
{
dictionary = tempDictionary;
dictionarySize = 1;
tempDictionary[0] = vs->TempDictionary[0];
}
if (len == kLzmaNeedInitId)
{
{
UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp));
UInt32 i;
for (i = 0; i < numProbs; i++)
p[i] = kBitModelTotal >> 1;
rep0 = rep1 = rep2 = rep3 = 1;
state = 0;
globalPos = 0;
distanceLimit = 0;
dictionaryPos = 0;
dictionary[dictionarySize - 1] = 0;
#ifdef _LZMA_IN_CB
RC_INIT;
#else
RC_INIT(inStream, inSize);
#endif
}
len = 0;
}
while(len != 0 && nowPos < outSize)
{
UInt32 pos = dictionaryPos - rep0;
if (pos >= dictionarySize)
pos += dictionarySize;
outStream[nowPos++] = dictionary[dictionaryPos] = dictionary[pos];
if (++dictionaryPos == dictionarySize)
dictionaryPos = 0;
len--;
}
if (dictionaryPos == 0)
previousByte = dictionary[dictionarySize - 1];
else
previousByte = dictionary[dictionaryPos - 1];
#else /* if !_LZMA_OUT_READ */
int state = 0;
UInt32 rep0 = 1, rep1 = 1, rep2 = 1, rep3 = 1;
int len = 0;
const Byte *Buffer;
const Byte *BufferLim;
UInt32 Range;
UInt32 Code;
#ifndef _LZMA_IN_CB
*inSizeProcessed = 0;
#endif
*outSizeProcessed = 0;
{
UInt32 i;
UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp));
for (i = 0; i < numProbs; i++)
p[i] = kBitModelTotal >> 1;
}
#ifdef _LZMA_IN_CB
RC_INIT;
#else
RC_INIT(inStream, inSize);
#endif
#endif /* _LZMA_OUT_READ */
NextReport = nowPos + STATUS_EXTRACT_NOTIFY_SIZE;
StartExtract = nowPos;
if (statusupdate)
{
statusupdate(LZMADECODE_START,0, 0, StatusInfo);
}
while(nowPos < outSize)
{
CProb *prob;
UInt32 bound;
int posState = (int)(
(nowPos
#ifdef _LZMA_OUT_READ
+ globalPos
#endif
)
& posStateMask);
if (statusupdate && nowPos > NextReport)
{
NextReport += STATUS_EXTRACT_NOTIFY_SIZE;
statusupdate(LZMADECODE_UPDATE,nowPos - StartExtract, outSize - StartExtract, StatusInfo);
}
prob = p + IsMatch + (state << kNumPosBitsMax) + posState;
IfBit0(prob)
{
int symbol = 1;
UpdateBit0(prob)
prob = p + Literal + (LZMA_LIT_SIZE *
(((
(nowPos
#ifdef _LZMA_OUT_READ
+ globalPos
#endif
)
& literalPosMask) << lc) + (previousByte >> (8 - lc))));
if (state >= kNumLitStates)
{
int matchByte;
#ifdef _LZMA_OUT_READ
UInt32 pos = dictionaryPos - rep0;
if (pos >= dictionarySize)
pos += dictionarySize;
matchByte = dictionary[pos];
#else
matchByte = outStream[nowPos - rep0];
#endif
do
{
int bit;
CProb *probLit;
matchByte <<= 1;
bit = (matchByte & 0x100);
probLit = prob + 0x100 + bit + symbol;
RC_GET_BIT2(probLit, symbol, if (bit != 0) break, if (bit == 0) break)
}
while (symbol < 0x100);
}
while (symbol < 0x100)
{
CProb *probLit = prob + symbol;
RC_GET_BIT(probLit, symbol)
}
previousByte = symbol & 0xFF;
outStream[nowPos++] = previousByte;
#ifdef _LZMA_OUT_READ
if (distanceLimit < dictionarySize)
distanceLimit++;
dictionary[dictionaryPos] = previousByte;
if (++dictionaryPos == dictionarySize)
dictionaryPos = 0;
#endif
if (state < 4) state = 0;
else if (state < 10) state -= 3;
else state -= 6;
}
else
{
UpdateBit1(prob);
prob = p + IsRep + state;
IfBit0(prob)
{
UpdateBit0(prob);
rep3 = rep2;
rep2 = rep1;
rep1 = rep0;
state = state < kNumLitStates ? 0 : 3;
prob = p + LenCoder;
}
else
{
UpdateBit1(prob);
prob = p + IsRepG0 + state;
IfBit0(prob)
{
UpdateBit0(prob);
prob = p + IsRep0Long + (state << kNumPosBitsMax) + posState;
IfBit0(prob)
{
#ifdef _LZMA_OUT_READ
UInt32 pos;
#endif
UpdateBit0(prob);
#ifdef _LZMA_OUT_READ
if (distanceLimit == 0)
#else
if (nowPos == 0)
#endif
return LZMA_RESULT_DATA_ERROR;
state = state < kNumLitStates ? 9 : 11;
#ifdef _LZMA_OUT_READ
pos = dictionaryPos - rep0;
if (pos >= dictionarySize)
pos += dictionarySize;
previousByte = dictionary[pos];
dictionary[dictionaryPos] = previousByte;
if (++dictionaryPos == dictionarySize)
dictionaryPos = 0;
#else
previousByte = outStream[nowPos - rep0];
#endif
outStream[nowPos++] = previousByte;
#ifdef _LZMA_OUT_READ
if (distanceLimit < dictionarySize)
distanceLimit++;
#endif
continue;
}
else
{
UpdateBit1(prob);
}
}
else
{
UInt32 distance;
UpdateBit1(prob);
prob = p + IsRepG1 + state;
IfBit0(prob)
{
UpdateBit0(prob);
distance = rep1;
}
else
{
UpdateBit1(prob);
prob = p + IsRepG2 + state;
IfBit0(prob)
{
UpdateBit0(prob);
distance = rep2;
}
else
{
UpdateBit1(prob);
distance = rep3;
rep3 = rep2;
}
rep2 = rep1;
}
rep1 = rep0;
rep0 = distance;
}
state = state < kNumLitStates ? 8 : 11;
prob = p + RepLenCoder;
}
{
int numBits, offset;
CProb *probLen = prob + LenChoice;
IfBit0(probLen)
{
UpdateBit0(probLen);
probLen = prob + LenLow + (posState << kLenNumLowBits);
offset = 0;
numBits = kLenNumLowBits;
}
else
{
UpdateBit1(probLen);
probLen = prob + LenChoice2;
IfBit0(probLen)
{
UpdateBit0(probLen);
probLen = prob + LenMid + (posState << kLenNumMidBits);
offset = kLenNumLowSymbols;
numBits = kLenNumMidBits;
}
else
{
UpdateBit1(probLen);
probLen = prob + LenHigh;
offset = kLenNumLowSymbols + kLenNumMidSymbols;
numBits = kLenNumHighBits;
}
}
RangeDecoderBitTreeDecode(probLen, numBits, len);
len += offset;
}
if (state < 4)
{
int posSlot;
state += kNumLitStates;
prob = p + PosSlot +
((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) <<
kNumPosSlotBits);
RangeDecoderBitTreeDecode(prob, kNumPosSlotBits, posSlot);
if (posSlot >= kStartPosModelIndex)
{
int numDirectBits = ((posSlot >> 1) - 1);
rep0 = (2 | ((UInt32)posSlot & 1));
if (posSlot < kEndPosModelIndex)
{
rep0 <<= numDirectBits;
prob = p + SpecPos + rep0 - posSlot - 1;
}
else
{
numDirectBits -= kNumAlignBits;
do
{
RC_NORMALIZE
Range >>= 1;
rep0 <<= 1;
if (Code >= Range)
{
Code -= Range;
rep0 |= 1;
}
}
while (--numDirectBits != 0);
prob = p + Align;
rep0 <<= kNumAlignBits;
numDirectBits = kNumAlignBits;
}
{
int i = 1;
int mi = 1;
do
{
CProb *prob3 = prob + mi;
RC_GET_BIT2(prob3, mi, ; , rep0 |= i);
i <<= 1;
}
while(--numDirectBits != 0);
}
}
else
rep0 = posSlot;
if (++rep0 == (UInt32)(0))
{
/* it's for stream version */
len = kLzmaStreamWasFinishedId;
break;
}
}
len += kMatchMinLen;
#ifdef _LZMA_OUT_READ
if (rep0 > distanceLimit)
#else
if (rep0 > nowPos)
#endif
return LZMA_RESULT_DATA_ERROR;
#ifdef _LZMA_OUT_READ
if (dictionarySize - distanceLimit > (UInt32)len)
distanceLimit += len;
else
distanceLimit = dictionarySize;
#endif
do
{
#ifdef _LZMA_OUT_READ
UInt32 pos = dictionaryPos - rep0;
if (pos >= dictionarySize)
pos += dictionarySize;
previousByte = dictionary[pos];
dictionary[dictionaryPos] = previousByte;
if (++dictionaryPos == dictionarySize)
dictionaryPos = 0;
#else
previousByte = outStream[nowPos - rep0];
#endif
len--;
outStream[nowPos++] = previousByte;
}
while(len != 0 && nowPos < outSize);
}
}
if (statusupdate)
{
statusupdate(LZMADECODE_DONE,0, 0, StatusInfo);
}
RC_NORMALIZE;
#ifdef _LZMA_OUT_READ
vs->Range = Range;
vs->Code = Code;
vs->DictionaryPos = dictionaryPos;
vs->GlobalPos = globalPos + (UInt32)nowPos;
vs->DistanceLimit = distanceLimit;
vs->Reps[0] = rep0;
vs->Reps[1] = rep1;
vs->Reps[2] = rep2;
vs->Reps[3] = rep3;
vs->State = state;
vs->RemainLen = len;
vs->TempDictionary[0] = tempDictionary[0];
#endif
#ifdef _LZMA_IN_CB
vs->Buffer = Buffer;
vs->BufferLim = BufferLim;
#else
*inSizeProcessed = (SizeT)(Buffer - inStream);
#endif
*outSizeProcessed = nowPos;
return LZMA_RESULT_OK;
}

View File

@ -1,133 +0,0 @@
/*
LzmaDecode.h
LZMA Decoder interface
LZMA SDK 4.21 Copyright (c) 1999-2005 Igor Pavlov (2005-06-08)
http://www.7-zip.org/
LZMA SDK is licensed under two licenses:
1) GNU Lesser General Public License (GNU LGPL)
2) Common Public License (CPL)
It means that you can select one of these two licenses and
follow rules of that license.
SPECIAL EXCEPTION:
Igor Pavlov, as the author of this code, expressly permits you to
statically or dynamically link your code (or bind by name) to the
interfaces of this file without subjecting your linked code to the
terms of the CPL or GNU LGPL. Any modifications or additions
to this file, however, are subject to the LGPL or CPL terms.
*/
#ifndef __LZMADECODE_H
#define __LZMADECODE_H
#include "..\status.h"
/* #define _LZMA_IN_CB */
/* Use callback for input data */
/* #define _LZMA_OUT_READ */
/* Use read function for output data */
/* #define _LZMA_PROB32 */
/* It can increase speed on some 32-bit CPUs,
but memory usage will be doubled in that case */
/* #define _LZMA_LOC_OPT */
/* Enable local speed optimizations inside code */
/* #define _LZMA_SYSTEM_SIZE_T */
/* Use system's size_t. You can use it to enable 64-bit sizes supporting*/
#ifndef UInt32
#ifdef _LZMA_UINT32_IS_ULONG
#define UInt32 unsigned long
#else
#define UInt32 unsigned int
#endif
#endif
#ifndef SizeT
#ifdef _LZMA_SYSTEM_SIZE_T
#include <stddef.h>
#define SizeT size_t
#else
#define SizeT UInt32
#endif
#endif
#ifdef _LZMA_PROB32
#define CProb UInt32
#else
#define CProb unsigned short
#endif
#define LZMA_RESULT_OK 0
#define LZMA_RESULT_DATA_ERROR 1
#ifdef _LZMA_IN_CB
typedef struct _ILzmaInCallback
{
int (*Read)(void *object, const unsigned char **buffer, SizeT *bufferSize);
} ILzmaInCallback;
#endif
#define LZMA_BASE_SIZE 1846
#define LZMA_LIT_SIZE 768
#define LZMA_PROPERTIES_SIZE 5
typedef struct _CLzmaProperties
{
int lc;
int lp;
int pb;
#ifdef _LZMA_OUT_READ
UInt32 DictionarySize;
#endif
}CLzmaProperties;
int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size);
#define LzmaGetNumProbs(Properties) (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << ((Properties)->lc + (Properties)->lp)))
#define kLzmaNeedInitId (-2)
typedef struct _CLzmaDecoderState
{
CLzmaProperties Properties;
CProb *Probs;
#ifdef _LZMA_IN_CB
const unsigned char *Buffer;
const unsigned char *BufferLim;
#endif
#ifdef _LZMA_OUT_READ
unsigned char *Dictionary;
UInt32 Range;
UInt32 Code;
UInt32 DictionaryPos;
UInt32 GlobalPos;
UInt32 DistanceLimit;
UInt32 Reps[4];
int State;
int RemainLen;
unsigned char TempDictionary[4];
#endif
} CLzmaDecoderState;
#ifdef _LZMA_OUT_READ
#define LzmaDecoderInit(vs) { (vs)->RemainLen = kLzmaNeedInitId; }
#endif
int LzmaDecode(CLzmaDecoderState *vs,
#ifdef _LZMA_IN_CB
ILzmaInCallback *inCallback,
#else
const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed,
#endif
unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed, LP7ZSTATUS_UPDATE statusupdate, void * StatusInfo);
#endif

View File

@ -0,0 +1,168 @@
/* CpuArch.c -- CPU specific code
2010-10-26: Igor Pavlov : Public domain */
#include "CpuArch.h"
#ifdef MY_CPU_X86_OR_AMD64
#if (defined(_MSC_VER) && !defined(MY_CPU_AMD64)) || defined(__GNUC__)
#define USE_ASM
#endif
#if defined(USE_ASM) && !defined(MY_CPU_AMD64)
static UInt32 CheckFlag(UInt32 flag)
{
#ifdef _MSC_VER
__asm pushfd;
__asm pop EAX;
__asm mov EDX, EAX;
__asm xor EAX, flag;
__asm push EAX;
__asm popfd;
__asm pushfd;
__asm pop EAX;
__asm xor EAX, EDX;
__asm push EDX;
__asm popfd;
__asm and flag, EAX;
#else
__asm__ __volatile__ (
"pushf\n\t"
"pop %%EAX\n\t"
"movl %%EAX,%%EDX\n\t"
"xorl %0,%%EAX\n\t"
"push %%EAX\n\t"
"popf\n\t"
"pushf\n\t"
"pop %%EAX\n\t"
"xorl %%EDX,%%EAX\n\t"
"push %%EDX\n\t"
"popf\n\t"
"andl %%EAX, %0\n\t":
"=c" (flag) : "c" (flag));
#endif
return flag;
}
#define CHECK_CPUID_IS_SUPPORTED if (CheckFlag(1 << 18) == 0 || CheckFlag(1 << 21) == 0) return False;
#else
#define CHECK_CPUID_IS_SUPPORTED
#endif
static void MyCPUID(UInt32 function, UInt32 *a, UInt32 *b, UInt32 *c, UInt32 *d)
{
#ifdef USE_ASM
#ifdef _MSC_VER
UInt32 a2, b2, c2, d2;
__asm xor EBX, EBX;
__asm xor ECX, ECX;
__asm xor EDX, EDX;
__asm mov EAX, function;
__asm cpuid;
__asm mov a2, EAX;
__asm mov b2, EBX;
__asm mov c2, ECX;
__asm mov d2, EDX;
*a = a2;
*b = b2;
*c = c2;
*d = d2;
#else
__asm__ __volatile__ (
"cpuid"
: "=a" (*a) ,
"=b" (*b) ,
"=c" (*c) ,
"=d" (*d)
: "0" (function)) ;
#endif
#else
int CPUInfo[4];
__cpuid(CPUInfo, function);
*a = CPUInfo[0];
*b = CPUInfo[1];
*c = CPUInfo[2];
*d = CPUInfo[3];
#endif
}
Bool x86cpuid_CheckAndRead(Cx86cpuid *p)
{
CHECK_CPUID_IS_SUPPORTED
MyCPUID(0, &p->maxFunc, &p->vendor[0], &p->vendor[2], &p->vendor[1]);
MyCPUID(1, &p->ver, &p->b, &p->c, &p->d);
return True;
}
static UInt32 kVendors[][3] =
{
{ 0x756E6547, 0x49656E69, 0x6C65746E},
{ 0x68747541, 0x69746E65, 0x444D4163},
{ 0x746E6543, 0x48727561, 0x736C7561}
};
int x86cpuid_GetFirm(const Cx86cpuid *p)
{
unsigned i;
for (i = 0; i < sizeof(kVendors) / sizeof(kVendors[i]); i++)
{
const UInt32 *v = kVendors[i];
if (v[0] == p->vendor[0] &&
v[1] == p->vendor[1] &&
v[2] == p->vendor[2])
return (int)i;
}
return -1;
}
Bool CPU_Is_InOrder()
{
Cx86cpuid p;
int firm;
UInt32 family, model;
if (!x86cpuid_CheckAndRead(&p))
return True;
family = x86cpuid_GetFamily(&p);
model = x86cpuid_GetModel(&p);
firm = x86cpuid_GetFirm(&p);
switch (firm)
{
case CPU_FIRM_INTEL: return (family < 6 || (family == 6 && model == 0x100C));
case CPU_FIRM_AMD: return (family < 5 || (family == 5 && (model < 6 || model == 0xA)));
case CPU_FIRM_VIA: return (family < 6 || (family == 6 && model < 0xF));
}
return True;
}
#if !defined(MY_CPU_AMD64) && defined(_WIN32)
static Bool CPU_Sys_Is_SSE_Supported()
{
OSVERSIONINFO vi;
vi.dwOSVersionInfoSize = sizeof(vi);
if (!GetVersionEx(&vi))
return False;
return (vi.dwMajorVersion >= 5);
}
#define CHECK_SYS_SSE_SUPPORT if (!CPU_Sys_Is_SSE_Supported()) return False;
#else
#define CHECK_SYS_SSE_SUPPORT
#endif
Bool CPU_Is_Aes_Supported()
{
Cx86cpuid p;
CHECK_SYS_SSE_SUPPORT
if (!x86cpuid_CheckAndRead(&p))
return False;
return (p.c >> 25) & 1;
}
#endif

View File

@ -0,0 +1,155 @@
/* CpuArch.h -- CPU specific code
2010-10-26: Igor Pavlov : Public domain */
#ifndef __CPU_ARCH_H
#define __CPU_ARCH_H
#include "Types.h"
EXTERN_C_BEGIN
/*
MY_CPU_LE means that CPU is LITTLE ENDIAN.
If MY_CPU_LE is not defined, we don't know about that property of platform (it can be LITTLE ENDIAN).
MY_CPU_LE_UNALIGN means that CPU is LITTLE ENDIAN and CPU supports unaligned memory accesses.
If MY_CPU_LE_UNALIGN is not defined, we don't know about these properties of platform.
*/
#if defined(_M_X64) || defined(_M_AMD64) || defined(__x86_64__)
#define MY_CPU_AMD64
#endif
#if defined(MY_CPU_AMD64) || defined(_M_IA64)
#define MY_CPU_64BIT
#endif
#if defined(_M_IX86) || defined(__i386__)
#define MY_CPU_X86
#endif
#if defined(MY_CPU_X86) || defined(MY_CPU_AMD64)
#define MY_CPU_X86_OR_AMD64
#endif
#if defined(MY_CPU_X86) || defined(_M_ARM)
#define MY_CPU_32BIT
#endif
#if defined(_WIN32) && defined(_M_ARM)
#define MY_CPU_ARM_LE
#endif
#if defined(_WIN32) && defined(_M_IA64)
#define MY_CPU_IA64_LE
#endif
#if defined(MY_CPU_X86_OR_AMD64)
#define MY_CPU_LE_UNALIGN
#endif
#if defined(MY_CPU_X86_OR_AMD64) || defined(MY_CPU_ARM_LE) || defined(MY_CPU_IA64_LE) || defined(__ARMEL__) || defined(__MIPSEL__) || defined(__LITTLE_ENDIAN__)
#define MY_CPU_LE
#endif
#if defined(__BIG_ENDIAN__)
#define MY_CPU_BE
#endif
#if defined(MY_CPU_LE) && defined(MY_CPU_BE)
Stop_Compiling_Bad_Endian
#endif
#ifdef MY_CPU_LE_UNALIGN
#define GetUi16(p) (*(const UInt16 *)(p))
#define GetUi32(p) (*(const UInt32 *)(p))
#define GetUi64(p) (*(const UInt64 *)(p))
#define SetUi16(p, d) *(UInt16 *)(p) = (d);
#define SetUi32(p, d) *(UInt32 *)(p) = (d);
#define SetUi64(p, d) *(UInt64 *)(p) = (d);
#else
#define GetUi16(p) (((const Byte *)(p))[0] | ((UInt16)((const Byte *)(p))[1] << 8))
#define GetUi32(p) ( \
((const Byte *)(p))[0] | \
((UInt32)((const Byte *)(p))[1] << 8) | \
((UInt32)((const Byte *)(p))[2] << 16) | \
((UInt32)((const Byte *)(p))[3] << 24))
#define GetUi64(p) (GetUi32(p) | ((UInt64)GetUi32(((const Byte *)(p)) + 4) << 32))
#define SetUi16(p, d) { UInt32 _x_ = (d); \
((Byte *)(p))[0] = (Byte)_x_; \
((Byte *)(p))[1] = (Byte)(_x_ >> 8); }
#define SetUi32(p, d) { UInt32 _x_ = (d); \
((Byte *)(p))[0] = (Byte)_x_; \
((Byte *)(p))[1] = (Byte)(_x_ >> 8); \
((Byte *)(p))[2] = (Byte)(_x_ >> 16); \
((Byte *)(p))[3] = (Byte)(_x_ >> 24); }
#define SetUi64(p, d) { UInt64 _x64_ = (d); \
SetUi32(p, (UInt32)_x64_); \
SetUi32(((Byte *)(p)) + 4, (UInt32)(_x64_ >> 32)); }
#endif
#if defined(MY_CPU_LE_UNALIGN) && defined(_WIN64) && (_MSC_VER >= 1300)
#pragma intrinsic(_byteswap_ulong)
#pragma intrinsic(_byteswap_uint64)
#define GetBe32(p) _byteswap_ulong(*(const UInt32 *)(const Byte *)(p))
#define GetBe64(p) _byteswap_uint64(*(const UInt64 *)(const Byte *)(p))
#else
#define GetBe32(p) ( \
((UInt32)((const Byte *)(p))[0] << 24) | \
((UInt32)((const Byte *)(p))[1] << 16) | \
((UInt32)((const Byte *)(p))[2] << 8) | \
((const Byte *)(p))[3] )
#define GetBe64(p) (((UInt64)GetBe32(p) << 32) | GetBe32(((const Byte *)(p)) + 4))
#endif
#define GetBe16(p) (((UInt16)((const Byte *)(p))[0] << 8) | ((const Byte *)(p))[1])
#ifdef MY_CPU_X86_OR_AMD64
typedef struct
{
UInt32 maxFunc;
UInt32 vendor[3];
UInt32 ver;
UInt32 b;
UInt32 c;
UInt32 d;
} Cx86cpuid;
enum
{
CPU_FIRM_INTEL,
CPU_FIRM_AMD,
CPU_FIRM_VIA
};
Bool x86cpuid_CheckAndRead(Cx86cpuid *p);
int x86cpuid_GetFirm(const Cx86cpuid *p);
#define x86cpuid_GetFamily(p) (((p)->ver >> 8) & 0xFF00F)
#define x86cpuid_GetModel(p) (((p)->ver >> 4) & 0xF00F)
#define x86cpuid_GetStepping(p) ((p)->ver & 0xF)
Bool CPU_Is_InOrder();
Bool CPU_Is_Aes_Supported();
#endif
EXTERN_C_END
#endif

View File

@ -0,0 +1,62 @@
/* Delta.c -- Delta converter
2009-05-26 : Igor Pavlov : Public domain */
#include "Delta.h"
void Delta_Init(Byte *state)
{
unsigned i;
for (i = 0; i < DELTA_STATE_SIZE; i++)
state[i] = 0;
}
static void MyMemCpy(Byte *dest, const Byte *src, unsigned size)
{
unsigned i;
for (i = 0; i < size; i++)
dest[i] = src[i];
}
void Delta_Encode(Byte *state, unsigned delta, Byte *data, SizeT size)
{
Byte buf[DELTA_STATE_SIZE];
unsigned j = 0;
MyMemCpy(buf, state, delta);
{
SizeT i;
for (i = 0; i < size;)
{
for (j = 0; j < delta && i < size; i++, j++)
{
Byte b = data[i];
data[i] = (Byte)(b - buf[j]);
buf[j] = b;
}
}
}
if (j == delta)
j = 0;
MyMemCpy(state, buf + j, delta - j);
MyMemCpy(state + delta - j, buf, j);
}
void Delta_Decode(Byte *state, unsigned delta, Byte *data, SizeT size)
{
Byte buf[DELTA_STATE_SIZE];
unsigned j = 0;
MyMemCpy(buf, state, delta);
{
SizeT i;
for (i = 0; i < size;)
{
for (j = 0; j < delta && i < size; i++, j++)
{
buf[j] = data[i] = (Byte)(buf[j] + data[i]);
}
}
}
if (j == delta)
j = 0;
MyMemCpy(state, buf + j, delta - j);
MyMemCpy(state + delta - j, buf, j);
}

View File

@ -0,0 +1,23 @@
/* Delta.h -- Delta converter
2009-04-15 : Igor Pavlov : Public domain */
#ifndef __DELTA_H
#define __DELTA_H
#include "Types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define DELTA_STATE_SIZE 256
void Delta_Init(Byte *state);
void Delta_Encode(Byte *state, unsigned delta, Byte *data, SizeT size);
void Delta_Decode(Byte *state, unsigned delta, Byte *data, SizeT size);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,761 @@
/* LzFind.c -- Match finder for LZ algorithms
2009-04-22 : Igor Pavlov : Public domain */
#include <string.h>
#include "LzFind.h"
#include "LzHash.h"
#define kEmptyHashValue 0
#define kMaxValForNormalize ((UInt32)0xFFFFFFFF)
#define kNormalizeStepMin (1 << 10) /* it must be power of 2 */
#define kNormalizeMask (~(kNormalizeStepMin - 1))
#define kMaxHistorySize ((UInt32)3 << 30)
#define kStartMaxLen 3
static void LzInWindow_Free(CMatchFinder *p, ISzAlloc *alloc)
{
if (!p->directInput)
{
alloc->Free(alloc, p->bufferBase);
p->bufferBase = 0;
}
}
/* keepSizeBefore + keepSizeAfter + keepSizeReserv must be < 4G) */
static int LzInWindow_Create(CMatchFinder *p, UInt32 keepSizeReserv, ISzAlloc *alloc)
{
UInt32 blockSize = p->keepSizeBefore + p->keepSizeAfter + keepSizeReserv;
if (p->directInput)
{
p->blockSize = blockSize;
return 1;
}
if (p->bufferBase == 0 || p->blockSize != blockSize)
{
LzInWindow_Free(p, alloc);
p->blockSize = blockSize;
p->bufferBase = (Byte *)alloc->Alloc(alloc, (size_t)blockSize);
}
return (p->bufferBase != 0);
}
Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p) { return p->buffer; }
Byte MatchFinder_GetIndexByte(CMatchFinder *p, Int32 index) { return p->buffer[index]; }
UInt32 MatchFinder_GetNumAvailableBytes(CMatchFinder *p) { return p->streamPos - p->pos; }
void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue)
{
p->posLimit -= subValue;
p->pos -= subValue;
p->streamPos -= subValue;
}
static void MatchFinder_ReadBlock(CMatchFinder *p)
{
if (p->streamEndWasReached || p->result != SZ_OK)
return;
if (p->directInput)
{
UInt32 curSize = 0xFFFFFFFF - p->streamPos;
if (curSize > p->directInputRem)
curSize = (UInt32)p->directInputRem;
p->directInputRem -= curSize;
p->streamPos += curSize;
if (p->directInputRem == 0)
p->streamEndWasReached = 1;
return;
}
for (;;)
{
Byte *dest = p->buffer + (p->streamPos - p->pos);
size_t size = (p->bufferBase + p->blockSize - dest);
if (size == 0)
return;
p->result = p->stream->Read(p->stream, dest, &size);
if (p->result != SZ_OK)
return;
if (size == 0)
{
p->streamEndWasReached = 1;
return;
}
p->streamPos += (UInt32)size;
if (p->streamPos - p->pos > p->keepSizeAfter)
return;
}
}
void MatchFinder_MoveBlock(CMatchFinder *p)
{
memmove(p->bufferBase,
p->buffer - p->keepSizeBefore,
(size_t)(p->streamPos - p->pos + p->keepSizeBefore));
p->buffer = p->bufferBase + p->keepSizeBefore;
}
int MatchFinder_NeedMove(CMatchFinder *p)
{
if (p->directInput)
return 0;
/* if (p->streamEndWasReached) return 0; */
return ((size_t)(p->bufferBase + p->blockSize - p->buffer) <= p->keepSizeAfter);
}
void MatchFinder_ReadIfRequired(CMatchFinder *p)
{
if (p->streamEndWasReached)
return;
if (p->keepSizeAfter >= p->streamPos - p->pos)
MatchFinder_ReadBlock(p);
}
static void MatchFinder_CheckAndMoveAndRead(CMatchFinder *p)
{
if (MatchFinder_NeedMove(p))
MatchFinder_MoveBlock(p);
MatchFinder_ReadBlock(p);
}
static void MatchFinder_SetDefaultSettings(CMatchFinder *p)
{
p->cutValue = 32;
p->btMode = 1;
p->numHashBytes = 4;
p->bigHash = 0;
}
#define kCrcPoly 0xEDB88320
void MatchFinder_Construct(CMatchFinder *p)
{
UInt32 i;
p->bufferBase = 0;
p->directInput = 0;
p->hash = 0;
MatchFinder_SetDefaultSettings(p);
for (i = 0; i < 256; i++)
{
UInt32 r = i;
int j;
for (j = 0; j < 8; j++)
r = (r >> 1) ^ (kCrcPoly & ~((r & 1) - 1));
p->crc[i] = r;
}
}
static void MatchFinder_FreeThisClassMemory(CMatchFinder *p, ISzAlloc *alloc)
{
alloc->Free(alloc, p->hash);
p->hash = 0;
}
void MatchFinder_Free(CMatchFinder *p, ISzAlloc *alloc)
{
MatchFinder_FreeThisClassMemory(p, alloc);
LzInWindow_Free(p, alloc);
}
static CLzRef* AllocRefs(UInt32 num, ISzAlloc *alloc)
{
size_t sizeInBytes = (size_t)num * sizeof(CLzRef);
if (sizeInBytes / sizeof(CLzRef) != num)
return 0;
return (CLzRef *)alloc->Alloc(alloc, sizeInBytes);
}
int MatchFinder_Create(CMatchFinder *p, UInt32 historySize,
UInt32 keepAddBufferBefore, UInt32 matchMaxLen, UInt32 keepAddBufferAfter,
ISzAlloc *alloc)
{
UInt32 sizeReserv;
if (historySize > kMaxHistorySize)
{
MatchFinder_Free(p, alloc);
return 0;
}
sizeReserv = historySize >> 1;
if (historySize > ((UInt32)2 << 30))
sizeReserv = historySize >> 2;
sizeReserv += (keepAddBufferBefore + matchMaxLen + keepAddBufferAfter) / 2 + (1 << 19);
p->keepSizeBefore = historySize + keepAddBufferBefore + 1;
p->keepSizeAfter = matchMaxLen + keepAddBufferAfter;
/* we need one additional byte, since we use MoveBlock after pos++ and before dictionary using */
if (LzInWindow_Create(p, sizeReserv, alloc))
{
UInt32 newCyclicBufferSize = historySize + 1;
UInt32 hs;
p->matchMaxLen = matchMaxLen;
{
p->fixedHashSize = 0;
if (p->numHashBytes == 2)
hs = (1 << 16) - 1;
else
{
hs = historySize - 1;
hs |= (hs >> 1);
hs |= (hs >> 2);
hs |= (hs >> 4);
hs |= (hs >> 8);
hs >>= 1;
hs |= 0xFFFF; /* don't change it! It's required for Deflate */
if (hs > (1 << 24))
{
if (p->numHashBytes == 3)
hs = (1 << 24) - 1;
else
hs >>= 1;
}
}
p->hashMask = hs;
hs++;
if (p->numHashBytes > 2) p->fixedHashSize += kHash2Size;
if (p->numHashBytes > 3) p->fixedHashSize += kHash3Size;
if (p->numHashBytes > 4) p->fixedHashSize += kHash4Size;
hs += p->fixedHashSize;
}
{
UInt32 prevSize = p->hashSizeSum + p->numSons;
UInt32 newSize;
p->historySize = historySize;
p->hashSizeSum = hs;
p->cyclicBufferSize = newCyclicBufferSize;
p->numSons = (p->btMode ? newCyclicBufferSize * 2 : newCyclicBufferSize);
newSize = p->hashSizeSum + p->numSons;
if (p->hash != 0 && prevSize == newSize)
return 1;
MatchFinder_FreeThisClassMemory(p, alloc);
p->hash = AllocRefs(newSize, alloc);
if (p->hash != 0)
{
p->son = p->hash + p->hashSizeSum;
return 1;
}
}
}
MatchFinder_Free(p, alloc);
return 0;
}
static void MatchFinder_SetLimits(CMatchFinder *p)
{
UInt32 limit = kMaxValForNormalize - p->pos;
UInt32 limit2 = p->cyclicBufferSize - p->cyclicBufferPos;
if (limit2 < limit)
limit = limit2;
limit2 = p->streamPos - p->pos;
if (limit2 <= p->keepSizeAfter)
{
if (limit2 > 0)
limit2 = 1;
}
else
limit2 -= p->keepSizeAfter;
if (limit2 < limit)
limit = limit2;
{
UInt32 lenLimit = p->streamPos - p->pos;
if (lenLimit > p->matchMaxLen)
lenLimit = p->matchMaxLen;
p->lenLimit = lenLimit;
}
p->posLimit = p->pos + limit;
}
void MatchFinder_Init(CMatchFinder *p)
{
UInt32 i;
for (i = 0; i < p->hashSizeSum; i++)
p->hash[i] = kEmptyHashValue;
p->cyclicBufferPos = 0;
p->buffer = p->bufferBase;
p->pos = p->streamPos = p->cyclicBufferSize;
p->result = SZ_OK;
p->streamEndWasReached = 0;
MatchFinder_ReadBlock(p);
MatchFinder_SetLimits(p);
}
static UInt32 MatchFinder_GetSubValue(CMatchFinder *p)
{
return (p->pos - p->historySize - 1) & kNormalizeMask;
}
void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems)
{
UInt32 i;
for (i = 0; i < numItems; i++)
{
UInt32 value = items[i];
if (value <= subValue)
value = kEmptyHashValue;
else
value -= subValue;
items[i] = value;
}
}
static void MatchFinder_Normalize(CMatchFinder *p)
{
UInt32 subValue = MatchFinder_GetSubValue(p);
MatchFinder_Normalize3(subValue, p->hash, p->hashSizeSum + p->numSons);
MatchFinder_ReduceOffsets(p, subValue);
}
static void MatchFinder_CheckLimits(CMatchFinder *p)
{
if (p->pos == kMaxValForNormalize)
MatchFinder_Normalize(p);
if (!p->streamEndWasReached && p->keepSizeAfter == p->streamPos - p->pos)
MatchFinder_CheckAndMoveAndRead(p);
if (p->cyclicBufferPos == p->cyclicBufferSize)
p->cyclicBufferPos = 0;
MatchFinder_SetLimits(p);
}
static UInt32 * Hc_GetMatchesSpec(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 cutValue,
UInt32 *distances, UInt32 maxLen)
{
son[_cyclicBufferPos] = curMatch;
for (;;)
{
UInt32 delta = pos - curMatch;
if (cutValue-- == 0 || delta >= _cyclicBufferSize)
return distances;
{
const Byte *pb = cur - delta;
curMatch = son[_cyclicBufferPos - delta + ((delta > _cyclicBufferPos) ? _cyclicBufferSize : 0)];
if (pb[maxLen] == cur[maxLen] && *pb == *cur)
{
UInt32 len = 0;
while (++len != lenLimit)
if (pb[len] != cur[len])
break;
if (maxLen < len)
{
*distances++ = maxLen = len;
*distances++ = delta - 1;
if (len == lenLimit)
return distances;
}
}
}
}
}
UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 cutValue,
UInt32 *distances, UInt32 maxLen)
{
CLzRef *ptr0 = son + (_cyclicBufferPos << 1) + 1;
CLzRef *ptr1 = son + (_cyclicBufferPos << 1);
UInt32 len0 = 0, len1 = 0;
for (;;)
{
UInt32 delta = pos - curMatch;
if (cutValue-- == 0 || delta >= _cyclicBufferSize)
{
*ptr0 = *ptr1 = kEmptyHashValue;
return distances;
}
{
CLzRef *pair = son + ((_cyclicBufferPos - delta + ((delta > _cyclicBufferPos) ? _cyclicBufferSize : 0)) << 1);
const Byte *pb = cur - delta;
UInt32 len = (len0 < len1 ? len0 : len1);
if (pb[len] == cur[len])
{
if (++len != lenLimit && pb[len] == cur[len])
while (++len != lenLimit)
if (pb[len] != cur[len])
break;
if (maxLen < len)
{
*distances++ = maxLen = len;
*distances++ = delta - 1;
if (len == lenLimit)
{
*ptr1 = pair[0];
*ptr0 = pair[1];
return distances;
}
}
}
if (pb[len] < cur[len])
{
*ptr1 = curMatch;
ptr1 = pair + 1;
curMatch = *ptr1;
len1 = len;
}
else
{
*ptr0 = curMatch;
ptr0 = pair;
curMatch = *ptr0;
len0 = len;
}
}
}
}
static void SkipMatchesSpec(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 cutValue)
{
CLzRef *ptr0 = son + (_cyclicBufferPos << 1) + 1;
CLzRef *ptr1 = son + (_cyclicBufferPos << 1);
UInt32 len0 = 0, len1 = 0;
for (;;)
{
UInt32 delta = pos - curMatch;
if (cutValue-- == 0 || delta >= _cyclicBufferSize)
{
*ptr0 = *ptr1 = kEmptyHashValue;
return;
}
{
CLzRef *pair = son + ((_cyclicBufferPos - delta + ((delta > _cyclicBufferPos) ? _cyclicBufferSize : 0)) << 1);
const Byte *pb = cur - delta;
UInt32 len = (len0 < len1 ? len0 : len1);
if (pb[len] == cur[len])
{
while (++len != lenLimit)
if (pb[len] != cur[len])
break;
{
if (len == lenLimit)
{
*ptr1 = pair[0];
*ptr0 = pair[1];
return;
}
}
}
if (pb[len] < cur[len])
{
*ptr1 = curMatch;
ptr1 = pair + 1;
curMatch = *ptr1;
len1 = len;
}
else
{
*ptr0 = curMatch;
ptr0 = pair;
curMatch = *ptr0;
len0 = len;
}
}
}
}
#define MOVE_POS \
++p->cyclicBufferPos; \
p->buffer++; \
if (++p->pos == p->posLimit) MatchFinder_CheckLimits(p);
#define MOVE_POS_RET MOVE_POS return offset;
static void MatchFinder_MovePos(CMatchFinder *p) { MOVE_POS; }
#define GET_MATCHES_HEADER2(minLen, ret_op) \
UInt32 lenLimit; UInt32 hashValue; const Byte *cur; UInt32 curMatch; \
lenLimit = p->lenLimit; { if (lenLimit < minLen) { MatchFinder_MovePos(p); ret_op; }} \
cur = p->buffer;
#define GET_MATCHES_HEADER(minLen) GET_MATCHES_HEADER2(minLen, return 0)
#define SKIP_HEADER(minLen) GET_MATCHES_HEADER2(minLen, continue)
#define MF_PARAMS(p) p->pos, p->buffer, p->son, p->cyclicBufferPos, p->cyclicBufferSize, p->cutValue
#define GET_MATCHES_FOOTER(offset, maxLen) \
offset = (UInt32)(GetMatchesSpec1(lenLimit, curMatch, MF_PARAMS(p), \
distances + offset, maxLen) - distances); MOVE_POS_RET;
#define SKIP_FOOTER \
SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p)); MOVE_POS;
static UInt32 Bt2_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
{
UInt32 offset;
GET_MATCHES_HEADER(2)
HASH2_CALC;
curMatch = p->hash[hashValue];
p->hash[hashValue] = p->pos;
offset = 0;
GET_MATCHES_FOOTER(offset, 1)
}
UInt32 Bt3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
{
UInt32 offset;
GET_MATCHES_HEADER(3)
HASH_ZIP_CALC;
curMatch = p->hash[hashValue];
p->hash[hashValue] = p->pos;
offset = 0;
GET_MATCHES_FOOTER(offset, 2)
}
static UInt32 Bt3_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
{
UInt32 hash2Value, delta2, maxLen, offset;
GET_MATCHES_HEADER(3)
HASH3_CALC;
delta2 = p->pos - p->hash[hash2Value];
curMatch = p->hash[kFix3HashSize + hashValue];
p->hash[hash2Value] =
p->hash[kFix3HashSize + hashValue] = p->pos;
maxLen = 2;
offset = 0;
if (delta2 < p->cyclicBufferSize && *(cur - delta2) == *cur)
{
for (; maxLen != lenLimit; maxLen++)
if (cur[(ptrdiff_t)maxLen - delta2] != cur[maxLen])
break;
distances[0] = maxLen;
distances[1] = delta2 - 1;
offset = 2;
if (maxLen == lenLimit)
{
SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p));
MOVE_POS_RET;
}
}
GET_MATCHES_FOOTER(offset, maxLen)
}
static UInt32 Bt4_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
{
UInt32 hash2Value, hash3Value, delta2, delta3, maxLen, offset;
GET_MATCHES_HEADER(4)
HASH4_CALC;
delta2 = p->pos - p->hash[ hash2Value];
delta3 = p->pos - p->hash[kFix3HashSize + hash3Value];
curMatch = p->hash[kFix4HashSize + hashValue];
p->hash[ hash2Value] =
p->hash[kFix3HashSize + hash3Value] =
p->hash[kFix4HashSize + hashValue] = p->pos;
maxLen = 1;
offset = 0;
if (delta2 < p->cyclicBufferSize && *(cur - delta2) == *cur)
{
distances[0] = maxLen = 2;
distances[1] = delta2 - 1;
offset = 2;
}
if (delta2 != delta3 && delta3 < p->cyclicBufferSize && *(cur - delta3) == *cur)
{
maxLen = 3;
distances[offset + 1] = delta3 - 1;
offset += 2;
delta2 = delta3;
}
if (offset != 0)
{
for (; maxLen != lenLimit; maxLen++)
if (cur[(ptrdiff_t)maxLen - delta2] != cur[maxLen])
break;
distances[offset - 2] = maxLen;
if (maxLen == lenLimit)
{
SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p));
MOVE_POS_RET;
}
}
if (maxLen < 3)
maxLen = 3;
GET_MATCHES_FOOTER(offset, maxLen)
}
static UInt32 Hc4_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
{
UInt32 hash2Value, hash3Value, delta2, delta3, maxLen, offset;
GET_MATCHES_HEADER(4)
HASH4_CALC;
delta2 = p->pos - p->hash[ hash2Value];
delta3 = p->pos - p->hash[kFix3HashSize + hash3Value];
curMatch = p->hash[kFix4HashSize + hashValue];
p->hash[ hash2Value] =
p->hash[kFix3HashSize + hash3Value] =
p->hash[kFix4HashSize + hashValue] = p->pos;
maxLen = 1;
offset = 0;
if (delta2 < p->cyclicBufferSize && *(cur - delta2) == *cur)
{
distances[0] = maxLen = 2;
distances[1] = delta2 - 1;
offset = 2;
}
if (delta2 != delta3 && delta3 < p->cyclicBufferSize && *(cur - delta3) == *cur)
{
maxLen = 3;
distances[offset + 1] = delta3 - 1;
offset += 2;
delta2 = delta3;
}
if (offset != 0)
{
for (; maxLen != lenLimit; maxLen++)
if (cur[(ptrdiff_t)maxLen - delta2] != cur[maxLen])
break;
distances[offset - 2] = maxLen;
if (maxLen == lenLimit)
{
p->son[p->cyclicBufferPos] = curMatch;
MOVE_POS_RET;
}
}
if (maxLen < 3)
maxLen = 3;
offset = (UInt32)(Hc_GetMatchesSpec(lenLimit, curMatch, MF_PARAMS(p),
distances + offset, maxLen) - (distances));
MOVE_POS_RET
}
UInt32 Hc3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
{
UInt32 offset;
GET_MATCHES_HEADER(3)
HASH_ZIP_CALC;
curMatch = p->hash[hashValue];
p->hash[hashValue] = p->pos;
offset = (UInt32)(Hc_GetMatchesSpec(lenLimit, curMatch, MF_PARAMS(p),
distances, 2) - (distances));
MOVE_POS_RET
}
static void Bt2_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
{
do
{
SKIP_HEADER(2)
HASH2_CALC;
curMatch = p->hash[hashValue];
p->hash[hashValue] = p->pos;
SKIP_FOOTER
}
while (--num != 0);
}
void Bt3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
{
do
{
SKIP_HEADER(3)
HASH_ZIP_CALC;
curMatch = p->hash[hashValue];
p->hash[hashValue] = p->pos;
SKIP_FOOTER
}
while (--num != 0);
}
static void Bt3_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
{
do
{
UInt32 hash2Value;
SKIP_HEADER(3)
HASH3_CALC;
curMatch = p->hash[kFix3HashSize + hashValue];
p->hash[hash2Value] =
p->hash[kFix3HashSize + hashValue] = p->pos;
SKIP_FOOTER
}
while (--num != 0);
}
static void Bt4_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
{
do
{
UInt32 hash2Value, hash3Value;
SKIP_HEADER(4)
HASH4_CALC;
curMatch = p->hash[kFix4HashSize + hashValue];
p->hash[ hash2Value] =
p->hash[kFix3HashSize + hash3Value] = p->pos;
p->hash[kFix4HashSize + hashValue] = p->pos;
SKIP_FOOTER
}
while (--num != 0);
}
static void Hc4_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
{
do
{
UInt32 hash2Value, hash3Value;
SKIP_HEADER(4)
HASH4_CALC;
curMatch = p->hash[kFix4HashSize + hashValue];
p->hash[ hash2Value] =
p->hash[kFix3HashSize + hash3Value] =
p->hash[kFix4HashSize + hashValue] = p->pos;
p->son[p->cyclicBufferPos] = curMatch;
MOVE_POS
}
while (--num != 0);
}
void Hc3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
{
do
{
SKIP_HEADER(3)
HASH_ZIP_CALC;
curMatch = p->hash[hashValue];
p->hash[hashValue] = p->pos;
p->son[p->cyclicBufferPos] = curMatch;
MOVE_POS
}
while (--num != 0);
}
void MatchFinder_CreateVTable(CMatchFinder *p, IMatchFinder *vTable)
{
vTable->Init = (Mf_Init_Func)MatchFinder_Init;
vTable->GetIndexByte = (Mf_GetIndexByte_Func)MatchFinder_GetIndexByte;
vTable->GetNumAvailableBytes = (Mf_GetNumAvailableBytes_Func)MatchFinder_GetNumAvailableBytes;
vTable->GetPointerToCurrentPos = (Mf_GetPointerToCurrentPos_Func)MatchFinder_GetPointerToCurrentPos;
if (!p->btMode)
{
vTable->GetMatches = (Mf_GetMatches_Func)Hc4_MatchFinder_GetMatches;
vTable->Skip = (Mf_Skip_Func)Hc4_MatchFinder_Skip;
}
else if (p->numHashBytes == 2)
{
vTable->GetMatches = (Mf_GetMatches_Func)Bt2_MatchFinder_GetMatches;
vTable->Skip = (Mf_Skip_Func)Bt2_MatchFinder_Skip;
}
else if (p->numHashBytes == 3)
{
vTable->GetMatches = (Mf_GetMatches_Func)Bt3_MatchFinder_GetMatches;
vTable->Skip = (Mf_Skip_Func)Bt3_MatchFinder_Skip;
}
else
{
vTable->GetMatches = (Mf_GetMatches_Func)Bt4_MatchFinder_GetMatches;
vTable->Skip = (Mf_Skip_Func)Bt4_MatchFinder_Skip;
}
}

View File

@ -0,0 +1,115 @@
/* LzFind.h -- Match finder for LZ algorithms
2009-04-22 : Igor Pavlov : Public domain */
#ifndef __LZ_FIND_H
#define __LZ_FIND_H
#include "Types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef UInt32 CLzRef;
typedef struct _CMatchFinder
{
Byte *buffer;
UInt32 pos;
UInt32 posLimit;
UInt32 streamPos;
UInt32 lenLimit;
UInt32 cyclicBufferPos;
UInt32 cyclicBufferSize; /* it must be = (historySize + 1) */
UInt32 matchMaxLen;
CLzRef *hash;
CLzRef *son;
UInt32 hashMask;
UInt32 cutValue;
Byte *bufferBase;
ISeqInStream *stream;
int streamEndWasReached;
UInt32 blockSize;
UInt32 keepSizeBefore;
UInt32 keepSizeAfter;
UInt32 numHashBytes;
int directInput;
size_t directInputRem;
int btMode;
int bigHash;
UInt32 historySize;
UInt32 fixedHashSize;
UInt32 hashSizeSum;
UInt32 numSons;
SRes result;
UInt32 crc[256];
} CMatchFinder;
#define Inline_MatchFinder_GetPointerToCurrentPos(p) ((p)->buffer)
#define Inline_MatchFinder_GetIndexByte(p, index) ((p)->buffer[(Int32)(index)])
#define Inline_MatchFinder_GetNumAvailableBytes(p) ((p)->streamPos - (p)->pos)
int MatchFinder_NeedMove(CMatchFinder *p);
Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p);
void MatchFinder_MoveBlock(CMatchFinder *p);
void MatchFinder_ReadIfRequired(CMatchFinder *p);
void MatchFinder_Construct(CMatchFinder *p);
/* Conditions:
historySize <= 3 GB
keepAddBufferBefore + matchMaxLen + keepAddBufferAfter < 511MB
*/
int MatchFinder_Create(CMatchFinder *p, UInt32 historySize,
UInt32 keepAddBufferBefore, UInt32 matchMaxLen, UInt32 keepAddBufferAfter,
ISzAlloc *alloc);
void MatchFinder_Free(CMatchFinder *p, ISzAlloc *alloc);
void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems);
void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue);
UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *buffer, CLzRef *son,
UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 _cutValue,
UInt32 *distances, UInt32 maxLen);
/*
Conditions:
Mf_GetNumAvailableBytes_Func must be called before each Mf_GetMatchLen_Func.
Mf_GetPointerToCurrentPos_Func's result must be used only before any other function
*/
typedef void (*Mf_Init_Func)(void *object);
typedef Byte (*Mf_GetIndexByte_Func)(void *object, Int32 index);
typedef UInt32 (*Mf_GetNumAvailableBytes_Func)(void *object);
typedef const Byte * (*Mf_GetPointerToCurrentPos_Func)(void *object);
typedef UInt32 (*Mf_GetMatches_Func)(void *object, UInt32 *distances);
typedef void (*Mf_Skip_Func)(void *object, UInt32);
typedef struct _IMatchFinder
{
Mf_Init_Func Init;
Mf_GetIndexByte_Func GetIndexByte;
Mf_GetNumAvailableBytes_Func GetNumAvailableBytes;
Mf_GetPointerToCurrentPos_Func GetPointerToCurrentPos;
Mf_GetMatches_Func GetMatches;
Mf_Skip_Func Skip;
} IMatchFinder;
void MatchFinder_CreateVTable(CMatchFinder *p, IMatchFinder *vTable);
void MatchFinder_Init(CMatchFinder *p);
UInt32 Bt3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances);
UInt32 Hc3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances);
void Bt3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num);
void Hc3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,793 @@
/* LzFindMt.c -- multithreaded Match finder for LZ algorithms
2009-09-20 : Igor Pavlov : Public domain */
#include "LzHash.h"
#include "LzFindMt.h"
void MtSync_Construct(CMtSync *p)
{
p->wasCreated = False;
p->csWasInitialized = False;
p->csWasEntered = False;
Thread_Construct(&p->thread);
Event_Construct(&p->canStart);
Event_Construct(&p->wasStarted);
Event_Construct(&p->wasStopped);
Semaphore_Construct(&p->freeSemaphore);
Semaphore_Construct(&p->filledSemaphore);
}
void MtSync_GetNextBlock(CMtSync *p)
{
if (p->needStart)
{
p->numProcessedBlocks = 1;
p->needStart = False;
p->stopWriting = False;
p->exit = False;
Event_Reset(&p->wasStarted);
Event_Reset(&p->wasStopped);
Event_Set(&p->canStart);
Event_Wait(&p->wasStarted);
}
else
{
CriticalSection_Leave(&p->cs);
p->csWasEntered = False;
p->numProcessedBlocks++;
Semaphore_Release1(&p->freeSemaphore);
}
Semaphore_Wait(&p->filledSemaphore);
CriticalSection_Enter(&p->cs);
p->csWasEntered = True;
}
/* MtSync_StopWriting must be called if Writing was started */
void MtSync_StopWriting(CMtSync *p)
{
UInt32 myNumBlocks = p->numProcessedBlocks;
if (!Thread_WasCreated(&p->thread) || p->needStart)
return;
p->stopWriting = True;
if (p->csWasEntered)
{
CriticalSection_Leave(&p->cs);
p->csWasEntered = False;
}
Semaphore_Release1(&p->freeSemaphore);
Event_Wait(&p->wasStopped);
while (myNumBlocks++ != p->numProcessedBlocks)
{
Semaphore_Wait(&p->filledSemaphore);
Semaphore_Release1(&p->freeSemaphore);
}
p->needStart = True;
}
void MtSync_Destruct(CMtSync *p)
{
if (Thread_WasCreated(&p->thread))
{
MtSync_StopWriting(p);
p->exit = True;
if (p->needStart)
Event_Set(&p->canStart);
Thread_Wait(&p->thread);
Thread_Close(&p->thread);
}
if (p->csWasInitialized)
{
CriticalSection_Delete(&p->cs);
p->csWasInitialized = False;
}
Event_Close(&p->canStart);
Event_Close(&p->wasStarted);
Event_Close(&p->wasStopped);
Semaphore_Close(&p->freeSemaphore);
Semaphore_Close(&p->filledSemaphore);
p->wasCreated = False;
}
#define RINOK_THREAD(x) { if ((x) != 0) return SZ_ERROR_THREAD; }
static SRes MtSync_Create2(CMtSync *p, unsigned (MY_STD_CALL *startAddress)(void *), void *obj, UInt32 numBlocks)
{
if (p->wasCreated)
return SZ_OK;
RINOK_THREAD(CriticalSection_Init(&p->cs));
p->csWasInitialized = True;
RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->canStart));
RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->wasStarted));
RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->wasStopped));
RINOK_THREAD(Semaphore_Create(&p->freeSemaphore, numBlocks, numBlocks));
RINOK_THREAD(Semaphore_Create(&p->filledSemaphore, 0, numBlocks));
p->needStart = True;
RINOK_THREAD(Thread_Create(&p->thread, startAddress, obj));
p->wasCreated = True;
return SZ_OK;
}
static SRes MtSync_Create(CMtSync *p, unsigned (MY_STD_CALL *startAddress)(void *), void *obj, UInt32 numBlocks)
{
SRes res = MtSync_Create2(p, startAddress, obj, numBlocks);
if (res != SZ_OK)
MtSync_Destruct(p);
return res;
}
void MtSync_Init(CMtSync *p) { p->needStart = True; }
#define kMtMaxValForNormalize 0xFFFFFFFF
#define DEF_GetHeads2(name, v, action) \
static void GetHeads ## name(const Byte *p, UInt32 pos, \
UInt32 *hash, UInt32 hashMask, UInt32 *heads, UInt32 numHeads, const UInt32 *crc) \
{ action; for (; numHeads != 0; numHeads--) { \
const UInt32 value = (v); p++; *heads++ = pos - hash[value]; hash[value] = pos++; } }
#define DEF_GetHeads(name, v) DEF_GetHeads2(name, v, ;)
DEF_GetHeads2(2, (p[0] | ((UInt32)p[1] << 8)), hashMask = hashMask; crc = crc; )
DEF_GetHeads(3, (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8)) & hashMask)
DEF_GetHeads(4, (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8) ^ (crc[p[3]] << 5)) & hashMask)
DEF_GetHeads(4b, (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8) ^ ((UInt32)p[3] << 16)) & hashMask)
/* DEF_GetHeads(5, (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8) ^ (crc[p[3]] << 5) ^ (crc[p[4]] << 3)) & hashMask) */
void HashThreadFunc(CMatchFinderMt *mt)
{
CMtSync *p = &mt->hashSync;
for (;;)
{
UInt32 numProcessedBlocks = 0;
Event_Wait(&p->canStart);
Event_Set(&p->wasStarted);
for (;;)
{
if (p->exit)
return;
if (p->stopWriting)
{
p->numProcessedBlocks = numProcessedBlocks;
Event_Set(&p->wasStopped);
break;
}
{
CMatchFinder *mf = mt->MatchFinder;
if (MatchFinder_NeedMove(mf))
{
CriticalSection_Enter(&mt->btSync.cs);
CriticalSection_Enter(&mt->hashSync.cs);
{
const Byte *beforePtr = MatchFinder_GetPointerToCurrentPos(mf);
const Byte *afterPtr;
MatchFinder_MoveBlock(mf);
afterPtr = MatchFinder_GetPointerToCurrentPos(mf);
mt->pointerToCurPos -= beforePtr - afterPtr;
mt->buffer -= beforePtr - afterPtr;
}
CriticalSection_Leave(&mt->btSync.cs);
CriticalSection_Leave(&mt->hashSync.cs);
continue;
}
Semaphore_Wait(&p->freeSemaphore);
MatchFinder_ReadIfRequired(mf);
if (mf->pos > (kMtMaxValForNormalize - kMtHashBlockSize))
{
UInt32 subValue = (mf->pos - mf->historySize - 1);
MatchFinder_ReduceOffsets(mf, subValue);
MatchFinder_Normalize3(subValue, mf->hash + mf->fixedHashSize, mf->hashMask + 1);
}
{
UInt32 *heads = mt->hashBuf + ((numProcessedBlocks++) & kMtHashNumBlocksMask) * kMtHashBlockSize;
UInt32 num = mf->streamPos - mf->pos;
heads[0] = 2;
heads[1] = num;
if (num >= mf->numHashBytes)
{
num = num - mf->numHashBytes + 1;
if (num > kMtHashBlockSize - 2)
num = kMtHashBlockSize - 2;
mt->GetHeadsFunc(mf->buffer, mf->pos, mf->hash + mf->fixedHashSize, mf->hashMask, heads + 2, num, mf->crc);
heads[0] += num;
}
mf->pos += num;
mf->buffer += num;
}
}
Semaphore_Release1(&p->filledSemaphore);
}
}
}
void MatchFinderMt_GetNextBlock_Hash(CMatchFinderMt *p)
{
MtSync_GetNextBlock(&p->hashSync);
p->hashBufPosLimit = p->hashBufPos = ((p->hashSync.numProcessedBlocks - 1) & kMtHashNumBlocksMask) * kMtHashBlockSize;
p->hashBufPosLimit += p->hashBuf[p->hashBufPos++];
p->hashNumAvail = p->hashBuf[p->hashBufPos++];
}
#define kEmptyHashValue 0
/* #define MFMT_GM_INLINE */
#ifdef MFMT_GM_INLINE
#define NO_INLINE MY_FAST_CALL
Int32 NO_INLINE GetMatchesSpecN(UInt32 lenLimit, UInt32 pos, const Byte *cur, CLzRef *son,
UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 _cutValue,
UInt32 *_distances, UInt32 _maxLen, const UInt32 *hash, Int32 limit, UInt32 size, UInt32 *posRes)
{
do
{
UInt32 *distances = _distances + 1;
UInt32 curMatch = pos - *hash++;
CLzRef *ptr0 = son + (_cyclicBufferPos << 1) + 1;
CLzRef *ptr1 = son + (_cyclicBufferPos << 1);
UInt32 len0 = 0, len1 = 0;
UInt32 cutValue = _cutValue;
UInt32 maxLen = _maxLen;
for (;;)
{
UInt32 delta = pos - curMatch;
if (cutValue-- == 0 || delta >= _cyclicBufferSize)
{
*ptr0 = *ptr1 = kEmptyHashValue;
break;
}
{
CLzRef *pair = son + ((_cyclicBufferPos - delta + ((delta > _cyclicBufferPos) ? _cyclicBufferSize : 0)) << 1);
const Byte *pb = cur - delta;
UInt32 len = (len0 < len1 ? len0 : len1);
if (pb[len] == cur[len])
{
if (++len != lenLimit && pb[len] == cur[len])
while (++len != lenLimit)
if (pb[len] != cur[len])
break;
if (maxLen < len)
{
*distances++ = maxLen = len;
*distances++ = delta - 1;
if (len == lenLimit)
{
*ptr1 = pair[0];
*ptr0 = pair[1];
break;
}
}
}
if (pb[len] < cur[len])
{
*ptr1 = curMatch;
ptr1 = pair + 1;
curMatch = *ptr1;
len1 = len;
}
else
{
*ptr0 = curMatch;
ptr0 = pair;
curMatch = *ptr0;
len0 = len;
}
}
}
pos++;
_cyclicBufferPos++;
cur++;
{
UInt32 num = (UInt32)(distances - _distances);
*_distances = num - 1;
_distances += num;
limit -= num;
}
}
while (limit > 0 && --size != 0);
*posRes = pos;
return limit;
}
#endif
void BtGetMatches(CMatchFinderMt *p, UInt32 *distances)
{
UInt32 numProcessed = 0;
UInt32 curPos = 2;
UInt32 limit = kMtBtBlockSize - (p->matchMaxLen * 2);
distances[1] = p->hashNumAvail;
while (curPos < limit)
{
if (p->hashBufPos == p->hashBufPosLimit)
{
MatchFinderMt_GetNextBlock_Hash(p);
distances[1] = numProcessed + p->hashNumAvail;
if (p->hashNumAvail >= p->numHashBytes)
continue;
for (; p->hashNumAvail != 0; p->hashNumAvail--)
distances[curPos++] = 0;
break;
}
{
UInt32 size = p->hashBufPosLimit - p->hashBufPos;
UInt32 lenLimit = p->matchMaxLen;
UInt32 pos = p->pos;
UInt32 cyclicBufferPos = p->cyclicBufferPos;
if (lenLimit >= p->hashNumAvail)
lenLimit = p->hashNumAvail;
{
UInt32 size2 = p->hashNumAvail - lenLimit + 1;
if (size2 < size)
size = size2;
size2 = p->cyclicBufferSize - cyclicBufferPos;
if (size2 < size)
size = size2;
}
#ifndef MFMT_GM_INLINE
while (curPos < limit && size-- != 0)
{
UInt32 *startDistances = distances + curPos;
UInt32 num = (UInt32)(GetMatchesSpec1(lenLimit, pos - p->hashBuf[p->hashBufPos++],
pos, p->buffer, p->son, cyclicBufferPos, p->cyclicBufferSize, p->cutValue,
startDistances + 1, p->numHashBytes - 1) - startDistances);
*startDistances = num - 1;
curPos += num;
cyclicBufferPos++;
pos++;
p->buffer++;
}
#else
{
UInt32 posRes;
curPos = limit - GetMatchesSpecN(lenLimit, pos, p->buffer, p->son, cyclicBufferPos, p->cyclicBufferSize, p->cutValue,
distances + curPos, p->numHashBytes - 1, p->hashBuf + p->hashBufPos, (Int32)(limit - curPos) , size, &posRes);
p->hashBufPos += posRes - pos;
cyclicBufferPos += posRes - pos;
p->buffer += posRes - pos;
pos = posRes;
}
#endif
numProcessed += pos - p->pos;
p->hashNumAvail -= pos - p->pos;
p->pos = pos;
if (cyclicBufferPos == p->cyclicBufferSize)
cyclicBufferPos = 0;
p->cyclicBufferPos = cyclicBufferPos;
}
}
distances[0] = curPos;
}
void BtFillBlock(CMatchFinderMt *p, UInt32 globalBlockIndex)
{
CMtSync *sync = &p->hashSync;
if (!sync->needStart)
{
CriticalSection_Enter(&sync->cs);
sync->csWasEntered = True;
}
BtGetMatches(p, p->btBuf + (globalBlockIndex & kMtBtNumBlocksMask) * kMtBtBlockSize);
if (p->pos > kMtMaxValForNormalize - kMtBtBlockSize)
{
UInt32 subValue = p->pos - p->cyclicBufferSize;
MatchFinder_Normalize3(subValue, p->son, p->cyclicBufferSize * 2);
p->pos -= subValue;
}
if (!sync->needStart)
{
CriticalSection_Leave(&sync->cs);
sync->csWasEntered = False;
}
}
void BtThreadFunc(CMatchFinderMt *mt)
{
CMtSync *p = &mt->btSync;
for (;;)
{
UInt32 blockIndex = 0;
Event_Wait(&p->canStart);
Event_Set(&p->wasStarted);
for (;;)
{
if (p->exit)
return;
if (p->stopWriting)
{
p->numProcessedBlocks = blockIndex;
MtSync_StopWriting(&mt->hashSync);
Event_Set(&p->wasStopped);
break;
}
Semaphore_Wait(&p->freeSemaphore);
BtFillBlock(mt, blockIndex++);
Semaphore_Release1(&p->filledSemaphore);
}
}
}
void MatchFinderMt_Construct(CMatchFinderMt *p)
{
p->hashBuf = 0;
MtSync_Construct(&p->hashSync);
MtSync_Construct(&p->btSync);
}
void MatchFinderMt_FreeMem(CMatchFinderMt *p, ISzAlloc *alloc)
{
alloc->Free(alloc, p->hashBuf);
p->hashBuf = 0;
}
void MatchFinderMt_Destruct(CMatchFinderMt *p, ISzAlloc *alloc)
{
MtSync_Destruct(&p->hashSync);
MtSync_Destruct(&p->btSync);
MatchFinderMt_FreeMem(p, alloc);
}
#define kHashBufferSize (kMtHashBlockSize * kMtHashNumBlocks)
#define kBtBufferSize (kMtBtBlockSize * kMtBtNumBlocks)
static unsigned MY_STD_CALL HashThreadFunc2(void *p) { HashThreadFunc((CMatchFinderMt *)p); return 0; }
static unsigned MY_STD_CALL BtThreadFunc2(void *p)
{
Byte allocaDummy[0x180];
int i = 0;
for (i = 0; i < 16; i++)
allocaDummy[i] = (Byte)i;
BtThreadFunc((CMatchFinderMt *)p);
return 0;
}
SRes MatchFinderMt_Create(CMatchFinderMt *p, UInt32 historySize, UInt32 keepAddBufferBefore,
UInt32 matchMaxLen, UInt32 keepAddBufferAfter, ISzAlloc *alloc)
{
CMatchFinder *mf = p->MatchFinder;
p->historySize = historySize;
if (kMtBtBlockSize <= matchMaxLen * 4)
return SZ_ERROR_PARAM;
if (p->hashBuf == 0)
{
p->hashBuf = (UInt32 *)alloc->Alloc(alloc, (kHashBufferSize + kBtBufferSize) * sizeof(UInt32));
if (p->hashBuf == 0)
return SZ_ERROR_MEM;
p->btBuf = p->hashBuf + kHashBufferSize;
}
keepAddBufferBefore += (kHashBufferSize + kBtBufferSize);
keepAddBufferAfter += kMtHashBlockSize;
if (!MatchFinder_Create(mf, historySize, keepAddBufferBefore, matchMaxLen, keepAddBufferAfter, alloc))
return SZ_ERROR_MEM;
RINOK(MtSync_Create(&p->hashSync, HashThreadFunc2, p, kMtHashNumBlocks));
RINOK(MtSync_Create(&p->btSync, BtThreadFunc2, p, kMtBtNumBlocks));
return SZ_OK;
}
/* Call it after ReleaseStream / SetStream */
void MatchFinderMt_Init(CMatchFinderMt *p)
{
CMatchFinder *mf = p->MatchFinder;
p->btBufPos = p->btBufPosLimit = 0;
p->hashBufPos = p->hashBufPosLimit = 0;
MatchFinder_Init(mf);
p->pointerToCurPos = MatchFinder_GetPointerToCurrentPos(mf);
p->btNumAvailBytes = 0;
p->lzPos = p->historySize + 1;
p->hash = mf->hash;
p->fixedHashSize = mf->fixedHashSize;
p->crc = mf->crc;
p->son = mf->son;
p->matchMaxLen = mf->matchMaxLen;
p->numHashBytes = mf->numHashBytes;
p->pos = mf->pos;
p->buffer = mf->buffer;
p->cyclicBufferPos = mf->cyclicBufferPos;
p->cyclicBufferSize = mf->cyclicBufferSize;
p->cutValue = mf->cutValue;
}
/* ReleaseStream is required to finish multithreading */
void MatchFinderMt_ReleaseStream(CMatchFinderMt *p)
{
MtSync_StopWriting(&p->btSync);
/* p->MatchFinder->ReleaseStream(); */
}
void MatchFinderMt_Normalize(CMatchFinderMt *p)
{
MatchFinder_Normalize3(p->lzPos - p->historySize - 1, p->hash, p->fixedHashSize);
p->lzPos = p->historySize + 1;
}
void MatchFinderMt_GetNextBlock_Bt(CMatchFinderMt *p)
{
UInt32 blockIndex;
MtSync_GetNextBlock(&p->btSync);
blockIndex = ((p->btSync.numProcessedBlocks - 1) & kMtBtNumBlocksMask);
p->btBufPosLimit = p->btBufPos = blockIndex * kMtBtBlockSize;
p->btBufPosLimit += p->btBuf[p->btBufPos++];
p->btNumAvailBytes = p->btBuf[p->btBufPos++];
if (p->lzPos >= kMtMaxValForNormalize - kMtBtBlockSize)
MatchFinderMt_Normalize(p);
}
const Byte * MatchFinderMt_GetPointerToCurrentPos(CMatchFinderMt *p)
{
return p->pointerToCurPos;
}
#define GET_NEXT_BLOCK_IF_REQUIRED if (p->btBufPos == p->btBufPosLimit) MatchFinderMt_GetNextBlock_Bt(p);
UInt32 MatchFinderMt_GetNumAvailableBytes(CMatchFinderMt *p)
{
GET_NEXT_BLOCK_IF_REQUIRED;
return p->btNumAvailBytes;
}
Byte MatchFinderMt_GetIndexByte(CMatchFinderMt *p, Int32 index)
{
return p->pointerToCurPos[index];
}
UInt32 * MixMatches2(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *distances)
{
UInt32 hash2Value, curMatch2;
UInt32 *hash = p->hash;
const Byte *cur = p->pointerToCurPos;
UInt32 lzPos = p->lzPos;
MT_HASH2_CALC
curMatch2 = hash[hash2Value];
hash[hash2Value] = lzPos;
if (curMatch2 >= matchMinPos)
if (cur[(ptrdiff_t)curMatch2 - lzPos] == cur[0])
{
*distances++ = 2;
*distances++ = lzPos - curMatch2 - 1;
}
return distances;
}
UInt32 * MixMatches3(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *distances)
{
UInt32 hash2Value, hash3Value, curMatch2, curMatch3;
UInt32 *hash = p->hash;
const Byte *cur = p->pointerToCurPos;
UInt32 lzPos = p->lzPos;
MT_HASH3_CALC
curMatch2 = hash[ hash2Value];
curMatch3 = hash[kFix3HashSize + hash3Value];
hash[ hash2Value] =
hash[kFix3HashSize + hash3Value] =
lzPos;
if (curMatch2 >= matchMinPos && cur[(ptrdiff_t)curMatch2 - lzPos] == cur[0])
{
distances[1] = lzPos - curMatch2 - 1;
if (cur[(ptrdiff_t)curMatch2 - lzPos + 2] == cur[2])
{
distances[0] = 3;
return distances + 2;
}
distances[0] = 2;
distances += 2;
}
if (curMatch3 >= matchMinPos && cur[(ptrdiff_t)curMatch3 - lzPos] == cur[0])
{
*distances++ = 3;
*distances++ = lzPos - curMatch3 - 1;
}
return distances;
}
/*
UInt32 *MixMatches4(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *distances)
{
UInt32 hash2Value, hash3Value, hash4Value, curMatch2, curMatch3, curMatch4;
UInt32 *hash = p->hash;
const Byte *cur = p->pointerToCurPos;
UInt32 lzPos = p->lzPos;
MT_HASH4_CALC
curMatch2 = hash[ hash2Value];
curMatch3 = hash[kFix3HashSize + hash3Value];
curMatch4 = hash[kFix4HashSize + hash4Value];
hash[ hash2Value] =
hash[kFix3HashSize + hash3Value] =
hash[kFix4HashSize + hash4Value] =
lzPos;
if (curMatch2 >= matchMinPos && cur[(ptrdiff_t)curMatch2 - lzPos] == cur[0])
{
distances[1] = lzPos - curMatch2 - 1;
if (cur[(ptrdiff_t)curMatch2 - lzPos + 2] == cur[2])
{
distances[0] = (cur[(ptrdiff_t)curMatch2 - lzPos + 3] == cur[3]) ? 4 : 3;
return distances + 2;
}
distances[0] = 2;
distances += 2;
}
if (curMatch3 >= matchMinPos && cur[(ptrdiff_t)curMatch3 - lzPos] == cur[0])
{
distances[1] = lzPos - curMatch3 - 1;
if (cur[(ptrdiff_t)curMatch3 - lzPos + 3] == cur[3])
{
distances[0] = 4;
return distances + 2;
}
distances[0] = 3;
distances += 2;
}
if (curMatch4 >= matchMinPos)
if (
cur[(ptrdiff_t)curMatch4 - lzPos] == cur[0] &&
cur[(ptrdiff_t)curMatch4 - lzPos + 3] == cur[3]
)
{
*distances++ = 4;
*distances++ = lzPos - curMatch4 - 1;
}
return distances;
}
*/
#define INCREASE_LZ_POS p->lzPos++; p->pointerToCurPos++;
UInt32 MatchFinderMt2_GetMatches(CMatchFinderMt *p, UInt32 *distances)
{
const UInt32 *btBuf = p->btBuf + p->btBufPos;
UInt32 len = *btBuf++;
p->btBufPos += 1 + len;
p->btNumAvailBytes--;
{
UInt32 i;
for (i = 0; i < len; i += 2)
{
*distances++ = *btBuf++;
*distances++ = *btBuf++;
}
}
INCREASE_LZ_POS
return len;
}
UInt32 MatchFinderMt_GetMatches(CMatchFinderMt *p, UInt32 *distances)
{
const UInt32 *btBuf = p->btBuf + p->btBufPos;
UInt32 len = *btBuf++;
p->btBufPos += 1 + len;
if (len == 0)
{
if (p->btNumAvailBytes-- >= 4)
len = (UInt32)(p->MixMatchesFunc(p, p->lzPos - p->historySize, distances) - (distances));
}
else
{
/* Condition: there are matches in btBuf with length < p->numHashBytes */
UInt32 *distances2;
p->btNumAvailBytes--;
distances2 = p->MixMatchesFunc(p, p->lzPos - btBuf[1], distances);
do
{
*distances2++ = *btBuf++;
*distances2++ = *btBuf++;
}
while ((len -= 2) != 0);
len = (UInt32)(distances2 - (distances));
}
INCREASE_LZ_POS
return len;
}
#define SKIP_HEADER2_MT do { GET_NEXT_BLOCK_IF_REQUIRED
#define SKIP_HEADER_MT(n) SKIP_HEADER2_MT if (p->btNumAvailBytes-- >= (n)) { const Byte *cur = p->pointerToCurPos; UInt32 *hash = p->hash;
#define SKIP_FOOTER_MT } INCREASE_LZ_POS p->btBufPos += p->btBuf[p->btBufPos] + 1; } while (--num != 0);
void MatchFinderMt0_Skip(CMatchFinderMt *p, UInt32 num)
{
SKIP_HEADER2_MT { p->btNumAvailBytes--;
SKIP_FOOTER_MT
}
void MatchFinderMt2_Skip(CMatchFinderMt *p, UInt32 num)
{
SKIP_HEADER_MT(2)
UInt32 hash2Value;
MT_HASH2_CALC
hash[hash2Value] = p->lzPos;
SKIP_FOOTER_MT
}
void MatchFinderMt3_Skip(CMatchFinderMt *p, UInt32 num)
{
SKIP_HEADER_MT(3)
UInt32 hash2Value, hash3Value;
MT_HASH3_CALC
hash[kFix3HashSize + hash3Value] =
hash[ hash2Value] =
p->lzPos;
SKIP_FOOTER_MT
}
/*
void MatchFinderMt4_Skip(CMatchFinderMt *p, UInt32 num)
{
SKIP_HEADER_MT(4)
UInt32 hash2Value, hash3Value, hash4Value;
MT_HASH4_CALC
hash[kFix4HashSize + hash4Value] =
hash[kFix3HashSize + hash3Value] =
hash[ hash2Value] =
p->lzPos;
SKIP_FOOTER_MT
}
*/
void MatchFinderMt_CreateVTable(CMatchFinderMt *p, IMatchFinder *vTable)
{
vTable->Init = (Mf_Init_Func)MatchFinderMt_Init;
vTable->GetIndexByte = (Mf_GetIndexByte_Func)MatchFinderMt_GetIndexByte;
vTable->GetNumAvailableBytes = (Mf_GetNumAvailableBytes_Func)MatchFinderMt_GetNumAvailableBytes;
vTable->GetPointerToCurrentPos = (Mf_GetPointerToCurrentPos_Func)MatchFinderMt_GetPointerToCurrentPos;
vTable->GetMatches = (Mf_GetMatches_Func)MatchFinderMt_GetMatches;
switch(p->MatchFinder->numHashBytes)
{
case 2:
p->GetHeadsFunc = GetHeads2;
p->MixMatchesFunc = (Mf_Mix_Matches)0;
vTable->Skip = (Mf_Skip_Func)MatchFinderMt0_Skip;
vTable->GetMatches = (Mf_GetMatches_Func)MatchFinderMt2_GetMatches;
break;
case 3:
p->GetHeadsFunc = GetHeads3;
p->MixMatchesFunc = (Mf_Mix_Matches)MixMatches2;
vTable->Skip = (Mf_Skip_Func)MatchFinderMt2_Skip;
break;
default:
/* case 4: */
p->GetHeadsFunc = p->MatchFinder->bigHash ? GetHeads4b : GetHeads4;
/* p->GetHeadsFunc = GetHeads4; */
p->MixMatchesFunc = (Mf_Mix_Matches)MixMatches3;
vTable->Skip = (Mf_Skip_Func)MatchFinderMt3_Skip;
break;
/*
default:
p->GetHeadsFunc = GetHeads5;
p->MixMatchesFunc = (Mf_Mix_Matches)MixMatches4;
vTable->Skip = (Mf_Skip_Func)MatchFinderMt4_Skip;
break;
*/
}
}

View File

@ -0,0 +1,105 @@
/* LzFindMt.h -- multithreaded Match finder for LZ algorithms
2009-02-07 : Igor Pavlov : Public domain */
#ifndef __LZ_FIND_MT_H
#define __LZ_FIND_MT_H
#include "LzFind.h"
#include "Threads.h"
#ifdef __cplusplus
extern "C" {
#endif
#define kMtHashBlockSize (1 << 13)
#define kMtHashNumBlocks (1 << 3)
#define kMtHashNumBlocksMask (kMtHashNumBlocks - 1)
#define kMtBtBlockSize (1 << 14)
#define kMtBtNumBlocks (1 << 6)
#define kMtBtNumBlocksMask (kMtBtNumBlocks - 1)
typedef struct _CMtSync
{
Bool wasCreated;
Bool needStart;
Bool exit;
Bool stopWriting;
CThread thread;
CAutoResetEvent canStart;
CAutoResetEvent wasStarted;
CAutoResetEvent wasStopped;
CSemaphore freeSemaphore;
CSemaphore filledSemaphore;
Bool csWasInitialized;
Bool csWasEntered;
CCriticalSection cs;
UInt32 numProcessedBlocks;
} CMtSync;
typedef UInt32 * (*Mf_Mix_Matches)(void *p, UInt32 matchMinPos, UInt32 *distances);
/* kMtCacheLineDummy must be >= size_of_CPU_cache_line */
#define kMtCacheLineDummy 128
typedef void (*Mf_GetHeads)(const Byte *buffer, UInt32 pos,
UInt32 *hash, UInt32 hashMask, UInt32 *heads, UInt32 numHeads, const UInt32 *crc);
typedef struct _CMatchFinderMt
{
/* LZ */
const Byte *pointerToCurPos;
UInt32 *btBuf;
UInt32 btBufPos;
UInt32 btBufPosLimit;
UInt32 lzPos;
UInt32 btNumAvailBytes;
UInt32 *hash;
UInt32 fixedHashSize;
UInt32 historySize;
const UInt32 *crc;
Mf_Mix_Matches MixMatchesFunc;
/* LZ + BT */
CMtSync btSync;
Byte btDummy[kMtCacheLineDummy];
/* BT */
UInt32 *hashBuf;
UInt32 hashBufPos;
UInt32 hashBufPosLimit;
UInt32 hashNumAvail;
CLzRef *son;
UInt32 matchMaxLen;
UInt32 numHashBytes;
UInt32 pos;
Byte *buffer;
UInt32 cyclicBufferPos;
UInt32 cyclicBufferSize; /* it must be historySize + 1 */
UInt32 cutValue;
/* BT + Hash */
CMtSync hashSync;
/* Byte hashDummy[kMtCacheLineDummy]; */
/* Hash */
Mf_GetHeads GetHeadsFunc;
CMatchFinder *MatchFinder;
} CMatchFinderMt;
void MatchFinderMt_Construct(CMatchFinderMt *p);
void MatchFinderMt_Destruct(CMatchFinderMt *p, ISzAlloc *alloc);
SRes MatchFinderMt_Create(CMatchFinderMt *p, UInt32 historySize, UInt32 keepAddBufferBefore,
UInt32 matchMaxLen, UInt32 keepAddBufferAfter, ISzAlloc *alloc);
void MatchFinderMt_CreateVTable(CMatchFinderMt *p, IMatchFinder *vTable);
void MatchFinderMt_ReleaseStream(CMatchFinderMt *p);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,54 @@
/* LzHash.h -- HASH functions for LZ algorithms
2009-02-07 : Igor Pavlov : Public domain */
#ifndef __LZ_HASH_H
#define __LZ_HASH_H
#define kHash2Size (1 << 10)
#define kHash3Size (1 << 16)
#define kHash4Size (1 << 20)
#define kFix3HashSize (kHash2Size)
#define kFix4HashSize (kHash2Size + kHash3Size)
#define kFix5HashSize (kHash2Size + kHash3Size + kHash4Size)
#define HASH2_CALC hashValue = cur[0] | ((UInt32)cur[1] << 8);
#define HASH3_CALC { \
UInt32 temp = p->crc[cur[0]] ^ cur[1]; \
hash2Value = temp & (kHash2Size - 1); \
hashValue = (temp ^ ((UInt32)cur[2] << 8)) & p->hashMask; }
#define HASH4_CALC { \
UInt32 temp = p->crc[cur[0]] ^ cur[1]; \
hash2Value = temp & (kHash2Size - 1); \
hash3Value = (temp ^ ((UInt32)cur[2] << 8)) & (kHash3Size - 1); \
hashValue = (temp ^ ((UInt32)cur[2] << 8) ^ (p->crc[cur[3]] << 5)) & p->hashMask; }
#define HASH5_CALC { \
UInt32 temp = p->crc[cur[0]] ^ cur[1]; \
hash2Value = temp & (kHash2Size - 1); \
hash3Value = (temp ^ ((UInt32)cur[2] << 8)) & (kHash3Size - 1); \
hash4Value = (temp ^ ((UInt32)cur[2] << 8) ^ (p->crc[cur[3]] << 5)); \
hashValue = (hash4Value ^ (p->crc[cur[4]] << 3)) & p->hashMask; \
hash4Value &= (kHash4Size - 1); }
/* #define HASH_ZIP_CALC hashValue = ((cur[0] | ((UInt32)cur[1] << 8)) ^ p->crc[cur[2]]) & 0xFFFF; */
#define HASH_ZIP_CALC hashValue = ((cur[2] | ((UInt32)cur[0] << 8)) ^ p->crc[cur[1]]) & 0xFFFF;
#define MT_HASH2_CALC \
hash2Value = (p->crc[cur[0]] ^ cur[1]) & (kHash2Size - 1);
#define MT_HASH3_CALC { \
UInt32 temp = p->crc[cur[0]] ^ cur[1]; \
hash2Value = temp & (kHash2Size - 1); \
hash3Value = (temp ^ ((UInt32)cur[2] << 8)) & (kHash3Size - 1); }
#define MT_HASH4_CALC { \
UInt32 temp = p->crc[cur[0]] ^ cur[1]; \
hash2Value = temp & (kHash2Size - 1); \
hash3Value = (temp ^ ((UInt32)cur[2] << 8)) & (kHash3Size - 1); \
hash4Value = (temp ^ ((UInt32)cur[2] << 8) ^ (p->crc[cur[3]] << 5)) & (kHash4Size - 1); }
#endif

View File

@ -0,0 +1,356 @@
/* Lzma2Dec.c -- LZMA2 Decoder
2009-05-03 : Igor Pavlov : Public domain */
/* #define SHOW_DEBUG_INFO */
#ifdef SHOW_DEBUG_INFO
#include <stdio.h>
#endif
#include <string.h>
#include "Lzma2Dec.h"
/*
00000000 - EOS
00000001 U U - Uncompressed Reset Dic
00000010 U U - Uncompressed No Reset
100uuuuu U U P P - LZMA no reset
101uuuuu U U P P - LZMA reset state
110uuuuu U U P P S - LZMA reset state + new prop
111uuuuu U U P P S - LZMA reset state + new prop + reset dic
u, U - Unpack Size
P - Pack Size
S - Props
*/
#define LZMA2_CONTROL_LZMA (1 << 7)
#define LZMA2_CONTROL_COPY_NO_RESET 2
#define LZMA2_CONTROL_COPY_RESET_DIC 1
#define LZMA2_CONTROL_EOF 0
#define LZMA2_IS_UNCOMPRESSED_STATE(p) (((p)->control & LZMA2_CONTROL_LZMA) == 0)
#define LZMA2_GET_LZMA_MODE(p) (((p)->control >> 5) & 3)
#define LZMA2_IS_THERE_PROP(mode) ((mode) >= 2)
#define LZMA2_LCLP_MAX 4
#define LZMA2_DIC_SIZE_FROM_PROP(p) (((UInt32)2 | ((p) & 1)) << ((p) / 2 + 11))
#ifdef SHOW_DEBUG_INFO
#define PRF(x) x
#else
#define PRF(x)
#endif
typedef enum
{
LZMA2_STATE_CONTROL,
LZMA2_STATE_UNPACK0,
LZMA2_STATE_UNPACK1,
LZMA2_STATE_PACK0,
LZMA2_STATE_PACK1,
LZMA2_STATE_PROP,
LZMA2_STATE_DATA,
LZMA2_STATE_DATA_CONT,
LZMA2_STATE_FINISHED,
LZMA2_STATE_ERROR
} ELzma2State;
static SRes Lzma2Dec_GetOldProps(Byte prop, Byte *props)
{
UInt32 dicSize;
if (prop > 40)
return SZ_ERROR_UNSUPPORTED;
dicSize = (prop == 40) ? 0xFFFFFFFF : LZMA2_DIC_SIZE_FROM_PROP(prop);
props[0] = (Byte)LZMA2_LCLP_MAX;
props[1] = (Byte)(dicSize);
props[2] = (Byte)(dicSize >> 8);
props[3] = (Byte)(dicSize >> 16);
props[4] = (Byte)(dicSize >> 24);
return SZ_OK;
}
SRes Lzma2Dec_AllocateProbs(CLzma2Dec *p, Byte prop, ISzAlloc *alloc)
{
Byte props[LZMA_PROPS_SIZE];
RINOK(Lzma2Dec_GetOldProps(prop, props));
return LzmaDec_AllocateProbs(&p->decoder, props, LZMA_PROPS_SIZE, alloc);
}
SRes Lzma2Dec_Allocate(CLzma2Dec *p, Byte prop, ISzAlloc *alloc)
{
Byte props[LZMA_PROPS_SIZE];
RINOK(Lzma2Dec_GetOldProps(prop, props));
return LzmaDec_Allocate(&p->decoder, props, LZMA_PROPS_SIZE, alloc);
}
void Lzma2Dec_Init(CLzma2Dec *p)
{
p->state = LZMA2_STATE_CONTROL;
p->needInitDic = True;
p->needInitState = True;
p->needInitProp = True;
LzmaDec_Init(&p->decoder);
}
static ELzma2State Lzma2Dec_UpdateState(CLzma2Dec *p, Byte b)
{
switch(p->state)
{
case LZMA2_STATE_CONTROL:
p->control = b;
PRF(printf("\n %4X ", p->decoder.dicPos));
PRF(printf(" %2X", b));
if (p->control == 0)
return LZMA2_STATE_FINISHED;
if (LZMA2_IS_UNCOMPRESSED_STATE(p))
{
if ((p->control & 0x7F) > 2)
return LZMA2_STATE_ERROR;
p->unpackSize = 0;
}
else
p->unpackSize = (UInt32)(p->control & 0x1F) << 16;
return LZMA2_STATE_UNPACK0;
case LZMA2_STATE_UNPACK0:
p->unpackSize |= (UInt32)b << 8;
return LZMA2_STATE_UNPACK1;
case LZMA2_STATE_UNPACK1:
p->unpackSize |= (UInt32)b;
p->unpackSize++;
PRF(printf(" %8d", p->unpackSize));
return (LZMA2_IS_UNCOMPRESSED_STATE(p)) ? LZMA2_STATE_DATA : LZMA2_STATE_PACK0;
case LZMA2_STATE_PACK0:
p->packSize = (UInt32)b << 8;
return LZMA2_STATE_PACK1;
case LZMA2_STATE_PACK1:
p->packSize |= (UInt32)b;
p->packSize++;
PRF(printf(" %8d", p->packSize));
return LZMA2_IS_THERE_PROP(LZMA2_GET_LZMA_MODE(p)) ? LZMA2_STATE_PROP:
(p->needInitProp ? LZMA2_STATE_ERROR : LZMA2_STATE_DATA);
case LZMA2_STATE_PROP:
{
int lc, lp;
if (b >= (9 * 5 * 5))
return LZMA2_STATE_ERROR;
lc = b % 9;
b /= 9;
p->decoder.prop.pb = b / 5;
lp = b % 5;
if (lc + lp > LZMA2_LCLP_MAX)
return LZMA2_STATE_ERROR;
p->decoder.prop.lc = lc;
p->decoder.prop.lp = lp;
p->needInitProp = False;
return LZMA2_STATE_DATA;
}
}
return LZMA2_STATE_ERROR;
}
static void LzmaDec_UpdateWithUncompressed(CLzmaDec *p, const Byte *src, SizeT size)
{
memcpy(p->dic + p->dicPos, src, size);
p->dicPos += size;
if (p->checkDicSize == 0 && p->prop.dicSize - p->processedPos <= size)
p->checkDicSize = p->prop.dicSize;
p->processedPos += (UInt32)size;
}
void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState);
SRes Lzma2Dec_DecodeToDic(CLzma2Dec *p, SizeT dicLimit,
const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status)
{
SizeT inSize = *srcLen;
*srcLen = 0;
*status = LZMA_STATUS_NOT_SPECIFIED;
while (p->state != LZMA2_STATE_FINISHED)
{
SizeT dicPos = p->decoder.dicPos;
if (p->state == LZMA2_STATE_ERROR)
return SZ_ERROR_DATA;
if (dicPos == dicLimit && finishMode == LZMA_FINISH_ANY)
{
*status = LZMA_STATUS_NOT_FINISHED;
return SZ_OK;
}
if (p->state != LZMA2_STATE_DATA && p->state != LZMA2_STATE_DATA_CONT)
{
if (*srcLen == inSize)
{
*status = LZMA_STATUS_NEEDS_MORE_INPUT;
return SZ_OK;
}
(*srcLen)++;
p->state = Lzma2Dec_UpdateState(p, *src++);
continue;
}
{
SizeT destSizeCur = dicLimit - dicPos;
SizeT srcSizeCur = inSize - *srcLen;
ELzmaFinishMode curFinishMode = LZMA_FINISH_ANY;
if (p->unpackSize <= destSizeCur)
{
destSizeCur = (SizeT)p->unpackSize;
curFinishMode = LZMA_FINISH_END;
}
if (LZMA2_IS_UNCOMPRESSED_STATE(p))
{
if (*srcLen == inSize)
{
*status = LZMA_STATUS_NEEDS_MORE_INPUT;
return SZ_OK;
}
if (p->state == LZMA2_STATE_DATA)
{
Bool initDic = (p->control == LZMA2_CONTROL_COPY_RESET_DIC);
if (initDic)
p->needInitProp = p->needInitState = True;
else if (p->needInitDic)
return SZ_ERROR_DATA;
p->needInitDic = False;
LzmaDec_InitDicAndState(&p->decoder, initDic, False);
}
if (srcSizeCur > destSizeCur)
srcSizeCur = destSizeCur;
if (srcSizeCur == 0)
return SZ_ERROR_DATA;
LzmaDec_UpdateWithUncompressed(&p->decoder, src, srcSizeCur);
src += srcSizeCur;
*srcLen += srcSizeCur;
p->unpackSize -= (UInt32)srcSizeCur;
p->state = (p->unpackSize == 0) ? LZMA2_STATE_CONTROL : LZMA2_STATE_DATA_CONT;
}
else
{
SizeT outSizeProcessed;
SRes res;
if (p->state == LZMA2_STATE_DATA)
{
int mode = LZMA2_GET_LZMA_MODE(p);
Bool initDic = (mode == 3);
Bool initState = (mode > 0);
if ((!initDic && p->needInitDic) || (!initState && p->needInitState))
return SZ_ERROR_DATA;
LzmaDec_InitDicAndState(&p->decoder, initDic, initState);
p->needInitDic = False;
p->needInitState = False;
p->state = LZMA2_STATE_DATA_CONT;
}
if (srcSizeCur > p->packSize)
srcSizeCur = (SizeT)p->packSize;
res = LzmaDec_DecodeToDic(&p->decoder, dicPos + destSizeCur, src, &srcSizeCur, curFinishMode, status);
src += srcSizeCur;
*srcLen += srcSizeCur;
p->packSize -= (UInt32)srcSizeCur;
outSizeProcessed = p->decoder.dicPos - dicPos;
p->unpackSize -= (UInt32)outSizeProcessed;
RINOK(res);
if (*status == LZMA_STATUS_NEEDS_MORE_INPUT)
return res;
if (srcSizeCur == 0 && outSizeProcessed == 0)
{
if (*status != LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK ||
p->unpackSize != 0 || p->packSize != 0)
return SZ_ERROR_DATA;
p->state = LZMA2_STATE_CONTROL;
}
if (*status == LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK)
*status = LZMA_STATUS_NOT_FINISHED;
}
}
}
*status = LZMA_STATUS_FINISHED_WITH_MARK;
return SZ_OK;
}
SRes Lzma2Dec_DecodeToBuf(CLzma2Dec *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status)
{
SizeT outSize = *destLen, inSize = *srcLen;
*srcLen = *destLen = 0;
for (;;)
{
SizeT srcSizeCur = inSize, outSizeCur, dicPos;
ELzmaFinishMode curFinishMode;
SRes res;
if (p->decoder.dicPos == p->decoder.dicBufSize)
p->decoder.dicPos = 0;
dicPos = p->decoder.dicPos;
if (outSize > p->decoder.dicBufSize - dicPos)
{
outSizeCur = p->decoder.dicBufSize;
curFinishMode = LZMA_FINISH_ANY;
}
else
{
outSizeCur = dicPos + outSize;
curFinishMode = finishMode;
}
res = Lzma2Dec_DecodeToDic(p, outSizeCur, src, &srcSizeCur, curFinishMode, status);
src += srcSizeCur;
inSize -= srcSizeCur;
*srcLen += srcSizeCur;
outSizeCur = p->decoder.dicPos - dicPos;
memcpy(dest, p->decoder.dic + dicPos, outSizeCur);
dest += outSizeCur;
outSize -= outSizeCur;
*destLen += outSizeCur;
if (res != 0)
return res;
if (outSizeCur == 0 || outSize == 0)
return SZ_OK;
}
}
SRes Lzma2Decode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
Byte prop, ELzmaFinishMode finishMode, ELzmaStatus *status, ISzAlloc *alloc)
{
CLzma2Dec decoder;
SRes res;
SizeT outSize = *destLen, inSize = *srcLen;
Byte props[LZMA_PROPS_SIZE];
Lzma2Dec_Construct(&decoder);
*destLen = *srcLen = 0;
*status = LZMA_STATUS_NOT_SPECIFIED;
decoder.decoder.dic = dest;
decoder.decoder.dicBufSize = outSize;
RINOK(Lzma2Dec_GetOldProps(prop, props));
RINOK(LzmaDec_AllocateProbs(&decoder.decoder, props, LZMA_PROPS_SIZE, alloc));
*srcLen = inSize;
res = Lzma2Dec_DecodeToDic(&decoder, outSize, src, srcLen, finishMode, status);
*destLen = decoder.decoder.dicPos;
if (res == SZ_OK && *status == LZMA_STATUS_NEEDS_MORE_INPUT)
res = SZ_ERROR_INPUT_EOF;
LzmaDec_FreeProbs(&decoder.decoder, alloc);
return res;
}

View File

@ -0,0 +1,84 @@
/* Lzma2Dec.h -- LZMA2 Decoder
2009-05-03 : Igor Pavlov : Public domain */
#ifndef __LZMA2_DEC_H
#define __LZMA2_DEC_H
#include "LzmaDec.h"
#ifdef __cplusplus
extern "C" {
#endif
/* ---------- State Interface ---------- */
typedef struct
{
CLzmaDec decoder;
UInt32 packSize;
UInt32 unpackSize;
int state;
Byte control;
Bool needInitDic;
Bool needInitState;
Bool needInitProp;
} CLzma2Dec;
#define Lzma2Dec_Construct(p) LzmaDec_Construct(&(p)->decoder)
#define Lzma2Dec_FreeProbs(p, alloc) LzmaDec_FreeProbs(&(p)->decoder, alloc);
#define Lzma2Dec_Free(p, alloc) LzmaDec_Free(&(p)->decoder, alloc);
SRes Lzma2Dec_AllocateProbs(CLzma2Dec *p, Byte prop, ISzAlloc *alloc);
SRes Lzma2Dec_Allocate(CLzma2Dec *p, Byte prop, ISzAlloc *alloc);
void Lzma2Dec_Init(CLzma2Dec *p);
/*
finishMode:
It has meaning only if the decoding reaches output limit (*destLen or dicLimit).
LZMA_FINISH_ANY - use smallest number of input bytes
LZMA_FINISH_END - read EndOfStream marker after decoding
Returns:
SZ_OK
status:
LZMA_STATUS_FINISHED_WITH_MARK
LZMA_STATUS_NOT_FINISHED
LZMA_STATUS_NEEDS_MORE_INPUT
SZ_ERROR_DATA - Data error
*/
SRes Lzma2Dec_DecodeToDic(CLzma2Dec *p, SizeT dicLimit,
const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status);
SRes Lzma2Dec_DecodeToBuf(CLzma2Dec *p, Byte *dest, SizeT *destLen,
const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status);
/* ---------- One Call Interface ---------- */
/*
finishMode:
It has meaning only if the decoding reaches output limit (*destLen).
LZMA_FINISH_ANY - use smallest number of input bytes
LZMA_FINISH_END - read EndOfStream marker after decoding
Returns:
SZ_OK
status:
LZMA_STATUS_FINISHED_WITH_MARK
LZMA_STATUS_NOT_FINISHED
SZ_ERROR_DATA - Data error
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_UNSUPPORTED - Unsupported properties
SZ_ERROR_INPUT_EOF - It needs more bytes in input buffer (src).
*/
SRes Lzma2Decode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
Byte prop, ELzmaFinishMode finishMode, ELzmaStatus *status, ISzAlloc *alloc);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,477 @@
/* Lzma2Enc.c -- LZMA2 Encoder
2010-09-24 : Igor Pavlov : Public domain */
/* #include <stdio.h> */
#include <string.h>
/* #define _7ZIP_ST */
#include "Lzma2Enc.h"
#ifndef _7ZIP_ST
#include "MtCoder.h"
#else
#define NUM_MT_CODER_THREADS_MAX 1
#endif
#define LZMA2_CONTROL_LZMA (1 << 7)
#define LZMA2_CONTROL_COPY_NO_RESET 2
#define LZMA2_CONTROL_COPY_RESET_DIC 1
#define LZMA2_CONTROL_EOF 0
#define LZMA2_LCLP_MAX 4
#define LZMA2_DIC_SIZE_FROM_PROP(p) (((UInt32)2 | ((p) & 1)) << ((p) / 2 + 11))
#define LZMA2_PACK_SIZE_MAX (1 << 16)
#define LZMA2_COPY_CHUNK_SIZE LZMA2_PACK_SIZE_MAX
#define LZMA2_UNPACK_SIZE_MAX (1 << 21)
#define LZMA2_KEEP_WINDOW_SIZE LZMA2_UNPACK_SIZE_MAX
#define LZMA2_CHUNK_SIZE_COMPRESSED_MAX ((1 << 16) + 16)
#define PRF(x) /* x */
/* ---------- CLzma2EncInt ---------- */
typedef struct
{
CLzmaEncHandle enc;
UInt64 srcPos;
Byte props;
Bool needInitState;
Bool needInitProp;
} CLzma2EncInt;
static SRes Lzma2EncInt_Init(CLzma2EncInt *p, const CLzma2EncProps *props)
{
Byte propsEncoded[LZMA_PROPS_SIZE];
SizeT propsSize = LZMA_PROPS_SIZE;
RINOK(LzmaEnc_SetProps(p->enc, &props->lzmaProps));
RINOK(LzmaEnc_WriteProperties(p->enc, propsEncoded, &propsSize));
p->srcPos = 0;
p->props = propsEncoded[0];
p->needInitState = True;
p->needInitProp = True;
return SZ_OK;
}
SRes LzmaEnc_PrepareForLzma2(CLzmaEncHandle pp, ISeqInStream *inStream, UInt32 keepWindowSize,
ISzAlloc *alloc, ISzAlloc *allocBig);
SRes LzmaEnc_MemPrepare(CLzmaEncHandle pp, const Byte *src, SizeT srcLen,
UInt32 keepWindowSize, ISzAlloc *alloc, ISzAlloc *allocBig);
SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, Bool reInit,
Byte *dest, size_t *destLen, UInt32 desiredPackSize, UInt32 *unpackSize);
const Byte *LzmaEnc_GetCurBuf(CLzmaEncHandle pp);
void LzmaEnc_Finish(CLzmaEncHandle pp);
void LzmaEnc_SaveState(CLzmaEncHandle pp);
void LzmaEnc_RestoreState(CLzmaEncHandle pp);
static SRes Lzma2EncInt_EncodeSubblock(CLzma2EncInt *p, Byte *outBuf,
size_t *packSizeRes, ISeqOutStream *outStream)
{
size_t packSizeLimit = *packSizeRes;
size_t packSize = packSizeLimit;
UInt32 unpackSize = LZMA2_UNPACK_SIZE_MAX;
unsigned lzHeaderSize = 5 + (p->needInitProp ? 1 : 0);
Bool useCopyBlock;
SRes res;
*packSizeRes = 0;
if (packSize < lzHeaderSize)
return SZ_ERROR_OUTPUT_EOF;
packSize -= lzHeaderSize;
LzmaEnc_SaveState(p->enc);
res = LzmaEnc_CodeOneMemBlock(p->enc, p->needInitState,
outBuf + lzHeaderSize, &packSize, LZMA2_PACK_SIZE_MAX, &unpackSize);
PRF(printf("\npackSize = %7d unpackSize = %7d ", packSize, unpackSize));
if (unpackSize == 0)
return res;
if (res == SZ_OK)
useCopyBlock = (packSize + 2 >= unpackSize || packSize > (1 << 16));
else
{
if (res != SZ_ERROR_OUTPUT_EOF)
return res;
res = SZ_OK;
useCopyBlock = True;
}
if (useCopyBlock)
{
size_t destPos = 0;
PRF(printf("################# COPY "));
while (unpackSize > 0)
{
UInt32 u = (unpackSize < LZMA2_COPY_CHUNK_SIZE) ? unpackSize : LZMA2_COPY_CHUNK_SIZE;
if (packSizeLimit - destPos < u + 3)
return SZ_ERROR_OUTPUT_EOF;
outBuf[destPos++] = (Byte)(p->srcPos == 0 ? LZMA2_CONTROL_COPY_RESET_DIC : LZMA2_CONTROL_COPY_NO_RESET);
outBuf[destPos++] = (Byte)((u - 1) >> 8);
outBuf[destPos++] = (Byte)(u - 1);
memcpy(outBuf + destPos, LzmaEnc_GetCurBuf(p->enc) - unpackSize, u);
unpackSize -= u;
destPos += u;
p->srcPos += u;
if (outStream)
{
*packSizeRes += destPos;
if (outStream->Write(outStream, outBuf, destPos) != destPos)
return SZ_ERROR_WRITE;
destPos = 0;
}
else
*packSizeRes = destPos;
/* needInitState = True; */
}
LzmaEnc_RestoreState(p->enc);
return SZ_OK;
}
{
size_t destPos = 0;
UInt32 u = unpackSize - 1;
UInt32 pm = (UInt32)(packSize - 1);
unsigned mode = (p->srcPos == 0) ? 3 : (p->needInitState ? (p->needInitProp ? 2 : 1) : 0);
PRF(printf(" "));
outBuf[destPos++] = (Byte)(LZMA2_CONTROL_LZMA | (mode << 5) | ((u >> 16) & 0x1F));
outBuf[destPos++] = (Byte)(u >> 8);
outBuf[destPos++] = (Byte)u;
outBuf[destPos++] = (Byte)(pm >> 8);
outBuf[destPos++] = (Byte)pm;
if (p->needInitProp)
outBuf[destPos++] = p->props;
p->needInitProp = False;
p->needInitState = False;
destPos += packSize;
p->srcPos += unpackSize;
if (outStream)
if (outStream->Write(outStream, outBuf, destPos) != destPos)
return SZ_ERROR_WRITE;
*packSizeRes = destPos;
return SZ_OK;
}
}
/* ---------- Lzma2 Props ---------- */
void Lzma2EncProps_Init(CLzma2EncProps *p)
{
LzmaEncProps_Init(&p->lzmaProps);
p->numTotalThreads = -1;
p->numBlockThreads = -1;
p->blockSize = 0;
}
void Lzma2EncProps_Normalize(CLzma2EncProps *p)
{
int t1, t1n, t2, t3;
{
CLzmaEncProps lzmaProps = p->lzmaProps;
LzmaEncProps_Normalize(&lzmaProps);
t1n = lzmaProps.numThreads;
}
t1 = p->lzmaProps.numThreads;
t2 = p->numBlockThreads;
t3 = p->numTotalThreads;
if (t2 > NUM_MT_CODER_THREADS_MAX)
t2 = NUM_MT_CODER_THREADS_MAX;
if (t3 <= 0)
{
if (t2 <= 0)
t2 = 1;
t3 = t1n * t2;
}
else if (t2 <= 0)
{
t2 = t3 / t1n;
if (t2 == 0)
{
t1 = 1;
t2 = t3;
}
if (t2 > NUM_MT_CODER_THREADS_MAX)
t2 = NUM_MT_CODER_THREADS_MAX;
}
else if (t1 <= 0)
{
t1 = t3 / t2;
if (t1 == 0)
t1 = 1;
}
else
t3 = t1n * t2;
p->lzmaProps.numThreads = t1;
p->numBlockThreads = t2;
p->numTotalThreads = t3;
LzmaEncProps_Normalize(&p->lzmaProps);
if (p->blockSize == 0)
{
UInt32 dictSize = p->lzmaProps.dictSize;
UInt64 blockSize = (UInt64)dictSize << 2;
const UInt32 kMinSize = (UInt32)1 << 20;
const UInt32 kMaxSize = (UInt32)1 << 28;
if (blockSize < kMinSize) blockSize = kMinSize;
if (blockSize > kMaxSize) blockSize = kMaxSize;
if (blockSize < dictSize) blockSize = dictSize;
p->blockSize = (size_t)blockSize;
}
}
static SRes Progress(ICompressProgress *p, UInt64 inSize, UInt64 outSize)
{
return (p && p->Progress(p, inSize, outSize) != SZ_OK) ? SZ_ERROR_PROGRESS : SZ_OK;
}
/* ---------- Lzma2 ---------- */
typedef struct
{
Byte propEncoded;
CLzma2EncProps props;
Byte *outBuf;
ISzAlloc *alloc;
ISzAlloc *allocBig;
CLzma2EncInt coders[NUM_MT_CODER_THREADS_MAX];
#ifndef _7ZIP_ST
CMtCoder mtCoder;
#endif
} CLzma2Enc;
/* ---------- Lzma2EncThread ---------- */
static SRes Lzma2Enc_EncodeMt1(CLzma2EncInt *p, CLzma2Enc *mainEncoder,
ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress)
{
UInt64 packTotal = 0;
SRes res = SZ_OK;
if (mainEncoder->outBuf == 0)
{
mainEncoder->outBuf = (Byte *)IAlloc_Alloc(mainEncoder->alloc, LZMA2_CHUNK_SIZE_COMPRESSED_MAX);
if (mainEncoder->outBuf == 0)
return SZ_ERROR_MEM;
}
RINOK(Lzma2EncInt_Init(p, &mainEncoder->props));
RINOK(LzmaEnc_PrepareForLzma2(p->enc, inStream, LZMA2_KEEP_WINDOW_SIZE,
mainEncoder->alloc, mainEncoder->allocBig));
for (;;)
{
size_t packSize = LZMA2_CHUNK_SIZE_COMPRESSED_MAX;
res = Lzma2EncInt_EncodeSubblock(p, mainEncoder->outBuf, &packSize, outStream);
if (res != SZ_OK)
break;
packTotal += packSize;
res = Progress(progress, p->srcPos, packTotal);
if (res != SZ_OK)
break;
if (packSize == 0)
break;
}
LzmaEnc_Finish(p->enc);
if (res == SZ_OK)
{
Byte b = 0;
if (outStream->Write(outStream, &b, 1) != 1)
return SZ_ERROR_WRITE;
}
return res;
}
#ifndef _7ZIP_ST
typedef struct
{
IMtCoderCallback funcTable;
CLzma2Enc *lzma2Enc;
} CMtCallbackImp;
static SRes MtCallbackImp_Code(void *pp, unsigned index, Byte *dest, size_t *destSize,
const Byte *src, size_t srcSize, int finished)
{
CMtCallbackImp *imp = (CMtCallbackImp *)pp;
CLzma2Enc *mainEncoder = imp->lzma2Enc;
CLzma2EncInt *p = &mainEncoder->coders[index];
SRes res = SZ_OK;
{
size_t destLim = *destSize;
*destSize = 0;
if (srcSize != 0)
{
RINOK(Lzma2EncInt_Init(p, &mainEncoder->props));
RINOK(LzmaEnc_MemPrepare(p->enc, src, srcSize, LZMA2_KEEP_WINDOW_SIZE,
mainEncoder->alloc, mainEncoder->allocBig));
while (p->srcPos < srcSize)
{
size_t packSize = destLim - *destSize;
res = Lzma2EncInt_EncodeSubblock(p, dest + *destSize, &packSize, NULL);
if (res != SZ_OK)
break;
*destSize += packSize;
if (packSize == 0)
{
res = SZ_ERROR_FAIL;
break;
}
if (MtProgress_Set(&mainEncoder->mtCoder.mtProgress, index, p->srcPos, *destSize) != SZ_OK)
{
res = SZ_ERROR_PROGRESS;
break;
}
}
LzmaEnc_Finish(p->enc);
if (res != SZ_OK)
return res;
}
if (finished)
{
if (*destSize == destLim)
return SZ_ERROR_OUTPUT_EOF;
dest[(*destSize)++] = 0;
}
}
return res;
}
#endif
/* ---------- Lzma2Enc ---------- */
CLzma2EncHandle Lzma2Enc_Create(ISzAlloc *alloc, ISzAlloc *allocBig)
{
CLzma2Enc *p = (CLzma2Enc *)alloc->Alloc(alloc, sizeof(CLzma2Enc));
if (p == 0)
return NULL;
Lzma2EncProps_Init(&p->props);
Lzma2EncProps_Normalize(&p->props);
p->outBuf = 0;
p->alloc = alloc;
p->allocBig = allocBig;
{
unsigned i;
for (i = 0; i < NUM_MT_CODER_THREADS_MAX; i++)
p->coders[i].enc = 0;
}
#ifndef _7ZIP_ST
MtCoder_Construct(&p->mtCoder);
#endif
return p;
}
void Lzma2Enc_Destroy(CLzma2EncHandle pp)
{
CLzma2Enc *p = (CLzma2Enc *)pp;
unsigned i;
for (i = 0; i < NUM_MT_CODER_THREADS_MAX; i++)
{
CLzma2EncInt *t = &p->coders[i];
if (t->enc)
{
LzmaEnc_Destroy(t->enc, p->alloc, p->allocBig);
t->enc = 0;
}
}
#ifndef _7ZIP_ST
MtCoder_Destruct(&p->mtCoder);
#endif
IAlloc_Free(p->alloc, p->outBuf);
IAlloc_Free(p->alloc, pp);
}
SRes Lzma2Enc_SetProps(CLzma2EncHandle pp, const CLzma2EncProps *props)
{
CLzma2Enc *p = (CLzma2Enc *)pp;
CLzmaEncProps lzmaProps = props->lzmaProps;
LzmaEncProps_Normalize(&lzmaProps);
if (lzmaProps.lc + lzmaProps.lp > LZMA2_LCLP_MAX)
return SZ_ERROR_PARAM;
p->props = *props;
Lzma2EncProps_Normalize(&p->props);
return SZ_OK;
}
Byte Lzma2Enc_WriteProperties(CLzma2EncHandle pp)
{
CLzma2Enc *p = (CLzma2Enc *)pp;
unsigned i;
UInt32 dicSize = LzmaEncProps_GetDictSize(&p->props.lzmaProps);
for (i = 0; i < 40; i++)
if (dicSize <= LZMA2_DIC_SIZE_FROM_PROP(i))
break;
return (Byte)i;
}
SRes Lzma2Enc_Encode(CLzma2EncHandle pp,
ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress)
{
CLzma2Enc *p = (CLzma2Enc *)pp;
int i;
for (i = 0; i < p->props.numBlockThreads; i++)
{
CLzma2EncInt *t = &p->coders[i];
if (t->enc == NULL)
{
t->enc = LzmaEnc_Create(p->alloc);
if (t->enc == NULL)
return SZ_ERROR_MEM;
}
}
#ifndef _7ZIP_ST
if (p->props.numBlockThreads <= 1)
#endif
return Lzma2Enc_EncodeMt1(&p->coders[0], p, outStream, inStream, progress);
#ifndef _7ZIP_ST
{
CMtCallbackImp mtCallback;
mtCallback.funcTable.Code = MtCallbackImp_Code;
mtCallback.lzma2Enc = p;
p->mtCoder.progress = progress;
p->mtCoder.inStream = inStream;
p->mtCoder.outStream = outStream;
p->mtCoder.alloc = p->alloc;
p->mtCoder.mtCallback = &mtCallback.funcTable;
p->mtCoder.blockSize = p->props.blockSize;
p->mtCoder.destBlockSize = p->props.blockSize + (p->props.blockSize >> 10) + 16;
p->mtCoder.numThreads = p->props.numBlockThreads;
return MtCoder_Code(&p->mtCoder);
}
#endif
}

View File

@ -0,0 +1,66 @@
/* Lzma2Enc.h -- LZMA2 Encoder
2009-02-07 : Igor Pavlov : Public domain */
#ifndef __LZMA2_ENC_H
#define __LZMA2_ENC_H
#include "LzmaEnc.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct
{
CLzmaEncProps lzmaProps;
size_t blockSize;
int numBlockThreads;
int numTotalThreads;
} CLzma2EncProps;
void Lzma2EncProps_Init(CLzma2EncProps *p);
void Lzma2EncProps_Normalize(CLzma2EncProps *p);
/* ---------- CLzmaEnc2Handle Interface ---------- */
/* Lzma2Enc_* functions can return the following exit codes:
Returns:
SZ_OK - OK
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_PARAM - Incorrect paramater in props
SZ_ERROR_WRITE - Write callback error
SZ_ERROR_PROGRESS - some break from progress callback
SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
*/
typedef void * CLzma2EncHandle;
CLzma2EncHandle Lzma2Enc_Create(ISzAlloc *alloc, ISzAlloc *allocBig);
void Lzma2Enc_Destroy(CLzma2EncHandle p);
SRes Lzma2Enc_SetProps(CLzma2EncHandle p, const CLzma2EncProps *props);
Byte Lzma2Enc_WriteProperties(CLzma2EncHandle p);
SRes Lzma2Enc_Encode(CLzma2EncHandle p,
ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress);
/* ---------- One Call Interface ---------- */
/* Lzma2Encode
Return code:
SZ_OK - OK
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_PARAM - Incorrect paramater
SZ_ERROR_OUTPUT_EOF - output buffer overflow
SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
*/
/*
SRes Lzma2Encode(Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
const CLzmaEncProps *props, Byte *propsEncoded, int writeEndMark,
ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig);
*/
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,111 @@
/* Lzma86.h -- LZMA + x86 (BCJ) Filter
2009-08-14 : Igor Pavlov : Public domain */
#ifndef __LZMA86_H
#define __LZMA86_H
#include "Types.h"
EXTERN_C_BEGIN
#define LZMA86_SIZE_OFFSET (1 + 5)
#define LZMA86_HEADER_SIZE (LZMA86_SIZE_OFFSET + 8)
/*
It's an example for LZMA + x86 Filter use.
You can use .lzma86 extension, if you write that stream to file.
.lzma86 header adds one additional byte to standard .lzma header.
.lzma86 header (14 bytes):
Offset Size Description
0 1 = 0 - no filter, pure LZMA
= 1 - x86 filter + LZMA
1 1 lc, lp and pb in encoded form
2 4 dictSize (little endian)
6 8 uncompressed size (little endian)
Lzma86_Encode
-------------
level - compression level: 0 <= level <= 9, the default value for "level" is 5.
dictSize - The dictionary size in bytes. The maximum value is
128 MB = (1 << 27) bytes for 32-bit version
1 GB = (1 << 30) bytes for 64-bit version
The default value is 16 MB = (1 << 24) bytes, for level = 5.
It's recommended to use the dictionary that is larger than 4 KB and
that can be calculated as (1 << N) or (3 << N) sizes.
For better compression ratio dictSize must be >= inSize.
filterMode:
SZ_FILTER_NO - no Filter
SZ_FILTER_YES - x86 Filter
SZ_FILTER_AUTO - it tries both alternatives to select best.
Encoder will use 2 or 3 passes:
2 passes when FILTER_NO provides better compression.
3 passes when FILTER_YES provides better compression.
Lzma86Encode allocates Data with MyAlloc functions.
RAM Requirements for compressing:
RamSize = dictionarySize * 11.5 + 6MB + FilterBlockSize
filterMode FilterBlockSize
SZ_FILTER_NO 0
SZ_FILTER_YES inSize
SZ_FILTER_AUTO inSize
Return code:
SZ_OK - OK
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_PARAM - Incorrect paramater
SZ_ERROR_OUTPUT_EOF - output buffer overflow
SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
*/
enum ESzFilterMode
{
SZ_FILTER_NO,
SZ_FILTER_YES,
SZ_FILTER_AUTO
};
SRes Lzma86_Encode(Byte *dest, size_t *destLen, const Byte *src, size_t srcLen,
int level, UInt32 dictSize, int filterMode);
/*
Lzma86_GetUnpackSize:
In:
src - input data
srcLen - input data size
Out:
unpackSize - size of uncompressed stream
Return code:
SZ_OK - OK
SZ_ERROR_INPUT_EOF - Error in headers
*/
SRes Lzma86_GetUnpackSize(const Byte *src, SizeT srcLen, UInt64 *unpackSize);
/*
Lzma86_Decode:
In:
dest - output data
destLen - output data size
src - input data
srcLen - input data size
Out:
destLen - processed output size
srcLen - processed input size
Return code:
SZ_OK - OK
SZ_ERROR_DATA - Data error
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_UNSUPPORTED - unsupported file
SZ_ERROR_INPUT_EOF - it needs more bytes in input buffer
*/
SRes Lzma86_Decode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen);
EXTERN_C_END
#endif

View File

@ -0,0 +1,56 @@
/* Lzma86Dec.c -- LZMA + x86 (BCJ) Filter Decoder
2009-08-14 : Igor Pavlov : Public domain */
#include "Lzma86.h"
#include "Alloc.h"
#include "Bra.h"
#include "LzmaDec.h"
static void *SzAlloc(void *p, size_t size) { p = p; return MyAlloc(size); }
static void SzFree(void *p, void *address) { p = p; MyFree(address); }
SRes Lzma86_GetUnpackSize(const Byte *src, SizeT srcLen, UInt64 *unpackSize)
{
unsigned i;
if (srcLen < LZMA86_HEADER_SIZE)
return SZ_ERROR_INPUT_EOF;
*unpackSize = 0;
for (i = 0; i < sizeof(UInt64); i++)
*unpackSize += ((UInt64)src[LZMA86_SIZE_OFFSET + i]) << (8 * i);
return SZ_OK;
}
SRes Lzma86_Decode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen)
{
ISzAlloc g_Alloc = { SzAlloc, SzFree };
SRes res;
int useFilter;
SizeT inSizePure;
ELzmaStatus status;
if (*srcLen < LZMA86_HEADER_SIZE)
return SZ_ERROR_INPUT_EOF;
useFilter = src[0];
if (useFilter > 1)
{
*destLen = 0;
return SZ_ERROR_UNSUPPORTED;
}
inSizePure = *srcLen - LZMA86_HEADER_SIZE;
res = LzmaDecode(dest, destLen, src + LZMA86_HEADER_SIZE, &inSizePure,
src + 1, LZMA_PROPS_SIZE, LZMA_FINISH_ANY, &status, &g_Alloc);
*srcLen = inSizePure + LZMA86_HEADER_SIZE;
if (res != SZ_OK)
return res;
if (useFilter == 1)
{
UInt32 x86State;
x86_Convert_Init(x86State);
x86_Convert(dest, *destLen, 0, &x86State, 0);
}
return SZ_OK;
}

View File

@ -0,0 +1,108 @@
/* Lzma86Enc.c -- LZMA + x86 (BCJ) Filter Encoder
2009-08-14 : Igor Pavlov : Public domain */
#include <string.h>
#include "Lzma86.h"
#include "Alloc.h"
#include "Bra.h"
#include "LzmaEnc.h"
#define SZE_OUT_OVERFLOW SZE_DATA_ERROR
static void *SzAlloc(void *p, size_t size) { p = p; return MyAlloc(size); }
static void SzFree(void *p, void *address) { p = p; MyFree(address); }
int Lzma86_Encode(Byte *dest, size_t *destLen, const Byte *src, size_t srcLen,
int level, UInt32 dictSize, int filterMode)
{
ISzAlloc g_Alloc = { SzAlloc, SzFree };
size_t outSize2 = *destLen;
Byte *filteredStream;
Bool useFilter;
int mainResult = SZ_ERROR_OUTPUT_EOF;
CLzmaEncProps props;
LzmaEncProps_Init(&props);
props.level = level;
props.dictSize = dictSize;
*destLen = 0;
if (outSize2 < LZMA86_HEADER_SIZE)
return SZ_ERROR_OUTPUT_EOF;
{
int i;
UInt64 t = srcLen;
for (i = 0; i < 8; i++, t >>= 8)
dest[LZMA86_SIZE_OFFSET + i] = (Byte)t;
}
filteredStream = 0;
useFilter = (filterMode != SZ_FILTER_NO);
if (useFilter)
{
if (srcLen != 0)
{
filteredStream = (Byte *)MyAlloc(srcLen);
if (filteredStream == 0)
return SZ_ERROR_MEM;
memcpy(filteredStream, src, srcLen);
}
{
UInt32 x86State;
x86_Convert_Init(x86State);
x86_Convert(filteredStream, srcLen, 0, &x86State, 1);
}
}
{
size_t minSize = 0;
Bool bestIsFiltered = False;
/* passes for SZ_FILTER_AUTO:
0 - BCJ + LZMA
1 - LZMA
2 - BCJ + LZMA agaian, if pass 0 (BCJ + LZMA) is better.
*/
int numPasses = (filterMode == SZ_FILTER_AUTO) ? 3 : 1;
int i;
for (i = 0; i < numPasses; i++)
{
size_t outSizeProcessed = outSize2 - LZMA86_HEADER_SIZE;
size_t outPropsSize = 5;
SRes curRes;
Bool curModeIsFiltered = (numPasses > 1 && i == numPasses - 1);
if (curModeIsFiltered && !bestIsFiltered)
break;
if (useFilter && i == 0)
curModeIsFiltered = True;
curRes = LzmaEncode(dest + LZMA86_HEADER_SIZE, &outSizeProcessed,
curModeIsFiltered ? filteredStream : src, srcLen,
&props, dest + 1, &outPropsSize, 0,
NULL, &g_Alloc, &g_Alloc);
if (curRes != SZ_ERROR_OUTPUT_EOF)
{
if (curRes != SZ_OK)
{
mainResult = curRes;
break;
}
if (outSizeProcessed <= minSize || mainResult != SZ_OK)
{
minSize = outSizeProcessed;
bestIsFiltered = curModeIsFiltered;
mainResult = SZ_OK;
}
}
}
dest[0] = (bestIsFiltered ? 1 : 0);
*destLen = LZMA86_HEADER_SIZE + minSize;
}
if (useFilter)
MyFree(filteredStream);
return mainResult;
}

View File

@ -0,0 +1,999 @@
/* LzmaDec.c -- LZMA Decoder
2009-09-20 : Igor Pavlov : Public domain */
#include "LzmaDec.h"
#include <string.h>
#define kNumTopBits 24
#define kTopValue ((UInt32)1 << kNumTopBits)
#define kNumBitModelTotalBits 11
#define kBitModelTotal (1 << kNumBitModelTotalBits)
#define kNumMoveBits 5
#define RC_INIT_SIZE 5
#define NORMALIZE if (range < kTopValue) { range <<= 8; code = (code << 8) | (*buf++); }
#define IF_BIT_0(p) ttt = *(p); NORMALIZE; bound = (range >> kNumBitModelTotalBits) * ttt; if (code < bound)
#define UPDATE_0(p) range = bound; *(p) = (CLzmaProb)(ttt + ((kBitModelTotal - ttt) >> kNumMoveBits));
#define UPDATE_1(p) range -= bound; code -= bound; *(p) = (CLzmaProb)(ttt - (ttt >> kNumMoveBits));
#define GET_BIT2(p, i, A0, A1) IF_BIT_0(p) \
{ UPDATE_0(p); i = (i + i); A0; } else \
{ UPDATE_1(p); i = (i + i) + 1; A1; }
#define GET_BIT(p, i) GET_BIT2(p, i, ; , ;)
#define TREE_GET_BIT(probs, i) { GET_BIT((probs + i), i); }
#define TREE_DECODE(probs, limit, i) \
{ i = 1; do { TREE_GET_BIT(probs, i); } while (i < limit); i -= limit; }
/* #define _LZMA_SIZE_OPT */
#ifdef _LZMA_SIZE_OPT
#define TREE_6_DECODE(probs, i) TREE_DECODE(probs, (1 << 6), i)
#else
#define TREE_6_DECODE(probs, i) \
{ i = 1; \
TREE_GET_BIT(probs, i); \
TREE_GET_BIT(probs, i); \
TREE_GET_BIT(probs, i); \
TREE_GET_BIT(probs, i); \
TREE_GET_BIT(probs, i); \
TREE_GET_BIT(probs, i); \
i -= 0x40; }
#endif
#define NORMALIZE_CHECK if (range < kTopValue) { if (buf >= bufLimit) return DUMMY_ERROR; range <<= 8; code = (code << 8) | (*buf++); }
#define IF_BIT_0_CHECK(p) ttt = *(p); NORMALIZE_CHECK; bound = (range >> kNumBitModelTotalBits) * ttt; if (code < bound)
#define UPDATE_0_CHECK range = bound;
#define UPDATE_1_CHECK range -= bound; code -= bound;
#define GET_BIT2_CHECK(p, i, A0, A1) IF_BIT_0_CHECK(p) \
{ UPDATE_0_CHECK; i = (i + i); A0; } else \
{ UPDATE_1_CHECK; i = (i + i) + 1; A1; }
#define GET_BIT_CHECK(p, i) GET_BIT2_CHECK(p, i, ; , ;)
#define TREE_DECODE_CHECK(probs, limit, i) \
{ i = 1; do { GET_BIT_CHECK(probs + i, i) } while (i < limit); i -= limit; }
#define kNumPosBitsMax 4
#define kNumPosStatesMax (1 << kNumPosBitsMax)
#define kLenNumLowBits 3
#define kLenNumLowSymbols (1 << kLenNumLowBits)
#define kLenNumMidBits 3
#define kLenNumMidSymbols (1 << kLenNumMidBits)
#define kLenNumHighBits 8
#define kLenNumHighSymbols (1 << kLenNumHighBits)
#define LenChoice 0
#define LenChoice2 (LenChoice + 1)
#define LenLow (LenChoice2 + 1)
#define LenMid (LenLow + (kNumPosStatesMax << kLenNumLowBits))
#define LenHigh (LenMid + (kNumPosStatesMax << kLenNumMidBits))
#define kNumLenProbs (LenHigh + kLenNumHighSymbols)
#define kNumStates 12
#define kNumLitStates 7
#define kStartPosModelIndex 4
#define kEndPosModelIndex 14
#define kNumFullDistances (1 << (kEndPosModelIndex >> 1))
#define kNumPosSlotBits 6
#define kNumLenToPosStates 4
#define kNumAlignBits 4
#define kAlignTableSize (1 << kNumAlignBits)
#define kMatchMinLen 2
#define kMatchSpecLenStart (kMatchMinLen + kLenNumLowSymbols + kLenNumMidSymbols + kLenNumHighSymbols)
#define IsMatch 0
#define IsRep (IsMatch + (kNumStates << kNumPosBitsMax))
#define IsRepG0 (IsRep + kNumStates)
#define IsRepG1 (IsRepG0 + kNumStates)
#define IsRepG2 (IsRepG1 + kNumStates)
#define IsRep0Long (IsRepG2 + kNumStates)
#define PosSlot (IsRep0Long + (kNumStates << kNumPosBitsMax))
#define SpecPos (PosSlot + (kNumLenToPosStates << kNumPosSlotBits))
#define Align (SpecPos + kNumFullDistances - kEndPosModelIndex)
#define LenCoder (Align + kAlignTableSize)
#define RepLenCoder (LenCoder + kNumLenProbs)
#define Literal (RepLenCoder + kNumLenProbs)
#define LZMA_BASE_SIZE 1846
#define LZMA_LIT_SIZE 768
#define LzmaProps_GetNumProbs(p) ((UInt32)LZMA_BASE_SIZE + (LZMA_LIT_SIZE << ((p)->lc + (p)->lp)))
#if Literal != LZMA_BASE_SIZE
StopCompilingDueBUG
#endif
#define LZMA_DIC_MIN (1 << 12)
/* First LZMA-symbol is always decoded.
And it decodes new LZMA-symbols while (buf < bufLimit), but "buf" is without last normalization
Out:
Result:
SZ_OK - OK
SZ_ERROR_DATA - Error
p->remainLen:
< kMatchSpecLenStart : normal remain
= kMatchSpecLenStart : finished
= kMatchSpecLenStart + 1 : Flush marker
= kMatchSpecLenStart + 2 : State Init Marker
*/
static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte *bufLimit)
{
CLzmaProb *probs = p->probs;
unsigned state = p->state;
UInt32 rep0 = p->reps[0], rep1 = p->reps[1], rep2 = p->reps[2], rep3 = p->reps[3];
unsigned pbMask = ((unsigned)1 << (p->prop.pb)) - 1;
unsigned lpMask = ((unsigned)1 << (p->prop.lp)) - 1;
unsigned lc = p->prop.lc;
Byte *dic = p->dic;
SizeT dicBufSize = p->dicBufSize;
SizeT dicPos = p->dicPos;
UInt32 processedPos = p->processedPos;
UInt32 checkDicSize = p->checkDicSize;
unsigned len = 0;
const Byte *buf = p->buf;
UInt32 range = p->range;
UInt32 code = p->code;
do
{
CLzmaProb *prob;
UInt32 bound;
unsigned ttt;
unsigned posState = processedPos & pbMask;
prob = probs + IsMatch + (state << kNumPosBitsMax) + posState;
IF_BIT_0(prob)
{
unsigned symbol;
UPDATE_0(prob);
prob = probs + Literal;
if (checkDicSize != 0 || processedPos != 0)
prob += (LZMA_LIT_SIZE * (((processedPos & lpMask) << lc) +
(dic[(dicPos == 0 ? dicBufSize : dicPos) - 1] >> (8 - lc))));
if (state < kNumLitStates)
{
state -= (state < 4) ? state : 3;
symbol = 1;
do { GET_BIT(prob + symbol, symbol) } while (symbol < 0x100);
}
else
{
unsigned matchByte = p->dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)];
unsigned offs = 0x100;
state -= (state < 10) ? 3 : 6;
symbol = 1;
do
{
unsigned bit;
CLzmaProb *probLit;
matchByte <<= 1;
bit = (matchByte & offs);
probLit = prob + offs + bit + symbol;
GET_BIT2(probLit, symbol, offs &= ~bit, offs &= bit)
}
while (symbol < 0x100);
}
dic[dicPos++] = (Byte)(symbol & 0xFF);
processedPos++;
continue;
}
else
{
UPDATE_1(prob);
prob = probs + IsRep + state;
IF_BIT_0(prob)
{
UPDATE_0(prob);
state += kNumStates;
prob = probs + LenCoder;
}
else
{
UPDATE_1(prob);
if (checkDicSize == 0 && processedPos == 0)
return SZ_ERROR_DATA;
prob = probs + IsRepG0 + state;
IF_BIT_0(prob)
{
UPDATE_0(prob);
prob = probs + IsRep0Long + (state << kNumPosBitsMax) + posState;
IF_BIT_0(prob)
{
UPDATE_0(prob);
dic[dicPos] = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)];
dicPos++;
processedPos++;
state = state < kNumLitStates ? 9 : 11;
continue;
}
UPDATE_1(prob);
}
else
{
UInt32 distance;
UPDATE_1(prob);
prob = probs + IsRepG1 + state;
IF_BIT_0(prob)
{
UPDATE_0(prob);
distance = rep1;
}
else
{
UPDATE_1(prob);
prob = probs + IsRepG2 + state;
IF_BIT_0(prob)
{
UPDATE_0(prob);
distance = rep2;
}
else
{
UPDATE_1(prob);
distance = rep3;
rep3 = rep2;
}
rep2 = rep1;
}
rep1 = rep0;
rep0 = distance;
}
state = state < kNumLitStates ? 8 : 11;
prob = probs + RepLenCoder;
}
{
unsigned limit, offset;
CLzmaProb *probLen = prob + LenChoice;
IF_BIT_0(probLen)
{
UPDATE_0(probLen);
probLen = prob + LenLow + (posState << kLenNumLowBits);
offset = 0;
limit = (1 << kLenNumLowBits);
}
else
{
UPDATE_1(probLen);
probLen = prob + LenChoice2;
IF_BIT_0(probLen)
{
UPDATE_0(probLen);
probLen = prob + LenMid + (posState << kLenNumMidBits);
offset = kLenNumLowSymbols;
limit = (1 << kLenNumMidBits);
}
else
{
UPDATE_1(probLen);
probLen = prob + LenHigh;
offset = kLenNumLowSymbols + kLenNumMidSymbols;
limit = (1 << kLenNumHighBits);
}
}
TREE_DECODE(probLen, limit, len);
len += offset;
}
if (state >= kNumStates)
{
UInt32 distance;
prob = probs + PosSlot +
((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << kNumPosSlotBits);
TREE_6_DECODE(prob, distance);
if (distance >= kStartPosModelIndex)
{
unsigned posSlot = (unsigned)distance;
int numDirectBits = (int)(((distance >> 1) - 1));
distance = (2 | (distance & 1));
if (posSlot < kEndPosModelIndex)
{
distance <<= numDirectBits;
prob = probs + SpecPos + distance - posSlot - 1;
{
UInt32 mask = 1;
unsigned i = 1;
do
{
GET_BIT2(prob + i, i, ; , distance |= mask);
mask <<= 1;
}
while (--numDirectBits != 0);
}
}
else
{
numDirectBits -= kNumAlignBits;
do
{
NORMALIZE
range >>= 1;
{
UInt32 t;
code -= range;
t = (0 - ((UInt32)code >> 31)); /* (UInt32)((Int32)code >> 31) */
distance = (distance << 1) + (t + 1);
code += range & t;
}
/*
distance <<= 1;
if (code >= range)
{
code -= range;
distance |= 1;
}
*/
}
while (--numDirectBits != 0);
prob = probs + Align;
distance <<= kNumAlignBits;
{
unsigned i = 1;
GET_BIT2(prob + i, i, ; , distance |= 1);
GET_BIT2(prob + i, i, ; , distance |= 2);
GET_BIT2(prob + i, i, ; , distance |= 4);
GET_BIT2(prob + i, i, ; , distance |= 8);
}
if (distance == (UInt32)0xFFFFFFFF)
{
len += kMatchSpecLenStart;
state -= kNumStates;
break;
}
}
}
rep3 = rep2;
rep2 = rep1;
rep1 = rep0;
rep0 = distance + 1;
if (checkDicSize == 0)
{
if (distance >= processedPos)
return SZ_ERROR_DATA;
}
else if (distance >= checkDicSize)
return SZ_ERROR_DATA;
state = (state < kNumStates + kNumLitStates) ? kNumLitStates : kNumLitStates + 3;
}
len += kMatchMinLen;
if (limit == dicPos)
return SZ_ERROR_DATA;
{
SizeT rem = limit - dicPos;
unsigned curLen = ((rem < len) ? (unsigned)rem : len);
SizeT pos = (dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0);
processedPos += curLen;
len -= curLen;
if (pos + curLen <= dicBufSize)
{
Byte *dest = dic + dicPos;
ptrdiff_t src = (ptrdiff_t)pos - (ptrdiff_t)dicPos;
const Byte *lim = dest + curLen;
dicPos += curLen;
do
*(dest) = (Byte)*(dest + src);
while (++dest != lim);
}
else
{
do
{
dic[dicPos++] = dic[pos];
if (++pos == dicBufSize)
pos = 0;
}
while (--curLen != 0);
}
}
}
}
while (dicPos < limit && buf < bufLimit);
NORMALIZE;
p->buf = buf;
p->range = range;
p->code = code;
p->remainLen = len;
p->dicPos = dicPos;
p->processedPos = processedPos;
p->reps[0] = rep0;
p->reps[1] = rep1;
p->reps[2] = rep2;
p->reps[3] = rep3;
p->state = state;
return SZ_OK;
}
static void MY_FAST_CALL LzmaDec_WriteRem(CLzmaDec *p, SizeT limit)
{
if (p->remainLen != 0 && p->remainLen < kMatchSpecLenStart)
{
Byte *dic = p->dic;
SizeT dicPos = p->dicPos;
SizeT dicBufSize = p->dicBufSize;
unsigned len = p->remainLen;
UInt32 rep0 = p->reps[0];
if (limit - dicPos < len)
len = (unsigned)(limit - dicPos);
if (p->checkDicSize == 0 && p->prop.dicSize - p->processedPos <= len)
p->checkDicSize = p->prop.dicSize;
p->processedPos += len;
p->remainLen -= len;
while (len-- != 0)
{
dic[dicPos] = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)];
dicPos++;
}
p->dicPos = dicPos;
}
}
static int MY_FAST_CALL LzmaDec_DecodeReal2(CLzmaDec *p, SizeT limit, const Byte *bufLimit)
{
do
{
SizeT limit2 = limit;
if (p->checkDicSize == 0)
{
UInt32 rem = p->prop.dicSize - p->processedPos;
if (limit - p->dicPos > rem)
limit2 = p->dicPos + rem;
}
RINOK(LzmaDec_DecodeReal(p, limit2, bufLimit));
if (p->processedPos >= p->prop.dicSize)
p->checkDicSize = p->prop.dicSize;
LzmaDec_WriteRem(p, limit);
}
while (p->dicPos < limit && p->buf < bufLimit && p->remainLen < kMatchSpecLenStart);
if (p->remainLen > kMatchSpecLenStart)
{
p->remainLen = kMatchSpecLenStart;
}
return 0;
}
typedef enum
{
DUMMY_ERROR, /* unexpected end of input stream */
DUMMY_LIT,
DUMMY_MATCH,
DUMMY_REP
} ELzmaDummy;
static ELzmaDummy LzmaDec_TryDummy(const CLzmaDec *p, const Byte *buf, SizeT inSize)
{
UInt32 range = p->range;
UInt32 code = p->code;
const Byte *bufLimit = buf + inSize;
CLzmaProb *probs = p->probs;
unsigned state = p->state;
ELzmaDummy res;
{
CLzmaProb *prob;
UInt32 bound;
unsigned ttt;
unsigned posState = (p->processedPos) & ((1 << p->prop.pb) - 1);
prob = probs + IsMatch + (state << kNumPosBitsMax) + posState;
IF_BIT_0_CHECK(prob)
{
UPDATE_0_CHECK
/* if (bufLimit - buf >= 7) return DUMMY_LIT; */
prob = probs + Literal;
if (p->checkDicSize != 0 || p->processedPos != 0)
prob += (LZMA_LIT_SIZE *
((((p->processedPos) & ((1 << (p->prop.lp)) - 1)) << p->prop.lc) +
(p->dic[(p->dicPos == 0 ? p->dicBufSize : p->dicPos) - 1] >> (8 - p->prop.lc))));
if (state < kNumLitStates)
{
unsigned symbol = 1;
do { GET_BIT_CHECK(prob + symbol, symbol) } while (symbol < 0x100);
}
else
{
unsigned matchByte = p->dic[p->dicPos - p->reps[0] +
((p->dicPos < p->reps[0]) ? p->dicBufSize : 0)];
unsigned offs = 0x100;
unsigned symbol = 1;
do
{
unsigned bit;
CLzmaProb *probLit;
matchByte <<= 1;
bit = (matchByte & offs);
probLit = prob + offs + bit + symbol;
GET_BIT2_CHECK(probLit, symbol, offs &= ~bit, offs &= bit)
}
while (symbol < 0x100);
}
res = DUMMY_LIT;
}
else
{
unsigned len;
UPDATE_1_CHECK;
prob = probs + IsRep + state;
IF_BIT_0_CHECK(prob)
{
UPDATE_0_CHECK;
state = 0;
prob = probs + LenCoder;
res = DUMMY_MATCH;
}
else
{
UPDATE_1_CHECK;
res = DUMMY_REP;
prob = probs + IsRepG0 + state;
IF_BIT_0_CHECK(prob)
{
UPDATE_0_CHECK;
prob = probs + IsRep0Long + (state << kNumPosBitsMax) + posState;
IF_BIT_0_CHECK(prob)
{
UPDATE_0_CHECK;
NORMALIZE_CHECK;
return DUMMY_REP;
}
else
{
UPDATE_1_CHECK;
}
}
else
{
UPDATE_1_CHECK;
prob = probs + IsRepG1 + state;
IF_BIT_0_CHECK(prob)
{
UPDATE_0_CHECK;
}
else
{
UPDATE_1_CHECK;
prob = probs + IsRepG2 + state;
IF_BIT_0_CHECK(prob)
{
UPDATE_0_CHECK;
}
else
{
UPDATE_1_CHECK;
}
}
}
state = kNumStates;
prob = probs + RepLenCoder;
}
{
unsigned limit, offset;
CLzmaProb *probLen = prob + LenChoice;
IF_BIT_0_CHECK(probLen)
{
UPDATE_0_CHECK;
probLen = prob + LenLow + (posState << kLenNumLowBits);
offset = 0;
limit = 1 << kLenNumLowBits;
}
else
{
UPDATE_1_CHECK;
probLen = prob + LenChoice2;
IF_BIT_0_CHECK(probLen)
{
UPDATE_0_CHECK;
probLen = prob + LenMid + (posState << kLenNumMidBits);
offset = kLenNumLowSymbols;
limit = 1 << kLenNumMidBits;
}
else
{
UPDATE_1_CHECK;
probLen = prob + LenHigh;
offset = kLenNumLowSymbols + kLenNumMidSymbols;
limit = 1 << kLenNumHighBits;
}
}
TREE_DECODE_CHECK(probLen, limit, len);
len += offset;
}
if (state < 4)
{
unsigned posSlot;
prob = probs + PosSlot +
((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) <<
kNumPosSlotBits);
TREE_DECODE_CHECK(prob, 1 << kNumPosSlotBits, posSlot);
if (posSlot >= kStartPosModelIndex)
{
int numDirectBits = ((posSlot >> 1) - 1);
/* if (bufLimit - buf >= 8) return DUMMY_MATCH; */
if (posSlot < kEndPosModelIndex)
{
prob = probs + SpecPos + ((2 | (posSlot & 1)) << numDirectBits) - posSlot - 1;
}
else
{
numDirectBits -= kNumAlignBits;
do
{
NORMALIZE_CHECK
range >>= 1;
code -= range & (((code - range) >> 31) - 1);
/* if (code >= range) code -= range; */
}
while (--numDirectBits != 0);
prob = probs + Align;
numDirectBits = kNumAlignBits;
}
{
unsigned i = 1;
do
{
GET_BIT_CHECK(prob + i, i);
}
while (--numDirectBits != 0);
}
}
}
}
}
NORMALIZE_CHECK;
return res;
}
static void LzmaDec_InitRc(CLzmaDec *p, const Byte *data)
{
p->code = ((UInt32)data[1] << 24) | ((UInt32)data[2] << 16) | ((UInt32)data[3] << 8) | ((UInt32)data[4]);
p->range = 0xFFFFFFFF;
p->needFlush = 0;
}
void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
{
p->needFlush = 1;
p->remainLen = 0;
p->tempBufSize = 0;
if (initDic)
{
p->processedPos = 0;
p->checkDicSize = 0;
p->needInitState = 1;
}
if (initState)
p->needInitState = 1;
}
void LzmaDec_Init(CLzmaDec *p)
{
p->dicPos = 0;
LzmaDec_InitDicAndState(p, True, True);
}
static void LzmaDec_InitStateReal(CLzmaDec *p)
{
UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (p->prop.lc + p->prop.lp));
UInt32 i;
CLzmaProb *probs = p->probs;
for (i = 0; i < numProbs; i++)
probs[i] = kBitModelTotal >> 1;
p->reps[0] = p->reps[1] = p->reps[2] = p->reps[3] = 1;
p->state = 0;
p->needInitState = 0;
}
SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *srcLen,
ELzmaFinishMode finishMode, ELzmaStatus *status)
{
SizeT inSize = *srcLen;
(*srcLen) = 0;
LzmaDec_WriteRem(p, dicLimit);
*status = LZMA_STATUS_NOT_SPECIFIED;
while (p->remainLen != kMatchSpecLenStart)
{
int checkEndMarkNow;
if (p->needFlush != 0)
{
for (; inSize > 0 && p->tempBufSize < RC_INIT_SIZE; (*srcLen)++, inSize--)
p->tempBuf[p->tempBufSize++] = *src++;
if (p->tempBufSize < RC_INIT_SIZE)
{
*status = LZMA_STATUS_NEEDS_MORE_INPUT;
return SZ_OK;
}
if (p->tempBuf[0] != 0)
return SZ_ERROR_DATA;
LzmaDec_InitRc(p, p->tempBuf);
p->tempBufSize = 0;
}
checkEndMarkNow = 0;
if (p->dicPos >= dicLimit)
{
if (p->remainLen == 0 && p->code == 0)
{
*status = LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK;
return SZ_OK;
}
if (finishMode == LZMA_FINISH_ANY)
{
*status = LZMA_STATUS_NOT_FINISHED;
return SZ_OK;
}
if (p->remainLen != 0)
{
*status = LZMA_STATUS_NOT_FINISHED;
return SZ_ERROR_DATA;
}
checkEndMarkNow = 1;
}
if (p->needInitState)
LzmaDec_InitStateReal(p);
if (p->tempBufSize == 0)
{
SizeT processed;
const Byte *bufLimit;
if (inSize < LZMA_REQUIRED_INPUT_MAX || checkEndMarkNow)
{
int dummyRes = LzmaDec_TryDummy(p, src, inSize);
if (dummyRes == DUMMY_ERROR)
{
memcpy(p->tempBuf, src, inSize);
p->tempBufSize = (unsigned)inSize;
(*srcLen) += inSize;
*status = LZMA_STATUS_NEEDS_MORE_INPUT;
return SZ_OK;
}
if (checkEndMarkNow && dummyRes != DUMMY_MATCH)
{
*status = LZMA_STATUS_NOT_FINISHED;
return SZ_ERROR_DATA;
}
bufLimit = src;
}
else
bufLimit = src + inSize - LZMA_REQUIRED_INPUT_MAX;
p->buf = src;
if (LzmaDec_DecodeReal2(p, dicLimit, bufLimit) != 0)
return SZ_ERROR_DATA;
processed = (SizeT)(p->buf - src);
(*srcLen) += processed;
src += processed;
inSize -= processed;
}
else
{
unsigned rem = p->tempBufSize, lookAhead = 0;
while (rem < LZMA_REQUIRED_INPUT_MAX && lookAhead < inSize)
p->tempBuf[rem++] = src[lookAhead++];
p->tempBufSize = rem;
if (rem < LZMA_REQUIRED_INPUT_MAX || checkEndMarkNow)
{
int dummyRes = LzmaDec_TryDummy(p, p->tempBuf, rem);
if (dummyRes == DUMMY_ERROR)
{
(*srcLen) += lookAhead;
*status = LZMA_STATUS_NEEDS_MORE_INPUT;
return SZ_OK;
}
if (checkEndMarkNow && dummyRes != DUMMY_MATCH)
{
*status = LZMA_STATUS_NOT_FINISHED;
return SZ_ERROR_DATA;
}
}
p->buf = p->tempBuf;
if (LzmaDec_DecodeReal2(p, dicLimit, p->buf) != 0)
return SZ_ERROR_DATA;
lookAhead -= (rem - (unsigned)(p->buf - p->tempBuf));
(*srcLen) += lookAhead;
src += lookAhead;
inSize -= lookAhead;
p->tempBufSize = 0;
}
}
if (p->code == 0)
*status = LZMA_STATUS_FINISHED_WITH_MARK;
return (p->code == 0) ? SZ_OK : SZ_ERROR_DATA;
}
SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status)
{
SizeT outSize = *destLen;
SizeT inSize = *srcLen;
*srcLen = *destLen = 0;
for (;;)
{
SizeT inSizeCur = inSize, outSizeCur, dicPos;
ELzmaFinishMode curFinishMode;
SRes res;
if (p->dicPos == p->dicBufSize)
p->dicPos = 0;
dicPos = p->dicPos;
if (outSize > p->dicBufSize - dicPos)
{
outSizeCur = p->dicBufSize;
curFinishMode = LZMA_FINISH_ANY;
}
else
{
outSizeCur = dicPos + outSize;
curFinishMode = finishMode;
}
res = LzmaDec_DecodeToDic(p, outSizeCur, src, &inSizeCur, curFinishMode, status);
src += inSizeCur;
inSize -= inSizeCur;
*srcLen += inSizeCur;
outSizeCur = p->dicPos - dicPos;
memcpy(dest, p->dic + dicPos, outSizeCur);
dest += outSizeCur;
outSize -= outSizeCur;
*destLen += outSizeCur;
if (res != 0)
return res;
if (outSizeCur == 0 || outSize == 0)
return SZ_OK;
}
}
void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc)
{
alloc->Free(alloc, p->probs);
p->probs = 0;
}
static void LzmaDec_FreeDict(CLzmaDec *p, ISzAlloc *alloc)
{
alloc->Free(alloc, p->dic);
p->dic = 0;
}
void LzmaDec_Free(CLzmaDec *p, ISzAlloc *alloc)
{
LzmaDec_FreeProbs(p, alloc);
LzmaDec_FreeDict(p, alloc);
}
SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size)
{
UInt32 dicSize;
Byte d;
if (size < LZMA_PROPS_SIZE)
return SZ_ERROR_UNSUPPORTED;
else
dicSize = data[1] | ((UInt32)data[2] << 8) | ((UInt32)data[3] << 16) | ((UInt32)data[4] << 24);
if (dicSize < LZMA_DIC_MIN)
dicSize = LZMA_DIC_MIN;
p->dicSize = dicSize;
d = data[0];
if (d >= (9 * 5 * 5))
return SZ_ERROR_UNSUPPORTED;
p->lc = d % 9;
d /= 9;
p->pb = d / 5;
p->lp = d % 5;
return SZ_OK;
}
static SRes LzmaDec_AllocateProbs2(CLzmaDec *p, const CLzmaProps *propNew, ISzAlloc *alloc)
{
UInt32 numProbs = LzmaProps_GetNumProbs(propNew);
if (p->probs == 0 || numProbs != p->numProbs)
{
LzmaDec_FreeProbs(p, alloc);
p->probs = (CLzmaProb *)alloc->Alloc(alloc, numProbs * sizeof(CLzmaProb));
p->numProbs = numProbs;
if (p->probs == 0)
return SZ_ERROR_MEM;
}
return SZ_OK;
}
SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
{
CLzmaProps propNew;
RINOK(LzmaProps_Decode(&propNew, props, propsSize));
RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
p->prop = propNew;
return SZ_OK;
}
SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
{
CLzmaProps propNew;
SizeT dicBufSize;
RINOK(LzmaProps_Decode(&propNew, props, propsSize));
RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
dicBufSize = propNew.dicSize;
if (p->dic == 0 || dicBufSize != p->dicBufSize)
{
LzmaDec_FreeDict(p, alloc);
p->dic = (Byte *)alloc->Alloc(alloc, dicBufSize);
if (p->dic == 0)
{
LzmaDec_FreeProbs(p, alloc);
return SZ_ERROR_MEM;
}
}
p->dicBufSize = dicBufSize;
p->prop = propNew;
return SZ_OK;
}
SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,
ELzmaStatus *status, ISzAlloc *alloc)
{
CLzmaDec p;
SRes res;
SizeT inSize = *srcLen;
SizeT outSize = *destLen;
*srcLen = *destLen = 0;
if (inSize < RC_INIT_SIZE)
return SZ_ERROR_INPUT_EOF;
LzmaDec_Construct(&p);
res = LzmaDec_AllocateProbs(&p, propData, propSize, alloc);
if (res != 0)
return res;
p.dic = dest;
p.dicBufSize = outSize;
LzmaDec_Init(&p);
*srcLen = inSize;
res = LzmaDec_DecodeToDic(&p, outSize, src, srcLen, finishMode, status);
if (res == SZ_OK && *status == LZMA_STATUS_NEEDS_MORE_INPUT)
res = SZ_ERROR_INPUT_EOF;
(*destLen) = p.dicPos;
LzmaDec_FreeProbs(&p, alloc);
return res;
}

View File

@ -0,0 +1,231 @@
/* LzmaDec.h -- LZMA Decoder
2009-02-07 : Igor Pavlov : Public domain */
#ifndef __LZMA_DEC_H
#define __LZMA_DEC_H
#include "Types.h"
#ifdef __cplusplus
extern "C" {
#endif
/* #define _LZMA_PROB32 */
/* _LZMA_PROB32 can increase the speed on some CPUs,
but memory usage for CLzmaDec::probs will be doubled in that case */
#ifdef _LZMA_PROB32
#define CLzmaProb UInt32
#else
#define CLzmaProb UInt16
#endif
/* ---------- LZMA Properties ---------- */
#define LZMA_PROPS_SIZE 5
typedef struct _CLzmaProps
{
unsigned lc, lp, pb;
UInt32 dicSize;
} CLzmaProps;
/* LzmaProps_Decode - decodes properties
Returns:
SZ_OK
SZ_ERROR_UNSUPPORTED - Unsupported properties
*/
SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size);
/* ---------- LZMA Decoder state ---------- */
/* LZMA_REQUIRED_INPUT_MAX = number of required input bytes for worst case.
Num bits = log2((2^11 / 31) ^ 22) + 26 < 134 + 26 = 160; */
#define LZMA_REQUIRED_INPUT_MAX 20
typedef struct
{
CLzmaProps prop;
CLzmaProb *probs;
Byte *dic;
const Byte *buf;
UInt32 range, code;
SizeT dicPos;
SizeT dicBufSize;
UInt32 processedPos;
UInt32 checkDicSize;
unsigned state;
UInt32 reps[4];
unsigned remainLen;
int needFlush;
int needInitState;
UInt32 numProbs;
unsigned tempBufSize;
Byte tempBuf[LZMA_REQUIRED_INPUT_MAX];
} CLzmaDec;
#define LzmaDec_Construct(p) { (p)->dic = 0; (p)->probs = 0; }
void LzmaDec_Init(CLzmaDec *p);
/* There are two types of LZMA streams:
0) Stream with end mark. That end mark adds about 6 bytes to compressed size.
1) Stream without end mark. You must know exact uncompressed size to decompress such stream. */
typedef enum
{
LZMA_FINISH_ANY, /* finish at any point */
LZMA_FINISH_END /* block must be finished at the end */
} ELzmaFinishMode;
/* ELzmaFinishMode has meaning only if the decoding reaches output limit !!!
You must use LZMA_FINISH_END, when you know that current output buffer
covers last bytes of block. In other cases you must use LZMA_FINISH_ANY.
If LZMA decoder sees end marker before reaching output limit, it returns SZ_OK,
and output value of destLen will be less than output buffer size limit.
You can check status result also.
You can use multiple checks to test data integrity after full decompression:
1) Check Result and "status" variable.
2) Check that output(destLen) = uncompressedSize, if you know real uncompressedSize.
3) Check that output(srcLen) = compressedSize, if you know real compressedSize.
You must use correct finish mode in that case. */
typedef enum
{
LZMA_STATUS_NOT_SPECIFIED, /* use main error code instead */
LZMA_STATUS_FINISHED_WITH_MARK, /* stream was finished with end mark. */
LZMA_STATUS_NOT_FINISHED, /* stream was not finished */
LZMA_STATUS_NEEDS_MORE_INPUT, /* you must provide more input bytes */
LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK /* there is probability that stream was finished without end mark */
} ELzmaStatus;
/* ELzmaStatus is used only as output value for function call */
/* ---------- Interfaces ---------- */
/* There are 3 levels of interfaces:
1) Dictionary Interface
2) Buffer Interface
3) One Call Interface
You can select any of these interfaces, but don't mix functions from different
groups for same object. */
/* There are two variants to allocate state for Dictionary Interface:
1) LzmaDec_Allocate / LzmaDec_Free
2) LzmaDec_AllocateProbs / LzmaDec_FreeProbs
You can use variant 2, if you set dictionary buffer manually.
For Buffer Interface you must always use variant 1.
LzmaDec_Allocate* can return:
SZ_OK
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_UNSUPPORTED - Unsupported properties
*/
SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc);
void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc);
SRes LzmaDec_Allocate(CLzmaDec *state, const Byte *prop, unsigned propsSize, ISzAlloc *alloc);
void LzmaDec_Free(CLzmaDec *state, ISzAlloc *alloc);
/* ---------- Dictionary Interface ---------- */
/* You can use it, if you want to eliminate the overhead for data copying from
dictionary to some other external buffer.
You must work with CLzmaDec variables directly in this interface.
STEPS:
LzmaDec_Constr()
LzmaDec_Allocate()
for (each new stream)
{
LzmaDec_Init()
while (it needs more decompression)
{
LzmaDec_DecodeToDic()
use data from CLzmaDec::dic and update CLzmaDec::dicPos
}
}
LzmaDec_Free()
*/
/* LzmaDec_DecodeToDic
The decoding to internal dictionary buffer (CLzmaDec::dic).
You must manually update CLzmaDec::dicPos, if it reaches CLzmaDec::dicBufSize !!!
finishMode:
It has meaning only if the decoding reaches output limit (dicLimit).
LZMA_FINISH_ANY - Decode just dicLimit bytes.
LZMA_FINISH_END - Stream must be finished after dicLimit.
Returns:
SZ_OK
status:
LZMA_STATUS_FINISHED_WITH_MARK
LZMA_STATUS_NOT_FINISHED
LZMA_STATUS_NEEDS_MORE_INPUT
LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK
SZ_ERROR_DATA - Data error
*/
SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit,
const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status);
/* ---------- Buffer Interface ---------- */
/* It's zlib-like interface.
See LzmaDec_DecodeToDic description for information about STEPS and return results,
but you must use LzmaDec_DecodeToBuf instead of LzmaDec_DecodeToDic and you don't need
to work with CLzmaDec variables manually.
finishMode:
It has meaning only if the decoding reaches output limit (*destLen).
LZMA_FINISH_ANY - Decode just destLen bytes.
LZMA_FINISH_END - Stream must be finished after (*destLen).
*/
SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen,
const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status);
/* ---------- One Call Interface ---------- */
/* LzmaDecode
finishMode:
It has meaning only if the decoding reaches output limit (*destLen).
LZMA_FINISH_ANY - Decode just destLen bytes.
LZMA_FINISH_END - Stream must be finished after (*destLen).
Returns:
SZ_OK
status:
LZMA_STATUS_FINISHED_WITH_MARK
LZMA_STATUS_NOT_FINISHED
LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK
SZ_ERROR_DATA - Data error
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_UNSUPPORTED - Unsupported properties
SZ_ERROR_INPUT_EOF - It needs more bytes in input buffer (src).
*/
SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,
ELzmaStatus *status, ISzAlloc *alloc);
#ifdef __cplusplus
}
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,80 @@
/* LzmaEnc.h -- LZMA Encoder
2009-02-07 : Igor Pavlov : Public domain */
#ifndef __LZMA_ENC_H
#define __LZMA_ENC_H
#include "Types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define LZMA_PROPS_SIZE 5
typedef struct _CLzmaEncProps
{
int level; /* 0 <= level <= 9 */
UInt32 dictSize; /* (1 << 12) <= dictSize <= (1 << 27) for 32-bit version
(1 << 12) <= dictSize <= (1 << 30) for 64-bit version
default = (1 << 24) */
int lc; /* 0 <= lc <= 8, default = 3 */
int lp; /* 0 <= lp <= 4, default = 0 */
int pb; /* 0 <= pb <= 4, default = 2 */
int algo; /* 0 - fast, 1 - normal, default = 1 */
int fb; /* 5 <= fb <= 273, default = 32 */
int btMode; /* 0 - hashChain Mode, 1 - binTree mode - normal, default = 1 */
int numHashBytes; /* 2, 3 or 4, default = 4 */
UInt32 mc; /* 1 <= mc <= (1 << 30), default = 32 */
unsigned writeEndMark; /* 0 - do not write EOPM, 1 - write EOPM, default = 0 */
int numThreads; /* 1 or 2, default = 2 */
} CLzmaEncProps;
void LzmaEncProps_Init(CLzmaEncProps *p);
void LzmaEncProps_Normalize(CLzmaEncProps *p);
UInt32 LzmaEncProps_GetDictSize(const CLzmaEncProps *props2);
/* ---------- CLzmaEncHandle Interface ---------- */
/* LzmaEnc_* functions can return the following exit codes:
Returns:
SZ_OK - OK
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_PARAM - Incorrect paramater in props
SZ_ERROR_WRITE - Write callback error.
SZ_ERROR_PROGRESS - some break from progress callback
SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
*/
typedef void * CLzmaEncHandle;
CLzmaEncHandle LzmaEnc_Create(ISzAlloc *alloc);
void LzmaEnc_Destroy(CLzmaEncHandle p, ISzAlloc *alloc, ISzAlloc *allocBig);
SRes LzmaEnc_SetProps(CLzmaEncHandle p, const CLzmaEncProps *props);
SRes LzmaEnc_WriteProperties(CLzmaEncHandle p, Byte *properties, SizeT *size);
SRes LzmaEnc_Encode(CLzmaEncHandle p, ISeqOutStream *outStream, ISeqInStream *inStream,
ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig);
SRes LzmaEnc_MemEncode(CLzmaEncHandle p, Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
int writeEndMark, ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig);
/* ---------- One Call Interface ---------- */
/* LzmaEncode
Return code:
SZ_OK - OK
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_PARAM - Incorrect paramater
SZ_ERROR_OUTPUT_EOF - output buffer overflow
SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
*/
SRes LzmaEncode(Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
const CLzmaEncProps *props, Byte *propsEncoded, SizeT *propsSize, int writeEndMark,
ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,46 @@
/* LzmaLib.c -- LZMA library wrapper
2008-08-05
Igor Pavlov
Public domain */
#include "LzmaEnc.h"
#include "LzmaDec.h"
#include "Alloc.h"
#include "LzmaLib.h"
static void *SzAlloc(void *p, size_t size) { p = p; return MyAlloc(size); }
static void SzFree(void *p, void *address) { p = p; MyFree(address); }
static ISzAlloc g_Alloc = { SzAlloc, SzFree };
MY_STDAPI LzmaCompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t srcLen,
unsigned char *outProps, size_t *outPropsSize,
int level, /* 0 <= level <= 9, default = 5 */
unsigned dictSize, /* use (1 << N) or (3 << N). 4 KB < dictSize <= 128 MB */
int lc, /* 0 <= lc <= 8, default = 3 */
int lp, /* 0 <= lp <= 4, default = 0 */
int pb, /* 0 <= pb <= 4, default = 2 */
int fb, /* 5 <= fb <= 273, default = 32 */
int numThreads /* 1 or 2, default = 2 */
)
{
CLzmaEncProps props;
LzmaEncProps_Init(&props);
props.level = level;
props.dictSize = dictSize;
props.lc = lc;
props.lp = lp;
props.pb = pb;
props.fb = fb;
props.numThreads = numThreads;
return LzmaEncode(dest, destLen, src, srcLen, &props, outProps, outPropsSize, 0,
NULL, &g_Alloc, &g_Alloc);
}
MY_STDAPI LzmaUncompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t *srcLen,
const unsigned char *props, size_t propsSize)
{
ELzmaStatus status;
return LzmaDecode(dest, destLen, src, srcLen, props, (unsigned)propsSize, LZMA_FINISH_ANY, &status, &g_Alloc);
}

View File

@ -0,0 +1,135 @@
/* LzmaLib.h -- LZMA library interface
2009-04-07 : Igor Pavlov : Public domain */
#ifndef __LZMA_LIB_H
#define __LZMA_LIB_H
#include "Types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define MY_STDAPI int MY_STD_CALL
#define LZMA_PROPS_SIZE 5
/*
RAM requirements for LZMA:
for compression: (dictSize * 11.5 + 6 MB) + state_size
for decompression: dictSize + state_size
state_size = (4 + (1.5 << (lc + lp))) KB
by default (lc=3, lp=0), state_size = 16 KB.
LZMA properties (5 bytes) format
Offset Size Description
0 1 lc, lp and pb in encoded form.
1 4 dictSize (little endian).
*/
/*
LzmaCompress
------------
outPropsSize -
In: the pointer to the size of outProps buffer; *outPropsSize = LZMA_PROPS_SIZE = 5.
Out: the pointer to the size of written properties in outProps buffer; *outPropsSize = LZMA_PROPS_SIZE = 5.
LZMA Encoder will use defult values for any parameter, if it is
-1 for any from: level, loc, lp, pb, fb, numThreads
0 for dictSize
level - compression level: 0 <= level <= 9;
level dictSize algo fb
0: 16 KB 0 32
1: 64 KB 0 32
2: 256 KB 0 32
3: 1 MB 0 32
4: 4 MB 0 32
5: 16 MB 1 32
6: 32 MB 1 32
7+: 64 MB 1 64
The default value for "level" is 5.
algo = 0 means fast method
algo = 1 means normal method
dictSize - The dictionary size in bytes. The maximum value is
128 MB = (1 << 27) bytes for 32-bit version
1 GB = (1 << 30) bytes for 64-bit version
The default value is 16 MB = (1 << 24) bytes.
It's recommended to use the dictionary that is larger than 4 KB and
that can be calculated as (1 << N) or (3 << N) sizes.
lc - The number of literal context bits (high bits of previous literal).
It can be in the range from 0 to 8. The default value is 3.
Sometimes lc=4 gives the gain for big files.
lp - The number of literal pos bits (low bits of current position for literals).
It can be in the range from 0 to 4. The default value is 0.
The lp switch is intended for periodical data when the period is equal to 2^lp.
For example, for 32-bit (4 bytes) periodical data you can use lp=2. Often it's
better to set lc=0, if you change lp switch.
pb - The number of pos bits (low bits of current position).
It can be in the range from 0 to 4. The default value is 2.
The pb switch is intended for periodical data when the period is equal 2^pb.
fb - Word size (the number of fast bytes).
It can be in the range from 5 to 273. The default value is 32.
Usually, a big number gives a little bit better compression ratio and
slower compression process.
numThreads - The number of thereads. 1 or 2. The default value is 2.
Fast mode (algo = 0) can use only 1 thread.
Out:
destLen - processed output size
Returns:
SZ_OK - OK
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_PARAM - Incorrect paramater
SZ_ERROR_OUTPUT_EOF - output buffer overflow
SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
*/
MY_STDAPI LzmaCompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t srcLen,
unsigned char *outProps, size_t *outPropsSize, /* *outPropsSize must be = 5 */
int level, /* 0 <= level <= 9, default = 5 */
unsigned dictSize, /* default = (1 << 24) */
int lc, /* 0 <= lc <= 8, default = 3 */
int lp, /* 0 <= lp <= 4, default = 0 */
int pb, /* 0 <= pb <= 4, default = 2 */
int fb, /* 5 <= fb <= 273, default = 32 */
int numThreads /* 1 or 2, default = 2 */
);
/*
LzmaUncompress
--------------
In:
dest - output data
destLen - output data size
src - input data
srcLen - input data size
Out:
destLen - processed output size
srcLen - processed input size
Returns:
SZ_OK - OK
SZ_ERROR_DATA - Data error
SZ_ERROR_MEM - Memory allocation arror
SZ_ERROR_UNSUPPORTED - Unsupported properties
SZ_ERROR_INPUT_EOF - it needs more bytes in input buffer (src)
*/
MY_STDAPI LzmaUncompress(unsigned char *dest, size_t *destLen, const unsigned char *src, SizeT *srcLen,
const unsigned char *props, size_t propsSize);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,327 @@
/* MtCoder.c -- Multi-thread Coder
2010-09-24 : Igor Pavlov : Public domain */
#include <stdio.h>
#include "MtCoder.h"
void LoopThread_Construct(CLoopThread *p)
{
Thread_Construct(&p->thread);
Event_Construct(&p->startEvent);
Event_Construct(&p->finishedEvent);
}
void LoopThread_Close(CLoopThread *p)
{
Thread_Close(&p->thread);
Event_Close(&p->startEvent);
Event_Close(&p->finishedEvent);
}
static THREAD_FUNC_RET_TYPE THREAD_FUNC_CALL_TYPE LoopThreadFunc(void *pp)
{
CLoopThread *p = (CLoopThread *)pp;
for (;;)
{
if (Event_Wait(&p->startEvent) != 0)
return SZ_ERROR_THREAD;
if (p->stop)
return 0;
p->res = p->func(p->param);
if (Event_Set(&p->finishedEvent) != 0)
return SZ_ERROR_THREAD;
}
}
WRes LoopThread_Create(CLoopThread *p)
{
p->stop = 0;
RINOK(AutoResetEvent_CreateNotSignaled(&p->startEvent));
RINOK(AutoResetEvent_CreateNotSignaled(&p->finishedEvent));
return Thread_Create(&p->thread, LoopThreadFunc, p);
}
WRes LoopThread_StopAndWait(CLoopThread *p)
{
p->stop = 1;
if (Event_Set(&p->startEvent) != 0)
return SZ_ERROR_THREAD;
return Thread_Wait(&p->thread);
}
WRes LoopThread_StartSubThread(CLoopThread *p) { return Event_Set(&p->startEvent); }
WRes LoopThread_WaitSubThread(CLoopThread *p) { return Event_Wait(&p->finishedEvent); }
static SRes Progress(ICompressProgress *p, UInt64 inSize, UInt64 outSize)
{
return (p && p->Progress(p, inSize, outSize) != SZ_OK) ? SZ_ERROR_PROGRESS : SZ_OK;
}
static void MtProgress_Init(CMtProgress *p, ICompressProgress *progress)
{
unsigned i;
for (i = 0; i < NUM_MT_CODER_THREADS_MAX; i++)
p->inSizes[i] = p->outSizes[i] = 0;
p->totalInSize = p->totalOutSize = 0;
p->progress = progress;
p->res = SZ_OK;
}
static void MtProgress_Reinit(CMtProgress *p, unsigned index)
{
p->inSizes[index] = 0;
p->outSizes[index] = 0;
}
#define UPDATE_PROGRESS(size, prev, total) \
if (size != (UInt64)(Int64)-1) { total += size - prev; prev = size; }
SRes MtProgress_Set(CMtProgress *p, unsigned index, UInt64 inSize, UInt64 outSize)
{
SRes res;
CriticalSection_Enter(&p->cs);
UPDATE_PROGRESS(inSize, p->inSizes[index], p->totalInSize)
UPDATE_PROGRESS(outSize, p->outSizes[index], p->totalOutSize)
if (p->res == SZ_OK)
p->res = Progress(p->progress, p->totalInSize, p->totalOutSize);
res = p->res;
CriticalSection_Leave(&p->cs);
return res;
}
static void MtProgress_SetError(CMtProgress *p, SRes res)
{
CriticalSection_Enter(&p->cs);
if (p->res == SZ_OK)
p->res = res;
CriticalSection_Leave(&p->cs);
}
static void MtCoder_SetError(CMtCoder* p, SRes res)
{
CriticalSection_Enter(&p->cs);
if (p->res == SZ_OK)
p->res = res;
CriticalSection_Leave(&p->cs);
}
/* ---------- MtThread ---------- */
void CMtThread_Construct(CMtThread *p, CMtCoder *mtCoder)
{
p->mtCoder = mtCoder;
p->outBuf = 0;
p->inBuf = 0;
Event_Construct(&p->canRead);
Event_Construct(&p->canWrite);
LoopThread_Construct(&p->thread);
}
#define RINOK_THREAD(x) { if((x) != 0) return SZ_ERROR_THREAD; }
static void CMtThread_CloseEvents(CMtThread *p)
{
Event_Close(&p->canRead);
Event_Close(&p->canWrite);
}
static void CMtThread_Destruct(CMtThread *p)
{
CMtThread_CloseEvents(p);
if (Thread_WasCreated(&p->thread.thread))
{
LoopThread_StopAndWait(&p->thread);
LoopThread_Close(&p->thread);
}
if (p->mtCoder->alloc)
IAlloc_Free(p->mtCoder->alloc, p->outBuf);
p->outBuf = 0;
if (p->mtCoder->alloc)
IAlloc_Free(p->mtCoder->alloc, p->inBuf);
p->inBuf = 0;
}
#define MY_BUF_ALLOC(buf, size, newSize) \
if (buf == 0 || size != newSize) \
{ IAlloc_Free(p->mtCoder->alloc, buf); \
size = newSize; buf = (Byte *)IAlloc_Alloc(p->mtCoder->alloc, size); \
if (buf == 0) return SZ_ERROR_MEM; }
static SRes CMtThread_Prepare(CMtThread *p)
{
MY_BUF_ALLOC(p->inBuf, p->inBufSize, p->mtCoder->blockSize)
MY_BUF_ALLOC(p->outBuf, p->outBufSize, p->mtCoder->destBlockSize)
p->stopReading = False;
p->stopWriting = False;
RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->canRead));
RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->canWrite));
return SZ_OK;
}
static SRes FullRead(ISeqInStream *stream, Byte *data, size_t *processedSize)
{
size_t size = *processedSize;
*processedSize = 0;
while (size != 0)
{
size_t curSize = size;
SRes res = stream->Read(stream, data, &curSize);
*processedSize += curSize;
data += curSize;
size -= curSize;
RINOK(res);
if (curSize == 0)
return SZ_OK;
}
return SZ_OK;
}
#define GET_NEXT_THREAD(p) &p->mtCoder->threads[p->index == p->mtCoder->numThreads - 1 ? 0 : p->index + 1]
static SRes MtThread_Process(CMtThread *p, Bool *stop)
{
CMtThread *next;
*stop = True;
if (Event_Wait(&p->canRead) != 0)
return SZ_ERROR_THREAD;
next = GET_NEXT_THREAD(p);
if (p->stopReading)
{
next->stopReading = True;
return Event_Set(&next->canRead) == 0 ? SZ_OK : SZ_ERROR_THREAD;
}
{
size_t size = p->mtCoder->blockSize;
size_t destSize = p->outBufSize;
RINOK(FullRead(p->mtCoder->inStream, p->inBuf, &size));
next->stopReading = *stop = (size != p->mtCoder->blockSize);
if (Event_Set(&next->canRead) != 0)
return SZ_ERROR_THREAD;
RINOK(p->mtCoder->mtCallback->Code(p->mtCoder->mtCallback, p->index,
p->outBuf, &destSize, p->inBuf, size, *stop));
MtProgress_Reinit(&p->mtCoder->mtProgress, p->index);
if (Event_Wait(&p->canWrite) != 0)
return SZ_ERROR_THREAD;
if (p->stopWriting)
return SZ_ERROR_FAIL;
if (p->mtCoder->outStream->Write(p->mtCoder->outStream, p->outBuf, destSize) != destSize)
return SZ_ERROR_WRITE;
return Event_Set(&next->canWrite) == 0 ? SZ_OK : SZ_ERROR_THREAD;
}
}
static THREAD_FUNC_RET_TYPE THREAD_FUNC_CALL_TYPE ThreadFunc(void *pp)
{
CMtThread *p = (CMtThread *)pp;
for (;;)
{
Bool stop;
CMtThread *next = GET_NEXT_THREAD(p);
SRes res = MtThread_Process(p, &stop);
if (res != SZ_OK)
{
MtCoder_SetError(p->mtCoder, res);
MtProgress_SetError(&p->mtCoder->mtProgress, res);
next->stopReading = True;
next->stopWriting = True;
Event_Set(&next->canRead);
Event_Set(&next->canWrite);
return res;
}
if (stop)
return 0;
}
}
void MtCoder_Construct(CMtCoder* p)
{
unsigned i;
p->alloc = 0;
for (i = 0; i < NUM_MT_CODER_THREADS_MAX; i++)
{
CMtThread *t = &p->threads[i];
t->index = i;
CMtThread_Construct(t, p);
}
CriticalSection_Init(&p->cs);
CriticalSection_Init(&p->mtProgress.cs);
}
void MtCoder_Destruct(CMtCoder* p)
{
unsigned i;
for (i = 0; i < NUM_MT_CODER_THREADS_MAX; i++)
CMtThread_Destruct(&p->threads[i]);
CriticalSection_Delete(&p->cs);
CriticalSection_Delete(&p->mtProgress.cs);
}
SRes MtCoder_Code(CMtCoder *p)
{
unsigned i, numThreads = p->numThreads;
SRes res = SZ_OK;
p->res = SZ_OK;
MtProgress_Init(&p->mtProgress, p->progress);
for (i = 0; i < numThreads; i++)
{
RINOK(CMtThread_Prepare(&p->threads[i]));
}
for (i = 0; i < numThreads; i++)
{
CMtThread *t = &p->threads[i];
CLoopThread *lt = &t->thread;
if (!Thread_WasCreated(&lt->thread))
{
lt->func = ThreadFunc;
lt->param = t;
if (LoopThread_Create(lt) != SZ_OK)
{
res = SZ_ERROR_THREAD;
break;
}
}
}
if (res == SZ_OK)
{
unsigned j;
for (i = 0; i < numThreads; i++)
{
CMtThread *t = &p->threads[i];
if (LoopThread_StartSubThread(&t->thread) != SZ_OK)
{
res = SZ_ERROR_THREAD;
p->threads[0].stopReading = True;
break;
}
}
Event_Set(&p->threads[0].canWrite);
Event_Set(&p->threads[0].canRead);
for (j = 0; j < i; j++)
LoopThread_WaitSubThread(&p->threads[j].thread);
}
for (i = 0; i < numThreads; i++)
CMtThread_CloseEvents(&p->threads[i]);
return (res == SZ_OK) ? p->res : res;
}

View File

@ -0,0 +1,98 @@
/* MtCoder.h -- Multi-thread Coder
2009-11-19 : Igor Pavlov : Public domain */
#ifndef __MT_CODER_H
#define __MT_CODER_H
#include "Threads.h"
EXTERN_C_BEGIN
typedef struct
{
CThread thread;
CAutoResetEvent startEvent;
CAutoResetEvent finishedEvent;
int stop;
THREAD_FUNC_TYPE func;
LPVOID param;
THREAD_FUNC_RET_TYPE res;
} CLoopThread;
void LoopThread_Construct(CLoopThread *p);
void LoopThread_Close(CLoopThread *p);
WRes LoopThread_Create(CLoopThread *p);
WRes LoopThread_StopAndWait(CLoopThread *p);
WRes LoopThread_StartSubThread(CLoopThread *p);
WRes LoopThread_WaitSubThread(CLoopThread *p);
#ifndef _7ZIP_ST
#define NUM_MT_CODER_THREADS_MAX 32
#else
#define NUM_MT_CODER_THREADS_MAX 1
#endif
typedef struct
{
UInt64 totalInSize;
UInt64 totalOutSize;
ICompressProgress *progress;
SRes res;
CCriticalSection cs;
UInt64 inSizes[NUM_MT_CODER_THREADS_MAX];
UInt64 outSizes[NUM_MT_CODER_THREADS_MAX];
} CMtProgress;
SRes MtProgress_Set(CMtProgress *p, unsigned index, UInt64 inSize, UInt64 outSize);
struct _CMtCoder;
typedef struct
{
struct _CMtCoder *mtCoder;
Byte *outBuf;
size_t outBufSize;
Byte *inBuf;
size_t inBufSize;
unsigned index;
CLoopThread thread;
Bool stopReading;
Bool stopWriting;
CAutoResetEvent canRead;
CAutoResetEvent canWrite;
} CMtThread;
typedef struct
{
SRes (*Code)(void *p, unsigned index, Byte *dest, size_t *destSize,
const Byte *src, size_t srcSize, int finished);
} IMtCoderCallback;
typedef struct _CMtCoder
{
size_t blockSize;
size_t destBlockSize;
unsigned numThreads;
ISeqInStream *inStream;
ISeqOutStream *outStream;
ICompressProgress *progress;
ISzAlloc *alloc;
IMtCoderCallback *mtCallback;
CCriticalSection cs;
SRes res;
CMtProgress mtProgress;
CMtThread threads[NUM_MT_CODER_THREADS_MAX];
} CMtCoder;
void MtCoder_Construct(CMtCoder* p);
void MtCoder_Destruct(CMtCoder* p);
SRes MtCoder_Code(CMtCoder *p);
EXTERN_C_END
#endif

Some files were not shown because too many files have changed in this diff Show More