This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 »
61
Tips, Tutorials, Examples / Re: Isometric projection in 3D
« on: February 23, 2019, 11:44:25 pm »
Hi again impo! I have to say I was happy to hear of your development with this as it seems to be a positive side effect of the matrix cleanup we did. What's even better is that to fix it, it only needs tweaked in a single location for all the graphics systems.
https://github.com/enigma-dev/enigma-dev/blob/5317421ad4aa3ac38d3e6e99515c993ccfa04320/ENIGMAsystem/SHELL/Graphics_Systems/General/GSmatrix.cpp#L245
If you could be more specific about how you think it should be changed to improve it, I would love to hear it and consider adding it to the official ENIGMA. Also, please try running your game in Direct3D systems and let us know if that produces different results with respect to the fog or lighting.
https://github.com/enigma-dev/enigma-dev/pull/1528
https://github.com/enigma-dev/enigma-dev/pull/1396
https://github.com/enigma-dev/enigma-dev/pull/1388
You'll notice that 1528 was merged just 21 days ago, if you setup ENIGMA before that, you might want to consider updating.
https://github.com/enigma-dev/enigma-dev/blob/5317421ad4aa3ac38d3e6e99515c993ccfa04320/ENIGMAsystem/SHELL/Graphics_Systems/General/GSmatrix.h#L34
https://github.com/enigma-dev/enigma-dev/blob/5317421ad4aa3ac38d3e6e99515c993ccfa04320/ENIGMAsystem/SHELL/Graphics_Systems/General/GSmatrix.cpp#L245
If you could be more specific about how you think it should be changed to improve it, I would love to hear it and consider adding it to the official ENIGMA. Also, please try running your game in Direct3D systems and let us know if that produces different results with respect to the fog or lighting.
Quote from: impo
however i couldn't get functions like d3d_set_perspective to workThis particular function I'd like to comment on. This is actually a tricky to understand function due to its poor documentation in GM's original manual. And through API traces I can confirm that its behavior is the same in ENIGMA as it is in GM. Basically, the way it works is that GM resets the projection automatically at the beginning of each screen redraw. If 3D mode was turned on and perspective is enabled (default is on) then it will set a perspective projection, otherwise an orthographic one. You can see several of the pull requests below where I tested and confirmed the behavior of these functions for consistency.
https://github.com/enigma-dev/enigma-dev/pull/1528
https://github.com/enigma-dev/enigma-dev/pull/1396
https://github.com/enigma-dev/enigma-dev/pull/1388
You'll notice that 1528 was merged just 21 days ago, if you setup ENIGMA before that, you might want to consider updating.
Quote from: impo
perhaps projection matrix would work faster?I am not sure if I understand this question. I have added the GMSv1.4 and GMS2 [snip]matrix_*[/snip] family of functions to ENIGMA, though they are untested. Feel free to be the first person to give them a try.
https://github.com/enigma-dev/enigma-dev/blob/5317421ad4aa3ac38d3e6e99515c993ccfa04320/ENIGMAsystem/SHELL/Graphics_Systems/General/GSmatrix.h#L34
Quote from: impo
what's actually the most computationally effective way in enigma to make isometric (or any other orthographic) projection in 3d?The way that you are doing it now basically. I have done a lot of benchmarking to ENIGMA's graphics such that you don't need to worry about it, and I have posted these benchmarks publicly on the GitHub repo on my various pull requests. ENIGMA, as a game engine, handles matrices in a very standard way that's not only compatible with GM but just as performant. Going even further, OpenGL Mathematics (GLM) is the dependency we use for the matrix computations and it uses SIMD and compiler intrinsics for optimization.
62
Finished Games / Re: Mystery Mansion
« on: February 18, 2019, 03:09:29 pm »
That was a lot of fun Hugar, I've left you a review on the Windows version!
https://enigma-dev.org/edc/games.php?game=77
https://enigma-dev.org/edc/games.php?game=77
63
General ENIGMA / Re: Sorry, I really tried
« on: February 18, 2019, 04:56:14 am »
Hey waddlewaddle, I am sorry to hear of your struggles with the installation, and I want to say that we do hear your feedback. We have debated for some time the complexity of the installation procedures for ENIGMA. We understand it's not the most friendly to novices and we have looked at various scripts and installer-like mechanisms to make things easier. I am, to this date, still not entirely satisfied with the lack of a simple setup method.
Various forum users have also been developing their own setup methods, which we are totally ok with and do support. You may be interested in an Easy Installation method that was shared recently.
https://enigma-dev.org/forums/index.php?topic=2954.0
The problem is partly the underdevelopment of ENIGMA as we lack contributors. On one hand, the quality of updates and contributions has improved significantly, largely thanks to continuous integration testing on the repo. But when you consider that maintaining an installer alone is a large bulk of work, it's quite obvious that YoYo has an advantage here because they have a full staff of people that can just focus on installation alone. Here the responsibility usually falls on me to update dependency lists and other instructions on the Wiki pages, which you often see me doing in official announcements.
I want to give you some more information about the commonly used [snip]cd[/snip] command which is short for "change directory." An obvious reason your [snip]cd enigma-dev[/snip] command may have failed, is that you were in the wrong directory to begin with, in which case you must first cd to the parent directory of the [snip]enigma-dev[/snip] directory. Also, the [snip]enigma-dev[/snip] directory is created during the [snip]git clone[/snip] step of the setup which is where the source code is actually downloaded from our GitHub repository. By default, the clone command will download the source code in the current directory of your terminal and give it the name of the repo, which happens to be [snip]enigma-dev[/snip]. I hope you will find this information insightful and that it maybe clarifies a little bit of your confusion. I will provide a short/simple guide that explains several other common terminal commands.
https://www.digitalcitizen.life/command-prompt-how-use-basic-commands
I also want to say that it's fine to be unfamiliar with command line tools, but knowing about them and understanding them can be very beneficial to you as a software developer. Nothing the project uses is in any way non-standard or particularly unique. For example, GNU make is a very popular and widely supported build system. There is nothing out of the ordinary for our project to be using it. Regardless, I hope I helped and I really do take your feedback seriously and appreciate that you took the time to try the setup and to let us know about the issues you faced.
Various forum users have also been developing their own setup methods, which we are totally ok with and do support. You may be interested in an Easy Installation method that was shared recently.
https://enigma-dev.org/forums/index.php?topic=2954.0
The problem is partly the underdevelopment of ENIGMA as we lack contributors. On one hand, the quality of updates and contributions has improved significantly, largely thanks to continuous integration testing on the repo. But when you consider that maintaining an installer alone is a large bulk of work, it's quite obvious that YoYo has an advantage here because they have a full staff of people that can just focus on installation alone. Here the responsibility usually falls on me to update dependency lists and other instructions on the Wiki pages, which you often see me doing in official announcements.
I want to give you some more information about the commonly used [snip]cd[/snip] command which is short for "change directory." An obvious reason your [snip]cd enigma-dev[/snip] command may have failed, is that you were in the wrong directory to begin with, in which case you must first cd to the parent directory of the [snip]enigma-dev[/snip] directory. Also, the [snip]enigma-dev[/snip] directory is created during the [snip]git clone[/snip] step of the setup which is where the source code is actually downloaded from our GitHub repository. By default, the clone command will download the source code in the current directory of your terminal and give it the name of the repo, which happens to be [snip]enigma-dev[/snip]. I hope you will find this information insightful and that it maybe clarifies a little bit of your confusion. I will provide a short/simple guide that explains several other common terminal commands.
https://www.digitalcitizen.life/command-prompt-how-use-basic-commands
I also want to say that it's fine to be unfamiliar with command line tools, but knowing about them and understanding them can be very beneficial to you as a software developer. Nothing the project uses is in any way non-standard or particularly unique. For example, GNU make is a very popular and widely supported build system. There is nothing out of the ordinary for our project to be using it. Regardless, I hope I helped and I really do take your feedback seriously and appreciate that you took the time to try the setup and to let us know about the issues you faced.
64
Issues Help Desk / Re: bug with data structures?
« on: February 13, 2019, 01:57:24 pm »
GM8 does the same, it's because you have the game setting "Treat uninitialized variables as 0" enabled.
65
Issues Help Desk / Re: found new(?) bug with object numbers in LGM that affects Enigma
« on: February 13, 2019, 10:15:19 am »
Yeah, it sounds like you did actually find a legit bug that should be fixed. This is kind of interesting because somebody was just talking to me the other day about ids. Anyway, as I've been making aware, I am trying to focus most of my energy and resources at laying the foundation for the new IDE and have stopped working on LateralGM. I will leave it up to you whether you want to file the issue on LGM's tracker along with your reproduction steps so it doesn't get forgotten about.
https://github.com/ismavatar/lateralgm/issues
Also, I want to recommend another workaround that may be a little easier for some people. First, make a backup copy of the project. Then select Resources->Check Ids which should ask you to defrag the ids, effectively resolving the issue. However, defragging ids can sometimes break certain projects if the user was hard coding resource/instance ids in their project. They might then have to do some refactoring.
https://github.com/ismavatar/lateralgm/issues
Also, I want to recommend another workaround that may be a little easier for some people. First, make a backup copy of the project. Then select Resources->Check Ids which should ask you to defrag the ids, effectively resolving the issue. However, defragging ids can sometimes break certain projects if the user was hard coding resource/instance ids in their project. They might then have to do some refactoring.
66
Announcements / Re: New Dependency on Google Protocol Buffers
« on: February 12, 2019, 10:34:23 pm »
Alright, a small update to this, we've finally completed the transition to Protocol Buffers over some additional pull requests and Proto2ES is no longer part of the codebase. This means the compiler uses protocol buffers directly which is handed to it by emake and RadialGM. Tools like LateralGM that use the old interface still pass an EnigmaStruct, but it is first converted into a protocol buffer before the compiler builds it.
https://github.com/enigma-dev/enigma-dev/commit/ff783971ec92ca908533fdf1c9c6d9820e60c055
https://github.com/enigma-dev/enigma-dev/commit/ce15a467134abda6a08a77328f802f7d143dbb47
https://github.com/enigma-dev/enigma-dev/commit/a8868e200f9a9242bfd5480abe81391d039991b3
https://github.com/enigma-dev/enigma-dev/commit/52f2c6a5d0862c0f0f657fb8985756a04a9635be
https://github.com/enigma-dev/enigma-dev/commit/2281c1db8f29201a834a7e2ecc97ff90424c6922
https://github.com/enigma-dev/enigma-dev/commit/62a11b04153a7029bc64ba1e696fcb8f47970a55
I have not benchmarked, but theoretically, the protocol buffers and any frontend tools that use them, including emake, should now be reaching maximum build time performance. For the time being, tools like LateralGM will continue using the deprecated EnigmaStruct interface, subject to binary-compatibility breaking changes. My next step is to finally switch us to libpng and remove lodepng from our codebase before moving on to the next big things. This should bring even quicker build times!
https://github.com/enigma-dev/enigma-dev/issues/1391
https://github.com/enigma-dev/enigma-dev/commit/ff783971ec92ca908533fdf1c9c6d9820e60c055
https://github.com/enigma-dev/enigma-dev/commit/ce15a467134abda6a08a77328f802f7d143dbb47
https://github.com/enigma-dev/enigma-dev/commit/a8868e200f9a9242bfd5480abe81391d039991b3
https://github.com/enigma-dev/enigma-dev/commit/52f2c6a5d0862c0f0f657fb8985756a04a9635be
https://github.com/enigma-dev/enigma-dev/commit/2281c1db8f29201a834a7e2ecc97ff90424c6922
https://github.com/enigma-dev/enigma-dev/commit/62a11b04153a7029bc64ba1e696fcb8f47970a55
I have not benchmarked, but theoretically, the protocol buffers and any frontend tools that use them, including emake, should now be reaching maximum build time performance. For the time being, tools like LateralGM will continue using the deprecated EnigmaStruct interface, subject to binary-compatibility breaking changes. My next step is to finally switch us to libpng and remove lodepng from our codebase before moving on to the next big things. This should bring even quicker build times!
https://github.com/enigma-dev/enigma-dev/issues/1391
67
Tips, Tutorials, Examples / Re: looking for shaders
« on: February 12, 2019, 06:51:10 pm »
Hey, you just wait until you see what I am going to port over to ENIGMA very soon. It's one of my projects in MonoGame... very exciting. I am going to port it in an attempt to add HLSL shaders and improve the GLSL shaders. I will have it working in 4 graphics systems. Just stay tuned for that, lots of interesting things coming. Also, that sounds interesting, I had wanted to build a SimCity like game in ENIGMA for some time, but presently all I have is my 2D SimCity tile-engine working that was made by me in GM a long time ago now.
68
Tips, Tutorials, Examples / Re: looking for shaders
« on: February 12, 2019, 06:49:43 am »
Alright, as promised, here I am with a very simple GLSL shader example. So the first thing to mention is that shaders in ENIGMA, since they were first added, are very pure. This means we have less abstraction on top of them so you'll need to do things like declare the GLSL version at the top. I have plans and intentions of improving shader support and compatibility quite a bit soon. Since we've largely revamped our graphics systems and solved some of the more basic problems... this is the next logical step as I've been incrementally adding DX11 support.
You'll find 3 files attached to this post. [snip]simple-shader-example.zip[/snip] is a GMX that contains a GLSL 110 shader which works in our OpenGL1 graphics system. Shaders will not be saved when saving your project in the GMK format because it did not support them. The shader itself, while GLSL 110 compliant, is not GMS compatible. It will therefore not work in our OpenGL3 system, which is structured more like GMS's shaders. This is one of the areas I plan on improving going into the future. You will also find [snip]toonv.glsl[/snip] and [snip]toonf.glsl[/snip] which is a 3D toon shader that also works in our OpenGL1 graphics system if you would like to use it.
If you have any more questions, please feel free to ask, and I will make sure that when I get to improving the shader support that I make an announcement.
You'll find 3 files attached to this post. [snip]simple-shader-example.zip[/snip] is a GMX that contains a GLSL 110 shader which works in our OpenGL1 graphics system. Shaders will not be saved when saving your project in the GMK format because it did not support them. The shader itself, while GLSL 110 compliant, is not GMS compatible. It will therefore not work in our OpenGL3 system, which is structured more like GMS's shaders. This is one of the areas I plan on improving going into the future. You will also find [snip]toonv.glsl[/snip] and [snip]toonf.glsl[/snip] which is a 3D toon shader that also works in our OpenGL1 graphics system if you would like to use it.
If you have any more questions, please feel free to ask, and I will make sure that when I get to improving the shader support that I make an announcement.
69
Tips, Tutorials, Examples / Re: looking for shaders
« on: February 12, 2019, 12:25:48 am »
Hi impo! I can make you a simple GLSL shader example that's GMS compatible. Give me a bit to prepare one. HLSL shaders are not in yet, I attempted them before but had to remove them due to dependency on the legacy D3DX. I will be readding HLSL shaders later using the newer API so I can port my one terrain engine, based on Battlefield DICE's, as a proof of concept. I'll post back later.
70
Announcements / New Dependency on Google Protocol Buffers
« on: February 02, 2019, 09:54:42 pm »
I wanted to make sure to cover this with an announcement to keep everyone in the loop. We have now rearranged the backend to the compiler so that it now uses Protocol Buffers directly. EnigmaStruct is now deprecated and should not be used for building new command line or frontend tools that integrate with ENIGMA.
https://github.com/enigma-dev/enigma-dev/commit/a1aa34d57d91e438bf937a39d902a6556932eaec
We also had to come back and address a few regressions from this change in several games. With this, there have been no other new regressions discovered.
https://github.com/enigma-dev/enigma-dev/commit/090d1a92fa377e0f9a851ebdaa3daa325b76a497
https://github.com/enigma-dev/enigma-dev/commit/36de74c8d44871ea260506a8f8e27d684aee4253
EnigmaStruct is deprecated rather than obsolete because it is still used by LateralGM. It will likely remain that way as my development attention is staying focused at RadialGM now which uses the new Protocol Buffers directly for its data model. One advantage to the new Protocol Buffers interface is that binary compatibility can be maintained when changing the protos. This is not true of the old EnigmaStruct, and thus, tools that use it will be subject to frequent breakage as a result of the lack of binary compatibility.
Long story short, you will now need to install Google Protocol Buffers when setting up ENIGMA or the next time you update an existing installation.
I have also updated the Ubuntu/Linux installation instructions as well as the easy method script with the help of TKG. You will need a newer protobuf version which is why we recommend installing the dependency from Maarten Fonville's PPA which is where our Travis CI build obtains it.
https://enigma-dev.org/docs/Wiki/Install:Linux
https://github.com/enigma-dev/enigma-dev/issues/1527
You will also need to do a clean build of the compiler.
https://github.com/enigma-dev/enigma-dev/commit/a1aa34d57d91e438bf937a39d902a6556932eaec
We also had to come back and address a few regressions from this change in several games. With this, there have been no other new regressions discovered.
https://github.com/enigma-dev/enigma-dev/commit/090d1a92fa377e0f9a851ebdaa3daa325b76a497
https://github.com/enigma-dev/enigma-dev/commit/36de74c8d44871ea260506a8f8e27d684aee4253
EnigmaStruct is deprecated rather than obsolete because it is still used by LateralGM. It will likely remain that way as my development attention is staying focused at RadialGM now which uses the new Protocol Buffers directly for its data model. One advantage to the new Protocol Buffers interface is that binary compatibility can be maintained when changing the protos. This is not true of the old EnigmaStruct, and thus, tools that use it will be subject to frequent breakage as a result of the lack of binary compatibility.
Long story short, you will now need to install Google Protocol Buffers when setting up ENIGMA or the next time you update an existing installation.
Code: (bash) [Select]
# MSYS2 64-bit
pacboy -S protobuf:x
# MSYS2 32-bit
pacboy -S protobuf:i
I have also updated the Ubuntu/Linux installation instructions as well as the easy method script with the help of TKG. You will need a newer protobuf version which is why we recommend installing the dependency from Maarten Fonville's PPA which is where our Travis CI build obtains it.
https://enigma-dev.org/docs/Wiki/Install:Linux
https://github.com/enigma-dev/enigma-dev/issues/1527
Code: (bash) [Select]
sudo add-apt-repository ppa:maarten-fonville/protobuf
sudo apt-get update
sudo apt-get install libprotobuf-dev protobuf-compiler
You will also need to do a clean build of the compiler.
Code: (bash) [Select]
make clean
make -j4
71
Works in Progress / Re: Mystery Mansion
« on: January 30, 2019, 04:35:13 am »
If you are talking about DirectSound not playing short WAV files, you may seriously want to update hugar, they weren't kidding when they told you I submitted a patch for it recently.
https://github.com/enigma-dev/enigma-dev/commit/cc5ed8ba22f1b25bb6164bfbdf4dc0ff725efa06
https://github.com/enigma-dev/enigma-dev/commit/cc5ed8ba22f1b25bb6164bfbdf4dc0ff725efa06
72
Works in Progress / Re: Mystery Mansion
« on: January 19, 2019, 12:18:32 pm »
I am really excited for the release of your upcoming game hugar. I have to say, I like the theme and I think it's going to be interesting to see how the story develops as the game progresses. I look forward to a story directed by you. The gameplay mechanics discussed sound similar to others we've been seeing lately, with some additional twists. I hope that you will employ enough variety to differentiate the game. I am looking forward to what the bonus items will be and discovering them in the game. I really like the preview screens and have to say the art work looks good so far. I'll be watching and waiting for the first release!
73
General ENIGMA / Re: Great News for the NEW YEAR
« on: January 01, 2019, 02:44:36 am »
Oh my gaaaahddd, I went to bed in 2018, I wake up in 2019 and the EDC is fixed. Call the starship scotty because they're going to beam me straight up into the giant big ol' fat 3.14 in the sky.
Now that I got that out of my system, I just want to say I am really happy and thrilled with all of you lately. Excellent work on Josh's part, I am really happy he finally hammered all the gremlins out of the EDC so we can use it again. I am really proud and also greatful for your work on developing an offline manual that I know many people are going to be quite happy about hugar! TKG is clearly starting to mature into a skilled software developer, and a useful contributor now, as he continues to refine his development habits and practices to accomplish much larger and needed tasks like the SDL joysticks this week.
2018 has been a great year and I have it on good authority that 2019 is going to be even better!
Now that I got that out of my system, I just want to say I am really happy and thrilled with all of you lately. Excellent work on Josh's part, I am really happy he finally hammered all the gremlins out of the EDC so we can use it again. I am really proud and also greatful for your work on developing an offline manual that I know many people are going to be quite happy about hugar! TKG is clearly starting to mature into a skilled software developer, and a useful contributor now, as he continues to refine his development habits and practices to accomplish much larger and needed tasks like the SDL joysticks this week.
2018 has been a great year and I have it on good authority that 2019 is going to be even better!
74
Works in Progress / Re: Project Mario
« on: January 01, 2019, 02:19:06 am »
Minor update to this topic because I have run across the fact that my old Dropbox links have gone dead. I stopped using Dropbox about a year ago but have backed up all of my files from there. I spoke with Josh and asked him about putting Project Mario up on the EDC and he actually went so far as to fix EDC game uploading. I'm now hosting the project's source there.
https://enigma-dev.org/edc/games.php?game=76
I believe this is carried on from the ISO compliant version because I notice I use all forward slashes for filepaths instead of backslashes. Which is fine either way, GM8.1 should handle forward slashes just fine. To get this version to build on the latest master you just need to use the OpenAL audio system because the DirectSound audio system seems to have some issues with some of the WAV audio files.
Over the years since I posted this topic, ENIGMA has changed significantly. The only main issue I have found with running the game in the good old OpenGL1 is that Mario's head does not appear on the start screen. This is likely due to a change in the clipping planes of the projection function when I switched ENIGMA to GLM. Direct3D9 has also seemed to have developed some surface issues at some point. Regardless, I am generally happy that the game continues to work so well despite some of our massive overhauling of the models and everything (thanks continuous integration!).
https://enigma-dev.org/edc/games.php?game=76
I believe this is carried on from the ISO compliant version because I notice I use all forward slashes for filepaths instead of backslashes. Which is fine either way, GM8.1 should handle forward slashes just fine. To get this version to build on the latest master you just need to use the OpenAL audio system because the DirectSound audio system seems to have some issues with some of the WAV audio files.
Over the years since I posted this topic, ENIGMA has changed significantly. The only main issue I have found with running the game in the good old OpenGL1 is that Mario's head does not appear on the start screen. This is likely due to a change in the clipping planes of the projection function when I switched ENIGMA to GLM. Direct3D9 has also seemed to have developed some surface issues at some point. Regardless, I am generally happy that the game continues to work so well despite some of our massive overhauling of the models and everything (thanks continuous integration!).
75
Issues Help Desk / Re: [SOLVED]LGM/Enigma lib errors
« on: December 07, 2018, 10:15:16 am »
That's good, everybody note this, I may have to tweak the Wiki a bit to mention that you should do it from the MinGW32 terminal for 32 bit.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 »