Jump to content
IGNORED

My 8-bit Games Porting to 7800 in the works


peteym5

Recommended Posts

I found a way to record videos with the ProSystem emulator. I have to use a program like OBS Studio to make a recording.

 

https://youtu.be/AiHu6VFEJTs

 

This is an early Work-in-Progress. I am trying to see how many animated objects I can have onscreen at once. They will be moving around once I figure out more stuff.

 

One helpful hint: MARIA DMA goes by zones. So the fewer objects you have in a horizontal zone, the better. This means you can also split things vertically and not use up a lot of DMA. Edited by Synthpopalooza
  • Like 1
Link to comment
Share on other sites

I am trying something similar to what has been done on the 8-bit that is checking how many objects that are in each horizontal zone. If more than like 8 are present, 1 or more will start "sitting out" each frame. Which ones sit out rotates. If 11 objects are in the zone, objects numbered 3,5,8 will sit out one frame, next frame be like 1,4,7, etc. This causes a flickering effect, but it should not be as noticeable as it was on the 8-bit since the 7800 allows more to be put in each horizontal zone. Plus the objects will be moving that also draws less attention to the flickering. Also many of my games had 16 sprites at the most on the screen. Delta Space Arena is an exception where it was having 20 sprites on screen at once for the 8-bit, and the 7800 is being tested with 24 sprites. Looking to do a little extra with the 7800 version.

 

Some games can have sprites going anywhere on the screen, and to have extra logic to check if too many are in a zone can be tedious.

 

There are a few games in my inventory I still need to figure out how set up on the 7800. Like Surround'Em and Tempest Elite. Those used bitmapped line drawing modes (graphics 7, graphics 15) on the 8-bit. These need 8k RAM or more. Bitmap modes in RAM means you can set any bit/nibble for the pixel to a desired color anywhere on the screen. 7800 4K RAM is a problem I need to work around. One ideal is make a character set with many different line angles in the character tiles. Another ideal is make a low res mode with characters to simulate pixels on or off.

Edited by peteym5
Link to comment
Share on other sites

Here is a Video showing the latest work in progress for Amok Bots, Delta Space Arena, Laser Blast X, Putt 18, and Venture. It took me awhile to figure out a way to multiplex 8 sprites within a horizontal zone. Keep in mind I am forcing more sprites than usual to one horizontal zone, so for the most part, you will not likely see much flickering with my games ported onto the 7800. Some games have the character set written over several times in the background. This is to test to see how many sprites can be displayed over a background. The Multiplexing manager routine prevents crashes or the graphics becoming corrupted if too many sprites are displayed in the same horizontal zone.

Link to comment
Share on other sites

I am hoping to get one of the games figured out by the end of the year. We make a little progress everyday experimenting with programming, setting up graphics, new subroutines. I am able to bring over some programming from the games 8-bit counter part involving opponent AI and movements. Also setting up a character/tile mapped screen is similar to what I did on the 8-bit also. What I am currently doing is keeping Delta Space Arena as the first game I develop something for, and if the other games I am working on can use new programming, I copy and paste stuff over.

 

Now Video61 has an EPROM burner that is attached to an 800XL and need the 6 byte binary header. Anyone know what the start address will be and what I would need to change with a .A78 file to burn a game onto an EPROM?

Link to comment
Share on other sites

Now Video61 has an EPROM burner that is attached to an 800XL and need the 6 byte binary header. Anyone know what the start address will be and what I would need to change with a .A78 file to burn a game onto an EPROM?

 

For a 32k game, the start address is 0x8000/32768. If this is based on 7800basic, then you just need to burn the BIN file it also produces. The A78 file is identical to the BIN file except it has a 128 byte header tacked on the front, which provides hints to emulators as to what cart hardware (and other hardware) should be emulated.

 

Not sure about this 6 byte binary header for the 800XL.

Link to comment
Share on other sites

I put together an animated demo of multi-plexing animated sprites and moving objects in more than 8 directions. This is a non-playable demo to show everyone what I am developing for the games.

 

There are 2 demos, One with only 24 sprites moving around, Two with 32 sprites moving around. I also notice there is hardly any flickering of sprites needing to be turned off if too many are inside one horizontal zone. I believe the 7800 can get as many as 10 on a single line vs 2 player/missile sprites on the 2600 vs 4 player/missile sprites on the 8-bit/5200. They are also multi-colored and can have various width without stretching them 2x or 4x width. The 5200/8-bit can do mulicolored sprites at the cost of overlaying 2 player sprites on top of each other to make a 3rd color that is the OR value of the 2 player color registers.

 

I am aware there is some random flickering sprite parts with trying to move 32 objects around. Probably some sore of limit with the Maria DMA. Most games do not need that many objects moving around.

Animated_Moving_Demo_A78.zip

Link to comment
Share on other sites

I am considering Tempest game as a future project, but want to do some of the smaller and simpler games first. Doing Tempest on the 7800 and drawing the webs is not easy due to not having bitmapped graphics modes and line drawing. We can look into constructing webs with a tile/character mapped screen, it may end up with some gaps between the web edges and the lane separators, but at least it will be something.

 

I have quickly made up a PNG file that can make a font to draw lines at many different angles.

post-14332-0-03169500-1512215669_thumb.png

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

I am trying something similar to what has been done on the 8-bit that is checking how many objects that are in each horizontal zone. If more than like 8 are present, 1 or more will start "sitting out" each frame. Which ones sit out rotates. If 11 objects are in the zone, objects numbered 3,5,8 will sit out one frame, next frame be like 1,4,7, etc. This causes a flickering effect, but it should not be as noticeable as it was on the 8-bit since the 7800 allows more to be put in each horizontal zone. Plus the objects will be moving that also draws less attention to the flickering. Also many of my games had 16 sprites at the most on the screen. Delta Space Arena is an exception where it was having 20 sprites on screen at once for the 8-bit, and the 7800 is being tested with 24 sprites. Looking to do a little extra with the 7800 version.

 

Some games can have sprites going anywhere on the screen, and to have extra logic to check if too many are in a zone can be tedious.

 

There are a few games in my inventory I still need to figure out how set up on the 7800. Like Surround'Em and Tempest Elite. Those used bitmapped line drawing modes (graphics 7, graphics 15) on the 8-bit. These need 8k RAM or more. Bitmap modes in RAM means you can set any bit/nibble for the pixel to a desired color anywhere on the screen. 7800 4K RAM is a problem I need to work around. One ideal is make a character set with many different line angles in the character tiles. Another ideal is make a low res mode with characters to simulate pixels on or off.

 

Mmmm. Tempest Elite....on the 5200.... Like with A8 Space Harrier, do you need a 1MB ROM first in order to make the conversion possible?

Link to comment
Share on other sites

Thanks for the update videos, I'll be following this thread like a hawk to observe the progress on Venture. :) It does make me curious how the programmer/s of Robotron 2084 for the 7800 managed to cram dozens upon dozens of sprites on screen at once with no flicker.

 

 

Because GCC did the port *and* created the 7800.

Link to comment
Share on other sites

 

Mmmm. Tempest Elite....on the 5200.... Like with A8 Space Harrier, do you need a 1MB ROM first in order to make the conversion possible?

I never ported Tempest to the 5200 since someone already is doing it. I am looking to see what I can do with existing resources on the 7800 and keeping it to a 128K ROM.

Link to comment
Share on other sites

I never ported Tempest to the 5200 since someone already is doing it. I am looking to see what I can do with existing resources on the 7800 and keeping it to a 128K ROM.

 

 

Really??? Is that an official answer that *someone* IS actively porting it to the 5200 right as we speak? I'd love to report that back to the 5200 group on Facebook if that's 100 mo-cent correct.

 

I hope the port fully uses the CX53 Trak-Ball Controller like Keithen Hayenga's 5200 Tempest did. If so, Dan Kramer will be over the moon about that.

 

And...there are those on the 5200 that would also love if the A8 option to use a 2600 Driving Controller was preserved in the port. Sure, an adapter is necessary but those MasterPlay clones are popular in 5200Land.

Link to comment
Share on other sites

The 5200 Tempest is not even my program. Some people took the original program that Atari started many years ago and managed to finish it. I holding off on porting Tempest Xtreme/Tempest Elite because the 5200 also has restricted RAM availability. We are also waiting word on larger bank switching cartridges before making a decision to go forward.

 

Anyway, I am not sure the 2600 Driving Controller can be hooked up to the 5200, because the 5200 controller port has a different number of pins and use 2 analog values for the position of the joystick. The 7800 can do Paddles, Driving Controller, and Trackball just like the 8-bit.

Link to comment
Share on other sites

Here is a work in progress pics from Delta Space Arena development. I am working on the sections that do "Procedural Screen Set Ups" that set up the screen from a series of instructions. Like draw a horizontal like at (4,8) of 5 characters with character #10. Can compact many screens into a short piece of data around 30 to 40 bytes instead of trying to save screens that are over 1000 bytes. Thats how I get hundreds of screens stored on cartridges 16K to 128K in size.

 

Data looks like this....

ARENA03 
   .byte HLN+SET,10,16,9,10, HLN,16,15,10, VLN+SET,2,15,10,5, VLN,25,10,5, CHR,15,9,1, CHR,25,9,1, CHR,15,15,1, CHR,25,15,1, CHR,15,12,3, CHR,25,12,3,   0
ARENA04 
   .byte HLN+SET,10,10,7,5, HLN,10,9,21, HLN,10,15,21, HLN,10,17,5,  HLN,26,7,5, HLN,26,17,5,  VLN+SET,2,15,8,9,  VLN,25,8,9
   .byte CHR,15,12,3, CHR,25,12,3, CHR,10,8,3, CHR,10,16,3, CHR,30,8,3, CHR,30,16,3, CHR,10,7,1, CHR,15,7,1,  CHR,25,7,1, CHR,30,7,1
   .byte CHR,10,9,1, CHR,15,9,1,  CHR,25,9,1, CHR,30,9,1, CHR,10,15,1, CHR,15,15,1,  CHR,25,15,1, CHR,30,15,1
   .byte CHR,10,17,1, CHR,15,17,1,  CHR,25,17,1, CHR,30,17,1, 0

post-14332-0-61478500-1512581862.jpg

post-14332-0-36614800-1512581869.jpg

Link to comment
Share on other sites

That 5200 Tempest is made by different programmers and I have no connection to. Sold through the AtariAge store, not from Video61 and AtariSales. Tempest Xtreme and Tempest Elite was constructed from scratch. I have not even started anything for Tempest 7800 yet.

Link to comment
Share on other sites

I'd like to know more about the 7800 Venture port. any other screenshots for that besides the title screen (which looks great).

I just started porting the data Venture programming needs to draw each screen. Currently I am working on the procedure to draw tile (aka graphic characters) based screens that are made up of little images. Each image as a value, (0 being blank space, 1 red square, 2 brick wall, 3 lower rectangle, etc) and this procedure draws screens based on data. [Draw a series of the brick image starting at 5,5 and make it 5 images wide] I have used this frequently on the 8-bit and working on a standardized way of doing it on the 7800 across several games. Putt 18 Miniature Golf also draws the screens for each hole using this method also.

  • Like 1
Link to comment
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.
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...