-
Content Count
22 -
Joined
-
Last visited
Posts posted by DonavinTheSuperGamer
-
-
Here's a modified version of your code that'll do what you want it to do.
The reason your code wasn't doing anything was likely because it was failing to compile.
Main things that needed to be changed/added:
1. set doublewide on needed to be added. Also be sure to add that before you set your displaymode or it won't take effect.
2. Several places where you used "tileset_char.png" were incorrect. (take note of how they should look below.
)3. alphadata commands should be a single line. plotchar will only plot a single line regardless.
4. You need 4 parameters for plotchars. palette, X-coordinate, Y-line, and # of characters to plot. When you omit the last one, it'll read in an incorrect value and you'll get ... different results.
5. An infinite loop was needed at the end to keep the program from running off into unused rom/data/misc code. In your case it was running off into unused data which was likely filled with $FF's. The infinite loop stops that.

Normally in the infinite loop, that's where you'd have your main loop for things done every frame. You'd usually need a clearscreen/restorescreen and displayscreen to help organize things. Where this program is simply putting a bit of text on the screen, they're not really needed here.
PROGRAM_CONFIGURATION set romsize 48k set zoneheight 8 set screenheight 224 set pokeysupport on set debug color set doublewide on displaymode 160A SETTINGS P0C1 = $d2 P0C2 = $d8 P0C3 = $3b MAIN incgraphic tileset_char.png 160A 0 2 1 0 characterset tileset_char alphachars '0123456789' alphadata mytext tileset_char '4562' end alphadata mytext2 tileset_char '8093' end plotchars mytext 0 0 7 4 plotchars mytext2 0 0 8 4 mainloop ; This loop helps ensure the code won't continue to run off into undefined ; sections of your rom - or into data. Without it, you'll get errors. goto mainloopWow! It works! I can even change the colors of the text. Thanks!

Just a couple of questions... Is there a way to display characters regular sized instead of double the width? How do I change the color of the background? And what was that Paint Shop Pro you were talking about earlier?
-
Okay. Here is the code I wrote:
PROGRAM_CONFIGURATION set romsize 48k set zoneheight 8 set screenheight 224 set pokeysupport on set debug color displaymode 160A SETTINGS P0C1 = $d2 P0C2 = $d8 P0C3 = $3b MAIN incgraphic tileset_char.png 160A 0 2 1 0 characterset tileset_char.png alphachars '0123456789' alphadata mytext tileset_char.png '4562' '8093' end plotchars tileset_char.png 0 0 8
-
The problem is that while you only used 4 colors total (including background), the palette for the image itself was still set to 16-24 million colors. I've reduced it to 4 colors in the attached image. I think I figured out a better way to preserve palettes at least in paint shop pro with this, so let me know if the file works.
The program successfully compiled! However, the emulator will still do absolutely nothing. I used the incgraphic command to insert the file. Then, I put in alphachars to represent symbols 0 to Z. I put some alphadata and set plotchars to write it out, but it won't do anything. I have a feeling I'm doing something wrong.
-
-
Okay. So I just created this .png file here. I tried downloading GIMP but it would fail to install and the online version is very unstable and won't let me save. So, I used Game Maker to create this. The system failed to compile my game because the file "has too many colors," even though it only has three colors. I'm so confused.
-
Yeah, it does. You could use double-wide characters for 4 pixel wide characters, if you were dead set on using 160B characters.
Bear in mind that you can display both 160A and 160B graphics at the same time. Generally it's better to stick with 160A characters, and use 160B graphics only where required. Having a whole screen of 160B characters will cause Maria to use a lot more time while the CPU is halted, leaving less CPU time for your game.
Cool. I didn't know you could use both at the same time. I'll keep that in mind.
-
12? That's a lot of colors. It also says 160B mode's 'characters' are only 2 pixels. I hope it's not talking about text and fonts.B*nq appears to use 160A/B. 160B mode graphics have 12 colors. Basically it uses the colors from 4 consecutive palette entries. I don't know if this is what you're seeing, or not.
You can use this in 7800basic, same as you would in assembly. Just bear in mind that 160B graphics take up a lot of ROM.
-
It's not out yet no. You can keep an eye on progress in it's 7800XM thread that's pinned to the main 7800 forum. It's hit a bunch of snags over the years unfortunately. When it ends up released I'm sure 7800Basic will be updated to take advantage of it. In the meantime I recommend doing what I'm doing and tinker with what's currently available to get comfortable with the abilities and limitations of the system.

Thanks. And just one more thing; I was curious about color palettes. According to the 7800basic guide, there are 8 palettes with only 3 colors each. However, when I played Ken Siders' 'b*nQ', some sprites had more than just 3. (I counted a max of 4) Is it true that you can actually set more than 3 colors or am I just seeing things?
-
Okay. I'm not close to my computer right now so I'll check that later. Just to kill time, I was wondering about the Expansion Module. Seeing the Donkey Kong XM test for the add on baffled me with all of the colors and improved sound quality. I was wondering if that thing is out yet and if there is a way to write code for it on 7800basic.
-
Thank you, Mord. Now, however, I seem to have a bigger problem on my hands. I am trying to add a font into my game and have added an 80x8 image I created on Microsoft Paint to my game file folder. It contains numbers from 0-9, one every 8x8 pixels. Then I made this Microsoft Notepad file:
-
Okay. So I got the application working and I think I understand what I'm working with.
Now that I set a color pallet, I want to put a sprite on the screen. How exactly do I code the sprite?
-
Wow. Thanks! It's an entire guide with all of the commands and limitations of the system. This is going to help me so much! How can I thank you more?
-
Never mind. It worked.
-
Hello, RevEng.
I have downloaded this software and ran 'install_win.bat', which succeeded. According to your instructions that shows how to test installation, it states:
To test your installation, several sample programs are included in the "samples" folder. "cd" to this folder and type:7800bas simple.basIf successful, a file called simple.bas.a78 will be generated that you can run on an emulator. The sample program is not very interesting, but note how simple it was to write. Open sample.bas in a text editor and take a look at how it was written.I decided to move my 7800basic folder straight to the C Drive. So I put it in the Command Prompt an it stated.'7800bas' is not recognized as an internal or external command, operable program or batch file.Could I possibly be making a mistake? -
You mean this guy? http://atariage.com/forums/user/1787-pacmanplus/ He uses assembly language (DASM, I think, but not sure) to make most of his games. If assembly is giving you a headache, then you may want to try 7800Basic. As Mord mentioned above, the Basic file is generated into assembly code. There are also samples to get you started.
I think that could be him. It sure looks like it. Wow, he's awesome.
So you and Mord are telling me this '7800basic' uses BASIC and changes it to 6502 assembly for you? Well, that sounds very interesting. I will check it out.
-
Thanks guys for all of the help. I greatly appreciate it.

You know what I really wish? I wish that guy who made Pac-Man Collection was here to help. (I think his name was Bob or something [maybe PacManPlus?]) I don't remember. I just know he made some of the best games I ever bought. Maybe he could give me some pointers on what he uses.
-
put header on top of asm example, change size and params
then use command line like in my bat file
check this site, here you will find sign.exe app
Okay. This is much more tedious than I thought it would be. I wish there was just a program that could take BASIC and turned it into 6502.
-
in MADS package you got 7800 examples, all need to be compiled and signed to run on real hardware or emulator (a78 header need to added too)
my build bat file:
bin\mads.exe a78-robbo.asm -o:a78-robbo.a78 bin\a78sign.exe -f a78-robbo.a78
my a78 file header
;******* a78 ROM file header **************************** .array tab [128] .byte = $00 [0] = 1 ; wersja nagłówka [1] = 'ATARI7800' ; [17] = 'ROBBO 7800' ; title [49] = $00,$02,$00,$00 ; size (4 bajty) [53] = %00000000 ; bit 0 - Activision BS mode ; bit 1 - Absolute BS mode [54] = %00000110 ; typ cartridge'a ; bit 0 - pokey ; bit 1 - supercart bankswitched ; bit 2 - supercart ram ; bit 3 - ROM at $4000 ; bit 4 - Bank 6 at $4000 [55] = 1 ; kontroler port 1 [56] = 0 ; kontroler port 2 ; 0 = brak ; 1 = joystick ; 2 = lightgun [57] = 1 ; PAL ??? [58] = 1 ; HSC [63] = 1 ; XM [100] = 'ACTUAL CART DATA STARTS HERE' .enda ;******* End of a78 ROM file header **********************I am terribly sorry if I am making this difficult. How exactly do I compile these files?
-
there is polish and english version of manual
for pascal manual you will need use google translator

Thanks! I did that and it makes more sense now. So I have to extract the .7z files. So I did that, and now I don't know what to do, I found some .bat and .exe files, but they close instantly when I run them. Other than that, there's a bunch of .pas, .obx, and .cgsyn files that the computer can't run either. Do I have to somehow extract those too, or am I doing something wrong?
-
It sounds very interesting. However, when I ask for download, it gives me .7z files that my computer doesn't know how to run. Also, it's in a language I do not understand.
You may find these threads useful, Donavin:
-7800 Basic programming tutorials?
-7800 Development Wiki at 8bitdev.org
-Bitmap to 7800 Graphics Converter
Thanks. This is very interesting; being able to create graphics faster and more efficiently. I can use this for reference in the future. This is very helpful.
If you're not heavily familiar with 6502 assembly I'd start with c64 to begin with until your knowledge of 6502 is good enough to develop for a good system.Their is also 7800 basic if you choose the basic route.If you can understand some of my code than 6502 is for you if not basic is the correct choice for now.
;======================================================= Do_Div16: lsr Do_Div8: lsr lsr lsr rts ;======================================================= DrawStage: lda $d011 and #%11101111 sta $d011 jsr ClearScreen ;Exit With Y = 0 lda #<ScreenRam sta _TmpPointer2+0 sta _TmpPointer1+0 lda #>ScreenRam sta _TmpPointer2+1 lda #>ScreenColorRam sta _TmpPointer1+1 lda _CurrentStage asl tax lda ScreenStructureTable+0,x sta _TmpPointer3+0 lda ScreenStructureTable+1,x sta _TmpPointer3+1 DrawLoop: lda (_TmpPointer3),y sta _Tmp1 jsr Do_ModTmpPointer3 lda (_TmpPointer3),y sta _Tmp3 jsr Do_ModTmpPointer3 lda (_TmpPointer3),y sta _Tmp4 jsr Do_ModTmpPointer3 -: lda _Tmp3 sta (_TmpPointer2),y jsr Do_ModTmpPointer2 lda _Tmp4 sta (_TmpPointer1),y jsr Do_ModTmpPointer1 dec _Tmp1 bne - lda (_TmpPointer3),y bne DrawLoop iny lda (_TmpPointer3),y pha and #%11110000 jsr Do_Div16 sta BackgroundExtraColor1 pla and #%00001111 sta BackgroundExtraColor2 lda $d011 ora #%00010000 sta $d011 rts ;======================================================= Do_ModTmpPointer2: lda _TmpPointer2+0 clc adc #1 sta _TmpPointer2+0 bcc + inc _TmpPointer2+1 +: rts ;======================================================= Do_ModTmpPointer1: lda _TmpPointer1+0 clc adc #1 sta _TmpPointer1+0 bcc + inc _TmpPointer1+1 +: rts ;======================================================= Do_ModTmpPointer3: lda _TmpPointer3+0 clc adc #1 sta _TmpPointer3+0 bcc + inc _TmpPointer3+1 +: rts ;======================================================= ScreenStructureTable: !word Screen1Data !word Screen2Data !word Screen3Data !word Screen4Data ;=======================================================Wow. That is REALLY complicated. THAT'S 6502? That's insane. I can't even tell what this is supposed to make the system do. I'm used to BASIC. I wonder if there is a program that lets me write 7800 games in BASIC. At least I know that language a bit.
-
Hello. My name is Donavin. I really want to become an Atari 7800 home-brewer. When I found out game programmers were still making games for the Atari systems, I felt like I should jump right into the party. I was wondering if anyone knows a good software I can use to code for the Atari 7800. I would appreciate the help.

Atari 7800 Programming: Help?
in Atari 7800 Programming
Posted
Wow. It's been a while since I've been on the forums. I was out celebrating the end of school! So, thanks guys for the help. I finally got THIS to show up on Prosystem Emulator. I specifically set 'BACKGRND = $00', but it's a different color every time I run it. The background changes to red, green, and even purple. I don't get it. Could I be doing something wrong or could it be the emulator itself?