Jump to content
IGNORED

7800basic beta, the release thread


RevEng

Recommended Posts

Someday I will.. someday before I die I swear I will make an Atari game.. heres hoping it dont totally blow!!

Without this basic 7800 program you have to be a wizard. Thank you!! Its amazing somebody stepped up to the plate!

Edited by Jinks
  • Like 3
Link to comment
Share on other sites

I'll definitely be using 7800 basic as well. I had wanted to do something on the NES, but that means raw 6502 Assembly. Why do that when I could use what I learned from batariBasic with 7800basic instead? I'm excited!

 

Won't be able to start for a while, though. I have some other projects to complete and then I want to make a full-fledged 2600 game before moving on to the 7800, but I'm looking forward to seeing what 7800basic and updated releases of the tool bring!

  • Like 1
Link to comment
Share on other sites

Messing with the ramcharmap bas when...

 

(7) ERROR, the bitdepth '4' of gfx\tileset_ramchars.png doesn't match the requested display mode.

 

This happens if I have an extended tileset which doesn't support 160A. changing incgraphic gfx/tileset_ramchars.png 160A to incgraphic gfx/tileset_ramchars.png 160B solves the problem but i'm stuck with this:

 

9B60fT0.png

 

Yea.... Included tileset below for more info.

 

post-32093-0-17057600-1401507427.png

Link to comment
Share on other sites

Well, the reason it doesn't support 160a is because it has 6 colors.

The alternate mode for 160a is 160c. If you import 160b graphics and try to display them in 160a they won't display properly.

So either reduce the colors in the image and use 160a, or use 160c for the incgraphic command.

  • Like 2
Link to comment
Share on other sites

Erp! Sorry, late night post from my cell. 160A and 160B are it for 160 modes. I was thinking of the 320 modes.

 

If you post the source I can see why the 160B mode didn't display properly.

 

Just speculating... did you actually define P#C# values for all 12 160B color indexes? If not, its likely that's the cause of the graphics not being displayed as you wanted.

Edited by RevEng
Link to comment
Share on other sites

Removing the black&white line from the tileset and one line from the code worked like a charm! It compiles now!

For the hell of it, just for fun:

i2FpsmM.png

Like RGB but actually simulated on a gaming console!

Link to comment
Share on other sites

Here. It's basically the same ramcharmap code, a few lines removed (paint block code) but unmodified in the rest.

 

http://pastebin.com/GhuhhaYp

 

Tileset (if it helps) is in attachments. The square is supposed to be char ' '.

post-32093-0-98122500-1401642474.png

Edited by BioForceApe
Link to comment
Share on other sites

So the full error is "*** (144): ERROR, alphadata character ' ' is missing from alphachars."

 

The "144" bit means the syntax error occurred on line 144.

 

Taking a look at line 144, it appears you have tab characters in the alphadata. Change those to spaces and the code compiles.

  • Like 3
Link to comment
Share on other sites

So the full error is "*** (144): ERROR, alphadata character ' ' is missing from alphachars."

 

The "144" bit means the syntax error occurred on line 144.

 

Taking a look at line 144, it appears you have tab characters in the alphadata. Change those to spaces and the code compiles.

 

Oh you, TAB button!

Link to comment
Share on other sites

There's an updated release in the first post, and as you may have noticed I also updated the thread title to make this a general release thread. (instead of just v0.1)

 

Here's the quick list of changes...

 

  • added "set mcpdevcart on" option and supporting bankswitch code
  • added "dmahole #" command, which directs following basic code to a given DMA hole
  • updated guide with information on above
  • bumped version number to v0.2.

     

The dmahole thing is a way of sticking your basic code in ROM space that would otherwise go unused.

  • Like 3
Link to comment
Share on other sites

Yes, the palette differs from the 2600 (and 5200/XL/XE non-GTIA) one, in that it is a 256 (16 hue x 16 chroma) palette as opposed to the 128 (16 hue x 8 chroma) one found on the 2600 and Atari 5200/XL/XE (when using non GTIA modes).

 

What I have found, is that it's best if you can get a PNG of the Atari 256 palette and import it into the GIMP's palette dialog ...

 

Here's a sample palette:

 

attachicon.gifatari 256.png

 

Run GIMP, then take this picture above, load it into GIMP. Then do Windows/Dockable DIalogs/Palettes, and then when the Palette window. Right click inside the palette window and select Import Palette.

 

From there, look for the radio button that says "Import from image" and select it. The do "Import". The new palette (called Untitled) is now available in GIMP. You might want to rename it to "Atari 7800 palette". The palette should read as 256 colors.

 

Next, to reduce an image to, say, 12 colors (the number of colors available in 7800's 160B mode) you want to do this with your image:

 

Image/Mode/Indexed ... and select a 13 color index. You want 13, because the 7800 in 160B mode uses 12 plus the background.

Repeat this step (Image/Mode/Indexed) only this time, select "use Custom Palette". Click on the colored palette button, and select the 7800 palette you just created.

 

Also, when you do your indexing, make sure you don't do any dithering on the image.

 

The image should now be reduced to 12 colors which match the 7800 palette. From here, you can cut, paste, and put together an image which should import perfectly into 7800basic. The only issue is, it seems that 7800Basic operates on the PAL palette instead of the NTSC palette, which means that all chromas (except for grey) get shifted one value to the right.

 

Great info. Can anyone tell me how to import the correct palette into Adobe Photoshop (I have CS3) or Corel PhotoImpact X3 (my go-to image app)? I could download Gimp but I've never used it before and there's a learning curve.

Link to comment
Share on other sites

Can anyone tell me how to import the correct palette into Adobe Photoshop (I have CS3) or Corel PhotoImpact X3 (my go-to image app)? I could download Gimp but I've never used it before and there's a learning curve.

 

Take any one of the palette files from the download in this post.

 

Rename the extension from *.pal to *.act.

 

Import should work perfectly.

 

Personally, recommending either one of the 26.2 degrees or 26.7 degrees phase shift palettes to keep in step with the documented color order for Atari consoles, which includes accounting for some system "warm-up" (auto phase shifting) after a system is calibrated.

 

If you prefer a perfectly calibrated system - ignoring any 'auto' phase shifting, then one of the 25.7 degrees phase shift palettes would be your best bet.

  • Like 1
Link to comment
Share on other sites

If you modify the sample program to use a zoneheight of 16 rather than 8, there are some more adjustments you need to make. You need to modify your level data and the plotmap command to work with 12 lines of data, rather than 24 lines. Similarly, you need to modify the y position to character position conversion from "mytemp2=heroy/16" to "mytemp2=heroy/8".

 

[edit] you can also change the memcpy lines to copy 240 bytes, rather than 480.

Link to comment
Share on other sites

cHTxBcz.png

 

That almost went well... The tiles are just one tile off from being in the right place and the character still thinks that he is reading a 24 line playfield...

 

Man this language is fishy... But it's just a beta, it will keep getting easier by version! Besides, I'm still figuring out stuff.

Edited by BioForceApe
Link to comment
Share on other sites

Did you adjust your level data so there was something visible in those 12 rows of visible characters? And did you change the mytemp2 pixel to character calculation code? This morning I did the things I suggested to your posted code and it worked fine on my end.

 

Regarding the language being terrible... I'm sorry you feel that way. So far I haven't seen any undocumented behaviour in your posts, its just that you're just telling it to do things that are contrary to how you want things displayed... e.g. giving it a 6 color png image for a 3 color sprite, changing the number of rows from 24 to 12 but not adjusting the rest of the code, ... This sort of thing won't improve as the language gets more features, so if you have specific suggestions I'm totally open to hearing constructive criticism.

  • Like 3
Link to comment
Share on other sites

This is fantastic! I've read the manual several times and I'm ready to get started. :) I had about an hour to play around with it during the day today and thanks to Trebor and Synthpopalooza's posts and a little bit of time messing with it I was able to get some custom images working in a demo. RevEng, I'd strongly suggest a more detailed tutorial in the manual about how to create images that are compatible. I wound up using Gimp and will have to spend a little time learning it, but it was much easier than trying to figure it out in Photoshop. If you lack experience using an advanced image editor that's going to be a major stumbling block to developing a game, IMO.

 

Edit: I'd consider including Trebor/Synthpopalooza's palette files in the distribution as well, if they are ok with it.

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