Jump to content
mariuszw

New Atari 8bit port WIP: Saboteur!

Recommended Posts

Hi everybody,

 

Here comes new Atari 8bit game port: Saboteur!

 

Game is ported (as usual) from C64. Game is playable now, although since it is very early version (literally two evenings of hacking) there are few issues:

- game is little too fast on Atari (first time no optimization required ;) )

- hall of fame and difficulty selection screen is missing (code for these is located in $d000-$dfff on C64, will need to relocate it)

- color is missing (need to create some smart mapping between C64 room data and Atari PM/G)

- sound and sound effects are missing

 

Anyway, enjoy the game!

 

post-42656-0-99260700-1447546637_thumb.pngpost-42656-0-91091500-1447546638_thumb.pngpost-42656-0-85766200-1447546639_thumb.pngpost-42656-0-84019000-1447546640_thumb.png

sb.obx

Share this post


Link to post
Share on other sites

Wow, you are releasing so many games, I'm convinced that you have a Perl script which auto-converts these games. And then to get the glory, you release one game every 2 months! You are amazing! I will try this out now...

Share this post


Link to post
Share on other sites

Just sent you the questionnaire.. will have to update it ASAP! ;-)

 

- Y -

 

Hi everybody,

 

Here comes new Atari 8bit game port: Saboteur!

 

Game is ported (as usual) from C64. Game is playable now, although since it is very early version (literally two evenings of hacking) there are few issues:

- game is little too fast on Atari (first time no optimization required ;) )

- hall of fame and difficulty selection screen is missing (code for these is located in $d000-$dfff on C64, will need to relocate it)

- color is missing (need to create some smart mapping between C64 room data and Atari PM/G)

- sound and sound effects are missing

 

Anyway, enjoy the game!

 

attachicon.gifsb1.pngattachicon.gifsb2.pngattachicon.gifsb3.pngattachicon.gifsb4.png

Share this post


Link to post
Share on other sites

I've played it and it's good to see a game with a large character to control. You don't see that often in A8 games.

 

As for future minor improvements, yes, slow it down...

 

Make it flicker less... (double buffering if memory allows)

 

Change the border characters that go around the edge. They could look more like a picture frame.

 

Make it easier to go up and down ladders.

 

PM graphics up the left and right hand side?

Share this post


Link to post
Share on other sites

As for future minor improvements, yes, slow it down...

 

Definitely. The problem is that in game code there is fixed delay loop instead of synchronizing to vblank. But I will find something.

 

Make it flicker less... (double buffering if memory allows)

 

It is already double-buffered. The version I posted had this double buffering implemented not correctly, hence the flickering. I attached version with buffer switching improved, so the flickering is less noticeable.

 

Change the border characters that go around the edge. They could look more like a picture frame.

 

Not sure what you mean here. Can you please explain?

 

Make it easier to go up and down ladders.

 

I will take a look it. It looks that it easy to go up ladder when you are at the bottom end of the ladder, but it is not possible to get the ladder in the middle. Maybe this is how original game was deisgned?

 

PM graphics up the left and right hand side?

 

I think there should PM overlays on whole screen area. This way coloring similar to C64 should be possible. Will need to think how to implement that and convert C64 color map into Atari PMG colors.

 

Mariusz.

sb.obx

Share this post


Link to post
Share on other sites

How much memory is free for improvements?

 

Not much. Original game uses wole 64KB RAM on C64. I saved 4KB by proper screen organization (32bytes screen vs. 40bytes on C64 times two buffers), but will need to use 2KB for difficulty selection screen and hall of fame screen.

 

At the moment I think I will end up with 128KB requirement to implement PMG overlays, so on in the end there will be quite a lot of memory available.

Share this post


Link to post
Share on other sites

Ok, slowed it down. Turned out that game has delay loop with number iterations controlled per-room. Changed it to make 50% more interations, and it seems fine on Atari now.

 

[Edit] Posted new version, as old one had a bug which resulted in massive slowdown in room with guard and dog.

sb.obx

Edited by mariuszw

Share this post


Link to post
Share on other sites

Hi Marius, I've not had any free time since the start of the year so I'm just catching up with all of your ports. Very well done! it's excellent to see The Great Escape, Fairlight, Bobby Bearing and now Saboteur arrive on the A8. Saboteur is something I looked at also a few years ago being another game I remember well from the Spectrum. I had an idea planned at the time to write a simple script for the rooms which generated the gameplay section of the dlis and the associated pmg overlays for minimal memory usage. A quick test looking at the pmg usage for the overlays is attached.

sab_test.xex

Share this post


Link to post
Share on other sites
- color is missing (need to create some smart mapping between C64 room data and Atari PM/G)

 

I suggest using the PAL mixing scheme I presented here: http://atariage.com/forums/topic/180988-deathchase/page-2?do=findComment&comment=2310044

 

This allows 8 colour impressions (PMG not set, PMG even, PMG odd, PMG both and all variants with or without pixels set) on the 8x8 grid without fiddling

around with too exclusive PMG data setups (use like kind of colour ram). Drawback is the change of 4 PMG colour registers per scan line, but since you have CPU time left, this shouldn't be a problem.

 

Here an example (red and green lines mix to brownish ones, and red and blue to purple):

post-7778-0-34813300-1447587893_thumb.png

Saboteur.xex

Share this post


Link to post
Share on other sites

In this game all characters and elements are so big, that I would consider changing graphics mode to 160x200, gaining some colors. You won't lose to many details - of course it's just an option.

 

Of course panel can remain in hires.

Edited by wieczor

Share this post


Link to post
Share on other sites

Great job!

But definitely unfinnished ;)

Hero's animation is still not perfect, flickering is visible from time to time.

And please consider to improve a fire detection. Now I can easily take a thing and throw it immediately with one fire's press.

Share this post


Link to post
Share on other sites

Hi Marius, I've not had any free time since the start of the year so I'm just catching up with all of your ports. Very well done! it's excellent to see The Great Escape, Fairlight, Bobby Bearing and now Saboteur arrive on the A8. Saboteur is something I looked at also a few years ago being another game I remember well from the Spectrum. I had an idea planned at the time to write a simple script for the rooms which generated the gameplay section of the dlis and the associated pmg overlays for minimal memory usage. A quick test looking at the pmg usage for the overlays is attached.

 

Hi Tezz, I am looking forward to play Manic Miner on Atari :)

 

From what I can see, your example was generated in G2F. Can you send me source .g2f file for it?

 

Mariusz.

Share this post


Link to post
Share on other sites

 

I suggest using the PAL mixing scheme I presented here: http://atariage.com/forums/topic/180988-deathchase/page-2?do=findComment&comment=2310044

 

This allows 8 colour impressions (PMG not set, PMG even, PMG odd, PMG both and all variants with or without pixels set) on the 8x8 grid without fiddling

around with too exclusive PMG data setups (use like kind of colour ram). Drawback is the change of 4 PMG colour registers per scan line, but since you have CPU time left, this shouldn't be a problem.

 

Here an example (red and green lines mix to brownish ones, and red and blue to purple):

attachicon.gifSaboteur.png

 

That looks nice, although it may be too cpu intensive. Raster program is running with every display line, and this may leave too less cpu for actual game, especially on NTSC system. Anyway, was it done in G2F? If yes, can I get source .g2f file?

 

Mariusz.

Share this post


Link to post
Share on other sites

Hi Tezz, I am looking forward to play Manic Miner on Atari :)

 

From what I can see, your example was generated in G2F. Can you send me source .g2f file for it?

 

Mariusz.

Hi Marius, yes that was a quick g2f example (except for a small manual dli edit). G2F is a helpful tool to use for planning when you're first thinking about the initial pmg use but I would then write what's needed for the game myself. I have some free time tonight so I started writing some notes on generating the dlist, dli and pmg data for each room based on a list of criteria. I will need to look at the map order that the game uses to implement that in a useable way but for now I'm refering to the map of the game from WorldofSpectrum. Do you know how many rooms there are in the game?

Share this post


Link to post
Share on other sites

If yes, can I get source .g2f file?

Saboteur.g2f.zip

 

Edit: Missiles are free BTW for other stuff - and to save some cycles, the status region and head line could be created with 'static' PMGs without DLIs...

Edited by Irgendwer

Share this post


Link to post
Share on other sites

Not sure what you mean here. Can you please explain?

 

If we look at the main screen, there is 1 character used repeatedly around the top, bottom, left and right (and in parts of the inner frame). This could look better with an inverse space all the way around the outside. And then on the corners, it could be smoothed like the corner of a rounded picture frame. I think that this might look better than using the one character.

Share this post


Link to post
Share on other sites

Hi Marius, yes that was a quick g2f example (except for a small manual dli edit). G2F is a helpful tool to use for planning when you're first thinking about the initial pmg use but I would then write what's needed for the game myself. I have some free time tonight so I started writing some notes on generating the dlist, dli and pmg data for each room based on a list of criteria. I will need to look at the map order that the game uses to implement that in a useable way but for now I'm refering to the map of the game from WorldofSpectrum. Do you know how many rooms there are in the game?

 

If I get the C64 code right, there is 119 rooms in the game (at least tables with room parameters appear to have 119 entries).

Share this post


Link to post
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.

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