Jump to content
IGNORED

VBXE for Beginners Tutorial Thread


Mark2008

Recommended Posts

Given there is going to be a new thread on VBXE, I feel like this one can now devolve into a little fun.

 

This is a game I call, guess what this guy is smoking.

 

 

image.thumb.png.c3c54892fa485d7ec275b7bcdf31c8a7.png

 

What I did here is I decided to google on Call of Duty to examine the text of the Call of Duty screen.

 

Since I only rarely play video games, I assume this is an early screen in an early version....but it will suffice.


I will state for the sake of argument, that compared to the Atari, the modern PC has somewhat unlimited resources for graphics.

The budget for making Call of Duty, probably few restrictions there.

 

What I wanted to do, is say - if no restrictions of any kind - no technological, budget or otherwise, what would the game designer choose for the number of characters to use on a line?

 

Just pure preference based on the desire of the artist - no other restrictions.

 

Now, I could even go down to the Copyright notice on the bottom, but that is meant to be hidden - so "Press X to Start" is what I examined - meant to be read.

 

16 characters long, you can fit about 7 of them on a screen.  7 x 16= 112.

 

So with no particular hardware concerns, on a wide aspect screen they went with 112 characters per line.

 

But, if I were to go into an examination of Atari games, where I know they had an 80 column ability - I find for the most part they use 40 characters, not 80.

 

And indeed on all my half finished projects I used 40 characters not 80.   Why did I do that?  Habit, for one.  It was easier - number two.  Default - didnt' think about it.  The game is important not the text. 

 

The reason for differing choices -  accessability, ease of use, familiarity, antipathy toward 80 columns...all factor in.  But aesthetics - that favors the 80 column choice, not the 40.

 

Obviously I think Stephens work is going to be very helpful for VBXE adoption.

I also think the more libraries the better -   For those that code in cc65,kickC,PL65,fast basic, etc.

 

Now the answer, i wasn't smoking anything - I wish I had an excuse.

 

ok, I've kind of trailed off on my new game, maybe I hit it hard this weekend.  It's definitely going to support 80 columns after this rant.

Link to comment
Share on other sites

10 hours ago, Mark2008 said:

@Yaron Nir

 

edit: nevermind....skip to the end....lol

 

I personally don't know MADS Assembler, but the S2 driver can set to low res with 192 lines and Altirra will reveal the XDL.

And I would follow that path, to get a working example of a 192 line lowres screen.

 

And I'll just type this out for others that may find the thread.

 

 

in the Mad Pascal download:

 

Mad-Pascal-1.6.6\samples\a8\graph_vbxe_s2\doc

 

Documentation for the VBXE "S:" display driver

 

2: pixel mode 160x192/256 colors (lowres). This is like GR.15 in 256 colors.

 

So, in basic

 

Line 10 in the first post of this thread I used "3" for stdres.


But change it to "2" for lowres.

You have to have S_VBXE.SYS already loaded and then:

 

10 OPEN #6,12,2,"S2:"
20 COLOR 128:PLOT 30,30:DRAWTO 150,150
30 GOTO 30

 

Now, you can go into Altirra and dump out the XDL created.

 

Once you have the program running go to the Altirra debugger

 

Debug->Enable Debugger

 

Then I hit Step Into once,  otherwise I cannot type into the console.

 

.help to show commands

.vbxe_xdl to show the xdl

That's the XDL I would use for lowres.

 

I did a similar strategy to get stdres when I did the runway game.

 

 

edit; oh nevermind, i probably need to read the thread first,  so many cool post, I just haven' thad a chance to read them.  lol

 

 

@Mark2008 thanks for the kind explanation and demo.

unfortunately, using the driver S2 AS-IS is not something i desire. i want to be able to program XDL myself (doesn't matter in what language, even though i am programing in MADs assembly).

That debugger output in altirra could be a good start, but i need to understand what each line mean and how to set it.

for example, where does the address 7E130 is coming from? how do i set it? how do i enable the XDL? the repeat is 24, so it means 24 scanlines or 3 scanmodes (24/8) ? what does that $00000 , $0A0 mean? 

ok i think you get the idea.

hopefully in the thread Stephen will create we will be able to drill down line by line understand what the value mean and how to use them.

it will help set up as dynamic VBXE screen as possible and will open many games/demos oppertunities

 

 

7E130: 74 0F      ; mode off
                  ; map_off
  17              ; repeat      24
  00 00 00 A0 00  ; load_ovl    $00000, $0A0
  F8              ; load_chbase $7C000
  00 00 00 28 00  ; load_map    $00000, $028
  00 00 07 07     ; map_attr    0, 0, 8x8
  11 80           ; ovatt ovwidth=normal, ovpal=1, pfpal=0, pri=$80
7E144: 22 A0      ; mode lr
  BF              ; repeat      192
; end 

 

  • Like 1
Link to comment
Share on other sites

13 hours ago, Yaron Nir said:

Thanks @Stephen, once new thread is up and running, please tag it here so we can move to the new thread

 

I will begin working on this after dinner - until then, here is the XDL Tutorial I have started for my overall XDL tutorial.  @Yaron Nir, I will also work on answering your questions from above.  I plan on structuring the info on the new thread better than here:

  1. A simple overview of how I tend to layout VBXE RAM, with a discussion of how to read/write to the VBXE RAM
  2. How to setup the VBXE to use the XDL
  3. An overview of the XDL and its various features
  4. Sample XDLs
    1. Text Mode (80X25 using a single palette)
    2. Graphics Mode
      1. 160*240 using a single palette, no provisions for scrolling (i.e., 160 byte per line)
      2. 320*240 with a split, demonstrating how to use 2 palettes
    3. Mixed Mode (Text and Graphics)
  5. Skeleton code for a simple "Hello World" will eventually be provided

I have some placeholders there which I can edit to keep the content contiguous.  Please don't post there until I get the basic content structure in place.  The content will end up being quite verbose so that's why I want separate posts

  • Like 2
Link to comment
Share on other sites

2 hours ago, Stephen said:

I will begin working on this after dinner - until then, here is the XDL Tutorial I have started for my overall XDL tutorial.  @Yaron Nir, I will also work on answering your questions from above.  I plan on structuring the info on the new thread better than here:

  1. A simple overview of how I tend to layout VBXE RAM, with a discussion of how to read/write to the VBXE RAM
  2. How to setup the VBXE to use the XDL
  3. An overview of the XDL and its various features
  4. Sample XDLs
    1. Text Mode (80X25 using a single palette)
    2. Graphics Mode
      1. 160*240 using a single palette, no provisions for scrolling (i.e., 160 byte per line)
      2. 320*240 with a split, demonstrating how to use 2 palettes
    3. Mixed Mode (Text and Graphics)
  5. Skeleton code for a simple "Hello World" will eventually be provided

I have some placeholders there which I can edit to keep the content contiguous.  Please don't post there until I get the basic content structure in place.  The content will end up being quite verbose so that's why I want separate posts

no problem i will wait till you finish your posts and when you're done i will post questions/comment 

many thanks for this @Stephen

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...