GDCC: An Alternative ACS Compiler [0.15.0]

Any utility that assists in the creation of mods, assets, etc, go here.
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.

Re: GDCC: An Alternative ACS Compiler

Postby DavidPH » Wed May 25, 2016 6:13 am

I am guessing that you have a simple str or int array that has both strings and integers in its initializer. If so, that will cause problems because the conversion between the two is considered a runtime conversion, since otherwise the compiler loses track of what needs to be tagged. How to fix that will depend on what exactly you're trying to do, so either way I would like to see the initializer in question.
User avatar
DavidPH
Crazy Compiler Man
 
Joined: 28 Aug 2009

Re: GDCC: An Alternative ACS Compiler

Postby cambertian » Thu May 26, 2016 4:23 pm

Is there a way to update the ACS includes (i.e. zcommon, zspecial) manually without potentially making them unusable, or should I wait for an update instead?

I really need the wall portal-related specials for a project, however experimental they may be.
User avatar
cambertian
Resident Non-Programming Programmer
 
Joined: 07 May 2015
Location: New England Area, USA
Discord: cambertian#6245
Operating System: Windows 10/8.1/8/201x 64-bit
Graphics Processor: nVidia with Vulkan support

Re: GDCC: An Alternative ACS Compiler

Postby DavidPH » Thu May 26, 2016 5:56 pm

The ACS headers mostly use a syntax very similar to acc's, so it is possible to manually add in missing declarations. As for getting GDCC's official headers updated, that mostly comes down to people telling me what is missing, as I do not always keep up with ZDoom development.
User avatar
DavidPH
Crazy Compiler Man
 
Joined: 28 Aug 2009

Re: GDCC: An Alternative ACS Compiler

Postby Nero » Sat Jun 18, 2016 11:38 am

Hey David, I got a question on Unicode:

Let's say I've defined some strings like so:
Spoiler: "The code example"


Some of the characters in the translations need to be special characters, like the "ss" in "Grosse" needs to be a special B-like character. I thought I saw wide chars defined in your headers but I'm not sure what to do with them, I assume I would just replace my typedefs of char and char * with wchar_t and wchar_t * equivalents. But, what does that mean for the above defined strings? Can I put in the special characters and have them work downstream? Do I need to switch to wide char string functions; equivalents of strlen and strcpy, etc.?

I get the feeling the confusion on Unicode began in 1991 :wink:


Edit:
After some more research I think I've got conversion figured out; it seems to be as I thought a simple matter of switching a couple of typedefs. Also functions seem to not be too much of an issue. I do see now that doing this only means my code is using wide chars and screen output will likely have to be converted back to multi-byte strings; output will also depend on the font even having those special characters mapped, which looks like fonts just have to have all 256 characters included to handle Spanish, French, and German; and that honestly means going to wide chars isn't even necessary, but what the heck. I know that I do not know where to begin with a language like Mandarin; that's probably beyond the scope of this project at the moment. But that door is more open with the code already using wide chars.

Edit2: Just spoilered the code example (it's still there) to shrink the post size.
Last edited by Nero on Sat Jun 18, 2016 4:13 pm, edited 1 time in total.
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: GDCC: An Alternative ACS Compiler

Postby DavidPH » Sat Jun 18, 2016 1:59 pm

Unfortunately, ZDoom does not support multi-byte characters, so your options are going to be limited by the 256-character font and non-Unicode code point assignments. Note that the wide character support in GDCC's libc is a bit neglected and may be incomplete, so you may end up wanting to work with plain chars. Since plain chars in GDCC are 32-bit, anyway, the distinction is much less important than on conventional machines. Either way, if you find issues with using ZDoom's Extended ASCII with GDCC, let me know.

As some of you have noticed, I haven't been able to produce working binaries lately due to issues with cross-compiling. So I apologize if any issues come up before I can get that working.
User avatar
DavidPH
Crazy Compiler Man
 
Joined: 28 Aug 2009

Re: GDCC: An Alternative ACS Compiler

Postby Nero » Sat Jun 18, 2016 4:41 pm

Agreed. I think the code will stay ASCII; a Unicode implementation wouldn't do anything but complicate the string translation process because I'll have to devise both internal translations and have ASCII-extended character sets for each language. Oh well, it's just something I'm glad I learned more about simply by realizing I don't need it for this project. I'll let you know if I think an issue is GDCC; it's usually me. Thanks!

Edit: By the way, what is the currently working build version? I know I'm out of date, but I don't know how far.
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: GDCC: An Alternative ACS Compiler

Postby DavidPH » Sat Jul 02, 2016 8:21 am

Good news! I finally found the problem that was breaking builds, so the latest is working again. Now maybe I can stop playing Hearts of Iron IV long enough to finish the new stdio-rewrite branch and other stuff on the TODO list...
User avatar
DavidPH
Crazy Compiler Man
 
Joined: 28 Aug 2009

Re: GDCC: An Alternative ACS Compiler

Postby NeuralStunner » Sat Jul 02, 2016 12:20 pm

DavidPH has gained the Conflicted trait.
User avatar
NeuralStunner
not actually a catgirl
 
 
 
Joined: 21 Jul 2009
Location: =o_O=
Discord: NeuralStunner#4201
Operating System: Windows Vista/7/2008 64-bit
Graphics Processor: nVidia (Modern GZDoom)

Re: GDCC: An Alternative ACS Compiler

Postby DavidPH » Fri Jul 08, 2016 12:13 pm

I have finally merged stdio-rewrite into master. And so I bring to you GDCC 0.10.0. Now with vague hints of POSIX!

Downloads: Win64 Win32 Source

Now to get back to planning Operation: Unthinkable...
User avatar
DavidPH
Crazy Compiler Man
 
Joined: 28 Aug 2009

Re: GDCC: An Alternative ACS Compiler

Postby yqco » Tue Jul 12, 2016 8:00 pm

The ACS headers are missing a morph flag: MRF_UNDOALWAYS.
yqco
 
Joined: 06 Jul 2013

Re: GDCC: An Alternative ACS Compiler

Postby Nero » Tue Jul 12, 2016 11:12 pm

Well, I finally updated, and now I get the oddest error, which looks like there's an issue with my makefile (somehow I also think not):

Code: Select allExpand view
make: *** No rule to make target `utils/GDCC/lib/src/libGDCC/ZDACS/*.asm', needed by `bin/libGDCC-ZDACS-asm.ir'.  Stop.


I've been using Nash's template, which included the makefile. I've put a copy in the spoiler below, any clue what's going on?

Spoiler: "makefile"
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: GDCC: An Alternative ACS Compiler

Postby DavidPH » Wed Jul 13, 2016 6:31 am

yqco wrote:The ACS headers are missing a morph flag: MRF_UNDOALWAYS.
That flag does not seem to be in acc's headers, either. Is it supposed to be available from ACS?

Nero wrote:Well, I finally updated, and now I get the oddest error, which looks like there's an issue with my makefile (somehow I also think not):

Code: Select allExpand view
make: *** No rule to make target `utils/GDCC/lib/src/libGDCC/ZDACS/*.asm', needed by `bin/libGDCC-ZDACS-asm.ir'.  Stop.


I've been using Nash's template, which included the makefile. I've put a copy in the spoiler below, any clue what's going on?
The libGDCC/ZDACS directory no longer exists, so you need to remove the libGDCC-ZDACS-asm target. This is what the gdcc-makelib program is for, so you may want to switch over to using that.
User avatar
DavidPH
Crazy Compiler Man
 
Joined: 28 Aug 2009

Re: GDCC: An Alternative ACS Compiler

Postby yqco » Wed Jul 13, 2016 4:26 pm

DavidPH wrote:That flag does not seem to be in acc's headers, either. Is it supposed to be available from ACS?

You are correct; the flag is restricted to DECORATE powerups. I apologize for my foolish assumption.
yqco
 
Joined: 06 Jul 2013

Re: GDCC: An Alternative ACS Compiler

Postby Nero » Wed Jul 27, 2016 12:42 am

Sorry for such a delayed reply, I'm in the process of moving and I've been busy with a class so I've had little time to dedicate.

Anyway, David, so I know there is an error that seems to involve a few lines in the makefile. I don't know what those few lines are instructing the compiler to do, can you elaborate? My current level of programming knowledge doesn't cover DIY compilers; I'm sadly realizing that basic college-level programming courses really fail to teach how code is compiled, the steps, and how the outcome is run by the machine. Simply put, learn to write code, don't worry about how you get the actual executable seems to be the mantra of CS101-102.

Ok on-topic, let's fix this thing, I also don't really understand what the gdcc-makelib program is for, I could also use elaboration on that. And as for switching, what/how am I to do that?

Finally, what is the version of GDCC that first includes the extra boolean argument for ACS_SetHudClipRect? That was I that asked for that, and that version should still work just fine for my current purposes, but why not update and learn something? I'll at least have a fallback option.
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: GDCC: An Alternative ACS Compiler

Postby Nash » Wed Jul 27, 2016 4:05 am

Nero: Just dropping by to say you should probably discard using my template, since even I don't care about it anymore (I'm still using gdcc-acc with my OLD ACS-based template), and I don't plan to migrate to C for my game (meaning I won't fix my gdcc template to work with future versions of gdcc).
User avatar
Nash
Twitter/Facebook/Youtube: nashmuhandes
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Twitch ID: nashmuhandes
Github ID: nashmuhandes

PreviousNext

Return to Editors / Asset Manipulation

Who is online

Users browsing this forum: No registered users and 1 guest