Since the console does not allow direct access to video memory, I will be making some tutorials showing how to achieve certain graphic effects. I have upoaded the first one, which is your typical moving water reflection. This GIF is a bit too small to see the effect well enough, but if I made it bigger it could get too large.
The code is uploaded at GitHub. I included an explanation of how each effect is made. Each of them (distortion and lighting) can be deactivated using gamepad buttons.
Re: Vircon32: Creating my own console
Posted: Sun Feb 13, 2022 9:06 am
by carra
I have uploaded tutorial projects for a couple more graphical effects. The first is motion blur. In this GIF you can roughly see how 2 types of blur are used: first only the ship, and then the full-screen blur is activated. This could be used for slow motion effects.
The other is showing how to achieve a silhouette effect out of any image we want to draw. The resulting effect is similar to some edge detection filters in programs like Photoshop.
Same as before you can find the code for both of these at GitHub.
Re: Vircon32: Creating my own console
Posted: Tue Feb 15, 2022 8:57 am
by carra
For now this will be the last graphic tutorial. Rather than an effect, what I demonstrate here is a way to draw 3D polygons in a console that can only draw 2D. Due to Vircon's limitations this technique only allows drawing flat, shaded polygons without texturing.
This example is not particularly optimized (I preferred writing more readable code), but still the console will not have a good performance in this kind of graphics (CPU use here reaches 90%).
I have uploaded a new version to the website, along with its source code.
Ther compiler guide is also updated, both the English and Spanish version.
There are some important new features:
Enumerations can now be used
Very useful, since there are no constants implemented. It is also an easier way to define game textures and sounds, which always have consecutive IDs, instead of making 20 #defines.
I added switch, case and default
Before this, the selection of scenes or state machines was done by chaining if-else, because there was nothing else. Now it will look better.
Also included now are labels and goto
In theory they should not be used, but since C supports them, I added them just in case. There might be situations where it simplifies program flow.
Structures and arrays can now be initialized with lists
We can now declare typical arrays: int[ 3 ] Array = { 1, 2, 3 }; It also comes in handy for structures or compound data like vectors. This will save many lines of code.
There are also a couple of other new features, but these are the most important.
Re: Vircon32: Creating my own console
Posted: Sun Feb 27, 2022 2:14 am
by Sirocco
carra wrote: ↑Tue Feb 15, 2022 8:57 am
For now this will be the last graphic tutorial. Rather than an effect, what I demonstrate here is a way to draw 3D polygons in a console that can only draw 2D. Due to Vircon's limitations this technique only allows drawing flat, shaded polygons without texturing.
This example is not particularly optimized (I preferred writing more readable code), but still the console will not have a good performance in this kind of graphics (CPU use here reaches 90%).
At some point I'm going to look into how to make something with this thing
Re: Vircon32: Creating my own console
Posted: Tue Mar 08, 2022 8:20 am
by carra
BadMrBox wrote: ↑Mon Mar 07, 2022 10:28 pm
At some point I'm going to look into how to make something with this thing
Good to hear If you need help at any point feel free to ask.
To prepare things for the jam I have built a basic editor to visually define the regions within game textures. This will automatically generate the C code needed by the console to use these images, so it will save some time. Here you have a quick video showing how it works:
Re: Vircon32: Creating my own console
Posted: Fri Mar 11, 2022 8:00 am
by carra
Just a small update, in case some of you are interested the Vircon32 Jam is already ongoing and has reached 10 participants
Also some people have made donations and we now have a first and second prize.