Jump to content

Photo

F18A 30 rows/80 columns mode?

F18A 30 rows/80 columns 9900 asm

14 replies to this topic

#1 retroclouds OFFLINE  

retroclouds

    Stargunner

  • 1,693 posts
  • Location:Germany

Posted Sun Dec 2, 2018 1:23 PM

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.



#2 PeteE OFFLINE  

PeteE

    Chopper Commander

  • 216 posts
  • Location:Beaverton, OR

Posted Sun Dec 2, 2018 2:13 PM

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


#3 matthew180 ONLINE  

matthew180

    River Patroller

  • 2,621 posts
  • Location:Castaic, California

Posted Sun Dec 2, 2018 6:59 PM

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.



#4 --- Ω --- OFFLINE  

--- Ω ---

    Hexacorerunner

  • 13,790 posts

Posted Sun Dec 2, 2018 7:05 PM

 

Sprite Linking and the Real Sprite Y position features are going away. 

 

Have any programs even used them?



#5 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,004 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sun Dec 2, 2018 7:33 PM

The 30 row mode is good news for reasons.



#6 matthew180 ONLINE  

matthew180

    River Patroller

  • 2,621 posts
  • Location:Castaic, California

Posted Sun Dec 2, 2018 8:32 PM

 

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.



#7 matthew180 ONLINE  

matthew180

    River Patroller

  • 2,621 posts
  • Location:Castaic, California

Posted Sun Dec 2, 2018 8:33 PM

The 30 row mode is good news for reasons.

 

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



#8 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,004 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sun Dec 2, 2018 8:48 PM

 

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

 

Sadly been low-priority for me.



#9 retroclouds OFFLINE  

retroclouds

    Stargunner

  • Topic Starter
  • 1,693 posts
  • Location:Germany

Posted Fri Dec 21, 2018 11:51 AM

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.

 



#10 retroclouds OFFLINE  

retroclouds

    Stargunner

  • Topic Starter
  • 1,693 posts
  • Location:Germany

Posted Sun Dec 23, 2018 1:01 PM

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, Sun Dec 23, 2018 1:09 PM.


#11 PeteE OFFLINE  

PeteE

    Chopper Commander

  • 216 posts
  • Location:Beaverton, OR

Posted Sun Dec 23, 2018 2:42 PM

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.

Attached Files


Edited by PeteE, Sun Dec 23, 2018 2:45 PM.


#12 InsaneMultitasker OFFLINE  

InsaneMultitasker

    River Patroller

  • 2,387 posts

Posted Sun Dec 23, 2018 3:10 PM

I toggle between 24 and 30 line mode within TIMXT for some menu options.  Before resetting with BLWP @0 I also use the same step PeteE mentions, writing >80 to VR50.



#13 Tursi OFFLINE  

Tursi

    Quadrunner

  • 5,561 posts
  • HarmlessLion
  • Location:BUR

Posted Sun Dec 23, 2018 4:12 PM

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. :)

#14 retroclouds OFFLINE  

retroclouds

    Stargunner

  • Topic Starter
  • 1,693 posts
  • Location:Germany

Posted Mon Dec 24, 2018 3:22 AM

ok, that sounds like a plan. Thanks for the update guys!  ;)



#15 matthew180 ONLINE  

matthew180

    River Patroller

  • 2,621 posts
  • Location:Castaic, California

Posted Sat Dec 29, 2018 2:52 AM

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:







Also tagged with one or more of these keywords: F18A, 30 rows/80 columns, 9900, asm

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users