Jump to content
Sign in to follow this  
retroclouds

F18A 30 rows/80 columns mode?

Recommended Posts

Think I read somewhere that the F18A also supports a 30 rows/80 character mode as opposed to the "normal" 24 x 80 columns mode.

If that is true, can someone point me how the F18A VDP registers must be set to activate the mode?

 

Thanks

retroclouds

 

*EDIT* It's 30 rows, not 31 rows.

Share this post


Link to post
Share on other sites

The ROW30 flag is in register VR49. I have crudely made the register layout here:

         +----------+--------+-------+-------+--------+-------+-------+-------+
VR49 >31 | TILE2_EN | ROW30  | ECMT0   ECMT1 | Y_REAL | LINK  | ECMS0   ECMS1 |
         +----------+--------+-------+-------+--------+-------+-------+-------+
           Tile map 2 enable   ECM (T)ile      real sprite Y coord   ECM (S)prite
                      24/30 tile rows                   Sprite linking enable
  • Like 2

Share this post


Link to post
Share on other sites

You can thank the NES for the 30-row support (and a few other enhancements). Keep in mind that when all 30-rows are enabled, the name tables are larger. Pixel scrolling is also available in T80 mode, but not the multiple pages. Unlock the F18A and set bit >40 in VR49 (as shown above, thanks PeteE), and you will have 30-rows available. The Text modes also have the "position-based attributes" available.

 

Note that in the next F18A firmware (yes, there is going to be at least one more, if not two, updates), Sprite Linking and the Real Sprite Y position features are going away. I only mention those here because they are part of VR49.

  • Like 2

Share this post


Link to post
Share on other sites

 

Have any programs even used them?

 

Not AFAIK, which is not really definitive I know. The reason for the change it technical and I needed to remove something to get FPGA resource utilization below 99%. It is common for software that uses multiple spites (like games) keep a copy of the sprite table in CPU RAM and just overwrite the whole table in VRAM when a sprite needs to be updated.

Share this post


Link to post
Share on other sites

 

News? It has been there since the original release in 2012. ;-)

 

Sadly been low-priority for me.

Share this post


Link to post
Share on other sites

Here's a little demo recorded using js99er. I apologize for the bad YouTube video quality.

 

This isn't 30 rows mode yet, but you get the idea.

 

  • Like 4

Share this post


Link to post
Share on other sites

Is there a proper way to fully reset the F18a after coming out of 80 columns/30 rows mode?

 

In the following demo I run the F18a in 80 columns, 30 rows mode and then exit to the title screen by doing a blwp @0 after having done the below steps:

  1. Turn bit >40 in VR49 off
  2. Lock the F18a

 

NOTE: At the end of video I wrote 30 columns mode, that is wrong ofcourse, it's 30 rows mode.

 

Recorded with js99er. The behaviour is consistent on the real deal and js99er.

I have to turn the TI-99/4a to reset the F18a.

Even swapping modules and going to TI-Extended Basic for example shows the same behaviour, so I presume the F18a is still stuck in 30 rows mode?

 

Unfortunately I can't test it on classic99 as this mode is not (yet) supported.

Edited by retroclouds

Share this post


Link to post
Share on other sites

Before reset, also write >80 to VR50 to "Reset all VDP registers to power-on defaults"

 

Edit: Do you have the F18A register documentation? I'm attaching a PDF conversion from the original spreadsheet.

f18a_register_use - V1.8.pdf

Edited by PeteE
  • Like 1

Share this post


Link to post
Share on other sites

Yep.. if you're using the extended F18A functions, you should disable QUIT in the interrupt function and handle it yourself, so you can reset the F18A first. :)

  • Like 2

Share this post


Link to post
Share on other sites

F18A settings survive a warm reset, as well as cartridge inserts (when doing so does not lock up the console). It is just the way it all worked out. I suppose this could be handy for making a utility that can set certain F18A features for various reasons. For example, the virtual scan lines, sprites per line, and other such settings are all software controllable regardless of the jumper settings (the jumpers are just the power-on defaults). So a utility could let the user turn those (and other) features on or off until the console is power-cycled. The palette registers are another example. You could set a completely new color palette if you want, which will survive until you power-cycle.

 

I'm glad others chimed in to help you, since I have literally forgotten about half of these things! Uh, I just make the tools, I don't actually *use* them... :ponder:

  • Like 3

Share this post


Link to post
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.

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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...