Jump to content
IGNORED

Looking for 7800 programmer to assist porting a game


peteym5

Recommended Posts

I am looking to port either AMOKBOTS or LASERBLAST X over to the 7800. I am tied up on many projects and only was just able to glance at a few 7800 samples. I think with the original assembly source code, it is possible to re-use portions of it for 7800 games. Just need to replace the background drawing, sprite positioning and sound. I am looking to work with someone privately with porting one game, and we can share royalties. I can vouch for Video 61 as being good at honoring royalty payments. As for how much we can make, depends on how good of a job is done, and # of people still having a real 7800 system. I am going to need to go through the threads and see who are real 7800 programmers on here and contact them myself.

Link to comment
Share on other sites

A curious proposition. For those wondering about the aforementioned games, videos are posted below.

 

Amok Bots:

https://www.youtube.com/watch?v=13P3woJ_Tts

 

LaserBlast X:

https://www.youtube.com/watch?v=FlqrIvAJZ54

 

 

Hope all those reached out to and contacted directly aren't any fake 7800 programmers that are confused for the "real" ones.

 

Here's a comparison picture to help:

 

 

 

post-18-0-01157600-1508197672.png

 

 

  • Like 7
Link to comment
Share on other sites

Much of the work for the games had already been done. I am trying to figure out this display list list thing and do know it works different from the Atari 8-bit/5200 display list. Most of the games I made use Antic 4 screens, so the first thing I need to establish is how to set up a character (tile) mapped screen properly. I know this also controls the sprites, so it would also replace the player/missile sections. I read some documentation a few months ago. Maybe if I can get some help to get these things started, I can continue on and finish what I need to do from there.

 

The reason I am working with Video61 from AtariSales and not with AtariAge, is because I have a good working relationship with Lance. Video61 has a large stock of cartridge shells, boards, and parts for the Atari consoles. Like hundreds of empty shells and blank boards. Wouldn't it be night to put some games on them?

 

Sorry if I used the term "real" programs where I should be saying experienced people who had been doing this stuff for awhile at the machine language level.

 

Wouldn't Amokbots look great on the 7800 with multicolored graphics and sprites that do not need to flicker. Image what a LaserBlast game could look like? I chose these games to start with probably because they will be the easiest to do.

Edited by peteym5
Link to comment
Share on other sites

I am not sure what is going on with Blue, Green, or whatever color people want to be on here, I do not discriminate. I would like to keep things relevant to what I am doing. First thing I am doing is making up this "Atari 7800 Equates.ASM" file that can be included with any 7800 assembly program. These games had already been done in assembly for the 8-bit using MADS ASSEMBLER, so they will stay as assembly. I see I can re-use a portion of the code from the 8-bit/5200 versions of the game. I am looking through documentation and pieces of source codes to help me figure out what is going on.

 

Now I know the 7800/Maria can put 8 multicolored sprites on screen at once, drop down to 7 if you want to have background/character mode. Something we have been doing on the 8-bit/5200 to get around only have 4 player/missiles for sprites is a process call multiplexing, that shows sprites in different positions on screen in alternate frames. Flickers only if more than 5 are on a same line and I got this up to doing 16 sprites on screen at once. Uses a combination of DLIs and rotating which sprites get draw first. My theory on the 7800 is that it can be done with a series of Display List entries, and since we can go to 7 sprites on a single line, it won't flicker as bad. Probably get 16 sprites moving around with no flicker.

 

 

atari 7800 equates.zip

Link to comment
Share on other sites

I would suggest looking at RevEng's 7800basic tool. It really is intuitive.

 

In theory you can have 8 sprites per zone but there are also other considerations such as DMA. If you keep the sprites in 160A mode you get more overhead on DMA. 160B mode allows 12 colors per sprite but eats up a lot of DMA so that they might not all get displayed.

  • Like 1
Link to comment
Share on other sites

I am not sure what is going on with Blue, Green, or whatever color people want to be on here, I do not discriminate. I would like to keep things relevant to what I am doing. First thing I am doing is making up this "Atari 7800 Equates.ASM" file that can be included with any 7800 assembly program. These games had already been done in assembly for the 8-bit using MADS ASSEMBLER, so they will stay as assembly. I see I can re-use a portion of the code from the 8-bit/5200 versions of the game. I am looking through documentation and pieces of source codes to help me figure out what is going on.

Unlike the 5200 / 8-bit computers, the 7800 is completely alien to the 8-bits. Sure it uses the same 6502 CPU architecture, but that is the only component both consoles share. You cannot simply copy ASM code from one console to another and expect that to translate when the display hardware, cart/ram bus, controller i/o, sound generation, register locations, etc are entirely different. It would be almost as much work to convert the existing game from 5200 / 8-bits to 7800 as it would be to start a brand new effort from scratch.

 

And this is coming from someone who has zero programming knowledge but understands the nuts and bolts of gaming hardware. Ask a programmer and they'll probably tell you to start over from scratch. You may be able to reuse some graphics and other assets, if you're lucky, but will get better results redoing everything with the new console's limitations in mind.

Link to comment
Share on other sites

I had thought about that. I know the 7800 basic can compile asm routines, so I can re-use some stuff that deals with AI controlling the opponents you face on the screen. Some cases I would need to get over 8 sprites on the screen and not sure if the 7800 basic is set up to do that. It takes a very sophisticated piece of ML code to multiplex the player/missile graphics on the 5200 / 8-bit. What it does, the sprites are erased and redrawn every frame. Starts with a different sprite number each frame, so if more than the number of sprites allowed on the line need to appear, one or more will not show in that frame. They will appear in the next frame, but others will not. They will flicker. The more sprites the hardware allow, the less flickering. This has done with the 2600, NES, Commodore 64, Sega Master System. I think the NES has an automated multiplexer in the hardware.

 

I know I can probably re-use my process of procedural drawing the back grounds in character mode. 7800 can be set up to have a 40 column screen with 32 character font. This is data instructions that draws screens, draws vertical lines, horizontal lines, diagonal lines, rectangles, triangles, small images, etc. I am able to compact a 1K screen down to under 100 bytes. That is how I am able to get over 30 different screens stored on a 16K cartridge without resorting to compression. That reminds me, a program like Inflate would work on the 7800 that just decompresses data into RAM.

Link to comment
Share on other sites

Some cases I would need to get over 8 sprites on the screen and not sure if the 7800 basic is set up to do that.

Are over 8 sprites possible under 7800basic?

 

https://www.youtube.com/watch?v=d1nWjIx1QeA

 

How about 40 non-flickering moving sprites? ;)

 

Source: http://atariage.com/forums/topic/222638-7800basic-beta-the-release-thread/page-24?do=findComment&comment=3742038

  • Like 3
Link to comment
Share on other sites

Are over 8 sprites possible under 7800basic?

 

https://www.youtube.com/watch?v=d1nWjIx1QeA

 

How about 40 non-flickering moving sprites? ;)

 

Source: http://atariage.com/forums/topic/222638-7800basic-beta-the-release-thread/page-24?do=findComment&comment=3742038

Does the 7800 Basic have this double buffering itself or is it something I need to write my own DLI routine for? Is the source posted there?

Link to comment
Share on other sites

And as someone who has programmed for both the 2600 & 7800, I agree with Kosmic Stardust - start from scratch.

 

Have a look at your A8 code - how much of it is concerned with setting up the ANTIC display lists? Throw that out; MARIA display lists are radically different from ANTIC display lists. Next, how much of the remaining code is designed to make the code you just threw out easier / better? Throw that out too, you'll need to redo that code to make the code to set up the MARIA display lists easier . Sound? Throw it out, you only have a TIA (2 channels & half the frequency resolution). Controllers? Throw it out - different controllers and digital instead of analog. Graphics data? Throw it out; MARIA does 4+ colors per pixel. Collision detection? Throw it out, the 7800 doesn't have collision detection registers.

 

Now, take a look, how much code is left? Is any of it worth saving or are you better off starting off with a clean page (and maybe even using 7800 Basic).

 

At one point I did a write-up on the 7800 versus the 5200 : https://sites.google.com/site/atari7800wiki/atari-5200 which might help you as a starting point.

Edited by EricBall
  • Like 6
Link to comment
Share on other sites

Does the 7800 Basic have this double buffering itself or is it something I need to write my own DLI routine for? Is the source posted there?

 

You would have to enable double buffering in 7800Basic, but otherwise it's something built in. There's a sample program included with the 7800Basic zip that shows how to use it.

Link to comment
Share on other sites

And as someone who has programmed for both the 2600 & 7800 programmer I agree with Kosmic Stardust - start from scratch.

 

Have a look at your A8 code - how much of it is concerned with setting up the ANTIC display lists? Throw that out; MARIA display lists are radically different from ANTIC display lists. Next, how much of the remaining code is designed to make the code you just threw out easier / better? Throw that out too, you'll need to redo that code to make the code to set up the MARIA display lists easier . Sound? Throw it out, you only have a TIA (2 channels & half the frequency resolution). Controllers? Throw it out - different controllers and digital instead of analog. Graphics data? Throw it out; MARIA does 4+ colors per pixel. Collision detection? Throw it out, the 7800 doesn't have collision detection registers.

 

Now, take a look, how much code is left? Is any of it worth saving or are you better off starting off with a clean page (and maybe even using 7800 Basic).

 

At one point I did a write-up on the 7800 versus the 5200 : https://sites.google.com/site/atari7800wiki/atari-5200which might help you as a starting point.

 

Well you can still write using POKEY sound, but it will require an external POKEY chip installed on the cart. Not sure if you want to go that way or not.

Link to comment
Share on other sites

Laser Blast and HeliCommander uses parallax scrolling with a 3D ground scrolling effect. Not sure how extensive that can be done for the 7800.

 

What I decided to do is do some ports of the bitmaps that I used to make the sprites for the 8-bit, rearrange them so that 7800 graphics converter can translate them to data it uses for graphics. It will keep to the same sprite indexes used for its 8-bit counterpart so we can figure out what sprite belongs to what object on the screen. A person known as Kamakazi20012 will be doing the 7800 basic programming sections. You find him on the Atari.IO forums and does not come over here often. He does a lot of work with Video61, so the cartridges will be available through Atarisales.com. I will be doing some peripheral assembly programming and graphic translations so I can be more focused on building more 8-bit games.

 

The image is for Amokbots, it is a work in progress that we will be making into 3 color sprites. The sprites are set up at 12 pixels wide, so it allows slightly more room than the 8-bit 8 pixel with monocolored sprites. Allows for a few pixels to be added if needed to make the object images look better.

 

The games I have in my inventory that uses 3 color sprites are HeliCommander and Secretum Labyrinth. Use the 8-bit/5200 trick of overlaying 2 players to make a 3rd color that is an "OR" value of the 2 other sprites colors. I limited their use to 8 on screen sprites with multiplexing to reduce their flickering. I know the 7800 can have many more.

 

Many of these games use a highly compressed data to store the information on how to draw each screen and we are going to need to figure out how to use this process for 7800 character mode backgrounds.

 

post-14332-0-41783200-1508544237.jpg

Edited by peteym5
Link to comment
Share on other sites

I thought about how Super IRG, going between 2 fonts each TV frame, will work with the 7800. It should work for the 160 pixel wide modes. Those 320 pixel wide modes are weird on how they are set up, can those be used for a Super IRG like trick also?

 

I selected a few games that may be ported to the 7800. Including Amok Bots, Delta Space Arena, and Laser Blast X. Favoring games that not really been done much 7800. I am skipping over Megaoids and Helicommander because the 7800 already has decent ports of Asteroids and Choplifter.

 

Question for people that already had produced games on these cartridges, either selling through Albert, on on their own. What would be a rough estimate on total number of cartridges I can expect to sell per game? From working with the 8-bit games selling through Atarisales, I can say the average is around 30 with the smaller games. Tempest and Venture games sold over 50. Not sure how many people have actual 7800 consoles in this world. The ideal with doing sever other games that fit onto a 16K cartridges was to offer people a choice. People may like space shooter games, military war games, puzzles, or adventure.

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