From 89c6c81085323fc7bbdf0fd50d59bb787d1c6744 Mon Sep 17 00:00:00 2001 From: saqibakhtar Date: Mon, 14 Jul 2008 06:43:33 +0000 Subject: [PATCH] --- pcsx2v2/Linux/.pixmaps/pcsxAbout.xpm | 334 -- pcsx2v2/Linux/Config.cpp | 151 - pcsx2v2/Linux/GtkGui.cpp | 1651 ------ pcsx2v2/Linux/Linux.h | 47 - pcsx2v2/Linux/LnxMain.cpp | 621 --- pcsx2v2/Linux/Makefile.am | 21 - pcsx2v2/Linux/buildgui.sh | 27 - pcsx2v2/Linux/callbacks.h | 403 -- pcsx2v2/Linux/interface.cpp | 2759 --------- pcsx2v2/Linux/interface.h | 34 - pcsx2v2/Linux/pcsx2.glade | 5235 ------------------ pcsx2v2/Linux/support.cpp | 161 - pcsx2v2/Linux/support.h | 86 - pcsx2v2/Memory.cpp | 1031 ---- pcsx2v2/Memory.h | 71 - pcsx2v2/windows/VCprojects/pcsx2_2008.vcproj | 4 - 16 files changed, 12636 deletions(-) delete mode 100644 pcsx2v2/Linux/.pixmaps/pcsxAbout.xpm delete mode 100644 pcsx2v2/Linux/Config.cpp delete mode 100644 pcsx2v2/Linux/GtkGui.cpp delete mode 100644 pcsx2v2/Linux/Linux.h delete mode 100644 pcsx2v2/Linux/LnxMain.cpp delete mode 100644 pcsx2v2/Linux/Makefile.am delete mode 100644 pcsx2v2/Linux/buildgui.sh delete mode 100644 pcsx2v2/Linux/callbacks.h delete mode 100644 pcsx2v2/Linux/interface.cpp delete mode 100644 pcsx2v2/Linux/interface.h delete mode 100644 pcsx2v2/Linux/pcsx2.glade delete mode 100644 pcsx2v2/Linux/support.cpp delete mode 100644 pcsx2v2/Linux/support.h diff --git a/pcsx2v2/Linux/.pixmaps/pcsxAbout.xpm b/pcsx2v2/Linux/.pixmaps/pcsxAbout.xpm deleted file mode 100644 index 2ebc445..0000000 --- a/pcsx2v2/Linux/.pixmaps/pcsxAbout.xpm +++ /dev/null @@ -1,334 +0,0 @@ -/* XPM */ -static char *pcsxAbout[] = { -/* columns rows colors chars-per-pixel */ -"314 176 152 2", -" c #252d42", -". c #282e45", -"X c #282f48", -"o c #273046", -"O c #283046", -"+ c #2a334b", -"@ c #2d3650", -"# c #2e3853", -"$ c #303651", -"% c #303955", -"& c #333d5b", -"* c #383f57", -"= c #383e5d", -"- c #35405e", -"; c #39415d", -": c #364161", -"> c #384465", -", c #3a4668", -"< c #3e4866", -"1 c #3c496c", -"2 c #3e4b70", -"3 c #40475b", -"4 c #41485d", -"5 c #404767", -"6 c #424a63", -"7 c #434c6c", -"8 c #484f61", -"9 c #464e70", -"0 c #44506f", -"q c #4c5263", -"w c #465071", -"e c #495273", -"r c #4d5679", -"t c #4e5974", -"y c #4e587b", -"u c #515665", -"i c #535866", -"p c #545968", -"a c #595d69", -"s c #50577b", -"d c #505a75", -"f c #51597d", -"g c #5c606a", -"h c #55617f", -"j c #5a637b", -"k c #64666d", -"l c #65686e", -"z c #666870", -"x c #6b6d71", -"c c #6e7073", -"v c #767676", -"b c #545d81", -"n c #566085", -"m c #586185", -"M c #5b648a", -"N c #5e6883", -"B c #5e688d", -"V c #666d84", -"C c #606a8b", -"Z c #686f86", -"A c #626b93", -"S c #656f98", -"D c #687085", -"F c #6a738c", -"G c #667097", -"H c #667098", -"J c #6d7691", -"K c #6b749d", -"L c #6e7893", -"P c #72788c", -"I c #757d93", -"U c #6d76a0", -"Y c #6e78a1", -"T c #717ba4", -"R c #747ea8", -"E c #7c8397", -"W c #79829a", -"Q c #7680ab", -"! c #7a84ae", -"~ c #7c85b1", -"^ c #7e88b3", -"/ c #808080", -"( c #80838f", -") c #888888", -"_ c #808799", -"` c #82899d", -"' c gray57", -"] c gray60", -"[ c #858da3", -"{ c #858eba", -"} c #8d93a5", -"| c #8f95a8", -" . c #8690bc", -".. c #8891bd", -"X. c #9096a9", -"o. c #999ead", -"O. c #9aa0af", -"+. c #9ca2b4", -"@. c #a2a2a2", -"#. c #aaaaaa", -"$. c #a5a9b6", -"%. c #a7acba", -"&. c #a8adbc", -"*. c #aab0bf", -"=. c #bababa", -"-. c #8e96c3", -";. c #8e98c4", -":. c #9099c6", -">. c #959dca", -",. c #96a0cc", -"<. c #98a0cd", -"1. c #9ca5d1", -"2. c #a4add9", -"3. c #aab0c0", -"4. c #b3b6c2", -"5. c #b4b8c4", -"6. c #b6bbc8", -"7. c #adb5e1", -"8. c #b0b7e3", -"9. c #b0b8e3", -"0. c #bec2cb", -"q. c #bfc7ef", -"w. c #bfc7f0", -"e. c #c2c2c2", -"r. c #c0c3cd", -"t. c gray80", -"y. c #c2c6d1", -"u. c #ccced6", -"i. c #cdd0d7", -"p. c #ced1d9", -"a. c #d0d2d7", -"s. c #d4d5d9", -"d. c #dddddd", -"f. c #c0c7f0", -"g. c #c3cbf2", -"h. c #c8cef4", -"j. c #cad0f5", -"k. c #d9dbe1", -"l. c #d2d8f6", -"z. c #dbdff8", -"x. c #dce0f8", -"c. c gray90", -"v. c #e5e7eb", -"b. c #e6e8ec", -"n. c #eeeeee", -"m. c #e1e5f9", -"M. c #ebeefb", -"N. c #eff1fc", -"B. c #f2f3f5", -"V. c #f0f1fc", -"C. c #f7f8fd", -"Z. c #fefefe", -/* pixels */ -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 1 2 1 1 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 2 , , , 1 , 1 , 1 1 , , , , 1 , , , , 1 , , , , , , > , > > , > , , : , , : , : , : , : > > > > : > > , : : : : > : : > : : : : : : : - : : - : - - : - - - - - - & - - & - - & & & & & & : & & & & & & & & & & & & & # # # # # & & # & # & # # & # # # # # # & # # & # # # # # # # # # # # @ # @ @ # @ @ @ @ @ @ @ @ @ X @ @ + @ @ + @ + @ + @ + + @ + + @ + + @ + + + + + + + + + + + + + + o + + o + + + o + X o X X + o o O O O O O X X O . . . . . . . . . o o . . . . o . o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 1 1 2 2 1 2 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 , 1 , , , , 2 1 , 1 , , , , , 1 , , , , , , , , , , , , > , , , > , > : , , : : , , : , : , : > > , : : > > : : : , : : : : > : : : : : : : : : - : - - - : - - - - - - & - - & - - & : & : & : & & & & & & & & & # & & # & & & & & : & # # & # & # & & # # & & # & # # # # # # # # # # # # # # @ # @ @ # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ + @ + @ + @ @ + + @ + + + + + + + + + + + + + + + o X + + o o + o + o + X X + + + o X o X X O O O O o o O X O . . . o o . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 2 2 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 , 2 , 1 1 1 , 1 1 1 1 , , 1 , 1 1 , 1 1 , 1 , 1 , , , , , , , , , , , > , , > , , > , , , : , : : , : , > : , > > : : > > : > : : > : : : : : > - : : - : - - : : : - : - - - - - & - & & - & - & & & & & & & & & & & & & & & & & # & # : # # # & & & & & # & # # & & # & # # # # # # # # & # # % # @ # # @ # # @ % @ @ @ @ @ @ @ @ @ @ @ @ X @ @ + @ @ @ + @ + @ + + + + + + + + + + + + + + + + o + + + + X + o + + o + o o @ + X + X o o o X + X O O O O X X . . . o o . . o . . . . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 1 2 1 2 1 1 2 1 1 1 1 1 1 2 , 2 2 1 1 1 1 , , 1 1 1 , 1 , , 1 , , , , , , , , , , , , , , > , , > , > , > , > : , , > , , , : , : > > : > > > : > : > : : > : : : : : : : : - : : - : : - - - - - - - - - - - - - - - - & : & & : & & & & & & & & & # & & & & & & & # & : # & # # & # # & # # & # # # & & & # # & # # # # # # # # # # @ # @ @ # @ % @ @ @ @ @ @ @ @ @ @ @ + @ + + @ + + @ + + @ + + @ + + + @ + + + + + + + X + + + + + X + o + + o + o o X X X o o + o X O O O O X O O O O . . . o . o . . o . . . . ", -"2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 1 2 1 1 1 2 1 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 2 , 1 , 1 1 , 1 1 , , , , , , , , , , , , , , , , , , , > , , > , : , : : : , : , > : , , : , : > > , : > : : , : , : : : : > : : : : : : : : - - - - - - - - - : & & - - - & & & : & & & & & & & & & & & & & & & & : # # & & # # & # & # & # & & # # & # # # # & # # & # # # # @ # % % # # # # @ # @ @ @ @ @ @ X @ @ @ @ @ @ @ + @ @ @ + @ @ + @ + + @ + + @ + + + + + + + + + + + + + + + + + + o o @ X o + o + o + o + + X X O O + O O O . . O . . . o o o o o . o o . . . . ", -"9 2 2 2 w 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2 1 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 , 1 , 1 , 1 , , , 1 1 1 , 1 , , , , , , , , , , , , > , > > , , , > , , , : , : , , : : , : > > : : : , : : : : : : > : : : : : : - : : : - : : - - - - - - - & - : - & - & - & & & & & & & & & & & & & & & # & : # # # : # & & # & # & # & # # & # & # & # & # # # # # # # # % # @ # # # @ # # @ # @ @ @ @ @ # @ @ @ @ X @ @ @ + + @ @ @ + + + + + @ + @ + + + @ + + + + + + + X + X + o + o X + + o o + o o o + o o o o o o O O O O O O O . . O . o . o . . o . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 1 2 2 2 1 1 2 1 2 1 1 2 1 1 1 1 1 1 1 , 1 1 , 1 1 1 , , 1 1 , 1 , 1 , 1 , , 1 , , , , , , , , , : , > , , , , > , > > , , , : , , : , : : > , : , : > > : , : : : > : : : : : : : : : : : : - : - : : : - - : - - - : & & - & - - - & : & & : & & & & & & & & & & & # & : & & : # : & & # & # & # & # & # # # # # # # # # # # # # # # # # # # @ @ # @ @ # @ # @ @ @ # @ @ @ @ @ X @ @ @ + + + @ + @ @ + @ + + + + + + @ + + + + + + + + + o + o + X + o + + + X o + + o o + o o + o O O O O O O . . O . o . . o . . . o . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 1 1 1 , 1 , 1 , 1 , 1 , , , 1 , , , , , , , , , , , > , > , > , , > : , , > > , , : , > > > : > : > : : > : > : : > : : : : : : : : - : : - : - - - - - - - - - & : - - & - & & & : & & & & & : & & & & & & & & & & # # & # # & # & & # & # # & & # & # & # & # # & & # # # # & # # # # # # # # @ # @ # @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ + + @ + @ + + + @ + @ + + + + + + + + + + + + + + X + X + o + o @ + o o + o o + o X + O O O O O O O O o o . . o o . . . o . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2 1 2 2 1 2 1 2 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 2 , , , , , 1 , , 1 , , , , , , , , , , , , , , > , , > , , , , , , : , , : , , : > > , > > > > , : : , : : , : > : : : : : : > : : : - : - - : - - - - - - - - - : & & & & : & & : & & & & & & & & & & & & & # & # & # & # & & & # & # & # & # & # # & & # % # # & # # % @ & & @ & @ @ @ # @ @ # # @ @ @ @ @ @ @ @ # @ @ @ @ @ + @ + + @ @ + @ + @ @ + + @ + @ + + + + + + + + + + + o + + o + o + + + O + + O + + + X X o o o O O O O O X X O O O O O O . . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , , , 2 2 , 2 , , , , , , 1 , , , , , , , , , , , , , , , > , : , : , : , : , , : , > > : > : : > : : , : , : : : : > : : : : : : : : : : - : - : - - : - - - - - : & & : : & & : & & : & & & & & & & & & & & & & & & & & & & & # & # # & # & # & # & # # # % % # # # # # % @ @ @ @ @ % @ # # @ # @ # @ # # @ # @ X @ # X X # @ @ @ @ @ @ @ + + + @ + + + + + + + + + + + + + + + o + + + + o + + X + O O + + o O o X X X + o O X X X O O O O X . o O O O X o O . . o o o o o ", -"2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 1 2 1 2 1 1 2 1 2 2 2 1 1 2 2 1 2 1 1 1 1 , 1 1 1 1 , 1 1 1 , , 2 , 2 , 1 1 1 , 2 , , 1 , , , , , , , , , , , , , > , : : , , , : , , : : , > > : , : : : , , : : : , : > : , : , : : : : : - : : - : - : - - - - - - - & & : & : & & & & & & & : & & & & & & & & & & & & # & # & & & # & & # # & # # & & # # & # & # & # # # & & @ @ @ % @ @ % # @ @ @ # @ # @ @ @ # @ # X # # @ @ X @ @ @ @ @ + @ + @ + + @ + @ + + + + + + + + + + + + + + + X + X + + + o + o X o + X X X + o + + o O + O O O O O O X o o O O o . . . . o . o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 2 , 1 , , , , , , , , , , , 1 , , , , , , , , , > , , > , , , , : , , , : , , > , : , : , , : : : : , : : : : : : : : : : : : : : - : : - : - : - - - - - - : : : & & : & : & : & & & & & & # & & & & & & & & & & & & # & & # & & & # & & # # & & # # # # # & # # # @ @ & @ @ % # @ # # # @ @ # @ @ @ @ @ @ # # # @ @ @ @ @ + @ + + @ + + @ + @ + @ + + + @ + + + @ + + + + + + + + + + + + O + + + O + + X + o X X O O o o O O O O O O X X O X O O O o . . o . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 1 2 1 2 2 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , , 1 , , 1 , 2 1 , , , , , 1 , , , , , > , , , , , , > , : , , , , : , , : : , > > , : , : : > , : , : : : : : : : , : : : : : : : : : : : : - - - - - - - - & : & : & - & & & : & : & & & & & & & & & & & & & & & & # # & # & # & # & & & & # # # & # % & # & # # # # & # # & & @ % @ @ % @ @ @ @ @ # @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ + @ @ + @ @ + + @ + + + + + + + + + + + X + + + o + + X + + O + X + X + + O + O O O O O O O O O O O O . X O O o . o O . . o . o o . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 1 1 2 2 1 2 1 1 1 2 1 1 2 1 1 1 2 1 1 1 1 1 1 1 , 1 1 1 1 2 1 , 1 , 1 1 , , , 1 1 , , , , , , , , , , , , , > , , , , , : , : , : , , , : > > : , : , > > : > > : , : , : : : : : : : : : : : : : : : - : : - : - - - - - & : & & & : : & & & & & & & & : & & & & & & # & # & & & & & # & & & & # # # # & & # & # # # # # # # # # # # @ @ % @ @ @ @ @ & @ @ # # @ @ @ @ @ @ @ @ @ X @ X @ @ + + @ @ + @ @ + + @ + + + + + + + + + + + + + + + + + + + + + O + + o X + + o O O O O O + O O O O O O O o O . O O . . O . . . . o . o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 1 2 2 2 1 2 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 1 1 1 , 1 , 1 1 , 1 , , , , , , , , , , , , , , , : , : , , : , , : , , : , , > > , : > , : : : > > : , : , : : : : : : : : : : : : : : : - - : : - - - - - - : : & : : : & & : & & & : & & & # & & & & & & # & & & & & # & # & # # & & # & # & # # & # & # # & # # # # # # & @ @ @ % # # # # # @ @ @ @ @ @ @ @ @ @ @ X @ @ @ @ @ @ + + @ + + @ + + @ @ + + + + + + + + + + + o + + + o + + o o + + o O + + O + X O + O O O O O O O O O X O o O O O X o . . . . . o . . . o ", -"e 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 1 1 2 1 1 1 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 1 , 1 1 , , , , 1 , , 1 , , , , , , , , > , , , , , , , : , , , : , : , > > : > , : : , , : > > : : : : : , > : : : : : : : : : : : : : - - - - - - - - : & & - & & : & & & : & & & & & & & & & & & & & & & & # & & & & & # & & # & # & # & # # # & % & # # & # # # # # @ & % @ # @ @ # # @ # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ + @ @ + + @ + + + @ + + @ + + + + + + + + + + o + + X + + + + X X + X X + O O O + + O O O O O O O . X O . . . . . o . . o . . . . . . ", -"2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 2 1 2 1 1 2 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 1 , 1 , 1 1 1 1 , , 1 > , 1 > , , 1 , , , , , , , , , , , , , , , , : : , , : > > > > > , > > > : : , : > : : > : > : > : : : : : : : - : - - - - - - - - - & - - : & & & & : - & & : & & & & : & & & & & & # & & & # & & & # & # & # & # & # & & # # # & # % % % % % % % % @ # # # # # @ @ @ # # @ @ # @ @ @ @ @ @ @ @ @ @ X @ @ @ @ @ @ @ X X @ + + @ + + @ + + + + + + + + + + + O + + + o + o + + O + O O O + O + X O O + O + X O X o O . . . . o o . . . . o . O O O O ", -"2 2 2 2 2 2 2 e 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 1 1 1 1 2 1 1 2 1 2 1 1 1 2 1 1 1 1 1 1 1 1 , 1 1 , 1 1 , 1 1 1 1 1 , , 1 1 , , 1 , , , , , , , , , : , , , , : , , : , , , , : , > > > > : : > : , : > : : : , : : > : : : : : : : : - : : : - : : : - : - - - - - - & : : : & & - - & & : & & & & & & & & & & & & & & & & # & & & # % & # & # & # # # & # & # # % % % @ % @ % % @ % @ # # @ % # @ @ # @ @ @ @ @ @ @ X @ @ @ @ @ @ @ X @ X @ X @ @ + @ + + + + + + + + + + + + + + + + + O X + + o + X o O O O + O O O O O O X X O O O O O O . . . o . . . . o o . o . O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 1 2 1 2 1 1 2 1 2 2 2 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 , 1 , , , , , 1 , , , 1 , , , , , , , , , , : , : : , : , : , , : , : > > > > > > > > > > : > : : : : : : : : : > : : : : : : - : : - - - : - - - - - & : & & & : : & & - - & & & & - & & # : & & & & & & & & & # # & & & & # & # & # # & & # % # # # @ % % % @ % % @ % # # # @ % # # @ # @ @ @ @ @ @ @ @ @ @ @ @ @ @ X @ @ @ @ @ @ @ + @ @ + @ + + + + + + + + + + + + O + + + + O + O O + + O + o + O + O + O o O + O O O O O O O X . . . o . . O O . o O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 1 , , 2 , , 1 , , 1 , 1 , , > 1 , , , , , , , , , , , , , , , , , , > , : , , , : > > > > > > > : : : , : > , : > > : > : : : : : : : : : : : - : : - - - - : - - - - : & : & & & - & & & & & & & & & & & # : # & # & & & & & & # # & % & & # # & % # & # # & % & % % % @ % % % # # # # # @ # @ # # @ @ # @ # @ @ @ @ @ @ @ @ X @ @ @ X @ @ @ X @ + @ + + + + + @ @ + + + X + + + + + + + O + + + + + o + + o + X + O O O O O X O O O O O X X . . . . o . X O o . . o O . O O O ", -"2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 1 2 2 1 1 2 2 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 , , 2 , 1 , 1 , , 1 , 1 , 1 , , , , , , , , , > , , , : , : , , : , > , : , > , , , > > > > > > > > : > > : : > : > : > : : : : : : > - : > - : : - - : - - - - - - - & - & & & : & & & & - & & & & & & & & & # & & & & & # & & & # # & & & & # # # % % & % # % # # % # @ % % # # % % @ % @ # # # $ # @ # @ @ @ @ @ @ @ @ @ @ # @ @ + @ @ @ X @ X @ @ + @ @ + + + + + + + + + + + + + + X + + + O O + O O + O O + o O + O + O O O O + X O O O O O . o . . . . o . O O . O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 1 2 2 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 , 1 1 1 , , , , , , 1 , , , , , , , , , , , , , , > , , , , > , > > > , : > > > > : > > > > > : > > : : : : > : > : : > : - - : - : - - : : - - - - - - - - - - : : & & : & - - & - & - & & & & & & : & & & # & & # & & & & # # # # & & & & % % % % % % # % % @ % % # % @ # # @ % # # @ # @ # @ @ # @ @ @ @ @ @ @ @ X @ @ @ @ + @ @ @ @ @ + + + + @ @ + + + + + + + + + + + + + + + + + + + + + + O + o + + O O O O + O O O O X O o O O . o O . o . . o O O O O O . O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 1 2 2 2 1 1 1 2 1 2 2 1 1 1 1 1 1 1 1 1 1 , 1 1 , 1 , 1 1 1 , 1 , 1 1 , 1 , , , , , , , , , , , , , , , , , , : , , , , : , > > > > > > > > > > : > > > > : > : , : : : : > : : : : - > > - - - : - - : : - - - - - & : & : : & & : : & & & & & & & & & & & # & & # & & & & & & # & & & & # & # & # % % % % # # % & # % % % # # # # @ % # # # # # @ @ # # @ # @ @ @ @ @ # X @ @ @ @ @ @ @ X + @ X @ + @ @ + + + + + + + + + + + + + o + O + + O + O O + O O + + o o O + O O O + + O O O O O O X O . o . o o . . . . O O O O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 2 1 1 2 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 , , 1 , , 1 , , , , , , , , , , , , , : , , , : , : , : , , > > > > > > > > > > : : > > > : > : : > : : : : > : : > - - - - : - : : - - : - - - - : & : & & & : & & & - & & & : & & & & & & & & & & # & & # & # & & # & # & & # & % % % % & # % # % # % % % % # # % @ % @ $ # # @ # @ @ # @ @ @ @ @ @ @ @ @ @ X @ @ X @ + @ @ X @ + @ + + @ + @ + + + @ + + + + + + + + + + O + + + O + O + o X + O X + O O O O O O O O O O O . O o o . o o . . O O O . O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 2 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 , , 1 1 , 1 1 1 , , 1 1 , 1 > 1 1 > 1 , , , , > , , , , , : , , : , , , , , > , > > > : , > > > > > > > > : > : , : , > : : : > : : : - : : : - : - : - : : - - - - - & : & : & & : & & & & & & : & & & & & : & & & : & & : & & & & # # & & # & # & # # & % % % % % % % # # # % % # # # % # @ % @ @ % @ # @ # @ # @ # @ @ @ @ # @ @ @ @ @ @ + + @ + + + @ + + + + + + @ + + @ + + + + X + + X + + O + + X X X + O + O O + + o o O O O O O O O O O X . . . o . . o . o . . . o o O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 1 2 1 1 2 1 2 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 , 1 , 1 , 1 1 1 > 1 > , , 1 , , , , , , , , , , , , , , > : , > > > > > , : , > : : > : > : > : : : : : > : : : : : : > : : : : : : - : - : - - - - - : & : & & : & & & : : & & & & & & & & # & & & & # & # # # & # & & # # & # & # & & % % % % % # % % % % # # # % # # @ @ % # # # # @ @ @ @ @ @ @ @ @ @ @ @ X @ @ @ @ + + @ @ + + @ @ + @ + + @ @ + + + + + + + + + + + + + X + + + + + + + X + O X O X X + O O O + O X O O O O O O . . o . o . O o O . o O O ", -"y 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 1 2 2 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 , 1 1 1 , 1 , 1 1 , , 1 > 1 1 > , 1 , , , , , > , , , , , , > , : , > , > , > , , : , : > > : > > : > : , : , : : : > : : : : : : - : : : - - - - - - - - - - - : : & : : & : & & & & - & : & & & & & & & & : # & & & & # & & & & & & & & # & # # % % % % % % % # # # % % # # # # % @ # @ # # @ # # # @ @ # @ @ @ @ @ @ # # @ @ @ @ @ + + @ @ X + @ + + @ X + + + + + + + + + + + + + O + + + X X + X X O + O + O O X X O O O O X O O O O X o O . . o . . o . . o O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 1 2 1 1 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 , 1 , , , 1 , 1 1 , 1 1 > 1 , , , , , , , , : , , , : , : , , , > > > > > > > > > > > > > > > > : , : : : : , : : : > : : : : : : : - : : : : - - : - - - - & & : & & & : & : & & & & & & & & & & : # # # # & & # & & & # & # & # # # & # & # & % % % % % % % % # % % % % # # # % # # # @ # @ # @ @ @ @ @ @ @ # X @ # X @ @ X + @ @ @ + @ @ @ + @ + + + @ + + + + + + + + + + + + + + + X + O O + + O X X + + O + X O O + O X + O O O O o O . O . . . . o . o . . . . O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 1 1 1 1 2 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 1 , , 1 , , , 1 > , , , , , , > , , , , , , , , , , , > : > > > > : , > , : : > , : > > : : : , : : : : : : : : : : : : : - - : - : - - - - - - - : : & : : & - & & & - & : & & & & & & & & & & & & : & & & & # & & # & & & # % % % % % % % % % % % % % % # # # % % # % # % # # # # # @ # @ @ @ @ @ @ @ @ @ @ X # @ @ @ + @ + @ + + + @ + + + + @ + + + + + + + + + + O + + + O + + + + O + O + O O O O O + O + X O X O O O O O O O o o o o o . . . . . . o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 1 2 2 2 1 2 2 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 , 1 , 1 1 1 1 , 1 , , , , , , , , , 1 , , , , , , , , , , , : , : : , , , , , > , > > , > : : , , : : , : > : : , : : : : , : : : : : : : : : : : - - - : - - - - - - & & : & & - : & : & & & & & & & & & & & & # & & & # # # & # & & % % & # % & % % % & % % % % % % # % # # # # # # # # # @ @ @ % @ # @ @ @ @ # @ @ @ @ @ X @ @ @ @ @ @ @ @ + @ @ X + @ + @ @ + + + + + + + + + + + + + + + O O + + + O O + O + O + + + O X O O O X O O O O O O O . O o o o . . . o . . . o o o o O ", -"2 2 2 2 2 2 2 y 2 2 2 2 2 2 2 2 2 1 2 1 1 2 1 1 2 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 1 , , , , , , 1 , 1 , , , , , , , , , , , , , , , > , , , > , : , , , > > , > : , , > > > , : : : > > : : : : : : : : : : : : : : : : - : : : - - - - - - - - : & : & : & & & & & & & & & & & & & & & & & & & & # & & & & # & % & % & % & % & % % % % % % % % % # % # # % # # % @ # # @ # @ @ @ # # # @ @ @ @ @ @ @ @ @ @ @ # + + @ + @ @ + @ @ @ + + + @ + + + + + + + + + + + + + + + + + O + O + O O X + O O O O + O O O O O O O O O O O o O . . . o . . o o o . o o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 1 1 1 1 1 , , 1 , , , 1 , , , , , , , , , > , , > , , , > : , , > > , > > > > : > > > : > : , > : , : , : , : : : : : : , : : : - : - - : : - - : - - - - & : & : & - & : : & & : & & & & & & & & & & & & : # & & # : # # & % & # & # % % % & % % % % % % % # # % # # # # $ # # # @ % % # @ @ @ @ @ @ @ @ @ @ @ @ X # @ X @ @ @ + @ + @ + + + @ + + + + @ + @ + + + + + + + + O O + + + O + + O + + + O O + O + O O + O O O O O O O O O O . . O . . . o . . . . o o O ", -"2 0 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 1 2 1 2 2 1 1 2 2 1 2 1 1 1 2 1 1 1 1 1 1 1 1 , 1 , 1 1 , 1 , 1 , 1 , 1 , 1 , 1 , , , , , , , , , , > , , , > > > > > , > , > > , : , : , : > : : > > > > > : : > : : > : : : : : : : : : : : : : & : & & : - - : - & : & : # : : : # : : & & & : & @ - - - # - - - @ - - @ # - # # - - # # - # # # # % % - # # % % # # # # # # # # # # % # # @ % # # @ @ @ @ @ @ @ @ @ @ + @ @ @ + @ + @ + + @ + + + + @ + @ + + + + + + + + + + + + + X X + + + + X + o + O + O O O + X O X o O + O O O O O O . . . . . o . . . . o o . o . O O ", -"2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 1 1 2 2 1 2 1 2 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 , 1 1 1 1 , 1 , , 1 1 1 1 , , , , 1 , , 1 , , , , , , , , , , , , > 1 > 1 > 1 > > , > > , , : , > > : , , : : > : > : > : > > : : : : : : : : & : : : : : : : : : : - : & : : & : & : : : # # : : # # : : # - - # - @ - @ - - @ @ - - # - # # % # - # # % - - % % % # % # % % # & # # # # # # # # # # # @ @ # # @ # @ @ @ @ @ @ @ @ @ @ + @ @ # + @ @ + @ # @ @ + @ + + @ + @ + + + + + + + + + + + + X + + + o X + + O O + O O o o + o o o O O O O + O X X . . . o . . o . o . o . ", -"2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 1 2 2 2 2 2 1 1 2 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 , 1 , 1 , , , , , , , , , , , , , , , > , , , 1 > > 1 > > > > , : : , > > , : , : , , > > > > > : : : : > > : > : : : : : : - & : : : : : - & : & : & : & & : : # : : : # : : & : & & # - - - - - # - - - - - # - - # # - - # # - # - # % % % % % % % & # # # % # & # % @ % % # # # # @ # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + @ @ + @ + + + + + + + @ + + + + + + + + + + + o + + + + o X + o + O + X o + o + + + O O O O O O O X o X O . o o . O X O . . . . o O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 1 2 1 1 1 1 1 2 2 1 1 1 1 1 1 1 , 1 , 1 1 1 1 , 1 1 , 1 , 1 , 1 1 , , 1 1 , , 1 , , , , , , , , , > > > > > > > , > , , , : > , : > : , : : : > > > : > > : : : : : : : > : : : : : : : : : : & : : & : & : : & : & : : # & : : & & # : # & - - # # - # - # @ # - @ # - # - - # - # # - # % # % % % % % % % # # # & # # # # @ % @ % # @ @ # # @ @ @ # @ @ @ @ @ @ @ @ + @ + + # @ @ + @ + @ + @ + @ + @ + + + + + + + + + + + + + + o + + X + + X + + X + + O + o o O O + O O O O O X o O . . o . X . X . o o . o O O O O ", -"2 2 2 2 2 2 0 2 2 2 2 2 1 2 2 1 2 1 2 2 2 1 2 1 1 2 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 , 1 , 1 1 , , , , 1 , , 1 1 , , , , 1 , , , , , , > > 1 > > > > , , > , : > > , , : , > , : > , > > > : : > : > : : > : : : : : : : : : : & : & : : : & & : - - & : & & : & : & & : : # : # : # @ - - - - # - - - @ - # - # - # # % # - # # # % & % % % % % % % # % # # # % # % % # # # # # # @ # @ # @ # @ @ @ @ @ @ @ @ @ @ @ # + # + + @ + + # @ + + + + + + + + + + + + + + + + + + + + + o + X + + + o o X O O O X O O O O O + X O O . X X . . O o . . . . . . o O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , , 1 , 1 1 , , 1 , 1 , , , , , , , , , > , , , , , , , > , 1 : > > > , > , : : , : , > > : : > : : > > : > : : > : : : : : : : : : = : : : : & : & : : : & : : & : & & : & & : : # : & : : : - - @ - - - # @ - - # - - # # # - % - # # - - % % % % % % % % % % % % # # # % # # # # # @ # # @ @ @ # @ @ @ @ @ @ @ @ @ @ @ + @ + # # + @ + @ + + + + @ + # @ + + + + + + + + + o + + o X + + + + X X + o + + X + + O + O O O O O O O X . O o O O . o o . O . o o . o . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 1 2 1 2 1 1 1 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 1 1 1 1 , 1 1 1 , , , 1 , , 1 , , , , , , , , > > , > > > 1 > , , : , , , > > , : : , : > , > > > > : : > : > : : > : > : : : : : : : : : : & & : : : - & - : & : & : : : & : # : & & & & # : - - @ - # - - - # - # @ # - # - # - # # # # - % % % % % % % % % # # # % % # # # # @ % @ # @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ + @ @ @ @ + @ + @ + + @ + + + + + + + + + + + + + + + + + X + + + + + X X X X + o X + O + + O + O O O O O O O O . O O o o . O . X o o . . o . . O O O O ", -"2 0 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 , , , , 1 , , 1 , 1 , , , , , , , , , , , > , , , , , 1 > > > , : , > > : , > , : > > > > : : : : > > > : > : > > : : : : : : : : : : : : : : : : : & : & : & : & & : & & & & # : : # : & & & # - - - - # # - - # - - - # - # - # # - - # # # % & % % % % # % % % % % % # # # # # @ % # # % @ # @ # @ @ @ @ + @ @ @ @ @ @ + @ + @ @ @ @ + @ # + + + # + @ + @ + + + + + + + + + + + + + X o + + + X + X + + o + X O O O O + O O O O O O O O O . . . . O O . . . . . O O ", -"2 2 2 2 2 2 r 2 2 2 2 2 2 2 2 2 2 1 1 2 1 2 1 1 1 1 2 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 , 1 1 , , 1 1 , , , 1 1 , , , 1 , , , , , , > , > , , > > , , , : , : , : : , : , : > : > , > > > : > : : : : : : : : : : : : : : - : - : - : - - - - - & : : & : & : : : : : : & : # & # : # - - - # - - # - - # - - # - # # & & # # & # & % % & # # & # # # # # - # # % # + - - + - + + - # @ @ @ # @ # @ @ + # # @ + @ + @ + + @ @ + @ + + + # + @ + + + + + + + + + + + o + + o + o + + + O O + O + O X X O X O O O + X O O O O O O X . . . . . o . . . o . o . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 1 2 2 1 1 2 1 2 1 1 1 2 1 2 1 1 1 2 1 1 1 , 2 1 1 1 1 1 1 1 1 1 , , 1 , , , , , 1 , , , , , , , , , , , , , > > 1 > : , , , , , , , : , , , > , > : > : : > > : > : : > : > : > : : : : : - - : - : - : - : - - : : & : & & & : # # : # : # : : : # - - # - - # - # @ # - # # - # # & # & & & # & # % & # & # % # % # # # # # # # # @ + + - O - + $ # # @ # @ @ @ @ # + @ + @ # @ @ + + # + @ + @ @ @ + + + @ + + + @ + + + + + + + + + + + + + + o + + + O + O + + + O + O X O X X O + O O O X O O . . . o o o . . . . . . . . O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 1 2 1 1 2 1 2 1 2 2 1 1 1 1 1 1 1 2 , 1 1 1 , , 1 1 1 1 , , 1 , 1 , , , 1 , , , , , , , , , , , > , , , > , > > , , : : , , : , : , : : > , : > : > : > > > : > > > : : > : : : : : : : : : : : - : - - : - & : & : & & : : # : : : : & : & : & & # - - # # # - - - # # - - # # - & # & # # & # & & & # # # & % % # # + - # # # # - + + + - O o + @ @ @ @ @ @ @ @ # # @ @ @ @ + @ # + @ @ @ + @ + + + @ + + @ + @ + + + + + + + + + + + + + + + o X + + X O + O O X + O + o o X X O O O O O X O O . . . o . . . . . . . o o . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 1 2 2 1 2 2 2 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 1 , 1 , , 1 1 , , 1 , , 1 , , , , , , , > , > , , , , > , , > , , : , , , : , , : , : , : > > : : : > : : > : : : : > : - : : : - : - : - : - - - - & : & : : & : : : # # : & & # : # : - - # - - - - # - - - - # - - # # & & # & # & # # % & # # % % # - # # # # # % # - @ - @ O - - + # @ # @ @ @ @ @ + @ @ # + # # @ + @ @ + + @ + @ # + + @ + + + + @ + + + + + + + + + o + + o + + + O X + O O + + O O O O X + X X O O O O + X O X O O o . . . o o o . o . o . o ", -"2 y 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2 1 1 1 1 1 1 1 , 2 1 1 1 1 1 , 1 1 , 1 1 , , , 1 1 1 , 1 , , 1 1 , 1 , , , , , , , , , , > , > , , , > > > , : > , : , , : : , : , : : > : : , , : > > : : : : > : : : : : : : : : : - : - - - : - - - - - : & : & # : : : : # & : : : & # - # - - - @ @ - @ + - - # - # - & & & # # & # & # & # # % % % & - + # # - @ + - + - + @ + + - - # # # @ @ # @ @ # @ + + + @ @ @ @ @ + o @ @ @ @ + # + + + + + @ + + + + + + + + + + + + + + + o + + X O + O + O O O O O + + O + + + + O O + O O O O X X . . O . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 1 2 1 2 1 1 2 2 1 1 1 2 2 1 2 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 , 1 1 1 , , 1 , 1 1 , , 1 , , , 1 1 , , , , , , , , , , , , > , , , , , , , : , : , : , : : , : , > : : > > : : > > : : : : : : : : : : = : : - : : - - - - - - & & : : & : : # : : : & : & & : : - # - # - - - - - - - @ - # - # & # # & & # & # # # & & % # # # # + - + + + - @ @ @ + - - + + + @ # + # @ @ @ @ # + # @ # # + + + + # @ @ o + o + @ + + @ + + + + + + + + + + + + + o + o + + + O + X + O O O O + O + + + + + + + $ $ $ + $ + + + O O O O . . . . . . . o ", -"2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 1 2 2 1 2 2 2 1 2 1 1 2 1 1 1 1 1 2 1 1 1 1 , 1 1 1 1 , 1 1 1 1 , 1 1 , , 1 , 1 , , 1 , , , , , , , , , , , > , > , , > , > , , : : , , : , : , : , , : > : > : : : : > > : : : : : : : : : - : : : : : : - - : - - - - - - : & & : # : : # & # : # & & & & - - # - # - - # @ - - @ # - # - # & & # # & % & & # % % & % # % + - - + @ # + @ + - @ @ - + + - # @ # @ # @ @ @ + # + # @ + + @ @ + @ @ + @ @ + + + + + + + + + + @ + + + + + + + + o + + + o o + O O + O + O O + O + + @ + % % $ * # * * @ $ + + + O O O O o o o o . . o . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 2 2 1 2 2 1 1 2 1 1 1 1 1 1 1 1 1 2 1 , 1 1 1 1 1 , 1 , 1 , 1 1 , 1 , 1 , , , , , , , , , > , , , , , , > , > > , : , , , > > , : , : , : : , : , : , , : : : : : : : > : : : : : : : : - : - : - - : : - - - : & & : : & : & : : : : # : & : # & # - - - @ - - # - - @ - - # - - & # & & & # & # # & % # # # # & - @ + - + - - O - @ + - + - + + @ # # # + @ @ @ @ @ # # + # # @ + # @ @ + + @ @ @ + @ @ + + @ + + + + + + + + + + + + + + + + + O + + O + O + + + + + + % # * ; ; > : ; ; = * $ $ + + + O . . . . . o . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 1 1 2 1 1 2 2 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 1 , , , , 1 1 , 1 , , 1 1 , , , , , , , , , > , , , > , : , , , : , , : : , : , : , > : > : : , : > > : : : : : > : : : : : : : - : - : - - - - - - & - & : & : & & & : # : & & # : : & & & & & # & & & - 8 4 4 4 8 < 4 , , , < 4 4 4 8 4 4 4 4 4 4 4 4 4 4 4 4 8 4 4 - $ @ $ - + + - o # @ @ @ @ @ + @ + # @ + @ + # + @ @ + @ @ + @ + + + @ + + + @ + @ + + + + + + + + + + O + + + O + + X + + o + + + + + # = ; 5 7 2 e e e 1 7 < = # @ + + + O X . . . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 , 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 1 1 1 1 , 1 1 1 , , , , , , , , , , , , , , , , , , , > , > > , , : : , , : , , : , : , : > , : , > : : > : > : : : : : : : : : : - : : : : - : - - : - - : - : & : & & : & & & : & : & & & & & & & & & & & & 4 v v v v v v v v c v v v v v v v v v v v v v v v v v v v v v v k ; - + + - - $ # # @ # # @ # # @ @ @ @ @ @ + @ + @ @ + + @ @ + @ + @ + + @ + + + + + + O + + + + + + + O O + + O + X + o + O + + @ * * > 7 e s n M M m n f e 7 > * # + + O . . . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 1 2 2 2 1 2 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > 1 , 1 1 , , , , , , , , , , , , , , , , , , , > , , , > , , , , , , : : , , : > , : > , : : , : > , : > : , : : : : : : : - : : : : : - : - : - - : - : & : : & : : & : & & & & : : & & & & & & & & & & # 4 v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v k $ @ O - $ @ # @ @ @ @ @ @ @ # @ # @ # # @ + @ @ + @ + @ + @ + + + + + + + + + + + + + + + + + + + + + O + + X + o + o + + $ # * > w f M S U T R T K S m f 9 : * % + + O X . . . X . . X . X ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 , 2 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 1 1 1 , 1 , 1 , 1 1 , 1 , , 1 , , , , , , > > , , , : , , , : : , , , , : > > , : , : : , > : > : : : : : : : , : : : : : > - : - - - : - : - : - - : & : & & : & & & : & : & & & & & & & & & & & & & & & 8 v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v x ; - + O # @ @ # @ @ @ # @ + @ + + + # + @ + @ @ + @ + @ + + @ + + @ + + + + + + + + O + + X + O + + + + + + + X + + + @ $ ; > 0 f C K ! ..;.;.;. .~ Y B f 7 : * $ + O . . . . . X X X X X X X X X . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 2 1 2 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 , 1 1 , 1 1 > 1 1 , , 1 > 1 > 1 , , , , , , , , , , , , , > > , , , : , , , : , > , > : , > > : > : : > : : > > : : : : , : : : - - : : : - : - - : - : & : & - : & : & & & : & & & & : & & & : & & & & & & # & < v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v l - # @ @ @ @ @ # @ @ @ @ @ + @ # + @ + @ @ + @ + @ + @ @ + + + + @ + @ + + + + + + + + + + O + + + O O X + + o X + + $ # ; 7 y A R { <.2.7.9.7.2.>.{ R A r 7 = $ $ + X O . O X + X X $ + + + X X X X ", -"2 2 2 y 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 1 2 2 1 1 1 1 1 1 , 1 1 1 1 1 1 , 1 1 1 1 > 1 1 , , , , 1 , 1 > , , , , , , , > > , , : , , , > : , : , : , , > , : , , : > : > : > , : : > : : : > : > : : : : > : : : - : - > - - : - : & : - : : & & : & : & & : : # & : # & & & & & & & & & < v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v k # $ # @ # @ @ @ @ @ @ @ @ @ @ @ @ # + @ @ + @ + @ + @ + @ + + + + @ + + + @ + + + + + + + + O + + + O + + O + + + % = , e M K ..1.9.w.j.j.j.w.7.1.{ Y M w 5 * $ + + O O . + + + $ $ $ $ $ * $ $ $ + ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 1 2 2 2 1 1 1 2 1 1 2 1 1 1 1 1 1 1 , 1 1 , 1 , 1 1 1 , 1 > 1 1 , , 1 , , , 1 , , 1 , , , , , , , , , , > , , , , > : , , , , : > : > > : , , : : , , , : : , : : > , : : : : : : : - : : - : : : - : : - - : - - - & : & : : - & & & & & : : & & & # & & & & & & # 8 v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v 8 $ # @ @ @ # # # @ @ @ @ @ @ + @ + + # @ @ + @ @ + + + + + @ + @ + + + + + + + + + + + + + + + O + + + O + + + + # ; 7 f S ~ <.9.g.l.x.x.x.l.h.9.>.! G r 6 & $ + + O O + + + % * * = = 3 * * = $ $ ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 1 2 1 2 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 , , 1 , 1 , 1 > , 1 > , , , , , , , , , , , , > > > , , , : , > > , , > > > : : , : > : : : , : : > : > : : : > : : : : : : : : : - - - - : - & : : & : & : & & & : & & : & & : # : # : & & & & & & & 0 v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v c # # @ # # @ + @ @ @ @ @ @ @ @ @ @ @ @ + + @ + + @ + @ @ + + + + + + @ + + + + + + + + O + O + + O + o + o + + @ % : 7 n U ..2.w.l.m.M.N.M.m.l.w.2.{ Y b 9 = $ + + + + + $ % = > 6 7 9 9 9 7 5 5 = ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 1 2 1 2 1 1 2 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , , 1 , 1 , , 1 , , 1 , , , , , 1 , , , , , > , > > , , , , , > , > , : , , : , : , : , : : > > : , : : > : : : : : : : : : : : - : - - - : : : & : & & & & : & & : - & : & # : : # : & : & & & & & & & & , D c v c v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v 8 # @ @ # # @ # @ @ @ @ + @ @ @ + @ + @ @ + @ @ + @ + @ + @ + + + + + + + + + + + + + + + + + + + + O + + + + + * > e m T :.8.h.z.M.C.C.C.M.z.j.7.;.T M w ; $ $ X + $ $ * ; 7 w r b m M m b s 9 5 = % $ X $ . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 1 1 1 1 , 1 , , 1 , 1 , , 1 , , , , , , , , , , , , , , , > > > , , > > > , : : , : , : , : : , : > , : : : : > : > : > : : : : : - : - : > - & & : : : : : : & : & : : # - & & - & & : : # : & & & & & & & # : h l l l l l l l l l l l l l l l l l l l l l l v v v v v v v v v v v v v v v c @ # @ @ @ @ # + @ @ @ @ @ @ @ @ @ @ @ + @ + + @ + @ + + + + @ + + + + + + # + @ @ + $ + + + + O + X + X + + $ & ; e C R :.9.h.m.V.Z.Z.Z.V.x.j.7.:.T M e 5 $ $ + + $ * : 7 r b S K T T T K A m s 7 3 * $ . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 1 1 2 1 2 1 2 1 2 2 2 2 1 1 1 1 2 1 1 1 1 1 1 1 1 , , 1 , 1 , , , , 1 , , , , 1 , 1 , , , , 1 , , , , , , , > , > > , > , , > , , > , > , , : , : , : > , : > : : > : > : > : > : : : : > : : > - : - > - : : & : & : : & : & : & - - : & : & & & & # & : & & & & & & & & & & - & & # & # - # - - # & - % # - # # # & % % # g v v v v v v v v v v v v v v - - # @ @ @ @ @ @ @ @ @ @ @ + @ @ + + @ + @ + + @ X + @ + + + + @ + + + @ % # # # @ % $ % + + + + X + X + + + & > e M R ;.7.h.m.M.C.C.C.M.x.h.7.;.T M w ; * $ + $ * ; 7 s A T R ..-.-.-.{ ! K B s 7 3 $ + . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 , 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 , , , , , , , , , , , , , , > > , > , > , > > , > > , > , : > , : , : , > : , : > : > > : : : : : : : : : : : - - : - : - - & : : : & : : & & - - - - & & - & & & : : : # # & & & & & # & & & & & & & & # & # - # # - # # # # # # & % % # # # @ g v v v v v v v v v v v v v i o @ @ # @ # @ @ + @ @ @ @ + @ + @ @ + @ + @ + @ @ + @ + @ + @ + @ @ # % # % % = # * * * @ # % $ + + + + + @ * ; w b K { 2.q.l.m.M.V.M.m.l.w.2.{ K b 7 ; $ $ $ $ = 6 r C R { >.2.2.8.7.2.>.{ Y C s 4 * * + . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 1 2 2 1 1 1 2 1 1 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 1 1 , 1 , , , 1 , , , , , , , , , , , , , , , , , > , , > , , , : , : > , : : , : : > : : , : : > : : : > > : : > : : : : : - : : : > - - > : : & : : : & : : - : & : # - & & : # : & : : & & & & & & & & & # & # & & # & # - # # - # # % % & # # # & # & # # # - v v v v v v v v v v v v v c @ @ @ + # # @ # + + # @ @ @ @ @ + @ @ @ + @ + + X @ + + @ X + + @ $ % & = = : < < > : ; = # @ $ + + + + + $ # = 7 b S ~ <.9.h.l.z.x.x.l.h.9.>.~ G s 7 * % $ $ % 3 e m K { 1.8.f.h.j.h.f.8.1.{ U b r ; * . . . ", -"2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 , , , 1 1 1 , , , , , , , , , , , > , , , : , , > : > , > , > , > , : , > > > , : : , > > > > : : : > : : > : : : : : - : - - - - - : & : & : : & : & & : : : & & & & : & # & : # & & & & & & # & & & & & & & & # # - - # # - # - & % & % & # % # # # # p v v v v v v v v v v v v v - @ @ @ # + # + # # # @ + @ + @ + + @ @ @ + + + @ + @ + + @ @ @ # * = : 5 7 e e e e e 7 5 > = $ $ $ + + + + $ & , e b Y { 1.9.w.g.j.j.w.9.1.{ K M e : % % $ % = 7 s G R <.8.h.l.z.m.z.l.h.8.>.R A s 5 * + . . ", -"2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 2 1 2 1 1 2 1 2 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 , 1 1 , , 1 , 1 1 , , , , 1 1 , , , , , , , > , , > , > > , > , , , , > > > > > , , > , > : > > > : : > > : : : > : : : > : : : : : - > - > - - : - : - & : : & & : & : & # : : : & : & : # : & & & & & & & & & # & & & & & & & # - # # # # - % # & # % # # & % - # # ; v v v v v v v v v v v v v < @ @ @ @ @ # # # # + + @ @ + @ @ + @ + @ + @ + + + @ + @ + $ % % : 5 7 r b b M M M m f r 7 < = # $ + + + + $ % = 7 y A T { >.2.7.7.7.2.>.{ T A r 7 = * + % % = 7 b K .2.f.l.m.M.M.M.m.l.g.2...K b 7 . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 2 1 2 2 1 2 2 2 1 2 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 1 1 , 1 1 , 1 , 1 , 1 , , , , , , , , , , , , , , , , , , , , > , > , > > , > > : : , : > , : , : , : : > > : : > : > : : : : : : : : - - - : - - & : : : : & : : & : # - : - & & & # : : & # : & & & & & & & & & & & # # & # & - # # - - # # # % # & # # % # # # # # # l v v v v v v v v v v v v q - @ @ @ @ @ @ @ + @ # @ @ @ + @ @ @ + + @ + @ @ + + @ + $ % & : 5 w f M K K R Q R K S M b 9 5 = & $ + + + $ $ = > 7 b A Y ~ -.;.:.-.-.~ Y C f 9 > * $ + $ % : w b Y ;.8.h.z.M.C.C.C.M.z.j.2.-.T b 9 ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 1 2 2 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 , 1 , 2 , 2 , , 1 , 1 , , , 1 , 1 , , , , , , , , , , , , , , > > > , , > > > > > > : , > : , : > > > > : > > : > > : : : > > : : : : : : : : : : : & : : & : : - & - - & & & : & E u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.v.u.} 6 % & & # & & # # # & % % % % % # # % # % # * i v v v v v v v v v v v v a - o - O + + + - + + + + + @ @ + @ @ + @ # + + + @ + $ @ @ # = < e f G Y ^ ..:.>.;...^ K S b 9 < = @ + + + + $ % = : 9 s M S K T R T K A m s 7 : * $ $ + $ $ ; e C T :.8.h.m.N.C.Z.C.N.x.h.8.:.T N w ; $ + O . . ", -"2 2 2 2 2 y 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , 2 , , 1 , 1 , , 1 , , , , , , , 1 , , , , , > , > , > , > , > > , > , > , > , : > : : , , : > : > : > : : : : : : : : : : : : : : : : & : : : : & : : & : & = - - : & & : o.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.B.E % & & # # & & & # & % % % % % % % % # # # q v v v v v v v v v v v v k o - @ @ - + + O - + - O - + @ + @ + + + + + @ + + @ @ @ $ ; ; 0 f A R .<.2.7.9.7.2.<...R C f 7 : # $ $ + + + $ % * 3 7 e s m M M m m f w 7 > * % $ + + + * ; w b T ;.8.g.z.M.C.Z.C.M.z.h.7...T b 9 * $ + O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 1 2 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 2 1 1 , 1 , 1 , 1 , 1 , , , , , , , , , , , , , > , > , > , > > > > > > > > : > : > , : : , > > > > > > : > : : : > : : : : : : : : : - & : & : & : : & : : : & : & : & & +.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.E # & # & & # & # % % % % % % % % % % $ # 3 v v v v v v v v v v v v k - o O @ + O - - O @ + + + + + # @ @ # + # @ + + + @ + # % ; < r M Y .1.9.w.j.j.j.q.9.1...K M e 7 = $ + + + + + $ % = : < 5 w w e w 7 5 5 ; * % + + + + + $ ; 7 b K { 2.f.l.m.M.N.N.m.l.f.2.{ K b 9 * $ + . ", -"2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 1 1 1 2 1 1 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 , 1 1 , 1 , , , 1 , 1 1 , , , , , 1 , , , , , , , , , > , , , , , , > > 1 > > > , > , , > , > : : , : : > : : : : > : : > : : : : : : : : : : : : : - : : : & & : : & & : & : & : & o.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.m & & & # & # & & % % % % % % % % # # # 4 v v v v v v v v v v v v k o - - @ @ - O + + @ - o - + + # + + + @ + + @ # + + @ @ ; ; 0 f S ^ <.9.j.l.x.x.x.l.j.9.<.^ S s 7 = $ $ + + + + + $ @ # = = ; > ; ; ; = * % + + + + O + + $ * 7 r A { >.8.g.l.z.x.z.l.g.8.>.R S s 6 * $ O . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2 2 1 2 1 2 , 2 2 2 1 1 2 1 1 1 1 1 1 1 1 1 , 1 , , 1 , 1 1 1 , , , 1 , 1 1 , , 1 , , , , , , , , > , , , , > , > 1 > , > > > > > , : , : , , : , > : > > > : > : > : : > : : : : : : : : : : - : : : & : : & & : : & : & : & & o.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.k.# & & % % % # % % % % % % % % % # # # 4 v v v v v v v v v v v v k + O $ - + + + + # + + - + + @ @ + + + + + + + @ + + @ # ; ; w n Y ..2.g.l.m.M.N.M.m.l.f.2. .K m w ; * + + + + O + + O $ $ % % $ * % * $ $ $ + + O O O O + $ % 5 r b K { 1.8.f.g.h.h.f.8.1.{ Y b w : $ $ X . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2 1 1 2 1 1 2 2 2 , 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 , 1 , 1 1 1 1 1 , , 1 , , , , , , , , , , , , , > , , , > > , > , > > > , , > > > : , : , : : , : > > : > : > : > > : > : : : : : : : - : - : : - : & : : & : : & & : & : & = : o.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.L & # & % & & % % % % % % % % % % # % 4 v v v v v v v v v v v v k - O - + - + + - + # + + @ + + @ @ @ @ @ @ @ # + @ @ # # - > e M Q :.7.j.x.N.C.Z.C.M.x.h.8.:.Y B e > * % + + + X + + + + + + $ $ + $ + + + + + O X O O + + % = 5 s C U { >.2.8.8.8.2.>.{ T C s 5 * $ + . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 1 2 2 2 1 2 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 , 1 , , 1 , 1 , , 1 , , , , , , , , , , , , , , , > , , > > > > , > > > > > > , : , : , : : , > : > > : > : : : : : : : : : : : : : : : : : & : : : & : : : : & : & : : & & t D V V V N D V N V V V x V V V o.Z.Z.Z.Z.Z.Z.Z.Z.Z.0.# & & % % % % % % % % % % & % # % # 4 v v v v v v v v v v v v k - - o + + + @ @ + # # + + # + @ @ @ @ + @ + + @ + + # # - < r B Q :.9.j.x.N.C.Z.Z.B.m.j.9.>.Q B e > # @ + + X O + X X + + + + + + + O + O O O X X X O X O + $ % ; 7 f C K ! { ;.:.-.{ R Y C s 7 = $ + + . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 1 2 1 1 2 1 , 2 1 1 1 1 1 1 1 2 , 1 1 1 1 1 , 1 1 1 1 1 , 1 , 1 , , 1 , , , 1 1 , , , , , , > , , > , , , , , > , , > > , , > , > : , : , : , : : > > : : > : > : : > > : > : : : : : : : - : : : & : : : : & & : : & : & & : & & & - & & & - - - & & - & & & % # } Z.Z.Z.Z.Z.Z.Z.Z.Z.< # % & % & % % % % % % % # % % % % 8 v v v v v v v v v v v v k o O + - - o @ @ @ # + o - + @ @ + + + @ + @ + + @ @ # # - < e M Q ;.7.h.x.N.C.C.C.N.x.h.9.:.R M e > * + + + + O O O O X O + O O + O O O X O X O O O O O O + $ % 5 7 f b S K T T Y K S b s 7 > = $ + X . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 1 2 , 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 , 1 1 , 1 , 1 , 1 , 1 , 1 , 1 , , , 1 , , , , , , , , > , , > , > , , > > , > > > > > > , , > > > > > > > > : > : > : > > - > : : : : : - : : : - - - : : - - - : & : : & : & : & : & : & - & & & & & & & & & # & & & & = v.Z.Z.Z.Z.Z.Z.Z.Z.P # % % & # # # # # & # # # # % # # i v v v v v v v v v v v v k @ @ - + @ @ @ @ @ @ + @ @ + @ @ + @ @ + @ + + + + $ + % = < w n Y ..2.f.l.m.N.B.N.x.l.f.2...U b 9 : # @ + + O O O O O O O O O O O O O O o . O O X O O O O O X + $ * ; 6 e r b m M b b r e 7 3 * $ + + ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 1 , , 1 2 2 2 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 1 , 1 , , , 1 , , , , , , , , , , , , > , > , > , > , > , > , : : > : > , : : : > > > : > : : > : : > : : : : : : : > - > : & - : - : & & & & : : & & & & & & - & - & & & & & & & & & & & & # } Z.Z.Z.Z.Z.Z.Z.Z.o.& & # & # & & & # # & & # % # # # l v v v v v v v v v v v v u # @ + o - @ @ @ @ @ @ @ o - + @ @ + @ + + + @ @ + @ + % % ; 9 b H ^ <.9.h.l.x.x.x.l.g.8.<.! S b 7 = % @ + X O + + O + O O O + O O O X X o o O O X O O X + + $ * ; : 6 9 w e e 7 6 : * $ $ + X . ", -"2 y 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 1 2 : , & 1 : 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 1 , , , , 1 , , , , 1 , , , , , , , , > , , > , , , , > > > > , > > > > , > > > , : : > > > > > > : > : > : > : : : : : : : : - : - - - : : - : : : : : & & & : & : & : - & & - - & & - & & & & & & & % & j Z.Z.Z.Z.Z.Z.Z.Z.u.% & % % & # # & # # # # # % % # - v v v v v v v v v v v v v q - o + @ @ @ @ @ @ @ @ + + @ + @ @ + + @ + @ + @ + + % # % ; 1 r M Y .1.9.f.j.j.j.q.9.2...K M r < = # @ + + O O O O O X + O O O O O O O X X O O o O . . X X + $ $ $ ; ; ; = = * * * $ + + X . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 L J J L J W W W W W W B Q L L L C 7 2 1 1 1 1 1 1 , 1 1 1 1 1 1 , , , C J F J J F F L F F J J F J , , , , , > , , , > 9 F F F F F F F F F C F F F 2 , : > > > : : F D F D D D F 7 : : : - - : : : Z F Z Z Z Z Z - & : & & : : : & : & - & & & - & & - & & & & & & & & & & # & Z.Z.Z.Z.Z.Z.Z.Z.u.# # & % # # & # & # & # & % # % u v v v v v v v v v v v v v ; @ @ o - @ @ @ @ @ + @ @ @ @ @ @ + @ @ + @ + + + + + + $ % = > 1 b A R ..<.2.9.9.9.2.<. .R A f 1 ; * % + O + + O + O O + O O O O O O O X o o O O O O X . . X . X + + + + $ $ $ $ * $ $ + + + X . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Z.Z.Z.Z.Z.Z.Z.Z.Z.m.C.C.Z.Z.Z.Z.Z.b.J 1 1 1 1 1 1 1 1 , , 1 , 1 1 I b.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.> , , , , > , > w &.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.F : , : > : > > 6.Z.Z.Z.Z.Z.Z.` : : : > : : : I Z.Z.Z.Z.Z.Z.u.& : & & : : & : & & & & & - & & & & & & & & & & & & & & % & & B.Z.Z.Z.Z.Z.Z.Z.B.# & & # % & # & # # % % # # # - c v v v v v v v v v v v v v + + - # @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ + @ + @ + + @ + @ % # ; < w b A K ^ ..;.>.;...^ Y A f e < = @ + + + + O + O + O O O O O + O O O . O O O . o . . . . . . + + + + + + $ + + + O . . + . . O . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 Z.Z.Z.Z.Z.Z.Z.Z.Z.N.V.Z.Z.Z.Z.Z.Z.Z.Z.I 1 1 1 1 1 1 1 1 1 1 1 , [ Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z., , , > , , , , k.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.F > : > > > : > D Z.Z.Z.Z.Z.Z.r.: > : : : : > 6.Z.Z.Z.Z.Z.Z.I : : - : : & - & : & : & : & - - & & & - & & & & & & & & & % & u.Z.Z.Z.Z.Z.Z.Z.Z.& % % # & # & # % & % # # # @ a v v v v v v v v v v v v v k - - O @ @ - o @ @ @ @ + @ @ + + @ @ + + @ + @ + @ + + @ + @ % # ; 5 w b B S Y Y Q R Y S M s w < * % @ @ O O O + O O O + X + O O O O O O O o . O X O O o o . o . . . . . . O O O . + O O O O + + + + + + + + ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.B.e 1 1 1 1 , 1 , 1 1 1 H Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z., , , , , , , &.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.F > , : > : : > > v.Z.Z.Z.Z.Z.Z.7 : : : : : 7 Z.Z.Z.Z.Z.Z.v.: : & & : & : - - & & : - & & & & & - & & & & & & & & & & & & & B.Z.Z.Z.Z.Z.Z.Z.B.# & % & # # # % # # # # # % i v v v v v v v v v v v v v v 4 - O + @ @ @ @ @ @ @ @ @ @ @ + + @ + @ @ + @ + @ + @ + + @ + # % = - > 7 r f m B B M n b e 7 > = % @ + + + O O O + O O O X O O O O O O O O O o . o o . . . . X . . . . . . X . . X . O + O X $ $ $ $ $ $ + ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.3.1 1 1 1 1 1 1 1 , , p.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z., , , , , > y Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.F > : , : , : > : | Z.Z.Z.Z.Z.Z.` : : : : : ` Z.Z.Z.Z.Z.Z.o.: & : : & : : & - & : & : & - & - - & & & & & & & & # & & & # & Z.Z.Z.Z.Z.Z.Z.Z.s.i i i p p p i p i p p a k v v v v v v v v v v v v v v v c $ + + - # @ @ + @ @ @ @ + @ @ @ @ @ @ @ + @ + @ + @ + + @ + @ + % # = = > < 7 e e e e e 7 , > ; # $ @ + + O + + O X X + O + O O O O O O O O O O o X O . . O . . . o X . . O + + $ $ % * * 3 * 3 * * $ $ ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 Z.Z.Z.Z.Z.Z.k.L L L L L L +.Z.Z.Z.Z.Z.Z.B.1 1 1 1 , 2 , 1 1 C Z.Z.Z.Z.Z.Z.Z.+.J J J J P F F J J F , , , > , , &.Z.Z.Z.Z.Z.Z.k.W F F F F F F F F F 2 > > > : > : : : 0 B.Z.Z.Z.Z.Z.r.: : : : : k.Z.Z.Z.Z.Z.Z.7 : - : - - - : & : & - - - & - - - & = & & : & & & & # - # - & V Z.Z.Z.Z.Z.Z.Z.Z.d.v v v v v v v v v v v v v v v v v v v v v v v v v v v v a - + @ @ - @ @ @ + @ @ o + # # @ @ @ @ + @ + @ + + @ + + @ + + @ $ $ % & = * : : < < > : ; * # % $ $ + + + O O O + X X O O X O X O + X O O X O O O O O . . o . X O o X X X X X $ % & 3 5 9 9 9 e 7 5 ; = % $ X X ", -"2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 1 1 Z.Z.Z.Z.Z.Z.p.2 1 1 1 1 1 2 +.Z.Z.Z.Z.Z.Z.W 1 1 1 1 1 1 1 1 &.Z.Z.Z.Z.Z.Z.+., , , , , , 1 , , , , , , , , , , b.Z.Z.Z.Z.Z.B.9 > > , > > > > > > > > > > : > > > > : > 5.Z.Z.Z.Z.Z.Z.7 : : : d Z.Z.Z.Z.Z.Z.4.- : - - - - - & : & : & - & & & & & & & & & & - & & & & & - # 8 0.Z.Z.Z.Z.Z.Z.Z.Z.e.v v v v v v v v v v v v v v v v v v v v v v v v v v v v ; $ + O - O @ @ @ + - + - # + + @ @ + + + @ + @ @ + @ @ + @ @ @ + $ $ $ % % % = & & * * * # % % $ + + + O + O + X O + + O O + X X O O X X O X O O O O . O . o o O o X + + $ * = 5 9 s b b b b b s 9 7 = * $ O X X ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 Z.Z.Z.Z.Z.Z.p.2 2 1 2 1 1 2 e Z.Z.Z.Z.Z.Z.+.1 1 1 , 1 1 1 , p.Z.Z.Z.Z.Z.Z.w , 1 , , 1 , , , , , , , , , , , d Z.Z.Z.Z.Z.Z.&.> > > , > > > > > > > > > > > > : > > > : N Z.Z.Z.Z.Z.Z.` > - : %.Z.Z.Z.Z.Z.Z.C = - - - - - - & : & : - & - - & & : & : & & & & & & = & - & q / B.Z.Z.Z.Z.Z.Z.Z.Z.#.v v v v v v v v v v v v v v v v v v v v v v v v v v v u # - - O + - + @ @ @ + @ @ @ @ + # @ @ @ @ @ + o + @ + @ $ @ # # % # # $ # % # # * $ % # % $ $ $ + + + + X + X + O O O O O + X X + O O O O O O X O o X X o . . X X o O X O + $ * = 7 r b C S T T T K A b s 7 : * + X X ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 Z.Z.Z.Z.Z.Z.p.1 1 1 1 1 2 1 2 0.Z.Z.Z.Z.Z.p., 1 1 1 1 , , 1 Z.Z.Z.Z.Z.Z.0., 1 1 , , , , 1 , , , , , > , , , F Z.Z.Z.Z.Z.Z.F , > > > > , > > > > > > > : > > > - > > : : k.Z.Z.Z.Z.Z.u.- - - v.Z.Z.Z.Z.Z.k.- - - : - - - - : & : & - & & & & - & & & & & & & & & % & # 8 v t.Z.Z.Z.Z.Z.Z.Z.Z.Z.) v v v v v v v v v v v v v v v v v v v v v v v v v v l * @ + + - O + O - @ @ @ @ @ + # # + @ o @ @ + @ + @ @ + $ # # % = = = ; * = & & & # $ @ + $ + + + + X + O + + O O O + O + O o X o o O O O O X X O O O O . o . . O O X X + + * = 7 s C Y { { -.-.-.{ ! K C s 7 * % $ O ", -"2 2 2 2 9 2 2 2 2 2 2 1 2 2 1 2 2 2 2 Z.Z.Z.Z.Z.Z.p.1 2 2 1 1 2 1 2 +.Z.Z.Z.Z.Z.b.1 1 1 1 1 1 1 1 Z.Z.Z.Z.Z.Z.+.1 , , 1 1 , , , , , , , , , , > , +.Z.Z.Z.Z.Z.Z.9 , > , > > , > > > > : > > > > > : > : - > > W Z.Z.Z.Z.Z.Z.t > I Z.Z.Z.Z.Z.Z._ - : - - - - - - & : & : & & - - - 5 V V V V V V V V V V V V =.d.Z.Z.Z.Z.Z.Z.Z.Z.Z.d.v v v v v v v v v v v v v v v v v v v v v v v v v v c ; # # + - - @ + + - + + + + + + + + + # + # + @ + @ @ @ # # # ; - > , < , 5 > : = = # % $ @ + + + + O O + X O O + + + + O O O O o O o O O O X O O X O O O O X o o . O . o O O + $ * 7 s C T { >.2.2.8.8.2.>.{ Y M s 7 * $ + ", -"2 2 2 2 2 2 2 2 2 2 9 2 2 1 2 2 2 1 1 Z.Z.Z.Z.Z.Z.p.2 7 1 2 1 1 1 1 L Z.Z.Z.Z.Z.Z.1 , 1 1 1 1 , 1 Z.Z.Z.Z.Z.Z.+., 1 , , , , , , 1 , , , > , , , , +.Z.Z.Z.Z.Z.Z., > > , > > > > > > > > > > : > > > > : > > > : B.Z.Z.Z.Z.Z.} - 6.Z.Z.Z.Z.Z.B.7 - - : - - - - - : & : & & : - e 4.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.#.v v v v v v v v v v v v v v v v v v v v v v v v v v ; $ # % + + O O - O - + - + - o + - + + + @ + + + @ # @ $ # = = > 7 1 9 e e e w 7 < : = # % @ + + + + O + + + + O O O O O + O + + O O O O O + X O o X X . X o o o . . O o o o O O O $ * : e m K { 1.8.f.h.j.h.f.8.1.{ K m 9 ; $ + ", -"2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Z.Z.Z.Z.Z.Z.p.1 2 1 1 1 2 1 1 L Z.Z.Z.Z.Z.Z.1 1 1 1 1 , 1 1 Z.Z.Z.Z.Z.Z.+., 1 1 , 1 , , 1 , , , , , , , , , +.Z.Z.Z.Z.Z.Z., , > > , , > > > > > > > > > > > : - > > - - > %.Z.Z.Z.Z.Z.k.1 Z.Z.Z.Z.Z.Z.5.- : - - - - - - - & : & : : - j B.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.c.v v v v v v v v v v v v v v v v v v v v v v v v v k * % % $ # - + + - O - O + # @ - + - o - + @ @ + # # + + - # = : , 7 t b n M A M M b r 7 5 = % $ @ + + + + X + O O + O + O O + O O O O O O O O O O o O O O . o . . . . o . . X X X + $ * 5 r C ! >.8.h.l.z.z.z.l.g.9.>.~ C r 5 * + ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 Z.Z.Z.Z.Z.Z.p.2 1 2 2 1 1 1 1 L Z.Z.Z.Z.Z.Z.1 1 1 1 , 1 1 , Z.Z.Z.Z.Z.Z.+., , , , , , , , , , , , , , , , , +.Z.Z.Z.Z.Z.Z.F > > , > > > > > > > > > > > > > > > > > > > : t Z.Z.Z.Z.Z.Z.+.Z.Z.Z.Z.Z.Z.r : - : - - - - - - : & - & & e B.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.' v v v v v v v v v v v v v v v v v v v v v v v k 8 $ % $ $ @ + @ @ + - + + + - @ + o o - + + + # + # + + + @ @ & ; 7 e b M H Y R R R K S M b w , = * $ + + + O + X O + + O O + O O + O O + O O O O O O . o o O o o . o o . o . . o O + + = 7 f K .2.f.l.m.M.V.M.m.l.q.2.{ K f 7 = $ ", -"2 e 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 1 Z.Z.Z.Z.Z.Z.p.2 1 2 1 2 1 1 1 W Z.Z.Z.Z.Z.Z.1 1 1 , 1 1 1 1 Z.Z.Z.Z.Z.Z.+., , , , 1 , , , , 1 , , , , , , , I Z.Z.Z.Z.Z.Z.%., > , > > > > > > > : > : > > > : > : : > > > : u.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.u.- : - - : - - - - - - = - - = u.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.#.v v c a p p q t p i p p u i i i u u u p u 6 4 & # # # # # # # # @ O @ @ - + + + - - O + + + + + + # + + @ @ @ - ; < 0 n A Y ^ -.:.>.:...^ T C f e < = @ + + + + + O + X + O + O O + + X O O O O O O O O O O O O . . o . . . o o . . . . . O + $ ; 9 m T ;.7.h.z.N.C.Z.C.M.z.h.7...T m 9 = $ ", -"2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 Z.Z.Z.Z.Z.Z.p.1 2 1 1 1 1 1 1 +.Z.Z.Z.Z.Z.b.1 1 1 1 1 , 1 1 Z.Z.Z.Z.Z.Z.+.1 1 1 , , , , , , , , , , , , , , N Z.Z.Z.Z.Z.Z.B.w > , , , > > > > , : > > > > > > : , > : - > > I Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z._ : - - & - - - - - - - - & - V Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.n.' v v c - & % & # & % # % % # % % # % % # # $ % @ % # # # # # @ # @ @ - - @ + O - O o + + @ + - - + # + # @ $ # # ; ; 0 f A Q ..<.2.7.9.9.2.<. .Q A f 1 : * % @ + + X + X + O + O O O O O X O O O + O O O O O O o . o . . o . . . . . o . O O % ; e m T -.8.h.z.N.Z.Z.C.N.x.h.8.:.T m 9 ; $ ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 Z.Z.Z.Z.Z.Z.p.1 1 1 2 2 1 1 1 p.Z.Z.Z.Z.Z.p.1 1 , 1 1 1 , 1 Z.Z.Z.Z.Z.Z.+., , 1 , 1 , , 1 , 1 , , , > , , > , B.Z.Z.Z.Z.Z.Z.k.I F D F F F F N > : > : > : > : , : : > > : : : v.Z.Z.Z.Z.Z.Z.Z.Z.Z.v.: - : : : : : : - - - - & - - 0.Z.Z.Z.Z.Z.Z.Z.Z.Z.v.u.u.u.u.s.d.d.d.d.d.d.t.=.O.v v v v ; % # % # % % % % % & % % % % # & # # % @ % % # # # # @ # @ # @ @ O @ + - O - + @ - + + + + @ @ @ + @ $ # - ; 1 t B Y .1.9.w.j.j.j.f.9.1. .T M r < = % + + + + O + O + O O + + O + X + X X X O O O O O O O X . . . . . o . . . X o . . . O $ $ = 9 m T ;.7.h.l.M.C.C.C.M.x.h.7.;.K m 7 = $ ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 Z.Z.Z.Z.Z.Z.p.2 1 1 1 1 2 1 n Z.Z.Z.Z.Z.Z.&.1 1 1 1 1 1 , , Z.Z.Z.Z.Z.Z.+.1 , , , , , , , , , , , , , , , , , 6.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.v.W > > > > : , : : > : : > > : O.Z.Z.Z.Z.Z.Z.Z.Z.Z.O.- : - : & : & - - - - - - - 5 Z.Z.Z.Z.Z.Z.Z.Z.Z.4.= & & & ; c v v v v v v v v v v v v k - & & # & % & % % % % % % # % # # & % % % % @ # # # # @ # # @ - O - @ + - + + @ @ @ + + - + + + @ @ @ @ # - ; 1 n H ^ 1.9.j.l.x.x.x.l.j.9.,.^ S b 7 ; % $ + + O + + O O + + O O + X O o X X + O O O O O O X X . . . . . . o . O O O + $ = 7 b K .2.f.l.m.M.N.M.m.l.f.2. .K h 7 = $ ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 Z.Z.Z.Z.Z.Z.p.2 1 1 2 2 2 1 0.Z.Z.Z.Z.Z.Z.W 1 1 1 , 1 1 1 1 Z.Z.Z.Z.Z.Z.+., , 1 1 1 , , 1 , , , , , , , , , > d Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.! ; > > : : : > , : : : : : d Z.Z.Z.Z.Z.Z.Z.Z.Z.d : - : : & : : & : : : - - - I Z.Z.Z.Z.Z.Z.Z.Z.B.< & & & & - v v v v v v v v v v v v v q % % % % & % % % % & % % % % # & # # # # # # # # # # # # @ # # + + - O @ @ - + @ @ @ + - O + + @ @ @ @ @ # - ; e m Y -.2.q.l.x.M.N.M.m.l.q.2...Y m w : % % + O + + X + O O + + O O O O O + o o X X O O O O . O . . o o . . o o . . o . . O + $ * 6 s S R >.8.h.l.z.x.z.l.g.8.>.! S r 5 * $ . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Z.Z.Z.Z.Z.Z.p.[ +.+.+.+.+.p.Z.Z.Z.Z.Z.Z.B.1 1 1 1 1 1 , 1 , Z.Z.Z.Z.Z.Z.+., 1 1 , , , , , , , , , , , , , , > , 6.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.B.t > > , > , : : > : , > : : 6.Z.Z.Z.Z.Z.Z.Z.6.: - : - : : : & : : & & - & & o.Z.Z.Z.Z.Z.Z.Z.Z.4.& & & & & 4 v v v v v v v v v v v v v ; % % & % & % % & % # % % % % % # # # # # & # # # # # # # # @ @ @ @ @ @ - @ + O @ @ @ @ @ + - + @ + + @ # # - < e B Q ;.7.h.x.N.C.Z.C.M.x.j.7.;.R M e < ; # + + + X + O + X O O + + O + O X O O + O O o O O . O . . o o . . . . . . . . . O X $ * ; e b Y { <.8.f.g.j.h.f.7.<.{ Y b w ; $ + . ", -"2 2 2 r 2 2 2 2 2 2 2 2 2 1 1 2 2 2 1 Z.Z.Z.Z.Z.Z.p.p.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.+., 1 1 1 1 1 1 1 1 Z.Z.Z.Z.Z.Z.+., 1 , , , , , , 1 , , , , , , , , , , 0 k.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.0.> > , : : : : > : : : , : 4.Z.Z.Z.Z.Z.Z.Z.4.: - - : & - : : & - & : - - & 0.Z.Z.Z.Z.Z.Z.Z.Z.E & & & & & q v v v v v v v v v v v v v - # & % % % % % % % % % & % % % # & & # # # # # # # # # # @ # @ - @ @ @ O O @ - + + @ @ + + + + @ + @ @ # @ ; < r B Q >.9.j.x.N.C.Z.Z.N.x.j.9.>.Q B e < = + @ + O + O + O + O + O O O O O O O + O O O O O O . . o . . o . . . . O . . O X + $ = 7 s C U .>.2.7.9.7.2.>.{ Y M r 5 * $ O . ", -"2 2 2 2 2 2 2 2 2 2 2 2 7 2 2 1 2 2 1 Z.Z.Z.Z.Z.Z.p.p.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.B.e 1 1 1 1 1 , 1 , 1 Z.Z.Z.Z.Z.Z.+.1 , 1 1 , 1 , , , , , , , , , > , , , , w 6.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.B.> - : : , : , : > : : : 7 B.Z.Z.Z.Z.Z.Z.Z.B.7 : : - : : & & : : : & & : & p.Z.Z.Z.Z.Z.Z.Z.Z.D - & & & * i v v v v v v v v v v v v z # & % % % & % % % % % % # # % % # # # # # # # # # # # # # # # @ + @ - O + - @ @ - + + # - + - o + @ @ @ $ - ; ; t B R ;.9.h.x.N.C.Z.C.N.x.j.7.:.Y M e < * # # + + + O X + O + O O + O + O O O O O O O o O O . . . . . o . . . . o . o X X X $ % = 7 f C K ! .;.:.;.{ ! K C s 7 ; % + O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 Z.Z.Z.Z.Z.Z.p.p.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.B.V 1 1 1 1 1 , 1 1 1 1 Z.Z.Z.Z.Z.Z.+., 1 , , , , , 1 , , , , , > , , , > , > , , 0 F F F F F F W 5.Z.Z.Z.Z.Z.Z.Z.I : > > : > > : > > : > | Z.Z.Z.Z.Z.Z.Z.Z.Z.} : : = : : - - : : & : : & : u.Z.Z.Z.Z.Z.Z.Z.Z.V & & & & # a v v v v v v v v v v v v z - # & # & # - # # # & # % % % % # % # # % % # # # # # # # # # # @ # # @ @ @ @ @ @ @ @ @ + @ @ + @ @ @ + @ * & < 9 M U -.2.w.l.m.M.N.N.x.l.g.2...K M w : = $ + + + + + O O + O O + O X O O X X X O O O O X O o o o o o . o . . . . . o o . O + $ * 3 7 r b S K T R K K A b r 7 * ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Z.Z.Z.Z.Z.Z.p.p.Z.Z.Z.Z.Z.Z.Z.Z.B.6.n 1 1 1 1 1 1 1 1 1 , 1 Z.Z.Z.Z.Z.Z.+.1 , , 1 1 , , , , , , , , , , , , , , , ; , , , > > > > > > , I Z.Z.Z.Z.Z.Z.+.> : > : > : > : : : : v.Z.Z.Z.Z.Z.Z.Z.Z.Z.v.: : : : & - - : & : & : - & u.Z.Z.Z.Z.Z.Z.Z.Z.V & - & - & p v v v v v v v v v v v v z # # # & # & # # & # & # % % % % # % % % # # # # # @ # # @ % # # # @ @ @ @ @ @ @ + @ @ @ @ @ @ @ + + @ @ @ # # > 2 b H ^ 1.9.j.l.x.x.x.l.h.9.,.^ S f 7 ; = + + + O O O + + X + X + O + O O + o + O O O O X O X X o o X o . . . o o o . . . X O + + $ % = 5 w r b m M m f r e 6 ; * ", -"2 2 2 2 r 2 2 2 2 2 2 2 2 2 2 2 2 1 1 Z.Z.Z.Z.Z.Z.p.2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , Z.Z.Z.Z.Z.Z.+., 1 , 1 1 , , , , , , , , , , > , , > > ; , , , , > > , > > > > b.Z.Z.Z.Z.Z.0.> : > > : > : : > > I Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.I : : : & : - & : : & & = : u.Z.Z.Z.Z.Z.Z.Z.Z.V & & & & & g v v v v v v v v v v v v g # - # & & # - - # # # & % % % % % % % # % # % # # % # # # % @ # @ @ @ @ # @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ # * ; 1 r B T ..1.9.q.h.j.j.q.9.1. .Y M r < = $ + + + O + + O O + O + O + O O O O X o O O O O O O O O O . o o . . . X . X . O O O X $ % * ; 7 7 7 9 9 8 5 ; * + + ", -"2 2 r 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 Z.Z.Z.Z.Z.Z.p.1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 Z.Z.Z.Z.Z.Z.+., , , , , , , 1 , , , 1 , , , , , > , , , > , > > , > , > > , > 5.Z.Z.Z.Z.Z.p.> > > : > : > > : : p.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.u.- - : : = : : : & : - - & p.Z.Z.Z.Z.Z.Z.Z.Z.V & - & & - p v v v v v v v v v v v v p - # - # # & # # & & # # % % % % % # # % % % # # # # # $ # @ @ $ @ # # @ @ # @ @ @ @ @ + @ @ @ @ # + @ + @ % # = , w f A Q ..1.2.7.9.9.2.<. .Q A b 7 ; = # + + + + O + + + O + O O O O + + O O O O X O O X O O X X O . O . . . o . . . . . O O X $ + % % % = ; ; * * * $ % ", -"2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 Z.Z.Z.Z.Z.Z.p.2 1 2 1 1 2 2 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 , Z.Z.Z.Z.Z.Z.+.1 , , , , 1 1 , 1 , , , , , , , , > , > , , > , > , , > , : > > +.Z.Z.Z.Z.Z.u.: > > > > : > : : d Z.Z.Z.Z.Z.Z.u.Z.Z.Z.Z.Z.Z.t - : : & : : & : & & - & u.Z.Z.Z.Z.Z.Z.Z.Z.V & & & & & p v v v v v v v v v v v v p - # - - & # - # # & & # & % % % % % % # # # # % % @ # @ % @ % @ # @ @ # @ # @ @ @ @ @ @ @ @ @ + + + @ + + # % # - < w n A R ^ ..>.>.>...^ Y A f 9 < = # % + + + O + O + O + + O + + O O O + X o X O O O O O O X . . o o . . . . O . . . + + $ $ $ $ $ $ $ $ $ + . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 Z.Z.Z.Z.Z.Z.p.2 7 1 1 1 2 2 1 1 2 1 1 1 1 1 1 1 1 , 1 , 1 1 Z.Z.Z.Z.Z.Z.+., 1 1 , , , , , , , , , , , , , , , , , , > , > > > > > > , > > +.Z.Z.Z.Z.Z.p.> > : : > > : > , %.Z.Z.Z.Z.Z.Z.j v.Z.Z.Z.Z.Z.4.- : & : : - - : - - - - u.Z.Z.Z.Z.Z.Z.Z.Z.Z & & - & & p v v v v v v v v v v v v p # # # # # & # % & # # # % % % % # # # % # % # % # # # % @ # @ # @ # # @ # @ @ @ @ @ @ @ @ + @ + @ @ + # @ # # % = - 1 e f B H Y Y Q Y Y S M y e 5 ; # % + + + O O + + O O X O O O O O + O O o + X X O O O O O X O O o . . o . o . o o X o X . . . O X X O + + + + O X X . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 Z.Z.Z.Z.Z.Z.p.1 1 2 1 2 1 1 1 1 1 2 1 1 1 1 1 1 , , 1 1 1 , Z.Z.Z.Z.Z.Z.+.1 , , , , , 1 , , , , , , , , , , , , , , > , > , , > > > , : , +.Z.Z.Z.Z.Z.u.: > > : > > > : 1 B.Z.Z.Z.Z.Z.b.: %.Z.Z.Z.Z.Z.B.7 : : : & - - - - : & : p.Z.Z.Z.Z.Z.Z.Z.Z.V & & & & & p v v v v v v v v v v v v p # - & % - # % % # # & & % % % % % % % # # # # # # # @ % % @ @ $ @ @ @ @ @ @ @ @ @ # @ @ @ @ + @ # + # + @ + @ % # = ; < 0 t f m B B B m f r w < = % % % + + + + + O + + + + O X O O + O + O o o O + O O O O O O X o o . . o . . . o X X . . X X . . X . O . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 Z.Z.Z.Z.Z.Z.p.2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Z.Z.Z.Z.Z.Z.&., 1 , 1 1 , , , , 1 , , , , , , , , > , , , > , > > , , > > , , u.Z.Z.Z.Z.Z.%.> : > > : : : : ` Z.Z.Z.Z.Z.Z.| : d Z.Z.Z.Z.Z.Z.} : & & : - - : & - - & u.Z.Z.Z.Z.Z.Z.Z.Z.F & & & & & p v v v v v v v v v v v v p # - # # - # & % # & # # % % % % % # # # % # % # $ # % @ @ % @ % @ @ + - @ @ @ @ @ @ @ + @ @ @ # + # + @ + @ + + # % & ; > 7 0 w e r e e 1 < - ; * % + + + + O + + + O + + O + + O + O O O O O O O O O O O X X O X o . . o . X O . . . O O . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 Z.Z.Z.Z.Z.Z.p.2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 b.Z.Z.Z.Z.Z.k., 1 1 , , , , , , , , , , , > , , , , , : , , : , > , > > > > 0 Z.Z.Z.Z.Z.Z.| , > : : > : > : v.Z.Z.Z.Z.Z.Z.t : : k.Z.Z.Z.Z.Z.v.: : & : : & : : - : & p.Z.Z.Z.Z.Z.Z.Z.Z.V & & & & & p v v v v v v v v v v v v i = % % & # % & # - - @ - + - + - % % % % # % # # % # # # # # # % @ @ # @ # @ @ @ @ @ @ + @ @ @ + # + @ @ + + @ @ @ # # # - - ; > , > < > - ; % # # @ + + + + + + + + + + $ + + X + O + O O X O O X O O O O O O O . X O O X X X X X O + + X X X X X . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 Z.Z.Z.Z.Z.Z.f.1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.Z.Z.Z.Z.Z.Z.J , , , , 1 , , 1 , , , , , , , , , , , , , , , > , > , > > , X.Z.Z.Z.Z.Z.Z.h > > > > > > , D Z.Z.Z.Z.Z.Z.k.: : : } Z.Z.Z.Z.Z.Z.I : : & & : & & - & - u.Z.Z.Z.Z.Z.Z.Z.Z.V & & & & & p v v v v v v v v v v v v p % # & # # & # & + + - + - + - + % # % # # % # # # # # # # @ + # - # @ @ @ @ @ @ @ @ @ @ @ @ + @ + @ + # @ + + @ @ @ # # # # # - ; & ; % * # $ @ $ + + $ + + + $ + $ % $ + @ $ + @ + + O X + O + X + O O O X X . O O O X X O X O + + + $ + + + O O O . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 Z.Z.Z.Z.Z.Z.p.1 2 1 2 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 , 1 [ Z.Z.Z.Z.Z.Z.k.e , 1 1 , , , , , , , , , , , , , , , , , , , , > , > > > m B.Z.Z.Z.Z.Z.v.> > > > > : : > r.Z.Z.Z.Z.Z.Z.X.: : : d Z.Z.Z.Z.Z.Z.u.& : : : : & : & - & p.Z.Z.Z.Z.Z.Z.Z.Z.k.u.u.u.u.u.s.d.d.d.d.d.d.d.d.d.d.d.d.s.u.$.% & & # & # - + + - + - + - % # # # % % # # # # # # # # % # + @ @ @ @ @ @ @ # @ @ @ + # + # # + @ + @ @ @ + + + + # # @ @ # # # @ $ # $ @ @ + + + + + # @ $ * # * = & * * @ @ + + + + O O O O O O O O O O O . . O O O O + + $ $ $ * $ * $ $ $ + + . X . X ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 Z.Z.Z.Z.Z.Z.p.2 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 , 1 1 1 1 , 1 e B.Z.Z.Z.Z.Z.Z.B.p.p.p.p.p.p.i.i.i.i., , , , , : N i.i.i.i.i.u.p.u.p.p.p.Z.Z.Z.Z.Z.Z.Z.O.: > > : : > > t Z.Z.Z.Z.Z.Z.Z.7 : : : - k.Z.Z.Z.Z.Z.Z.e : & : & : : - : & u.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.u.& % # & # & + - - + - @ - + % % # % # # % # % # # # # @ @ @ @ @ @ @ # @ # @ @ @ + @ # + # + + # + @ + + + @ @ @ + @ @ @ @ @ @ @ @ + @ + + + + + + @ @ @ * = ; > : 5 : ; = & # # % + + + O O O O O O X O O o . O O O + + $ % * * * ; = = = * * $ $ + O X . ", -"2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 1 Z.Z.Z.Z.Z.Z.p.1 2 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 , 2 1 1 +.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z., , , , , , F Z.C.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.M.1 : > > > > : > %.Z.Z.Z.Z.Z.Z.r.: : : : : ` Z.Z.Z.Z.Z.Z.4.- - : : & & - : & p.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.u.% % - - - - - @ - + O $ - - % % # # & % # # # # # # @ # @ # @ @ - # @ @ @ @ @ @ @ @ @ @ + @ + @ + + @ + @ + + + @ + + @ @ + $ + + $ + + + + + + + # * ; > 5 7 e w e e 9 7 5 : * * + + + + X O O O O O O O O O O + + $ $ % = : 5 9 9 e 9 9 5 ; * * @ X X X ", -"2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 1 2 Z.Z.Z.Z.Z.Z.p.1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , , 1 e k.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z., , , , > , F Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.W : : > > : > > 7 B.Z.Z.Z.Z.Z.Z.` : : : : : 7 Z.Z.Z.Z.Z.Z.B.7 - & : & : - & & u.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.t.% % + $ + O @ - + - - + - + # # # # # # # # # # # % # # # @ @ @ + @ @ @ @ @ @ + @ @ + @ @ @ @ @ @ @ + @ + @ @ + + + + + + + + + + + + + + + @ # $ % = > 0 e f m M M C b f e 9 : & $ $ + + X O O O O O X X O O O + + $ = = 6 e r b b C b b f e 6 ; & $ $ X ", -"2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 Z.Z.Z.Z.Z.Z.p.1 2 1 1 1 1 1 1 2 1 1 1 , 1 , 2 1 1 1 , 1 1 1 , , C k.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z., , > , , , F Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.W : , : , : > : > ` Z.Z.Z.Z.Z.Z.B.7 : : : : : : r.Z.Z.Z.Z.Z.Z.} - & : : & - & - p.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.t.- ; - - ; - - - - @ ; - - $ % # # # # # # # % % # # @ # # # - + @ @ # # @ @ @ @ @ + @ @ @ @ @ @ @ + + @ @ @ + @ + + @ + @ + + + + + + + + + @ $ * = < e s B G U R R T K G M s 9 5 = $ $ + O X X O X O O O X O + + $ * > 9 s m S K T T T K G m r 7 ; * $ X X . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 p.p.p.p.p.p.3.1 2 2 1 2 1 1 1 1 1 1 1 2 2 1 , 1 1 1 1 1 1 1 , 1 1 , [ 0.p.p.p.p.p.p.p.p.p.p.p.p.p., , , , , > N p.p.p.u.u.u.p.u.p.u.p.p.p.p.&.d , , : , : > > > : %.u.p.u.p.u.p.+.: : : : : : - I u.u.u.p.u.u.4.- : : & : - - & I B.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.t.; 4 3 ; 3 3 ; 4 8 ; 4 4 ; 4 , > 4 4 4 4 4 < 3 3 3 3 3 3 3 3 - + @ @ @ @ @ @ @ @ @ @ @ @ @ + + @ @ + @ @ + + + # + # + + + + $ + + + + + + + @ # ; > 0 f A K ! { ;.>.:...! Y A f w : * $ + + + O O O O O O O O + $ * : 7 s M Y ! .;.:.-.{ R Y C s 7 = % $ X . ", -"2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 1 1 1 1 2 1 2 1 1 2 2 1 1 1 1 1 1 1 2 1 , 2 , 1 1 1 , 1 1 1 , 1 , 1 , 1 , , , 1 , , > , , , , , , , , , , , , > , > , > > > > > , > : , , : , > , : : > > : : : , : : : > : : : : : : : : : : : - : : - : : & : & : - - - - - & V D V V V V V V V N V V E ] ] ] ] ] ] ] ] ] ] ] ] ] ] ' v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v ; O - o O - O O + $ O + - + - O @ @ + @ + @ + @ + + + @ + + @ + + @ + + + + + % + = : 7 f S T ..<.2.8.9.7.2.<.{ R B y 7 : * + + O O O O O X O + + + # : 7 s A Y { >.2.8.8.8.2.>.{ T A s 5 = $ + + . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 2 1 2 2 2 2 1 2 1 1 2 1 1 1 1 1 2 1 1 , 1 2 , , 1 1 , 2 , 1 , 1 , , , , 1 , 1 , , 1 , , , , , , , , , > , , > , , , > > , > , > > > > , : : > , : : , : > > : : > : : > : : : > : : : : : : : - - - : : & & : & : : & - - & - & - & - - & & - & - - & & & i v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v ; - o - - + + - O - - $ O + - + + @ @ + @ + + @ @ + @ + + + + + + + + + + + + + * = 5 e M K .1.9.g.h.h.j.q.9.1.{ Y M e > & @ + + O O O O O O O + @ * : e b U { <.7.f.h.h.h.f.8.1.{ K b e ; % X X . . ", -"r 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2 2 2 1 1 2 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 , 1 , 1 , 1 1 1 1 1 , , , , , , , , , , , , , , , , , , > , > > , > , > , > > > > > , , , : : > > : > : > : > : : , : > : : : : : : > : : : : - : - : : : : : & : : - - - - - - - & - & & - - & & & & & i v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v 3 $ - o - O O - + + - + + @ O + + @ + @ @ + @ + + @ + + @ + + + + + + + + + + % # : 7 b S ! <.9.h.l.x.m.x.l.g.9.>.~ A b 7 = % + + X O O O O O O + % = 5 s S ! >.8.h.l.z.m.z.l.h.8.>.R S s 5 * $ + . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 1 2 1 1 1 1 1 1 2 2 1 1 1 , 1 1 1 1 1 1 1 1 , 1 1 , , 1 , 1 , 1 1 1 , , , 1 , , , , , , > , , , , , , , > > , : , > , > > : , : : , : : , > > > : : > : : : : > : : : > : : : : : : : - : : & : & : & : & & - & - - & & & & & & - & & & & & ; i v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v 3 O o - O - + O - o o + @ @ @ + @ @ + + + @ + @ + + @ + + + # + + + + + + + + # * > e m Y ..2.g.l.m.M.V.M.m.l.w.2.-.U b 7 ; % $ + O O O O O O + $ $ : 7 b U { 2.f.l.m.M.N.M.m.l.f.2.{ K b 7 * $ + . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 1 2 1 2 1 2 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 , , 1 , 1 1 , 1 1 1 , 1 , , 1 , , , , , , , , , , , , , > , > , , > , , > > > > > , > , > , > : , , : > : > > > : > > : > : : : > > : : : : - : : : : & : : & : : & : : : - - - & - & - - : & & & - & & & & & p v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v 3 $ O - o - O - @ @ @ @ @ - O + + @ @ @ @ + @ + # + + @ + + + + + @ + + + + # $ & 5 e M T :.8.h.x.M.C.C.C.N.x.h.8.:.T m w : * $ + + O O O O X + + $ : w b R -.8.h.z.N.C.Z.C.M.z.h.7...T b e ; * + . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , , , 1 1 , , 1 , 1 1 , 1 , , , , , , , , , , , , > , > , , , , , , > > > > : , , > : , : , > > : > : : > : > : : : : : : : : : : : : - : : : : : & - : & & - - - - & - - & & - & - & & & & & & i v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v ; - - O + o O - @ @ @ @ @ + @ @ @ + + @ + @ @ + @ + + # + + @ + + + + + + + @ % & > r M R >.9.h.x.V.C.Z.C.N.m.h.9.:.R M e > $ + + O O O O X O + + * 3 w M R ;.9.h.m.B.C.Z.C.N.z.j.8.:.R b e ; % + . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 2 1 1 1 1 2 1 1 2 , 1 1 1 , 1 1 , 1 1 1 1 1 1 , 1 , 1 , 1 , , , , 1 , , , , , , , , , > > , , , , > > , > > , > > > , : : , : , : : : > : > > : : : : : : : : : : : : : - : : : : - : & : : : : : & & - - - - & & - & & & - & & & & - & u v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v 3 o - - - - O O + - @ @ O - + @ @ @ @ + + @ + @ + + + + + + + + + @ + + + $ + @ = 5 e M R :.8.h.x.N.C.Z.C.M.x.j.7.;.T C e > * + + O O O O O O + + % ; w b R -.8.h.z.M.C.C.C.M.x.h.7.-.T b e = $ + . . ", -"2 2 r 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 1 2 1 1 2 2 1 2 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 , , 1 , 1 , 1 , 1 , , 1 , , , , , , , , , , , , , , , , > > , , > > , > > > , : , , : , : , : > : : , : : : , > > : > : : : : : : : : : - : - : & : & : & : & - - - & - - & & - - - & - & - & % - ; v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v 3 - o O O + + - + O @ @ + + @ @ + + @ @ @ + @ + + @ @ + @ + @ + + + + + + + + @ * : e b K ..2.w.l.m.M.V.N.m.l.q.2. .K m 9 : # $ O O O X O O X O $ $ ; 7 b Y { 2.f.l.m.M.B.M.m.l.f.2.{ K f 9 * $ + . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 1 2 2 1 1 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 , , 1 , 1 1 , , 1 , , , , , , , 1 , > , , , , > , , , , > , > > , > > > > : , , > : > > : > > > : > > > : : > > : : : : : : : : : - : : & : : - : - : : & : - & : & : - & : & - & & & & - & & & & - u p g z l l l l l l l l g l l k g l k k k k k k k k k k l l k l k k k k k k k k k k k k ; @ # @ # @ @ @ - + + - O O + @ @ @ + + @ + + @ @ + + + + + + + + + + + + + + % % : 7 f S ~ <.9.h.l.z.m.z.l.g.8.>.! G f 7 = $ + O O O O X O X + + $ * 7 s S ! >.8.h.l.z.z.z.l.h.8.>.! A s 5 % $ ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 , 1 1 1 1 , 1 , 1 , 1 , 1 1 , 1 , , , , , , , , , , , , > , > > > , > > > , > > , > : : , , : > > : > > : : : > : : : > : : > : : : : : : : : : : & - : : & : : & - - & : & & : & - & & - & - & & & & & & & & & & & - & & & % % & - # - - - - @ - - @ - @ - @ - # @ - + - # - @ + + - + - # + # @ @ # @ @ @ @ @ @ + + + O + - - + @ + @ @ + @ + @ + @ + @ @ @ + + + + + + + + + @ $ = 5 r M T ..1.9.q.h.h.h.f.9.1. .T m e 5 * @ + + O O O O X + O + $ & : e M Y { 1.8.f.h.h.h.f.8.1.{ U b 9 5 * $ ", -"r 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 2 1 1 1 1 2 2 1 1 2 2 1 1 1 1 1 , 1 1 1 1 , , 1 1 1 , 1 , , 1 , , 1 , , , , , , , , , , , , , , , > , > > , , , > , , > > > > > , > , : : , , : > : > > > > > > : : : : : : : : : : : : & : : : : : & : : & : : : & : - : & & & - & & & & - & & & - & & & & - # % & % % & & & # - @ - @ + + - @ @ - + - + - - @ - + - # + - - + - + + + - - + + - O @ # # @ @ @ - - o - @ @ O + @ @ + @ @ @ + + + @ + + + + + @ + + + @ + + + # $ * : 9 f A T ..<.2.8.8.8.2.>.{ T A s 7 = * $ + O O O O O O O O + $ $ = 7 r A Y { >.2.8.8.7.2.>.{ T C s 5 = $ + ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 1 1 1 2 1 1 1 1 1 , 1 1 1 1 1 1 1 1 , , 1 1 , 1 1 , 1 1 , , 1 1 1 , , 1 , , , , , , , , , , , , , > > , > > , , > > , : , : , > > : > > > > : : : : : > > : : : : : > : : : - : : : : & : : & : - & & & : & & & & : & & - - & & & & & - # & - # & - # & & & & & # & & # - @ - - - + - - + - @ - + # + + - + # - @ + - @ + - - + + + - $ @ @ # @ @ @ @ + + + @ @ + @ @ + @ @ + @ + + @ + + @ + + @ + + @ + + + + + + + $ % = 5 e f A K ! ..;.>.;.{ { Y A f 9 5 = # + O O O O X O O X O O X $ & ; 7 s C U ! { ;.:.;. .! U C s 7 ; % $ X ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 , , 1 , , , 1 , 1 , , , , , , , , , , , , , > > , > , , > > > > > , : : , : , > > > : > > : : : : : : : : : > : : : : : : : & : : : : : & : & & : - - - : - & & - - & & - - & & & & - - & & & & - & # % & # & # & - @ - @ - @ - # @ - + - @ # # - # - + - + @ + - - + + @ - + + + @ # @ # @ @ @ @ @ @ @ + + @ @ @ @ + @ @ + @ + @ + @ + + @ + + + + + + + + + + + @ $ # = 5 9 s M S K T R T U S M f w 5 * @ + + + O O O X O O o O O + + % * : 7 s m A K T T T K A m s 7 ; $ ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 1 2 1 2 2 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 , 1 1 1 , 1 , , 1 , 1 1 , 1 , 1 , 1 , , , , , , , , , , > > , , , > , , > > > > , > > : , , : > : : , > > : > > > > : : : : : : : : : - : : : : : : & : & : : : : : : - & - & & : - & & - & & & & & & - # - # # & & # & & & & & & & # @ - @ - @ - @ @ - + @ @ - # - + # # # # @ - # + @ + - + + + - - @ $ - @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ + @ + @ + @ + + @ + + + @ + @ + + + + + + + $ % % = 5 9 e b m M C C b f e 7 : = $ @ + O O O O O + O X O X X + + $ = ; 7 e s b b m m b r e 6 = * $ ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 1 1 2 2 1 2 1 1 1 1 2 1 1 1 1 1 1 1 , 1 1 , 1 1 1 1 1 1 1 , 1 , , , , , 1 , , , , , , , , , , , > , , , , > > > > , , > > > , , , : > , , : : > > : > : : > > > : > > : > : : : : : : : : & : : & : - : & : & - & & - - & & - & - & - - & & & & & - & & & & & & & # & & # & % - @ - @ - + @ - # @ - @ - @ - # # # + # - # - + + - - @ - + + + - @ + + @ @ @ @ @ - @ @ + O @ + @ + @ + @ + + @ @ + @ + + @ + + + @ + + + + + + + + @ $ % = : 5 7 e e e e w 7 5 ; * # % + + + O O O O O O O O X X O O + $ $ * = 5 6 9 e w w 9 6 3 * * $ . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 1 1 2 2 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 , , 1 1 , , , 1 , , 1 , , , , 1 , , , , , , , , , > , > , , > > , > > , > > > , : : , : : , : : > : > > : : > : > : : : : : : : : : : : : : : : : : & & : & : & : - - & - - & - & & & & & & - & & - # & & & & # & & & & & % & @ - @ - # - - @ - - + - # # @ @ - # - # + # # # - + + + - + - + + # @ # # @ @ @ + O @ @ @ - + @ @ + @ @ + @ + @ + @ + + + + @ + + + + + + + + + + + + @ @ % * & : 3 : > : : * = & $ $ + + O + O O O X O O O O O . X O O X + + % & * = = = ; = = * $ . $ . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 , 1 1 1 , , 1 1 , 1 , , , 1 , , , , , , , , , , , , , , , , , , > , : > > > > , , : : , : , : > > , : : > : > : : : : : : : : : : : : : : : : - : : - & : - : : & : & & : & & & : & - & & & - & - & & & & & & & & & & # & & & & # & # & # & & & # & # # & & @ # & @ # @ & @ @ & @ & @ @ @ @ @ @ @ & @ @ @ @ @ # @ @ @ @ @ @ @ X @ @ + @ @ @ + @ + + @ + @ + + + + @ + + + + + + + + + + @ + @ @ # % % & % & & # @ @ @ + + + X X + O O O O X O O O O O O O O + + $ $ $ * $ * $ + $ + O O O . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 1 1 2 2 2 1 1 2 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 , 1 , 1 , , , , , , , , , , , , , : , , , : , , : > > , : , > : , > , , : : : : : > > > > > > : > > : : > : : > : - : : - - : - & : : & & - - : & : : & & : & & - & & & & & & & & & & & & & & # & & & & # & & & & # # & # # # & # & # # # # & @ & # % # # % & @ # # @ & # @ # # @ @ @ @ @ # @ @ @ @ # X @ @ @ @ @ + @ + @ + + @ @ + + + @ + + + + + + + + + + + + + + + o @ @ @ @ # # # @ @ + @ + + + X o o o o O O O O O O X X O O X X O O + + + + + + + + + + O O . . ", -"2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 , 1 1 , , 1 1 , , 1 , , , , 1 , , , , , , , , , , , , , : , > , , , > > , : : , : , , : , : , , > > : : > : > : : : : : : : : : : : : : : : - : : : - : : & - & : & : : & : : & - & - & & & & & & & & & & & & # & & & & & & # & # & & & & & # # # & & # @ & @ & @ @ # @ % # @ @ @ @ # # # @ @ @ & # @ # @ @ @ # @ @ @ @ @ @ @ @ @ @ + + + @ + + + @ @ + @ + @ + + + + + + + + + o + + X + + + @ + + + @ + + + + + + X o O O o X X O O O O O O O O O O . X O O . O O + + . O + . O o . ", -"2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 1 2 2 1 1 2 1 2 1 2 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 , 1 , 1 1 , 1 , , 1 1 , 1 , , 1 , , , , , , , , , , , , : , , , > , , , > , , , , : , : : : , , : : > : > > : > : > : > : > : : : : : : : : : - : - - : : - : : : : & : & & : & : & & & - & & - & - & & & & & & & & # & # & # & # & & & # # & # & # & # & # & @ & # # & # & # # # # & # # @ & @ @ # @ @ @ @ @ @ @ @ @ @ @ @ @ @ X @ + @ @ @ @ @ + @ + + @ + + + + + + @ + + + + + + + @ o @ + + X o o + + o + + X + X X + o + O + X X + X O O O O X O O X X O . o O O . . . . o o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 1 2 2 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 , , 1 , , , 1 , , , , , , , , , , , , , , , , , , > , > , : : , , , : , , , : : , , : : > > : : > > > : > > : : : : : : : : : : : : : - : : - - - - & : & & & : & & & & : & & - & & & & & & & & & & & & & & & & & & & & # # # & & & # & # # # & # # & & @ & # # # % # # % @ # # # # @ @ & @ @ @ @ @ @ @ @ @ @ X @ @ # @ @ @ @ + @ @ + @ + @ + + @ + + + + + + + + + + + + + + + o + o + o + + o + X + + o O O O O O o o o O O O O O O O o o O O X O X o . . . . . . O . ", -"2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 1 2 1 2 1 2 2 1 1 1 2 2 2 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 , 1 , , 1 1 , 1 , 1 , , 1 1 , 1 , , , , , , , : , , : , , > , , > , , , : , , , : : , , : , : , , : , , : : : > : : > > : : : : : - : - : : : - - - : - : : : : & : : & : : & : & : & - & & - & & & & & & & & & & & & # & & # & & & & & # # & # & # & # & & @ # @ @ @ & % # % # # & # # # # @ @ # @ @ @ @ @ @ @ @ @ # # @ @ X # X @ + @ + + @ + @ @ + @ + + + @ + + @ + + + + o + X @ + + + + + + + o + + + o o X + + O + o + O X O X O O O O O X o o X O O O . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 1 2 2 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 , 1 1 , , 1 , 1 1 , , 1 , , , , , , , , , , , , , , > , : , , : , : , : : > , : : , : : : , : : > : > : : > : : > : : : : : : : : - : : - - - - : & : & : & : & : & & & - & & : & - & & & & & & & & & & & # & # # & # & & # & # & # & # & # % # @ # # & % # % @ # % # # # # # # @ # # @ @ & @ @ @ # @ @ @ @ # @ # X @ @ + @ + @ @ + @ + + @ + + @ @ + + + + + + + + + + + o o @ + + + X + + o o X o + + O O O O o + + o O O O O O O O X O O O O o X o . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 1 2 2 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 1 1 1 , 1 , 1 , 1 1 , , , 1 , , , , , , , , , , , , , , : , > , , > , , , , : > , > , , , : , : , , : : > > : > : > : : : > : : : : : : : - - : - - : - : - & : & : & : & : & & : & & - & & & & - & & & & & & & & # & & & & & & & # & # & & # & # # # & & # & @ & # % % % % # # # % @ # # # # # @ # @ @ @ @ @ @ @ @ @ @ # X # & X @ @ @ @ + @ @ + @ @ + @ + + + + + + @ + + + + + + + X @ o + X + X + o + + + X o + O + + O O X o o O O O O X O X o o O X . . . . . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 1 2 2 1 2 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 1 , 1 1 , 1 , , 1 , , , , 1 , , , , , , , , , , , , , , , : , : , > > > > > > > > > , : , : : > : : > : > : : : > : : : : : : : - : - : : : : & : & : & : & : & - - & - & - & - - & & & & & & & & & & & & & # & & & # & & # & & # # # & # & @ & # # @ & # # % # @ # # # # # @ # # # @ @ # # # @ # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ + @ @ @ + + + + + + + + + + + X + + + + + X + + X + + + + + X + O O O O O + + X X O O O O O O X O . o . . X O O O O . . o . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2 2 1 1 2 1 2 2 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 , 1 , 1 , 1 , 1 1 , 1 , , , 1 , , 1 1 , , , , , , , , , , , , : , , : , , , , , , , , , : > > > > : > : , : > > > > > > : : > : : : : : : : : : : : - : - & - - : & : : & & : : & & & - & - & & & & & & & & & & & # & & # & # & & & # & & & # # & & & & # & # & @ & & # # % % & # & # # % @ % # # @ @ # @ @ @ @ @ @ @ @ @ @ @ @ # X # # X + @ + + + @ + @ + + + + + @ + @ + + + + + + + + + + + + + + X + + X o O O + X o + O O O O O + o O O O O O O X X . o o . o . o . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 1 1 2 1 2 1 2 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 , 1 , , , , 1 , , , , , , , , , , , > , , , , , > > : > > : , > > > > : , : : > > : : > : : : : : : > : : : : : : : - - : - : : : : & : : & : & : & : & : & : & & - & & & & & & & & & & & & & % & & & & & # & # & & # # # # & # # # & @ & & @ & # @ # # # % % @ & & X @ @ @ @ @ @ @ # @ # @ @ @ @ @ X @ @ @ @ + @ @ @ @ @ + + + @ + @ @ + + + @ + + + + + + + o + X + X + o + o X + + + O + o O O + + o + o O O O X + X O O o O O o o . . . O O . . o o O . o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2 2 2 2 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 , 1 1 , , 1 , 1 , 1 , 1 , 1 , , , , , 1 , , 1 , , , , , , : , , , : , : , , : , > , > , > > > > : : , : > : > > > : > > > : : : : : : : : - : : : : - : & : : : : & : & : & : & & : & & : - & & - & - & & & & & & & & & & & # & # & # & & & # & & & & # # & & @ & @ @ & # @ & # # % @ @ @ @ @ & & @ @ @ # # @ # @ @ @ @ @ @ @ @ X @ @ @ @ @ + + @ + + @ @ + + @ + + + @ + + + + + + + + + + + + + + + + + + o + o + + + O + O O X O X O O O X O X X O O . O . o o . . . O . . o o ", -"2 2 y 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 2 1 2 2 1 1 2 2 1 1 1 2 1 1 2 1 1 1 1 1 1 , 1 1 1 , 1 1 1 1 1 1 1 , 1 , , 1 , , , 1 , 1 , , , , , , , , , , , , , : , > , > > , : , , > > > > > > > > > > : : > > > : : > : : : : : : : : : : : - : : - : & : & - - : & & : : & : & & & & & & & : & & & & & & & & & & & & & & # & & & # & & # & & # & & # # & # & @ # # # # # # # # # # @ & & @ @ @ @ & @ @ @ # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + @ + + + + @ + + @ + + + + + + + + + + + + + + o + + o + + o O O + O X O O O O + O O O O O O O O O O O O O X X . . O o . o . o . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 1 1 2 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 , 1 , 1 , 1 , , 1 , , , , , , , , , , , , , > > , , > , > , > , , , : , : > > > > : > > : > > > : : : : > : : > : > : : : : : : : : - - : : & : : - - - - : & & : & : : & : & & & & & & - & & & & & & # & & & & & & # # & # & & # # & # # & # & # @ & & @ @ & & # & # % # @ @ @ @ @ @ @ @ # @ # # @ @ @ @ X @ @ @ @ @ @ @ + @ + @ @ + @ @ + @ @ + + + + + + + @ + + + + + + + + + + + + + O + + O + O + X + + O O o O O + O O O O O O O O O O O O O X o O o . . o ", -"2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 1 1 2 1 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 1 , 1 1 1 , 1 , 1 , , 1 , 1 , , , , , , , , , : , , , , , , > , > , > : , : , > > > > > > > > > > > > > : > > : > : : > : : : : : : : - : - : - - : - - - - & - & : & & & : & & & : & - & - & & & & & & & & & # # & # & & # & & # & # & & # & # # & # & # @ & # # # # # @ # % # @ @ @ @ & @ & @ @ @ # @ @ @ @ @ # @ @ @ @ @ X @ @ + @ + @ + @ + @ + + + @ + + + @ + + + + + + + + + o + + o + o + + O + O + O + O O O + O O O O O O O O O O O X o O O . O . X O o o o o . ", -"2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 1 2 2 1 2 2 1 2 1 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 , 1 1 , 1 , , , , , , , , , , , , , , , > , , > , , > , > , > , , , : > > > > > > > > : : : > > : > : : : > : : : : : : : : : - : - : : - - : - - : - : & : & : & & : & & & & & & & & & & & & & & & & & & & & & & & # & # & & # & # & # # & # & # @ # & @ & @ # # # # & @ & @ @ @ @ @ # @ # @ # @ @ @ @ @ @ # X @ @ @ @ @ + @ + @ + @ + + + @ + @ + + + + + + + + + + + + + + X + + + O O + O + O + O O + O + O + O O O O O X O X O O O . . O o O o . . . . . ", -"2 2 2 2 2 2 2 2 y 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 , 2 1 1 , , 1 , 1 , 1 1 , 1 1 , 1 , , , , , , , , , , , , , , : , , : , , : , , : , , , > , > > > : , : > > > : > : > : : > : : : > : : : : : > : : : : : - - - : : - - : - - - & : & & & : : - & - - & - & & & & & & & & & # & & & & # & # & # & & # & # & # & # # & # & # & & & # # & # # # # # # # # # # @ # # @ @ @ @ @ # @ @ @ @ X @ @ @ @ @ @ @ @ X @ X @ + @ + @ + + @ + + + @ + + + + + + O + + + + + + + + X O + O O O + O + O O o X O O O O O O O o o o X X o O X . O O O O O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 1 2 2 2 1 1 1 1 2 1 2 1 1 1 1 1 1 1 2 , 1 , 2 1 1 1 , 1 , 1 1 , , 1 , 1 , 1 1 , , 1 , , , , , , , , , , , , , , , , , > , : , : > , : , > , > > > > > > : > > : > : > : : > : : : : : : : : : : - - - - - - & : : & : & : : & & & & & & & - & & & & & & & & & & & & & # & & & & & & # & & # & # & # & # & # # # @ # # # # # # & # # # # # # # # @ @ @ # # @ @ @ @ @ @ @ @ @ @ @ @ @ X @ @ X @ @ X @ + @ + + + @ + + @ + + + X + + + + + + + + + X o + O + + O + + O + O O O X + O o O O O O O O o O O O O o O O O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 1 2 1 2 1 2 1 1 2 1 2 1 1 1 1 1 1 1 , 2 1 1 1 , , 1 1 1 1 , 1 , , 1 , 1 , , 1 , 1 , , , , , , , , : , , , , , : > , : , , : , : : , > > > : > > > : > : > : > : : > : > > : : : : : : : - - : : : - - : & : - - & : - & : & : & - & & & & & & & & & & & & & & & & & # # & & # & & # # & # & # & & # # & & # # & # # # # # # # # # # # @ @ # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ X @ X @ @ @ + + + + + + + + + + + + + + + + + + + O o + + + + O + O O O O o O O O + + O O O O O O O O X O O X O o o O . O O O O O O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 , 1 , 1 1 1 , 1 , , 1 , 1 , , , , 1 , , , , , , , , , , , , , , , , : , , , , , , : , > , , : , : > > > : : > > > : > : > : : : : : : : : : : : : : : : - - - - : - - - - : & : & & : & & & - - & & - & & & & & & & & & # & & & & & # & & & # & # & # & # # # & @ # & # # & # # # & # # # # # # # # # # # # @ # @ @ @ @ @ @ @ @ @ @ @ X @ @ @ @ @ @ @ @ X @ + @ @ + @ + @ + + + + + + + + O + + + O + + X + o + + o + + + O + O O o O + O O X O O O O O X O O X O O O O O O . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 1 2 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 , 1 1 , 1 , 1 , 1 , 1 , 1 , , , , , , , , , , , , , > , , , > , , > , , > : , : , > : , , : , : > > > : : > : > > : : > : : : : : : : - : : : - : - : - : - - - - - & : & & - & : : & - & & & & & & & & & & # & & & & & & & # # & & & # & & # & # & & # # & # # # # # & # # # & # # # # # & # # @ @ @ @ # @ # @ @ # @ @ @ X @ @ @ @ @ @ @ @ @ @ @ @ + @ + + @ + + @ @ + + + + + + + + + + + + X + + O + O + o + + X + O O O O O O O O + X O O O O O O O . . o . O O O O o O O o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 1 1 2 2 1 2 2 1 2 1 2 2 1 2 1 1 1 1 1 1 , 1 1 1 1 1 , 1 1 , 1 1 , 1 , 1 , 1 , 1 1 , 1 , , , , , , , , , , , > , , > , , : , > , , , : , : , : > > > > > > > > > > : > : > : : : : : : : : : : - : : - - - : - - - - - - : & & : & : & & - & & & - & - & & & & & & & & & & & # & & & & # # & # & & # & # & # & # # & # # # # # # # # # # # # # # # # # # # @ # @ @ @ @ @ @ @ @ @ @ @ X @ @ @ X + X @ @ X @ + + + + + + + + + + + + + + + + + + + + o + o + X + O + o O + X X + + O O O O O O X X O O O . X O . o . o o O O O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 1 1 1 1 1 , 1 , 1 , 1 , , , , 1 , , , , , , , , , , , , , > , > > > , , : , : , , : > , > > > > > > : > > : : > : > : : : > : > : : : : : : - : : - - : - - - - - - : & : & & & : & & & & & - & & - & & & & & & & & & & & # & & # & # & & # & # # & & & # # # # # & # % & # # # # # # # # # # @ # # @ # # @ @ @ @ @ @ @ @ X @ @ @ @ @ X + @ X @ @ X @ + + @ + @ + + + + + + + + X + + + + O + + + + + + O + + O + X O O O O O + + O O O O O O O O . . o . o o . O o O o O O o ", -"2 y 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2 2 2 2 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 , 1 , 1 1 , 1 , 1 1 , , , , , , , , , , , , , , > > , , , > , : , , , : , : , , : > > > > > : > > : > > : : : : > : > : : : : : : : : - : : - : - - : - - - - & : & : : & & & : - & - & & & & & & & & & & # & & # & & # & # & & & # & # & & # # # # & & # & # % % # # # # # # # # # # # # @ @ # # @ @ # @ @ @ # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ + + + + + @ + + + + + + + + + + + + + X + o + X + O o O + o + O + O O O O O O O O O O O . . O X . . . . o o o O O o O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 1 2 1 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 1 , 1 , 1 , 1 1 , 1 1 , , , , , , , , , , , , , : , , , , > , , > , , , : > , : : , : > > , > > : > > > > : : > : > : > : : : : : : : : : : : - : : : & : : & : : & : & : & : : & & & & - & - & & & & & & & & & & & & & & # & & & # & & # & & @ & # & # # # # & # & % # # % # # # & # # # # # # # @ @ @ # @ @ @ @ @ @ @ @ @ @ @ @ X @ @ @ @ + @ + @ X + @ + + + @ + + @ + + + + + + O @ O + O + + + O + + X + O O + O O O O O X + X O O O O O X X o O O . . o . . . O o . . o . O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 1 , , 1 , 1 , 1 , , 1 , 1 , , , , , , , > , , > , > , > : , , , , , , : , > > > > > > > : : > > > > : : : : > : : : > : : : : : : : - : : : & : : : & : & : & : & & : & : & & & & & & & & & & & & & & # # & & & & # & & # & & # # & # & & # & & & & # # & # % # # # # @ # # # # @ # @ # # @ # @ @ @ @ @ @ @ @ @ @ @ @ @ @ X X @ @ @ @ + @ + @ + + + + + + + + @ + + + + + + + + O + o + + + O + X + O O O + O X + X O X O O O O O O O o . . . o . . . . o o o . . O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 1 1 2 1 2 2 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 , 1 , , 1 , , , 1 , 1 , , , , , , , , , , , > , , , , > : , : , > : , , > > , : > > > > > : > : > : : > > : : > : : : : : : - : - - : - : : : & : & & : : & : : & : & & - & - & & & & & & & & & & # & & & # & & & & # & & # & # & # & # # # # # # # # # # % # # # % # # # # # # # @ # @ # @ @ @ # @ @ @ # # @ @ @ @ @ @ @ @ @ @ @ + + @ + @ + + + @ + + + + + + + + + X + + + + + O + + O + O O + X O + + O + X o + + o O O O X O X X o . O o . o o o o . O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 1 1 1 1 2 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 , 1 1 , 1 1 1 , 1 , 1 1 , 1 , 1 , 1 , , , , , , , , , , , , , , , , : , , > , , , , > , > > , : : > > > > > > > > : > : > > : > : : > : : : : - : : : : - - : & & - : : - : & : & & & & & : & & - & & : & & & & & & & & & & & & & # & # & & & # & & # & # & & # & # # & & # # # # & & # # # # # # # # # # @ @ @ # @ @ @ @ @ @ X @ @ @ @ X @ @ X @ @ @ X @ + @ + + @ + + @ + + + + + + + + + + + O + + + + O O + + X + O + O O O + X O O O O O O O X O O X o o . . . . o . o . o . o . O O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 1 1 2 1 1 1 2 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 , 1 , 1 1 1 1 , 1 , 1 , , , 1 , , , , 1 , , , , , , , , , , , , , : , , : : , > , > , : , : > : > > : : > > > : > : : > : : : : : : : : : - : : : : : : : : : & : & : : & : : & : & & & & & & - & & & & & & & & & & & & & & # # & & # & & # & # & # & & # & & # # # # # # % # % # # # # # # @ # # # # @ @ @ # @ @ # @ @ @ @ @ X X @ + @ + @ @ + + @ + + + + + @ + + + + + + + + + + + X + + + + + X + + X O O + O O O O O O O + o O O O + O O . . O . o o . . . . . . . o O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 2 1 1 1 2 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 , , 1 , 1 , 1 , 1 1 , , , , 1 , , , , , , , , , , , , , , , , , : , , : , : > : , : , > > > : > > : : > : > : : : > : : : : : : : : : : : - : : & : & : & & : & & : & : & & & & - : & & & & & & & & & & & # & & & # # & & & # & # # & & & # & # # # # # # # & # # # # # # # # # # # # # # # # @ # @ # # @ @ @ @ @ @ @ @ # @ @ + @ @ @ + @ @ + + @ @ + + + @ + + + + + + + + + + + + O + X + + + X O + + O + X + + O + O O + X O O O O O . O . O . . o o . . . o o . . . O O ", -"2 2 2 2 2 2 2 2 1 2 2 2 2 , 2 2 1 2 2 1 1 2 2 1 1 1 2 1 1 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 , 1 , , 1 1 , , , , , , 1 , , , , , , , : , : , : , , , : , > > > : > , : > > > > > > > : : : > : > : : > : : : : : : : : & : : & : & : - : & : & & : : & : & : & - & & - - & & & & & & & & & & & & # & & & & & # & & & & # & & # & # & # & # # & & # % # # # % % # # # # # @ @ @ # # @ @ @ @ @ @ @ X # @ @ @ X @ @ @ @ + @ + @ @ @ @ + + + + @ + @ + + + + + + + + + + + + O + + O + + O O + + O O O + O O O o O O O O O O O . . o o . . . . . o o o . O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 , 1 1 , 1 1 , 1 , , 1 , 1 , , , 1 , , , , , , , , , , : , , , , , , > > , , > , , > , , : , > > > : > : > > > > : : > : > : : > : : : : : : : : : : : : - - : & : - : & & : & : & & - & & & - & & & & & & & # & & & & & & & # # & & # & # # & # # # & # & # # # & # # # # % % % % @ # # # # # # # # @ # @ # @ @ @ @ @ @ @ # @ @ # @ @ + + @ + @ + + + + @ + @ + + + + + + + + + + + + + + X + + O + + + O + + O O + O + O O O O O o O O O O O O . o . O . O o . . . o . o o O O ", -"2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 2 2 2 1 1 2 1 2 1 1 1 2 1 2 , 1 1 1 1 1 , 2 2 , 1 1 1 , 1 1 , , 1 1 , , 1 1 , , , , , 1 , , , , , , , , > , , > , > , > , : > , : , > : : , : > > > > > > : > > : : > : : : > : : : > : : : : : : - : - : - : & & : - & : : : & : & & : : & & & & & & : & & & & & & & & # & & & # & # & & & & # & # & # # & # # # & # & # # & # # # # # # # # # # # # @ @ - @ @ @ @ o - + o - @ @ @ @ @ @ @ + @ + + @ @ + @ + @ + @ + @ + + + + + + + + + + + + + + + + o + + X X + O + + X + + O O o O O O O O X X O X O X O o o O o O X X O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 1 1 2 2 1 2 1 1 2 1 2 1 1 2 , , 1 1 1 , 1 1 1 1 , 1 , , 1 , 1 1 , , 1 , 1 , , 1 , , , , , , , , , , > , > , , , , , , : , , , > , > , : , > : > > : > > : > : : > : > : : : : : : : : : - : - - : : : : - : : & & & : : : & & : & : & & & & & & & & & & & & & & & & & & & & # # & & # & # & # # & & # # # & # # # # # & # # # # # # # # @ @ # + # @ o @ - o @ @ + @ @ @ + @ + @ @ + @ @ + @ @ + + @ + + + + + + + + + + + + + + + + X + + + o + o + + O + O O X X O O O + O O O O O + O O o X O O O O X O O X O o o O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 1 1 1 2 , 2 1 2 1 1 1 2 , 1 , , 1 1 1 1 1 , 1 , 1 1 , 1 , 1 , , , , , , , , 1 , , , , > , , , > , > > , : , : : , , : > : , : : > > > > : > : > > : : : > : : : : : : : : : : : - : - : - : : & & : & & : & : & & & & & & : & & & & & & & & & & & & & & & # & & # # & & & # & # & # & & & # & & # # # # & # & # # # & # # # # # # # # + @ @ - @ - o @ @ @ @ @ @ @ + @ + @ @ + @ @ + + @ + @ + + + + + @ + + + + + + + + X X + + + + + + o o + O O O o + o X O O O + O O O O O O O X X o o O X o O X o o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 2 1 1 1 2 1 1 1 1 2 1 1 1 1 1 , 2 1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 , 1 , , 1 , , 1 , 1 , , , , , , , , , , , > , , , > , , , > , , > > , > > : , > > > > > > : > : : > > : : > : : > : : : : : - : : - : : : & : : - : & : & : & : & : : & & & & & & & & & & & & & & # & # & & & # & & & # & # & & # & # # # # # # # & # # # # # # # # # # # # # # # # @ + - @ @ @ o - + @ @ @ @ @ + o - + @ + @ @ + @ + + @ + + + @ @ + + + + + + + + + + + + + X + o + o + + O + + O + X + + o O O O O O O O O O O X X . . . . o O o O X . O O ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 1 2 2 1 1 2 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , 1 1 , 1 , 1 , 1 , , , , , , , , , , , , , > , , , , , > > , , : , , , : > > , > , : > > : > > : > > : > > : > : : : : : : > : : - : : : - : & : : & : & : & : & : & & : & & & & & & : & & & & & & & & & # & & & & & & # # & & & # & # & # & # & # # # # # & & # # # & # # # # # # # # # # @ + + - o + + @ o + @ @ + @ @ + + @ @ + @ @ + + @ @ @ + + + @ + + + + + + + + + + + X + + + + + X + X + O + O o O X + O O O O O O O O O O X O o . o O . . o o o . o . X O O . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 1 2 2 2 1 1 1 1 2 1 1 1 1 1 1 1 , 1 , , 1 1 1 1 1 , , 1 , 1 , , , , 1 1 , 1 1 1 , , , , , , , , , , : , , , > , , : , > , > , : : , : > > : > > > > : > > : : > : > > > : : : & : : : - : - - : - & : - - - : : & & : : & : & & : & & & & & & & & & # & & & & & & # & & & & & & # & & & # & # # # & & # & # # # # # # # # # # # # # # # # @ # - + o - - @ @ - - o @ @ @ + @ @ @ + + @ @ + @ + + + + @ + + + + + + + + + + + + + + + + X + X + X + O + O + + o O O + + + O + O O O O O o X O . X o o O o O X O o . . O . O ", -"y 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 1 2 1 1 1 1 1 2 1 2 , 1 1 1 2 2 1 1 1 1 1 1 1 1 1 , 1 1 1 1 , , 1 1 , 1 , , , , , , , , , , , , , , , : , > , , > > > > , > , > : , : : , : , , : : > > : : : : > : > : : : : : : : : : : : - : : - : : & : & : & & & : & & : & & : & & : & : & & & & & & & & & & # & # & # & # # # # & # # & & & & # # # & # & # & # & # # # # # # # # # # @ # # @ + @ @ @ @ @ @ o - @ @ @ @ + @ + @ @ + @ + @ + @ + @ + + @ + + + @ + + + + + + + X + + + + + X + O + O + o + + + X O O O + O O O O O O X O X . . . . o X O X . o . . O . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 1 2 2 1 2 1 2 1 2 1 1 1 1 1 2 , 1 1 1 1 1 1 1 1 1 , 1 , , 1 , 1 1 , , 1 , , , 1 , , , , , , > , , , , > , , , , , , , , , : , : > , > , , : , > : > > > : > > > > : : : : : : : > : : : : : : : : - : : - : - : - - & : : & & & : & : & & & & & & & & & & & & & & & & & & & & & & & & & # & & # # # # & & # # & # # # # # # # # # & # # # # # # @ # @ - @ @ @ @ @ @ @ @ + @ @ @ @ @ # + @ @ @ + + @ + @ + + + + @ + + + + + + + + + + + + + o + + + X + O + O + o X O O + O O O O O O O O O O O O o . o . O o X . . . . O O . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 1 2 2 1 2 1 1 1 1 2 1 2 , 1 2 1 2 , 1 1 2 , 1 1 1 1 1 , 1 1 1 , 1 , 1 1 , 1 1 , , , , , , , , , , > , > , , , > > > , : , , , > , > : , , : > : , > > : > : > > > : : : : > > : : : : : : : : & : & : : & : - - - - & : & : & : - & & & : & & & & & & & & & & & # & & # & & & # & # # & & # # & # & & # # & # # # # # # # # # # # # # # # # # # # # - o # @ @ @ @ @ + @ @ @ @ + @ + + @ @ @ + + + + @ + + + + + @ + + @ + + + + + + + + o + o + + + O + X + O O + + O + O + O + O O O O O O O O O O X . . . . o o . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 1 2 2 2 1 1 1 1 1 2 1 1 1 1 , 2 , 1 , , 1 1 , 1 1 , 1 , , 1 , , , , , , , 1 , 1 , , , , , , , , , > , , , > , , , : > , : > , : : , > > : > > : > : : : : > > > : : : : : : : : : : : : : : : : - : - - - - - & : & & & - - : & & & & & & & & & & & & & & & & & & # & & & & & # & & & # & # & # & # # & & # & # & # # # # # # # # # # @ # # - @ # @ @ @ @ @ @ @ @ @ @ @ @ + @ @ + @ @ @ @ @ @ + + @ + @ + + + + + + + + + + + + + + + + + o + X + + + + O O + O O O O O O O O O O X O O O X O X . . . . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 1 2 2 1 2 1 1 1 2 1 1 1 1 2 2 , 1 1 1 1 2 1 1 1 1 1 1 , 1 1 1 , , 1 1 , 1 , , 1 1 , 1 , , , , , , , , > , , , > > > > > : , : , > , , > , > > : : , > > > > : > > > : : : : > : : : : : : : : : : : & : : & - : & : - - - : : & - & & - & & & & - & & - & & & & & # & & & & & & # & # & & # & # # & # & # & # # & # # # # # & # & # # # # # # # # @ # @ o @ @ # # @ @ @ @ @ @ @ @ + @ @ + @ @ + @ + + + + + + + + + + + + + + + + + + o + + + o o + o + + O + O + O O O X + X + + O O + O O X O O O X O O X o o o o . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 1 1 2 2 1 1 2 1 2 1 2 1 2 1 1 1 1 2 , 1 , 1 1 1 1 , 1 1 , 1 , 1 , , 1 , , , , , , , , , , , , , , , > , , , > , , : , , > , : : , : , : , > : , : > : > : > : : > : > : > : : : : : : : : : : : : : : : & : : & - : & & : & : & - & : & : & & & & & & & & & & & & # & & # & & & & & & & # & # # & & # # & # # & # & # # # # # # # # # # # # @ # @ @ @ # @ @ @ @ @ @ @ @ @ @ @ @ + @ + + @ @ @ + @ @ + @ @ @ + @ + + + + + + + + + + + + + + + + + X + O + O + + + O O O O O O O X O O O O O O O X X O . . . . . o . o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , , 1 , 1 , 1 , , 1 , 1 , 1 , , , , 1 , , , , , , , , > , > > > , , , : , , : , > : , > , : > > > : > : > > : > : : > : > : : > : : : : : : : & : & & : : & : & & - & : & : - & - & - & - & & - & & & & & & & & # & & & & # & & # & # & & # & # & # # & & # # # # & # # & # # # & # # # # # # # # # # @ # @ # @ @ @ @ @ @ + @ @ @ @ @ # @ + + + @ + + + + + + + + @ + @ @ + + + + + + + + o + + + X + + O + + O + O + O + O O X O X O O O X o o O O o O O X o . o . o . . . . ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 , 1 , 1 , 1 1 1 1 1 1 , , 1 1 , 1 , , 1 1 , , 1 , , , , , , , , , , , , , > , > , , : , , , > , : , : , > > : , > : : > : : > > : : : : : : : : : : : : : : : : : : : : - : : : : & : & - & & - & - & & & & & & & & & & & & & & & & & & & # & # & # # & # & # & & & # # & # # # # & # # & # # # # # # # # # @ @ @ # @ @ @ @ @ @ @ + @ @ @ @ + + @ + @ @ + @ + @ @ @ @ + + @ + + + + + + + + + + + o + + + o + + X O + O O + O O O O O O O + O O O O O O O o O O O o o o . o . . . . . ", -"2 2 y 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 1 1 2 1 2 2 2 1 1 1 2 , 2 1 1 1 1 1 1 2 , 1 1 , 1 1 1 1 1 1 , 1 1 , , , , , 1 , , , , , , , , , , , , , , , , > , , : , > , : : , , : , : : , , : : > > > > : > : : > : > > : : : : : : : : : & & : : & & : - - & : & & & - - & - & - & & & - & & & & & & & & & & # & & # & & & # # & & # & # & # # # & # # # & # # # # # # # # # # # # # # # # # # @ # @ @ @ @ @ @ @ + @ @ @ @ @ @ @ + @ @ + @ + + + @ + @ + + + + + + + + + + + + + + + + + + + X + + + X O O + + O X O O O + X O X O O O O O O O O O O . . o o . . o o ", -"2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 1 2 1 1 1 2 1 2 1 1 1 1 1 1 1 2 , 2 1 1 1 1 , 1 , , , 1 , , , 1 , 1 , , , , , , , , , , > , , > , > > , , > , , > , > > , , : , : > > : , : > > : : > > : > : : : : : : : : : : : - : : : : & : : : & : - - : : & : & - - - & & - - & & & & & & & & & & & & & & & & & # & # & # & & # & # & # # & # # # & # # # & # # # # # # # # # # # # # # @ @ # @ @ @ @ @ @ @ @ @ + @ + @ + @ + @ @ + @ @ + + @ + + + + + + + + + + + + + + o + + o + o + + X X + O + O + O + O + O X O O O O O O O O O O O . o . . . . . o o " -}; diff --git a/pcsx2v2/Linux/Config.cpp b/pcsx2v2/Linux/Config.cpp deleted file mode 100644 index 05a5214..0000000 --- a/pcsx2v2/Linux/Config.cpp +++ /dev/null @@ -1,151 +0,0 @@ -/* Pcsx2 - Pc Ps2 Emulator - * Copyright (C) 2002-2008 Pcsx2 Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include -#include -#include -#include -#include - -#include "Linux.h" - -#define GetValue(name, var) \ - tmp = strstr(data, name); \ - if (tmp != NULL) { \ - tmp+=strlen(name); \ - while ((*tmp == ' ') || (*tmp == '=')) tmp++; \ - if (*tmp != '\n') sscanf(tmp, "%s", var); \ - } - -#define GetValuel(name, var) \ - tmp = strstr(data, name); \ - if (tmp != NULL) { \ - tmp+=strlen(name); \ - while ((*tmp == ' ') || (*tmp == '=')) tmp++; \ - if (*tmp != '\n') sscanf(tmp, "%x", &var); \ - } - -#define SetValue(name, var) \ - fprintf (f,"%s = %s\n", name, var); - -#define SetValuel(name, var) \ - fprintf (f,"%s = %x\n", name, var); - -int LoadConfig() { - struct stat buf; - FILE *f; - int size; - char *data,*tmp; - char strtemp[255]; - - if (stat(cfgfile, &buf) == -1) return -1; - size = buf.st_size; - - f = fopen(cfgfile,"r"); - if (f == NULL) return -1; - - data = (char*)malloc(size); - if (data == NULL) return -1; - - fread(data, 1, size, f); - fclose(f); - - GetValue("Bios", Config.Bios); - Config.Lang[0] = 0; - GetValue("Lang", Config.Lang); - GetValuel("Ps2Out", Config.PsxOut); - GetValuel("ThPriority", Config.ThPriority); - GetValue("PluginsDir", Config.PluginsDir); - GetValue("BiosDir", Config.BiosDir); - GetValue("Mcd1", Config.Mcd1); - GetValue("Mcd2", Config.Mcd2); - - // plugins - GetValue("GS", Config.GS); - GetValue("SPU2", Config.SPU2); - GetValue("CDVD", Config.CDVD); - GetValue("PAD1", Config.PAD1); - GetValue("PAD2", Config.PAD2); - GetValue("DEV9", Config.DEV9); - GetValue("USB", Config.USB); - GetValue("FW", Config.FW); - - - // cpu - GetValuel("Options", Config.Options); - - GetValuel("Patch", Config.Patch); - -#ifdef PCSX2_DEVBUILD - GetValuel("varLog", varLog); -#endif - - free(data); - -#ifdef ENABLE_NLS - if (Config.Lang[0]) { - extern int _nl_msg_cat_cntr; - - setenv("LANGUAGE", Config.Lang, 1); - ++_nl_msg_cat_cntr; - } -#endif - - return 0; -} - -///////////////////////////////////////////////////////// - -void SaveConfig() { - FILE *f; - - f = fopen(cfgfile,"w"); - if (f == NULL) return; - - // interface - SetValue("Bios", Config.Bios); - SetValue("Lang", Config.Lang); - SetValue("PluginsDir", Config.PluginsDir); - SetValue("BiosDir", Config.BiosDir); - SetValuel("Ps2Out", Config.PsxOut); - SetValuel("ThPriority", Config.ThPriority); - SetValue("Mcd1", Config.Mcd1); - SetValue("Mcd2", Config.Mcd2); - // plugins - SetValue("GS", Config.GS); - SetValue("SPU2", Config.SPU2); - SetValue("CDVD", Config.CDVD); - SetValue("PAD1", Config.PAD1); - SetValue("PAD2", Config.PAD2); - SetValue("DEV9", Config.DEV9); - SetValue("USB", Config.USB); - SetValue("FW", Config.FW); - //cpu - SetValuel("Options", Config.Options); - // misc - SetValuel("Patch", Config.Patch); - -#ifdef PCSX2_DEVBUILD - SetValuel("varLog", varLog); -#endif - - - fclose(f); - - return; -} diff --git a/pcsx2v2/Linux/GtkGui.cpp b/pcsx2v2/Linux/GtkGui.cpp deleted file mode 100644 index 3253c73..0000000 --- a/pcsx2v2/Linux/GtkGui.cpp +++ /dev/null @@ -1,1651 +0,0 @@ -/* Pcsx2 - Pc Ps2 Emulator - * Copyright (C) 2002-2008 Pcsx2 Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -//#include -#include -#include - -#include "support.h" -#include "callbacks.h" -#include "interface.h" -#include "Linux.h" - -#include "Paths.h" - - -static int needReset = 1; -int confret; -int confplug=0; -extern int RunExe; - -_PS2EgetLibType PS2EgetLibType = NULL; -_PS2EgetLibVersion2 PS2EgetLibVersion2 = NULL; -_PS2EgetLibName PS2EgetLibName = NULL; - -// Helper Functions -void FindPlugins(); - -// Functions Callbacks -void OnFile_LoadElf(GtkMenuItem *menuitem, gpointer user_data); -void OnFile_Exit(GtkMenuItem *menuitem, gpointer user_data); -void OnEmu_Run(GtkMenuItem *menuitem, gpointer user_data); -void OnEmu_Reset(GtkMenuItem *menuitem, gpointer user_data); -void OnEmu_Arguments(GtkMenuItem *menuitem, gpointer user_data); -void OnConf_Gs(GtkMenuItem *menuitem, gpointer user_data); -void OnConf_Pads(GtkMenuItem *menuitem, gpointer user_data); -void OnConf_Cpu(GtkMenuItem *menuitem, gpointer user_data); -void OnConf_Conf(GtkMenuItem *menuitem, gpointer user_data); -void OnLanguage(GtkMenuItem *menuitem, gpointer user_data); -void OnHelp_Help(); -void OnHelp_About(GtkMenuItem *menuitem, gpointer user_data); - -GtkWidget *Window; -GtkWidget* pStatusBar = NULL; -GtkWidget *CmdLine; //2002-09-28 (Florin) -GtkWidget *ConfDlg; -GtkWidget *AboutDlg; -GtkWidget *DebugWnd; -GtkWidget *LogDlg; -GtkWidget *FileSel; - -GtkAccelGroup *AccelGroup; - -typedef struct { - GtkWidget *Combo; - GList *glist; - char plist[255][255]; - int plugins; -} PluginConf; - -PluginConf GSConfS; -PluginConf PAD1ConfS; -PluginConf PAD2ConfS; -PluginConf SPU2ConfS; -PluginConf CDVDConfS; -PluginConf DEV9ConfS; -PluginConf USBConfS; -PluginConf FWConfS; -PluginConf BiosConfS; - -void StartGui() { - GtkWidget *Menu; - GtkWidget *Item; - GtkWidget* vbox; - int i; - - add_pixmap_directory(".pixmaps"); - - Window = create_MainWindow(); - -#ifdef PCSX2_VIRTUAL_MEM - gtk_window_set_title(GTK_WINDOW(Window), "PCSX2 "PCSX2_VERSION" Watermoose VM"); -#else - gtk_window_set_title(GTK_WINDOW(Window), "PCSX2 "PCSX2_VERSION" Watermoose"); -#endif - - // status bar - pStatusBar = gtk_statusbar_new (); - gtk_box_pack_start (GTK_BOX(lookup_widget(Window, "status_box")), pStatusBar, TRUE, TRUE, 0); - gtk_widget_show (pStatusBar); - - gtk_statusbar_push(GTK_STATUSBAR(pStatusBar),0, - "F1 - save, F2 - next state, Shift+F2 - prev state, F3 - load, F8 - snapshot"); - - // add all the languages - Item = lookup_widget(Window, "GtkMenuItem_Language"); - Menu = gtk_menu_new(); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(Item), Menu); - - for (i=0; iExecute(); -} - -void OnFile_RunCD(GtkMenuItem *menuitem, gpointer user_data) { - needReset = 1; - efile = 0; - RunExecute(1); -} - -void OnRunElf_Ok(GtkButton* button, gpointer user_data) { - gchar *File; - - File = (gchar*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(FileSel)); - strcpy(elfname, File); - gtk_widget_destroy(FileSel); - needReset = 1; - efile = 1; - RunExecute(1); -} - -void OnRunElf_Cancel(GtkButton* button, gpointer user_data) { - gtk_widget_destroy(FileSel); -} - -void OnFile_LoadElf(GtkMenuItem *menuitem, gpointer user_data) { - GtkWidget *Ok,*Cancel; - - FileSel = gtk_file_selection_new("Select Psx Elf File"); - - Ok = GTK_FILE_SELECTION(FileSel)->ok_button; - gtk_signal_connect (GTK_OBJECT(Ok), "clicked", GTK_SIGNAL_FUNC(OnRunElf_Ok), NULL); - gtk_widget_show(Ok); - - Cancel = GTK_FILE_SELECTION(FileSel)->cancel_button; - gtk_signal_connect (GTK_OBJECT(Cancel), "clicked", GTK_SIGNAL_FUNC(OnRunElf_Cancel), NULL); - gtk_widget_show(Cancel); - - gtk_widget_show(FileSel); - gdk_window_raise(FileSel->window); -} - -void OnFile_Exit(GtkMenuItem *menuitem, gpointer user_data) { - DIR *dir; - struct dirent *ent; - void *Handle; - char plugin[256]; - - // with this the problem with plugins that are linked with the pthread - // library is solved - - dir = opendir(Config.PluginsDir); - if (dir != NULL) { - while ((ent = readdir(dir)) != NULL) { - sprintf (plugin, "%s%s", Config.PluginsDir, ent->d_name); - - if (strstr(plugin, ".so") == NULL) continue; - Handle = dlopen(plugin, RTLD_NOW); - if (Handle == NULL) continue; - } - } - - printf(_("PCSX2 Quitting\n")); - if (UseGui) gtk_main_quit(); - SysClose(); - if (UseGui) gtk_exit(0); - else exit(0); -} - -void OnEmu_Run(GtkMenuItem *menuitem, gpointer user_data) -{ - if(needReset == 1) - RunExe = 1; - efile = 0; - RunExecute(1); -} - -void OnEmu_Reset(GtkMenuItem *menuitem, gpointer user_data) -{ - ResetPlugins(); - needReset = 1; - efile = 0; -} - -int Slots[5] = { -1, -1, -1, -1, -1 }; - -void ResetMenuSlots(GtkMenuItem *menuitem, gpointer user_data) { - GtkWidget *Item; - char str[256]; - int i; - - for (i=0; i<5; i++) { - sprintf(str, "GtkMenuItem_LoadSlot%d", i+1); - Item = lookup_widget(Window, str); - if (Slots[i] == -1) - gtk_widget_set_sensitive(Item, FALSE); - else - gtk_widget_set_sensitive(Item, TRUE); - } -} - -void UpdateMenuSlots(GtkMenuItem *menuitem, gpointer user_data) { - char str[256]; - int i; - - for (i=0; i<5; i++) { - sprintf(str, SSTATES_DIR "/%8.8X.%3.3d", ElfCRC, i); - Slots[i] = CheckState(str); - } -} - -void States_Load(int num) { - char Text[256]; - int ret; - - efile = 2; - RunExecute(0); - - sprintf (Text, SSTATES_DIR "/%8.8X.%3.3d", ElfCRC, num); - ret = LoadState(Text); -/* if (ret == 0) - sprintf (Text, _("*PCSX2*: Loaded State %d"), num+1); - else sprintf (Text, _("*PCSX2*: Error Loading State %d"), num+1); - GPU_displayText(Text);*/ - - Cpu->Execute(); -} - -void States_Save(int num) { - char Text[256]; - int ret; - - sprintf (Text, SSTATES_DIR "/%8.8X.%3.3d", ElfCRC, num); - ret = SaveState(Text); - if (ret == 0) - sprintf(Text, _("*PCSX2*: Saving State %d"), num+1); - else sprintf(Text, _("*PCSX2*: Error Saving State %d"), num+1); - //StatusSet(Text); - - RunExecute(1); -} - -void OnStates_Load1(GtkMenuItem *menuitem, gpointer user_data) { States_Load(0); } -void OnStates_Load2(GtkMenuItem *menuitem, gpointer user_data) { States_Load(1); } -void OnStates_Load3(GtkMenuItem *menuitem, gpointer user_data) { States_Load(2); } -void OnStates_Load4(GtkMenuItem *menuitem, gpointer user_data) { States_Load(3); } -void OnStates_Load5(GtkMenuItem *menuitem, gpointer user_data) { States_Load(4); } - -void OnLoadOther_Ok(GtkButton* button, gpointer user_data) { - gchar *File; - char str[256]; - char Text[256]; - int ret; - - File = (gchar*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(FileSel)); - strcpy(str, File); - gtk_widget_destroy(FileSel); - - efile = 2; - RunExecute(0); - - ret = LoadState(str); -/* if (ret == 0) - sprintf (Text, _("*PCSX*: Loaded State %s"), str); - else sprintf (Text, _("*PCSX*: Error Loading State %s"), str); - GPU_displayText(Text);*/ - - Cpu->Execute(); -} - -void OnLoadOther_Cancel(GtkButton* button, gpointer user_data) { - gtk_widget_destroy(FileSel); -} - -void OnStates_LoadOther(GtkMenuItem *menuitem, gpointer user_data) { - GtkWidget *Ok,*Cancel; - - FileSel = gtk_file_selection_new(_("Select State File")); - gtk_file_selection_set_filename(GTK_FILE_SELECTION(FileSel), SSTATES_DIR "/"); - - Ok = GTK_FILE_SELECTION(FileSel)->ok_button; - gtk_signal_connect (GTK_OBJECT(Ok), "clicked", GTK_SIGNAL_FUNC(OnLoadOther_Ok), NULL); - gtk_widget_show(Ok); - - Cancel = GTK_FILE_SELECTION(FileSel)->cancel_button; - gtk_signal_connect (GTK_OBJECT(Cancel), "clicked", GTK_SIGNAL_FUNC(OnLoadOther_Cancel), NULL); - gtk_widget_show(Cancel); - - gtk_widget_show(FileSel); - gdk_window_raise(FileSel->window); -} - -void OnStates_Save1(GtkMenuItem *menuitem, gpointer user_data) { States_Save(0); } -void OnStates_Save2(GtkMenuItem *menuitem, gpointer user_data) { States_Save(1); } -void OnStates_Save3(GtkMenuItem *menuitem, gpointer user_data) { States_Save(2); } -void OnStates_Save4(GtkMenuItem *menuitem, gpointer user_data) { States_Save(3); } -void OnStates_Save5(GtkMenuItem *menuitem, gpointer user_data) { States_Save(4); } - -void OnSaveOther_Ok(GtkButton* button, gpointer user_data) { - gchar *File; - char str[256]; - char Text[256]; - int ret; - - File = (gchar*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(FileSel)); - strcpy(str, File); - gtk_widget_destroy(FileSel); - RunExecute(0); - - ret = SaveState(str); -/* if (ret == 0) - sprintf (Text, _("*PCSX*: Saved State %s"), str); - else sprintf (Text, _("*PCSX*: Error Saving State %s"), str); - GPU_displayText(Text);*/ - - Cpu->Execute(); -} - -void OnSaveOther_Cancel(GtkButton* button, gpointer user_data) { - gtk_widget_destroy(FileSel); -} - -void OnStates_SaveOther(GtkMenuItem *menuitem, gpointer user_data) { - GtkWidget *Ok,*Cancel; - - FileSel = gtk_file_selection_new(_("Select State File")); - gtk_file_selection_set_filename(GTK_FILE_SELECTION(FileSel), SSTATES_DIR "/"); - - Ok = GTK_FILE_SELECTION(FileSel)->ok_button; - gtk_signal_connect (GTK_OBJECT(Ok), "clicked", GTK_SIGNAL_FUNC(OnSaveOther_Ok), NULL); - gtk_widget_show(Ok); - - Cancel = GTK_FILE_SELECTION(FileSel)->cancel_button; - gtk_signal_connect (GTK_OBJECT(Cancel), "clicked", GTK_SIGNAL_FUNC(OnSaveOther_Cancel), NULL); - gtk_widget_show(Cancel); - - gtk_widget_show(FileSel); - gdk_window_raise(FileSel->window); -} - -//2002-09-28 (Florin) -void OnArguments_Ok(GtkButton *button, gpointer user_data) { - GtkWidget *widgetCmdLine; - char *str; - - widgetCmdLine = lookup_widget(CmdLine, "GtkEntry_dCMDLINE"); - str = (char*)gtk_entry_get_text(GTK_ENTRY(widgetCmdLine)); - memcpy(args, str, 256); - - gtk_widget_destroy(CmdLine); - gtk_widget_set_sensitive(Window, TRUE); - gtk_main_quit(); -} - -void OnArguments_Cancel(GtkButton* button, gpointer user_data) { - gtk_widget_destroy(CmdLine); - gtk_widget_set_sensitive(Window, TRUE); - gtk_main_quit(); -} - -void OnEmu_Arguments(GtkMenuItem *menuitem, gpointer user_data) { - GtkWidget *widgetCmdLine; - - CmdLine = create_CmdLine(); - gtk_window_set_title(GTK_WINDOW(CmdLine), _("Program arguments")); - - widgetCmdLine = lookup_widget(CmdLine, "GtkEntry_dCMDLINE"); - gtk_entry_set_text(GTK_ENTRY(widgetCmdLine), args); - //args exported by ElfHeader.h - gtk_widget_show_all(CmdLine); - gtk_widget_set_sensitive(Window, FALSE); - gtk_main(); -} -//------------------- - -void OnConf_Gs(GtkMenuItem *menuitem, gpointer user_data) -{ - char file[255]; - getcwd(file, ARRAYSIZE(file)); - chdir(Config.PluginsDir); - gtk_widget_set_sensitive(Window, FALSE); - GSconfigure(); - chdir(file); - gtk_widget_set_sensitive(Window, TRUE); -} - -void OnConf_Pads(GtkMenuItem *menuitem, gpointer user_data) { - char file[255]; - getcwd(file, ARRAYSIZE(file)); - chdir(Config.PluginsDir); - gtk_widget_set_sensitive(Window, FALSE); - PAD1configure(); - if (strcmp(Config.PAD1, Config.PAD2)) PAD2configure(); - chdir(file); - gtk_widget_set_sensitive(Window, TRUE); -} - -void OnConf_Spu2(GtkMenuItem *menuitem, gpointer user_data) { - char file[255]; - getcwd(file, ARRAYSIZE(file)); - chdir(Config.PluginsDir); - gtk_widget_set_sensitive(Window, FALSE); - SPU2configure(); - gtk_widget_set_sensitive(Window, TRUE); - chdir(file); -} - -void OnConf_Cdvd(GtkMenuItem *menuitem, gpointer user_data) { - char file[255]; - getcwd(file, ARRAYSIZE(file)); - chdir(Config.PluginsDir); - gtk_widget_set_sensitive(Window, FALSE); - CDVDconfigure(); - gtk_widget_set_sensitive(Window, TRUE); - chdir(file); -} - -void OnConf_Dev9(GtkMenuItem *menuitem, gpointer user_data) { - char file[255]; - getcwd(file, ARRAYSIZE(file)); - chdir(Config.PluginsDir); - gtk_widget_set_sensitive(Window, FALSE); - DEV9configure(); - gtk_widget_set_sensitive(Window, TRUE); - chdir(file); -} - -void OnConf_Usb(GtkMenuItem *menuitem, gpointer user_data) { - char file[255]; - getcwd(file, ARRAYSIZE(file)); - chdir(Config.PluginsDir); - gtk_widget_set_sensitive(Window, FALSE); - USBconfigure(); - gtk_widget_set_sensitive(Window, TRUE); - chdir(file); -} - -void OnConf_Fw(GtkMenuItem *menuitem, gpointer user_data) { - char file[255]; - getcwd(file, ARRAYSIZE(file)); - chdir(Config.PluginsDir); - gtk_widget_set_sensitive(Window, FALSE); - FWconfigure(); - gtk_widget_set_sensitive(Window, TRUE); - chdir(file); -} - -GtkWidget *CpuDlg; - -void OnCpu_Ok(GtkButton *button, gpointer user_data) { - GtkWidget *Btn; - long t; - u32 newopts = 0; - - Cpu->Shutdown(); - vu0Shutdown(); - vu1Shutdown(); - - if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkCheckButton_EERec"))) ) { - newopts |= PCSX2_EEREC; - } - if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkCheckButton_VU0rec"))) ) - newopts |= PCSX2_VU0REC; - if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkCheckButton_VU1rec"))) ) - newopts |= PCSX2_VU1REC; - if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkCheckButton_MTGS"))) ) - newopts |= PCSX2_GSMULTITHREAD; - if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkCheckButton_CpuDC"))) ) - newopts |= PCSX2_DUALCORE; - if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkRadioButton_LimitNormal"))) ) - newopts |= PCSX2_FRAMELIMIT_NORMAL; - else if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkRadioButton_LimitLimit"))) ) - newopts |= PCSX2_FRAMELIMIT_LIMIT; - else if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkRadioButton_LimitFS"))) ) - newopts |= PCSX2_FRAMELIMIT_SKIP; - else if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkRadioButton_VUSkip"))) ) - newopts |= PCSX2_FRAMELIMIT_VUSKIP; - - if( (Config.Options&PCSX2_GSMULTITHREAD) ^ (newopts&PCSX2_GSMULTITHREAD) ) { - Config.Options = newopts; - SaveConfig(); - SysMessage("Restart Pcsx2"); - exit(0); - } - - if( newopts & PCSX2_EEREC ) newopts |= PCSX2_COP2REC; - - Config.Options = newopts; - - UpdateVSyncRate(); - SaveConfig(); - - cpuRestartCPU(); - - gtk_widget_destroy(CpuDlg); - - if (Window) gtk_widget_set_sensitive(Window, TRUE); - gtk_main_quit(); -} - -void OnCpu_Cancel(GtkButton *button, gpointer user_data) { - gtk_widget_destroy(CpuDlg); - if (Window) gtk_widget_set_sensitive(Window, TRUE); - gtk_main_quit(); -} - - -void OnConf_Cpu(GtkMenuItem *menuitem, gpointer user_data) -{ - GtkWidget *Btn; - char str[512]; - - CpuDlg = create_CpuDlg(); - gtk_window_set_title(GTK_WINDOW(CpuDlg), _("Configuration")); - - if(!cpucaps.hasStreamingSIMDExtensions) { - Config.Options &= (PCSX2_VU0REC|PCSX2_VU1REC);//disable the config just in case - } - if(!cpucaps.hasMultimediaExtensions) { - Config.Options &= ~(PCSX2_EEREC|PCSX2_VU0REC|PCSX2_VU1REC|PCSX2_COP2REC);//return to interpreter mode - } - - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkCheckButton_EERec")), !!CHECK_EEREC); - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkCheckButton_VU0rec")), !!CHECK_VU0REC); - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkCheckButton_VU1rec")), !!CHECK_VU1REC); - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkCheckButton_MTGS")), !!CHECK_MULTIGS); - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkCheckButton_CpuDC")), !!CHECK_DUALCORE); - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkRadioButton_LimitNormal")), CHECK_FRAMELIMIT==PCSX2_FRAMELIMIT_NORMAL); - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkRadioButton_LimitLimit")), CHECK_FRAMELIMIT==PCSX2_FRAMELIMIT_LIMIT); - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkRadioButton_LimitFS")), CHECK_FRAMELIMIT==PCSX2_FRAMELIMIT_SKIP); - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(lookup_widget(CpuDlg, "GtkRadioButton_VUSkip")), CHECK_FRAMELIMIT==PCSX2_FRAMELIMIT_VUSKIP); - - sprintf(str, "Cpu Vendor: %s", cpuinfo.x86ID); - gtk_label_set_text(GTK_LABEL(lookup_widget(CpuDlg, "GtkLabel_CpuVendor")), str); - sprintf(str, "Familly: %s", cpuinfo.x86Fam); - gtk_label_set_text(GTK_LABEL(lookup_widget(CpuDlg, "GtkLabel_Family")), str); - sprintf(str, "Cpu Speed: %d MHZ", cpuinfo.cpuspeed); - gtk_label_set_text(GTK_LABEL(lookup_widget(CpuDlg, "GtkLabel_CpuSpeed")), str); - - strcpy(str,"Features: "); - if(cpucaps.hasMultimediaExtensions) strcat(str,"MMX"); - if(cpucaps.hasStreamingSIMDExtensions) strcat(str,",SSE"); - if(cpucaps.hasStreamingSIMD2Extensions) strcat(str,",SSE2"); - if(cpucaps.hasStreamingSIMD3Extensions) strcat(str,",SSE3"); - if(cpucaps.hasAMD64BitArchitecture) strcat(str,",x86-64"); - gtk_label_set_text(GTK_LABEL(lookup_widget(CpuDlg, "GtkLabel_Features")), str); - - //GtkLabel_CpuVendor - //GtkLabel_Family - //GtkLabel_CpuSpeed - //GtkLabel_Features - gtk_widget_show_all(CpuDlg); - if (Window) gtk_widget_set_sensitive(Window, FALSE); - gtk_main(); -} - -#define FindComboText(combo,list,conf) \ - if (strlen(conf) > 0) { \ - int i; \ - for (i=2;i<255;i+=2) { \ - if (!strcmp(conf, list[i-2])) { \ - gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(combo)->entry), list[i-1]); \ - break; \ - } \ - } \ - } - -#define GetComboText(combo,list,conf) \ - { \ - int i; \ - char *tmp = (char*)gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(combo)->entry)); \ - for (i=2;i<255;i+=2) { \ - if (!strcmp(tmp, list[i-1])) { \ - strcpy(conf, list[i-2]); \ - break; \ - } \ - } \ - } - -void OnConfConf_Ok(GtkButton *button, gpointer user_data) { - GetComboText(GSConfS.Combo, GSConfS.plist, Config.GS) - GetComboText(PAD1ConfS.Combo, PAD1ConfS.plist, Config.PAD1); - GetComboText(PAD2ConfS.Combo, PAD2ConfS.plist, Config.PAD2); - GetComboText(SPU2ConfS.Combo, SPU2ConfS.plist, Config.SPU2); - GetComboText(CDVDConfS.Combo, CDVDConfS.plist, Config.CDVD); - GetComboText(DEV9ConfS.Combo, DEV9ConfS.plist, Config.DEV9); - GetComboText(USBConfS.Combo, USBConfS.plist, Config.USB); - GetComboText(FWConfS.Combo, FWConfS.plist, Config.FW); - GetComboText(BiosConfS.Combo, BiosConfS.plist, Config.Bios); - - SaveConfig(); - - if (confplug == 0) { - ReleasePlugins(); - LoadPlugins(); - } - - needReset = 1; - gtk_widget_destroy(ConfDlg); - if (Window) gtk_widget_set_sensitive(Window, TRUE); - gtk_main_quit(); - confret = 1; -} - -void OnConfConf_Cancel(GtkButton *button, gpointer user_data) { - gtk_widget_destroy(ConfDlg); - if (Window) gtk_widget_set_sensitive(Window, TRUE); - gtk_main_quit(); - confret = 0; -} - -#define ConfPlugin(src, confs, plugin, name) \ - void *drv; \ - src conf; \ - char file[256]; \ - GetComboText(confs.Combo, confs.plist, plugin); \ - strcpy(file, Config.PluginsDir); \ - strcat(file, plugin); \ - drv = SysLoadLibrary(file); \ - getcwd(file, ARRAYSIZE(file)); /* store current dir */ \ - chdir(Config.PluginsDir); /* change dirs so that plugins can find their config file*/ \ - if (drv == NULL) return; \ - conf = (src) SysLoadSym(drv, name); \ - if (SysLibError() == NULL) conf(); \ - chdir(file); /* change back*/ \ - SysCloseLibrary(drv); - -#define TestPlugin(src, confs, plugin, name) \ - void *drv; \ - src conf; \ - int ret = 0; \ - char file[256]; \ - GetComboText(confs.Combo, confs.plist, plugin); \ - strcpy(file, Config.PluginsDir); \ - strcat(file, plugin); \ - drv = SysLoadLibrary(file); \ - if (drv == NULL) return; \ - conf = (src) SysLoadSym(drv, name); \ - if (SysLibError() == NULL) { \ - ret = conf(); \ - if (ret == 0) \ - SysMessage(_("This plugin reports that should work correctly")); \ - else SysMessage(_("This plugin reports that should not work correctly")); \ - } \ - SysCloseLibrary(drv); - -void OnConfConf_GsConf(GtkButton *button, gpointer user_data) { - ConfPlugin(_GSconfigure, GSConfS, Config.GS, "GSconfigure"); -} - -void OnConfConf_GsTest(GtkButton *button, gpointer user_data) { - TestPlugin(_GStest, GSConfS, Config.GS, "GStest"); -} - -void OnConfConf_GsAbout(GtkButton *button, gpointer user_data) { - ConfPlugin(_GSabout, GSConfS, Config.GS, "GSabout"); -} - -void OnConfConf_Pad1Conf(GtkButton *button, gpointer user_data) { - ConfPlugin(_PADconfigure, PAD1ConfS, Config.PAD1, "PADconfigure"); -} - -void OnConfConf_Pad1Test(GtkButton *button, gpointer user_data) { - TestPlugin(_PADtest, PAD1ConfS, Config.PAD1, "PADtest"); -} - -void OnConfConf_Pad1About(GtkButton *button, gpointer user_data) { - ConfPlugin(_PADabout, PAD1ConfS, Config.PAD1, "PADabout"); -} - -void OnConfConf_Pad2Conf(GtkButton *button, gpointer user_data) { - ConfPlugin(_PADconfigure, PAD2ConfS, Config.PAD2, "PADconfigure"); -} - -void OnConfConf_Pad2Test(GtkButton *button, gpointer user_data) { - TestPlugin(_PADtest, PAD2ConfS, Config.PAD2, "PADtest"); -} - -void OnConfConf_Pad2About(GtkButton *button, gpointer user_data) { - ConfPlugin(_PADabout, PAD2ConfS, Config.PAD2, "PADabout"); -} - -void OnConfConf_Spu2Conf(GtkButton *button, gpointer user_data) { - ConfPlugin(_SPU2configure, SPU2ConfS, Config.SPU2, "SPU2configure"); -} - -void OnConfConf_Spu2Test(GtkButton *button, gpointer user_data) { - TestPlugin(_SPU2test, SPU2ConfS, Config.SPU2, "SPU2test"); -} - -void OnConfConf_Spu2About(GtkButton *button, gpointer user_data) { - ConfPlugin(_SPU2about, SPU2ConfS, Config.SPU2, "SPU2about"); -} - -void OnConfConf_CdvdConf(GtkButton *button, gpointer user_data) { - ConfPlugin(_CDVDconfigure, CDVDConfS, Config.CDVD, "CDVDconfigure"); -} - -void OnConfConf_CdvdTest(GtkButton *button, gpointer user_data) { - TestPlugin(_CDVDtest, CDVDConfS, Config.CDVD, "CDVDtest"); -} - -void OnConfConf_CdvdAbout(GtkButton *button, gpointer user_data) { - ConfPlugin(_CDVDabout, CDVDConfS, Config.CDVD, "CDVDabout"); -} - -void OnConfConf_Dev9Conf(GtkButton *button, gpointer user_data) { - ConfPlugin(_DEV9configure, DEV9ConfS, Config.DEV9, "DEV9configure"); -} - -void OnConfConf_Dev9Test(GtkButton *button, gpointer user_data) { - TestPlugin(_DEV9test, DEV9ConfS, Config.DEV9, "DEV9test"); -} - -void OnConfConf_Dev9About(GtkButton *button, gpointer user_data) { - ConfPlugin(_DEV9about, DEV9ConfS, Config.DEV9, "DEV9about"); -} - -void OnConfConf_UsbConf(GtkButton *button, gpointer user_data) { - ConfPlugin(_USBconfigure, USBConfS, Config.USB, "USBconfigure"); -} - -void OnConfConf_UsbTest(GtkButton *button, gpointer user_data) { - TestPlugin(_USBtest, USBConfS, Config.USB, "USBtest"); -} - -void OnConfConf_UsbAbout(GtkButton *button, gpointer user_data) { - ConfPlugin(_USBabout, USBConfS, Config.USB, "USBabout"); -} - -void OnConfConf_FWConf(GtkButton *button, gpointer user_data) { - ConfPlugin(_FWconfigure, FWConfS, Config.FW, "FWconfigure"); -} - -void OnConfConf_FWTest(GtkButton *button, gpointer user_data) { - TestPlugin(_FWtest, FWConfS, Config.FW, "FWtest"); -} - -void OnConfConf_FWAbout(GtkButton *button, gpointer user_data) { - ConfPlugin(_FWabout, FWConfS, Config.FW, "FWabout"); -} - -#define ConfCreatePConf(name, type) \ - type##ConfS.Combo = lookup_widget(ConfDlg, "GtkCombo_" name); \ - gtk_combo_set_popdown_strings(GTK_COMBO(type##ConfS.Combo), type##ConfS.glist); \ - FindComboText(type##ConfS.Combo, type##ConfS.plist, Config.type); \ - -void UpdateConfDlg() { - FindPlugins(); - - ConfCreatePConf("Gs", GS); - ConfCreatePConf("Pad1", PAD1); - ConfCreatePConf("Pad2", PAD2); - ConfCreatePConf("Spu2", SPU2); - ConfCreatePConf("Cdvd", CDVD); - ConfCreatePConf("Dev9", DEV9); - ConfCreatePConf("Usb", USB); - ConfCreatePConf("FW", FW); - ConfCreatePConf("Bios", Bios); -} - -void OnPluginsPath_Ok() { - gchar *File; - - File = (gchar*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(FileSel)); - strcpy(Config.PluginsDir, File); - if (Config.PluginsDir[strlen(Config.PluginsDir)-1] != '/') - strcat(Config.PluginsDir, "/"); - - UpdateConfDlg(); - - gtk_widget_destroy(FileSel); -} - -void OnPluginsPath_Cancel() { - gtk_widget_destroy(FileSel); -} - -void OnConfConf_PluginsPath(GtkButton *button, gpointer user_data) { - GtkWidget *Ok,*Cancel; - - FileSel = gtk_file_selection_new(_("Select Plugins Directory")); - - Ok = GTK_FILE_SELECTION(FileSel)->ok_button; - gtk_signal_connect (GTK_OBJECT(Ok), "clicked", GTK_SIGNAL_FUNC(OnPluginsPath_Ok), NULL); - gtk_widget_show(Ok); - - Cancel = GTK_FILE_SELECTION(FileSel)->cancel_button; - gtk_signal_connect (GTK_OBJECT(Cancel), "clicked", GTK_SIGNAL_FUNC(OnPluginsPath_Cancel), NULL); - gtk_widget_show(Cancel); - - gtk_widget_show(FileSel); - gdk_window_raise(FileSel->window); -} - -void OnBiosPath_Ok() { - gchar *File; - - File = (gchar*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(FileSel)); - strcpy(Config.BiosDir, File); - if (Config.BiosDir[strlen(Config.BiosDir)-1] != '/') - strcat(Config.BiosDir, "/"); - - UpdateConfDlg(); - - gtk_widget_destroy(FileSel); -} - -void OnBiosPath_Cancel() { - gtk_widget_destroy(FileSel); -} - -void OnConfConf_BiosPath(GtkButton *button, gpointer user_data) { - GtkWidget *Ok,*Cancel; - - FileSel = gtk_file_selection_new(_("Select Bios Directory")); - - Ok = GTK_FILE_SELECTION(FileSel)->ok_button; - gtk_signal_connect (GTK_OBJECT(Ok), "clicked", GTK_SIGNAL_FUNC(OnBiosPath_Ok), NULL); - gtk_widget_show(Ok); - - Cancel = GTK_FILE_SELECTION(FileSel)->cancel_button; - gtk_signal_connect (GTK_OBJECT(Cancel), "clicked", GTK_SIGNAL_FUNC(OnBiosPath_Cancel), NULL); - gtk_widget_show(Cancel); - - gtk_widget_show(FileSel); - gdk_window_raise(FileSel->window); -} - -void OnConf_Conf(GtkMenuItem *menuitem, gpointer user_data) { - FindPlugins(); - - ConfDlg = create_ConfDlg(); - gtk_window_set_title(GTK_WINDOW(ConfDlg), _("Configuration")); - - UpdateConfDlg(); - - gtk_widget_show_all(ConfDlg); - if (Window) gtk_widget_set_sensitive(Window, FALSE); - gtk_main(); -} - -GtkWidget *CmdLine; -GtkWidget *ListDV; -GtkListStore *ListDVModel; -GtkWidget *SetPCDlg, *SetPCEntry; -GtkWidget *SetBPADlg, *SetBPAEntry; -GtkWidget *SetBPCDlg, *SetBPCEntry; -GtkWidget *DumpCDlg, *DumpCTEntry, *DumpCFEntry; -GtkWidget *DumpRDlg, *DumpRTEntry, *DumpRFEntry; -GtkWidget *MemWriteDlg, *MemEntry, *DataEntry; -GtkAdjustment *DebugAdj; -static u32 dPC; -static u32 dBPA = -1; -static u32 dBPC = -1; -static char nullAddr[256]; -int DebugMode; // 0 - EE | 1 - IOP - -#include "R3000A.h" -#include "PsxMem.h" - -void UpdateDebugger() { - - char *str; - int i; - DebugAdj->value = (gfloat)dPC/4; - gtk_list_store_clear(ListDVModel); - - for (i=0; i<23; i++) { - GtkTreeIter iter; - u32 *mem; - u32 pc = dPC + i*4; - if (DebugMode) { - mem = (u32*)PSXM(pc); - } else - mem = PSM(pc); - if (mem == NULL) { sprintf(nullAddr, "%8.8lX:\tNULL MEMORY", pc); str = nullAddr; } - else str = disR5900Fasm(*mem, pc); - gtk_list_store_append(ListDVModel, &iter); - gtk_list_store_set(ListDVModel, &iter, 0, str, -1); - - } -} - -void OnDebug_Close(GtkButton *button, gpointer user_data) { - ClosePlugins(); - gtk_widget_destroy(DebugWnd); - gtk_main_quit(); - gtk_widget_set_sensitive(Window, TRUE); -} - -void OnDebug_ScrollChange(GtkAdjustment *adj) { - dPC = (u32)adj->value*4; - dPC&= ~0x3; - - UpdateDebugger(); -} - -void OnSetPC_Ok(GtkButton *button, gpointer user_data) { - char *str = (char*)gtk_entry_get_text(GTK_ENTRY(SetPCEntry)); - - sscanf(str, "%lx", &dPC); - dPC&= ~0x3; - - gtk_widget_destroy(SetPCDlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); - UpdateDebugger(); -} - -void OnSetPC_Cancel(GtkButton *button, gpointer user_data) { - gtk_widget_destroy(SetPCDlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); -} - -void OnDebug_SetPC(GtkButton *button, gpointer user_data) { - SetPCDlg = create_SetPCDlg(); - - SetPCEntry = lookup_widget(SetPCDlg, "GtkEntry_dPC"); - - gtk_widget_show_all(SetPCDlg); - gtk_widget_set_sensitive(DebugWnd, FALSE); - gtk_main(); -} - -void OnSetBPA_Ok(GtkButton *button, gpointer user_data) { - char *str = (char*)gtk_entry_get_text(GTK_ENTRY(SetBPAEntry)); - - sscanf(str, "%lx", &dBPA); - dBPA&= ~0x3; - - gtk_widget_destroy(SetBPADlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); - UpdateDebugger(); -} - -void OnSetBPA_Cancel(GtkButton *button, gpointer user_data) { - gtk_widget_destroy(SetBPADlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); -} - -void OnDebug_SetBPA(GtkButton *button, gpointer user_data) { - SetBPADlg = create_SetBPADlg(); - - SetBPAEntry = lookup_widget(SetBPADlg, "GtkEntry_BPA"); - - gtk_widget_show_all(SetBPADlg); - gtk_widget_set_sensitive(DebugWnd, FALSE); - gtk_main(); -} - -void OnSetBPC_Ok(GtkButton *button, gpointer user_data) { - char *str = (char*)gtk_entry_get_text(GTK_ENTRY(SetBPCEntry)); - - sscanf(str, "%lx", &dBPC); - - gtk_widget_destroy(SetBPCDlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); - UpdateDebugger(); -} - -void OnSetBPC_Cancel(GtkButton *button, gpointer user_data) { - gtk_widget_destroy(SetBPCDlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); -} - -void OnDebug_SetBPC(GtkButton *button, gpointer user_data) { - SetBPCDlg = create_SetBPCDlg(); - - SetBPCEntry = lookup_widget(SetBPCDlg, "GtkEntry_BPC"); - - gtk_widget_show_all(SetBPCDlg); - gtk_widget_set_sensitive(DebugWnd, FALSE); - gtk_main(); -} - -void OnDebug_ClearBPs(GtkButton *button, gpointer user_data) { - dBPA = -1; - dBPC = -1; -} - -void OnDumpC_Ok(GtkButton *button, gpointer user_data) { - FILE *f; - char *str = (char*)gtk_entry_get_text(GTK_ENTRY(DumpCFEntry)); - u32 addrf, addrt; - - sscanf(str, "%lx", &addrf); addrf&=~0x3; - str = (char*)gtk_entry_get_text(GTK_ENTRY(DumpCTEntry)); - sscanf(str, "%lx", &addrt); addrt&=~0x3; - - f = fopen("dump.txt", "w"); - if (f == NULL) return; - - while (addrf != addrt) { - u32 *mem; - - if (DebugMode) { - mem = PSXM(addrf); - } else { - mem = PSM(addrf); - } - if (mem == NULL) { sprintf(nullAddr, "%8.8lX:\tNULL MEMORY", addrf); str = nullAddr; } - else str = disR5900Fasm(*mem, addrf); - - fprintf(f, "%s\n", str); - addrf+= 4; - } - - fclose(f); - - gtk_widget_destroy(DumpCDlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); -} - -void OnDumpC_Cancel(GtkButton *button, gpointer user_data) { - gtk_widget_destroy(DumpCDlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); -} - -void OnDebug_DumpCode(GtkButton *button, gpointer user_data) { - DumpCDlg = create_DumpCDlg(); - - DumpCFEntry = lookup_widget(DumpCDlg, "GtkEntry_DumpCF"); - DumpCTEntry = lookup_widget(DumpCDlg, "GtkEntry_DumpCT"); - - gtk_widget_show_all(DumpCDlg); - gtk_widget_set_sensitive(DebugWnd, FALSE); - gtk_main(); -} - -void OnDumpR_Ok(GtkButton *button, gpointer user_data) { - FILE *f; - char *str = (char*)gtk_entry_get_text(GTK_ENTRY(DumpRFEntry)); - u32 addrf, addrt; - - sscanf(str, "%lx", &addrf); addrf&=~0x3; - str = (char*)gtk_entry_get_text(GTK_ENTRY(DumpRTEntry)); - sscanf(str, "%lx", &addrt); addrt&=~0x3; - - f = fopen("dump.txt", "w"); - if (f == NULL) return; - - while (addrf != addrt) { - u32 *mem; - u32 out; - - if (DebugMode) { - mem = PSXM(addrf); - } else { - mem = PSM(addrf); - } - if (mem == NULL) out = 0; - else out = *mem; - - fwrite(&out, 4, 1, f); - addrf+= 4; - } - - fclose(f); - - gtk_widget_destroy(DumpRDlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); -} - -void OnDumpR_Cancel(GtkButton *button, gpointer user_data) { - gtk_widget_destroy(DumpRDlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); -} - -void OnDebug_RawDump(GtkButton *button, gpointer user_data) { - DumpRDlg = create_DumpRDlg(); - - DumpRFEntry = lookup_widget(DumpRDlg, "GtkEntry_DumpRF"); - DumpRTEntry = lookup_widget(DumpRDlg, "GtkEntry_DumpRT"); - - gtk_widget_show_all(DumpRDlg); - gtk_widget_set_sensitive(DebugWnd, FALSE); - gtk_main(); -} - -void OnDebug_Step(GtkButton *button, gpointer user_data) { - Cpu->Step(); - dPC = cpuRegs.pc; - UpdateDebugger(); -} - -void OnDebug_Skip(GtkButton *button, gpointer user_data) { - cpuRegs.pc+= 4; - dPC = cpuRegs.pc; - UpdateDebugger(); -} - -int HasBreakPoint(u32 pc) { - if (pc == dBPA) return 1; - if (DebugMode == 0) { - if ((cpuRegs.cycle - 10) <= dBPC && - (cpuRegs.cycle + 10) >= dBPC) return 1; - } else { - if ((psxRegs.cycle - 100) <= dBPC && - (psxRegs.cycle + 100) >= dBPC) return 1; - } - return 0; -} - -void OnDebug_Go(GtkButton *button, gpointer user_data) { - for (;;) { - if (HasBreakPoint(cpuRegs.pc)) break; - Cpu->Step(); - } - dPC = cpuRegs.pc; - UpdateDebugger(); -} - -void OnDebug_Log(GtkButton *button, gpointer user_data) { -#ifdef PCSX2_DEVBUILD - Log = 1 - Log; -#endif -} - -void OnDebug_EEMode(GtkToggleButton *togglebutton, gpointer user_data) { - DebugMode = 0; - dPC = cpuRegs.pc; - UpdateDebugger(); -} - -void OnDebug_IOPMode(GtkToggleButton *togglebutton, gpointer user_data) { - DebugMode = 1; - dPC = psxRegs.pc; - UpdateDebugger(); -} - -void OnMemWrite32_Ok(GtkButton *button, gpointer user_data) { - char *mem = (char*)gtk_entry_get_text(GTK_ENTRY(MemEntry)); - char *data = (char*)gtk_entry_get_text(GTK_ENTRY(DataEntry)); - - printf("memWrite32: %s, %s\n", mem, data); - memWrite32(strtol(mem, (char**)NULL, 0), strtol(data, (char**)NULL, 0)); - - gtk_widget_destroy(MemWriteDlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); -} - -void OnMemWrite32_Cancel(GtkButton *button, gpointer user_data) { - gtk_widget_destroy(MemWriteDlg); - gtk_main_quit(); - gtk_widget_set_sensitive(DebugWnd, TRUE); -} - -void OnDebug_memWrite32(GtkButton *button, gpointer user_data) { - MemWriteDlg = create_MemWrite32(); - - MemEntry = lookup_widget(MemWriteDlg, "GtkEntry_Mem"); - DataEntry = lookup_widget(MemWriteDlg, "GtkEntry_Data"); - - gtk_widget_show_all(MemWriteDlg); - gtk_widget_set_sensitive(DebugWnd, FALSE); - gtk_main(); - - UpdateDebugger(); -} - -void OnDebug_Debugger(GtkMenuItem *menuitem, gpointer user_data) { - GtkWidget *scroll; - GtkCellRenderer *renderer; - GtkTreeViewColumn *column; - - if (OpenPlugins(NULL) == -1) return; - if (needReset) { SysReset(); needReset = 0; } - - if (!efile) - efile=GetPS2ElfName(elfname); - if (efile) - loadElfFile(elfname); - efile=0; - - dPC = cpuRegs.pc; - - DebugWnd = create_DebugWnd(); - - ListDVModel = gtk_list_store_new (1, G_TYPE_STRING); - ListDV = lookup_widget(DebugWnd, "GtkList_DisView"); - gtk_tree_view_set_model(GTK_TREE_VIEW(ListDV), GTK_TREE_MODEL(ListDVModel)); - renderer = gtk_cell_renderer_text_new (); - column = gtk_tree_view_column_new_with_attributes ("heading", renderer, - "text", 0, - NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (ListDV), column); - - scroll = lookup_widget(DebugWnd, "GtkVScrollbar_VList"); - - DebugAdj = GTK_RANGE(scroll)->adjustment; - DebugAdj->lower = (gfloat)0x00000000/4; - DebugAdj->upper = (gfloat)0xffffffff/4; - DebugAdj->step_increment = (gfloat)1; - DebugAdj->page_increment = (gfloat)20; - DebugAdj->page_size = (gfloat)23; - - gtk_signal_connect(GTK_OBJECT(DebugAdj), - "value_changed", GTK_SIGNAL_FUNC(OnDebug_ScrollChange), - NULL); - - UpdateDebugger(); - - gtk_widget_show_all(DebugWnd); - gtk_widget_set_sensitive(Window, FALSE); - gtk_main(); -} - -void OnLogging_Ok(GtkButton *button, gpointer user_data) { - GtkWidget *Btn; - char str[32]; - int i, ret; - -#ifdef PCSX2_DEVBUILD - for (i=0; i<17; i++) { - sprintf(str, "Log%d", i); - Btn = lookup_widget(LogDlg, str); - ret = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Btn)); - if (ret) varLog|= 1<>8)&0xff ,version&0xff, (version>>24)&0xff); \ - type##ConfS.plugins+=2; \ - strcpy(type##ConfS.plist[type##ConfS.plugins-1], name); \ - strcpy(type##ConfS.plist[type##ConfS.plugins-2], ent->d_name); \ - type##ConfS.glist = g_list_append(type##ConfS.glist, type##ConfS.plist[type##ConfS.plugins-1]); \ -} - -void FindPlugins() { - DIR *dir; - struct dirent *ent; - void *Handle; - char plugin[256],name[256]; - - GSConfS.plugins = 0; CDVDConfS.plugins = 0; DEV9ConfS.plugins = 0; - PAD1ConfS.plugins = 0; PAD2ConfS.plugins = 0; SPU2ConfS.plugins = 0; - USBConfS.plugins = 0; FWConfS.plugins = 0; BiosConfS.plugins = 0; - GSConfS.glist = NULL; CDVDConfS.glist = NULL; DEV9ConfS.glist = NULL; - PAD1ConfS.glist = NULL; PAD2ConfS.glist = NULL; SPU2ConfS.glist = NULL; - USBConfS.glist = NULL; FWConfS.glist = NULL; BiosConfS.glist = NULL; - - dir = opendir(Config.PluginsDir); - if (dir == NULL) { - SysMessage(_("Could not open '%s' directory"), Config.PluginsDir); - return; - } - while ((ent = readdir(dir)) != NULL) { - u32 version; - u32 type; - - sprintf (plugin, "%s%s", Config.PluginsDir, ent->d_name); - - if (strstr(plugin, ".so") == NULL) continue; - Handle = dlopen(plugin, RTLD_NOW); - if (Handle == NULL) { - printf("%s\n", dlerror()); continue; - } - - PS2EgetLibType = (_PS2EgetLibType) dlsym(Handle, "PS2EgetLibType"); - PS2EgetLibName = (_PS2EgetLibName) dlsym(Handle, "PS2EgetLibName"); - PS2EgetLibVersion2 = (_PS2EgetLibVersion2) dlsym(Handle, "PS2EgetLibVersion2"); - if (PS2EgetLibType == NULL || PS2EgetLibName == NULL || PS2EgetLibVersion2 == NULL) - continue; - type = PS2EgetLibType(); - - if (type & PS2E_LT_GS) { - version = PS2EgetLibVersion2(PS2E_LT_GS); - if (((version >> 16)&0xff) == PS2E_GS_VERSION) { - ComboAddPlugin(GS); - } - else - SysPrintf("Plugin %s: Version %x != %x\n", plugin, (version >> 16)&0xff, PS2E_GS_VERSION); - } - if (type & PS2E_LT_PAD) { - _PADquery query; - - query = (_PADquery)dlsym(Handle, "PADquery"); - version = PS2EgetLibVersion2(PS2E_LT_PAD); - if (((version >> 16)&0xff) == PS2E_PAD_VERSION && query) { - if (query() & 0x1) - ComboAddPlugin(PAD1); - if (query() & 0x2) - ComboAddPlugin(PAD2); - } else SysPrintf("Plugin %s: Version %x != %x\n", plugin, (version >> 16)&0xff, PS2E_PAD_VERSION); - } - if (type & PS2E_LT_SPU2) { - version = PS2EgetLibVersion2(PS2E_LT_SPU2); - if (((version >> 16)&0xff) == PS2E_SPU2_VERSION) { - ComboAddPlugin(SPU2); - } else SysPrintf("Plugin %s: Version %x != %x\n", plugin, (version >> 16)&0xff, PS2E_SPU2_VERSION); - } - if (type & PS2E_LT_CDVD) { - version = PS2EgetLibVersion2(PS2E_LT_CDVD); - if (((version >> 16)&0xff) == PS2E_CDVD_VERSION) { - ComboAddPlugin(CDVD); - } else SysPrintf("Plugin %s: Version %x != %x\n", plugin, (version >> 16)&0xff, PS2E_CDVD_VERSION); - } - if (type & PS2E_LT_DEV9) { - version = PS2EgetLibVersion2(PS2E_LT_DEV9); - if (((version >> 16)&0xff) == PS2E_DEV9_VERSION) { - ComboAddPlugin(DEV9); - } else SysPrintf("DEV9Plugin %s: Version %x != %x\n", plugin, (version >> 16)&0xff, PS2E_DEV9_VERSION); - } - if (type & PS2E_LT_USB) { - version = PS2EgetLibVersion2(PS2E_LT_USB); - if (((version >> 16)&0xff) == PS2E_USB_VERSION) { - ComboAddPlugin(USB); - } else SysPrintf("USBPlugin %s: Version %x != %x\n", plugin, (version >> 16)&0xff, PS2E_USB_VERSION); - } - if (type & PS2E_LT_FW) { - version = PS2EgetLibVersion2(PS2E_LT_FW); - if (((version >> 16)&0xff) == PS2E_FW_VERSION) { - ComboAddPlugin(FW); - } else SysPrintf("FWPlugin %s: Version %x != %x\n", plugin, (version >> 16)&0xff, PS2E_FW_VERSION); - } - } - closedir(dir); - - dir = opendir(Config.BiosDir); - if (dir == NULL) { - SysMessage(_("Could not open '%s' directory"), Config.BiosDir); - return; - } - - while ((ent = readdir(dir)) != NULL) { - struct stat buf; - char description[50]; //2002-09-28 (Florin) - - sprintf (plugin, "%s%s", Config.BiosDir, ent->d_name); - if (stat(plugin, &buf) == -1) continue; -// if (buf.st_size < (1024*512)) continue; - if (buf.st_size > (1024*4096)) continue; //2002-09-28 (Florin) - if (!IsBIOS(ent->d_name, description)) continue;//2002-09-28 (Florin) - - BiosConfS.plugins+=2; - snprintf(BiosConfS.plist[BiosConfS.plugins-1], sizeof(BiosConfS.plist[0]), "%s (", description); - strncat(BiosConfS.plist[BiosConfS.plugins-1], ent->d_name, min(sizeof(BiosConfS.plist[0]-2), strlen(ent->d_name))); - strcat(BiosConfS.plist[BiosConfS.plugins-1], ")"); - strcpy(BiosConfS.plist[BiosConfS.plugins-2], ent->d_name); - BiosConfS.glist = g_list_append(BiosConfS.glist, BiosConfS.plist[BiosConfS.plugins-1]); - } - closedir(dir); -} - -GtkWidget *MsgDlg; - -void OnMsg_Ok() { - gtk_widget_destroy(MsgDlg); - gtk_main_quit(); -} - -void SysMessage(char *fmt, ...) { - GtkWidget *Ok,*Txt; - GtkWidget *Box,*Box1; - va_list list; - char msg[512]; - - va_start(list, fmt); - vsprintf(msg, fmt, list); - va_end(list); - - if (msg[strlen(msg)-1] == '\n') msg[strlen(msg)-1] = 0; - - if (!UseGui) { printf("%s\n",msg); return; } - - MsgDlg = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_position(GTK_WINDOW(MsgDlg), GTK_WIN_POS_CENTER); - gtk_window_set_title(GTK_WINDOW(MsgDlg), _("PCSX2 Msg")); - gtk_container_set_border_width(GTK_CONTAINER(MsgDlg), 5); - - Box = gtk_vbox_new(5, 0); - gtk_container_add(GTK_CONTAINER(MsgDlg), Box); - gtk_widget_show(Box); - - Txt = gtk_label_new(msg); - - gtk_box_pack_start(GTK_BOX(Box), Txt, FALSE, FALSE, 5); - gtk_widget_show(Txt); - - Box1 = gtk_hbutton_box_new(); - gtk_box_pack_start(GTK_BOX(Box), Box1, FALSE, FALSE, 0); - gtk_widget_show(Box1); - - Ok = gtk_button_new_with_label(_("Ok")); - gtk_signal_connect (GTK_OBJECT(Ok), "clicked", GTK_SIGNAL_FUNC(OnMsg_Ok), NULL); - gtk_container_add(GTK_CONTAINER(Box1), Ok); - GTK_WIDGET_SET_FLAGS(Ok, GTK_CAN_DEFAULT); - gtk_widget_show(Ok); - gtk_widget_grab_focus(Ok); - - gtk_widget_show(MsgDlg); - - gtk_main(); -} - -void -on_patch_browser1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ -} - -void -on_patch_finder2_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ -} - -void -on_enable_console1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - Config.PsxOut=(int)gtk_check_menu_item_get_active((GtkCheckMenuItem*)menuitem); - SaveConfig(); -} - -void -on_enable_patches1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - Config.Patch=(int)gtk_check_menu_item_get_active((GtkCheckMenuItem*)menuitem); - SaveConfig(); -} diff --git a/pcsx2v2/Linux/Linux.h b/pcsx2v2/Linux/Linux.h deleted file mode 100644 index 816476c..0000000 --- a/pcsx2v2/Linux/Linux.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Pcsx2 - Pc Ps2 Emulator - * Copyright (C) 2002-2008 Pcsx2 Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __LINUX_H__ -#define __LINUX_H__ - -#include "Common.h" - -typedef struct { - char lang[256]; -} _langs; - -_langs *langs; -unsigned int langsMax; - -extern int UseGui; -char cfgfile[256]; - -int LoadConfig(); -void SaveConfig(); - -void StartGui(); -void RunGui(); - -int Pcsx2Configure(); - -void InitLanguages(); -char *GetLanguageNext(); -void CloseLanguages(); -void ChangeLanguage(char *lang); - -#endif /* __LINUX_H__ */ diff --git a/pcsx2v2/Linux/LnxMain.cpp b/pcsx2v2/Linux/LnxMain.cpp deleted file mode 100644 index e32a92a..0000000 --- a/pcsx2v2/Linux/LnxMain.cpp +++ /dev/null @@ -1,621 +0,0 @@ -/* Pcsx2 - Pc Ps2 Emulator - * Copyright (C) 2002-2008 Pcsx2 Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include -#include -#include -#include -#include -#include -#include -//#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#include "Common.h" -#include "PsxCommon.h" -#include "Linux.h" - -#include "../Paths.h" - -int UseGui = 1; -int needReset = 1; -int RunExe = 0; -extern int g_SaveGSStream; -extern int g_ZeroGSOptions; - -#ifdef PCSX2_DEVBUILD - -TESTRUNARGS g_TestRun; -char* g_pRunGSState = NULL; - -#endif - -int main(int argc, char *argv[]) { - char *file = NULL; - char elfname[256]; - char *lang; - int runcd=0; - int efile = 0; - char* g_pRunGSState = NULL; - int i; - struct stat buf; - -#ifdef PCSX2_VIRTUAL_MEM - void* pmem = mmap(PS2MEM_BASE, 0x40000000, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); - - if( pmem != PS2MEM_BASE ) { - SysMessage("Failed to allocate virtual memory %x-%x. Use TLB build", - PS2MEM_BASE, PS2MEM_BASE+0x40000000); - return -1; - } -#endif - - -#ifdef ENABLE_NLS - setlocale(LC_ALL, ""); - bindtextdomain(PACKAGE, "Langs"); - textdomain(PACKAGE); -#endif - - printf("\n"); - mkdir(CONFIG_DIR, 0755); - - strcpy(cfgfile, CONFIG_DIR "/pcsx2.cfg"); - -#ifdef PCSX2_DEVBUILD - memset(&g_TestRun, 0, sizeof(g_TestRun)); -#endif - - i = 1; - while(i < argc) { - char* token = argv[i++]; - - if( stricmp(token, "-help") == 0 || stricmp(token, "--help") == 0 || stricmp(token, "-h") == 0 ) { - char* phelpmsg = - "\tpcsx2 [options] [file]\n\n" - "-cfg [file] {configuration file}\n" - "-efile [efile] {0 - reset, 1 - runcd (default), 2 - loadelf}\n" - "-help {display this help file}\n" - "-nogui {Don't use gui when launching}\n" - "-loadgs [file} {Loads a gsstate}\n" - "\n" -#ifdef PCSX2_DEVBUILD - "Testing Options: \n" - "\t-frame [frame] {game will run up to this frame before exiting}\n" - "\t-image [name] {path and base name of image (do not include the .ext)}\n" - "\t-jpg {save images to jpg format}\n" - "\t-log [name] {log path to save log file in}\n" - "\t-logopt [hex] {log options in hex (see debug.h) }\n" - "\t-numimages [num] {after hitting frame, this many images will be captures every 20 frames}\n" - "\t-test {Triggers testing mode (only for dev builds)}\n" - "\n" -#endif - - "Load Plugins:\n" - "\t-cdvd [dllpath] {specify the dll load path of the CDVD plugin}\n" - "\t-gs [dllpath] {specify the dll load path of the GS plugin}\n" - "-pad [tsxcal] {specify to hold down on the triangle, square, circle, x, start, select buttons}\n" - "\t-spu [dllpath] {specify the dll load path of the SPU2 plugin}\n" - "\n"; - - //SysMessage(phelpmsg); - return 0; - } - else if( stricmp(token, "-efile") == 0 ) { - token = argv[i++]; - if( token != NULL ) { - efile = atoi(token); - } - } - else if( stricmp(token, "-nogui") == 0 ) { - UseGui = 0; - } - else if( stricmp(token, "-loadgs") == 0 ) { - g_pRunGSState = argv[i++]; - } -#ifdef PCSX2_DEVBUILD - else if( stricmp(token, "-image") == 0 ) { - g_TestRun.pimagename = argv[i++]; - } - else if( stricmp(token, "-log") == 0 ) { - g_TestRun.plogname = argv[i++]; - } - else if( stricmp(token, "-logopt") == 0 ) { - token = argv[i++]; - if( token != NULL ) { - if( token[0] == '0' && token[1] == 'x' ) token += 2; - sscanf(token, "%x", &varLog); - } - } - else if( stricmp(token, "-frame") == 0 ) { - token = argv[i++]; - if( token != NULL ) { - g_TestRun.frame = atoi(token); - } - } - else if( stricmp(token, "-numimages") == 0 ) { - token = argv[i++]; - if( token != NULL ) { - g_TestRun.numimages = atoi(token); - } - } - else if( stricmp(token, "-jpg") == 0 ) { - g_TestRun.jpgcapture = 1; - } - else if( stricmp(token, "-gs") == 0 ) { - token = argv[i++]; - g_TestRun.pgsdll = token; - } - else if( stricmp(token, "-cdvd") == 0 ) { - token = argv[i++]; - g_TestRun.pcdvddll = token; - } - else if( stricmp(token, "-spu") == 0 ) { - token = argv[i++]; - g_TestRun.pspudll = token; - } - else if( stricmp(token, "-test") == 0 ) { - g_TestRun.enabled = 1; - } -#endif - else if( stricmp(token, "-pad") == 0 ) { - token = argv[i++]; - printf("-pad ignored\n"); - } - else if( stricmp(token, "-loadgs") == 0 ) { - token = argv[i++]; - g_pRunGSState = token; - } - else { - file = token; - printf("opening file %s\n", file); - } - } - -#ifdef PCSX2_DEVBUILD - g_TestRun.efile = efile; - g_TestRun.ptitle = file; -#endif - - if (LoadConfig() == -1) { - - if (UseGui) gtk_init(NULL, NULL); - - memset(&Config, 0, sizeof(Config)); - strcpy(Config.BiosDir, DEFAULT_BIOS_DIR "/"); - strcpy(Config.PluginsDir, DEFAULT_PLUGINS_DIR "/"); - Config.Patch = 1; - Config.Options = PCSX2_EEREC|PCSX2_VU0REC|PCSX2_VU1REC|PCSX2_COP2REC; - - SysMessage(_("Pcsx2 needs to be configured")); - Pcsx2Configure(); - - return 0; - } - - // make gtk thread safe if using MTGS - if( CHECK_MULTIGS ) { - g_thread_init(NULL); - gdk_threads_init(); - } - - if (UseGui) gtk_init(NULL, NULL); - - if (Config.Lang[0] == 0) { - strcpy(Config.Lang, "en"); - } - - langs = (_langs*)malloc(sizeof(_langs)); - strcpy(langs[0].lang, "en"); - InitLanguages(); i=1; - while ((lang = GetLanguageNext()) != NULL) { - langs = (_langs*)realloc(langs, sizeof(_langs)*(i+1)); - strcpy(langs[i].lang, lang); - i++; - } - CloseLanguages(); - langsMax = i; - - if( Config.PsxOut ) { - // output the help commands - SysPrintf("\tF1 - save state\n"); - SysPrintf("\t(Shift +) F2 - cycle states\n"); - SysPrintf("\tF3 - load state\n"); - -#ifdef PCSX2_DEVBUILD - SysPrintf("\tF10 - dump performance counters\n"); - SysPrintf("\tF11 - save GS state\n"); - SysPrintf("\tF12 - dump hardware registers\n"); -#endif - } - - if (SysInit() == -1) return 1; - -#ifdef PCSX2_DEVBUILD - if( g_pRunGSState ) { - LoadGSState(g_pRunGSState); - SysClose(); - return 0; - } -#endif - - if (UseGui&&file==NULL) { - StartGui(); - return 0; - } - - if (OpenPlugins(file) == -1) { - return -1; - } - SysReset(); - - cpuExecuteBios(); - if (file) - strcpy(elfname, file); - if (!efile) - efile=GetPS2ElfName(elfname); - loadElfFile(elfname); - - if( GSsetGameCRC != NULL ) - GSsetGameCRC(ElfCRC, g_ZeroGSOptions); - - Cpu->Execute(); - - return 0; -} - -DIR *dir; - -void InitLanguages() { - dir = opendir(LANGS_DIR); -} - -char *GetLanguageNext() { - struct dirent *ent; - - if (dir == NULL) return NULL; - for (;;) { - ent = readdir(dir); - if (ent == NULL) return NULL; - - if (!strcmp(ent->d_name, ".")) continue; - if (!strcmp(ent->d_name, "..")) continue; - break; - } - - return ent->d_name; -} - -void CloseLanguages() { - if (dir) closedir(dir); -} - -void ChangeLanguage(char *lang) { - strcpy(Config.Lang, lang); - SaveConfig(); - LoadConfig(); -} - -void KeyEvent(keyEvent* ev) { - char Text[256]; - int ret; - static int shift = 0; - - if (ev == NULL) - return; - - if( GSkeyEvent != NULL ) - GSkeyEvent(ev); - - if( ev->event == KEYPRESS ) { - if( ev->key == XK_Shift_L || ev->key == XK_Shift_R ) - shift = 1; - } - else { - if (ev->event == KEYRELEASE) { - if( ev->key == XK_Shift_L || ev->key == XK_Shift_R ) - shift = 0; - } - - return; - } - - switch (ev->key) { - case XK_F1: ProcessFKeys(1, shift); break; - case XK_F2: ProcessFKeys(2, shift); break; - case XK_F3: ProcessFKeys(3, shift); break; - case XK_F4: ProcessFKeys(4, shift); break; - case XK_F5: ProcessFKeys(5, shift); break; - case XK_F6: ProcessFKeys(6, shift); break; - case XK_F7: ProcessFKeys(7, shift); break; - case XK_F8: ProcessFKeys(8, shift); break; - case XK_F9: ProcessFKeys(9, shift); break; - case XK_F10: ProcessFKeys(10, shift); break; - case XK_F11: ProcessFKeys(11, shift); break; - case XK_F12: ProcessFKeys(12, shift); break; - - case XK_Escape: - signal(SIGINT, SIG_DFL); - signal(SIGPIPE, SIG_DFL); - -#ifdef PCSX2_DEVBUILD - if( g_SaveGSStream >= 3 ) { - // gs state - g_SaveGSStream = 4; - break; - } -#endif - - ClosePlugins(); - if (!UseGui) - exit(0); - RunGui(); - break; - default: - GSkeyEvent(ev); - break; - } -} - -int SysInit() { - mkdir(SSTATES_DIR, 0755); - mkdir(MEMCARDS_DIR, 0755); - -#ifdef EMU_LOG - mkdir(LOGS_DIR, 0755); - -#ifdef PCSX2_DEVBUILD - if( g_TestRun.plogname != NULL ) - emuLog = fopen(g_TestRun.plogname, "w"); - if( emuLog == NULL ) - emuLog = fopen(LOGS_DIR "/emuLog.txt","wb"); -#endif - - if( emuLog != NULL ) - setvbuf(emuLog, NULL, _IONBF, 0); -#endif - - if(cpuInit() == -1 ) - return -1; - - while (LoadPlugins() == -1) { - if (Pcsx2Configure() == 0) - exit(1); - } - - return 0; -} - -void SysReset() { - cpuReset(); -} - -void SysClose() { - cpuShutdown(); - ReleasePlugins(); - - if (emuLog != NULL) { - fclose(emuLog); - emuLog = NULL; - } -} - -void SysPrintf(char *fmt, ...) { - va_list list; - char msg[512]; - char* ptr, *src; - int len, i, j, s; - - va_start(list, fmt); - vsprintf(msg, fmt, list); - va_end(list); - - if (Config.PsxOut == 0) { -#ifdef EMU_LOG -#ifndef LOG_STDOUT - if (emuLog != NULL && !(varLog & 0x80000000)) { - fprintf(emuLog, "%s", msg); - } -#endif -#endif - return; - } - - // due to various linux ways of writing lines, convert all \r\n to \n -// src = msg; -// while( (ptr = strstr(src, "\r\n")) != NULL ) { -// ptr[0] = 0; -// printf("%s\n", src); -// src = ptr+2; -// } -// -// if( src[0] != 0 ) -// printf("%s", src); - printf("%s", msg); - -#ifdef EMU_LOG -#ifndef LOG_STDOUT - if (emuLog != NULL && !(varLog & 0x80000000)) { - ptr = msg; len = strlen(msg); - for (i=0, j=0; ipname = (char*)malloc(20); - sprintf(pblock->pname, "/pcsx2_shm%d", s_nShmCounter++); - shm_unlink(pblock->pname); // unlink to make sure one can be created - pblock->fd = shm_open(pblock->pname, O_RDWR|O_CREAT, 0); - - if( pblock->fd < 0 ) { - perror("shm_open failed"); - SysMessage("Failed to create shared memory object %s\n", pblock->pname); - return -1; - } - - if( ftruncate(fd, size) < 0 ) { - perror("ftruncate failed"); - SysMessage("Failed to allocate 0x%x bytes to shm\n", size); - } - - pblock->size = size; - - return 0; -} - -void SysPhysicalFree(PSMEMORYBLOCK* pblock) -{ - assert( pblock != NULL ); - if( pblock->fd ) - close(pblock->fd); - if( pblock->pname ) { - shm_unlink(pblock->pname); - free(pblock->pname); - } - memset(pblock, 0, sizeof(PSMEMORYBLOCK)); -} - -int SysVirtualPhyAlloc(void* base, u32 size, PSMEMORYBLOCK* pblock) -{ - void* pmem; - assert(pblock != NULL && pblock->fd >= 0 && pblock->size >= size ); - pmem = mmap(base, size, PROT_READ|PROT_WRITE, MAP_SHARED, pblock->fd, 0); - - if( pmem != base ) { - - if( pmem == (void*)-1 ) { - munmap(base, size); - } - - SysPrintf("Failed to map memory at 0x%x of size 0x%x with shm %s\n", (uptr)base, (uptr)size, pblock->pname); - return -1; - } - - return 0; -} - -void SysVirtualFree(void* lpMemReserved, u32 size) -{ - if( munmap(lpMemReserved, size) < 0 ) - SysPrintf("Failed to unmap %x\n", lpMemReserved); -} - - -int SysMapUserPhysicalPages(void* Addr, uptr NumPages, PSMEMORYBLOCK* pblock, int pageoffset) -{ - void* pmem; - if( pblock == NULL ) { - // unmap - if( munmap(base, size) < 0 ) { - SysPrintf("SysMapUserPhysicalPages: Failed to unmap %x\n", Addr); - return 0; - } - } - else { - // map - pmem = mmap(Addr, NumPages*s_nPageSize, PROT_READ|PROT_WRITE, MAP_SHARED, pblock->fd, pageoffset*s_nPageSize); - if( pmem != base ) { - SysPrintf("SysMapUserPhysicalPages: Failed to map 0x%x, size=0x%x, offset=0x%x\n", - Addr, NumPages*s_nPageSize, pageoffset*s_nPageSize); - return 0; - } - } - - return 1; -} - -#endif diff --git a/pcsx2v2/Linux/Makefile.am b/pcsx2v2/Linux/Makefile.am deleted file mode 100644 index 84abfcf..0000000 --- a/pcsx2v2/Linux/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -INCLUDES = $(shell pkg-config --cflags gtk+-2.0) -I@srcdir@/../ - -bin_PROGRAMS = pcsx2 - -# the application source, library search path, and link libraries -pcsx2_SOURCES = Config.c interface.c GtkGui.c LnxMain.c support.c - -pcsx2_LDFLAGS = - -pcsx2_DEPENDENCIES = ../libpcsx2.a ../IPU/libIPU.a ../IPU/mpeg2lib/libmpeg2IPU.a ../RDebug/libRDebug.a ../tinyxml/libtinyxml.a - -pcsx2_LDADD = ../libpcsx2.a ../IPU/libIPU.a ../IPU/mpeg2lib/libmpeg2IPU.a ../RDebug/libRDebug.a ../tinyxml/libtinyxml.a - - -if RECBUILD -pcsx2_LDADD += ../x86/libx86recomp.a ../x86/ix86/libix86.a -pcsx2_DEPENDENCIES += ../x86/libx86recomp.a ../x86/ix86/libix86.a -endif - -pcsx2_DEPENDENCIES += ../DebugTools/libDebugTools.a -pcsx2_LDADD += ../DebugTools/libDebugTools.a \ No newline at end of file diff --git a/pcsx2v2/Linux/buildgui.sh b/pcsx2v2/Linux/buildgui.sh deleted file mode 100644 index ef9beeb..0000000 --- a/pcsx2v2/Linux/buildgui.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# Pcsx2 - Pc Ps2 Emulator -# Copyright (C) 2002-2008 Pcsx2 Team -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA -# -# builds the GUI C classes -mkdir temp -cp pcsx2.glade temp/ -cd temp -glade-2 --write-source pcsx2.glade -rm src/main.c -cp src/*.h src/*.c ../ -cd .. -/bin/rm -rf temp diff --git a/pcsx2v2/Linux/callbacks.h b/pcsx2v2/Linux/callbacks.h deleted file mode 100644 index 83aabc0..0000000 --- a/pcsx2v2/Linux/callbacks.h +++ /dev/null @@ -1,403 +0,0 @@ -/* Pcsx2 - Pc Ps2 Emulator - * Copyright (C) 2002-2008 Pcsx2 Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ -#include - - -void -OnDestroy (GtkObject *object, - gpointer user_data); - -void -OnFile_RunCD (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnFile_LoadElf (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_Load1 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_Load2 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_Load3 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_Load4 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_Load5 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_LoadOther (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_Save1 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_Save2 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_Save3 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_Save4 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_Save5 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnStates_SaveOther (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnFile_Exit (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnEmu_Run (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnEmu_Reset (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnEmu_Arguments (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnConf_Conf (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnConf_Gs (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnConf_Pads (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnConf_Spu2 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnConf_Cdvd (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnConf_Dev9 (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnConf_Usb (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnConf_Fw (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnConf_Cpu (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_patch_browser1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_patch_finder2_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_enable_console1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_enable_patches1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnDebug_Debugger (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnDebug_Logging (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnHelp_About (GtkMenuItem *menuitem, - gpointer user_data); - -void -OnHelpAbout_Ok (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Pad2Conf (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Pad2Test (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Pad2About (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Pad1Conf (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Pad1Test (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Pad1About (GtkButton *button, - gpointer user_data); - -void -OnConfConf_GsConf (GtkButton *button, - gpointer user_data); - -void -OnConfConf_GsTest (GtkButton *button, - gpointer user_data); - -void -OnConfConf_GsAbout (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Spu2Conf (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Spu2Test (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Spu2About (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Dev9Conf (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Dev9Test (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Dev9About (GtkButton *button, - gpointer user_data); - -void -OnConfConf_CdvdConf (GtkButton *button, - gpointer user_data); - -void -OnConfConf_CdvdTest (GtkButton *button, - gpointer user_data); - -void -OnConfConf_CdvdAbout (GtkButton *button, - gpointer user_data); - -void -OnConfConf_UsbConf (GtkButton *button, - gpointer user_data); - -void -OnConfConf_UsbTest (GtkButton *button, - gpointer user_data); - -void -OnConfConf_UsbAbout (GtkButton *button, - gpointer user_data); - -void -OnConfConf_FWConf (GtkButton *button, - gpointer user_data); - -void -OnConfConf_FWTest (GtkButton *button, - gpointer user_data); - -void -OnConfConf_FWAbout (GtkButton *button, - gpointer user_data); - -void -OnConfConf_PluginsPath (GtkButton *button, - gpointer user_data); - -void -OnConfConf_BiosPath (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Ok (GtkButton *button, - gpointer user_data); - -void -OnConfConf_Cancel (GtkButton *button, - gpointer user_data); - -void -OnCpu_Ok (GtkButton *button, - gpointer user_data); - -void -OnCpu_Cancel (GtkButton *button, - gpointer user_data); - -void -OnDebug_EEMode (GtkToggleButton *togglebutton, - gpointer user_data); - -void -OnDebug_IOPMode (GtkToggleButton *togglebutton, - gpointer user_data); - -void -OnDebug_Step (GtkButton *button, - gpointer user_data); - -void -OnDebug_Skip (GtkButton *button, - gpointer user_data); - -void -OnDebug_Go (GtkButton *button, - gpointer user_data); - -void -OnDebug_Log (GtkButton *button, - gpointer user_data); - -void -OnDebug_SetPC (GtkButton *button, - gpointer user_data); - -void -OnDebug_SetBPA (GtkButton *button, - gpointer user_data); - -void -OnDebug_SetBPC (GtkButton *button, - gpointer user_data); - -void -OnDebug_ClearBPs (GtkButton *button, - gpointer user_data); - -void -OnDebug_DumpCode (GtkButton *button, - gpointer user_data); - -void -OnDebug_RawDump (GtkButton *button, - gpointer user_data); - -void -OnDebug_Close (GtkButton *button, - gpointer user_data); - -void -OnDebug_memWrite32 (GtkButton *button, - gpointer user_data); - -void -OnSetPC_Ok (GtkButton *button, - gpointer user_data); - -void -OnSetPC_Cancel (GtkButton *button, - gpointer user_data); - -void -OnSetBPA_Ok (GtkButton *button, - gpointer user_data); - -void -OnSetBPA_Cancel (GtkButton *button, - gpointer user_data); - -void -OnSetBPC_Ok (GtkButton *button, - gpointer user_data); - -void -OnSetBPC_Cancel (GtkButton *button, - gpointer user_data); - -void -OnDumpC_Ok (GtkButton *button, - gpointer user_data); - -void -OnDumpC_Cancel (GtkButton *button, - gpointer user_data); - -void -OnDumpR_Ok (GtkButton *button, - gpointer user_data); - -void -OnDumpR_Cancel (GtkButton *button, - gpointer user_data); - -void -OnLogging_Ok (GtkButton *button, - gpointer user_data); - -void -OnLogging_Cancel (GtkButton *button, - gpointer user_data); - -void -OnArguments_Ok (GtkButton *button, - gpointer user_data); - -void -OnArguments_Cancel (GtkButton *button, - gpointer user_data); - -void -OnMemWrite32_Ok (GtkButton *button, - gpointer user_data); - -void -OnMemWrite32_Cancel (GtkButton *button, - gpointer user_data); diff --git a/pcsx2v2/Linux/interface.cpp b/pcsx2v2/Linux/interface.cpp deleted file mode 100644 index 84e1f67..0000000 --- a/pcsx2v2/Linux/interface.cpp +++ /dev/null @@ -1,2759 +0,0 @@ -/* Pcsx2 - Pc Ps2 Emulator - * Copyright (C) 2002-2008 Pcsx2 Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include -#include - -#include -#include - -#include "callbacks.h" -#include "interface.h" -#include "support.h" - -#define GLADE_HOOKUP_OBJECT(component,widget,name) \ - g_object_set_data_full (G_OBJECT (component), name, \ - gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) - -#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ - g_object_set_data (G_OBJECT (component), name, widget) - -GtkWidget* -create_MainWindow (void) -{ - GtkWidget *MainWindow; - GtkWidget *vbox1; - GtkWidget *GtkMenuBar_Menu; - GtkWidget *GtkMenuItem_File; - GtkWidget *GtkMenuItem_File_menu; - GtkWidget *run_cd1; - GtkWidget *GtkMenuItem_LoadElf; - GtkWidget *separator2; - GtkWidget *states1; - GtkWidget *states1_menu; - GtkWidget *load1; - GtkWidget *load1_menu; - GtkWidget *slot_1; - GtkWidget *slot_3; - GtkWidget *slot_4; - GtkWidget *slot_5; - GtkWidget *slot_2; - GtkWidget *other1; - GtkWidget *save1; - GtkWidget *save1_menu; - GtkWidget *slot_6; - GtkWidget *slot_7; - GtkWidget *slot_8; - GtkWidget *slot_9; - GtkWidget *slot_10; - GtkWidget *other2; - GtkWidget *GtkMenuItem_Exit; - GtkWidget *GtkMenuItem_Emulator; - GtkWidget *GtkMenuItem_Emulator_menu; - GtkWidget *GtkMenuItem_Run; - GtkWidget *GtkMenuItem_Reset; - GtkWidget *GtkMenuItem_Arguments; - GtkWidget *GtkMenuItem_Configuration; - GtkWidget *GtkMenuItem_Configuration_menu; - GtkWidget *GtkMenuItem_PluginsBios; - GtkWidget *separator3; - GtkWidget *GtkMenuItem_Graphics; - GtkWidget *GtkMenuItem_Controllers; - GtkWidget *GtkMenuItem_Sound; - GtkWidget *GtkMenuItem_Cdvdrom; - GtkWidget *GtkMenuItem_Dev9; - GtkWidget *GtkMenuItem_USB; - GtkWidget *GtkMenuItem_FW; - GtkWidget *separator4; - GtkWidget *GtkMenuItem_Cpu; - GtkWidget *GtkMenuItem_Language; - GtkWidget *misc1; - GtkWidget *misc1_menu; - GtkWidget *patch_browser1; - GtkWidget *patch_finder2; - GtkWidget *separator7; - GtkWidget *enable_console1; - GtkWidget *enable_patches1; - GtkWidget *GtkMenuItem_Debug; - GtkWidget *GtkMenuItem_Debug_menu; - GtkWidget *GtkMenuItem_EnterDebugger; - GtkWidget *GtkMenuItem_Logging; - GtkWidget *GtkMenuItem_Help; - GtkWidget *GtkMenuItem_Help_menu; - GtkWidget *GtkMenuItem_About; - GtkWidget *image1; - GtkWidget *status_box; - - MainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_title (GTK_WINDOW (MainWindow), _("PCSX")); - gtk_window_set_position (GTK_WINDOW (MainWindow), GTK_WIN_POS_CENTER); - - vbox1 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox1); - gtk_container_add (GTK_CONTAINER (MainWindow), vbox1); - - GtkMenuBar_Menu = gtk_menu_bar_new (); - gtk_widget_show (GtkMenuBar_Menu); - gtk_box_pack_start (GTK_BOX (vbox1), GtkMenuBar_Menu, FALSE, FALSE, 0); - - GtkMenuItem_File = gtk_menu_item_new_with_mnemonic (_("_File")); - gtk_widget_show (GtkMenuItem_File); - gtk_container_add (GTK_CONTAINER (GtkMenuBar_Menu), GtkMenuItem_File); - - GtkMenuItem_File_menu = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (GtkMenuItem_File), GtkMenuItem_File_menu); - - run_cd1 = gtk_menu_item_new_with_mnemonic (_("_Run CD")); - gtk_widget_show (run_cd1); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_File_menu), run_cd1); - - GtkMenuItem_LoadElf = gtk_menu_item_new_with_mnemonic (_("_Load Elf")); - gtk_widget_show (GtkMenuItem_LoadElf); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_File_menu), GtkMenuItem_LoadElf); - - separator2 = gtk_separator_menu_item_new (); - gtk_widget_show (separator2); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_File_menu), separator2); - gtk_widget_set_sensitive (separator2, FALSE); - - states1 = gtk_menu_item_new_with_mnemonic (_("States")); - gtk_widget_show (states1); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_File_menu), states1); - - states1_menu = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (states1), states1_menu); - - load1 = gtk_menu_item_new_with_mnemonic (_("Load")); - gtk_widget_show (load1); - gtk_container_add (GTK_CONTAINER (states1_menu), load1); - - load1_menu = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (load1), load1_menu); - - slot_1 = gtk_menu_item_new_with_mnemonic (_("Slot 1")); - gtk_widget_show (slot_1); - gtk_container_add (GTK_CONTAINER (load1_menu), slot_1); - - slot_3 = gtk_menu_item_new_with_mnemonic (_("Slot 2")); - gtk_widget_show (slot_3); - gtk_container_add (GTK_CONTAINER (load1_menu), slot_3); - - slot_4 = gtk_menu_item_new_with_mnemonic (_("Slot 3")); - gtk_widget_show (slot_4); - gtk_container_add (GTK_CONTAINER (load1_menu), slot_4); - - slot_5 = gtk_menu_item_new_with_mnemonic (_("Slot 4")); - gtk_widget_show (slot_5); - gtk_container_add (GTK_CONTAINER (load1_menu), slot_5); - - slot_2 = gtk_menu_item_new_with_mnemonic (_("Slot 5")); - gtk_widget_show (slot_2); - gtk_container_add (GTK_CONTAINER (load1_menu), slot_2); - - other1 = gtk_menu_item_new_with_mnemonic (_("Other...")); - gtk_widget_show (other1); - gtk_container_add (GTK_CONTAINER (load1_menu), other1); - - save1 = gtk_menu_item_new_with_mnemonic (_("Save")); - gtk_widget_show (save1); - gtk_container_add (GTK_CONTAINER (states1_menu), save1); - - save1_menu = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (save1), save1_menu); - - slot_6 = gtk_menu_item_new_with_mnemonic (_("Slot 1")); - gtk_widget_show (slot_6); - gtk_container_add (GTK_CONTAINER (save1_menu), slot_6); - - slot_7 = gtk_menu_item_new_with_mnemonic (_("Slot 2")); - gtk_widget_show (slot_7); - gtk_container_add (GTK_CONTAINER (save1_menu), slot_7); - - slot_8 = gtk_menu_item_new_with_mnemonic (_("Slot 3")); - gtk_widget_show (slot_8); - gtk_container_add (GTK_CONTAINER (save1_menu), slot_8); - - slot_9 = gtk_menu_item_new_with_mnemonic (_("Slot 4")); - gtk_widget_show (slot_9); - gtk_container_add (GTK_CONTAINER (save1_menu), slot_9); - - slot_10 = gtk_menu_item_new_with_mnemonic (_("Slot 5")); - gtk_widget_show (slot_10); - gtk_container_add (GTK_CONTAINER (save1_menu), slot_10); - - other2 = gtk_menu_item_new_with_mnemonic (_("Other...")); - gtk_widget_show (other2); - gtk_container_add (GTK_CONTAINER (save1_menu), other2); - - GtkMenuItem_Exit = gtk_menu_item_new_with_mnemonic (_("E_xit")); - gtk_widget_show (GtkMenuItem_Exit); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_File_menu), GtkMenuItem_Exit); - - GtkMenuItem_Emulator = gtk_menu_item_new_with_mnemonic (_("_Run")); - gtk_widget_show (GtkMenuItem_Emulator); - gtk_container_add (GTK_CONTAINER (GtkMenuBar_Menu), GtkMenuItem_Emulator); - - GtkMenuItem_Emulator_menu = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (GtkMenuItem_Emulator), GtkMenuItem_Emulator_menu); - - GtkMenuItem_Run = gtk_menu_item_new_with_mnemonic (_("E_xecute")); - gtk_widget_show (GtkMenuItem_Run); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Emulator_menu), GtkMenuItem_Run); - - GtkMenuItem_Reset = gtk_menu_item_new_with_mnemonic (_("Re_set")); - gtk_widget_show (GtkMenuItem_Reset); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Emulator_menu), GtkMenuItem_Reset); - - GtkMenuItem_Arguments = gtk_menu_item_new_with_mnemonic (_("_Arguments")); - gtk_widget_show (GtkMenuItem_Arguments); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Emulator_menu), GtkMenuItem_Arguments); - - GtkMenuItem_Configuration = gtk_menu_item_new_with_mnemonic (_("_Config")); - gtk_widget_show (GtkMenuItem_Configuration); - gtk_container_add (GTK_CONTAINER (GtkMenuBar_Menu), GtkMenuItem_Configuration); - - GtkMenuItem_Configuration_menu = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (GtkMenuItem_Configuration), GtkMenuItem_Configuration_menu); - - GtkMenuItem_PluginsBios = gtk_menu_item_new_with_mnemonic (_("_Configure")); - gtk_widget_show (GtkMenuItem_PluginsBios); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), GtkMenuItem_PluginsBios); - - separator3 = gtk_separator_menu_item_new (); - gtk_widget_show (separator3); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), separator3); - gtk_widget_set_sensitive (separator3, FALSE); - - GtkMenuItem_Graphics = gtk_menu_item_new_with_mnemonic (_("_Graphics")); - gtk_widget_show (GtkMenuItem_Graphics); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), GtkMenuItem_Graphics); - - GtkMenuItem_Controllers = gtk_menu_item_new_with_mnemonic (_("C_ontrollers")); - gtk_widget_show (GtkMenuItem_Controllers); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), GtkMenuItem_Controllers); - - GtkMenuItem_Sound = gtk_menu_item_new_with_mnemonic (_("_Sound")); - gtk_widget_show (GtkMenuItem_Sound); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), GtkMenuItem_Sound); - - GtkMenuItem_Cdvdrom = gtk_menu_item_new_with_mnemonic (_("_Cdvdrom")); - gtk_widget_show (GtkMenuItem_Cdvdrom); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), GtkMenuItem_Cdvdrom); - - GtkMenuItem_Dev9 = gtk_menu_item_new_with_mnemonic (_("D_ev9")); - gtk_widget_show (GtkMenuItem_Dev9); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), GtkMenuItem_Dev9); - - GtkMenuItem_USB = gtk_menu_item_new_with_mnemonic (_("U_SB")); - gtk_widget_show (GtkMenuItem_USB); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), GtkMenuItem_USB); - - GtkMenuItem_FW = gtk_menu_item_new_with_mnemonic (_("Fire_Wire")); - gtk_widget_show (GtkMenuItem_FW); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), GtkMenuItem_FW); - - separator4 = gtk_separator_menu_item_new (); - gtk_widget_show (separator4); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), separator4); - gtk_widget_set_sensitive (separator4, FALSE); - - GtkMenuItem_Cpu = gtk_menu_item_new_with_mnemonic (_("C_pu")); - gtk_widget_show (GtkMenuItem_Cpu); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Configuration_menu), GtkMenuItem_Cpu); - - GtkMenuItem_Language = gtk_menu_item_new_with_mnemonic (_("_Language")); - gtk_widget_show (GtkMenuItem_Language); - gtk_container_add (GTK_CONTAINER (GtkMenuBar_Menu), GtkMenuItem_Language); - - misc1 = gtk_menu_item_new_with_mnemonic (_("_Misc")); - gtk_widget_show (misc1); - gtk_container_add (GTK_CONTAINER (GtkMenuBar_Menu), misc1); - - misc1_menu = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (misc1), misc1_menu); - - patch_browser1 = gtk_menu_item_new_with_mnemonic (_("Patch _Browser")); - gtk_widget_show (patch_browser1); - gtk_container_add (GTK_CONTAINER (misc1_menu), patch_browser1); - - patch_finder2 = gtk_menu_item_new_with_mnemonic (_("Patch _Finder")); - gtk_widget_show (patch_finder2); - gtk_container_add (GTK_CONTAINER (misc1_menu), patch_finder2); - - separator7 = gtk_separator_menu_item_new (); - gtk_widget_show (separator7); - gtk_container_add (GTK_CONTAINER (misc1_menu), separator7); - gtk_widget_set_sensitive (separator7, FALSE); - - enable_console1 = gtk_check_menu_item_new_with_mnemonic (_("Enable _Console")); - gtk_widget_show (enable_console1); - gtk_container_add (GTK_CONTAINER (misc1_menu), enable_console1); - - enable_patches1 = gtk_check_menu_item_new_with_mnemonic (_("Enable _Patches")); - gtk_widget_show (enable_patches1); - gtk_container_add (GTK_CONTAINER (misc1_menu), enable_patches1); - - GtkMenuItem_Debug = gtk_menu_item_new_with_mnemonic (_("_Debug")); - gtk_widget_show (GtkMenuItem_Debug); - gtk_container_add (GTK_CONTAINER (GtkMenuBar_Menu), GtkMenuItem_Debug); - - GtkMenuItem_Debug_menu = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (GtkMenuItem_Debug), GtkMenuItem_Debug_menu); - - GtkMenuItem_EnterDebugger = gtk_menu_item_new_with_mnemonic (_("Enter Debugger ...")); - gtk_widget_show (GtkMenuItem_EnterDebugger); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Debug_menu), GtkMenuItem_EnterDebugger); - - GtkMenuItem_Logging = gtk_menu_item_new_with_mnemonic (_("Logging")); - gtk_widget_show (GtkMenuItem_Logging); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Debug_menu), GtkMenuItem_Logging); - - GtkMenuItem_Help = gtk_menu_item_new_with_mnemonic (_("_Help")); - gtk_widget_show (GtkMenuItem_Help); - gtk_container_add (GTK_CONTAINER (GtkMenuBar_Menu), GtkMenuItem_Help); - - GtkMenuItem_Help_menu = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (GtkMenuItem_Help), GtkMenuItem_Help_menu); - - GtkMenuItem_About = gtk_menu_item_new_with_mnemonic (_("&About...")); - gtk_widget_show (GtkMenuItem_About); - gtk_container_add (GTK_CONTAINER (GtkMenuItem_Help_menu), GtkMenuItem_About); - - image1 = create_pixmap (MainWindow, "pcsxAbout.bmp"); - gtk_widget_show (image1); - gtk_box_pack_start (GTK_BOX (vbox1), image1, TRUE, TRUE, 1); - - status_box = gtk_vbox_new (FALSE, 0); - gtk_widget_show (status_box); - gtk_box_pack_start (GTK_BOX (vbox1), status_box, TRUE, TRUE, 0); - - g_signal_connect ((gpointer) MainWindow, "destroy", - G_CALLBACK (OnDestroy), - NULL); - g_signal_connect ((gpointer) run_cd1, "activate", - G_CALLBACK (OnFile_RunCD), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_LoadElf, "activate", - G_CALLBACK (OnFile_LoadElf), - NULL); - g_signal_connect ((gpointer) slot_1, "activate", - G_CALLBACK (OnStates_Load1), - NULL); - g_signal_connect ((gpointer) slot_3, "activate", - G_CALLBACK (OnStates_Load2), - NULL); - g_signal_connect ((gpointer) slot_4, "activate", - G_CALLBACK (OnStates_Load3), - NULL); - g_signal_connect ((gpointer) slot_5, "activate", - G_CALLBACK (OnStates_Load4), - NULL); - g_signal_connect ((gpointer) slot_2, "activate", - G_CALLBACK (OnStates_Load5), - NULL); - g_signal_connect ((gpointer) other1, "activate", - G_CALLBACK (OnStates_LoadOther), - NULL); - g_signal_connect ((gpointer) slot_6, "activate", - G_CALLBACK (OnStates_Save1), - NULL); - g_signal_connect ((gpointer) slot_7, "activate", - G_CALLBACK (OnStates_Save2), - NULL); - g_signal_connect ((gpointer) slot_8, "activate", - G_CALLBACK (OnStates_Save3), - NULL); - g_signal_connect ((gpointer) slot_9, "activate", - G_CALLBACK (OnStates_Save4), - NULL); - g_signal_connect ((gpointer) slot_10, "activate", - G_CALLBACK (OnStates_Save5), - NULL); - g_signal_connect ((gpointer) other2, "activate", - G_CALLBACK (OnStates_SaveOther), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Exit, "activate", - G_CALLBACK (OnFile_Exit), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Run, "activate", - G_CALLBACK (OnEmu_Run), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Reset, "activate", - G_CALLBACK (OnEmu_Reset), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Arguments, "activate", - G_CALLBACK (OnEmu_Arguments), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_PluginsBios, "activate", - G_CALLBACK (OnConf_Conf), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Graphics, "activate", - G_CALLBACK (OnConf_Gs), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Controllers, "activate", - G_CALLBACK (OnConf_Pads), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Sound, "activate", - G_CALLBACK (OnConf_Spu2), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Cdvdrom, "activate", - G_CALLBACK (OnConf_Cdvd), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Dev9, "activate", - G_CALLBACK (OnConf_Dev9), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_USB, "activate", - G_CALLBACK (OnConf_Usb), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_FW, "activate", - G_CALLBACK (OnConf_Fw), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Cpu, "activate", - G_CALLBACK (OnConf_Cpu), - NULL); - g_signal_connect ((gpointer) patch_browser1, "activate", - G_CALLBACK (on_patch_browser1_activate), - NULL); - g_signal_connect ((gpointer) patch_finder2, "activate", - G_CALLBACK (on_patch_finder2_activate), - NULL); - g_signal_connect ((gpointer) enable_console1, "activate", - G_CALLBACK (on_enable_console1_activate), - NULL); - g_signal_connect ((gpointer) enable_patches1, "activate", - G_CALLBACK (on_enable_patches1_activate), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_EnterDebugger, "activate", - G_CALLBACK (OnDebug_Debugger), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_Logging, "activate", - G_CALLBACK (OnDebug_Logging), - NULL); - g_signal_connect ((gpointer) GtkMenuItem_About, "activate", - G_CALLBACK (OnHelp_About), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (MainWindow, MainWindow, "MainWindow"); - GLADE_HOOKUP_OBJECT (MainWindow, vbox1, "vbox1"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuBar_Menu, "GtkMenuBar_Menu"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_File, "GtkMenuItem_File"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_File_menu, "GtkMenuItem_File_menu"); - GLADE_HOOKUP_OBJECT (MainWindow, run_cd1, "run_cd1"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_LoadElf, "GtkMenuItem_LoadElf"); - GLADE_HOOKUP_OBJECT (MainWindow, separator2, "separator2"); - GLADE_HOOKUP_OBJECT (MainWindow, states1, "states1"); - GLADE_HOOKUP_OBJECT (MainWindow, states1_menu, "states1_menu"); - GLADE_HOOKUP_OBJECT (MainWindow, load1, "load1"); - GLADE_HOOKUP_OBJECT (MainWindow, load1_menu, "load1_menu"); - GLADE_HOOKUP_OBJECT (MainWindow, slot_1, "slot_1"); - GLADE_HOOKUP_OBJECT (MainWindow, slot_3, "slot_3"); - GLADE_HOOKUP_OBJECT (MainWindow, slot_4, "slot_4"); - GLADE_HOOKUP_OBJECT (MainWindow, slot_5, "slot_5"); - GLADE_HOOKUP_OBJECT (MainWindow, slot_2, "slot_2"); - GLADE_HOOKUP_OBJECT (MainWindow, other1, "other1"); - GLADE_HOOKUP_OBJECT (MainWindow, save1, "save1"); - GLADE_HOOKUP_OBJECT (MainWindow, save1_menu, "save1_menu"); - GLADE_HOOKUP_OBJECT (MainWindow, slot_6, "slot_6"); - GLADE_HOOKUP_OBJECT (MainWindow, slot_7, "slot_7"); - GLADE_HOOKUP_OBJECT (MainWindow, slot_8, "slot_8"); - GLADE_HOOKUP_OBJECT (MainWindow, slot_9, "slot_9"); - GLADE_HOOKUP_OBJECT (MainWindow, slot_10, "slot_10"); - GLADE_HOOKUP_OBJECT (MainWindow, other2, "other2"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Exit, "GtkMenuItem_Exit"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Emulator, "GtkMenuItem_Emulator"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Emulator_menu, "GtkMenuItem_Emulator_menu"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Run, "GtkMenuItem_Run"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Reset, "GtkMenuItem_Reset"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Arguments, "GtkMenuItem_Arguments"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Configuration, "GtkMenuItem_Configuration"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Configuration_menu, "GtkMenuItem_Configuration_menu"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_PluginsBios, "GtkMenuItem_PluginsBios"); - GLADE_HOOKUP_OBJECT (MainWindow, separator3, "separator3"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Graphics, "GtkMenuItem_Graphics"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Controllers, "GtkMenuItem_Controllers"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Sound, "GtkMenuItem_Sound"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Cdvdrom, "GtkMenuItem_Cdvdrom"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Dev9, "GtkMenuItem_Dev9"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_USB, "GtkMenuItem_USB"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_FW, "GtkMenuItem_FW"); - GLADE_HOOKUP_OBJECT (MainWindow, separator4, "separator4"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Cpu, "GtkMenuItem_Cpu"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Language, "GtkMenuItem_Language"); - GLADE_HOOKUP_OBJECT (MainWindow, misc1, "misc1"); - GLADE_HOOKUP_OBJECT (MainWindow, misc1_menu, "misc1_menu"); - GLADE_HOOKUP_OBJECT (MainWindow, patch_browser1, "patch_browser1"); - GLADE_HOOKUP_OBJECT (MainWindow, patch_finder2, "patch_finder2"); - GLADE_HOOKUP_OBJECT (MainWindow, separator7, "separator7"); - GLADE_HOOKUP_OBJECT (MainWindow, enable_console1, "enable_console1"); - GLADE_HOOKUP_OBJECT (MainWindow, enable_patches1, "enable_patches1"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Debug, "GtkMenuItem_Debug"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Debug_menu, "GtkMenuItem_Debug_menu"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_EnterDebugger, "GtkMenuItem_EnterDebugger"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Logging, "GtkMenuItem_Logging"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Help, "GtkMenuItem_Help"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_Help_menu, "GtkMenuItem_Help_menu"); - GLADE_HOOKUP_OBJECT (MainWindow, GtkMenuItem_About, "GtkMenuItem_About"); - GLADE_HOOKUP_OBJECT (MainWindow, image1, "image1"); - GLADE_HOOKUP_OBJECT (MainWindow, status_box, "status_box"); - - return MainWindow; -} - -GtkWidget* -create_AboutDlg (void) -{ - GtkWidget *AboutDlg; - GtkWidget *vbox2; - GtkWidget *hbox1; - GtkWidget *vbox4; - GtkWidget *GtkAbout_LabelVersion; - GtkWidget *frame1; - GtkWidget *vbox6; - GtkWidget *GtkAbout_LabelAuthors; - GtkWidget *pixmap1; - GtkWidget *frame2; - GtkWidget *vbox5; - GtkWidget *GtkAbout_LabelGreets; - GtkWidget *hbuttonbox1; - GtkWidget *GtkButton_Ok; - - AboutDlg = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (AboutDlg), 10); - gtk_window_set_title (GTK_WINDOW (AboutDlg), _("Pcsx About")); - - vbox2 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox2); - gtk_container_add (GTK_CONTAINER (AboutDlg), vbox2); - - hbox1 = gtk_hbox_new (FALSE, 0); - gtk_widget_show (hbox1); - gtk_box_pack_start (GTK_BOX (vbox2), hbox1, TRUE, TRUE, 0); - - vbox4 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox4); - gtk_box_pack_start (GTK_BOX (hbox1), vbox4, TRUE, TRUE, 0); - - GtkAbout_LabelVersion = gtk_label_new (_("PCSX2\n\nVersion x.x")); - gtk_widget_show (GtkAbout_LabelVersion); - gtk_box_pack_start (GTK_BOX (vbox4), GtkAbout_LabelVersion, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (GtkAbout_LabelVersion), GTK_JUSTIFY_CENTER); - - frame1 = gtk_frame_new (NULL); - gtk_widget_show (frame1); - gtk_box_pack_start (GTK_BOX (vbox4), frame1, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (frame1), 5); - - vbox6 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox6); - gtk_container_add (GTK_CONTAINER (frame1), vbox6); - gtk_container_set_border_width (GTK_CONTAINER (vbox6), 5); - - GtkAbout_LabelAuthors = gtk_label_new (_("written by...")); - gtk_widget_show (GtkAbout_LabelAuthors); - gtk_box_pack_start (GTK_BOX (vbox6), GtkAbout_LabelAuthors, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (GtkAbout_LabelAuthors), GTK_JUSTIFY_CENTER); - - pixmap1 = create_pixmap (AboutDlg, "pcsxAbout.xpm"); - gtk_widget_show (pixmap1); - gtk_box_pack_start (GTK_BOX (hbox1), pixmap1, TRUE, TRUE, 0); - - frame2 = gtk_frame_new (NULL); - gtk_widget_show (frame2); - gtk_box_pack_start (GTK_BOX (vbox2), frame2, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (frame2), 5); - - vbox5 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox5); - gtk_container_add (GTK_CONTAINER (frame2), vbox5); - gtk_container_set_border_width (GTK_CONTAINER (vbox5), 5); - - GtkAbout_LabelGreets = gtk_label_new (_("greets to...")); - gtk_widget_show (GtkAbout_LabelGreets); - gtk_box_pack_start (GTK_BOX (vbox5), GtkAbout_LabelGreets, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (GtkAbout_LabelGreets), GTK_JUSTIFY_CENTER); - - hbuttonbox1 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox1); - gtk_box_pack_start (GTK_BOX (vbox2), hbuttonbox1, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (hbuttonbox1), 30); - - GtkButton_Ok = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (GtkButton_Ok); - gtk_container_add (GTK_CONTAINER (hbuttonbox1), GtkButton_Ok); - GTK_WIDGET_SET_FLAGS (GtkButton_Ok, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) GtkButton_Ok, "clicked", - G_CALLBACK (OnHelpAbout_Ok), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (AboutDlg, AboutDlg, "AboutDlg"); - GLADE_HOOKUP_OBJECT (AboutDlg, vbox2, "vbox2"); - GLADE_HOOKUP_OBJECT (AboutDlg, hbox1, "hbox1"); - GLADE_HOOKUP_OBJECT (AboutDlg, vbox4, "vbox4"); - GLADE_HOOKUP_OBJECT (AboutDlg, GtkAbout_LabelVersion, "GtkAbout_LabelVersion"); - GLADE_HOOKUP_OBJECT (AboutDlg, frame1, "frame1"); - GLADE_HOOKUP_OBJECT (AboutDlg, vbox6, "vbox6"); - GLADE_HOOKUP_OBJECT (AboutDlg, GtkAbout_LabelAuthors, "GtkAbout_LabelAuthors"); - GLADE_HOOKUP_OBJECT (AboutDlg, pixmap1, "pixmap1"); - GLADE_HOOKUP_OBJECT (AboutDlg, frame2, "frame2"); - GLADE_HOOKUP_OBJECT (AboutDlg, vbox5, "vbox5"); - GLADE_HOOKUP_OBJECT (AboutDlg, GtkAbout_LabelGreets, "GtkAbout_LabelGreets"); - GLADE_HOOKUP_OBJECT (AboutDlg, hbuttonbox1, "hbuttonbox1"); - GLADE_HOOKUP_OBJECT (AboutDlg, GtkButton_Ok, "GtkButton_Ok"); - - return AboutDlg; -} - -GtkWidget* -create_ConfDlg (void) -{ - GtkWidget *ConfDlg; - GtkWidget *vbox12; - GtkWidget *table2; - GtkWidget *GtkCombo_Pad1; - GList *GtkCombo_Pad1_items = NULL; - GtkWidget *combo_entry4; - GtkWidget *GtkCombo_Pad2; - GList *GtkCombo_Pad2_items = NULL; - GtkWidget *combo_entry5; - GtkWidget *hbuttonbox6; - GtkWidget *GtkButton_PAD2configure; - GtkWidget *GtkButton_PAD2test; - GtkWidget *GtkButton_PAD2about; - GtkWidget *hbuttonbox7; - GtkWidget *GtkButton_PAD1configure; - GtkWidget *GtkButton_PAD1test; - GtkWidget *GtkButton_PAD1about; - GtkWidget *hbuttonbox8; - GtkWidget *GtkButton_GSconfigure; - GtkWidget *GtkButton_GStest; - GtkWidget *GtkButton_GSabout; - GtkWidget *GtkLabel_Graphics; - GtkWidget *GtkLabel_FirstController; - GtkWidget *GtkLabel_SecondController; - GtkWidget *GtkCombo_Gs; - GList *GtkCombo_Gs_items = NULL; - GtkWidget *combo_entry2; - GtkWidget *GtkLabel_Sound; - GtkWidget *GtkCombo_Spu2; - GList *GtkCombo_Spu2_items = NULL; - GtkWidget *entry1; - GtkWidget *hbuttonbox12; - GtkWidget *GtkButton_SPU2configure; - GtkWidget *GtkButton_SPU2test; - GtkWidget *GtkButton_SPU2about; - GtkWidget *GtkCombo_Dev9; - GList *GtkCombo_Dev9_items = NULL; - GtkWidget *entry3; - GtkWidget *hbuttonbox21; - GtkWidget *GtkButton_DEV9configure; - GtkWidget *GtkButton_DEV9test; - GtkWidget *GtkButton_DEV9about; - GtkWidget *label23; - GtkWidget *GtkLabel_Cdvdrom; - GtkWidget *GtkCombo_Cdvd; - GList *GtkCombo_Cdvd_items = NULL; - GtkWidget *entry2; - GtkWidget *hbuttonbox13; - GtkWidget *GtkButton_CDVDconfigure; - GtkWidget *GtkButton_CDVDtest; - GtkWidget *GtkButton_CDVDabout; - GtkWidget *label29; - GtkWidget *GtkCombo_Usb; - GList *GtkCombo_Usb_items = NULL; - GtkWidget *entry4; - GtkWidget *hbuttonbox23; - GtkWidget *GtkButton_USBconfigure; - GtkWidget *GtkButton_USBtest; - GtkWidget *GtkButton_USBabout; - GtkWidget *GtkCombo_Bios; - GList *GtkCombo_Bios_items = NULL; - GtkWidget *combo_entry7; - GtkWidget *GtkCombo_FW; - GList *GtkCombo_FW_items = NULL; - GtkWidget *entry5; - GtkWidget *hbuttonbox24; - GtkWidget *GtkButton_FWconfigure; - GtkWidget *GtkButton_FWtest; - GtkWidget *GtkButton_FireWireabout; - GtkWidget *label30; - GtkWidget *GtkLabel_Bios; - GtkWidget *hbox5; - GtkWidget *hbuttonbox11; - GtkWidget *GtkButton_SelectPluginsDir; - GtkWidget *GtkButton_SelectBiosDir; - GtkWidget *hbuttonbox10; - GtkWidget *GtkButton_Ok; - GtkWidget *GtkButton_Cancel; - - ConfDlg = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (ConfDlg), 10); - gtk_window_set_title (GTK_WINDOW (ConfDlg), _("Conf")); - - vbox12 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox12); - gtk_container_add (GTK_CONTAINER (ConfDlg), vbox12); - - table2 = gtk_table_new (14, 2, FALSE); - gtk_widget_show (table2); - gtk_box_pack_start (GTK_BOX (vbox12), table2, TRUE, TRUE, 0); - gtk_table_set_col_spacings (GTK_TABLE (table2), 15); - - GtkCombo_Pad1 = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (GtkCombo_Pad1)->popwin), - "GladeParentKey", GtkCombo_Pad1); - gtk_widget_show (GtkCombo_Pad1); - gtk_table_attach (GTK_TABLE (table2), GtkCombo_Pad1, 0, 1, 4, 5, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - GtkCombo_Pad1_items = g_list_append (GtkCombo_Pad1_items, (gpointer) ""); - gtk_combo_set_popdown_strings (GTK_COMBO (GtkCombo_Pad1), GtkCombo_Pad1_items); - g_list_free (GtkCombo_Pad1_items); - - combo_entry4 = GTK_COMBO (GtkCombo_Pad1)->entry; - gtk_widget_show (combo_entry4); - gtk_entry_set_invisible_char (GTK_ENTRY (combo_entry4), 8226); - - GtkCombo_Pad2 = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (GtkCombo_Pad2)->popwin), - "GladeParentKey", GtkCombo_Pad2); - gtk_widget_show (GtkCombo_Pad2); - gtk_table_attach (GTK_TABLE (table2), GtkCombo_Pad2, 1, 2, 4, 5, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - GtkCombo_Pad2_items = g_list_append (GtkCombo_Pad2_items, (gpointer) ""); - gtk_combo_set_popdown_strings (GTK_COMBO (GtkCombo_Pad2), GtkCombo_Pad2_items); - g_list_free (GtkCombo_Pad2_items); - - combo_entry5 = GTK_COMBO (GtkCombo_Pad2)->entry; - gtk_widget_show (combo_entry5); - gtk_entry_set_invisible_char (GTK_ENTRY (combo_entry5), 8226); - - hbuttonbox6 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox6); - gtk_table_attach (GTK_TABLE (table2), hbuttonbox6, 1, 2, 5, 6, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - - GtkButton_PAD2configure = gtk_button_new_with_mnemonic (_("Configure")); - gtk_widget_show (GtkButton_PAD2configure); - gtk_container_add (GTK_CONTAINER (hbuttonbox6), GtkButton_PAD2configure); - GTK_WIDGET_SET_FLAGS (GtkButton_PAD2configure, GTK_CAN_DEFAULT); - - GtkButton_PAD2test = gtk_button_new_with_mnemonic (_("Test")); - gtk_widget_show (GtkButton_PAD2test); - gtk_container_add (GTK_CONTAINER (hbuttonbox6), GtkButton_PAD2test); - GTK_WIDGET_SET_FLAGS (GtkButton_PAD2test, GTK_CAN_DEFAULT); - - GtkButton_PAD2about = gtk_button_new_with_mnemonic (_("About")); - gtk_widget_show (GtkButton_PAD2about); - gtk_container_add (GTK_CONTAINER (hbuttonbox6), GtkButton_PAD2about); - GTK_WIDGET_SET_FLAGS (GtkButton_PAD2about, GTK_CAN_DEFAULT); - - hbuttonbox7 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox7); - gtk_table_attach (GTK_TABLE (table2), hbuttonbox7, 0, 1, 5, 6, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - GtkButton_PAD1configure = gtk_button_new_with_mnemonic (_("Configure")); - gtk_widget_show (GtkButton_PAD1configure); - gtk_container_add (GTK_CONTAINER (hbuttonbox7), GtkButton_PAD1configure); - GTK_WIDGET_SET_FLAGS (GtkButton_PAD1configure, GTK_CAN_DEFAULT); - - GtkButton_PAD1test = gtk_button_new_with_mnemonic (_("Test")); - gtk_widget_show (GtkButton_PAD1test); - gtk_container_add (GTK_CONTAINER (hbuttonbox7), GtkButton_PAD1test); - GTK_WIDGET_SET_FLAGS (GtkButton_PAD1test, GTK_CAN_DEFAULT); - - GtkButton_PAD1about = gtk_button_new_with_mnemonic (_("About")); - gtk_widget_show (GtkButton_PAD1about); - gtk_container_add (GTK_CONTAINER (hbuttonbox7), GtkButton_PAD1about); - GTK_WIDGET_SET_FLAGS (GtkButton_PAD1about, GTK_CAN_DEFAULT); - - hbuttonbox8 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox8); - gtk_table_attach (GTK_TABLE (table2), hbuttonbox8, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - - GtkButton_GSconfigure = gtk_button_new_with_mnemonic (_("Configure")); - gtk_widget_show (GtkButton_GSconfigure); - gtk_container_add (GTK_CONTAINER (hbuttonbox8), GtkButton_GSconfigure); - GTK_WIDGET_SET_FLAGS (GtkButton_GSconfigure, GTK_CAN_DEFAULT); - - GtkButton_GStest = gtk_button_new_with_mnemonic (_("Test")); - gtk_widget_show (GtkButton_GStest); - gtk_container_add (GTK_CONTAINER (hbuttonbox8), GtkButton_GStest); - GTK_WIDGET_SET_FLAGS (GtkButton_GStest, GTK_CAN_DEFAULT); - - GtkButton_GSabout = gtk_button_new_with_mnemonic (_("About")); - gtk_widget_show (GtkButton_GSabout); - gtk_container_add (GTK_CONTAINER (hbuttonbox8), GtkButton_GSabout); - GTK_WIDGET_SET_FLAGS (GtkButton_GSabout, GTK_CAN_DEFAULT); - - GtkLabel_Graphics = gtk_label_new (_("Graphics")); - gtk_widget_show (GtkLabel_Graphics); - gtk_table_attach (GTK_TABLE (table2), GtkLabel_Graphics, 0, 1, 0, 1, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (GtkLabel_Graphics), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (GtkLabel_Graphics), 0, 0.5); - - GtkLabel_FirstController = gtk_label_new (_("First Controller")); - gtk_widget_show (GtkLabel_FirstController); - gtk_table_attach (GTK_TABLE (table2), GtkLabel_FirstController, 0, 1, 3, 4, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (GtkLabel_FirstController), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (GtkLabel_FirstController), 0, 0.5); - - GtkLabel_SecondController = gtk_label_new (_("Second Controller")); - gtk_widget_show (GtkLabel_SecondController); - gtk_table_attach (GTK_TABLE (table2), GtkLabel_SecondController, 1, 2, 3, 4, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (GtkLabel_SecondController), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (GtkLabel_SecondController), 0, 0.5); - - GtkCombo_Gs = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (GtkCombo_Gs)->popwin), - "GladeParentKey", GtkCombo_Gs); - gtk_widget_show (GtkCombo_Gs); - gtk_table_attach (GTK_TABLE (table2), GtkCombo_Gs, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - GtkCombo_Gs_items = g_list_append (GtkCombo_Gs_items, (gpointer) ""); - gtk_combo_set_popdown_strings (GTK_COMBO (GtkCombo_Gs), GtkCombo_Gs_items); - g_list_free (GtkCombo_Gs_items); - - combo_entry2 = GTK_COMBO (GtkCombo_Gs)->entry; - gtk_widget_show (combo_entry2); - gtk_entry_set_invisible_char (GTK_ENTRY (combo_entry2), 8226); - - GtkLabel_Sound = gtk_label_new (_("Sound")); - gtk_widget_show (GtkLabel_Sound); - gtk_table_attach (GTK_TABLE (table2), GtkLabel_Sound, 1, 2, 0, 1, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (GtkLabel_Sound), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (GtkLabel_Sound), 0, 0.5); - - GtkCombo_Spu2 = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (GtkCombo_Spu2)->popwin), - "GladeParentKey", GtkCombo_Spu2); - gtk_widget_show (GtkCombo_Spu2); - gtk_table_attach (GTK_TABLE (table2), GtkCombo_Spu2, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - GtkCombo_Spu2_items = g_list_append (GtkCombo_Spu2_items, (gpointer) ""); - gtk_combo_set_popdown_strings (GTK_COMBO (GtkCombo_Spu2), GtkCombo_Spu2_items); - g_list_free (GtkCombo_Spu2_items); - - entry1 = GTK_COMBO (GtkCombo_Spu2)->entry; - gtk_widget_show (entry1); - gtk_entry_set_invisible_char (GTK_ENTRY (entry1), 8226); - - hbuttonbox12 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox12); - gtk_table_attach (GTK_TABLE (table2), hbuttonbox12, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - GtkButton_SPU2configure = gtk_button_new_with_mnemonic (_("Configure")); - gtk_widget_show (GtkButton_SPU2configure); - gtk_container_add (GTK_CONTAINER (hbuttonbox12), GtkButton_SPU2configure); - GTK_WIDGET_SET_FLAGS (GtkButton_SPU2configure, GTK_CAN_DEFAULT); - - GtkButton_SPU2test = gtk_button_new_with_mnemonic (_("Test")); - gtk_widget_show (GtkButton_SPU2test); - gtk_container_add (GTK_CONTAINER (hbuttonbox12), GtkButton_SPU2test); - GTK_WIDGET_SET_FLAGS (GtkButton_SPU2test, GTK_CAN_DEFAULT); - - GtkButton_SPU2about = gtk_button_new_with_mnemonic (_("About")); - gtk_widget_show (GtkButton_SPU2about); - gtk_container_add (GTK_CONTAINER (hbuttonbox12), GtkButton_SPU2about); - GTK_WIDGET_SET_FLAGS (GtkButton_SPU2about, GTK_CAN_DEFAULT); - - GtkCombo_Dev9 = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (GtkCombo_Dev9)->popwin), - "GladeParentKey", GtkCombo_Dev9); - gtk_widget_show (GtkCombo_Dev9); - gtk_table_attach (GTK_TABLE (table2), GtkCombo_Dev9, 0, 1, 7, 8, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - GtkCombo_Dev9_items = g_list_append (GtkCombo_Dev9_items, (gpointer) ""); - gtk_combo_set_popdown_strings (GTK_COMBO (GtkCombo_Dev9), GtkCombo_Dev9_items); - g_list_free (GtkCombo_Dev9_items); - - entry3 = GTK_COMBO (GtkCombo_Dev9)->entry; - gtk_widget_show (entry3); - gtk_entry_set_invisible_char (GTK_ENTRY (entry3), 8226); - - hbuttonbox21 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox21); - gtk_table_attach (GTK_TABLE (table2), hbuttonbox21, 0, 1, 8, 9, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - - GtkButton_DEV9configure = gtk_button_new_with_mnemonic (_("Configure")); - gtk_widget_show (GtkButton_DEV9configure); - gtk_container_add (GTK_CONTAINER (hbuttonbox21), GtkButton_DEV9configure); - GTK_WIDGET_SET_FLAGS (GtkButton_DEV9configure, GTK_CAN_DEFAULT); - - GtkButton_DEV9test = gtk_button_new_with_mnemonic (_("Test")); - gtk_widget_show (GtkButton_DEV9test); - gtk_container_add (GTK_CONTAINER (hbuttonbox21), GtkButton_DEV9test); - GTK_WIDGET_SET_FLAGS (GtkButton_DEV9test, GTK_CAN_DEFAULT); - - GtkButton_DEV9about = gtk_button_new_with_mnemonic (_("About")); - gtk_widget_show (GtkButton_DEV9about); - gtk_container_add (GTK_CONTAINER (hbuttonbox21), GtkButton_DEV9about); - GTK_WIDGET_SET_FLAGS (GtkButton_DEV9about, GTK_CAN_DEFAULT); - - label23 = gtk_label_new (_("Dev9")); - gtk_widget_show (label23); - gtk_table_attach (GTK_TABLE (table2), label23, 0, 1, 6, 7, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label23), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (label23), 0, 0.5); - - GtkLabel_Cdvdrom = gtk_label_new (_("Cdvdrom")); - gtk_widget_show (GtkLabel_Cdvdrom); - gtk_table_attach (GTK_TABLE (table2), GtkLabel_Cdvdrom, 1, 2, 6, 7, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (GtkLabel_Cdvdrom), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (GtkLabel_Cdvdrom), 0, 0.5); - - GtkCombo_Cdvd = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (GtkCombo_Cdvd)->popwin), - "GladeParentKey", GtkCombo_Cdvd); - gtk_widget_show (GtkCombo_Cdvd); - gtk_table_attach (GTK_TABLE (table2), GtkCombo_Cdvd, 1, 2, 7, 8, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - GtkCombo_Cdvd_items = g_list_append (GtkCombo_Cdvd_items, (gpointer) ""); - gtk_combo_set_popdown_strings (GTK_COMBO (GtkCombo_Cdvd), GtkCombo_Cdvd_items); - g_list_free (GtkCombo_Cdvd_items); - - entry2 = GTK_COMBO (GtkCombo_Cdvd)->entry; - gtk_widget_show (entry2); - gtk_entry_set_invisible_char (GTK_ENTRY (entry2), 8226); - - hbuttonbox13 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox13); - gtk_table_attach (GTK_TABLE (table2), hbuttonbox13, 1, 2, 8, 9, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - GtkButton_CDVDconfigure = gtk_button_new_with_mnemonic (_("Configure")); - gtk_widget_show (GtkButton_CDVDconfigure); - gtk_container_add (GTK_CONTAINER (hbuttonbox13), GtkButton_CDVDconfigure); - GTK_WIDGET_SET_FLAGS (GtkButton_CDVDconfigure, GTK_CAN_DEFAULT); - - GtkButton_CDVDtest = gtk_button_new_with_mnemonic (_("Test")); - gtk_widget_show (GtkButton_CDVDtest); - gtk_container_add (GTK_CONTAINER (hbuttonbox13), GtkButton_CDVDtest); - GTK_WIDGET_SET_FLAGS (GtkButton_CDVDtest, GTK_CAN_DEFAULT); - - GtkButton_CDVDabout = gtk_button_new_with_mnemonic (_("About")); - gtk_widget_show (GtkButton_CDVDabout); - gtk_container_add (GTK_CONTAINER (hbuttonbox13), GtkButton_CDVDabout); - GTK_WIDGET_SET_FLAGS (GtkButton_CDVDabout, GTK_CAN_DEFAULT); - - label29 = gtk_label_new (_("Usb")); - gtk_widget_show (label29); - gtk_table_attach (GTK_TABLE (table2), label29, 0, 1, 9, 10, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label29), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (label29), 0, 0.5); - - GtkCombo_Usb = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (GtkCombo_Usb)->popwin), - "GladeParentKey", GtkCombo_Usb); - gtk_widget_show (GtkCombo_Usb); - gtk_table_attach (GTK_TABLE (table2), GtkCombo_Usb, 0, 1, 10, 11, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - GtkCombo_Usb_items = g_list_append (GtkCombo_Usb_items, (gpointer) ""); - gtk_combo_set_popdown_strings (GTK_COMBO (GtkCombo_Usb), GtkCombo_Usb_items); - g_list_free (GtkCombo_Usb_items); - - entry4 = GTK_COMBO (GtkCombo_Usb)->entry; - gtk_widget_show (entry4); - gtk_entry_set_invisible_char (GTK_ENTRY (entry4), 8226); - - hbuttonbox23 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox23); - gtk_table_attach (GTK_TABLE (table2), hbuttonbox23, 0, 1, 11, 12, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - - GtkButton_USBconfigure = gtk_button_new_with_mnemonic (_("Configure")); - gtk_widget_show (GtkButton_USBconfigure); - gtk_container_add (GTK_CONTAINER (hbuttonbox23), GtkButton_USBconfigure); - GTK_WIDGET_SET_FLAGS (GtkButton_USBconfigure, GTK_CAN_DEFAULT); - - GtkButton_USBtest = gtk_button_new_with_mnemonic (_("Test")); - gtk_widget_show (GtkButton_USBtest); - gtk_container_add (GTK_CONTAINER (hbuttonbox23), GtkButton_USBtest); - GTK_WIDGET_SET_FLAGS (GtkButton_USBtest, GTK_CAN_DEFAULT); - - GtkButton_USBabout = gtk_button_new_with_mnemonic (_("About")); - gtk_widget_show (GtkButton_USBabout); - gtk_container_add (GTK_CONTAINER (hbuttonbox23), GtkButton_USBabout); - GTK_WIDGET_SET_FLAGS (GtkButton_USBabout, GTK_CAN_DEFAULT); - - GtkCombo_Bios = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (GtkCombo_Bios)->popwin), - "GladeParentKey", GtkCombo_Bios); - gtk_widget_show (GtkCombo_Bios); - gtk_table_attach (GTK_TABLE (table2), GtkCombo_Bios, 1, 2, 13, 14, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - GtkCombo_Bios_items = g_list_append (GtkCombo_Bios_items, (gpointer) ""); - gtk_combo_set_popdown_strings (GTK_COMBO (GtkCombo_Bios), GtkCombo_Bios_items); - g_list_free (GtkCombo_Bios_items); - - combo_entry7 = GTK_COMBO (GtkCombo_Bios)->entry; - gtk_widget_show (combo_entry7); - gtk_entry_set_invisible_char (GTK_ENTRY (combo_entry7), 8226); - - GtkCombo_FW = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (GtkCombo_FW)->popwin), - "GladeParentKey", GtkCombo_FW); - gtk_widget_show (GtkCombo_FW); - gtk_table_attach (GTK_TABLE (table2), GtkCombo_FW, 1, 2, 10, 11, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - GtkCombo_FW_items = g_list_append (GtkCombo_FW_items, (gpointer) ""); - gtk_combo_set_popdown_strings (GTK_COMBO (GtkCombo_FW), GtkCombo_FW_items); - g_list_free (GtkCombo_FW_items); - - entry5 = GTK_COMBO (GtkCombo_FW)->entry; - gtk_widget_show (entry5); - gtk_entry_set_invisible_char (GTK_ENTRY (entry5), 8226); - - hbuttonbox24 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox24); - gtk_table_attach (GTK_TABLE (table2), hbuttonbox24, 1, 2, 11, 12, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - GtkButton_FWconfigure = gtk_button_new_with_mnemonic (_("Configure")); - gtk_widget_show (GtkButton_FWconfigure); - gtk_container_add (GTK_CONTAINER (hbuttonbox24), GtkButton_FWconfigure); - GTK_WIDGET_SET_FLAGS (GtkButton_FWconfigure, GTK_CAN_DEFAULT); - - GtkButton_FWtest = gtk_button_new_with_mnemonic (_("Test")); - gtk_widget_show (GtkButton_FWtest); - gtk_container_add (GTK_CONTAINER (hbuttonbox24), GtkButton_FWtest); - GTK_WIDGET_SET_FLAGS (GtkButton_FWtest, GTK_CAN_DEFAULT); - - GtkButton_FireWireabout = gtk_button_new_with_mnemonic (_("About")); - gtk_widget_show (GtkButton_FireWireabout); - gtk_container_add (GTK_CONTAINER (hbuttonbox24), GtkButton_FireWireabout); - GTK_WIDGET_SET_FLAGS (GtkButton_FireWireabout, GTK_CAN_DEFAULT); - - label30 = gtk_label_new (_("FireWire")); - gtk_widget_show (label30); - gtk_table_attach (GTK_TABLE (table2), label30, 1, 2, 9, 10, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label30), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (label30), 0, 0.5); - - GtkLabel_Bios = gtk_label_new (_("Bios")); - gtk_widget_show (GtkLabel_Bios); - gtk_table_attach (GTK_TABLE (table2), GtkLabel_Bios, 1, 2, 12, 13, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (GtkLabel_Bios), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (GtkLabel_Bios), 0, 0.5); - - hbox5 = gtk_hbox_new (FALSE, 14); - gtk_widget_show (hbox5); - gtk_box_pack_start (GTK_BOX (vbox12), hbox5, TRUE, TRUE, 0); - - hbuttonbox11 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox11); - gtk_box_pack_start (GTK_BOX (hbox5), hbuttonbox11, FALSE, TRUE, 0); - gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox11), GTK_BUTTONBOX_START); - - GtkButton_SelectPluginsDir = gtk_button_new_with_mnemonic (_("Select Plugins Dir")); - gtk_widget_show (GtkButton_SelectPluginsDir); - gtk_container_add (GTK_CONTAINER (hbuttonbox11), GtkButton_SelectPluginsDir); - GTK_WIDGET_SET_FLAGS (GtkButton_SelectPluginsDir, GTK_CAN_DEFAULT); - - GtkButton_SelectBiosDir = gtk_button_new_with_mnemonic (_("Select Bios Dir")); - gtk_widget_show (GtkButton_SelectBiosDir); - gtk_container_add (GTK_CONTAINER (hbuttonbox11), GtkButton_SelectBiosDir); - GTK_WIDGET_SET_FLAGS (GtkButton_SelectBiosDir, GTK_CAN_DEFAULT); - - hbuttonbox10 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox10); - gtk_box_pack_start (GTK_BOX (hbox5), hbuttonbox10, TRUE, TRUE, 0); - - GtkButton_Ok = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (GtkButton_Ok); - gtk_container_add (GTK_CONTAINER (hbuttonbox10), GtkButton_Ok); - GTK_WIDGET_SET_FLAGS (GtkButton_Ok, GTK_CAN_DEFAULT); - - GtkButton_Cancel = gtk_button_new_with_mnemonic (_("Cancel")); - gtk_widget_show (GtkButton_Cancel); - gtk_container_add (GTK_CONTAINER (hbuttonbox10), GtkButton_Cancel); - GTK_WIDGET_SET_FLAGS (GtkButton_Cancel, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) GtkButton_PAD2configure, "clicked", - G_CALLBACK (OnConfConf_Pad2Conf), - NULL); - g_signal_connect ((gpointer) GtkButton_PAD2test, "clicked", - G_CALLBACK (OnConfConf_Pad2Test), - NULL); - g_signal_connect ((gpointer) GtkButton_PAD2about, "clicked", - G_CALLBACK (OnConfConf_Pad2About), - NULL); - g_signal_connect ((gpointer) GtkButton_PAD1configure, "clicked", - G_CALLBACK (OnConfConf_Pad1Conf), - NULL); - g_signal_connect ((gpointer) GtkButton_PAD1test, "clicked", - G_CALLBACK (OnConfConf_Pad1Test), - NULL); - g_signal_connect ((gpointer) GtkButton_PAD1about, "clicked", - G_CALLBACK (OnConfConf_Pad1About), - NULL); - g_signal_connect ((gpointer) GtkButton_GSconfigure, "clicked", - G_CALLBACK (OnConfConf_GsConf), - NULL); - g_signal_connect ((gpointer) GtkButton_GStest, "clicked", - G_CALLBACK (OnConfConf_GsTest), - NULL); - g_signal_connect ((gpointer) GtkButton_GSabout, "clicked", - G_CALLBACK (OnConfConf_GsAbout), - NULL); - g_signal_connect ((gpointer) GtkButton_SPU2configure, "clicked", - G_CALLBACK (OnConfConf_Spu2Conf), - NULL); - g_signal_connect ((gpointer) GtkButton_SPU2test, "clicked", - G_CALLBACK (OnConfConf_Spu2Test), - NULL); - g_signal_connect ((gpointer) GtkButton_SPU2about, "clicked", - G_CALLBACK (OnConfConf_Spu2About), - NULL); - g_signal_connect ((gpointer) GtkButton_DEV9configure, "clicked", - G_CALLBACK (OnConfConf_Dev9Conf), - NULL); - g_signal_connect ((gpointer) GtkButton_DEV9test, "clicked", - G_CALLBACK (OnConfConf_Dev9Test), - NULL); - g_signal_connect ((gpointer) GtkButton_DEV9about, "clicked", - G_CALLBACK (OnConfConf_Dev9About), - NULL); - g_signal_connect ((gpointer) GtkButton_CDVDconfigure, "clicked", - G_CALLBACK (OnConfConf_CdvdConf), - NULL); - g_signal_connect ((gpointer) GtkButton_CDVDtest, "clicked", - G_CALLBACK (OnConfConf_CdvdTest), - NULL); - g_signal_connect ((gpointer) GtkButton_CDVDabout, "clicked", - G_CALLBACK (OnConfConf_CdvdAbout), - NULL); - g_signal_connect ((gpointer) GtkButton_USBconfigure, "clicked", - G_CALLBACK (OnConfConf_UsbConf), - NULL); - g_signal_connect ((gpointer) GtkButton_USBtest, "clicked", - G_CALLBACK (OnConfConf_UsbTest), - NULL); - g_signal_connect ((gpointer) GtkButton_USBabout, "clicked", - G_CALLBACK (OnConfConf_UsbAbout), - NULL); - g_signal_connect ((gpointer) GtkButton_FWconfigure, "clicked", - G_CALLBACK (OnConfConf_FWConf), - NULL); - g_signal_connect ((gpointer) GtkButton_FWtest, "clicked", - G_CALLBACK (OnConfConf_FWTest), - NULL); - g_signal_connect ((gpointer) GtkButton_FireWireabout, "clicked", - G_CALLBACK (OnConfConf_FWAbout), - NULL); - g_signal_connect ((gpointer) GtkButton_SelectPluginsDir, "clicked", - G_CALLBACK (OnConfConf_PluginsPath), - NULL); - g_signal_connect ((gpointer) GtkButton_SelectBiosDir, "clicked", - G_CALLBACK (OnConfConf_BiosPath), - NULL); - g_signal_connect ((gpointer) GtkButton_Ok, "clicked", - G_CALLBACK (OnConfConf_Ok), - NULL); - g_signal_connect ((gpointer) GtkButton_Cancel, "clicked", - G_CALLBACK (OnConfConf_Cancel), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (ConfDlg, ConfDlg, "ConfDlg"); - GLADE_HOOKUP_OBJECT (ConfDlg, vbox12, "vbox12"); - GLADE_HOOKUP_OBJECT (ConfDlg, table2, "table2"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkCombo_Pad1, "GtkCombo_Pad1"); - GLADE_HOOKUP_OBJECT (ConfDlg, combo_entry4, "combo_entry4"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkCombo_Pad2, "GtkCombo_Pad2"); - GLADE_HOOKUP_OBJECT (ConfDlg, combo_entry5, "combo_entry5"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbuttonbox6, "hbuttonbox6"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_PAD2configure, "GtkButton_PAD2configure"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_PAD2test, "GtkButton_PAD2test"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_PAD2about, "GtkButton_PAD2about"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbuttonbox7, "hbuttonbox7"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_PAD1configure, "GtkButton_PAD1configure"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_PAD1test, "GtkButton_PAD1test"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_PAD1about, "GtkButton_PAD1about"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbuttonbox8, "hbuttonbox8"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_GSconfigure, "GtkButton_GSconfigure"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_GStest, "GtkButton_GStest"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_GSabout, "GtkButton_GSabout"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkLabel_Graphics, "GtkLabel_Graphics"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkLabel_FirstController, "GtkLabel_FirstController"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkLabel_SecondController, "GtkLabel_SecondController"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkCombo_Gs, "GtkCombo_Gs"); - GLADE_HOOKUP_OBJECT (ConfDlg, combo_entry2, "combo_entry2"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkLabel_Sound, "GtkLabel_Sound"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkCombo_Spu2, "GtkCombo_Spu2"); - GLADE_HOOKUP_OBJECT (ConfDlg, entry1, "entry1"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbuttonbox12, "hbuttonbox12"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_SPU2configure, "GtkButton_SPU2configure"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_SPU2test, "GtkButton_SPU2test"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_SPU2about, "GtkButton_SPU2about"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkCombo_Dev9, "GtkCombo_Dev9"); - GLADE_HOOKUP_OBJECT (ConfDlg, entry3, "entry3"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbuttonbox21, "hbuttonbox21"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_DEV9configure, "GtkButton_DEV9configure"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_DEV9test, "GtkButton_DEV9test"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_DEV9about, "GtkButton_DEV9about"); - GLADE_HOOKUP_OBJECT (ConfDlg, label23, "label23"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkLabel_Cdvdrom, "GtkLabel_Cdvdrom"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkCombo_Cdvd, "GtkCombo_Cdvd"); - GLADE_HOOKUP_OBJECT (ConfDlg, entry2, "entry2"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbuttonbox13, "hbuttonbox13"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_CDVDconfigure, "GtkButton_CDVDconfigure"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_CDVDtest, "GtkButton_CDVDtest"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_CDVDabout, "GtkButton_CDVDabout"); - GLADE_HOOKUP_OBJECT (ConfDlg, label29, "label29"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkCombo_Usb, "GtkCombo_Usb"); - GLADE_HOOKUP_OBJECT (ConfDlg, entry4, "entry4"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbuttonbox23, "hbuttonbox23"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_USBconfigure, "GtkButton_USBconfigure"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_USBtest, "GtkButton_USBtest"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_USBabout, "GtkButton_USBabout"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkCombo_Bios, "GtkCombo_Bios"); - GLADE_HOOKUP_OBJECT (ConfDlg, combo_entry7, "combo_entry7"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkCombo_FW, "GtkCombo_FW"); - GLADE_HOOKUP_OBJECT (ConfDlg, entry5, "entry5"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbuttonbox24, "hbuttonbox24"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_FWconfigure, "GtkButton_FWconfigure"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_FWtest, "GtkButton_FWtest"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_FireWireabout, "GtkButton_FireWireabout"); - GLADE_HOOKUP_OBJECT (ConfDlg, label30, "label30"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkLabel_Bios, "GtkLabel_Bios"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbox5, "hbox5"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbuttonbox11, "hbuttonbox11"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_SelectPluginsDir, "GtkButton_SelectPluginsDir"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_SelectBiosDir, "GtkButton_SelectBiosDir"); - GLADE_HOOKUP_OBJECT (ConfDlg, hbuttonbox10, "hbuttonbox10"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_Ok, "GtkButton_Ok"); - GLADE_HOOKUP_OBJECT (ConfDlg, GtkButton_Cancel, "GtkButton_Cancel"); - - return ConfDlg; -} - -GtkWidget* -create_CpuDlg (void) -{ - GtkWidget *CpuDlg; - GtkWidget *vbox8; - GtkWidget *hbox20; - GtkWidget *alignment1; - GtkWidget *vbox27; - GtkWidget *alignment3; - GtkWidget *frame8; - GtkWidget *alignment2; - GtkWidget *vbox28; - GtkWidget *GtkLabel_CpuVendor; - GtkWidget *GtkLabel_Family; - GtkWidget *GtkLabel_CpuSpeed; - GtkWidget *GtkLabel_Features; - GtkWidget *label35; - GtkWidget *GtkCheckButton_EERec; - GtkWidget *frame6; - GtkWidget *vbox26; - GtkWidget *GtkCheckButton_VU0rec; - GtkWidget *GtkCheckButton_VU1rec; - GtkWidget *label32; - GtkWidget *GtkCheckButton_MTGS; - GtkWidget *GtkCheckButton_CpuDC; - GtkWidget *frame9; - GtkWidget *alignment4; - GtkWidget *vbox29; - GtkWidget *GtkRadioButton_LimitNormal; - GSList *GtkRadioButton_LimitNormal_group = NULL; - GtkWidget *GtkRadioButton_LimitLimit; - GtkWidget *GtkRadioButton_LimitFS; - GtkWidget *GtkRadioButton_VUSkip; - GtkWidget *label41; - GtkWidget *hbuttonbox3; - GtkWidget *GtkButton_Ok; - GtkWidget *GtkButton_Cancel; - - CpuDlg = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (CpuDlg), 5); - gtk_window_set_title (GTK_WINDOW (CpuDlg), _("Cpu")); - - vbox8 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox8); - gtk_container_add (GTK_CONTAINER (CpuDlg), vbox8); - - hbox20 = gtk_hbox_new (FALSE, 0); - gtk_widget_show (hbox20); - gtk_box_pack_start (GTK_BOX (vbox8), hbox20, TRUE, TRUE, 0); - - alignment1 = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_widget_show (alignment1); - gtk_box_pack_start (GTK_BOX (hbox20), alignment1, TRUE, TRUE, 0); - - vbox27 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox27); - gtk_container_add (GTK_CONTAINER (alignment1), vbox27); - - alignment3 = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_widget_show (alignment3); - gtk_box_pack_start (GTK_BOX (vbox27), alignment3, TRUE, TRUE, 0); - - frame8 = gtk_frame_new (NULL); - gtk_widget_show (frame8); - gtk_container_add (GTK_CONTAINER (alignment3), frame8); - - alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_widget_show (alignment2); - gtk_container_add (GTK_CONTAINER (frame8), alignment2); - gtk_alignment_set_padding (GTK_ALIGNMENT (alignment2), 0, 0, 12, 0); - - vbox28 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox28); - gtk_container_add (GTK_CONTAINER (alignment2), vbox28); - - GtkLabel_CpuVendor = gtk_label_new (_("CPU vendor")); - gtk_widget_show (GtkLabel_CpuVendor); - gtk_box_pack_start (GTK_BOX (vbox28), GtkLabel_CpuVendor, FALSE, FALSE, 0); - - GtkLabel_Family = gtk_label_new (_("Family")); - gtk_widget_show (GtkLabel_Family); - gtk_box_pack_start (GTK_BOX (vbox28), GtkLabel_Family, FALSE, FALSE, 0); - - GtkLabel_CpuSpeed = gtk_label_new (_("Cpu Speed")); - gtk_widget_show (GtkLabel_CpuSpeed); - gtk_box_pack_start (GTK_BOX (vbox28), GtkLabel_CpuSpeed, FALSE, FALSE, 0); - - GtkLabel_Features = gtk_label_new (_("Features")); - gtk_widget_show (GtkLabel_Features); - gtk_box_pack_start (GTK_BOX (vbox28), GtkLabel_Features, FALSE, FALSE, 0); - - label35 = gtk_label_new (""); - gtk_widget_show (label35); - gtk_frame_set_label_widget (GTK_FRAME (frame8), label35); - gtk_label_set_use_markup (GTK_LABEL (label35), TRUE); - - GtkCheckButton_EERec = gtk_check_button_new_with_mnemonic (_("EERec - EE/IOP recompiler")); - gtk_widget_show (GtkCheckButton_EERec); - gtk_box_pack_start (GTK_BOX (vbox8), GtkCheckButton_EERec, FALSE, FALSE, 0); - - frame6 = gtk_frame_new (NULL); - gtk_widget_show (frame6); - gtk_box_pack_start (GTK_BOX (vbox8), frame6, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (frame6), 5); - - vbox26 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox26); - gtk_container_add (GTK_CONTAINER (frame6), vbox26); - gtk_container_set_border_width (GTK_CONTAINER (vbox26), 5); - - GtkCheckButton_VU0rec = gtk_check_button_new_with_mnemonic (_("VU0rec - enable recompiler for VU0 unit")); - gtk_widget_show (GtkCheckButton_VU0rec); - gtk_box_pack_start (GTK_BOX (vbox26), GtkCheckButton_VU0rec, FALSE, FALSE, 0); - - GtkCheckButton_VU1rec = gtk_check_button_new_with_mnemonic (_("VU1rec - enable recompiler for VU1 unit")); - gtk_widget_show (GtkCheckButton_VU1rec); - gtk_box_pack_start (GTK_BOX (vbox26), GtkCheckButton_VU1rec, FALSE, FALSE, 0); - - label32 = gtk_label_new (_("VU Recompilers - All options are set by default")); - gtk_widget_show (label32); - gtk_frame_set_label_widget (GTK_FRAME (frame6), label32); - - GtkCheckButton_MTGS = gtk_check_button_new_with_mnemonic (_("Multi threaded GS mode (MTGS)\n (faster on dual core/HT CPUs, requires pcsx2 restart)")); - gtk_widget_show (GtkCheckButton_MTGS); - gtk_box_pack_start (GTK_BOX (vbox8), GtkCheckButton_MTGS, FALSE, FALSE, 0); - - GtkCheckButton_CpuDC = gtk_check_button_new_with_mnemonic (_("Dual Core Mode (DC) - Much faster, but only valid with MTGS")); - gtk_widget_show (GtkCheckButton_CpuDC); - gtk_box_pack_start (GTK_BOX (vbox8), GtkCheckButton_CpuDC, FALSE, FALSE, 0); - - frame9 = gtk_frame_new (NULL); - gtk_widget_show (frame9); - gtk_box_pack_start (GTK_BOX (vbox8), frame9, TRUE, TRUE, 0); - - alignment4 = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_widget_show (alignment4); - gtk_container_add (GTK_CONTAINER (frame9), alignment4); - gtk_alignment_set_padding (GTK_ALIGNMENT (alignment4), 0, 0, 12, 0); - - vbox29 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox29); - gtk_container_add (GTK_CONTAINER (alignment4), vbox29); - - GtkRadioButton_LimitNormal = gtk_radio_button_new_with_mnemonic (NULL, _("Normal - All frames are rendered as fast as possible")); - gtk_widget_show (GtkRadioButton_LimitNormal); - gtk_box_pack_start (GTK_BOX (vbox29), GtkRadioButton_LimitNormal, FALSE, FALSE, 0); - gtk_radio_button_set_group (GTK_RADIO_BUTTON (GtkRadioButton_LimitNormal), GtkRadioButton_LimitNormal_group); - GtkRadioButton_LimitNormal_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (GtkRadioButton_LimitNormal)); - - GtkRadioButton_LimitLimit = gtk_radio_button_new_with_mnemonic (NULL, _("Limit - Force frames to normal speeds if too fast")); - gtk_widget_show (GtkRadioButton_LimitLimit); - gtk_box_pack_start (GTK_BOX (vbox29), GtkRadioButton_LimitLimit, FALSE, FALSE, 0); - gtk_radio_button_set_group (GTK_RADIO_BUTTON (GtkRadioButton_LimitLimit), GtkRadioButton_LimitNormal_group); - GtkRadioButton_LimitNormal_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (GtkRadioButton_LimitLimit)); - - GtkRadioButton_LimitFS = gtk_radio_button_new_with_mnemonic (NULL, _("Frame Skip - In order to achieve normal speeds, \n some frames are skipped (faster).\n Fps displayed counts skipped frames too")); - gtk_widget_show (GtkRadioButton_LimitFS); - gtk_box_pack_start (GTK_BOX (vbox29), GtkRadioButton_LimitFS, FALSE, FALSE, 0); - gtk_radio_button_set_group (GTK_RADIO_BUTTON (GtkRadioButton_LimitFS), GtkRadioButton_LimitNormal_group); - GtkRadioButton_LimitNormal_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (GtkRadioButton_LimitFS)); - - GtkRadioButton_VUSkip = gtk_radio_button_new_with_mnemonic (NULL, _("VU Skip - Same as Frame Skip, but tried to skip more. \n Artifacts might be present, but will be faster")); - gtk_widget_show (GtkRadioButton_VUSkip); - gtk_box_pack_start (GTK_BOX (vbox29), GtkRadioButton_VUSkip, FALSE, FALSE, 0); - gtk_radio_button_set_group (GTK_RADIO_BUTTON (GtkRadioButton_VUSkip), GtkRadioButton_LimitNormal_group); - GtkRadioButton_LimitNormal_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (GtkRadioButton_VUSkip)); - - label41 = gtk_label_new (_("Frame Limiting")); - gtk_widget_show (label41); - gtk_frame_set_label_widget (GTK_FRAME (frame9), label41); - gtk_label_set_use_markup (GTK_LABEL (label41), TRUE); - - hbuttonbox3 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox3); - gtk_box_pack_start (GTK_BOX (vbox8), hbuttonbox3, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (hbuttonbox3), 30); - - GtkButton_Ok = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (GtkButton_Ok); - gtk_container_add (GTK_CONTAINER (hbuttonbox3), GtkButton_Ok); - GTK_WIDGET_SET_FLAGS (GtkButton_Ok, GTK_CAN_DEFAULT); - - GtkButton_Cancel = gtk_button_new_with_mnemonic (_("Cancel")); - gtk_widget_show (GtkButton_Cancel); - gtk_container_add (GTK_CONTAINER (hbuttonbox3), GtkButton_Cancel); - GTK_WIDGET_SET_FLAGS (GtkButton_Cancel, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) GtkButton_Ok, "clicked", - G_CALLBACK (OnCpu_Ok), - NULL); - g_signal_connect ((gpointer) GtkButton_Cancel, "clicked", - G_CALLBACK (OnCpu_Cancel), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (CpuDlg, CpuDlg, "CpuDlg"); - GLADE_HOOKUP_OBJECT (CpuDlg, vbox8, "vbox8"); - GLADE_HOOKUP_OBJECT (CpuDlg, hbox20, "hbox20"); - GLADE_HOOKUP_OBJECT (CpuDlg, alignment1, "alignment1"); - GLADE_HOOKUP_OBJECT (CpuDlg, vbox27, "vbox27"); - GLADE_HOOKUP_OBJECT (CpuDlg, alignment3, "alignment3"); - GLADE_HOOKUP_OBJECT (CpuDlg, frame8, "frame8"); - GLADE_HOOKUP_OBJECT (CpuDlg, alignment2, "alignment2"); - GLADE_HOOKUP_OBJECT (CpuDlg, vbox28, "vbox28"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkLabel_CpuVendor, "GtkLabel_CpuVendor"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkLabel_Family, "GtkLabel_Family"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkLabel_CpuSpeed, "GtkLabel_CpuSpeed"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkLabel_Features, "GtkLabel_Features"); - GLADE_HOOKUP_OBJECT (CpuDlg, label35, "label35"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkCheckButton_EERec, "GtkCheckButton_EERec"); - GLADE_HOOKUP_OBJECT (CpuDlg, frame6, "frame6"); - GLADE_HOOKUP_OBJECT (CpuDlg, vbox26, "vbox26"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkCheckButton_VU0rec, "GtkCheckButton_VU0rec"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkCheckButton_VU1rec, "GtkCheckButton_VU1rec"); - GLADE_HOOKUP_OBJECT (CpuDlg, label32, "label32"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkCheckButton_MTGS, "GtkCheckButton_MTGS"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkCheckButton_CpuDC, "GtkCheckButton_CpuDC"); - GLADE_HOOKUP_OBJECT (CpuDlg, frame9, "frame9"); - GLADE_HOOKUP_OBJECT (CpuDlg, alignment4, "alignment4"); - GLADE_HOOKUP_OBJECT (CpuDlg, vbox29, "vbox29"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkRadioButton_LimitNormal, "GtkRadioButton_LimitNormal"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkRadioButton_LimitLimit, "GtkRadioButton_LimitLimit"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkRadioButton_LimitFS, "GtkRadioButton_LimitFS"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkRadioButton_VUSkip, "GtkRadioButton_VUSkip"); - GLADE_HOOKUP_OBJECT (CpuDlg, label41, "label41"); - GLADE_HOOKUP_OBJECT (CpuDlg, hbuttonbox3, "hbuttonbox3"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkButton_Ok, "GtkButton_Ok"); - GLADE_HOOKUP_OBJECT (CpuDlg, GtkButton_Cancel, "GtkButton_Cancel"); - - return CpuDlg; -} - -GtkWidget* -create_DebugWnd (void) -{ - GtkWidget *DebugWnd; - GtkWidget *vbox16; - GtkWidget *hbox16; - GtkWidget *GtkRadioButton_EE; - GSList *GtkRadioButton_EE_group = NULL; - GtkWidget *GtkRadioButton_IOP; - GtkWidget *hbox6; - GtkWidget *hbox7; - GtkWidget *scrolledwindow1; - GtkWidget *viewport1; - GtkWidget *GtkList_DisView; - GtkWidget *GtkVScrollbar_VList; - GtkWidget *vbox22; - GtkWidget *vbuttonbox2; - GtkWidget *button52; - GtkWidget *button53; - GtkWidget *button65; - GtkWidget *button64; - GtkWidget *vbuttonbox3; - GtkWidget *button58; - GtkWidget *button59; - GtkWidget *button60; - GtkWidget *button61; - GtkWidget *vbuttonbox1; - GtkWidget *button39; - GtkWidget *button40; - GtkWidget *button41; - GtkWidget *vbuttonbox4; - GtkWidget *button68; - GtkWidget *button69; - GtkWidget *button70; - - DebugWnd = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (DebugWnd), 5); - gtk_window_set_title (GTK_WINDOW (DebugWnd), _("PCSX2 Debugger")); - - vbox16 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox16); - gtk_container_add (GTK_CONTAINER (DebugWnd), vbox16); - gtk_container_set_border_width (GTK_CONTAINER (vbox16), 5); - - hbox16 = gtk_hbox_new (FALSE, 5); - gtk_widget_show (hbox16); - gtk_box_pack_start (GTK_BOX (vbox16), hbox16, TRUE, TRUE, 0); - - GtkRadioButton_EE = gtk_radio_button_new_with_mnemonic (NULL, _("EE Debug Mode")); - gtk_widget_show (GtkRadioButton_EE); - gtk_box_pack_start (GTK_BOX (hbox16), GtkRadioButton_EE, FALSE, FALSE, 0); - gtk_radio_button_set_group (GTK_RADIO_BUTTON (GtkRadioButton_EE), GtkRadioButton_EE_group); - GtkRadioButton_EE_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (GtkRadioButton_EE)); - - GtkRadioButton_IOP = gtk_radio_button_new_with_mnemonic (NULL, _("IOP Debug Mode")); - gtk_widget_show (GtkRadioButton_IOP); - gtk_box_pack_start (GTK_BOX (hbox16), GtkRadioButton_IOP, FALSE, FALSE, 0); - gtk_radio_button_set_group (GTK_RADIO_BUTTON (GtkRadioButton_IOP), GtkRadioButton_EE_group); - GtkRadioButton_EE_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (GtkRadioButton_IOP)); - - hbox6 = gtk_hbox_new (FALSE, 0); - gtk_widget_show (hbox6); - gtk_box_pack_start (GTK_BOX (vbox16), hbox6, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox6), 5); - - hbox7 = gtk_hbox_new (FALSE, 0); - gtk_widget_show (hbox7); - gtk_box_pack_start (GTK_BOX (hbox6), hbox7, TRUE, TRUE, 0); - - scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_show (scrolledwindow1); - gtk_box_pack_start (GTK_BOX (hbox7), scrolledwindow1, TRUE, TRUE, 0); - GTK_WIDGET_UNSET_FLAGS (scrolledwindow1, GTK_CAN_FOCUS); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_ALWAYS, GTK_POLICY_NEVER); - - viewport1 = gtk_viewport_new (NULL, NULL); - gtk_widget_show (viewport1); - gtk_container_add (GTK_CONTAINER (scrolledwindow1), viewport1); - - GtkList_DisView = gtk_tree_view_new (); - gtk_widget_show (GtkList_DisView); - gtk_container_add (GTK_CONTAINER (viewport1), GtkList_DisView); - GTK_WIDGET_UNSET_FLAGS (GtkList_DisView, GTK_CAN_FOCUS); - - GtkVScrollbar_VList = gtk_vscrollbar_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 412, 1, 20, 2))); - gtk_widget_show (GtkVScrollbar_VList); - gtk_box_pack_start (GTK_BOX (hbox7), GtkVScrollbar_VList, TRUE, TRUE, 0); - - vbox22 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox22); - gtk_box_pack_start (GTK_BOX (hbox6), vbox22, TRUE, TRUE, 0); - - vbuttonbox2 = gtk_vbutton_box_new (); - gtk_widget_show (vbuttonbox2); - gtk_box_pack_start (GTK_BOX (vbox22), vbuttonbox2, TRUE, TRUE, 0); - - button52 = gtk_button_new_with_mnemonic (_("Step")); - gtk_widget_show (button52); - gtk_container_add (GTK_CONTAINER (vbuttonbox2), button52); - GTK_WIDGET_SET_FLAGS (button52, GTK_CAN_DEFAULT); - - button53 = gtk_button_new_with_mnemonic (_("Skip")); - gtk_widget_show (button53); - gtk_container_add (GTK_CONTAINER (vbuttonbox2), button53); - GTK_WIDGET_SET_FLAGS (button53, GTK_CAN_DEFAULT); - - button65 = gtk_button_new_with_mnemonic (_("Go")); - gtk_widget_show (button65); - gtk_container_add (GTK_CONTAINER (vbuttonbox2), button65); - GTK_WIDGET_SET_FLAGS (button65, GTK_CAN_DEFAULT); - - button64 = gtk_button_new_with_mnemonic (_("Log On/Off")); - gtk_widget_show (button64); - gtk_container_add (GTK_CONTAINER (vbuttonbox2), button64); - GTK_WIDGET_SET_FLAGS (button64, GTK_CAN_DEFAULT); - - vbuttonbox3 = gtk_vbutton_box_new (); - gtk_widget_show (vbuttonbox3); - gtk_box_pack_start (GTK_BOX (vbox22), vbuttonbox3, TRUE, TRUE, 0); - - button58 = gtk_button_new_with_mnemonic (_("Set PC")); - gtk_widget_show (button58); - gtk_container_add (GTK_CONTAINER (vbuttonbox3), button58); - GTK_WIDGET_SET_FLAGS (button58, GTK_CAN_DEFAULT); - - button59 = gtk_button_new_with_mnemonic (_("Set BP Addr")); - gtk_widget_show (button59); - gtk_container_add (GTK_CONTAINER (vbuttonbox3), button59); - GTK_WIDGET_SET_FLAGS (button59, GTK_CAN_DEFAULT); - - button60 = gtk_button_new_with_mnemonic (_("Set BP Count")); - gtk_widget_show (button60); - gtk_container_add (GTK_CONTAINER (vbuttonbox3), button60); - GTK_WIDGET_SET_FLAGS (button60, GTK_CAN_DEFAULT); - - button61 = gtk_button_new_with_mnemonic (_("Clear BPs")); - gtk_widget_show (button61); - gtk_container_add (GTK_CONTAINER (vbuttonbox3), button61); - GTK_WIDGET_SET_FLAGS (button61, GTK_CAN_DEFAULT); - - vbuttonbox1 = gtk_vbutton_box_new (); - gtk_widget_show (vbuttonbox1); - gtk_box_pack_start (GTK_BOX (vbox22), vbuttonbox1, TRUE, TRUE, 0); - - button39 = gtk_button_new_with_mnemonic (_("Dump code")); - gtk_widget_show (button39); - gtk_container_add (GTK_CONTAINER (vbuttonbox1), button39); - GTK_WIDGET_SET_FLAGS (button39, GTK_CAN_DEFAULT); - - button40 = gtk_button_new_with_mnemonic (_("Raw Dump")); - gtk_widget_show (button40); - gtk_container_add (GTK_CONTAINER (vbuttonbox1), button40); - GTK_WIDGET_SET_FLAGS (button40, GTK_CAN_DEFAULT); - - button41 = gtk_button_new_with_mnemonic (_("Close")); - gtk_widget_show (button41); - gtk_container_add (GTK_CONTAINER (vbuttonbox1), button41); - GTK_WIDGET_SET_FLAGS (button41, GTK_CAN_DEFAULT); - - vbuttonbox4 = gtk_vbutton_box_new (); - gtk_widget_show (vbuttonbox4); - gtk_box_pack_start (GTK_BOX (hbox6), vbuttonbox4, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (vbuttonbox4), 10); - - button68 = gtk_button_new_with_mnemonic (_("memWrite32")); - gtk_widget_show (button68); - gtk_container_add (GTK_CONTAINER (vbuttonbox4), button68); - GTK_WIDGET_SET_FLAGS (button68, GTK_CAN_DEFAULT); - - button69 = gtk_button_new_with_mnemonic (_("button69")); - gtk_widget_show (button69); - gtk_container_add (GTK_CONTAINER (vbuttonbox4), button69); - GTK_WIDGET_SET_FLAGS (button69, GTK_CAN_DEFAULT); - - button70 = gtk_button_new_with_mnemonic (_("button70")); - gtk_widget_show (button70); - gtk_container_add (GTK_CONTAINER (vbuttonbox4), button70); - GTK_WIDGET_SET_FLAGS (button70, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) GtkRadioButton_EE, "toggled", - G_CALLBACK (OnDebug_EEMode), - NULL); - g_signal_connect ((gpointer) GtkRadioButton_IOP, "toggled", - G_CALLBACK (OnDebug_IOPMode), - NULL); - g_signal_connect ((gpointer) button52, "clicked", - G_CALLBACK (OnDebug_Step), - NULL); - g_signal_connect ((gpointer) button53, "clicked", - G_CALLBACK (OnDebug_Skip), - NULL); - g_signal_connect ((gpointer) button65, "clicked", - G_CALLBACK (OnDebug_Go), - NULL); - g_signal_connect ((gpointer) button64, "clicked", - G_CALLBACK (OnDebug_Log), - NULL); - g_signal_connect ((gpointer) button58, "clicked", - G_CALLBACK (OnDebug_SetPC), - NULL); - g_signal_connect ((gpointer) button59, "clicked", - G_CALLBACK (OnDebug_SetBPA), - NULL); - g_signal_connect ((gpointer) button60, "clicked", - G_CALLBACK (OnDebug_SetBPC), - NULL); - g_signal_connect ((gpointer) button61, "clicked", - G_CALLBACK (OnDebug_ClearBPs), - NULL); - g_signal_connect ((gpointer) button39, "clicked", - G_CALLBACK (OnDebug_DumpCode), - NULL); - g_signal_connect ((gpointer) button40, "clicked", - G_CALLBACK (OnDebug_RawDump), - NULL); - g_signal_connect ((gpointer) button41, "clicked", - G_CALLBACK (OnDebug_Close), - NULL); - g_signal_connect ((gpointer) button68, "clicked", - G_CALLBACK (OnDebug_memWrite32), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (DebugWnd, DebugWnd, "DebugWnd"); - GLADE_HOOKUP_OBJECT (DebugWnd, vbox16, "vbox16"); - GLADE_HOOKUP_OBJECT (DebugWnd, hbox16, "hbox16"); - GLADE_HOOKUP_OBJECT (DebugWnd, GtkRadioButton_EE, "GtkRadioButton_EE"); - GLADE_HOOKUP_OBJECT (DebugWnd, GtkRadioButton_IOP, "GtkRadioButton_IOP"); - GLADE_HOOKUP_OBJECT (DebugWnd, hbox6, "hbox6"); - GLADE_HOOKUP_OBJECT (DebugWnd, hbox7, "hbox7"); - GLADE_HOOKUP_OBJECT (DebugWnd, scrolledwindow1, "scrolledwindow1"); - GLADE_HOOKUP_OBJECT (DebugWnd, viewport1, "viewport1"); - GLADE_HOOKUP_OBJECT (DebugWnd, GtkList_DisView, "GtkList_DisView"); - GLADE_HOOKUP_OBJECT (DebugWnd, GtkVScrollbar_VList, "GtkVScrollbar_VList"); - GLADE_HOOKUP_OBJECT (DebugWnd, vbox22, "vbox22"); - GLADE_HOOKUP_OBJECT (DebugWnd, vbuttonbox2, "vbuttonbox2"); - GLADE_HOOKUP_OBJECT (DebugWnd, button52, "button52"); - GLADE_HOOKUP_OBJECT (DebugWnd, button53, "button53"); - GLADE_HOOKUP_OBJECT (DebugWnd, button65, "button65"); - GLADE_HOOKUP_OBJECT (DebugWnd, button64, "button64"); - GLADE_HOOKUP_OBJECT (DebugWnd, vbuttonbox3, "vbuttonbox3"); - GLADE_HOOKUP_OBJECT (DebugWnd, button58, "button58"); - GLADE_HOOKUP_OBJECT (DebugWnd, button59, "button59"); - GLADE_HOOKUP_OBJECT (DebugWnd, button60, "button60"); - GLADE_HOOKUP_OBJECT (DebugWnd, button61, "button61"); - GLADE_HOOKUP_OBJECT (DebugWnd, vbuttonbox1, "vbuttonbox1"); - GLADE_HOOKUP_OBJECT (DebugWnd, button39, "button39"); - GLADE_HOOKUP_OBJECT (DebugWnd, button40, "button40"); - GLADE_HOOKUP_OBJECT (DebugWnd, button41, "button41"); - GLADE_HOOKUP_OBJECT (DebugWnd, vbuttonbox4, "vbuttonbox4"); - GLADE_HOOKUP_OBJECT (DebugWnd, button68, "button68"); - GLADE_HOOKUP_OBJECT (DebugWnd, button69, "button69"); - GLADE_HOOKUP_OBJECT (DebugWnd, button70, "button70"); - - return DebugWnd; -} - -GtkWidget* -create_SetPCDlg (void) -{ - GtkWidget *SetPCDlg; - GtkWidget *vbox17; - GtkWidget *label9; - GtkWidget *hbox8; - GtkWidget *label10; - GtkWidget *GtkEntry_dPC; - GtkWidget *hbuttonbox14; - GtkWidget *button42; - GtkWidget *button43; - - SetPCDlg = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (SetPCDlg), 5); - gtk_window_set_title (GTK_WINDOW (SetPCDlg), _("SetPCDlg")); - - vbox17 = gtk_vbox_new (FALSE, 5); - gtk_widget_show (vbox17); - gtk_container_add (GTK_CONTAINER (SetPCDlg), vbox17); - gtk_container_set_border_width (GTK_CONTAINER (vbox17), 5); - - label9 = gtk_label_new (_("Set New PC Address (in Hex):")); - gtk_widget_show (label9); - gtk_box_pack_start (GTK_BOX (vbox17), label9, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label9), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (label9), 0.1, 0.5); - - hbox8 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox8); - gtk_box_pack_start (GTK_BOX (vbox17), hbox8, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox8), 5); - - label10 = gtk_label_new (_("0x")); - gtk_widget_show (label10); - gtk_box_pack_start (GTK_BOX (hbox8), label10, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label10), GTK_JUSTIFY_CENTER); - - GtkEntry_dPC = gtk_entry_new (); - gtk_widget_show (GtkEntry_dPC); - gtk_box_pack_start (GTK_BOX (hbox8), GtkEntry_dPC, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (GtkEntry_dPC), 8226); - - hbuttonbox14 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox14); - gtk_box_pack_start (GTK_BOX (vbox17), hbuttonbox14, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (hbuttonbox14), 30); - - button42 = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (button42); - gtk_container_add (GTK_CONTAINER (hbuttonbox14), button42); - GTK_WIDGET_SET_FLAGS (button42, GTK_CAN_DEFAULT); - - button43 = gtk_button_new_with_mnemonic (_("Cancel")); - gtk_widget_show (button43); - gtk_container_add (GTK_CONTAINER (hbuttonbox14), button43); - GTK_WIDGET_SET_FLAGS (button43, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) button42, "clicked", - G_CALLBACK (OnSetPC_Ok), - NULL); - g_signal_connect ((gpointer) button43, "clicked", - G_CALLBACK (OnSetPC_Cancel), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (SetPCDlg, SetPCDlg, "SetPCDlg"); - GLADE_HOOKUP_OBJECT (SetPCDlg, vbox17, "vbox17"); - GLADE_HOOKUP_OBJECT (SetPCDlg, label9, "label9"); - GLADE_HOOKUP_OBJECT (SetPCDlg, hbox8, "hbox8"); - GLADE_HOOKUP_OBJECT (SetPCDlg, label10, "label10"); - GLADE_HOOKUP_OBJECT (SetPCDlg, GtkEntry_dPC, "GtkEntry_dPC"); - GLADE_HOOKUP_OBJECT (SetPCDlg, hbuttonbox14, "hbuttonbox14"); - GLADE_HOOKUP_OBJECT (SetPCDlg, button42, "button42"); - GLADE_HOOKUP_OBJECT (SetPCDlg, button43, "button43"); - - return SetPCDlg; -} - -GtkWidget* -create_SetBPADlg (void) -{ - GtkWidget *SetBPADlg; - GtkWidget *vbox18; - GtkWidget *label11; - GtkWidget *hbox9; - GtkWidget *label12; - GtkWidget *GtkEntry_BPA; - GtkWidget *hbuttonbox15; - GtkWidget *button44; - GtkWidget *button45; - - SetBPADlg = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (SetBPADlg), 5); - gtk_window_set_title (GTK_WINDOW (SetBPADlg), _("SetBreakPoint Addr")); - - vbox18 = gtk_vbox_new (FALSE, 5); - gtk_widget_show (vbox18); - gtk_container_add (GTK_CONTAINER (SetBPADlg), vbox18); - gtk_container_set_border_width (GTK_CONTAINER (vbox18), 5); - - label11 = gtk_label_new (_("Set New BP Address (in Hex):")); - gtk_widget_show (label11); - gtk_box_pack_start (GTK_BOX (vbox18), label11, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label11), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (label11), 0.1, 0.5); - - hbox9 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox9); - gtk_box_pack_start (GTK_BOX (vbox18), hbox9, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox9), 5); - - label12 = gtk_label_new (_("0x")); - gtk_widget_show (label12); - gtk_box_pack_start (GTK_BOX (hbox9), label12, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label12), GTK_JUSTIFY_CENTER); - - GtkEntry_BPA = gtk_entry_new (); - gtk_widget_show (GtkEntry_BPA); - gtk_box_pack_start (GTK_BOX (hbox9), GtkEntry_BPA, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (GtkEntry_BPA), 8226); - - hbuttonbox15 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox15); - gtk_box_pack_start (GTK_BOX (vbox18), hbuttonbox15, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (hbuttonbox15), 30); - - button44 = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (button44); - gtk_container_add (GTK_CONTAINER (hbuttonbox15), button44); - GTK_WIDGET_SET_FLAGS (button44, GTK_CAN_DEFAULT); - - button45 = gtk_button_new_with_mnemonic (_("Cancel")); - gtk_widget_show (button45); - gtk_container_add (GTK_CONTAINER (hbuttonbox15), button45); - GTK_WIDGET_SET_FLAGS (button45, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) button44, "clicked", - G_CALLBACK (OnSetBPA_Ok), - NULL); - g_signal_connect ((gpointer) button45, "clicked", - G_CALLBACK (OnSetBPA_Cancel), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (SetBPADlg, SetBPADlg, "SetBPADlg"); - GLADE_HOOKUP_OBJECT (SetBPADlg, vbox18, "vbox18"); - GLADE_HOOKUP_OBJECT (SetBPADlg, label11, "label11"); - GLADE_HOOKUP_OBJECT (SetBPADlg, hbox9, "hbox9"); - GLADE_HOOKUP_OBJECT (SetBPADlg, label12, "label12"); - GLADE_HOOKUP_OBJECT (SetBPADlg, GtkEntry_BPA, "GtkEntry_BPA"); - GLADE_HOOKUP_OBJECT (SetBPADlg, hbuttonbox15, "hbuttonbox15"); - GLADE_HOOKUP_OBJECT (SetBPADlg, button44, "button44"); - GLADE_HOOKUP_OBJECT (SetBPADlg, button45, "button45"); - - return SetBPADlg; -} - -GtkWidget* -create_SetBPCDlg (void) -{ - GtkWidget *SetBPCDlg; - GtkWidget *vbox19; - GtkWidget *label13; - GtkWidget *hbox10; - GtkWidget *label14; - GtkWidget *GtkEntry_BPC; - GtkWidget *hbuttonbox16; - GtkWidget *button46; - GtkWidget *button47; - - SetBPCDlg = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (SetBPCDlg), 5); - gtk_window_set_title (GTK_WINDOW (SetBPCDlg), _("SetBreakPoint Addr")); - - vbox19 = gtk_vbox_new (FALSE, 5); - gtk_widget_show (vbox19); - gtk_container_add (GTK_CONTAINER (SetBPCDlg), vbox19); - gtk_container_set_border_width (GTK_CONTAINER (vbox19), 5); - - label13 = gtk_label_new (_("Set New BP Count (in Hex):")); - gtk_widget_show (label13); - gtk_box_pack_start (GTK_BOX (vbox19), label13, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label13), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (label13), 0.1, 0.5); - - hbox10 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox10); - gtk_box_pack_start (GTK_BOX (vbox19), hbox10, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox10), 5); - - label14 = gtk_label_new (_("0x")); - gtk_widget_show (label14); - gtk_box_pack_start (GTK_BOX (hbox10), label14, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label14), GTK_JUSTIFY_CENTER); - - GtkEntry_BPC = gtk_entry_new (); - gtk_widget_show (GtkEntry_BPC); - gtk_box_pack_start (GTK_BOX (hbox10), GtkEntry_BPC, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (GtkEntry_BPC), 8226); - - hbuttonbox16 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox16); - gtk_box_pack_start (GTK_BOX (vbox19), hbuttonbox16, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (hbuttonbox16), 30); - - button46 = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (button46); - gtk_container_add (GTK_CONTAINER (hbuttonbox16), button46); - GTK_WIDGET_SET_FLAGS (button46, GTK_CAN_DEFAULT); - - button47 = gtk_button_new_with_mnemonic (_("Cancel")); - gtk_widget_show (button47); - gtk_container_add (GTK_CONTAINER (hbuttonbox16), button47); - GTK_WIDGET_SET_FLAGS (button47, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) button46, "clicked", - G_CALLBACK (OnSetBPC_Ok), - NULL); - g_signal_connect ((gpointer) button47, "clicked", - G_CALLBACK (OnSetBPC_Cancel), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (SetBPCDlg, SetBPCDlg, "SetBPCDlg"); - GLADE_HOOKUP_OBJECT (SetBPCDlg, vbox19, "vbox19"); - GLADE_HOOKUP_OBJECT (SetBPCDlg, label13, "label13"); - GLADE_HOOKUP_OBJECT (SetBPCDlg, hbox10, "hbox10"); - GLADE_HOOKUP_OBJECT (SetBPCDlg, label14, "label14"); - GLADE_HOOKUP_OBJECT (SetBPCDlg, GtkEntry_BPC, "GtkEntry_BPC"); - GLADE_HOOKUP_OBJECT (SetBPCDlg, hbuttonbox16, "hbuttonbox16"); - GLADE_HOOKUP_OBJECT (SetBPCDlg, button46, "button46"); - GLADE_HOOKUP_OBJECT (SetBPCDlg, button47, "button47"); - - return SetBPCDlg; -} - -GtkWidget* -create_DumpCDlg (void) -{ - GtkWidget *DumpCDlg; - GtkWidget *vbox20; - GtkWidget *label15; - GtkWidget *hbox11; - GtkWidget *label16; - GtkWidget *GtkEntry_DumpCF; - GtkWidget *hbox12; - GtkWidget *label17; - GtkWidget *GtkEntry_DumpCT; - GtkWidget *label21; - GtkWidget *hbuttonbox17; - GtkWidget *button48; - GtkWidget *button49; - - DumpCDlg = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (DumpCDlg), 5); - gtk_window_set_title (GTK_WINDOW (DumpCDlg), _("Dump code")); - - vbox20 = gtk_vbox_new (FALSE, 5); - gtk_widget_show (vbox20); - gtk_container_add (GTK_CONTAINER (DumpCDlg), vbox20); - gtk_container_set_border_width (GTK_CONTAINER (vbox20), 5); - - label15 = gtk_label_new (_("Set Dump Addr (in Hex):")); - gtk_widget_show (label15); - gtk_box_pack_start (GTK_BOX (vbox20), label15, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (label15), 0.1, 0.5); - - hbox11 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox11); - gtk_box_pack_start (GTK_BOX (vbox20), hbox11, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox11), 5); - - label16 = gtk_label_new (_("From 0x")); - gtk_widget_show (label16); - gtk_box_pack_start (GTK_BOX (hbox11), label16, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label16), GTK_JUSTIFY_CENTER); - gtk_label_set_line_wrap (GTK_LABEL (label16), TRUE); - - GtkEntry_DumpCF = gtk_entry_new (); - gtk_widget_show (GtkEntry_DumpCF); - gtk_box_pack_start (GTK_BOX (hbox11), GtkEntry_DumpCF, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (GtkEntry_DumpCF), 8226); - - hbox12 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox12); - gtk_box_pack_start (GTK_BOX (vbox20), hbox12, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox12), 5); - - label17 = gtk_label_new (_("To 0x")); - gtk_widget_show (label17); - gtk_box_pack_start (GTK_BOX (hbox12), label17, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label17), GTK_JUSTIFY_CENTER); - - GtkEntry_DumpCT = gtk_entry_new (); - gtk_widget_show (GtkEntry_DumpCT); - gtk_box_pack_start (GTK_BOX (hbox12), GtkEntry_DumpCT, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (GtkEntry_DumpCT), 8226); - - label21 = gtk_label_new (_("Dump File = \"dump.txt\"")); - gtk_widget_show (label21); - gtk_box_pack_start (GTK_BOX (vbox20), label21, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (label21), 0.1, 0.5); - - hbuttonbox17 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox17); - gtk_box_pack_start (GTK_BOX (vbox20), hbuttonbox17, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (hbuttonbox17), 30); - - button48 = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (button48); - gtk_container_add (GTK_CONTAINER (hbuttonbox17), button48); - GTK_WIDGET_SET_FLAGS (button48, GTK_CAN_DEFAULT); - - button49 = gtk_button_new_with_mnemonic (_("Cancel")); - gtk_widget_show (button49); - gtk_container_add (GTK_CONTAINER (hbuttonbox17), button49); - GTK_WIDGET_SET_FLAGS (button49, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) button48, "clicked", - G_CALLBACK (OnDumpC_Ok), - NULL); - g_signal_connect ((gpointer) button49, "clicked", - G_CALLBACK (OnDumpC_Cancel), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (DumpCDlg, DumpCDlg, "DumpCDlg"); - GLADE_HOOKUP_OBJECT (DumpCDlg, vbox20, "vbox20"); - GLADE_HOOKUP_OBJECT (DumpCDlg, label15, "label15"); - GLADE_HOOKUP_OBJECT (DumpCDlg, hbox11, "hbox11"); - GLADE_HOOKUP_OBJECT (DumpCDlg, label16, "label16"); - GLADE_HOOKUP_OBJECT (DumpCDlg, GtkEntry_DumpCF, "GtkEntry_DumpCF"); - GLADE_HOOKUP_OBJECT (DumpCDlg, hbox12, "hbox12"); - GLADE_HOOKUP_OBJECT (DumpCDlg, label17, "label17"); - GLADE_HOOKUP_OBJECT (DumpCDlg, GtkEntry_DumpCT, "GtkEntry_DumpCT"); - GLADE_HOOKUP_OBJECT (DumpCDlg, label21, "label21"); - GLADE_HOOKUP_OBJECT (DumpCDlg, hbuttonbox17, "hbuttonbox17"); - GLADE_HOOKUP_OBJECT (DumpCDlg, button48, "button48"); - GLADE_HOOKUP_OBJECT (DumpCDlg, button49, "button49"); - - return DumpCDlg; -} - -GtkWidget* -create_DumpRDlg (void) -{ - GtkWidget *DumpRDlg; - GtkWidget *vbox21; - GtkWidget *label18; - GtkWidget *hbox13; - GtkWidget *label19; - GtkWidget *GtkEntry_DumpRF; - GtkWidget *hbox14; - GtkWidget *label20; - GtkWidget *GtkEntry_DumpRT; - GtkWidget *label22; - GtkWidget *hbuttonbox18; - GtkWidget *button50; - GtkWidget *button51; - - DumpRDlg = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (DumpRDlg), 5); - gtk_window_set_title (GTK_WINDOW (DumpRDlg), _("Raw Dump")); - - vbox21 = gtk_vbox_new (FALSE, 5); - gtk_widget_show (vbox21); - gtk_container_add (GTK_CONTAINER (DumpRDlg), vbox21); - gtk_container_set_border_width (GTK_CONTAINER (vbox21), 5); - - label18 = gtk_label_new (_("Set Dump Addr (in Hex):")); - gtk_widget_show (label18); - gtk_box_pack_start (GTK_BOX (vbox21), label18, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label18), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (label18), 0.1, 0.5); - - hbox13 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox13); - gtk_box_pack_start (GTK_BOX (vbox21), hbox13, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox13), 5); - - label19 = gtk_label_new (_("From 0x")); - gtk_widget_show (label19); - gtk_box_pack_start (GTK_BOX (hbox13), label19, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label19), GTK_JUSTIFY_CENTER); - gtk_label_set_line_wrap (GTK_LABEL (label19), TRUE); - - GtkEntry_DumpRF = gtk_entry_new (); - gtk_widget_show (GtkEntry_DumpRF); - gtk_box_pack_start (GTK_BOX (hbox13), GtkEntry_DumpRF, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (GtkEntry_DumpRF), 8226); - - hbox14 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox14); - gtk_box_pack_start (GTK_BOX (vbox21), hbox14, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox14), 5); - - label20 = gtk_label_new (_("To 0x")); - gtk_widget_show (label20); - gtk_box_pack_start (GTK_BOX (hbox14), label20, FALSE, FALSE, 0); - - GtkEntry_DumpRT = gtk_entry_new (); - gtk_widget_show (GtkEntry_DumpRT); - gtk_box_pack_start (GTK_BOX (hbox14), GtkEntry_DumpRT, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (GtkEntry_DumpRT), 8226); - - label22 = gtk_label_new (_("Dump File = \"dump.txt\"")); - gtk_widget_show (label22); - gtk_box_pack_start (GTK_BOX (vbox21), label22, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (label22), 0.1, 0.5); - - hbuttonbox18 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox18); - gtk_box_pack_start (GTK_BOX (vbox21), hbuttonbox18, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (hbuttonbox18), 30); - - button50 = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (button50); - gtk_container_add (GTK_CONTAINER (hbuttonbox18), button50); - GTK_WIDGET_SET_FLAGS (button50, GTK_CAN_DEFAULT); - - button51 = gtk_button_new_with_mnemonic (_("Cancel")); - gtk_widget_show (button51); - gtk_container_add (GTK_CONTAINER (hbuttonbox18), button51); - GTK_WIDGET_SET_FLAGS (button51, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) button50, "clicked", - G_CALLBACK (OnDumpR_Ok), - NULL); - g_signal_connect ((gpointer) button51, "clicked", - G_CALLBACK (OnDumpR_Cancel), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (DumpRDlg, DumpRDlg, "DumpRDlg"); - GLADE_HOOKUP_OBJECT (DumpRDlg, vbox21, "vbox21"); - GLADE_HOOKUP_OBJECT (DumpRDlg, label18, "label18"); - GLADE_HOOKUP_OBJECT (DumpRDlg, hbox13, "hbox13"); - GLADE_HOOKUP_OBJECT (DumpRDlg, label19, "label19"); - GLADE_HOOKUP_OBJECT (DumpRDlg, GtkEntry_DumpRF, "GtkEntry_DumpRF"); - GLADE_HOOKUP_OBJECT (DumpRDlg, hbox14, "hbox14"); - GLADE_HOOKUP_OBJECT (DumpRDlg, label20, "label20"); - GLADE_HOOKUP_OBJECT (DumpRDlg, GtkEntry_DumpRT, "GtkEntry_DumpRT"); - GLADE_HOOKUP_OBJECT (DumpRDlg, label22, "label22"); - GLADE_HOOKUP_OBJECT (DumpRDlg, hbuttonbox18, "hbuttonbox18"); - GLADE_HOOKUP_OBJECT (DumpRDlg, button50, "button50"); - GLADE_HOOKUP_OBJECT (DumpRDlg, button51, "button51"); - - return DumpRDlg; -} - -GtkWidget* -create_Logging (void) -{ - GtkWidget *Logging; - GtkWidget *vbox23; - GtkWidget *hbox15; - GtkWidget *frame4; - GtkWidget *table3; - GtkWidget *Log0; - GtkWidget *Log1; - GtkWidget *Log2; - GtkWidget *Log3; - GtkWidget *Log4; - GtkWidget *Log5; - GtkWidget *Log6; - GtkWidget *Log7; - GtkWidget *Log8; - GtkWidget *Log9; - GtkWidget *Log10; - GtkWidget *Log11; - GtkWidget *Log12; - GtkWidget *Log13; - GtkWidget *Log15; - GtkWidget *Log14; - GtkWidget *Log16; - GtkWidget *Log31; - GtkWidget *Log; - GtkWidget *Log30; - GtkWidget *label33; - GtkWidget *frame5; - GtkWidget *table4; - GtkWidget *Log27; - GtkWidget *Log26; - GtkWidget *Log25; - GtkWidget *Log24; - GtkWidget *Log23; - GtkWidget *Log22; - GtkWidget *Log21; - GtkWidget *Log20; - GtkWidget *Log28; - GtkWidget *label34; - GtkWidget *hbuttonbox19; - GtkWidget *button66; - GtkWidget *button67; - - Logging = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (Logging), 5); - gtk_window_set_title (GTK_WINDOW (Logging), _("Logging")); - - vbox23 = gtk_vbox_new (FALSE, 5); - gtk_widget_show (vbox23); - gtk_container_add (GTK_CONTAINER (Logging), vbox23); - gtk_container_set_border_width (GTK_CONTAINER (vbox23), 5); - - hbox15 = gtk_hbox_new (FALSE, 5); - gtk_widget_show (hbox15); - gtk_box_pack_start (GTK_BOX (vbox23), hbox15, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox15), 5); - - frame4 = gtk_frame_new (NULL); - gtk_widget_show (frame4); - gtk_box_pack_start (GTK_BOX (hbox15), frame4, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (frame4), 5); - - table3 = gtk_table_new (8, 3, FALSE); - gtk_widget_show (table3); - gtk_container_add (GTK_CONTAINER (frame4), table3); - gtk_container_set_border_width (GTK_CONTAINER (table3), 5); - gtk_table_set_row_spacings (GTK_TABLE (table3), 5); - gtk_table_set_col_spacings (GTK_TABLE (table3), 5); - - Log0 = gtk_check_button_new_with_mnemonic (_("Cpu Log")); - gtk_widget_show (Log0); - gtk_table_attach (GTK_TABLE (table3), Log0, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log1 = gtk_check_button_new_with_mnemonic (_("Mem Log")); - gtk_widget_show (Log1); - gtk_table_attach (GTK_TABLE (table3), Log1, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log2 = gtk_check_button_new_with_mnemonic (_("Hw Log")); - gtk_widget_show (Log2); - gtk_table_attach (GTK_TABLE (table3), Log2, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log3 = gtk_check_button_new_with_mnemonic (_("Dma Log")); - gtk_widget_show (Log3); - gtk_table_attach (GTK_TABLE (table3), Log3, 0, 1, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log4 = gtk_check_button_new_with_mnemonic (_("Bios Log")); - gtk_widget_show (Log4); - gtk_table_attach (GTK_TABLE (table3), Log4, 0, 1, 4, 5, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log5 = gtk_check_button_new_with_mnemonic (_("Elf Log")); - gtk_widget_show (Log5); - gtk_table_attach (GTK_TABLE (table3), Log5, 0, 1, 5, 6, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log6 = gtk_check_button_new_with_mnemonic (_("Fpu Log")); - gtk_widget_show (Log6); - gtk_table_attach (GTK_TABLE (table3), Log6, 0, 1, 6, 7, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log7 = gtk_check_button_new_with_mnemonic (_("MMI Log")); - gtk_widget_show (Log7); - gtk_table_attach (GTK_TABLE (table3), Log7, 0, 1, 7, 8, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log8 = gtk_check_button_new_with_mnemonic (_("VU0 Log")); - gtk_widget_show (Log8); - gtk_table_attach (GTK_TABLE (table3), Log8, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log9 = gtk_check_button_new_with_mnemonic (_("Cop0 Log")); - gtk_widget_show (Log9); - gtk_table_attach (GTK_TABLE (table3), Log9, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log10 = gtk_check_button_new_with_mnemonic (_("Vif Log")); - gtk_widget_show (Log10); - gtk_table_attach (GTK_TABLE (table3), Log10, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log11 = gtk_check_button_new_with_mnemonic (_("SPR Log")); - gtk_widget_show (Log11); - gtk_table_attach (GTK_TABLE (table3), Log11, 1, 2, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log12 = gtk_check_button_new_with_mnemonic (_("GIF Log")); - gtk_widget_show (Log12); - gtk_table_attach (GTK_TABLE (table3), Log12, 1, 2, 4, 5, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log13 = gtk_check_button_new_with_mnemonic (_("Sif Log")); - gtk_widget_show (Log13); - gtk_table_attach (GTK_TABLE (table3), Log13, 1, 2, 5, 6, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log15 = gtk_check_button_new_with_mnemonic (_("VU Micro Log")); - gtk_widget_show (Log15); - gtk_table_attach (GTK_TABLE (table3), Log15, 1, 2, 7, 8, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log14 = gtk_check_button_new_with_mnemonic (_("IPU Log")); - gtk_widget_show (Log14); - gtk_table_attach (GTK_TABLE (table3), Log14, 1, 2, 6, 7, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log16 = gtk_check_button_new_with_mnemonic (_("RPC Log")); - gtk_widget_show (Log16); - gtk_table_attach (GTK_TABLE (table3), Log16, 2, 3, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log31 = gtk_check_button_new_with_mnemonic (_("Log to STDOUT")); - gtk_widget_show (Log31); - gtk_table_attach (GTK_TABLE (table3), Log31, 2, 3, 5, 6, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log = gtk_check_button_new_with_mnemonic (_("Log")); - gtk_widget_show (Log); - gtk_table_attach (GTK_TABLE (table3), Log, 2, 3, 7, 8, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log30 = gtk_check_button_new_with_mnemonic (_("SYMs Log")); - gtk_widget_show (Log30); - gtk_table_attach (GTK_TABLE (table3), Log30, 2, 3, 6, 7, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - label33 = gtk_label_new (_("EE Logs")); - gtk_widget_show (label33); - gtk_frame_set_label_widget (GTK_FRAME (frame4), label33); - - frame5 = gtk_frame_new (NULL); - gtk_widget_show (frame5); - gtk_box_pack_start (GTK_BOX (hbox15), frame5, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (frame5), 5); - - table4 = gtk_table_new (8, 2, FALSE); - gtk_widget_show (table4); - gtk_container_add (GTK_CONTAINER (frame5), table4); - gtk_container_set_border_width (GTK_CONTAINER (table4), 5); - gtk_table_set_row_spacings (GTK_TABLE (table4), 5); - gtk_table_set_col_spacings (GTK_TABLE (table4), 5); - - Log27 = gtk_check_button_new_with_mnemonic (_("Cdr Log")); - gtk_widget_show (Log27); - gtk_table_attach (GTK_TABLE (table4), Log27, 0, 1, 7, 8, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log26 = gtk_check_button_new_with_mnemonic (_("Gte Log")); - gtk_widget_show (Log26); - gtk_table_attach (GTK_TABLE (table4), Log26, 0, 1, 6, 7, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log25 = gtk_check_button_new_with_mnemonic (_("Pad Log")); - gtk_widget_show (Log25); - gtk_table_attach (GTK_TABLE (table4), Log25, 0, 1, 5, 6, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log24 = gtk_check_button_new_with_mnemonic (_("Dma Log")); - gtk_widget_show (Log24); - gtk_table_attach (GTK_TABLE (table4), Log24, 0, 1, 4, 5, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log23 = gtk_check_button_new_with_mnemonic (_("Bios Log")); - gtk_widget_show (Log23); - gtk_table_attach (GTK_TABLE (table4), Log23, 0, 1, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log22 = gtk_check_button_new_with_mnemonic (_("Hw Log")); - gtk_widget_show (Log22); - gtk_table_attach (GTK_TABLE (table4), Log22, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log21 = gtk_check_button_new_with_mnemonic (_("Mem Log")); - gtk_widget_show (Log21); - gtk_table_attach (GTK_TABLE (table4), Log21, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log20 = gtk_check_button_new_with_mnemonic (_("IOP Log")); - gtk_widget_show (Log20); - gtk_table_attach (GTK_TABLE (table4), Log20, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - Log28 = gtk_check_button_new_with_mnemonic (_("GPU Log")); - gtk_widget_show (Log28); - gtk_table_attach (GTK_TABLE (table4), Log28, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - label34 = gtk_label_new (_("IOP Logs")); - gtk_widget_show (label34); - gtk_frame_set_label_widget (GTK_FRAME (frame5), label34); - - hbuttonbox19 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox19); - gtk_box_pack_start (GTK_BOX (vbox23), hbuttonbox19, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (hbuttonbox19), 30); - - button66 = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (button66); - gtk_container_add (GTK_CONTAINER (hbuttonbox19), button66); - GTK_WIDGET_SET_FLAGS (button66, GTK_CAN_DEFAULT); - - button67 = gtk_button_new_with_mnemonic (_("Cancel")); - gtk_widget_show (button67); - gtk_container_add (GTK_CONTAINER (hbuttonbox19), button67); - GTK_WIDGET_SET_FLAGS (button67, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) button66, "clicked", - G_CALLBACK (OnLogging_Ok), - NULL); - g_signal_connect ((gpointer) button67, "clicked", - G_CALLBACK (OnLogging_Cancel), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (Logging, Logging, "Logging"); - GLADE_HOOKUP_OBJECT (Logging, vbox23, "vbox23"); - GLADE_HOOKUP_OBJECT (Logging, hbox15, "hbox15"); - GLADE_HOOKUP_OBJECT (Logging, frame4, "frame4"); - GLADE_HOOKUP_OBJECT (Logging, table3, "table3"); - GLADE_HOOKUP_OBJECT (Logging, Log0, "Log0"); - GLADE_HOOKUP_OBJECT (Logging, Log1, "Log1"); - GLADE_HOOKUP_OBJECT (Logging, Log2, "Log2"); - GLADE_HOOKUP_OBJECT (Logging, Log3, "Log3"); - GLADE_HOOKUP_OBJECT (Logging, Log4, "Log4"); - GLADE_HOOKUP_OBJECT (Logging, Log5, "Log5"); - GLADE_HOOKUP_OBJECT (Logging, Log6, "Log6"); - GLADE_HOOKUP_OBJECT (Logging, Log7, "Log7"); - GLADE_HOOKUP_OBJECT (Logging, Log8, "Log8"); - GLADE_HOOKUP_OBJECT (Logging, Log9, "Log9"); - GLADE_HOOKUP_OBJECT (Logging, Log10, "Log10"); - GLADE_HOOKUP_OBJECT (Logging, Log11, "Log11"); - GLADE_HOOKUP_OBJECT (Logging, Log12, "Log12"); - GLADE_HOOKUP_OBJECT (Logging, Log13, "Log13"); - GLADE_HOOKUP_OBJECT (Logging, Log15, "Log15"); - GLADE_HOOKUP_OBJECT (Logging, Log14, "Log14"); - GLADE_HOOKUP_OBJECT (Logging, Log16, "Log16"); - GLADE_HOOKUP_OBJECT (Logging, Log31, "Log31"); - GLADE_HOOKUP_OBJECT (Logging, Log, "Log"); - GLADE_HOOKUP_OBJECT (Logging, Log30, "Log30"); - GLADE_HOOKUP_OBJECT (Logging, label33, "label33"); - GLADE_HOOKUP_OBJECT (Logging, frame5, "frame5"); - GLADE_HOOKUP_OBJECT (Logging, table4, "table4"); - GLADE_HOOKUP_OBJECT (Logging, Log27, "Log27"); - GLADE_HOOKUP_OBJECT (Logging, Log26, "Log26"); - GLADE_HOOKUP_OBJECT (Logging, Log25, "Log25"); - GLADE_HOOKUP_OBJECT (Logging, Log24, "Log24"); - GLADE_HOOKUP_OBJECT (Logging, Log23, "Log23"); - GLADE_HOOKUP_OBJECT (Logging, Log22, "Log22"); - GLADE_HOOKUP_OBJECT (Logging, Log21, "Log21"); - GLADE_HOOKUP_OBJECT (Logging, Log20, "Log20"); - GLADE_HOOKUP_OBJECT (Logging, Log28, "Log28"); - GLADE_HOOKUP_OBJECT (Logging, label34, "label34"); - GLADE_HOOKUP_OBJECT (Logging, hbuttonbox19, "hbuttonbox19"); - GLADE_HOOKUP_OBJECT (Logging, button66, "button66"); - GLADE_HOOKUP_OBJECT (Logging, button67, "button67"); - - return Logging; -} - -GtkWidget* -create_CmdLine (void) -{ - GtkWidget *CmdLine; - GtkWidget *vbox24; - GtkWidget *GtkLabel_Text; - GtkWidget *hbox17; - GtkWidget *GtkEntry_dCMDLINE; - GtkWidget *GtkLabel_Note; - GtkWidget *hbuttonbox20; - GtkWidget *GtkButton_Ok; - GtkWidget *GtkButton_Cancel; - GtkTooltips *tooltips; - - tooltips = gtk_tooltips_new (); - - CmdLine = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (CmdLine), 5); - gtk_window_set_title (GTK_WINDOW (CmdLine), _("Program arguments")); - gtk_window_set_modal (GTK_WINDOW (CmdLine), TRUE); - - vbox24 = gtk_vbox_new (FALSE, 5); - gtk_widget_show (vbox24); - gtk_container_add (GTK_CONTAINER (CmdLine), vbox24); - gtk_container_set_border_width (GTK_CONTAINER (vbox24), 5); - - GtkLabel_Text = gtk_label_new (_("Fill in the command line arguments for opened program:")); - gtk_widget_show (GtkLabel_Text); - gtk_box_pack_start (GTK_BOX (vbox24), GtkLabel_Text, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (GtkLabel_Text), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment (GTK_MISC (GtkLabel_Text), 0.1, 0.5); - - hbox17 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox17); - gtk_box_pack_start (GTK_BOX (vbox24), hbox17, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox17), 5); - - GtkEntry_dCMDLINE = gtk_entry_new (); - gtk_widget_show (GtkEntry_dCMDLINE); - gtk_box_pack_start (GTK_BOX (hbox17), GtkEntry_dCMDLINE, TRUE, TRUE, 0); - gtk_tooltips_set_tip (tooltips, GtkEntry_dCMDLINE, _("If you don't know what to write leave it blank"), NULL); - gtk_entry_set_invisible_char (GTK_ENTRY (GtkEntry_dCMDLINE), 8226); - - GtkLabel_Note = gtk_label_new (_("Note: this is intented for developers only.")); - gtk_widget_show (GtkLabel_Note); - gtk_box_pack_start (GTK_BOX (vbox24), GtkLabel_Note, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (GtkLabel_Note), GTK_JUSTIFY_CENTER); - - hbuttonbox20 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox20); - gtk_box_pack_start (GTK_BOX (vbox24), hbuttonbox20, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (hbuttonbox20), 30); - - GtkButton_Ok = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (GtkButton_Ok); - gtk_container_add (GTK_CONTAINER (hbuttonbox20), GtkButton_Ok); - GTK_WIDGET_SET_FLAGS (GtkButton_Ok, GTK_CAN_DEFAULT); - - GtkButton_Cancel = gtk_button_new_with_mnemonic (_("Cancel")); - gtk_widget_show (GtkButton_Cancel); - gtk_container_add (GTK_CONTAINER (hbuttonbox20), GtkButton_Cancel); - GTK_WIDGET_SET_FLAGS (GtkButton_Cancel, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) GtkButton_Ok, "clicked", - G_CALLBACK (OnArguments_Ok), - NULL); - g_signal_connect ((gpointer) GtkButton_Cancel, "clicked", - G_CALLBACK (OnArguments_Cancel), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (CmdLine, CmdLine, "CmdLine"); - GLADE_HOOKUP_OBJECT (CmdLine, vbox24, "vbox24"); - GLADE_HOOKUP_OBJECT (CmdLine, GtkLabel_Text, "GtkLabel_Text"); - GLADE_HOOKUP_OBJECT (CmdLine, hbox17, "hbox17"); - GLADE_HOOKUP_OBJECT (CmdLine, GtkEntry_dCMDLINE, "GtkEntry_dCMDLINE"); - GLADE_HOOKUP_OBJECT (CmdLine, GtkLabel_Note, "GtkLabel_Note"); - GLADE_HOOKUP_OBJECT (CmdLine, hbuttonbox20, "hbuttonbox20"); - GLADE_HOOKUP_OBJECT (CmdLine, GtkButton_Ok, "GtkButton_Ok"); - GLADE_HOOKUP_OBJECT (CmdLine, GtkButton_Cancel, "GtkButton_Cancel"); - GLADE_HOOKUP_OBJECT_NO_REF (CmdLine, tooltips, "tooltips"); - - return CmdLine; -} - -GtkWidget* -create_MemWrite32 (void) -{ - GtkWidget *MemWrite32; - GtkWidget *vbox25; - GtkWidget *hbox18; - GtkWidget *label27; - GtkWidget *label25; - GtkWidget *GtkEntry_Mem; - GtkWidget *hbox19; - GtkWidget *label28; - GtkWidget *label26; - GtkWidget *GtkEntry_Data; - GtkWidget *hbuttonbox22; - GtkWidget *button71; - GtkWidget *button72; - - MemWrite32 = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_container_set_border_width (GTK_CONTAINER (MemWrite32), 5); - gtk_window_set_title (GTK_WINDOW (MemWrite32), _("memWrite32")); - - vbox25 = gtk_vbox_new (FALSE, 5); - gtk_widget_show (vbox25); - gtk_container_add (GTK_CONTAINER (MemWrite32), vbox25); - gtk_container_set_border_width (GTK_CONTAINER (vbox25), 5); - - hbox18 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox18); - gtk_box_pack_start (GTK_BOX (vbox25), hbox18, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox18), 5); - - label27 = gtk_label_new (_("Address ")); - gtk_widget_show (label27); - gtk_box_pack_start (GTK_BOX (hbox18), label27, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label27), GTK_JUSTIFY_CENTER); - - label25 = gtk_label_new (_("0x")); - gtk_widget_show (label25); - gtk_box_pack_start (GTK_BOX (hbox18), label25, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label25), GTK_JUSTIFY_CENTER); - - GtkEntry_Mem = gtk_entry_new (); - gtk_widget_show (GtkEntry_Mem); - gtk_box_pack_start (GTK_BOX (hbox18), GtkEntry_Mem, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (GtkEntry_Mem), 8226); - - hbox19 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox19); - gtk_box_pack_start (GTK_BOX (vbox25), hbox19, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox19), 5); - - label28 = gtk_label_new (_("Data ")); - gtk_widget_show (label28); - gtk_box_pack_start (GTK_BOX (hbox19), label28, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label28), GTK_JUSTIFY_CENTER); - - label26 = gtk_label_new (_("0x")); - gtk_widget_show (label26); - gtk_box_pack_start (GTK_BOX (hbox19), label26, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label26), GTK_JUSTIFY_CENTER); - - GtkEntry_Data = gtk_entry_new (); - gtk_widget_show (GtkEntry_Data); - gtk_box_pack_start (GTK_BOX (hbox19), GtkEntry_Data, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (GtkEntry_Data), 8226); - - hbuttonbox22 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox22); - gtk_box_pack_start (GTK_BOX (vbox25), hbuttonbox22, TRUE, TRUE, 0); - gtk_box_set_spacing (GTK_BOX (hbuttonbox22), 30); - - button71 = gtk_button_new_with_mnemonic (_("Ok")); - gtk_widget_show (button71); - gtk_container_add (GTK_CONTAINER (hbuttonbox22), button71); - GTK_WIDGET_SET_FLAGS (button71, GTK_CAN_DEFAULT); - - button72 = gtk_button_new_with_mnemonic (_("Cancel")); - gtk_widget_show (button72); - gtk_container_add (GTK_CONTAINER (hbuttonbox22), button72); - GTK_WIDGET_SET_FLAGS (button72, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) button71, "clicked", - G_CALLBACK (OnMemWrite32_Ok), - NULL); - g_signal_connect ((gpointer) button72, "clicked", - G_CALLBACK (OnMemWrite32_Cancel), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (MemWrite32, MemWrite32, "MemWrite32"); - GLADE_HOOKUP_OBJECT (MemWrite32, vbox25, "vbox25"); - GLADE_HOOKUP_OBJECT (MemWrite32, hbox18, "hbox18"); - GLADE_HOOKUP_OBJECT (MemWrite32, label27, "label27"); - GLADE_HOOKUP_OBJECT (MemWrite32, label25, "label25"); - GLADE_HOOKUP_OBJECT (MemWrite32, GtkEntry_Mem, "GtkEntry_Mem"); - GLADE_HOOKUP_OBJECT (MemWrite32, hbox19, "hbox19"); - GLADE_HOOKUP_OBJECT (MemWrite32, label28, "label28"); - GLADE_HOOKUP_OBJECT (MemWrite32, label26, "label26"); - GLADE_HOOKUP_OBJECT (MemWrite32, GtkEntry_Data, "GtkEntry_Data"); - GLADE_HOOKUP_OBJECT (MemWrite32, hbuttonbox22, "hbuttonbox22"); - GLADE_HOOKUP_OBJECT (MemWrite32, button71, "button71"); - GLADE_HOOKUP_OBJECT (MemWrite32, button72, "button72"); - - return MemWrite32; -} - diff --git a/pcsx2v2/Linux/interface.h b/pcsx2v2/Linux/interface.h deleted file mode 100644 index fad1ec7..0000000 --- a/pcsx2v2/Linux/interface.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Pcsx2 - Pc Ps2 Emulator - * Copyright (C) 2002-2008 Pcsx2 Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -GtkWidget* create_MainWindow (void); -GtkWidget* create_AboutDlg (void); -GtkWidget* create_ConfDlg (void); -GtkWidget* create_CpuDlg (void); -GtkWidget* create_DebugWnd (void); -GtkWidget* create_SetPCDlg (void); -GtkWidget* create_SetBPADlg (void); -GtkWidget* create_SetBPCDlg (void); -GtkWidget* create_DumpCDlg (void); -GtkWidget* create_DumpRDlg (void); -GtkWidget* create_Logging (void); -GtkWidget* create_CmdLine (void); -GtkWidget* create_MemWrite32 (void); diff --git a/pcsx2v2/Linux/pcsx2.glade b/pcsx2v2/Linux/pcsx2.glade deleted file mode 100644 index 7786648..0000000 --- a/pcsx2v2/Linux/pcsx2.glade +++ /dev/null @@ -1,5235 +0,0 @@ - - - - - - - True - PCSX - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_CENTER - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - - True - False - 0 - - - - True - GTK_PACK_DIRECTION_LTR - GTK_PACK_DIRECTION_LTR - - - - True - _File - True - - - - - - - True - _Run CD - True - - - - - - - True - _Load Elf - True - - - - - - - True - - - - - - True - States - True - - - - - - - True - Load - True - - - - - - - True - Slot 1 - True - - - - - - - True - Slot 2 - True - - - - - - - True - Slot 3 - True - - - - - - - True - Slot 4 - True - - - - - - - True - Slot 5 - True - - - - - - - True - Other... - True - - - - - - - - - - - True - Save - True - - - - - - - True - Slot 1 - True - - - - - - - True - Slot 2 - True - - - - - - - True - Slot 3 - True - - - - - - - True - Slot 4 - True - - - - - - - True - Slot 5 - True - - - - - - - True - Other... - True - - - - - - - - - - - - - - - True - E_xit - True - - - - - - - - - - - True - _Run - True - - - - - - - True - E_xecute - True - - - - - - - True - Re_set - True - - - - - - - True - _Arguments - True - - - - - - - - - - - True - _Config - True - - - - - - - True - _Configure - True - - - - - - - True - - - - - - True - _Graphics - True - - - - - - - True - C_ontrollers - True - - - - - - - True - _Sound - True - - - - - - - True - _Cdvdrom - True - - - - - - - True - D_ev9 - True - - - - - - - True - U_SB - True - - - - - - - True - Fire_Wire - True - - - - - - - True - - - - - - True - C_pu - True - - - - - - - - - - - True - _Language - True - - - - - - True - _Misc - True - - - - - - - True - Patch _Browser - True - - - - - - - True - Patch _Finder - True - - - - - - - True - - - - - - True - Enable _Console - True - False - - - - - - - True - Enable _Patches - True - False - - - - - - - - - - - True - _Debug - True - - - - - - - True - Enter Debugger ... - True - - - - - - - True - Logging - True - - - - - - - - - - - True - _Help - True - - - - - - - True - &About... - True - - - - - - - - - - 0 - False - False - - - - - - True - pcsxAbout.bmp - 0.5 - 0.5 - 0 - 0 - - - 1 - True - True - - - - - - True - False - 0 - - - - - - - 0 - True - True - - - - - - - - 10 - True - Pcsx About - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - True - False - 0 - - - - True - False - 0 - - - - True - False - 0 - - - - True - PCSX2 - -Version x.x - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - 5 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - 5 - True - False - 0 - - - - True - written by... - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - 0 - False - False - - - - - 0 - True - True - - - - - - True - pcsxAbout.xpm - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - 0 - True - True - - - - - - 5 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - 5 - True - False - 0 - - - - True - greets to... - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - 0 - False - False - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 30 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - - - - 10 - True - Conf - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - True - False - 0 - - - - True - 14 - 2 - False - 0 - 15 - - - - True - False - True - False - True - False - - - - True - True - True - True - 0 - - True - - False - - - - - - True - GTK_SELECTION_BROWSE - - - - True - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - - - 0 - 1 - 4 - 5 - - - - - - - True - False - True - False - True - False - - - - True - True - True - True - 0 - - True - - False - - - - - - True - GTK_SELECTION_BROWSE - - - - True - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - - - 1 - 2 - 4 - 5 - - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Configure - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Test - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - About - True - GTK_RELIEF_NORMAL - True - - - - - - 1 - 2 - 5 - 6 - fill - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Configure - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Test - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - About - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - 1 - 5 - 6 - fill - fill - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Configure - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Test - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - About - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - 1 - 2 - 3 - fill - - - - - - True - Graphics - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - - - - - - - - True - First Controller - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 3 - 4 - - - - - - - - True - Second Controller - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 3 - 4 - - - - - - - - True - False - True - False - True - False - - - - True - True - True - True - 0 - - True - - False - - - - - - True - GTK_SELECTION_BROWSE - - - - True - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - - - 0 - 1 - 1 - 2 - - - - - - - True - Sound - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 0 - 1 - - - - - - - - True - False - True - False - True - False - - - - True - True - True - True - 0 - - True - - False - - - - - - True - GTK_SELECTION_BROWSE - - - - True - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - - - 1 - 2 - 1 - 2 - - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Configure - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Test - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - About - True - GTK_RELIEF_NORMAL - True - - - - - - 1 - 2 - 2 - 3 - fill - fill - - - - - - True - False - True - False - True - False - - - - True - True - True - True - 0 - - True - - False - - - - - - True - GTK_SELECTION_BROWSE - - - - True - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - - - 0 - 1 - 7 - 8 - - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Configure - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Test - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - About - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - 1 - 8 - 9 - fill - - - - - - True - Dev9 - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 6 - 7 - - - - - - - - True - Cdvdrom - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 6 - 7 - - - - - - - - True - False - True - False - True - False - - - - True - True - True - True - 0 - - True - - False - - - - - - True - GTK_SELECTION_BROWSE - - - - True - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - - - 1 - 2 - 7 - 8 - - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Configure - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Test - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - About - True - GTK_RELIEF_NORMAL - True - - - - - - 1 - 2 - 8 - 9 - fill - fill - - - - - - True - Usb - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 9 - 10 - - - - - - - - True - False - True - False - True - False - - - - True - True - True - True - 0 - - True - - False - - - - - - True - GTK_SELECTION_BROWSE - - - - True - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - - - 0 - 1 - 10 - 11 - - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Configure - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Test - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - About - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - 1 - 11 - 12 - fill - - - - - - True - False - True - False - True - False - - - - True - True - True - True - 0 - - True - - False - - - - - - True - GTK_SELECTION_BROWSE - - - - True - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - - - 1 - 2 - 13 - 14 - - - - - - - True - False - True - False - True - False - - - - True - True - True - True - 0 - - True - - False - - - - - - True - GTK_SELECTION_BROWSE - - - - True - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - - - 1 - 2 - 10 - 11 - - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Configure - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Test - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - About - True - GTK_RELIEF_NORMAL - True - - - - - - 1 - 2 - 11 - 12 - fill - fill - - - - - - True - FireWire - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 9 - 10 - - - - - - - - True - Bios - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 12 - 13 - - - - - - - 0 - True - True - - - - - - True - False - 14 - - - - True - GTK_BUTTONBOX_START - 0 - - - - True - True - True - Select Plugins Dir - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Select Bios Dir - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - False - True - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Cancel - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - - - 5 - True - Cpu - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - True - False - 0 - - - - True - False - 0 - - - - True - 0.5 - 0.5 - 1 - 1 - 0 - 0 - 0 - 0 - - - - True - False - 0 - - - - True - 0.5 - 0.5 - 1 - 1 - 0 - 0 - 0 - 0 - - - - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - True - 0.5 - 0.5 - 1 - 1 - 0 - 0 - 12 - 0 - - - - True - False - 0 - - - - True - CPU vendor - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - Family - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - Cpu Speed - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - Features - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - - - - True - - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - - - 0 - True - True - - - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - True - EERec - EE/IOP recompiler - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - 5 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - 5 - True - False - 0 - - - - True - True - VU0rec - enable recompiler for VU0 unit - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - True - VU1rec - enable recompiler for VU1 unit - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - - - True - VU Recompilers - All options are set by default - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - True - True - - - - - - True - True - Multi threaded GS mode (MTGS) - (faster on dual core/HT CPUs, requires pcsx2 restart) - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - True - Dual Core Mode (DC) - Much faster, but only valid with MTGS - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - True - 0.5 - 0.5 - 1 - 1 - 0 - 0 - 12 - 0 - - - - True - False - 0 - - - - True - True - Normal - All frames are rendered as fast as possible - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - True - Limit - Force frames to normal speeds if too fast - True - GTK_RELIEF_NORMAL - True - False - False - True - GtkRadioButton_LimitNormal - - - 0 - False - False - - - - - - True - True - Frame Skip - In order to achieve normal speeds, - some frames are skipped (faster). - Fps displayed counts skipped frames too - True - GTK_RELIEF_NORMAL - True - False - False - True - GtkRadioButton_LimitNormal - - - 0 - False - False - - - - - - True - True - VU Skip - Same as Frame Skip, but tried to skip more. - Artifacts might be present, but will be faster - True - GTK_RELIEF_NORMAL - True - False - False - True - GtkRadioButton_LimitNormal - - - 0 - False - False - - - - - - - - - - True - Frame Limiting - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - True - True - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 30 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Cancel - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - - - - 5 - True - PCSX2 Debugger - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 5 - True - False - 0 - - - - True - False - 5 - - - - True - True - EE Debug Mode - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - 0 - False - False - - - - - - True - True - IOP Debug Mode - True - GTK_RELIEF_NORMAL - True - False - False - True - GtkRadioButton_EE - - - - 0 - False - False - - - - - 0 - False - True - - - - - - 5 - True - False - 0 - - - - True - False - 0 - - - - True - GTK_POLICY_ALWAYS - GTK_POLICY_NEVER - GTK_SHADOW_NONE - GTK_CORNER_TOP_LEFT - - - - True - GTK_SHADOW_IN - - - - True - False - False - False - True - False - False - False - - - - - - - 0 - True - True - - - - - - True - GTK_UPDATE_CONTINUOUS - False - 0 0 412 1 20 2 - - - 0 - False - True - - - - - 0 - True - True - - - - - - True - False - 0 - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Step - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Skip - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Go - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Log On/Off - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - False - True - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Set PC - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Set BP Addr - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Set BP Count - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Clear BPs - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - False - True - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 0 - - - - True - True - True - Dump code - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Raw Dump - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Close - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - False - True - - - - - 0 - False - True - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 10 - - - - True - True - True - memWrite32 - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - button69 - True - GTK_RELIEF_NORMAL - True - - - - - - True - True - True - button70 - True - GTK_RELIEF_NORMAL - True - - - - - 0 - False - True - - - - - 0 - True - True - - - - - - - - 5 - True - SetPCDlg - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 5 - True - False - 5 - - - - True - Set New PC Address (in Hex): - False - False - GTK_JUSTIFY_CENTER - False - False - 0.10000000149 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - 5 - True - False - 2 - - - - True - 0x - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - - False - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 30 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Cancel - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - - - - 5 - True - SetBreakPoint Addr - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 5 - True - False - 5 - - - - True - Set New BP Address (in Hex): - False - False - GTK_JUSTIFY_CENTER - False - False - 0.10000000149 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - 5 - True - False - 2 - - - - True - 0x - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - - False - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 30 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Cancel - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - - - - 5 - True - SetBreakPoint Addr - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 5 - True - False - 5 - - - - True - Set New BP Count (in Hex): - False - False - GTK_JUSTIFY_CENTER - False - False - 0.10000000149 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - 5 - True - False - 2 - - - - True - 0x - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - - False - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 30 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Cancel - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - - - - 5 - True - Dump code - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 5 - True - False - 5 - - - - True - Set Dump Addr (in Hex): - False - False - GTK_JUSTIFY_LEFT - False - False - 0.10000000149 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - 5 - True - False - 2 - - - - True - From 0x - False - False - GTK_JUSTIFY_CENTER - True - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - - False - - - 0 - True - True - - - - - 0 - False - False - - - - - - 5 - True - False - 2 - - - - True - To 0x - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - - False - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - Dump File = "dump.txt" - False - False - GTK_JUSTIFY_LEFT - False - False - 0.10000000149 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 30 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Cancel - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - - - - 5 - True - Raw Dump - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 5 - True - False - 5 - - - - True - Set Dump Addr (in Hex): - False - False - GTK_JUSTIFY_CENTER - False - False - 0.10000000149 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - 5 - True - False - 2 - - - - True - From 0x - False - False - GTK_JUSTIFY_CENTER - True - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - - False - - - 0 - True - True - - - - - 0 - False - False - - - - - - 5 - True - False - 2 - - - - True - To 0x - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - - False - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - Dump File = "dump.txt" - False - False - GTK_JUSTIFY_LEFT - False - False - 0.10000000149 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 30 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Cancel - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - - - - 5 - True - Logging - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 5 - True - False - 5 - - - - 5 - True - False - 5 - - - - 5 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - 5 - True - 8 - 3 - False - 5 - 5 - - - - True - True - Cpu Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - True - Mem Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - True - Hw Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - True - Dma Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 3 - 4 - fill - - - - - - - True - True - Bios Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 4 - 5 - fill - - - - - - - True - True - Elf Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 5 - 6 - fill - - - - - - - True - True - Fpu Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 6 - 7 - fill - - - - - - - True - True - MMI Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 7 - 8 - fill - - - - - - - True - True - VU0 Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 0 - 1 - fill - - - - - - - True - True - Cop0 Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - True - Vif Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - True - SPR Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 3 - 4 - fill - - - - - - - True - True - GIF Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 4 - 5 - fill - - - - - - - True - True - Sif Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 5 - 6 - fill - - - - - - - True - True - VU Micro Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 7 - 8 - fill - - - - - - - True - True - IPU Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 6 - 7 - fill - - - - - - - True - True - RPC Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 2 - 3 - 0 - 1 - fill - - - - - - - True - True - Log to STDOUT - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 2 - 3 - 5 - 6 - fill - - - - - - - True - True - Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 2 - 3 - 7 - 8 - fill - - - - - - - True - True - SYMs Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 2 - 3 - 6 - 7 - fill - - - - - - - - - True - EE Logs - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - True - True - - - - - - 5 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - 5 - True - 8 - 2 - False - 5 - 5 - - - - True - True - Cdr Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 7 - 8 - fill - - - - - - - True - True - Gte Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 6 - 7 - fill - - - - - - - True - True - Pad Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 5 - 6 - fill - - - - - - - True - True - Dma Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 4 - 5 - fill - - - - - - - True - True - Bios Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 3 - 4 - fill - - - - - - - True - True - Hw Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - True - Mem Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - True - IOP Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - True - GPU Log - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 0 - 1 - fill - - - - - - - - - True - IOP Logs - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 30 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Cancel - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - - - - 5 - True - Program arguments - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - True - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 5 - True - False - 5 - - - - True - Fill in the command line arguments for opened program: - False - False - GTK_JUSTIFY_CENTER - False - False - 0.10000000149 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - 5 - True - False - 2 - - - - True - If you don't know what to write leave it blank - True - True - True - 0 - - True - - False - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - Note: this is intented for developers only. - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 30 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Cancel - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - - - - 5 - True - memWrite32 - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 5 - True - False - 5 - - - - 5 - True - False - 2 - - - - True - Address - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - 0x - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - - False - - - 0 - True - True - - - - - 0 - False - False - - - - - - 5 - True - False - 2 - - - - True - Data - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - 0x - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - - False - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 30 - - - - True - True - True - Ok - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - Cancel - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - True - True - - - - - - - diff --git a/pcsx2v2/Linux/support.cpp b/pcsx2v2/Linux/support.cpp deleted file mode 100644 index a3c79b3..0000000 --- a/pcsx2v2/Linux/support.cpp +++ /dev/null @@ -1,161 +0,0 @@ -/* Pcsx2 - Pc Ps2 Emulator - * Copyright (C) 2002-2008 Pcsx2 Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include -#include - -#include - -#include "support.h" - -GtkWidget* -lookup_widget (GtkWidget *widget, - const gchar *widget_name) -{ - GtkWidget *parent, *found_widget; - - for (;;) - { - if (GTK_IS_MENU (widget)) - parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); - else - parent = widget->parent; - if (!parent) - parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey"); - if (parent == NULL) - break; - widget = parent; - } - - found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), - widget_name); - if (!found_widget) - g_warning ("Widget not found: %s", widget_name); - return found_widget; -} - -static GList *pixmaps_directories = NULL; - -/* Use this function to set the directory containing installed pixmaps. */ -void -add_pixmap_directory (const gchar *directory) -{ - pixmaps_directories = g_list_prepend (pixmaps_directories, - g_strdup (directory)); -} - -/* This is an internally used function to find pixmap files. */ -static gchar* -find_pixmap_file (const gchar *filename) -{ - GList *elem; - - /* We step through each of the pixmaps directory to find it. */ - elem = pixmaps_directories; - while (elem) - { - gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, - G_DIR_SEPARATOR_S, filename); - if (g_file_test (pathname, G_FILE_TEST_EXISTS)) - return pathname; - g_free (pathname); - elem = elem->next; - } - return NULL; -} - -/* This is an internally used function to create pixmaps. */ -GtkWidget* -create_pixmap (GtkWidget *widget, - const gchar *filename) -{ - gchar *pathname = NULL; - GtkWidget *pixmap; - - if (!filename || !filename[0]) - return gtk_image_new (); - - pathname = find_pixmap_file (filename); - - if (!pathname) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return gtk_image_new (); - } - - pixmap = gtk_image_new_from_file (pathname); - g_free (pathname); - return pixmap; -} - -/* This is an internally used function to create pixmaps. */ -GdkPixbuf* -create_pixbuf (const gchar *filename) -{ - gchar *pathname = NULL; - GdkPixbuf *pixbuf; - GError *error = NULL; - - if (!filename || !filename[0]) - return NULL; - - pathname = find_pixmap_file (filename); - - if (!pathname) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return NULL; - } - - pixbuf = gdk_pixbuf_new_from_file (pathname, &error); - if (!pixbuf) - { - fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", - pathname, error->message); - g_error_free (error); - } - g_free (pathname); - return pixbuf; -} - -/* This is used to set ATK action descriptions. */ -void -glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description) -{ - gint n_actions, i; - - n_actions = atk_action_get_n_actions (action); - for (i = 0; i < n_actions; i++) - { - if (!strcmp (atk_action_get_name (action, i), action_name)) - atk_action_set_description (action, i, description); - } -} - diff --git a/pcsx2v2/Linux/support.h b/pcsx2v2/Linux/support.h deleted file mode 100644 index 9168053..0000000 --- a/pcsx2v2/Linux/support.h +++ /dev/null @@ -1,86 +0,0 @@ -/* Pcsx2 - Pc Ps2 Emulator - * Copyright (C) 2002-2008 Pcsx2 Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -/* - * Standard gettext macros. - */ -#ifdef ENABLE_NLS -# include -# undef _ -# define _(String) dgettext (PACKAGE, String) -# define Q_(String) g_strip_context ((String), gettext (String)) -# ifdef gettext_noop -# define N_(String) gettext_noop (String) -# else -# define N_(String) (String) -# endif -#else -# define textdomain(String) (String) -# define gettext(String) (String) -# define dgettext(Domain,Message) (Message) -# define dcgettext(Domain,Message,Type) (Message) -# define bindtextdomain(Domain,Directory) (Domain) -# define _(String) (String) -# define Q_(String) g_strip_context ((String), (String)) -# define N_(String) (String) -#endif - - -/* - * Public Functions. - */ - -/* - * This function returns a widget in a component created by Glade. - * Call it with the toplevel widget in the component (i.e. a window/dialog), - * or alternatively any widget in the component, and the name of the widget - * you want returned. - */ -GtkWidget* lookup_widget (GtkWidget *widget, - const gchar *widget_name); - - -/* Use this function to set the directory containing installed pixmaps. */ -void add_pixmap_directory (const gchar *directory); - - -/* - * Private Functions. - */ - -/* This is used to create the pixmaps used in the interface. */ -GtkWidget* create_pixmap (GtkWidget *widget, - const gchar *filename); - -/* This is used to create the pixbufs used in the interface. */ -GdkPixbuf* create_pixbuf (const gchar *filename); - -/* This is used to set ATK action descriptions. */ -void glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description); - diff --git a/pcsx2v2/Memory.cpp b/pcsx2v2/Memory.cpp index 565e71c..4132bd1 100644 --- a/pcsx2v2/Memory.cpp +++ b/pcsx2v2/Memory.cpp @@ -80,7 +80,6 @@ extern int rdram_devices, rdram_sdevid; extern void * memcpy_fast(void *dest, const void *src, size_t n); #endif -//#define FULLTLB int MemMode = 0; // 0 is Kernel Mode, 1 is Supervisor Mode, 2 is User Mode u16 ba0R16(u32 mem) { @@ -88,11 +87,7 @@ u16 ba0R16(u32 mem) { //MEM_LOG("ba00000 Memory read16 address %x\n", mem); #endif -#ifdef PCSX2_VIRTUAL_MEM if (mem == 0x1a000006) { -#else - if (mem == 0xba000006) { -#endif static int ba6; ba6++; if (ba6 == 3) ba6 = 0; @@ -101,11 +96,6 @@ u16 ba0R16(u32 mem) { return 0; } -///////////////////////////// -// VIRTUAL MEM START -///////////////////////////// -#ifdef PCSX2_VIRTUAL_MEM - PSMEMORYBLOCK s_psM = {0}, s_psHw = {0}, s_psS = {0}, s_psxM = {0}, s_psVuMem = {0}; #define PHYSICAL_ALLOC(ptr, size, block) { \ @@ -120,8 +110,6 @@ PSMEMORYBLOCK s_psM = {0}, s_psHw = {0}, s_psS = {0}, s_psxM = {0}, s_psVuMem = SysPhysicalFree(&block); \ } \ -#ifdef _WIN32 // windows implementation of vm - PSMEMORYMAP initMemoryMap(uptr* aPFNs, uptr* aVFNs) { PSMEMORYMAP m; @@ -420,118 +408,6 @@ DefaultHandler: return EXCEPTION_CONTINUE_SEARCH; } -#else // linux implementation - -#define VIRTUAL_ALLOC(base, size, Protection) { \ - void* lpMemReserved = mmap( base, size, Protection, MAP_PRIVATE|MAP_ANONYMOUS ); \ - if( lpMemReserved == NULL || base != lpMemReserved ) \ - { \ - SysPrintf("Cannot reserve memory at 0x%8.8x(%x).\n", base, lpMemReserved); \ - perror("err"); \ - goto eCleanupAndExit; \ - } \ -} \ - -#define VIRTUAL_FREE(ptr, size) munmap(ptr, size) - -uptr *memLUT = NULL; - -int memInit() -{ -int i; - LPVOID pExtraMem = NULL; - - // release the previous reserved mem - munmap(PS2MEM_BASE, 0x40000000); - - // allocate all virtual memory - PHYSICAL_ALLOC(PS2MEM_BASE, 0x02000000, s_psM); - VIRTUAL_ALLOC(PS2MEM_ROM, 0x00400000, PROT_READ); - VIRTUAL_ALLOC(PS2MEM_ROM1, 0x00040000, PROT_READ); - VIRTUAL_ALLOC(PS2MEM_ROM2, 0x00080000, PROT_READ); - VIRTUAL_ALLOC(PS2MEM_EROM, 0x001C0000, PROT_READ); - PHYSICAL_ALLOC(PS2MEM_SCRATCH, 0x00010000, s_psS); - PHYSICAL_ALLOC(PS2MEM_HW, 0x00010000, s_psHw); - PHYSICAL_ALLOC(PS2MEM_PSX, 0x00200000, s_psxM); - PHYSICAL_ALLOC(PS2MEM_VU0MICRO, 0x00010000, s_psVuMem); - - VIRTUAL_ALLOC(PS2MEM_PSXHW, 0x00010000, PROT_READ|PROT_WRITE); - VIRTUAL_ALLOC(PS2MEM_PSXHW4, 0x00010000, PROT_NONE); - VIRTUAL_ALLOC(PS2MEM_GS, 0x00002000, PROT_READ|PROT_WRITE); - VIRTUAL_ALLOC(PS2MEM_DEV9, 0x00010000, PROT_NONE); - VIRTUAL_ALLOC(PS2MEM_SPU2, 0x00010000, PROT_NONE); - VIRTUAL_ALLOC(PS2MEM_SPU2_, 0x00010000, PROT_NONE); - - VIRTUAL_ALLOC(PS2MEM_B80, 0x00010000, PROT_READ|PROT_WRITE); - VIRTUAL_ALLOC(PS2MEM_BA0, 0x00010000, PROT_READ|PROT_WRITE); - - // special addrs mmap - VIRTUAL_ALLOC(PS2MEM_BASE+0x5fff0000, 0x10000, PROT_READ|PROT_WRITE); - - // alloc virtual mappings - memLUT = (PSMEMORYMAP*)_aligned_malloc(0x100000 * sizeof(uptr), 16); - memset(memLUT, 0, sizeof(uptr)*0x100000); - for (i=0; i<0x02000; i++) memLUT[i + 0x00000] = PS2MEM_BASE+(i<<12); - for (i=2; i<0x00010; i++) memLUT[i + 0x10000] = PS2MEM_BASE+0x10000000+(i<<12); - for (i=0; i<0x00800; i++) memLUT[i + 0x1c000] = PS2MEM_BASE+0x1c000000+(i<<12); - for (i=0; i<0x00004; i++) memLUT[i + 0x11000] = PS2MEM_VU0MICRO; - for (i=0; i<0x00004; i++) memLUT[i + 0x11004] = PS2MEM_VU0MEM; - for (i=0; i<0x00004; i++) memLUT[i + 0x11008] = PS2MEM_VU1MICRO+(i<<12); - for (i=0; i<0x00004; i++) memLUT[i + 0x1100c] = PS2MEM_VU1MEM+(i<<12); - - for (i=0; i<0x00004; i++) memLUT[i + 0x50000] = PS2MEM_SCRATCH+(i<<12); - - // map to other modes - memcpy(memLUT+0x80000, memLUT, 0x20000*sizeof(uptr)); - memcpy(memLUT+0xa0000, memLUT, 0x20000*sizeof(uptr)); - - if (psxInit() == -1) - goto eCleanupAndExit; - -eCleanupAndExit: - memShutdown(); - return -1; -} - -void memShutdown() -{ - VIRTUAL_FREE(PS2MEM_BASE, 0x40000000); - VIRTUAL_FREE(PS2MEM_PSX, 0x00800000); - - PHYSICAL_FREE(PS2MEM_BASE, 0x02000000, s_psM); - VIRTUAL_FREE(PS2MEM_ROM, 0x00400000); - VIRTUAL_FREE(PS2MEM_ROM1, 0x00080000); - VIRTUAL_FREE(PS2MEM_ROM2, 0x00080000); - VIRTUAL_FREE(PS2MEM_EROM, 0x001C0000); - PHYSICAL_FREE(PS2MEM_SCRATCH, 0x00010000, s_psS); - PHYSICAL_FREE(PS2MEM_HW, 0x00010000, s_psHw); - PHYSICAL_FREE(PS2MEM_PSX, 0x00800000, s_psxM); - PHYSICAL_FREE(PS2MEM_VU0MICRO, 0x00010000, s_psVuMem); - - VIRTUAL_FREE(PS2MEM_VU0MICRO, 0x00010000); // allocate for all VUs - - VIRTUAL_FREE(PS2MEM_PSXHW, 0x00010000); - VIRTUAL_FREE(PS2MEM_PSXHW4, 0x00010000); - VIRTUAL_FREE(PS2MEM_GS, 0x00010000); - VIRTUAL_FREE(PS2MEM_DEV9, 0x00010000); - VIRTUAL_FREE(PS2MEM_SPU2, 0x00010000); - VIRTUAL_FREE(PS2MEM_SPU2_, 0x00010000); - - VIRTUAL_FREE(PS2MEM_B80, 0x00010000); - VIRTUAL_FREE(PS2MEM_BA0, 0x00010000); - - VirtualFree(PS2MEM_VU0MICRO, 0, MEM_RELEASE); - - _aligned_free(memLUT); memLUT = NULL; - - // reserve mem - if( mmap(PS2MEM_BASE, 0x40000000, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0) != PS2MEM_BASE ) { - SysPrintf("failed to reserve mem\n"); - } -} - -#endif // _WIN32 - // Some games read/write between different addrs but same physical memory // this causes major slowdowns because it goes into the exception handler, so use this (zerofrog) u32 VM_RETRANSLATE(u32 mem) @@ -542,7 +418,6 @@ u32 VM_RETRANSLATE(u32 mem) p = (u8*)dmaGetAddrBase(mem); -#ifdef _WIN32 // do manual LUT since IPU/SPR seems to use addrs 0x3000xxxx quite often if( memLUT[ (p-PS2MEM_BASE)>>12 ].aPFNs == NULL ) { return PS2MEM_BASE_+mem; @@ -551,7 +426,6 @@ u32 VM_RETRANSLATE(u32 mem) pbase = (u8*)memLUT[ (p-PS2MEM_BASE)>>12 ].aVFNs[0]; if( pbase != NULL ) p = pbase + ((u32)p&0xfff); -#endif return (u32)p; } @@ -564,7 +438,6 @@ void memSetPageAddr(u32 vaddr, u32 paddr) { return; if( (vaddr>>28) != 1 && (vaddr>>28) != 9 && (vaddr>>28) != 11 ) { -#ifdef _WIN32 pmap = &memLUT[vaddr >> 12]; if( pmap->aPFNs != NULL && (pmap->aPFNs != memLUT[paddr>>12].aPFNs || @@ -575,9 +448,6 @@ void memSetPageAddr(u32 vaddr, u32 paddr) { } *pmap = memLUT[paddr >> 12]; -#else - memLUT[vaddr>>12] = memLUT[paddr>>12]; -#endif } } @@ -586,7 +456,6 @@ void memClearPageAddr(u32 vaddr) { if ((vaddr & 0xffffc000) == 0x70000000) return; -#ifdef _WIN32 // if( vaddr >= 0x20000000 && vaddr < 0x80000000 ) { // Cpu->Clear(vaddr&~0xfff, 0x1000/4); // if( memLUT[vaddr>>12].aVFNs != NULL ) { @@ -595,12 +464,6 @@ void memClearPageAddr(u32 vaddr) { // memLUT[vaddr>>12].aPFNs = NULL; // } // } -#else - if( memLUT[vaddr>>12] != NULL ) { - SysVirtualFree(memLUT[vaddr>>12], 0x1000); - memLUT[vaddr>>12] = 0; - } -#endif } u8 recMemRead8() @@ -2170,865 +2033,6 @@ void memWrite128(u32 mem, u64 *value) { cpuTlbMissW(mem, cpuRegs.branch); } -#else - -u8 *psM; //32mb Main Ram -u8 *psR; //4mb rom area -u8 *psR1; //256kb rom1 area (actually 196kb, but can't mask this) -u8 *psR2; // 0x00080000 -u8 *psER; // 0x001C0000 -u8 *psS; //0.015 mb, scratch pad - -uptr *memLUTR; -uptr *memLUTW; -uptr *memLUTRK; -uptr *memLUTWK; -uptr *memLUTRU; -uptr *memLUTWU; - -#define CHECK_MEM(mem) //MyMemCheck(mem) - -void MyMemCheck(u32 mem) -{ - if( mem == 0x1c02f2a0 ) - SysPrintf("yo\n"); -} - -///////////////////////////// -// REGULAR MEM START -///////////////////////////// - -void memMapMem(u32 base) { - int i; - - for (i=0; i<0x02000; i++) memLUTRK[i + 0x00000 + base] = (uptr)&psM[i << 12]; - for (i=0; i<0x00400; i++) memLUTRK[i + 0x1fc00 + base] = (uptr)&psR[i << 12]; - for (i=0; i<0x00040; i++) memLUTRK[i + 0x1e000 + base] = (uptr)&psR1[i << 12]; - for (i=0; i<0x00080; i++) memLUTRK[i + 0x1e400 + base] = (uptr)&psR2[i << 12]; - for (i=0; i<0x001C0; i++) memLUTRK[i + 0x1e040 + base] = (uptr)&psER[i << 12]; - for (i=0; i<0x00800; i++) memLUTRK[i + 0x1c000 + base] = (uptr)&psxM[(i & 0x1ff) << 12]; - for (i=0; i<0x00004; i++) memLUTRK[i + 0x11000 + base] = (uptr)VU0.Micro; - for (i=0; i<0x00004; i++) memLUTRK[i + 0x11004 + base] = (uptr)VU0.Mem; - for (i=0; i<0x00004; i++) memLUTRK[i + 0x11008 + base] = (uptr)&VU1.Micro[i << 12]; - for (i=0; i<0x00004; i++) memLUTRK[i + 0x1100c + base] = (uptr)&VU1.Mem[i << 12]; - - for (i=0; i<0x02000; i++) memLUTWK[i + 0x00000 + base] = (uptr)&psM[i << 12]; - for (i=0; i<0x00400; i++) memLUTWK[i + 0x1fc00 + base] = (uptr)&psR[i << 12]; - for (i=0; i<0x00040; i++) memLUTWK[i + 0x1e000 + base] = (uptr)&psR1[i << 12]; - for (i=0; i<0x00080; i++) memLUTWK[i + 0x1e400 + base] = (uptr)&psR2[i << 12]; - for (i=0; i<0x001C0; i++) memLUTWK[i + 0x1e040 + base] = (uptr)&psER[i << 12]; - for (i=0; i<0x00800; i++) memLUTWK[i + 0x1c000 + base] = (uptr)&psxM[(i & 0x1ff) << 12]; - for (i=0; i<0x00004; i++) memLUTWK[i + 0x11000 + base] = (uptr)VU0.Micro; - for (i=0; i<0x00004; i++) memLUTWK[i + 0x11004 + base] = (uptr)VU0.Mem; - for (i=0; i<0x00004; i++) memLUTWK[i + 0x11008 + base] = (uptr)&VU1.Micro[i << 12]; - for (i=0; i<0x00004; i++) memLUTWK[i + 0x1100c + base] = (uptr)&VU1.Mem[i << 12]; - - assert( ((uptr)VU0.Mem&15)==0 && ((uptr)VU0.Micro&15)==0); - for (i=0; i<0x00010; i++) memLUTRK[i + 0x10000 + base] = 1; // hwm - for (i=0; i<0x00010; i++) memLUTRK[i + 0x1f800 + base] = 2; // psh - for (i=0; i<0x00010; i++) memLUTRK[i + 0x1f400 + base] = 3; // psh4 - for (i=0; i<0x00010; i++) memLUTRK[i + 0x18000 + base] = 4; // b80 - for (i=0; i<0x00010; i++) memLUTRK[i + 0x1a000 + base] = 5; // ba0 - for (i=0; i<0x00010; i++) memLUTRK[i + 0x12000 + base] = 6; // gsm - for (i=0; i<0x00010; i++) memLUTRK[i + 0x14000 + base] = 7; // dev9 - for (i=0; i<0x00010; i++) memLUTRK[i + 0x1f900 + base] = 8; // spu2 - for (i=0; i<0x00010; i++) memLUTRK[i + 0x1f000 + base] = 8; // spu2 (not sure) - - for (i=0; i<0x00010; i++) memLUTWK[i + 0x10000 + base] = 1; // hwm - for (i=0; i<0x00010; i++) memLUTWK[i + 0x1f800 + base] = 2; // psh - for (i=0; i<0x00010; i++) memLUTWK[i + 0x1f400 + base] = 3; // psh4 - for (i=0; i<0x00010; i++) memLUTWK[i + 0x1a000 + base] = 5; // ba0 - for (i=0; i<0x00010; i++) memLUTWK[i + 0x12000 + base] = 6; // gsm - for (i=0; i<0x00010; i++) memLUTWK[i + 0x14000 + base] = 7; // dev9 - for (i=0; i<0x00010; i++) memLUTWK[i + 0x1f900 + base] = 8; // spu2 - for (i=0; i<0x00010; i++) memLUTWK[i + 0x1f000 + base] = 8; // spu2 (not sure) -} - -void memMapKernelMem() { - memMapMem(0xa0000); - memMapMem(0x80000); - memMapMem(0x00000); -} - -void memMapSupervisorMem() { -} - -void memMapUserMem() { -} - -int memInit() { - int i; - - psR = (u8*)_aligned_malloc(0x00400010, 16); - psR1 = (u8*)_aligned_malloc(0x00080010, 16); - psR2 = (u8*)_aligned_malloc(0x00080010, 16); - - if (psxInit() == -1) - return -1; - - memLUTRK = (uptr*)_aligned_malloc(0x100000 * sizeof(uptr), 16); - memLUTWK = (uptr*)_aligned_malloc(0x100000 * sizeof(uptr), 16); - memLUTRU = (uptr*)_aligned_malloc(0x100000 * sizeof(uptr), 16); - memLUTWU = (uptr*)_aligned_malloc(0x100000 * sizeof(uptr), 16); - - psM = (u8*)_aligned_malloc(0x02000010, 16); - psER = (u8*)_aligned_malloc(0x001C0010, 16); - psS = (u8*)_aligned_malloc(0x00004010, 16); - if (memLUTRK == NULL || memLUTWK == NULL || - memLUTRU == NULL || memLUTWU == NULL || - psM == NULL || psR == NULL || psR1 == NULL || - psR2 == NULL || psER == NULL || psS == NULL) { - SysMessage(_("Error allocating memory")); return -1; - } - - memset(memLUTRK, 0, 0x100000 * 4); - memset(memLUTWK, 0, 0x100000 * 4); - memset(memLUTRU, 0, 0x100000 * 4); - memset(memLUTWU, 0, 0x100000 * 4); - - memset(psM, 0, 0x02000010); - memset(psR, 0, 0x00400010); - memset(psR1, 0, 0x00080010); - memset(psR2, 0, 0x00080010); - memset(psER, 0, 0x001C0010); - memset(psS, 0, 0x00004010); - - for (i=0x00000; i<0x00004; i++) memLUTRK[i + 0x70000] = (uptr)&psS[i << 12]; - for (i=0x00000; i<0x00004; i++) memLUTWK[i + 0x70000] = (uptr)&psS[i << 12]; - - for (i=0x00000; i<0x00004; i++) memLUTRU[i + 0x70000] = (uptr)&psS[i << 12]; - for (i=0x00000; i<0x00004; i++) memLUTWU[i + 0x70000] = (uptr)&psS[i << 12]; - - - memMapKernelMem(); - memMapSupervisorMem(); - memMapUserMem(); - - memSetKernelMode(); - -#ifdef ENABLECACHE - memset(pCache,0,sizeof(_cacheS)*64); -#endif - - return 0; -} - -void memShutdown() { - FREE(psM); - FREE(psR); - FREE(psR1); - FREE(psR2); - FREE(psER); - FREE(psS); - FREE(memLUTRK); - FREE(memLUTWK); - FREE(memLUTRU); - FREE(memLUTWU); -} - -void memSetPageAddr(u32 vaddr, u32 paddr) { -// SysPrintf("memSetPageAddr: %8.8x -> %8.8x\n", vaddr, paddr); - - memLUTRU[vaddr >> 12] = memLUTRK[paddr >> 12]; - memLUTWU[vaddr >> 12] = memLUTWK[paddr >> 12]; - - memLUTRK[vaddr >> 12] = memLUTRK[paddr >> 12]; - memLUTWK[vaddr >> 12] = memLUTWK[paddr >> 12]; -} - -void memClearPageAddr(u32 vaddr) { -// SysPrintf("memClearPageAddr: %8.8x\n", vaddr); - - if ((vaddr & 0xffffc000) == 0x70000000) return; - memLUTRU[vaddr >> 12] = 0; - memLUTWU[vaddr >> 12] = 0; - -#ifdef FULLTLB - memLUTRK[vaddr >> 12] = 0; - memLUTWK[vaddr >> 12] = 0; -#endif -} - -int memRead8 (u32 mem, u8 *out) { - char *p; - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - u8 *tmp = readCache(mem); - *out = *(u8 *)(tmp+(mem&0xf)); - return 0; - } -#endif - *out = *(u8 *)(p + (mem & 0xfff)); - return 0; - } - - switch ((int)(uptr)p) { - case 1: // hwm - *out = hwRead8(mem & ~0xa0000000); return 0; - case 2: // psh - *out = psxHwRead8(mem & ~0xa0000000); return 0; - case 3: // psh4 - *out = psxHw4Read8(mem & ~0xa0000000); return 0; - case 6: // gsm - *out = gsRead8(mem & ~0xa0000000); return 0; - case 7: // dev9 - *out = DEV9read8(mem & ~0xa4000000); - SysPrintf("DEV9 read8 %8.8lx: %2.2lx\n", mem & ~0xa4000000, *out); - return 0; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory read32 from address %8.8x\n", mem); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -int memRead8RS (u32 mem, u64 *out) { - char *p; - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - char *tmp = (char*)readCache(mem); - *out = *(s8 *)(tmp+(mem&0xf)); - return 0; - } -#endif - *out = *(s8 *)(p + (mem & 0xfff)); - return 0; - } - - switch ((int)(uptr)p) { - case 1: // hwm - *out = (s8)hwRead8(mem & ~0xa0000000); return 0; - case 2: // psh - *out = (s8)psxHwRead8(mem & ~0xa0000000); return 0; - case 3: // psh4 - *out = (s8)psxHw4Read8(mem & ~0xa0000000); return 0; - case 6: // gsm - *out = (s8)gsRead8(mem & ~0xa0000000); return 0; - case 7: // dev9 - *out = (s8)DEV9read8(mem & ~0xa4000000); - SysPrintf("DEV9 read8 %8.8lx: %2.2lx\n", mem & ~0xa4000000, *out); - return 0; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory read32 from address %8.8x\n", mem); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -int memRead8RU (u32 mem, u64 *out) { - char *p; - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - char *tmp = (char*)readCache(mem); - *out = *(u8 *)(tmp+(mem&0xf)); - return 0; - } -#endif - *out = *(u8 *)(p + (mem & 0xfff)); - return 0; - } - - switch ((int)(uptr)p) { - case 1: // hwm - *out = (u8)hwRead8(mem & ~0xa0000000); return 0; - case 2: // psh - *out = (u8)psxHwRead8(mem & ~0xa0000000); return 0; - case 3: // psh4 - *out = (u8)psxHw4Read8(mem & ~0xa0000000); return 0; - case 6: // gsm - *out = (u8)gsRead8(mem & ~0xa0000000); return 0; - case 7: // dev9 - *out = (u8)DEV9read8(mem & ~0xa4000000); - SysPrintf("DEV9 read8 %8.8lx: %2.2lx\n", mem & ~0xa4000000, *out); - return 0; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory read32 from address %8.8x\n", mem); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -int memRead16(u32 mem, u16 *out) { - char *p; - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - u8 *tmp = readCache(mem); - *out = *(u16 *)(tmp+(mem&0xf)); - return 0; - } -#endif - *out = *(u16*)(p + (mem & 0xfff)); - return 0; - } - - switch ((int)(uptr)p) { - case 1: // hwm - *out = hwRead16(mem & ~0xa0000000); return 0; - case 2: // psh - *out = psxHwRead16(mem & ~0xa0000000); return 0; - case 4: // b80 -#ifdef MEM_LOG - MEM_LOG("b800000 Memory read16 address %x\n", mem); -#endif - *out = 0; return 0; - case 5: // ba0 - *out = ba0R16(mem); return 0; - case 6: // gsm - *out = gsRead16(mem & ~0xa0000000); return 0; - case 7: // dev9 - *out = DEV9read16(mem & ~0xa4000000); - SysPrintf("DEV9 read16 %8.8lx: %4.4lx\n", mem & ~0xa4000000, *out); - return 0; - case 8: // spu2 - *out = SPU2read(mem & ~0xa0000000); return 0; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory read16 from address %8.8x\n", mem); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -int memRead16RS(u32 mem, u64 *out) { - char *p; - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - char *tmp = (char*)readCache(mem); - *out = *(s16*)(tmp+(mem&0xf)); - return 0; - } -#endif - *out = *(s16*)(p + (mem & 0xfff)); - return 0; - } - - switch ((int)(uptr)p) { - case 1: // hwm - *out = (s16)hwRead16(mem & ~0xa0000000); return 0; - case 2: // psh - *out = (s16)psxHwRead16(mem & ~0xa0000000); return 0; - case 4: // b80 -#ifdef MEM_LOG - MEM_LOG("b800000 Memory read16 address %x\n", mem); -#endif - *out = 0; return 0; - case 5: // ba0 - *out = (s16)ba0R16(mem); return 0; - case 6: // gsm - *out = (s16)gsRead16(mem & ~0xa0000000); return 0; - case 7: // dev9 - *out = (s16)DEV9read16(mem & ~0xa4000000); - SysPrintf("DEV9 read16 %8.8lx: %4.4lx\n", mem & ~0xa4000000, *out); - return 0; - case 8: // spu2 - *out = (s16)SPU2read(mem & ~0xa0000000); return 0; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory read16 from address %8.8x\n", mem); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -int memRead16RU(u32 mem, u64 *out) { - char *p; - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - char *tmp = (char*)readCache(mem); - *out = *(u16*)(tmp+(mem&0xf)); - return 0; - } -#endif - *out = *(u16*)(p + (mem & 0xfff)); - return 0; - } - - switch ((int)(uptr)p) { - case 1: // hwm - *out = (u16)hwRead16(mem & ~0xa0000000); return 0; - case 2: // psh - *out = (u16)psxHwRead16(mem & ~0xa0000000); return 0; - case 4: // b80 -#ifdef MEM_LOG - MEM_LOG("b800000 Memory read16 address %x\n", mem); -#endif - *out = 0; return 0; - case 5: // ba0 - *out = (u16)ba0R16(mem); return 0; - case 6: // gsm - *out = (u16)gsRead16(mem & ~0xa0000000); return 0; - case 7: // dev9 - *out = (u16)DEV9read16(mem & ~0xa4000000); - SysPrintf("DEV9 read16 %8.8lx: %4.4lx\n", mem & ~0xa4000000, *out); - return 0; - case 8: // spu2 - *out = (u16)SPU2read(mem & ~0xa0000000); return 0; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory read16 from address %8.8x\n", mem); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -int memRead32(u32 mem, u32 *out) { - char *p; - - CHECK_MEM(mem); - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - u8 *tmp = readCache(mem); - *out = *(u32 *)(tmp+(mem&0xf)); - return 0; - } -#endif - *out = *(u32*)(p + (mem & 0xfff)); - return 0; - } - assert( (int)(uptr)p < 8 ); - - switch ((int)(uptr)p) { - case 1: // hwm - *out = hwRead32(mem & ~0xa0000000); return 0; - case 2: // psh - *out = psxHwRead32(mem & ~0xa0000000); return 0; - case 6: // gsm - *out = gsRead32(mem & ~0xa0000000); return 0; - case 7: // dev9 - *out = DEV9read32(mem & ~0xa4000000); - SysPrintf("DEV9 read32 %8.8lx: %8.8lx\n", mem & ~0xa4000000, *out); - return 0; - } - -#ifdef PCSX2_DEVBUILD - MEM_LOG("Unknown Memory read32 from address %8.8x (Status=%8.8x)\n", mem, cpuRegs.CP0.n.Status); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -int memRead32RS(u32 mem, u64 *out) { - char *p; - - CHECK_MEM(mem); - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - char *tmp = (char*)readCache(mem); - *out = *(s32*)(tmp+(mem&0xf)); - return 0; - } -#endif - *out = *(s32*)(p + (mem & 0xfff)); - return 0; - } - - switch ((int)(uptr)p) { - case 1: // hwm - *out = (s32)hwRead32(mem & ~0xa0000000); return 0; - case 2: // psh - *out = (s32)psxHwRead32(mem & ~0xa0000000); return 0; - case 6: // gsm - *out = (s32)gsRead32(mem & ~0xa0000000); return 0; - case 7: // dev9 - *out = (s32)DEV9read32(mem & ~0xa4000000); - SysPrintf("DEV9 read32 %8.8lx: %8.8lx\n", mem & ~0xa4000000, *out); - return 0; - } - -#ifdef PCSX2_DEVBUILD - MEM_LOG("Unknown Memory read32 from address %8.8x (Status=%8.8x)\n", mem, cpuRegs.CP0.n.Status); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -int memRead32RU(u32 mem, u64 *out) { - char *p; - - CHECK_MEM(mem); - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - char *tmp = (char*)readCache(mem); - *out = *(u32*)(tmp+(mem&0xf)); - return 0; - } -#endif - *out = *(u32*)(p + (mem & 0xfff)); - return 0; - } - - switch ((int)(uptr)p) { - case 1: // hwm - *out = (u32)hwRead32(mem & ~0xa0000000); return 0; - case 2: // psh - *out = (u32)psxHwRead32(mem & ~0xa0000000); return 0; - case 6: // gsm - *out = (u32)gsRead32(mem & ~0xa0000000); return 0; - case 7: // dev9 - *out = (u32)DEV9read32(mem & ~0xa4000000); - SysPrintf("DEV9 read32 %8.8lx: %8.8lx\n", mem & ~0xa4000000, *out); - return 0; - } - -#ifdef PCSX2_DEVBUILD - MEM_LOG("Unknown Memory read32 from address %8.8x (Status=%8.8x)\n", mem, cpuRegs.CP0.n.Status); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -int memRead64(u32 mem, u64 *out) { - char *p; - - CHECK_MEM(mem); - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - u8 *tmp = readCache(mem); - *out = *(u64*)(tmp+(mem&0xf)); - return 0; - } -#endif - *out = *(u64*)(p + (mem & 0xfff)); - return 0; - } - - switch ((int)(uptr)p) { - case 1: // hwm - *out = hwRead64(mem & ~0xa0000000); return 0; - case 6: // gsm - *out = gsRead64(mem & ~0xa0000000); return 0; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory read64 from address %8.8x\n", mem); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -int memRead128(u32 mem, u64 *out) { - char *p; - - CHECK_MEM(mem); - - p = (char *)(memLUTR[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && - (cpuRegs.CP0.r[16] & 0x10000) && !(cpuRegs.CP0.n.Status.val & 0x4)) { - u64 *tmp = (u64*)readCache(mem); - out[0] = tmp[0]; - out[1] = tmp[1]; - return 0; - } -#endif - p+= mem & 0xfff; - out[0] = ((u64*)p)[0]; - out[1] = ((u64*)p)[1]; - return 0; - } - - switch ((int)(uptr)p) { - case 1: // hwm - hwRead128(mem & ~0xa0000000, out); return 0; - case 6: // gsm - out[0] = gsRead64((mem ) & ~0xa0000000); - out[1] = gsRead64((mem+8) & ~0xa0000000); return 0; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory read128 from address %8.8x\n", mem); -#endif - cpuTlbMissR(mem, cpuRegs.branch); - - return -1; -} - -#define CHECK_VUMEM(size) { \ - if( mem >= 0x11000000 && mem < 0x11004000 ) \ - Cpu->ClearVU0(mem&0x3ff8, size); \ - else if( mem >= 0x11008000 && mem < 0x1100c000 ) \ - Cpu->ClearVU1(mem&0x3ff8, size); \ -} - -void memWrite8 (u32 mem, u8 value) { - char *p; - - p = (char *)(memLUTW[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && (cpuRegs.CP0.r[16] & 0x10000)) { - writeCache8(mem, value); - return; - } -#endif - - *(u8 *)(p + (mem & 0xfff)) = value; - if (CHECK_EEREC) { - CHECK_VUMEM(1); - REC_CLEARM(mem&(~3)); -// PSXREC_CLEARM(mem & 0x1ffffc); - } - return; - } - - switch ((int)(uptr)p) { - case 1: // hwm - hwWrite8(mem & ~0xa0000000, value); - return; - case 2: // psh - psxHwWrite8(mem & ~0xa0000000, value); return; - case 3: // psh4 - psxHw4Write8(mem & ~0xa0000000, value); return; - case 6: // gsm - gsWrite8(mem & ~0xa0000000, value); return; - case 7: // dev9 - DEV9write8(mem & ~0xa4000000, value); - SysPrintf("DEV9 write8 %8.8lx: %2.2lx\n", mem & ~0xa4000000, value); - return; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory write8 to address %x with data %2.2x\n", mem, value); -#endif - cpuTlbMissW(mem, cpuRegs.branch); -} - -void memWrite16(u32 mem, u16 value) { - char *p; - - p = (char *)(memLUTW[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && (cpuRegs.CP0.r[16] & 0x10000)) { - writeCache16(mem, value); - return; - } -#endif - *(u16*)(p + (mem & 0xfff)) = value; - if (CHECK_EEREC) { - CHECK_VUMEM(1); - REC_CLEARM(mem&~1); - //PSXREC_CLEARM(mem & 0x1ffffe); - } - return; - } - - switch ((int)(uptr)p) { - case 1: // hwm - hwWrite16(mem & ~0xa0000000, value); - return; - case 2: // psh - psxHwWrite16(mem & ~0xa0000000, value); return; - case 5: // ba0 -#ifdef MEM_LOG - MEM_LOG("ba00000 Memory write16 to address %x with data %x\n", mem, value); -#endif - return; - case 6: // gsm - gsWrite16(mem & ~0xa0000000, value); return; - case 7: // dev9 - DEV9write16(mem & ~0xa4000000, value); - SysPrintf("DEV9 write16 %8.8lx: %4.4lx\n", mem & ~0xa4000000, value); - return; - case 8: // spu2 - SPU2write(mem & ~0xa0000000, value); return; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory write16 to address %x with data %4.4x\n", mem, value); -#endif - cpuTlbMissW(mem, cpuRegs.branch); -} - -void memWrite32(u32 mem, u32 value) -{ - char *p; - p = (char *)(memLUTW[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && (cpuRegs.CP0.r[16] & 0x10000)) - { - writeCache32(mem, value); - return; - } -#endif - *(u32*)(p + (mem & 0xfff)) = value; - if (CHECK_EEREC) { - CHECK_VUMEM(1); - REC_CLEARM(mem); -// PSXREC_CLEARM(mem & 0x1fffff); - } - return; - } - - switch ((int)(uptr)p) { - case 1: // hwm - hwWrite32(mem & ~0xa0000000, value); - return; - case 2: // psh - psxHwWrite32(mem & ~0xa0000000, value); return; - case 6: // gsm - gsWrite32(mem & ~0xa0000000, value); return; - case 7: // dev9 - DEV9write32(mem & ~0xa4000000, value); - SysPrintf("DEV9 write32 %8.8lx: %8.8lx\n", mem & ~0xa4000000, value); - return; - } -#ifdef MEM_LOG - MEM_LOG("Unknown Memory write32 to address %x with data %8.8x\n", mem, value); -#endif - cpuTlbMissW(mem, cpuRegs.branch); -} - -void memWrite64(u32 mem, u64 value) { - char *p; - - p = (char *)(memLUTW[mem >> 12]); - if ((uptr)p > 0x10) { - #ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && (cpuRegs.CP0.r[16] & 0x10000)) { - writeCache64(mem, value); - return; - } - #endif - /* __asm __volatile ( - "movq %1, %%mm0\n" - "movq %%mm0, %0\n" - "emms\n" - : "=m"(*(u64*)(p + (mem & 0xfff))) : "m"(value) - );*/ - *(u64*)(p + (mem & 0xfff)) = value; - if (CHECK_EEREC) { - CHECK_VUMEM(2); - REC_CLEARM(mem); - REC_CLEARM(mem+4); - } - return; - } - - - switch ((int)(uptr)p) { - case 1: // hwm - hwWrite64(mem & ~0xa0000000, value); - return; - case 6: // gsm - gsWrite64(mem & ~0xa0000000, value); return; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory write64 to address %x with data %8.8x_%8.8x\n", mem, (u32)(value>>32), (u32)value); -#endif - cpuTlbMissW(mem, cpuRegs.branch); -} - -void memWrite128(u32 mem, u64 *value) { - char *p; - - p = (char *)(memLUTW[mem >> 12]); - if ((uptr)p > 0x10) { -#ifdef ENABLECACHE - if ((mem & 0x20000000) == 0 && (cpuRegs.CP0.r[16] & 0x10000)) { - writeCache128(mem, value); - return; - } -#endif - p+= mem & 0xfff; - ((u64*)p)[0] = value[0]; - ((u64*)p)[1] = value[1]; - if (CHECK_EEREC) { - CHECK_VUMEM(4); - REC_CLEARM(mem); - REC_CLEARM(mem+4); - REC_CLEARM(mem+8); - REC_CLEARM(mem+12); - -/* PSXREC_CLEARM((mem) & 0x1fffff); - PSXREC_CLEARM((mem+4) & 0x1fffff); - PSXREC_CLEARM((mem+8) & 0x1fffff); - PSXREC_CLEARM((mem+12) & 0x1fffff);*/ - } - return; - } - - switch ((int)(uptr)p) { - case 1: // hwm - hwWrite128(mem & ~0xa0000000, value); - return; - case 6: // gsm - mem &= ~0xa0000000; - gsWrite64(mem, value[0]); - gsWrite64(mem+8, value[1]); return; - } - -#ifdef MEM_LOG - MEM_LOG("Unknown Memory write128 to address %x with data %8.8x_%8.8x_%8.8x_%8.8x\n", mem, ((u32*)value)[3], ((u32*)value)[2], ((u32*)value)[1], ((u32*)value)[0]); -#endif - cpuTlbMissW(mem, cpuRegs.branch); -} - - -#endif // PCSX2_VIRTUAL_MEM - void loadBiosRom(char *ext, u8 *dest) { struct stat buf; char Bios1[256]; @@ -3078,14 +2082,9 @@ void memReset() { char Bios[256]; FILE *fp; -#ifdef PCSX2_VIRTUAL_MEM DWORD OldProtect; memset(PS2MEM_BASE, 0, 0x02000000); memset(PS2MEM_SCRATCH, 0, 0x00004000); -#else - memset(psM, 0, 0x02000000); - memset(psS, 0, 0x00004000); -#endif strcpy(Bios, Config.BiosDir); strcat(Bios, Config.Bios); @@ -3095,22 +2094,11 @@ void memReset() { return; } -#ifdef PCSX2_VIRTUAL_MEM - -#ifdef _WIN32 // make sure can write VirtualProtect(PS2MEM_ROM, 0x00400000, PAGE_READWRITE, &OldProtect); VirtualProtect(PS2MEM_ROM1, 0x00040000, PAGE_READWRITE, &OldProtect); VirtualProtect(PS2MEM_ROM2, 0x00080000, PAGE_READWRITE, &OldProtect); VirtualProtect(PS2MEM_EROM, 0x001C0000, PAGE_READWRITE, &OldProtect); -#else - mprotect(PS2EMEM_ROM, 0x00400000, PROT_READ|PROT_WRITE); - mprotect(PS2EMEM_ROM1, 0x00400000, PROT_READ|PROT_WRITE); - mprotect(PS2EMEM_ROM2, 0x00800000, PROT_READ|PROT_WRITE); - mprotect(PS2EMEM_EROM, 0x001C0000, PROT_READ|PROT_WRITE); -#endif - -#endif fp = fopen(Bios, "rb"); fread(PS2MEM_ROM, 1, buf.st_size, fp); @@ -3127,28 +2115,13 @@ void memReset() { loadBiosRom("rom2", PS2MEM_ROM2); loadBiosRom("erom", PS2MEM_EROM); -#ifdef PCSX2_VIRTUAL_MEM - -#ifdef _WIN32 VirtualProtect(PS2MEM_ROM, 0x00400000, PAGE_READONLY, &OldProtect); VirtualProtect(PS2MEM_ROM1, 0x00040000, PAGE_READONLY, &OldProtect); VirtualProtect(PS2MEM_ROM2, 0x00080000, PAGE_READONLY, &OldProtect); VirtualProtect(PS2MEM_EROM, 0x001C0000, PAGE_READONLY, &OldProtect); -#else - mprotect(PS2EMEM_ROM, 0x00400000, PROT_READ); - mprotect(PS2EMEM_ROM1, 0x00400000, PROT_READ); - mprotect(PS2EMEM_ROM2, 0x00800000, PROT_READ); - mprotect(PS2EMEM_EROM, 0x001C0000, PROT_READ); -#endif - -#endif } void memSetKernelMode() { -#ifndef PCSX2_VIRTUAL_MEM - memLUTR = memLUTRK; - memLUTW = memLUTWK; -#endif MemMode = 0; } @@ -3157,10 +2130,6 @@ void memSetSupervisorMode() { void memSetUserMode() { #ifdef FULLTLB -#ifndef PCSX2_VIRTUAL_MEM - memLUTR = memLUTRU; - memLUTW = memLUTWU; -#endif MemMode = 2; #endif } diff --git a/pcsx2v2/Memory.h b/pcsx2v2/Memory.h index 684d86d..6b74ca2 100644 --- a/pcsx2v2/Memory.h +++ b/pcsx2v2/Memory.h @@ -28,14 +28,10 @@ #define PS2MEM_BASE_ 0x15000000 #define PS2MEM_PSX_ (PS2MEM_BASE_+0x1c000000) -#ifdef PCSX2_VIRTUAL_MEM - -#ifdef _WIN32 typedef struct _PSMEMORYMAP { uptr* aPFNs, *aVFNs; } PSMEMORYMAP; -#endif #define TRANSFORM_ADDR(memaddr) ( ((u32)(memaddr)>=0x40000000) ? ((memaddr)&~0xa0000000) : (memaddr) ) @@ -65,39 +61,6 @@ typedef struct _PSMEMORYMAP #define PSM(mem) (PS2MEM_BASE + TRANSFORM_ADDR(mem)) -#else - -extern u8 *psM; //32mb Main Ram -extern u8 *psR; //4mb rom area -extern u8 *psR1; //256kb rom1 area (actually 196kb, but can't mask this) -extern u8 *psR2; // 0x00080000 -extern u8 *psER; // 0x001C0000 -extern u8 *psS; //0.015 mb, scratch pad - -#define PS2MEM_BASE psM -#define PS2MEM_HW psH -#define PS2MEM_ROM psR -#define PS2MEM_ROM1 psR1 -#define PS2MEM_ROM2 psR2 -#define PS2MEM_EROM psER -#define PS2MEM_SCRATCH psS - -extern u8 g_RealGSMem[0x2000]; -#define PS2MEM_GS g_RealGSMem - -//#define _PSM(mem) (memLUTR[(mem) >> 12] == 0 ? NULL : (void*)(memLUTR[(mem) >> 12] + ((mem) & 0xfff))) -#define PSM(mem) ((void*)(memLUTR[(mem) >> 12] + ((mem) & 0xfff))) -#define FREE(ptr) _aligned_free(ptr) - -extern uptr *memLUTR; -extern uptr *memLUTW; -extern uptr *memLUTRK; -extern uptr *memLUTWK; -extern uptr *memLUTRU; -extern uptr *memLUTWU; - -#endif - #define psMs8(mem) (*(s8 *)&PS2MEM_BASE[(mem) & 0x1ffffff]) #define psMs16(mem) (*(s16*)&PS2MEM_BASE[(mem) & 0x1ffffff]) #define psMs32(mem) (*(s32*)&PS2MEM_BASE[(mem) & 0x1ffffff]) @@ -201,9 +164,6 @@ void recMemWrite32(); void recMemWrite64(); void recMemWrite128(); -// VM only functions -#ifdef PCSX2_VIRTUAL_MEM - void _eeReadConstMem8(int mmreg, u32 mem, int sign); void _eeReadConstMem16(int mmreg, u32 mem, int sign); void _eeReadConstMem32(int mmreg, u32 mem); @@ -233,35 +193,4 @@ int recMemConstWrite128(u32 mem, int xmmreg); extern int SysPageFaultExceptionFilter(struct _EXCEPTION_POINTERS* eps); -#else - -#define _eeReadConstMem8 0&& -#define _eeReadConstMem16 0&& -#define _eeReadConstMem32 0&& -#define _eeReadConstMem128 0&& -#define _eeWriteConstMem8 0&& -#define _eeWriteConstMem16 0&& -#define _eeWriteConstMem32 0&& -#define _eeWriteConstMem64 0&& -#define _eeWriteConstMem128 0&& -#define _eeMoveMMREGtoR 0&& - -// extra ops -#define _eeWriteConstMem16OP 0&& -#define _eeWriteConstMem32OP 0&& - -#define recMemConstRead8 0&& -#define recMemConstRead16 0&& -#define recMemConstRead32 0&& -#define recMemConstRead64 0&& -#define recMemConstRead128 0&& - -#define recMemConstWrite8 0&& -#define recMemConstWrite16 0&& -#define recMemConstWrite32 0&& -#define recMemConstWrite64 0&& -#define recMemConstWrite128 0&& - -#endif - #endif diff --git a/pcsx2v2/windows/VCprojects/pcsx2_2008.vcproj b/pcsx2v2/windows/VCprojects/pcsx2_2008.vcproj index 37af69f..3e6ebcb 100644 --- a/pcsx2v2/windows/VCprojects/pcsx2_2008.vcproj +++ b/pcsx2v2/windows/VCprojects/pcsx2_2008.vcproj @@ -1071,10 +1071,6 @@ RelativePath="..\..\x86\ix86-32\aVif_proc-32.asm" > - -