There are any reason why zc has a fixed displayn size? I don't understand the reason.
That's just how it was written way back when. It uses Allegro 4's GUI framework, in which everything has a fixed size and position. Making it more flexible would require extensive rewriting. Even the update to the 2.50 interface is mostly a big, ugly kludge.
Well, in theory, I could make a bitmap at any desired size, and do a stretched_blit to it. This may render some text very hard to read, depending on the new dimensions.
I'm pretty sure that the pixel doubling was done, for ZQuest, to ensure that fonts always render clearly. (This is, in part, why I wanted to get alttf.lib working.)
Scaling the actual UI elements and rendering the text to the screen without losing relative positions, would, otherwise, be pretty much impossible with the JWin/AG GUI stuff.
As an interim solution, I could put 1.5x scale, and 2.5x scale into ZQuest. That seems feasible, and would only look slightly awful.
That would work on a display that is at least 1200x900 pixels in size, plus a slice for the window frame; however my laptop display is 1366x768, so, I have no way to test such an option.
Adding more display sizes to the ZC Player, is a similar ordeal, and it may increase artefacting/tearing in-game.
Note that you can configure DXGL to put ZC/ZQ into a scaling window, IIRC.