Jump to content
IGNORED

Morf [WIP]


Lavalamp

Recommended Posts

Hi guys, I'm working on a 7800 platformer called Morf, but hitting a few issues maybe you can point me in the right direction.  Having trouble with sprites inverting their colors

 

Morf_Screen.thumb.png.a5048f0ca366b294b471f0f5a9b6e01b.png

 

In the above image:

 

- The main character Morf is inverted, green/black

- The second tile set should be using a blue color palette for the water at the bottom of the screen.

- Recently for no obvious reason the sprites break up when moving vertically like the drip from the pipe below.

 

morf_drip.PNG.d221723735565861c367e93f1d143828.PNG

 

Also you can see the left moving sprite has the correct palette.

 

Any help or advise would be awesome

 

?

  • Like 12
Link to comment
Share on other sites

That does look fun, I'm eager to see how it develops. For my answers I'm going to assume you're using 7800BASIC.

 

1 hour ago, Lavalamp said:

The main character Morf is inverted, green/black

When you import graphics from an image 7800BASIC doesn't know what colours are used, rather it sees that some of the pixels use the first colour of the palette, some the second, and so on. Almost no graphics editors let you specify which colour is in which index so when you draw different frames for your characters there's no guarantee that the same colours will be in the same places.

To get around this you can swap around the indices that the graphics are mapped when imported as part of the inc- statements. I believe you can also include an extra row under your graphics with the colours in a particular order to do this though I've not tried it myself. The sample graphics show this.

 

1 hour ago, Lavalamp said:

The second tile set should be using a blue color palette for the water at the bottom of the screen.

If you're using 'plotmap' that will only draw using the palette set in the parameters. If you're using 'plotmapfile' that will essentially plot multiple maps each with a separate palette and it knows which palette to use by a parameter in the incgraphic statement. The idea is that you import a tileset for one palette, and another tileset for another palette, etc, then when it draws a tile in that range it knows to do it with the right colours.

Though it wouldn't be a problem in your example you should be aware to avoid situations where the palette needs changing several times on a line because in the background it does this with multiple objects and you can quickly hit the limit of objects per zone.

 

2 hours ago, Lavalamp said:

Recently for no obvious reason the sprites break up when moving vertically like the drip from the pipe below.

This could be a couple of things, but all I know to advise is to make sure you pad out even small graphics to be the height of your zone size, and maybe try changing the order of how things are imported.

I believe it might be related to the bit below mentioned on the guide.

Quote

Note: For smooth glitch-free vertical movement with sprites, sprite graphics need to be placed into memory between $9000 and $EFFF. This is due to Maria not implementing the DMA hole feature at memory locations below $8000.

 

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

23 hours ago, SmittyB said:

If you're using 'plotmap' that will only draw using the palette set in the parameters. If you're using 'plotmapfile'

Thanks, this helped, made a little progress on colors. Some have come right and others have now changed. T

he sprites still break up on vertical movement, will look into the memory location issue once I have the palettes sorted.

 

1467903359_Annotation2020-09-13092604.thumb.png.444343d777efac17fd842d1d4936066a.png

  • Like 1
Link to comment
Share on other sites

23 hours ago, Lavalamp said:

Thanks, this helped, made a little progress on colors. Some have come right and others have now changed. T

he sprites still break up on vertical movement, will look into the memory location issue once I have the palettes sorted.

 

1467903359_Annotation2020-09-13092604.thumb.png.444343d777efac17fd842d1d4936066a.png

Just tested this a bit in A7800. The water/acid drips...do NOT break up and look really nice so this might be something your emulator is doing? Also on A7800 at least, the score is dark red and difficult to see against the black background. It isn't white as can be seen in your screenshots. Last, is the ladders in the water are also barely visible in emulation. So while I've not tried to put this on actual hardware yet, My guess is that the score and ladders in the water will be nearly impossible to actually see. So the number font might need to be made fatter and the ladder colors not change when under the water itself.

 

 

  • Like 1
Link to comment
Share on other sites

2 hours ago, -^CrossBow^- said:

Just tested this a bit in A7800. The water/acid drips...do NOT break up and look really nice so this might be something your emulator is doing? Also on A7800 at least, the score is dark red and difficult to see against the black background. It isn't white as can be seen in your screenshots. Last, is the ladders in the water are also barely visible in emulation. So while I've not tried to put this on actual hardware yet, My guess is that the score and ladders in the water will be nearly impossible to actually see. So the number font might need to be made fatter and the ladder colors not change when under the water itself.

 

 

Ahh, I am using ProSystem, so I should be using A7800 emulator? I havent tried to run it on my 7800, need to source EPROM for my burner and a I assume a doner cart? Is there a better way? Cheers.

Link to comment
Share on other sites

1 hour ago, Lavalamp said:

Ahh, I am using ProSystem, so I should be using A7800 emulator? I havent tried to run it on my 7800, need to source EPROM for my burner and a I assume a doner cart? Is there a better way? Cheers.

A7800 is much closer to accurate hardware emulation than ProSystem and comes highly recommended.  Extra bonus, it inherits a built-in debugger from MAME. 

 

However, if you are looking for something with an interface closer to ProSystem but with much better console emulation, BupSystem is next in line.

  • Like 2
Link to comment
Share on other sites

3 hours ago, gambler172 said:

Hi Lav

thanks for the file.....looks really good.What is the goal in the game?

greetings Walter

Good question, this level was just to see what I could do with 7800 Basic, and so far so good, I need to sit down and map out the levels and goal, I would like to add a light element, but not sure how to do this, my original concept was to have the map dark with lights here and there.

Link to comment
Share on other sites

19 hours ago, Trebor said:

A7800 is much closer to accurate hardware emulation than ProSystem and comes highly recommended.  Extra bonus, it inherits a built-in debugger from MAME. 

 

However, if you are looking for something with an interface closer to ProSystem but with much better console emulation, BupSystem is next in line.

Your were 100% correct works perfectly in A7800 emulator, this appears a lot harder to setup cant just double click the .A78 file to run it, it has to sit in a specific folder then manually select it to run. So I might use that one occasionally to verify things. Haven't tried BubSystem yet...

  • Like 1
Link to comment
Share on other sites

14 minutes ago, Lavalamp said:

Your were 100% correct works perfectly in A7800 emulator, this appears a lot harder to setup cant just double click the .A78 file to run it, it has to sit in a specific folder then manually select it to run. So I might use that one occasionally to verify things. Haven't tried BubSystem yet...

BupSystem has a very similar interface of ProSystem, and miles ahead of it in terms of hardware accuracy.  If A7800 interface is not you cup of tea, BupSystem will provide the familiarity accustomed to from ProSystem.

Link to comment
Share on other sites

11 hours ago, Trebor said:

BupSystem has a very similar interface of ProSystem, and miles ahead of it in terms of hardware accuracy.  If A7800 interface is not you cup of tea, BupSystem will provide the familiarity accustomed to from ProSystem.

This was solved by using Atari Dev Studio for VS by Mksmith

Edited by Lavalamp
  • Like 2
Link to comment
Share on other sites

  • 1 month later...

What's the best way to handle multiple tilemaps for multiple levels in 7800Basic? I seem to be having issues when trying to plot the second level tilemap it seems to be printing a bout a 3rd of the previous map in the bottom half. Is there an example I can look at?

Link to comment
Share on other sites

That sounds to me like you might be drawing the new map over the top of the old one, and because that takes a lot of time to do it's having to stop after a certain point so the previous map shows instead.

 

If you're using savescreen / restorescreen to avoid plotting the map each frame you'll need to clearscreen, set up the new map, savescreen, then carry on as normal.

  • Like 1
Link to comment
Share on other sites

11 hours ago, SmittyB said:

That sounds to me like you might be drawing the new map over the top of the old one, and because that takes a lot of time to do it's having to stop after a certain point so the previous map shows instead.

 

If you're using savescreen / restorescreen to avoid plotting the map each frame you'll need to clearscreen, set up the new map, savescreen, then carry on as normal.

Thanks fixed the problem!

  • Like 2
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...