Asmusr Posted July 18, 2016 Author Share Posted July 18, 2016 ? Unfortunately for this project I have left my full time job as TI-99 games developer for a job in the TI-99 demo industry. 6 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted July 19, 2016 Share Posted July 19, 2016 Unfortunately for this project I have left my full time job as TI-99 games developer for a job in the TI-99 demo industry. Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted July 19, 2016 Share Posted July 19, 2016 (edited) Do not be Sad Omega, we will see something never seen before on a TI-99/4A with the new Demo will be incredible to think that all will play on a TI-99/4A anyway i hope that after this Demo project, Rasmus will back at all his no nice game projects too always Thank you Rasmus !! Edited July 19, 2016 by ti99iuc 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted August 20, 2016 Author Share Posted August 20, 2016 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? Quote Link to comment Share on other sites More sharing options...
Retrospect Posted August 20, 2016 Share Posted August 20, 2016 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. 1 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted August 21, 2016 Share Posted August 21, 2016 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. 1 Quote Link to comment Share on other sites More sharing options...
Willsy Posted August 21, 2016 Share Posted August 21, 2016 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? It's a very overlooked genre on the 4A, sadly. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted August 27, 2016 Author Share Posted August 27, 2016 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. 7 Quote Link to comment Share on other sites More sharing options...
Willsy Posted August 27, 2016 Share Posted August 27, 2016 Wow it looks fantastic! How much of a difference in speed is observed if you don't use an unrolled loop? Just out of interest...? Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted August 27, 2016 Share Posted August 27, 2016 Test Drive for the TI, baby! Or Outrun. (I have already been working on sounds for the former ) Quote Link to comment Share on other sites More sharing options...
+mizapf Posted August 27, 2016 Share Posted August 27, 2016 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. 1 Quote Link to comment Share on other sites More sharing options...
Tursi Posted August 27, 2016 Share Posted August 27, 2016 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? Quote Link to comment Share on other sites More sharing options...
Asmusr Posted August 28, 2016 Author Share Posted August 28, 2016 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. 4 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted August 28, 2016 Share Posted August 28, 2016 Holy cow... 1 Quote Link to comment Share on other sites More sharing options...
Tursi Posted August 29, 2016 Share Posted August 29, 2016 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. Quote Link to comment Share on other sites More sharing options...
am1933 Posted August 29, 2016 Share Posted August 29, 2016 It's already looking better than the "jerky" nightmare-Pole Position. Just wondered how the addition of other cars and possibly road side objects (such as signs) would affect the frame rate? Quote Link to comment Share on other sites More sharing options...
artrag Posted August 29, 2016 Share Posted August 29, 2016 (edited) 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 August 29, 2016 by artrag Quote Link to comment Share on other sites More sharing options...
Asmusr Posted August 29, 2016 Author Share Posted August 29, 2016 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? Quote Link to comment Share on other sites More sharing options...
artrag Posted August 29, 2016 Share Posted August 29, 2016 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. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted August 29, 2016 Author Share Posted August 29, 2016 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. Quote Link to comment Share on other sites More sharing options...
artrag Posted August 30, 2016 Share Posted August 30, 2016 (edited) I was clutching at straws, I do not see a good solution... I would say that the same curved tile occurs with low probability twice on the screen with different colors but I have no elements to prove it. Edited August 30, 2016 by artrag Quote Link to comment Share on other sites More sharing options...
Imperious Posted August 30, 2016 Share Posted August 30, 2016 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? Quote Link to comment Share on other sites More sharing options...
Asmusr Posted August 30, 2016 Author Share Posted August 30, 2016 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. Quote Link to comment Share on other sites More sharing options...
artrag Posted September 11, 2016 Share Posted September 11, 2016 (edited) Impressive! I'd like to port the source to z80.... Edited September 11, 2016 by artrag 1 Quote Link to comment Share on other sites More sharing options...
LASooner Posted September 11, 2016 Share Posted September 11, 2016 Are the turns random or do you have an actual track path? How hard would it be to have multiple track layouts? Pole Position actually used all the turns at Fuji speedway, without the elevation changes. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.