Jump to content

Photo

Flying Shark


73 replies to this topic

#1 Asmusr OFFLINE  

Asmusr

    River Patroller

  • 2,464 posts
  • Location:Denmark

Posted Sat Aug 5, 2017 10:04 AM

I'm playing around with the graphics from Flying Shark for the ZX Spectrum. First iteration is a brute force monochrome scroller, but we can do better, right? ☺

Attached Files



#2 arcadeshopper OFFLINE  

arcadeshopper

    River Patroller

  • 2,555 posts
  • Location:Portland, Oregon USA

Posted Sat Aug 5, 2017 10:46 AM

awesome!



#3 atrax27407 OFFLINE  

atrax27407

    Dragonstomper

  • 770 posts

Posted Sat Aug 5, 2017 11:21 AM

In honor of Sharknado 5 tomorrow?



#4 ti99iuc ONLINE  

ti99iuc

    Stargunner

  • 1,213 posts
  • Location:Italy

Posted Sat Aug 5, 2017 11:26 AM

It is so nice !!  ... just a bit yellow ? :P


Edited by ti99iuc, Sat Aug 5, 2017 11:27 AM.


#5 artrag OFFLINE  

artrag

    Dragonstomper

  • 706 posts

Posted Sun Aug 6, 2017 12:10 PM

I'm playing around with the graphics from Flying Shark for the ZX Spectrum. First iteration is a brute force monochrome scroller, but we can do better, right? ☺

 

Sorry for the dummy question: I've plugged the dsk file in the JS99'er emulator

What should I do to load the game?

Have you started from the ZX sources ? Are they online ?



#6 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,464 posts
  • Location:Denmark

Posted Sun Aug 6, 2017 2:33 PM

 

Sorry for the dummy question: I've plugged the dsk file in the JS99'er emulator

What should I do to load the game?

Have you started from the ZX sources ? Are they online ?

 

It's probably easier to load the cartridge image shark8.bin. No I haven't started from the source code but from a map.



#7 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,464 posts
  • Location:Denmark

Posted Sun Aug 6, 2017 2:47 PM

Next step will be to add some colors while maintaining a reasonable scrolling speed.

 

Here are the maps after adding some color in Magellan.

 

Attached File  level1.png   28.15KB   10 downloads

Attached File  level2.png   27.83KB   8 downloads

Attached File  level3.png   19.71KB   9 downloads

Attached File  level4.png   28.17KB   9 downloads



#8 PeteE OFFLINE  

PeteE

    Star Raider

  • 93 posts
  • Location:Beaverton, OR

Posted Sun Aug 6, 2017 3:48 PM

Nice looking tile maps!  What graphics mode will this use?



#9 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,464 posts
  • Location:Denmark

Posted Sun Aug 6, 2017 10:57 PM

Nice looking tile maps!  What graphics mode will this use?

 

This is bitmap mode. Not so much because the individual tiles have a lot of color, but because when you scroll vertically color splashes can be avoided in bitmap mode. More precisely the mode will be a hybrid mode with one color table covering the whole screen and 3 pattern tables. If scrolling if too slow in this mode I will have to use 1 pattern table only, but then I will only be able to use 8 sprites. 



#10 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 3,957 posts
  • Location:Denmark

Posted Sun Aug 6, 2017 11:32 PM

Next step will be to add some colors while maintaining a reasonable scrolling speed.

 

Here are the maps after adding some color in Magellan.

  

That somehow added some "depth". Very nice. Good graphics.



#11 artrag OFFLINE  

artrag

    Dragonstomper

  • 706 posts

Posted Mon Aug 7, 2017 11:41 AM

As the level fits in half screen and you only use one color bank, you could try some sort of double buffering.

Basically, for middle and lower bank you can use the spare room in vram under the color table using up to 256 alternate tiles, while the upper bank needs to be filled on fly, but if you manage to show only 128+1 tiles in the upper bank you could really have a full double buffering system by swapping colors and patterns from 0000h to 2000h and back.

In the upper bank you could use tiles 0-127 with patterns in 0000h and colors in 2000h and tiles 128-255 with colors in 0000h and patterns in 2000h

Thinking a bit more,having colors shared, middle and lower banks should use tiles 0-127 and tiles 128-255 accordingly to what you use in the upper bank.
This makes the idea less attractive, as you cannot freely use all the tiles not involved in the level rendering

Edited by artrag, Mon Aug 7, 2017 2:39 PM.


#12 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,464 posts
  • Location:Denmark

Posted Mon Aug 7, 2017 10:54 PM

As the level fits in half screen and you only use one color bank, you could try some sort of double buffering.

Basically, for middle and lower bank you can use the spare room in vram under the color table using up to 256 alternate tiles, while the upper bank needs to be filled on fly, but if you manage to show only 128+1 tiles in the upper bank you could really have a full double buffering system by swapping colors and patterns from 0000h to 2000h and back.

In the upper bank you could use tiles 0-127 with patterns in 0000h and colors in 2000h and tiles 128-255 with colors in 0000h and patterns in 2000h

Thinking a bit more,having colors shared, middle and lower banks should use tiles 0-127 and tiles 128-255 accordingly to what you use in the upper bank.
This makes the idea less attractive, as you cannot freely use all the tiles not involved in the level rendering

 

My idea is to upload the tiles on the fly, but only the tiles I need based on a sliding window. My analysis shows that there will be max 106 tiles active at any point, and that could probably be reduced a bit by reducing the base tile set (there are many tiles that look very similar). Because there are fewer than 128 tiles I can use alternating name tables (one with 0-127 and another with 128-255) for double buffering, but I still need to see how fast this will be.



#13 palmheads OFFLINE  

palmheads

    Chopper Commander

  • 181 posts
  • Location:Christchurch, New Zealand

Posted Mon Aug 7, 2017 11:27 PM

Wow! Am just imaging you releasing a new game every month now with your Z80 -> TI skills!



#14 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,464 posts
  • Location:Denmark

Posted Wed Aug 9, 2017 10:57 PM

Before I try to improve things I wanted to show how a brute force scrolling with colors look.

 

I have two linear-circular screen buffers in CPU RAM, one for patterns and one for colors, that I update with a single pixel line every frame, and then I push the whole thing to the VDP. 

 

As expected there's a lot of screen tearing (due to lack of double buffering) and it pretty slow (pushing almost 7K to the VDP every frame). 

 

Attached Files



#15 Sinphaltimus OFFLINE  

Sinphaltimus

    Stargunner

  • 1,969 posts
  • Distracted at the Keyboard
  • Location:Poconos, PA

Posted Thu Aug 10, 2017 4:03 AM

Wow, Nice job, looks good! Screen tearing is not big deal here.



#16 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,464 posts
  • Location:Denmark

Posted Mon Aug 14, 2017 2:53 PM

Here is the first version of the double buffered scrolling backgrounds. If you leave it running it will take you through all 4 levels.

 

The speed is slightly faster when there fewer unique tiles on the screen. If it wasn't for the sprite duplication bug in the 9918A it could run twice as fast in half-bitmap mode, but if this turns into a game I will need more than 8 sprites on the screen.

 

For some reason it's not working in MAME? I have tried it on my F18A console where it's working fine, but I haven't tried it on a 9918A console.

Attached Files



#17 Vorticon OFFLINE  

Vorticon

    River Patroller

  • 2,805 posts
  • Location:Eagan, MN, USA

Posted Mon Aug 14, 2017 3:07 PM

Really nice graphics and smooth scrolling. Similar concept to War Zone I/II.

Attached Files



#18 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,464 posts
  • Location:Denmark

Posted Mon Aug 14, 2017 10:45 PM

Yes, Warzone II is great, I converted it to ROM format, but that's for another thread. The difference is that Warzone II is running in graphics I mode, so colors are more limited. And Warzone II is also working with a very limited set of graphics. The new thing in my algorithm (compared to Titanium etc) is that I only update the visible tiles and bring in more as needed, so greater variation in the graphics is possible. To see how it works, look at the VDP chars (F9) in Classic 99 while the demo is running.



#19 Vorticon OFFLINE  

Vorticon

    River Patroller

  • 2,805 posts
  • Location:Eagan, MN, USA

Posted Tue Aug 15, 2017 7:09 AM

There is no question that this is the far more visually and technically advanced game. The issue unfortunately will come down to speed of play. Are you considering perhaps using the GPU or will this be just a demo?



#20 artrag OFFLINE  

artrag

    Dragonstomper

  • 706 posts

Posted Tue Aug 15, 2017 8:00 AM

You can have sprite update and game logic executed two or three times per scroll step. In this way the game speed would be perfectly tunable leaving the background scrolling slowly.

Edited by artrag, Tue Aug 15, 2017 8:02 AM.


#21 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,464 posts
  • Location:Denmark

Posted Tue Aug 15, 2017 8:25 AM

There is no question that this is the far more visually and technically advanced game. The issue unfortunately will come down to speed of play. Are you considering perhaps using the GPU or will this be just a demo?

 

No I'm not planning to make this dependent on the F18A. If I did the scrolling could have be done much simpler and faster, and the graphics could have been more colorful, even without the GPU. But I might make a F18A version that will run faster simply because the F18A doesn't have the sprite duplication bug in half bitmap mode, so I only have to update 1 pattern table instead of 3.



#22 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,464 posts
  • Location:Denmark

Posted Tue Aug 15, 2017 8:29 AM

You can have sprite update and game logic executed two or three times per scroll step. In this way the game speed would be perfectly tunable leaving the background scrolling slowly.

 

Yes that's my plan. I will probably run the sprite update and game logic in an 30Hz "interrupt routine" and spend all remaining time scrolling.



#23 remowilliams OFFLINE  

remowilliams

    Quadrunner

  • 10,287 posts
  • Location:Detonation Boulevard

Posted Tue Aug 15, 2017 2:19 PM

Here is the first version of the double buffered scrolling backgrounds. If you leave it running it will take you through all 4 levels.

 

Nice!  Just ran it on my FinalGROM99 :)



#24 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,464 posts
  • Location:Denmark

Posted Fri Sep 8, 2017 11:02 AM

I have been working on the sprite routines. Don't expect a lot, there are only a few sprites in the beginning and a few later on, but the general workings are beginning to come together. 

Attached Files



#25 ti99iuc ONLINE  

ti99iuc

    Stargunner

  • 1,213 posts
  • Location:Italy

Posted Fri Sep 8, 2017 11:28 AM

lovely progress  :) thanks






1 user(s) are browsing this forum

0 members, 1 guests, 0 anonymous users