News:

Welcome to RetroCoders Community

Main Menu

Graphics in old games

Started by johnno56, Apr 16, 2023, 11:04 AM

Previous topic - Next topic

johnno56

I have been working on converting the old Apple 2 game, Artillery Simulator, to BAM but that is a work in progress. But it did cause me to think about the difficulties in converting graphics from old games. Not necessarily the commands etc. but the resolution...

Apple 2's "hi-res" is 280x192 using 6 colours. My screen is a standard 1920x1080 and the Apple screen takes up an area the size of a credit card in comparison... lol  Unless the target editor (in this case BAM) has the capability to "scale" the output, I think converting old graphics-based games, will be problematic at best. For example: Working on 'Artillery', there has been times that I have had to resort to using 'reading glasses' and or a magnifying glass to check if the graphics are ok... lol

Oh, but the hardest that I have tried to convert, are programs from the VZ200 (Laser200). My very first colour computer back in about 1983'ish? https://en.wikipedia.org/wiki/VTech_Laser_200
The resolution was 128x64 - Not much bigger than a large postage stamp... Quite "chunky" on the TV but almost impossible to see much detail on today's screen... So funny!

I think, after Artillery, I will focus on text-based games... but not exclusively... after all, a graphical conversion, although frustrating at times, are fun to tackle now and then...

I have just about all of Mr. Ahl's programs (.bas files) and many ebooks of listings for various Basic's. If there is a particular 'type' of game/program that you find interesting (or fun), and assuming I can convert it successfully, let me know...
May your journey be free of incident.  Live long and prosper.

CharlieJV

It sounds like SCREEN _NEWIMAGE(280,192,12) might be the right screen setup for your graphics games.

You cannot view this attachment.

CharlieJV

Or SCREEN _NEWIMAGE(128,64,12)?  (In this example, I've turned off "image smoothing in the Runtime Properties)

You cannot view this attachment.

johnno56

I agree. I have no issue with selecting "screen x" or "screen _newimage()"... What I find funny, is that the resolution of the 'old basics' look so small on standard screens... Regardless of whether either screen mode is used... Ah the fun and game of converting old graphics...

I have never used a "depth" of 12 before. I always thought that 8, 16, 24 and 32 were QB's options... Cool... I must give '12' a go... Sounds like fun!
May your journey be free of incident.  Live long and prosper.

CharlieJV

If you use those _newimage settings, then you get an image that isn't small, but is heavily pixelated.  Which I think is pretty cool in a retro way.

I'm not quite sure I understand what you mean, but I'm figuring it doesn't matter.

Play around with the different screen modes (BAM has a whole bunch of them.)  I think screen mode 12 with low resolution (i.e. those _newimage settings) is the best way to go.

Do sneak a peek at the "SCREEN" documentation, and you'll find documentation for the screen modes in a dropdown section.

(Neocities.org seems quite slow right now, might be some maintenance going on.) Scroll down to the "Graphics and Imaging" section, and click on the item "Screen."  The "Screen Modes" dropdown will show a table, and a bunch of dropdowns below the table explain the colour modes: https://basicanywheremachine.neocities.org/BAM_ProgReference?target=BAM%20Language%20Reference%3A%3AAll%20Keywords%20and%20Symbols%20by%20Usage#Home

CharlieJV

#5
Quote from: johnno56 on Apr 16, 2023, 10:34 PMI have never used a "depth" of 12 before.

I just noticed where I got confused.

In BAM, _NEWIMAGE (not a stand-alone function, but rather an indicator of an alternative to a screen mode), the first two parameters indicate screen width and height, and the third parameter indicates the screen mode to use as a basis for creating the screen.  The pixel width and height of the screen mode are ignored, but the rest of the screen mode's attributes are used to generate the screen.

Screen mode 12 is normally 640 x 480 pixels (resulting in 80 columns x 30 rows of text), has a screen aspect ratio of 1 (i.e. the height and width of a pixel are equal), the font height is 16 pixels, and the screen is 16-colour mode.

With the first _NEWIMAGE example I posted, it has all of the attributes of screen mode 12, except the width and height are changed to 280 x 192 ( 35 columns * 12 rows of text.)

When a BAM program is run, the screen always maintains the width-to-height proportions, but is scaled to fit the browser window, and gets bigger/smaller as the browser window is resized.

Make the browser window bigger, and you are effectively zooming in.  Make the browser window smaller, and you are effectively zooming out.

All of that partially explains why the fonts in BAM are not great, and will never be great.

johnno56

Thanks for the in depth explanation.

Ah yes. The dreaded fonts... Wonderful weather we are having today... lol...

As a side note: I have found ebooks of some old Tim Hartnell programs floating about an old HDD. If memory serves correctly, he did not use graphics at all, just text. Could be fun!
May your journey be free of incident.  Live long and prosper.

CharlieJV

Quote from: johnno56 on Apr 17, 2023, 01:49 AMThanks for the in depth explanation.

Ah yes. The dreaded fonts... Wonderful weather we are having today... lol...

As a side note: I have found ebooks of some old Tim Hartnell programs floating about an old HDD. If memory serves correctly, he did not use graphics at all, just text. Could be fun!

To me, these old-school programs that leave the graphics to one's imagination, they are good stuff.

johnno56

May your journey be free of incident.  Live long and prosper.