Jump to content

DOSBox integraded into a source port?


Recommended Posts

20 hours ago, banjiepixel said:

 

A part of the source port would be a modified menu system to make playing DOS version of Doom easy with things like level selection menu and idea would be to eventually have also other Id games supported by the new menus designed to make their use with DOSBox easy and hopefully seamless as possible. DOSBox related Doom features generally would just be the logical starting point.

 

Bolded section is the only real "concrete" requirement I got from your ideas pitch.  Let's strip away all of this other stuff (DOSBox and all to start with) you want and try starting small with that - maybe in a modularized way you could find a way to get a list of all maps from whichever .WAD you are running (maybe start with the IWAD you are using first as a base, then after you get that working would use any loaded PWADs) and use the menu to switch to that level first.  After you have gotten this working as a proof-of-concept, start figuring out other ways to add increased functionality. 

 

Are you looking into starting with some kind of glorified mods menu, but then also trying to use system calls to run other games eventually?  It's very hard to tell what it is exactly you are after.  Maybe put it into a bullet-pointed list of exact features you are looking to add, being as concise and concrete as possible.  The most important question that I don't see very clearly answered is this as well: What is the exact end goal you have in mind?

Share this post


Link to post

I can't believe I'm witnessing the birth of what would surely become the most serious contender for both Mordeth and Mocha awards.. in 2031

Share this post


Link to post
On 10/23/2023 at 2:07 PM, dasho said:

Generally Application Menu, Taskbar re-creators, Places Menu, other things that essentially brought back more traditional paradigms.

 

Note that the developers needed to only give people ability to customize and developers themselves just made smaller improvements to the general design. Windows 10 had to generally backtrack alot because customization is less of a thing and the design of Metro was just so bad. And despite being a KDE/Plasma user, only issue I really have with Gnome Shell is that it tends to be bit heavy, especially for little bit older hardware. KDE/Plasma is more usable on older hardware while also being more modern than the lightweight options.

 

Have a good design and actually commit to making changes so the whole package will function to it's full potential. It is always possible to make adjustments later. But with Microsoft lacking any solid vision, they are just very bad at designing operating systems. Just look all the bad decisions they have been making with Windows 11.

 

On 10/23/2023 at 2:54 PM, vyruss said:

Let's strip away all of this other stuff (DOSBox and all to start with) you want and try starting small with that - maybe in a modularized way you could find a way to get a list of all maps from whichever .WAD you are running (maybe start with the IWAD you are using first as a base, then after you get that working would use any loaded PWADs) and use the menu to switch to that level first.  After you have gotten this working as a proof-of-concept, start figuring out other ways to add increased functionality.

 

First thing I will do won't be to bolt DOSBox into Doom source port, that would come only after I know better what I am doing. And more I have thinking about, I have realized that maybe I don't need to actually use "real" DOSBox at all and could probably just replace it with the RetroArch core, it should generally have every I need already. So I should technically get away with building RetroArch core support to a source port. This would come also with the benefit of Playstation core being able to be added later, you know, for Playstation Doom.

 

But in general, it's the menu stuff that is the main event, this thread is very much just me asking about possibility of DOSBox support being added later. And probably for the menu system, something like being able to change wads or games without exiting the source port would probably be more relevant. This would bet technically possible just with the DOSBox support.

 

And I probably should start with maybe some kind of ZDoom-family port based mockup/prototype, make the basic menu design layout there so it could be then later converted to more basic source ports.

 

I am also fine with PWADs having only generic map selection data while IWADs would have more specific information. But source port being able to "hotread" WADs would be mighty useful here. If I remember correctly, atleast Eternity has some WAD loading features when it is running and I suspect that Odamex has too.

 

On 10/23/2023 at 2:54 PM, vyruss said:

The most important question that I don't see very clearly answered is this as well: What is the exact end goal you have in mind?

 

There is currently no real end goal. Just a plan to experiment with some very loose goals to give direction. I am giving myself alot of opportunities to change direction of my experimentation if needed and bigger point is just for me to create something, you know, not be just "Ideas Guy". And most of it is to have a excuse to learn. DOSBox integration is just an idea I would like to eventually explore.

 

On 10/23/2023 at 9:31 PM, liPillON said:

I can't believe I'm witnessing the birth of what would surely become the most serious contender for both Mordeth and Mocha awards.. in 2031

 

Wouldn't I need to actually plan to have public release to be eligible for nomination? Currently all this is just for my own personal use.

Share this post


Link to post
2 minutes ago, JustAthel said:

So... if I can just clarify this, is this a project you're wanting to do solely for learning how to code?

 

Not solely, but it is the main metapurpose in this. And alot is based on just desire to do GUI design, with DOSBox being great target for that. I am also just have interest at getting familiar with Doom source code in general to know how it actually works outside of random basic information found in discussions in this forum.

Share this post


Link to post

Hm, okay. Well, again, you wouldn't necessarily need a GUI / Launcher to utilize Doom code specifically. Plus you'd have to worry about how to clear the game from memory when loading something that's not Doom. As for getting familiar with Doom source code, why not mess around with the source code from Chocolate-Doom? That's Vanilla Doom but in a Windows shell, basically. Also, coding for DOSBox is different from coding for DOS, but if you want to go down this route, I'd get a VM set up with MS-DOS 6 set up in it, minimum. I'd look back at my last post in this thread, I did give some pointers to make this a bit of a reality. Specifically this part:

 

On 10/22/2023 at 10:07 PM, JustAthel said:

It sounds to me like you're actually trying to make a GUI that runs on DOS, with actual Doom graphics to supplement it (a literal Doom Operating System, heh), but even still, this would not require the use of ANY source code whatsoever from the original game. Maybe it WOULD be a semi-cool idea, in all honesty, but it's definitely going to take a lot of work, both on the research end AND the actual coding end. Your first step would be to find what programming languages DOS uses, and cross-reference them with what's compatible with DOSBOX. From there, find out whatever tutorials you can, most likely at this point it's so outdated that everything you'll ever want to do and then some will be at your fingertips practically. Once you get a basic file system program going, you can decorate it with assets from Doom, pulling some graphics using Slade as you see fit. You could probably go a step further and devise some sort of "game-finding" algorithm in your program, so that it could search in a given directory.

 

I don't believe it would be possible to launch another application when one is already launched in DOS, considering the nature of the command-line based system, but you COULD make Doom load files on the drive and react accordingly -- I mean, thats how the save/load game options work!

Edited by JustAthel

Share this post


Link to post
1 hour ago, JustAthel said:

Hm, okay. Well, again, you wouldn't necessarily need a GUI / Launcher to utilize Doom code specifically. Plus you'd have to worry about how to clear the game from memory when loading something that's not Doom.

 

I have considered this, creating extra GUI layer of outside of actual Doom source port portion would fix this, yes? Something that could be used to launch either the source port, or DOSBox, with latter having it's own submenus for actual launch options. Main thing I would just want is that they use same window and can transition as smoothly as possible.

 

1 hour ago, JustAthel said:

As for getting familiar with Doom source code, why not mess around with the source code from Chocolate-Doom? That's Vanilla Doom but in a Windows shell, basically.

 

When is say "Doom source code", I mean Chocolate Doom source code, as it is probably the simplest form of modern Doom code. Also did you just assume my operating system? All kidding aside, I am actually thinking about using Linux as my development OS because it is probably easier to put together a coding setup there.

 

1 hour ago, JustAthel said:

Also, coding for DOSBox is different from coding for DOS, but if you want to go down this route, I'd get a VM set up with MS-DOS 6 set up in it, minimum.

 

I really don't get where the people get the "coding for DOS" part. The GUI part that would be used for launching DOSBox games would be external to actual DOSBox and would work more like more traditional 3rd party frontend made for DOSBox. Unless I am badly mistaken, I should need modify the parts that interact with the operating system, not things in the actual virtual machine.

 

Ideally alot like how RetroArch DOSBox works to my knowledge, with just more GUI driven launching options because unlike RetroArch DOSBox, my frontend would be meant for launching only specific limited selection of games. I am not even talking adding option to load PWADs here and I think there is very little reason to even have that because you will have already the native Doom source port for that. One goal would be simply to switch between native Doom source port and DOSBox without breaking the immersion by needing to exit the program, so much like RetroArch, but with actually good source port and Doom style/based launcher GUI.

 

1 hour ago, JustAthel said:

I don't believe it would be possible to launch another application when one is already launched in DOS, considering the nature of the command-line based system, but you COULD make Doom load files on the drive and react accordingly -- I mean, thats how the save/load game options work!

 

It would be a non-DOS GUI for launching a DOSBox session, nothing more complicated atleast for now. But my dream would be to eventually add some ram/state based features, kinda like with some emulation based pc ports of games, for example how Street Fighter 30th Anniversary Collection added versus modes to the games despite the arcade versions lacking that feature. As far I know, they basically use the same method to allow online play and use rollback netcode, something obviously lacking from arcade game code from 90's. There are plenty of pc ports of old arcade games that add new features but emulate the original roms instead of being actual native ports.

 

My knowledge might not be very deep but it is very broad.

Edited by banjiepixel

Share this post


Link to post
25 minutes ago, banjiepixel said:

I have considered this, creating extra GUI layer of outside of actual Doom source port portion would fix this, yes? Something that could be used to launch either the source port, or DOSBox, with latter having it's own submenus for actual launch options. Main thing I would just want is that they use same window and can transition as smoothly as possible.

 

This is (sans the last sentence) the most realistic place for you to start. It is easy to get so swept up in the possibilities that you forget to actually start somewhere. 

Edited by dasho

Share this post


Link to post
19 minutes ago, dasho said:

 

This is (sans the last sentence) the most realistic place for you to start. It is easy to get so swept up in the possibilities that you forget to actually start somewhere. 

 

I know that it is the most realistic place to start. To be specific, have the GUI be separate frontend that could be used basically with any source port. Only then start to actually think about combining the GUI with the source port, to get it to work like any other source port specific launcher, like the one that GZDoom has, with just my own twist. And work from there to trying to get them more seamlessly work together. If I feel like it, I might try coding better launcher for Eternity at some point.

 

Just I like have said before, maybe it is the language I use. Alot of things I am speaking about are part of a very loose long term plan that might at some point go to completely different direction. I will start from more basic experimention and goals and see first where that goes, one step at the time.

 

One idea I could also explore is turning Chocolate Doom into dueling focused multiplayer source port. And splitscreen stuff would be always close to my heart. There are plenty of places where my experimentation project could go. I am speculating about what could be possible on how it maybe could be done, but this is just pie in the sky until I know how to do basic development using Chocolate Doom as the base, and the very first step is to learn to modify it at the same level as I can mod ZDoom based ports. I do wonder if I could start "porting" simpler ZDoom mods to the Chocolate Doom engine.

Share this post


Link to post
6 minutes ago, banjiepixel said:

Just I like have said before, maybe it is the language I use. Alot of things I am speaking about are part of a very loose long term plan that might at some point go to completely different direction. I will start from more basic experimention and goals and see first where that goes, one step at the time.

 

It's not the language you use; most people here understand more or less what you want. It's random shifts in direction like this:
 

Quote

One idea I could also explore is turning Chocolate Doom into dueling focused multiplayer source port.

 

That give the impression that you won't be able to achieve anything you're talking about. Not through lack of ability, but perpetual indecisiveness.

Edited by dasho

Share this post


Link to post

Okay, so your starting point is the ChocoDoom code base, great! My advice would be to start simple, edit some strings that are already in the game, try to implement a new cheat code. This will teach you some basic code inputs. As you get advanced, you could study how enemies are made and copy one, making a new custom enemy, before moving on to making a new weapon or two. After that, see what else you can do with the choco code.

 

At this stage, you should be focused on learning. You have a lot of ideas, and it's going to burn you out if you don't know a lick of what you're getting into. Start. Slow.

Share this post


Link to post

This whole thing about implementing the original DOS version of DOOM via DOSbox, which could be accessed from within a source port... You really, genuinely, just want a launcher. Something that gives you simple button options upfront, to the effect of "Play original DOOM in DOSbox" and "Play [Desired Source Port]", which would do all the work of opening DOOM in the background, without you ever having to touch a command line window or navigate through folders.

 

Launchers for DOOM do already exist, a ton of them in fact. No, they don't look the way you'd like them to look (ie: a menu option within DOOM's title screen), and no, it wouldn't be the "all-in-one, no setup required" solution you appear to be looking for, but a launcher would serve the purpose that you seemed to describe in your opening post.

 

As far as using this idea to learn programming: if you made yourself a launcher that is entirely standalone — that means zero integration with DOSbox or sourceport, just a tiny little graphical front-end that exists on its own... it could be a viable first "big" project to work towards. But before you tackle it, what you really need to think about is building up your knowledge, in steps: Writing a command-line app that launches at all ("Hello world!"), then an app that simply launches another program or file, then an app that gives you two or more options to select from. An app that launches in a window to display a string of text, then an image, the first steps towards programming your first graphical interface.

 

The best first lesson you can learn, and it's a lesson that will save your ass time and time again, is KISS: Keep It Simple, Stupid.

Edited by Lollie

Share this post


Link to post

What if we made dark chocolate doom where the gamma is always at the lowest setting, I'm gonna need some coders and compilers for this though. Please let me know if you want to make my idea for me.

Share this post


Link to post
7 minutes ago, Snaxalotl said:

What if we made dark chocolate doom where the gamma is always at the lowest setting, I'm gonna need some coders and compilers for this though. Please let me know if you want to make my idea for me.

To their credit the OP is not asking anyone to do the work for them.

 

6 hours ago, banjiepixel said:

But with Microsoft lacking any solid vision, they are just very bad at designing operating systems. Just look all the bad decisions they have been making with Windows 11.

Not to derail the thread that seems to be (finally) going somewhere, but what has Microsoft done wrong in Windows 11 besides the pointlessly restrictive system requirements?

Share this post


Link to post
1 hour ago, Andromeda said:

what has Microsoft done wrong in Windows 11 besides the pointlessly restrictive system requirements?

They made a new version of Windows. That means that at least 10% of Windows users have to complain about new problems they read about that only affect 0.10% of users (and have probably already been patched), even though they're still using Windows10 (probably because they can't meet the system requirements). Windows11 is fine. There are some minor nitpicks that can be resolved via changing settings, or via third-party software, just like every other version of Windows. It's the same thing every time.

Edited by TheMagicMushroomMan

Share this post


Link to post

They made two of the most crucial elements worse - the taskbar and the start menu. I find both of these completely unusable in Windows 11. Fortunately it can be remedied with some add-ons that restore both the Windows 10 taskbar and provide a better start menu. As for the rest - the same kind of complaints every other Windows version got.

 

Regarding the system requirements, I do not really know who put them up. At my workplace they upgraded several older computers to Windows 11 that do not meet the stated requirements, and they all work fine, including getting updates.

 

Share this post


Link to post
20 minutes ago, Professor Hastig said:

Regarding the system requirements, I do not really know who put them up. At my workplace they upgraded several older computers to Windows 11 that do not meet the stated requirements, and they all work fine, including getting updates.

They are trying to move people to TPM2.0 to allow making features like bitlocker more widespread and secure. Apple rather forced their hand because they are able to make their own platform more secure and sell it as a feature.

Share this post


Link to post
11 hours ago, Andromeda said:

what has Microsoft done wrong in Windows 11 besides the pointlessly restrictive system requirements?

 

Mandatory online accounts as early as the installation process, laptops needing to have a built-in webcam, preventing users from changing their default web browser, experiments with ads in the file explorer...

 

There's something every month.

Share this post


Link to post
9 minutes ago, MFG38 said:

Mandatory online accounts as early as the installation process

Can bypass it by not connecting to the Internet during install.

 

12 minutes ago, MFG38 said:

laptops needing to have a built-in webcam

Is there a laptop made in the last fifteen years that doesn't have a built-in webcam?

 

10 minutes ago, MFG38 said:

preventing users from changing their default web browser, experiments with ads in the file explorer... 

I haven't come across this yet.

Share this post


Link to post
17 hours ago, dasho said:

That give the impression that you won't be able to achieve anything you're talking about. Not through lack of ability, but perpetual indecisiveness.

 

I personally feel like it shouldn't really matter. My main purpose was to only ask about specific concept, the DOSBox integration, and rest has been just to give context. As we are talking about only private projects here so far, it seems bit irrelevant what I will be able to actually achieve.

 

And I am always tinkering with something and contantly jumping between projects. It's less indecisiveness and more of a issue with attention span. I need to have other projects to stimulate my brain while I take a break from previous one that I worked on.

 

18 hours ago, JustAthel said:

Okay, so your starting point is the ChocoDoom code base, great! My advice would be to start simple, edit some strings that are already in the game, try to implement a new cheat code. This will teach you some basic code inputs. As you get advanced, you could study how enemies are made and copy one, making a new custom enemy, before moving on to making a new weapon or two. After that, see what else you can do with the choco code.

 

I should probably experiment first with converting my DeHackEd mods into actual engine modifications. It would be probably closest to my current knowledge and my general Doom related interests. And adding the option to turn those modifications on or off could be pretty nice step towards understanding how things work. I also would assume that attempting limit removal would be good idea for learning.

 

Despite this thread not really going as I planned, my desire to know how to modify ChocoDoom has really grown.

 

17 hours ago, Andromeda said:

To their credit the OP is not asking anyone to do the work for them.

 

The inspiration for this thread was based on being something that I could maybe do myself. Despite my intention being generally to just give people free inspiration, this time I wanted to seek inspiration for myself to create something. Perhaps it could be said to being progress from some of my previous discussions. 

 

17 hours ago, Andromeda said:

Not to derail the thread that seems to be (finally) going somewhere, but what has Microsoft done wrong in Windows 11 besides the pointlessly restrictive system requirements?

 

I would say that Windows 11 does seem to take the operation system into a direction that is more anti-consumer, atleast based on alot things they have experimented with and what their future plans seem to be. To my knowledge the Win11 adoption rate is also lagging behind what they were with Win10 and clearly the official system requirements caused alot of that. And updates do rather often seem to break things. To be honest, I have not keeping up with most of that stuff. But I see no reason to trust the direction Windows seems to be heading.

Share this post


Link to post
1 hour ago, banjiepixel said:

I would say that Windows 11 does seem to take the operation system into a direction that is more anti-consumer[........]a lot of things they have experiemented with[.......]their future plans[........]To be honest, I have not keeping up with most of that stuff.

You very clearly stated that they are "bad at creating operating systems" that they "lack any solid vision" and said "look at all the mistakes they've been making since Windows 11". It's very impressive that you seem to know about a lot of things they have experiemented with/their future plans/the direction they've been taking, as well as their overall vision, when you flat-out admit that you "haven't been keeping up with most of that stuff". When asked to clarify your position, your whole response amounts to "idk I just read that it sucks". It might seem like a derail (although you invited it with your comparison) but for me it paints a perfect picture: you keep reading about things, wanting things, asking about things, but seem to have no desire to educate yourself about the things you want/talk about/criticize.

Edited by TheMagicMushroomMan

Share this post


Link to post
14 hours ago, Andromeda said:

Can bypass it by not connecting to the Internet during install.

If you haven't tried it in 22H2, they actually made it kind of hard to do this.  The "don't have internet" button is gone unless you run a command in the command prompt first (or I think it might still be there if you happen to only have networking hardware that Windows 11 doesn't have a driver for out of the box), so while there's a documented bypass it's definitely gotten obtuse to the point where I'd consider it a legitimate complaint.

 

14 hours ago, MFG38 said:

laptops needing to have a built-in webcam

Pretty sure this is just for certification of OEM hardware.  So if someone really wanted to make a laptop without a webcam they couldn't sell you it with Windows 11 preloaded, but I don't think there will be anything stopping you from installing a retail license onto that machine.  Really though, if you're the kind of person to be worried about the mere existence of a webcam then Windows 11 probably is the best OS choice for you anyway.

Share this post


Link to post
15 minutes ago, Blzut3 said:

If you haven't tried it in 22H2, they actually made it kind of hard to do this.  The "don't have internet" button is gone unless you run a command in the command prompt first (or I think it might still be there if you happen to only have networking hardware that Windows 11 doesn't have a driver for out of the box), so while there's a documented bypass it's definitely gotten obtuse to the point where I'd consider it a legitimate complaint.

To be clear, requiring a complete account is because bitlocker needs to backup the security key to your account for first setup, as this can be pre-configured on professional systems (especially laptops). Without this key backed up, accessing the C drive will be actually impossible if you moved the hard-drive or lost access to the original TPM in any possible way.

 

Why they need to make this a requirement on all systems is indeed silly, but on systems running bitlocker this is extremely important, which you do actually get on out of the box OEM laptops.

Edited by Edward850

Share this post


Link to post
3 minutes ago, Edward850 said:

To be clear, requiring a complete account is because bitlocker needs to backup the security key to your account for first setup, as this can be pre-configured on professional systems (especially laptops). Without this key backed up, accessing the C drive will be actually impossible if you moved the hard-drive or lost access to the original TPM in any possible way. 

 

Why they need to make this a requirement on all systems is indeed silly, but on systems running bitlocker this is extremely important, which you do actually get on out of the box OEM laptops.

I could respect the idiot proofing aspect if they actually explained this and, like I think your second paragraph is saying, they didn't require this nonsense for non-preload installs which don't have Bitlocker enabled. (Tangent: how many Windows 11 controversies could have been avoided with clear communication?)

 

Personally I think everyone's first step when getting a computer should be wiping the preloaded OS anyway, so requiring a Microsoft account there wouldn't bother me at all.

Share this post


Link to post
19 hours ago, TheMagicMushroomMan said:

no desire to educate yourself about the things you want/talk about/criticize.

 

You'd be surprised how far this is actually from the truth, I am just constantly educating myself about so many things, it is just that for things less relevant to me personally, I have to go more by the general vibe I see. I should had made it clear that is was meant to be more of an option, didn't expect that people would turn it into drama.

Edited by banjiepixel

Share this post


Link to post
14 hours ago, Edward850 said:

To be clear, requiring a complete account is because bitlocker needs to backup the security key to your account for first setup, as this can be pre-configured on professional systems (especially laptops). Without this key backed up, accessing the C drive will be actually impossible if you moved the hard-drive or lost access to the original TPM in any possible way.

 

Why they need to make this a requirement on all systems is indeed silly, but on systems running bitlocker this is extremely important, which you do actually get on out of the box OEM laptops.

 

The forced storage of the key on Microsoft's server is actually what makes BitLocker perfectly worthless as encryption option. I am very strongly in favor of encrypting data but handing over the key to a third party strikes me as utterly counterproductive. I'd want to stash that key in a place only me and people I'd trust 100% can access, but not some American corporation with serious issues.

 

Share this post


Link to post
On 10/26/2023 at 2:23 AM, Andromeda said:

Is there a laptop made in the last fifteen years that doesn't have a built-in webcam?

 

I have been in IT professionally since 2008 and can confirm if your laptop doesn't have a built in webcam, it's about 18 years overdue for replacement. So this yes, this is a pretty ludicrous complaint to make.

 

On 10/26/2023 at 2:23 AM, Andromeda said:

Can bypass it by not connecting to the Internet during install.


Pretty sure this only works in Windows 10 setup. It's definitely mandatory in 11 unless I am even blinder than my contact lenses prescription would suggest. I bypass it by having a generic account I sign into for all my customer computers, then create a local account once that's done. It's definitely a minor annoyance, but not insurmountable.

 

On 10/26/2023 at 2:23 AM, Andromeda said:

I haven't come across this yet.

 

You can still change the default browser, albeit in a slightly ham-fisted way. Haven't seen ads myself; I think they tried something and the feedback was "fuck right off with that bullshit right the hell now" and they stopped it... for now.

 

2 hours ago, dasho said:

I'm glad a thread about whether or not it is practical to require the entirety of DOSBox as a dependency for a source port has reached its logical conclusion of discussing Microsoft's BitLocker policies.

 

To be fair that wasn't exactly productive. I still have zero idea what exactly the OP is even on about. He wants a Doom based front end for DOSBox to play... other DOS things? I think? 

Edited by Murdoch

Share this post


Link to post
3 hours ago, Graf Zahl said:

The forced storage of the key on Microsoft's server is actually what makes BitLocker perfectly worthless as encryption option. I am very strongly in favor of encrypting data but handing over the key to a third party strikes me as utterly counterproductive. I'd want to stash that key in a place only me and people I'd trust 100% can access, but not some American corporation with serious issues. 

You can actually do this. If you setup bitlocker on a drive after setup, including the C drive (i.e it's not initially configured by the OEM), it asks you what you want to do with the backup key. In this situation it doesn't need to be stored on the account and you can just save it to another drive or print it.

Edited by Edward850

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...