Search the Community
Showing results for tags 'sprite'.
-
Hi, Sorry guys, I'm back again ! So, now I'm playing with the multi-sprite trick.... I successfully coded a stable 17 sprites display routine but I don't really understand how. I mean using "test and try", I finished to have a stable display (with a constant step between sprite, no overlapping...) but I don't understand why.... I look at the working timings but it doesn't make sense to me : LDA #%00100011 ; missiles to 8 pixels + sprites close * 3 STA NUSIZ0 STA NUSIZ1 LDY #227 ; boucle sur les 227 scanlines PAL LDX ScrollOffset STA WSYNC ScanlineLoop: LDA Colors,X ; 4 (4) STA COLUP0 ; 3 (7) STA.w COLUP1 ; 4 (11) LDA Font,X ; 4 (15) STA GRP0 ; 3 (18) STA GRP1 ; 3 (21) INX ; 2 (23) STA RESP0 ; 3 (26) STA RESP1 ; 3 (29) STA RESP0 ; 3 (32) STA RESP1 ; 3 (35) STA RESP0 ; 3 (38) STA RESP1 ; 3 (41) STA RESP0 ; 3 (44) STA RESP1 ; 3 (47) STA RESP0 ; 3 (50) STA RESP1 ; 3 (53) STA RESP0 ; 3 (56) STA RESP1 ; 3 (59) STA RESP0 ; 3 (62) STA RESP1 ; 3 (65) STA RESP0 ; 3 (68) STA RESP1 ; 3 (71) DEY ; 2 (73) BNE ScanlineLoop ; 3 (76) is there any logic ? a cycle before or after, one STA RESPx less and everything is screwed. I read carefully the guide from Paul but I did not find the light...yet...
-
I have a hardware problem with Atari 800 XL. In every game that uses sprites they got corrupted after about 6 sec. since initializing them. In SysInfo there is a sprite collision test and it works, but soon after it finishes, garbage occurs: If I restart the test it works again fine. In River Raid, sprites become small letters of alphabet and player graphics is a full screen height column of capital letters (letter depends on the vertical position on the screen, so moving sprites scroll vertically across the alphabet): In Super Cobra it works for a while, but when it crashes for the first time, the heli crashes immediately after reappearing (it is a constant collision). In Pitfall II the demo doesn't scroll, and there is no character on the gamefield. All games work for ~6 sec. and then garbage appears on the screen. If I reset computer it works again for same time, and in SysInfo it is enough to re run the test, so it is unlikely to be thermal issue. I have swapped GTIA, RAM and OS ROM, but with no luck.
-
-
Is there such a thing? There is a game whose sprites I'd like to have a go at editing, but unfortunately I don't know where to begin. Thanks.
-
Hi, I have recent purchased a 800XL (PAL) and paired it with a SIO2SD external drive, all appears to work fine, expect on a lot of games I'm getting a corrupted sprite, and I'm not sure why, would anyone be able to shed light on what may be causing this? Configuration, software, PAL/NTSC issue, RAM or Antic failure? Note that some games appear to run perfectly. Also passes memory tests fine. I apologize for the poor photos, but you can see the corrupted missile or sprite running vertically down the display, these will follow the player or enemies. Any help would be appreciated.
- 14 replies
-
- 800XL
- Atari 8-bit
- (and 4 more)
-
Hi guys, Let me start off by saying, I have no idea how to even begin doing a hack. (if that didn't scare you away from this thread, them maybe you can help me.) What I'm looking to do is change the color of the ship in Save Our Ship (NTSC version). The NTSC versions have a very bright and colorful ship. I would rather it be more of a brown color like the PAL versions, so that it's easier on my eyes and looks more like a wooden ship. What I'd like to do, is get information on how to go about this with the least amount of knowledge (right now, being zero). Of course, if someone thinks it would be easier to do this for me, than to explain to an idiot how to do it, then that's fine too... So,is there a simple way to show an idiot how to change the color? Then by all means, share your knowledge. If on the other hand, it's too complicated and you are feeling generous, I'd be very happy with someone else doing the work for me. It's up to you.
-
Hey guys, I am not a programmer by any means.I was experimenting with visual bb and decided to make a sprite using both player sprites. I am now wondering if anyone would be willing to show me a code where I can combine both sprites as one. My first goal is to combine both sprites and then hopefully add some code so I can design a walk cycle. Anyone willing to share an animated double sprite code to an artist?I just wanna create art, I wish I understand programming. I provided art example below, I'm sure it will be nice to see if someone was willing to help out. My next step is walk cycle if someone can help with the code. I've seen this code for flicking, but I am not sure how to use it or write it in a code for my character. Assuming flicker is best. My understanding is, it allows you to use one player sprite instead of two? frame1 player0x = x gosub ShowLeftSide goto frame2 frame2 player0x = x + 8 gosub ShowRightSide goto frame1 Art player0: %01011010 %00110100 %00101000 %00110000 %00011000 %00110000 %00110000 %00110000 %01010000 %11100000 %01000000 %00000000 %10101010 %11111111 %00000001 %10110110 %01011000 %01010000 %01100000 %11000000 %10000000 %10000000 %11100000 %10000000 player0: %10110000 %01011000 %00111000 %00011000 %00110000 %00011000 %00011000 %00010100 %00001100 %00001110 %00110111 %01001011 %01010000 %01101111 %01011111 %01011000 %01011101 %01011101 %01011011 %01100110 %00111001 %00000011 %00000011 %00000001
-
I'm developing a scavenger hunt-like game based on the 1979 film, Alien. I realize there's already an Alien game on the Atari 2600, but I wanna make a game that's not a Pac-man clone. Anyway, I'm not very good at creating nice-looking sprites. Does anyone have any advice or tips on making sprites?
-
Stumbled across a site that contains video game sprites. For example, here are the sprites for the arcade version of Mr. Do: http://www.spriters-resource.com/arcade/mrdo/sheet/60489/ http://www.spriters-resource.com/arcade/mrdo/sheet/59538/ http://www.spriters-resource.com/arcade/mrdo/sheet/60490/ http://www.spriters-resource.com/arcade/mrdo/sheet/60488/
-
Thanks in advance - another victim of the 2600 bug here. I'm addicted. I'm trying to create a logic puzzle game on a 7 by X grid. The pieces are STATIC. I need to display a row of 7 sprites, each separated from the others by 16 pixels, but with changing GRPx graphics and any combo of two COLUPx colors choices for each. Obviously, I get real close to this using interlaced sprite0 and sprite1 set to triple display (medium spacing), and timing the graphics and color changes. But I need to lead off with an extra copy - or end with an extra. I've thought about using immediate spacing with 13/14 sprites and just blanking out every other one - but I don't think I can change the color and graphics fast enough with that. I've looked at a lot of the RESPx code out there - I must confess I don't quite get it yet. I am pretty familiar with the 4/3 cycle differences of the display; I get the delay of presentation until the following scanline; I sort-of get the v-delay trick. I lot of that seems overkill for me though, and most examples are about cramming as many sprites as possible into a line. Anyway - this is sort of what I'd like to produce. The graphics are actually more detailed, I just haven't got them yet - 8 bit detail. Of course, avoiding flicker would be the goal: These lines are 4 pixels (out of 160) wide. Any pointers (pardon the pun) would be much appreciated!
-
Patterns (1 double sized sprite): http://sometimes.planet-99.net/patterns.html Patterns32 (4 double sized sprites): http://sometimes.planet-99.net/patterns32.html There's an input text field. It's the wide rectangle at the bottom. I've tried to set focus and put a cursor there, but not all browsers pick up on that. The usual functionality, like Ctrl+A to select/highlight all text, should work. Try typing in or copying garbage to the input field, - should be pretty robust.
-
Is it possible to read the sprite coincidence bit via CRU, and if so, can somebody post some example code? I have an issue where I'm wanting to check the coincidence bit, but the TI ISR has already read the VDP status, thereby clearing it. I might be able to find a workaround, but if not, I'll have to bitbang the hardware (assuming that I can). Sometimes posted some code that reads the VSYNC bit via CRU but I don't know where he got the info from - hence my question! I'll keep digging..
-
Hey all. With the below program, can someone help me understand some stuff: 1. How to use the SPRITE command to overlay bitmap "yes" on top of bitmap "no", setting both in Double-Y MOB mode, so they look like a high resolution, two-color item, fitting into a single tile 8x8 space. 2. How to use the PRINT command to place bitmap "maybe" on any card on the screen? showing and placing ROM text is cleanly explained in the IntyBASIC manual, but I am not making the mental leap on how to do the same with an 8x8 graphic unit. The line "PRINT AT 200,$19D9" puts the bitmap in tile #200 but I don't understand how that relates to "DATA $007E,$007E,$003C,$0018". Thanks! REM Command: intycolor -b -o60 -s0000 -p yes.bmp yes.bas yes REM Command: intycolor -b -o62 -s0000 -p no.bmp no.bas no REM Command: intycolor -b -o59 -s0000 -p maybe.bmp maybe.bas maybe REM Command: intycolor -b -s0000 -p myback.bmp myback.bas myback REM stub for showing image MODE 0,0,0,0,0 WAIT DEFINE 0,16,myback_bitmaps_0 WAIT DEFINE 16,16,myback_bitmaps_1 WAIT DEFINE 32,3,myback_bitmaps_2 WAIT DEFINE 59,1,maybe_bitmaps_0 WAIT DEFINE 60,2,yes_bitmaps_0 WAIT DEFINE 62,2,no_bitmaps_0 WAIT PRINT AT 0,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 PRINT AT 20,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 PRINT AT 40,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 PRINT AT 60,$0000,$0000,$0000,$0802,$080A,$0000,$0000,$0000,$0812,$081A,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 PRINT AT 80,$0000,$0000,$0822,$082A,$0832,$0000,$0000,$083A,$0842,$084A,$0852,$0000,$0000,$0000,$0000,$085A,$0862,$0000,$0000,$0000 PRINT AT 100,$0000,$0000,$086A,$0000,$0872,$0000,$0000,$087A,$0000,$0000,$0882,$0000,$0000,$0000,$0000,$088A,$0892,$089A,$0000,$0000 PRINT AT 120,$0000,$0000,$08A2,$0000,$08AA,$08B2,$08BA,$08C2,$0000,$0000,$08CA,$0000,$0000,$0000,$08D2,$08DA,$0000,$08E2,$0000,$0000 PRINT AT 140,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$08EA,$08F2,$067A,$08FA,$0902,$0000,$0000,$090A,$0000,$0000 PRINT AT 160,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$084A,$0912,$0000 PRINT AT 180,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 PRINT AT 200,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 PRINT AT 220,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 WAIT PRINT AT 0,$19E6 PRINT AT 20,$19EE PRINT AT 2,$19F7 PRINT AT 22,$19FF PRINT AT 200,$19D9 loop: GOTO loop ' 35 bitmaps myback_bitmaps_0: DATA $0100,$0C07,$1008,$4020 DATA $8000,$4040,$4040,$4040 DATA $0100,$0C06,$1010,$4020 DATA $18F0,$0808,$0404,$0202 DATA $0000,$0000,$0000,$0100 DATA $4040,$8040,$8080,$0080 DATA $4040,$4040,$2040,$2020 DATA $0000,$0000,$0100,$0201 DATA $4040,$8040,$0080,$0000 DATA $0101,$0101,$0000,$0000 DATA $0000,$0000,$8080,$4040 DATA $0000,$0000,$0000,$0300 DATA $0000,$0000,$0000,$C000 DATA $0101,$0201,$0402,$0404 DATA $2020,$1010,$1010,$1010 DATA $0404,$0808,$1010,$4030 myback_bitmaps_1: DATA $4040,$2020,$1020,$0810 DATA $0C04,$1010,$2020,$4040 DATA $1820,$0404,$0102,$0001 DATA $0000,$0000,$0000,$8000 DATA $0804,$0808,$1010,$0000 DATA $0408,$0202,$0101,$0000 DATA $0000,$0000,$0000,$3FC0 DATA $0000,$0301,$0C04,$E010 DATA $8040,$0000,$0000,$0000 DATA $0408,$0404,$0202,$0202 DATA $0000,$0101,$0201,$0402 DATA $8080,$0000,$0000,$0000 DATA $6040,$2020,$1010,$1010 DATA $0101,$0000,$0000,$0000 DATA $0000,$4080,$2040,$0718 DATA $0000,$0300,$300C,$00C0 myback_bitmaps_2: DATA $3008,$00C0,$0000,$0000 DATA $0808,$0404,$0202,$0302 DATA $0000,$8000,$4080,$0000 yes_bitmaps_0: DATA $FFFF,$0101,$7D7D,$4545 DATA $5D5D,$4141,$7F7F,$0000 no_bitmaps_0: DATA $0000,$FEFE,$8282,$BABA DATA $A2A2,$BEBE,$8080,$FFFF maybe_bitmaps_0: DATA $007E,$007E,$003C,$0018
-
Hey all. While noodling with a MOB concept, I created a 16hx8w pixel image in Windows with two colors and a black background. I am now trying to find a program/method that will resize it into an 8x8 image without anti-aliasing or other "tricks". I just want to squish the image so I can preview it before I convert it into a proper sequence of GRAM blocks. Because I used two colors while painting, I understand that the final thing in my game will use four characters, but for now I just want to draw and preview and stay in Windows (GUI or command line makes no difference to me). I think this is the most expedient way to think through how a MOB will look when it is actually in a game, but I am open to all alternative ideas... Thanks.
-
Some very nice artworks made from old cartridges, seen on deviantART. I searched but didn't find these in the forums. Did I miss them? Perhaps the creator of these is a member here? Click through to embiggen: http://fav.me/d7k9qgb http://fav.me/d7k9mwx http://redekerplan.deviantart.com/
- 9 replies
-
- 1
-
- art
- deviantart
-
(and 5 more)
Tagged with:
-
hey guys, works been slow lately so ive been working on a hack, or to be more specific, a hack of a hack. the original hack was based on motocross, but the bike sprites had been replaced pod racers. its on JDD (http://jims_digital_domain.tripod.com/dwnloads.htm) if you want to have a look. Im taking it a step further by modifying all the other sprites (done) and changing the background (also done), but I also want to change the color of the sprites and background. witch is where im at a loss, ive made mods to games that use sprites in the past shure, (EX: chris sawyers locomotion) but in those games the sprite contained the colors used in it. on the Atari however, it seems the colors must be contained somewhere in the games code, and sense both the sprites and and all other code are in binary im having a difficult time finding what determines the color of the sprites. are there common locations in the bin to look for the colors, or are there any tools that can help me find them? I would appreciate any help, thank you.
- 3 replies
-
- 2600
- programming
- (and 8 more)
-
Hi, I have a strange bug I can't explain, I coded a fairly simple piece of code which display the 2 sprites (x3, all in a row separated by 8 pixels, so, close) and move them right then left then right... And I've got 2 strange issues : - when sprites should be drawn let say in the 10 first left pixels it glitches (even if I comment the movement code and draw them directly), I tried 2 different sprite positionning routine (using table or computing the coarse/fine displacement), same results. - sprites go faster left to right than right to left.... If somebody can help.... glitches in the screenshot. Thanks in advance...... I feel dumb ! source6b_en.bin source6b_en.asm
-
I'm attempting to mix bB code and Assembly to do some more advanced things, such as having a single bank of colors/sprites that are assigned to players based on a variable. Note that this is using the DPC+ bB kernel. The issue here is in regards to pointers and how flexible they are in Assembly, because I don't know. For instance, I have a set of colors for a sprite: asm milCol .byte $D6 .byte $D6 .byte $D6 .byte $D6 .byte $D6 .byte $D6 .byte $D6 end I want to call this bank of color values and assign them to every player in a loop, in case I want to assign a specific color to individual players later. I noticed when looking at the game's assembly that colors are assigned like so: .L0241 ; player2color: lda #<(playerpointers+20) sta DF0LOW lda #(>(playerpointers+20)) & $0F sta DF0HI LDX #<playercolorL0241_2 STX DF0WRITE LDA #((>playercolorL0241_2) & $0f) | (((>playercolorL0241_2) / 2) & $70) STA DF0WRITE . ; .L0242 ; player3color: lda #<(playerpointers+22) sta DF0LOW lda #(>(playerpointers+22)) & $0F sta DF0HI LDX #<playercolorL0242_3 STX DF0WRITE LDA #((>playercolorL0242_3) & $0f) | (((>playercolorL0242_3) / 2) & $70) STA DF0WRITE . ; There's a pattern--players 1-9 are assigned their low and high points using the (playerpointers+x) phrase where x = 20 + (sprite# * 2) I'm attempting the following: for temp1 = 0 to 3 temp2 = 20 + temp1 + temp1 asm .enemycolor lda #<(playerpointers+temp2) sta DF0LOW lda #(>(playerpointers+temp2)) & $0F sta DF0HI LDX #<milCol STX DF0WRITE LDA #((>milCol) & $0f) | (((>milCol) / 2) & $70) STA DF0WRITE end next This should calculate where the high and low points for the player pointer will be and add it to playerpointers in order to point to the right location. It compiles, but doesn't work. Is there some special way I need to address the temp2 variable in order to allow it to be added to playerpointers? This also applies to sprites. I would like the sprite for any player to be chosen based on a certain variable (in my case it's enemy0, enemy1, enemy2, etc.) so, if enemy0 is 1, it will grab a certain sprite for that player and set it to a certain color, without the redundancy of repeating sprite and color tables for each possible combination for each player. There are two ways to do it. Either I could have a series of statements like the above .enemycolor for each possible color/sprite and then adjust the player's pointer based on a variable to point to the sprite/colors that are applicable, or (preferably) I need some way to change which data set is being loaded on the fly, such as the following mock-up: for temp1 = 0 to 3 temp2 = 20 + temp1 + temp1 data playerColors milCol, milCol, milCol, drkCol end temp3 = enemy0[temp1] temp4 = playerColors[temp3] asm .enemycolor lda #<(playerpointers+temp2) sta DF0LOW lda #(>(playerpointers+temp2)) & $0F sta DF0HI LDX #<temp4 STX DF0WRITE LDA #((>temp4) & $0f) | (((>temp4) / 2) & $70) STA DF0WRITE end next ... asm milCol .byte $D6 .byte $D6 .byte $D6 .byte $D6 .byte $D6 .byte $D6 .byte $D6 drkCol .byte $00 .byte $00 .byte $00 .byte $00 .byte $00 .byte $00 .byte $00 end So, two questions: 1. Is there any way to dynamically adjust the value being used for the player's pointer? 2. Is there any way to dynamically adjust which data set is being pointed to?