flat assembler
Message board for the users of flat assembler.

Index > Heap > vivik's twitter

Goto page Previous  1, 2, 3 ... 7, 8, 9 ... 13, 14, 15  Next
Author
Thread Post new topic Reply to topic
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 17280
Location: In your JS exploiting you and your system
revolution
sleepsleep wrote:
https://en.wikipedia.org/wiki/Serial_Experiments_Lain

Quote:
The series focuses on Lain Iwakura, an adolescent middle school girl living in suburban Japan, and her introduction to the Wired, a global communications network which is similar to the Internet. Lain lives with her middle-class family, which consists of her inexpressive older sister Mika, her emotionally distant mother, and her computer-obsessed father; while Lain herself is somewhat awkward, introverted, and socially isolated from most of her school peers. But the status-quo of her life becomes upturned by a series of bizarre incidents that start to take place after she learns that girls from her school have received an e-mail from a dead student, Chisa Yomoda, and she pulls out her old computer in order to check for the same message. Lain finds Chisa telling her that she is not dead, but has merely "abandoned her physical body and flesh" and is alive deep within the virtual reality-world of the Wired itself, where she has found the almighty and divine "God". From this point, Lain is caught up in a series of cryptic and surreal events that see her delving deeper into the mystery of the network in a narrative that explores themes of consciousness, perception, and the nature of reality.


i watched this before, but kinda forgot them all, maybe i didn't finish it,
Did you mean to post in this thread?
Post 02 Nov 2018, 06:42
View user's profile Send private message Visit poster's website Reply with quote
sleepsleep



Joined: 05 Oct 2006
Posts: 8904
Location: ˛                             ⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣Posts: 334455
sleepsleep
revolution wrote:

Did you mean to post in this thread?

ya, coz he/she/it posted the anime theme song,
vivik wrote:
https://www.youtube.com/watch?v=5dbi4N6NGn4
Serial Experiments Lain - Cyberia Theme
this track is pumping my blood real good


kinda recalled my memory regarding this anime,

just found my posted thread, and that is year 2010, oh my gosh,
https://board.flatassembler.net/topic.php?p=116433#116433
Post 02 Nov 2018, 07:41
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
the good, the bad, and the boring

lain is more famous that it deserves, in a way. Forbidden siren retold how one writer was really pissed at another one for "wtf are you even writing?" at episode 3. Just drops more bullshit on you without bothering with making sense. Kinda like "lost", but shorter.

please refer to me as "he", if vivik is too long to type. Refer to everyone as "he", it doesn't matter anyway.
Post 02 Nov 2018, 10:18
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
Post 02 Nov 2018, 17:57
View user's profile Send private message Reply with quote
Furs



Joined: 04 Mar 2016
Posts: 1471
Furs
vivik wrote:
@Furs
Name a few.

I actually prefer manga to anime for the most part, anime feels terribly slow to me. Also I'm too lazy to torrent shit, so I rarely watch movies either. Watched shitton of movies in my tv days though.
But manga has no music... Wink Why don't you just stream? No need to torrent anything.

Anyways just my preference tends to be towards less repetitive/loopy, more epic kind of stuff like:

Attack on Titan
APETITAN (eerie action)
Eye Water (sad ambient)
Vogel im Kafig (dramatic ambient)
Attack on Titan (doomy action, main theme)
https://www.youtube.com/watch?v=VekSptvfofw (heroic, has no name unfortunately)

Fate Stay/Night Unlimited Blade Works
Unlimited Blade Works (theme)
Souls to Fight (dark combat)
Fist of Desperate Awakening (epic action)
Purple Particles (eerie ambient)

Tokyo Ghoul
Light and Shadow (theme)
Verzerrte Welt (dark epic)
Schöpfer (epic)

There's way more but I got tired of listing them. The anime they are from are good also.

I don't really like older anime (pre 2006) because the music tends to be pretty bad and not epic/bombastic enough for my tastes... same with old movies actually.
Post 02 Nov 2018, 19:03
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
Hm, older anime (around 1997) is often animated better, nowadays people try to cheapen things as much as they can.

https://www.youtube.com/watch?v=K9P3lB2kU-k
Saint Pepsi - Enjoy Yourself (Extended Version)
cardcaptor sakura

https://www.youtube.com/watch?v=qzj4gHuH2LA
SAINT PEPSI - ENJOY YOURSELF (Music Video REUPLOAD)

I like how excel saga anime is about LOL SO RANDOM visual gags, and excel saga manga is about being piss poor.

https://www.youtube.com/watch?v=qzj4gHuH2LA
Hunter X Hunter Opening 1

https://www.youtube.com/watch?v=67t5vikUfhI
Hunter x Hunter Arabic Opening ‬
what?

https://www.youtube.com/watch?v=i3PtHwNm838
tonde buurin
lol quality

https://www.youtube.com/watch?v=oKCyn8HFmqc
Soul Eater [AMV]- Can't Hold Us

https://www.youtube.com/watch?v=Y5jZgZLvXGE
Twin Peaks - Forever Lost (tribute video)

https://www.youtube.com/watch?v=j8-KTdNdizE
Twin Peaks but without context
Post 03 Nov 2018, 07:19
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
https://www.youtube.com/watch?v=Pez0in248jg
Chulip: Pucker Up - PART 1 - Game Grumps

https://www.youtube.com/watch?v=ZERWaMyGdF0
Stretch Panic: Emphasis on PANIC - PART 1 - Game Grumps

youtube playlists work like shit. And the reason for that is ads, I'm sure of that.

they don't know shit, but at least their reaction is hilarious.
Post 03 Nov 2018, 08:54
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
I can choose a better data structure if I can predict the way it will grow.

So, about my gallery app. I have this file structure:

-gallery
--files
---gen1
----18389
-----somejpeg_001.jpg
-----somejpeg_002.jpg
----6542
-----random38927.jpg
-----random30873.jpg
----34521
-----(you got the point)
----543677
----34512
----34525
---gen2
----192943
----(you got the point)
--thumb
---18389.jpg
---6542.jpg
---34521.jpg
----(some thumbnails may be missing)

I want images to load in the first in first out order. They hang in the memory for a bit, and cleared when they are no longer needed. So, I need a list of every image I loaded so far, easily searchable and changeable.

I will probably, allocate 0x1000 bytes of memory, and place everything in there. Somewhere outside I'll have one pointer, "loaded_galleries", that will point somewhere in this 0x1000, and it will indicate where this data structure really starts. I can allocate memory in a way that it's always aligned by 0x1000, so by having a pointer to the middle of 0x1000 chunk I can always tell where it's beginning and end are.

I wouldn't need more than 3 galleries open at once, but I want to be able to go back to the previous gallery fast, without waiting for everything to load again. You open gallery A, then you open galleries B C and D, and at the moment you open gallery D, A gets freed.

The useful data will consist of: generation_number (one byte is more than enough, but let's waste all 4, whatever), gallery_id, number_of_images, and then variable amount of pointer_to_image (equal to number_of_images).

I also need to store somewhere outside the "galleries_loaded", to indicate if there is one or all 3 galleries loaded right now. Maybe instead of "loaded_galleries" and "galleries_loaded", I should just use 3 separate variables for each, like, "gallery_1" "gallery_2" "gallery_3", and on loading a new gallery I will do this:

free everything in gallery_1
copy gallery_2 to gallery_1
copy gallery_3 to gallery_2
load new gallery to gallery_3

I guess on the start of program, nothing is loaded, so gallery_1 gallery_2 gallery_3 will all be zero. So I need to write logic for then everything is 0, then only gallery_2 and gallery_3 are 0, and then only gallery_3 are zero.

The upside of "gallery_1" "gallery_2" "gallery_3" is, you don't have to worry about them being one after another in memory, they can be whenever. Except, they will probably always be one after another anyway. Imagine a scenario when you open gallery A, B, C, then return to A, and then open D. The gallery to be freed will be gallery A, even though freeing B may be more convenient and intuitive for user. Also you will need yet another variable, "gallery_empty_space", to indicate where you can place new galleries. If they are sequential, you can always go to "gallery_3", get it's size by looking at "number_of_images", and just assume that space after it is free to use. So, keeping them sequential is much more convenient to program, and that rare case isn't a problem. So, let's disregard this gallery_1 gallery_2 gallery_3 idea, and use "loaded_galleries" and "galleries_loaded".

I use this gen1 gen2 gen3 because I heard that placing too many files (or folders) in the same folder will slow filesystem down.

What I also want to do, is, unite all thumbnails in one file. Keeping many small files wastes some space on each, the exact amound depends on filesystem granularity, I think it's 0x1000 or a bit bigger for ntfs, the exact number is set at the time you format your hdd. I will use a separate "index" file for storing the exact offset of each thumbnail, and maybe I will keep width height in there too? I'm sure all thumbnail files will have the same parameters for everything (same compression ratio, same compression method, but different width and height), so I can get rid of jpeg header.

Also want to unite every file in the gallery into one file. They are useless separately, they are only useful in sequence. Those "galleries" are "comics", what's the point of reading page 25 without reading page 24 23 22 first, it's very rarely useful. But before that, I need to make sure that there is nothing important/interesting/useless in jpg/png headers (there are sometimes comments, usually by encoding programs themselves). There are rarely more than 100 pages in a comics, so uniting them is a safe thing to do. This all will wait for when I'll figure out jpeg library and jpeg headers.

I already have a "struct gallery", look at this:

Code:
struct gallery {
        struct view view;
        int images_skipped;

        wchar_t* pathbase; //one of g_index_filenames_stringbuf, and g_index
        int filenum;

        int files_total;
        int files_loaded;
        int files_loaded_first; //allows skipping first files

        wchar_t* filenames_stringbuf_start;
        wchar_t* filenames_stringbuf;

        wchar_t** filenames_start;
        wchar_t** filenames;

        DWORD** folder_texture_pointers_start;
        DWORD** folder_texture_pointers;

        struct gallery* next;

};
    


"next" field indicates that it's a lazily made list (I never even delete anything from it, it glitches anyway when I open too many files). Because there is "folder_texture_pointers_start" and "folder_texture_pointers", images can't be loaded out of order, and I want to be able to quickly scroll to the middle of the gallery. Ignore "files_loaded_first", it's just an attempt, it's not implemented.

Well, this reminded me, that I need to store filenames too somehow. So I must add "filenames_stringbuf_start" right after "gallery_id" or after "number_of_images"? When I open a gallery, the first thing I do is get the list of all filenames. I don't need "filenames_stringbuf", it indicates the start of the free space where I can write new strings, and all filenames will be stored in one go. Don't quite remember the difference between "filenames" and "filenames_stringbuf", most likely I just made "filenames_stringbuf" to keep pointers to all 0x1000 chunks of memory I use to keep those strings, in case some gallery is large enough to not fit in.

Yes, right now I store strings in one or more 0x1000 chunks of memory too. Pretty convenient in a way. I use last 4 bytes of each chunk to point to the next chunk of memory (0 if it's the last one), and also start each string with 2 bytes indicating it's length. If length is 0, it's the last string there. If length is -1, the next string isn't right after this, it's in the next chunk. I can free all of these strings at the same time, quite fast, no need to free each individually, no fragmentation. And I can iterate through all strings by having only the pointer to the first one. Code is damn confusing though.
Post 03 Nov 2018, 13:00
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
Somebody will respond in 2 days. Whatever, don't read this wall of text. But if you are a programmer, your job is reading walls of text, in artificial language, so you must be ok with this.

https://www.youtube.com/watch?v=BJGTAUBL3xM
YTP - Jameson has a Conniption

https://www.youtube.com/watch?v=JBdZLzEvxEc
Reacting to YTP: Pizza Parker refuses to eat his vegetables
Post 03 Nov 2018, 15:10
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
Post 04 Nov 2018, 10:56
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
there she is
https://www.youtube.com/watch?v=3quYcNI3dOs
originally a flash animation from 2004, you can find flash version elsewhere. LATER download it

rwby trailers
https://www.youtube.com/watch?v=pYW2GmHB5xs
https://www.youtube.com/watch?v=Vt9vl8iAN5Q
https://www.youtube.com/watch?v=ImKCt7BD4U4
https://www.youtube.com/watch?v=QCw_aAS7vWI
this is a trailer for a show monty oum made, the guy who made dead fantasy https://www.youtube.com/watch?v=EHA3opXjcd0
Show is a pain to watch, but it's bearable if you watch it with nicovideo comments like me. Or you can try watching flamingshark react to it, bet it's good too, haven't tried yet. It has a tendency of starting fantastic, ending fantastic, and dialogues being a pain. I watched only first 2 seasons.
Animation is godlike, music is oddly amasing if slightly unfitting, dialogues are very very boring and painful.
LATER there is that video of one guy making a sort of parody sort of abridged out of it, it was really enjoyable too. Once I'll sort my bookmarks.

Hm, since there she is is about crossspecies (or rather, cross country) marriage, one of the most disgusting things I read was one kankore doujinshi. In that, one country lost a war to another, and 10 years in the future you can see kids with one or two horns everywhere. (I know it sounds ridiculous, I guess in that game mobs have horns or something). But yeah, death/mutation of a whole country, eww.

https://www.youtube.com/watch?v=YprD58SIJyU
【Touhou MMD】Burning Meiling: Episode 4 (EN/FR subs)
https://www.youtube.com/playlist?list=PL0xdoLBi9--rHaw1UUbAVbUo5DdVCbIOu
can't recommend meme infected videos too much, they will look like total chaos for you. But maybe that's what you're into? Confusion is an emotion too. Well, after bookmark app is ready, maybe I'll drop something.

I shouldn't be giving the best first, you should keep your expectations low, overwise you'll be disappointed no matter what. That's a good compensation for reading to this lunatic, huh? Oh no, what if you'll just click links?

https://www.youtube.com/watch?v=7LwseRYslew
【Touhou hand-drawn】Kasen's Room (English Subs)
sm20675088
asshole level 9398378
aww, touhousubs sort videos by emotions too! Except I don't sort, just copypaste in random order.

Apparently women liked to be called girls, and now to say "girl" you have to say "little girl". You fucked up your own language. Well, I guess it can be convenient too, having one word for a whole group.

https://www.youtube.com/watch?v=eYOu7reD6eQ
[HQ] Test in Touhou (1/4)
can i find an older shit?

About touhou itself, pc-98 games were shokingly good, but windows games dropped in quality. They slowly gain it back up though. FM music is awesome, I really like the sound of it, especially when it's zun.

And there is so much content around it, oh boy. I will never find anything like that anywhere else. I'm not sure if you will enjoy it, I have an odd taste. No taste? I had no taste, now I have taste for this.
Post 06 Nov 2018, 18:27
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
Not sure how I feel about spelunky adding Yama as a level boss. He's a judge more than anything. Do you want to murder a judge? Why the fuck would you do that?

https://en.wikipedia.org/wiki/Yama_(Buddhism)

I guess devs thought it's just another name for a devil, dumb fucks.

https://www.youtube.com/watch?v=bWIQtMlWRq8
[Vinesauce] Vinny - Spelunky (bep counter)
oh look, they shit out words again. What is bep even? Death counter is too complicated for you? I guess it's not just deaths.
Why I let kids build my dictionary.
Post 07 Nov 2018, 10:14
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
Touhou 3 - Phantasmagoria of Dim. Dream - Lunatic 1cc - Marisa
by Jaimers91

https://www.youtube.com/watch?v=Aoq8P6xGXoE&index=8&list=PL68E62CCE3F6BCA9D
or maybe go directly to the end
https://www.youtube.com/watch?v=m8a2bQDV_EI&list=PL68E62CCE3F6BCA9D&index=11

this is like nuclear warfare right here

oh, I want to make it in 3d so much.

https://www.youtube.com/watch?v=Sj5o-sHoM80&index=1&list=PLBC9611EDC255F617
raocow vvvvvv

this game is less than 10 mb, impressive huh? It's flash.
Post 07 Nov 2018, 17:20
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
https://www.youtube.com/watch?v=hXJPOol7aPs
IZMIZM: Codependent Rabbit--About 10 Hours Looking at the Ceiling Arrange
exactly 7 minutes of looking at irisu
i like this look of tired confusion, it fits her

hm, maybe you should try the game itself too?
いりす症候群!
irisu syoukougun!
irisu syndrome!
download it here
https://www.vector.co.jp/soft/dl/win95/game/se463417.html
download english patch here
http://www.mediafire.com/file/nlujzb91wjl0bu7/IrisuSyndromeENv2.03.zip
official site
http://katatema.main.jp/irisu/manual.html
though, it might be even more fun without translation. Not understanding wtf is going on actually increases the atmosphere.

when will i make those fucking bookmarks

https://www.youtube.com/watch?v=6rf8Dj7PRAI
Live A Live Music Megalomania
Track 36 - Megalomania
this artstyle, feels like at least 3 different people drew that. Age before cheap mass production, where everyone has sameface. Nah, probably there isn't sameface everywhere, I just don't know anything about anything.

Somebody should make a youtube video with title "ur mom is a ho", and make it popular enough to show up on a side panel. It's mostly equal to the shit I'm getting right now, clickbait and loweffort.


Last edited by vivik on 10 Nov 2018, 08:26; edited 5 times in total
Post 08 Nov 2018, 07:45
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
My targetver.h now looks like this:

#pragma once

// Including SDKDDKVer.h defines the highest available Windows platform.

// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.

#include <WinSDKVer.h>

#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif

#define _WIN32_WINNT 0x0501
//windows xp
//https://stackoverflow.com/questions/41376557/win32-winnt-winver-macro-redefinition
//https://github.com/Microsoft/vs-setup-samples/blob/master/Setup.Configuration.VC/targetver.h


#include <SDKDDKVer.h>
Post 08 Nov 2018, 08:44
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
There was, and most likely still is, a chrome extension called Rikaikun. It's a rewrite of firefox extension Rikaichan, and it felt much slower than Rikaichan. This extension translated japanese text on the page to english, pop-up dictionary directly in your browser. It's only a guess, but I think I know the reason why it was slower. It loaded the entire dictionary as a javascript string, and it used binary search to find the word it needed. Do you know what it means to use binary search for an utf8 encoded string? Searching to the middle of such string means looking EVERY CHARACTER from the beginning, checking if it takes 1 or 2 bytes, etc. It just doesn't work for giant strings like that one.

Never really used chrome because of small things like this one. Eventually firefox fucked up their own browser, so maybe I should move... I'll figure something out.
Post 10 Nov 2018, 09:53
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
So, there is just no way to "open in new tab" in visual studio? I want to go to the definition of some function or structure on ctrl-clicking it, but looks like there is no way.

Eh, why I'm surprised.
Post 10 Nov 2018, 10:36
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
Okay, solved crashes by surrounding this:

Code:
        if (g_show_index_or_show_gallery == 0) {
                RenderThumb();
        }
        else {
                RenderBig();
        }
        RenderText();    


with this

Code:
        EnterCriticalSection(&render_load_mutex);
        LeaveCriticalSection(&render_load_mutex);    


I can sense a bit of lag on loading, but I just started anyway. Right now, both LoadBig_worker_file2mem and LoadBig_main_mem2vid are happening in the worker thread. Need to move LoadBig_main_mem2vid back into the main thread, where it belongs.

Had to reread the whole program to understand what is going on.

This is disturbing how much time I need to just start working on this. My brain just refuses to cooperate unless I watched enough of useless shit on youtube first. Also I need like the whole day uninterrupted to work, otherwise I'm like "shit, need to go outside in 4 hours, shit shit shit shit shit shit, need to watch that to calm down, 4 hours isn't enough for anything serious anyway".

Hm, it looks quite okay if texture loading happens in the worker thread. Excellent, this means I can load new textures in the worker thread while main thread is bisy with actual rendering, I can remove loading screens from my game hopefully. (Actually no, let me look more into it... surface->LockRect returns something that has only 0 for everything...)

Nah, including

Code:
        // End the scene
        g_pd3dDevice->EndScene();

        // Present the backbuffer contents to the display
        g_pd3dDevice->Present(NULL, NULL, NULL, NULL);    


into that lock above solved everything. Yes, and I was more selective about locking in the worker thread. So yeah, almost perfect. At least it works. For now. Hell yeah! Was it that hard? I just didn't had enough free time for it before.

Used this track to make blood flow https://www.youtube.com/watch?v=PxvAnyILZGw and this track to stay focused https://www.youtube.com/watch?v=hXJPOol7aPs
Post 10 Nov 2018, 11:51
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
At "03 Nov" I said that I will use a "gallery" structure that will consists of pointers to "big", points to each image individually. But I think using ranges will be more efficient.

I'll just change the way "big" stored a little bit. Right now, if you remember, each image is stored as a bunch of "width height texture texture texture texture". I will add a prefix to each bunch of images.

starting_index
length
direction
next_prefix

so, if gallery consists of 25 images, and only images 0 to 7 are loaded, it will look like this:

starting_index: 0
length: 7 (or 8? 6?)
direction: 0 (if it's 1, it means direction is inverted, images go in order 7 6 5 4 3 2 1 0, useful if you opened gallery at image 7 and started scrolling up.)
next_prefix: 0 (the entire gallery fit in only one prefix, but it can be 2 or more. Useful if you loaded 7 images from gallery A, then 6 from gallery B, then another 7 from gallery A. They will go out of order, but you can still iterate through them all).

It will still use that good old 0x1000 chunk of memory, and just waste 5% more at worst. Much better than allocating another 0x1000 (or even 0x100) chunk just for pointers to the first one. I'm only afraid that it will increase the amount of code to around the same amount I just saved.

not sure how many bits I need for "next_prefix". I can align each prefix by some value to save space for that. If I don't align, I need only 3 bytes, since everything will be in the same 0x1000 chunk. If I align by 0x10, I can save one byte, so I'll only need 2 bytes.
Post 10 Nov 2018, 14:43
View user's profile Send private message Reply with quote
vivik



Joined: 29 Oct 2016
Posts: 671
vivik
The most annoying part of my program right now is how long it takes to load thumbnails, so I should start with that.

I want to try out BC1/BC4 compression formats. I suspect that they are larger, but much faster to load.

https://github.com/castano/nvidia-texture-tools

https://board.flatassembler.net/topic.php?t=20521
"About downsampling."

pillow-simd
libvips

C:\Users\User\Downloads\jpeg-soft\jpeg-soft.txt
Post 13 Nov 2018, 07:23
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3 ... 7, 8, 9 ... 13, 14, 15  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar. Also on YouTube, Twitter.

Website powered by rwasa.