jbs30000
Members-
Posts
488 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Gallery
Events
Store
Everything posted by jbs30000
-
PAC-MAN-RED, just wanted to let you know that I've been using your sprites in my Super Mario game. It's going slow, but I have a lot done now, so hopefully in a week or two I'll post what I have done so far. The sprites are kind of a mix between yours and mine. I'm using my drawing for the face, combined with your drawing of the body. The coloring's a little different, but not much. Also, I'm just using three sprites for walking and standing (six sprites total, three small, three large) and the sprite for when Mario dies. Thank you for the sprites, and I hope you like what I did with them when you see them.
-
Don't worry it's right...Oh crap! But getting back the topic of this thread; I think I'll wait until this is no longer the beta version before trying to program with this new kernel. For reasons unknown, from time to time I seem to have problems that nobody else has, so if I tried programing with the new kernel I wouldn't know if any errors I got were from errors in the kernel or if it was just me. But I'm excited by the single height sprites and the multiple sprites with no flicker. We're going to be able to make some pretty awesome games now.
-
Next time start a blog and upload your source files to it. If you want to keep the project private, then just leave the blog entries in draft mode. Makes for a handy off-site backup, it's what I do. Thanks, but I'm backing up to a flash drive now. I can save to my on-line Windows Live Office account, but it's easier to just put everything on the flash drive.
-
I was working on a 2600 Space Harrier game last year. It wasn't half bad, but a few months ago my hard drive crashed and I had no backups, so it's all gone now.
-
OK, that works a lot better. Thanks.
-
When using Stella, do I need to use any command line arguments or something? Because when I run the programs posted the sprites are yellow, the middle of the screen is yellow, and I can only see the sprites on the sides of the screen, as shown in the pic below. Or is that how it's supposed to look?
-
OK, so I started making the program, posted some updates, and was doing pretty good. But since I didn't plan in advance I had to go back and ad some things. Well, this, combined with writing the program poorly meant I had to start over again. EACH AND EVERY ATTEMPT so far to make it right ends up failing. I've tried like, four or five times now. My most recent attempt in which I tried my best to follow the original program fails both in that I can't scroll the screen more than once, and for some reason sometimes when I jump then afterwords Mario freezes and I can't move him. I'll make one more attempt, and if that fails, then if anybody is interested, I'll post the code that has to do with scrolling and drawing things on the screen, and code for the sprites and playfields, and let anybody who's interested contribute code for the rest. Or if nobody is interested then I'll let this project just die. I'm getting to the point where I don't care anymore.
-
One thing right off of the bat just looking over your code. At the end you have if c<4 | c>251 then goto game drawscreen goto game Yet, I don't see a "game" label. I see gamea and gameb, but no game.
-
Well, I've taken programing classes in the past and a bunch of things you're supposed to do I didn't. One basic tip, which you may already know, is write down what you want to do on paper (or use Word or whatever) so that when you go to write the code you have everything you need and you won't have to go back and add code later. Anyway, I think it'll all be better if I start over again. The code for drawing and scrolling the screen I'll keep the same because it works, but displaying and moving Mario; Displaying and moving the enemies; And collision detection I'm going to start over again.
-
Well, I don't have a program to post. I ran into a couple of problems with my code. In addition, a lot of the code is poorly written and the variables have horrible names. So I've tried three times to rewrite the program, but each time I get a program that has major problems, or just doesn't work at all. I'll try to fix the latest version of the program, but if I can't find out what's wrong, I may have to start from (mostly) scratch.
-
There was no code in the function when I got the message. I named the function then put an end statement because I plan on putting code in later. Also, the message goes away when I remove the empty function. I put some random code in the function, and still got the message. Let's see, I created the macros in bank 1, and have a couple of routines where I use callmacro. I use no macros in bank 2, and I'm working on bank 3 which, at the moment, has no macros. Maybe all it's saying that no macros are used in bank 2 or bank 3, but then I don't know why a function statement would trigger the message. I guess I'll wait and see if it causes any problems or if it's just something I can safely ignore.
-
I'm using eight banks for the game I'm working on. In the third bank when I just name a function that doesn't actually do anything yet: function Enemy1_Crash end When I compile to make sure everything is OK, in the output I get "not within a macro" DASM V2.20.07, Macro Assembler (C)1988-2003 bytes of ROM space left in bank 1 bytes of ROM space left in bank 2 not within a macro bytes of ROM space left in bank 3 bytes of ROM space left in bank 4 bytes of ROM space left in bank 5 bytes of ROM space left in bank 6 bytes of ROM space left in bank 7 bytes of ROM space left in bank 8 1347 bytes of ROM space left in bank 1 665 bytes of ROM space left in bank 2 not within a macro 3792 bytes of ROM space left in bank 3 3796 bytes of ROM space left in bank 4 3796 bytes of ROM space left in bank 5 3796 bytes of ROM space left in bank 6 3284 bytes of ROM space left in bank 7 1416 bytes of ROM space left in bank 8 It doesn't seem to be an error, but I'm curious what it means. Thanks. Edit: I guess I should add, yes, I'm using macros. I created them all in the first bank.
-
jwierer, question about colors on the sprite editor.
jbs30000 replied to jbs30000's topic in batari Basic
Repo steps? Edit: Never mind, I fixed it. I look at the top where it says region and it was blank. I looked at the options and right there was NTSC and PAL, so I chose NTSC and low and behold, the colors are fixed. I feel silly now. -
jwierer, question about colors on the sprite editor.
jbs30000 replied to jbs30000's topic in batari Basic
Version 1.0 Build(550) -
I've noticed this for a while, but have finally decided to ask about this. The colors when choosing Select color don't match to the actual colors that are displayed. For example, playing around with colors, here's part of a sprite that's normally all colored $2C, but I made the very top $1C, which on the grid (1st pic) shows as grey, but in the preview in Stella it appears as yellow. The differences are also noticeable in the in the Visual bB palette vs what's shown here Is there a way to correct the color selection chart?
-
If you look though, JLoop is named .JLoop in the asm output. But you're right that the machine code seems to be saying jump to address 0, which isn't right. Anyway, what I was trying for was to be able to jump to any label, not just labels inside of the macro. But that's OK, after trying a few different tricks it looks like it's not possible. It's not that big of a deal, there are other ways to accomplish what I want. Thank you for the help. I appreciate it.
-
That double post is kind of funny. Anyway, I don't know why it says 22.JLoop. The 9 lines of code I posted is all there is.
-
No, just having the macro is fine. It's when I try to use it that I get the error.
-
First, this is post is kind of long probably complicated. I was playing around with macros, and decided to see what could be done with if-then statements. This macro seems to produce perfectly valid asm code, but gives a fatal assembly error. I'm just curious as to what the error is, seeing as how the asm looks fine, and if there's another way to write this code to avoid the error. If not then no biggie. bB Code dim Mario=a const T1=3 const V1=1 macro Value_If temp1={1}&{3} if temp1={3} then goto {4} end callmacro Value_If Mario T1 V1 JLoop JLoop Here's the asm code, which seems fine: 0 f48f Value_If Mario, #T1, #V1, JLoop, 1 f48f 2 f48f .L05 3 f48f 4 f48f a5 d6 LDA Mario 5 f491 29 01 AND #V1 6 f493 85 9c STA temp1 7 f495 .L06 8 f495 9 f495 a5 9c LDA temp1 10 f497 c9 01 CMP #V1 11 f499 d0 03 BNE .skipL06 12 f49b .condpart0 13 f49b 4c 00 00 jmp .JLoop 14 f49e 15 f49e .skipL06 1568 f49e . 1569 f49e ; 1570 f49e 1571 f49e .JLoop But I get this error: DASM V2.20.07, Macro Assembler (C)1988-2003 bytes of ROM space left 2814 bytes of ROM space left 2814 bytes of ROM space left --- Unresolved Symbol List pfcenter 0000 ???? (R ) 22.JLoop 0000 ???? (R ) kernelmacrodef 0000 ???? (R ) pfhalfwidth 0000 ???? (R ) Fatal assembly error: Source is not resolvable. Errors were encountered during assembly. I've even tried using asm within the macro, but still get the same error. macro Value_If asm lda {1} and {3} cmp {3} beq {4} end end
-
It's exactly like the arcade. You push up, down, left, or right to get each game.
-
The whole program? No. There's a lot of code, it's kind of sloppy, and some of the variables are horribly named (like ES1 and ES2). I'm re-writing the program so that the code is a lot neater and over-all it's easier to read. If I'm still having a problem then I'll post it for others to look at.
-
.L0553 ; if Crash_Value = Land_on_Enemy then ES1 = 0 : Enemy1X = 0 : Enemy1Y = 0 a5 ee LDA Crash_Value c9 01 CMP #1 d0 0c BNE .skipL0553 .condpart142 a5 e5 LDA p 29 fd AND #253 85 e5 STA p a9 00 LDA #0 85 e6 STA Enemy1X 85 e7 STA Enemy1Y And, for comparison's sake .L0557 ; if Crash_Value = Land_on_Enemy then ES2 = 0 : Enemy2X = 0 : Enemy2Y = 0 a5 ee LDA Crash_Value c9 01 CMP #1 d0 0c BNE .skipL0557 .condpart145 a5 e5 LDA p 29 fb AND #251 85 e5 STA p a9 00 LDA #0 85 e8 STA Enemy2X 85 e9 STA Enemy2Y Everything looks OK. Oh well. I'll figure it out eventually. Edit: Actually, looking at some other code, I have a question: .L0550 ; if !ES1 then goto CV2 a5 e5 LDA p 29 02 AND #2 d0 03 BNE .skipL0550 .condpart140 4c bd 98 jmp .CV2 .skipL0550 .L0551 ; Crash_Value = Crash_Detection ( 1 ) and .L0554 ; if !ES2 then return otherbank a5 e5 LDA p 29 04 AND #4 d0 03 BNE .skipL0554 .condpart143 4c dd ff JMP BS_return .skipL0554 .L0555 ; Crash_Value = Crash_Detection ( 2 ) So in the first one, if ES1 is 0, skip to the label CV2. But the asm seems to be doing the opposite. OK, ES1 is bit 1 or a value of 2, so this part seems right. LDA p AND #2 However, this next part doesn't seem right BNE .skipL0550 .condpart140 jmp .CV2 .skipL0550 Now it's checking to see if bit 1 is off, or 0. ANDing p with 2 should return 0, the values aren't equal, so shouldn't it be BNE .CV2 ? Same thing with checking on ES2.
-
This post will be kind of long, but I need to give plenty of information in order to ask for help. In my Super Mario game adaptation I recently created a routine to determine if a collision occurs. There's three outcomes. 1, no collision occurs - 2, Mario lands on top of an enemy killing it - 3, an enemy collides with Mario killing him. I have a couple of problems. Sometimes I'd land on both enemies, kill them, walk a few steps to the right, and die for no apparent reason. So I REMed out the code to check for a crash into enemy 1. If I land on and kill enemy 2, enemy 1 dies as well. This shouldn't happen. There are two enemies, one is player 0 and the other is player 1. Since players 0 and 1 make up Mario I have variables to hold the various positions: Mario dim X_Pos=k.l dim Y_Pos=m Enemy 1 dim Enemy1X=q dim Enemy1Y=r Enemy 2 dim Enemy2X=s dim Enemy2Y=t I also have two variables to determine if enemies 1 and 2 exist or not: rem See if Enemy number 1 is on screen or not - (E)nemy (S)creen def ES1=p{1} rem See if Enemy number 2 is on screen or not - (E)nemy (S)creen def ES2=p{2} If the bit is set, the enemy is on the screen. If it is not set, no enemy. Finally, some DEFs in my program: dim Crash_Value=y def No_Crash=0 def Land_on_Enemy=1 def Killed_By_Enemy=2 With that, here is the code to determine a crash: function Crash_Detection rem temp1 - 1=Enemy1, 2=Enemy2 if temp1=2 then goto Crash_Detect_Enemy2 Crash_Detect_Enemy1 if !ES1 then return No_Crash rem If Mario is in front of or behind an enemy then no contact has been made. temp1=Enemy1X-8: temp2=Enemy1X+8 if k<=temp1 || k>temp2 then return No_Crash rem If Mario is 1 or more pixels above an enemy then no contact has been made temp1=Enemy1Y-9 if Y_Pos<temp1 then return No_Crash rem All remaining options are that a collision took place. The following code will determine what type. rem If Mario is jumping or he's not jumping or falling then it's an instant kill. if Jumping then return Killed_By_Enemy if !Falling then return Killed_By_Enemy rem If Mario is falling, then if he's right on top of an enemy, or 4 pixels into an enemy, then he's landing on them and kills them. temp1=Enemy1Y-4 if Y_Pos<=temp1 then return Land_on_Enemy return Killed_By_Enemy Crash_Detect_Enemy2 if !ES2 then return No_Crash rem If Mario is in front of or behind an enemy then no contact has been made. temp1=Enemy2X-8: temp2=Enemy2X+8 if k<temp1 || k>temp2 then return No_Crash rem If Mario is 1 or more pixels above an enemy then no contact has been made temp1=Enemy2Y-9 if Y_Pos<=temp1 then return No_Crash rem All remaining options are that a collision took place. The following code will determine what type. rem If Mario is jumping or he's not jumping or falling then it's an instant kill. if Jumping then return Killed_By_Enemy if !Falling then return Killed_By_Enemy rem If Mario is falling, then if he's right on top of an enemy, or 4 pixels into an enemy, then he's landing on them and kills them. temp1=Enemy2Y-4 if Y_Pos<=temp1 then return Land_on_Enemy return Killed_By_Enemy end Here is the code to see if a crash has happened. rem Check to see if Mario has collided with an Enemy if !ES1 then goto CV2 Crash_Value=Crash_Detection(1) if Crash_Value=Killed_By_Enemy then goto End_Game if Crash_Value=Land_on_Enemy then ES1=0: Enemy1X=0: Enemy1Y=0 CV2 if !ES2 then return otherbank Crash_Value=Crash_Detection(2) if Crash_Value=Killed_By_Enemy then goto End_Game if Crash_Value=Land_on_Enemy then ES2=0: Enemy2X=0: Enemy2Y=0 return otherbank Does anybody see any obvious errors that I am overlooking?
-
A reminder for all of us to regularly back up our game files to a USB flash drive or DVD or something. Amen.
-
How many hours of work were lost? I don't know. I have a very bad memory I'm afraid. Edit: But I think I could rewrite the game and make it better.