Jump to content
IGNORED

Formula 18A / Formula 99 / Formula 99+ development


Asmusr

Recommended Posts

Do not be Sad Omega, we will see something never seen before on a TI-99/4A with the new Demo :D

will be incredible to think that all will play on a TI-99/4A :D

 

anyway i hope that after this Demo project, Rasmus will back at all his no nice game projects :P too ;)

 

always Thank you Rasmus !!

Edited by ti99iuc
  • Like 1
Link to comment
Share on other sites

  • 1 month later...

I'm thinking about whether it would be possible to make a decent racing game without using the F18A. Is Pole Position the only game of its kind for the TI?

Pole Position is as far as I know, the only game of its kind on the TI. All the other racing games had it viewed from above and the car always looked like a bone. With asterisks for the background.

  • Like 1
Link to comment
Share on other sites

Pole Position was about the best of the lot for the TI.

 

The nearest road racing competitor would have been Driving Demon, and Road Hunter took that style of "view from above" games and went way above and beyond it. Car Wars and Munch Mobile were just something completely different that happened to use cars.

  • Like 1
Link to comment
Share on other sites

I have been working on a 9918A racing demo for the last week. Here's the result so far:

 

 

The bottom of the screen and the car are ripped from the ZX Spectrum games Hard Drivin' and Continental Circus.

 

To update the road, 2K of pattern data and 2K of color data have to be transferred to the VDP. In order to achieve a tolerable frame rate this has to be done in the fastest possible way by an unrolled loop in scratch pad ram. This is the loop that transfers 8 pixel rows or 1 character row from CPU RAM to VDP RAM. The Registers R1-R8 each point to a line of the image to transfer:

CPYLP1 LI   R0,VDPWD
       LI   R9,32
CPYLP3 MOVB *R1+,*R0
       MOVB *R2+,*R0
       MOVB *R3+,*R0
       MOVB *R4+,*R0
       MOVB *R5+,*R0
       MOVB *R6+,*R0
       MOVB *R7+,*R0
       MOVB *R8+,*R0
       DEC  R9
       JNE  CPYLP3
       B    *R11

This way the road can be updated in approximately 15 frames per second.

 

Apart from not being able to rely on hardware scrolling, this demo is using the exact same techniques as the F18A demo.

  • Like 7
Link to comment
Share on other sites

Or Outrun. :)

 

Outrun is something that stayed in my memory with my holidays in 1988, at Salou, Costa Daurada, Spain (Catalonia). Down towards the beach, halfway, there was a touristic center with some small shops, and an arcade cabinet with Outrun, with a seat, a force-feedback steering wheel, gas, brake. In those times the best you could get was an Amiga at home, which had some extremely good games, but Outrun was a particular fun, with its smooth graphics, fast response, and, of course, the force feedback. I remembered well the details, like the flying blonde hair of the girl next to the driver on the screen. We spent nearly every evening down there, trying to get farther along the paths you could choose.

 

Later, that is, more than 20 years, I found Outrun in MAME, got a ROM somewhere, and started it. It was, yes, a meeting with the past, and still impressive, but I first thought I misconfigured something: The graphics were much worse than I remembered, especially with a disappointing low resolution.

 

The more I played the emulation, the more was I convinced that everything was right: Memories often deceive you. The graphics were not better in 1988, but better than most of the stuff you were used to. And today I'm watching HDTV in a window while writing this text at the same time and running MESS in the background. Just crazy.

  • Like 1
Link to comment
Share on other sites

Asmusr, on 27 Aug 2016 - 1:32 PM, said:

I have been working on a 9918A racing demo for the last week. Here's the result so far:

 

 

The bottom of the screen and the car are ripped from the ZX Spectrum games Hard Drivin' and Continental Circus.

 

To update the road, 2K of pattern data and 2K of color data have to be transferred to the VDP. In order to achieve a tolerable frame rate this has to be done in the fastest possible way by an unrolled loop in scratch pad ram. This is the loop that transfers 8 pixel rows or 1 character row from CPU RAM to VDP RAM. The Registers R1-R8 each point to a line of the image to transfer:

This way the road can be updated in approximately 15 frames per second.

 

Apart from not being able to rely on hardware scrolling, this demo is using the exact same techniques as the F18A demo.

 

Fantastic! That looks terrific. :) This is something I've always wanted to see -- again! So cool to see it running.

 

Though, why do you need 8 registers in the loop? It's all going to consecutive VDP addresses, and they are each incrementing anyway, you should get the same performance from one source register unless I missed something?

Link to comment
Share on other sites

 

Fantastic! That looks terrific. :) This is something I've always wanted to see -- again! So cool to see it running.

 

Though, why do you need 8 registers in the loop? It's all going to consecutive VDP addresses, and they are each incrementing anyway, you should get the same performance from one source register unless I missed something?

 

The image is built from scrolling 64 pixel lines individually. The pixel lines are stored in RAM, and I'm actually storing 8 versions of each line scrolled between 0 and 7 pixels. If each line was to be transferred to the VDP individually I would have to set up the write address after each byte, which would slow things down by a factor 4 or so, so I'm transferring 8 lines at a time. The registers R1-R8 are each initialized to point to the right scrolled version of a scanline (depending on the pixel offset) and the right byte offset, then the above loop is executed.

 

That's for the patterns, for the colors the image is designed so the colors only have to be scrolled in byte offsets, which is fortunate because otherwise I would run out of RAM. There are two color images that I'm changing between to generate the stripes. Some optimization might be possible with the colors because parts of the color image don't change between frames.

  • Like 4
Link to comment
Share on other sites

 

The image is built from scrolling 64 pixel lines individually. The pixel lines are stored in RAM, and I'm actually storing 8 versions of each line scrolled between 0 and 7 pixels. If each line was to be transferred to the VDP individually I would have to set up the write address after each byte, which would slow things down by a factor 4 or so, so I'm transferring 8 lines at a time. The registers R1-R8 are each initialized to point to the right scrolled version of a scanline (depending on the pixel offset) and the right byte offset, then the above loop is executed.

 

oh, oh! that's brilliant! I like that a lot. :)

Link to comment
Share on other sites

Just a proposal to rise the framerate using 2x2 pixels.

A line would have only 4 possible states (4 positions for the transition, 3 if you flip colors).

All possible values of a tile would be 4*4*4*4 = 256

The game could choose 2 bits from 4 precomputed lines and pick up a tile from the tileset.

Edited by artrag
Link to comment
Share on other sites

Just a proposal to rise the framerate using 2x2 pixels.

A line would have only 4 possible states (4 positions for the transition, 3 if you flip colors).

All possible values of a tile would be 4*4*4*4 = 256

The game could choose 2 bits from 4 precomputed lines and pick up a tile from the tileset.

 

I think understand how you could create a monochrome tileset based on 2x2 pixels, but I don't understand how you would provide the color?

Link to comment
Share on other sites

Colors have to be filled.

Anyway color sequence is fixed, green/red, red/gray, gray/white, white/gray, gray/green, etc.

You could out green/red on a line until the value is 00b pick the next color at the first transition.

It is tricky but it could work, I cannot say if it will be fast.

Link to comment
Share on other sites

Colors have to be filled.

Anyway color sequence is fixed, green/red, red/gray, gray/white, white/gray, gray/green, etc.

You could out green/red on a line until the value is 00b pick the next color at the first transition.

It is tricky but it could work, I cannot say if it will be fast.

 

But I thought your idea was to be able to update the screen using name table manipulation only? If you change the colors of the tiles on the fly then you won't be able to reuse them.

Link to comment
Share on other sites

This Looks great. I especially like the parallax scrolling in the background when turning corners.

 

I realise it's been ripped from a spectrum game, but the car is a bit unsightly, being shades of grey only, although it would be improved a bit without that shadow underneath it.

 

This demo has got me wondering about something though, that's actually become a bit more common nowdays on other systems, which is

to improve some of the original games. On the c64 this has been done with Scramble and Commando to name just a couple.

I do wonder whether games like Jungle Hunt and Pole Position could have the jerky scrolling improved if someone with the skills

had a go at them. It's Just a thought anyway, and I don't have any programming skills, so what do I know?

Link to comment
Share on other sites

This demo has got me wondering about something though, that's actually become a bit more common nowdays on other systems, which is

to improve some of the original games. On the c64 this has been done with Scramble and Commando to name just a couple.

I do wonder whether games like Jungle Hunt and Pole Position could have the jerky scrolling improved if someone with the skills

had a go at them. It's Just a thought anyway, and I don't have any programming skills, so what do I know?

 

This is more or less what I'm trying to do here. But there are so many games that were never ported to the TI, and it's usually more awarding to try to bring in a new game than redoing what has already been done reasonably well. There seems to be a shortage of driving games on the TI, however. Even the ZX Spectrum had a version of Outrun.

Link to comment
Share on other sites

  • 2 weeks later...

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