Jump to content

Just Jeff

Members
  • Posts

    597
  • Joined

  • Last visited

Everything posted by Just Jeff

  1. Yeah.. I was setting it up at an event and connected it to the facility's WIFI but it wouldn't exit the setup screen thereafter. I then tried it using my phone's hot spot and I then could exit the setup menu.
  2. Hey does anyone know how to exit the setup screen?
  3. I was in a similar situation and what I did to start was simply read the "Stella Programmers Guide" a couple of times (While hunting in my blind)- Without learning any assemble code.. I found it surprisingly easy to understand and interesting- just looked up words and concepts as I went along so I gained most (but not all) understanding. Then I did the same thing with "Assembly In One Step" Those two documents together add up to only like 50 pages.
  4. OK The passenger animation is done and he's quite sassy now.. Additionally, I wrote the fuel code so you are now able to get gas. While I was at it, I replaced some of the placeholder graphics in that part of the kernel as you can see below. A rare opportunity to have one pad on the horizon immediately above another- because fuel pads never have passengers that use a moving GRP1. The other likely case where this may be possible will be when the upper pad is either pad 1 or pad 4 since they can be drawn with missiles/ball sometimes (Coincidentally we're at pad 4 here, but I could not use that technique). Note: the fuel can can be drawn this way as well as with playfield and one missile/ball. .bin attached SpaceTaxi.asm.bin
  5. Hmm I checked it all out.. I think you guys give me too much credit. Do I need to know Python? I did think of something on the way to work the other day.. Using my graphics spreadsheet formula and just re-arranging it a little bit, I can paste the samples in columns B and C, then concatenate in column A, then copy/paste column A into my code. I would have to break up line 2 manually here to add my labels. Is what your suggesting easier? Thanks! -Jeff
  6. Thanks! Yeah I'll be animating the passenger at some point. I've always liked the C64 passenger's attitude when boarding and exiting. I'll see if I can do that using only ten dots! PAL- maybe. But if I do, it would be after almost everything else. Everything for the cartridge has been arranged. The rights have been squared away with the IP owner and with Albert's assistance who would, of course, be publishing it. I'm targeting 24 levels. I don't think I'll need to reduce anything to do that. And FYSA, I haven't made any effort on the background graphics yet really. I just put some quick and dirty graphics in there so you can recognize which screen you're on, and so I can write the tables, etc that make the game work in general. So, for example, Short and Sweet screen will have the candy cane, gumdrops (maybe Starburst Fruit Chews if I can't round them off), candy cane border, the lollypop's resolution will be doubled. Taxi Pong will have a bouncing ball, net, more paddle detail, etc. Taxi Trainer and Cactus aren't even close yet. In fact, those are the pads for Teleports screen. I just threw it in there so I could fill in tables and address them. Its tempting to do the graphics stuff now, but... bigger, boring, universal stuff first. Yeah I'm doing the voice the hard way. I don't like using modern hardware. It's just not my thing. I always have this "Could they have done this?" goal that guides me. Anyway, coincidentally.. I intend to work on the passenger kernel band today because the voice code doesn't fit in it and so contributes to the poor voice quality. So maybe while I'm in there, I'll look into animation. Finally.. I've been training for a marathon and it's prevented me from working on this for the most part. But the peak training is done and the marathon is two weeks from today, after which I should have a lot more time for development! -Jeff
  7. Good Morning, Does anyone know of a tool that will take two blocks of data and combine them in an interlaced manner? I have some voice samples for a 2600 game I'm writing that will run faster if two samples are stored together- a byte from one, then a byte from the other, and so on like this: 1st byte is from "Hey Taxi", 2nd is from "Thanks", 3rd is from "Hey Taxi", 4th from "Thanks", and so on. Thanks!
  8. So I had a similar conversation with James @ZeroPage Homebrew just prior to the show. I believe I might have fixed it in the attached .bin but I don't have any way to test because I use Plus and Harmony on a 2600. Please give it a shot and let me know. I also did a quick and dirty test of a voice volume fix. Please let me know if its louder now. Thanks! -Jeff SpaceTaxi.asm.bin
  9. If you hit the left fire button (F on your keyboard) it will restart.
  10. Thanks! I did it a few years ago when I was still learning 6502 and Stella. The effort to make that friggin' bottom thruster look PETSCII..:
  11. Hello! Here's the WIP .bin that will be displayed at the AtariAge booth in Portland next weekend. Enjoy! -Jeff SpaceTaxi.asm.bin
  12. Yes.. The peace that comes from not having to be indecisive about the idea any longer. Anyway, I've gotten back to it and am making some progress...
  13. I thought about something like that but I'd have to put it in all the banks where all the data is. Additionally, I'm not only flipping one byte, There are two bytes involved where they are flipped and switched out with the other byte- so it gets me almost nowhere.. I tried using a 16 byte table to at least flip the right nybble to the left nybble of the other byte but it didn't really help me. Thanks!
  14. Thanks! It will save 2 cycles with direct replacement. It does require using a byte of temp RAM but fortunately, that made me realize I could use that elsewhere for another 7 cycles saved. I could save another two cycles by introducing a 2nd temp byte to replace RAM1,x on the 3rd and 7th lines if I choose. Any other ideas anyone? RAM1 ;Swap space, no permanent game data RAM2 ;Game data .loop lda #$F0 ;2 2 Load a mask and RAM2,x ;4 5 Take the left nybble of the game data sta RAM1,x ;4 9 and store it in the swap space lda (ROM),y ;5+ 14 Load the right nybble of the sound data and #$0F ;2 16 apply mask sta Temp ;3 19 ora RAM1,x ;4 23 Add it to the left nybble of game data sta RAM1,x ;4 27 This byte is done. Game data in left nybble, sound in right. ;lda (ROM),y ;5+ removed ;and #$0F ;2 removed ;sta Temp ;3 removed lda RAM2,x ;4 31 and #$F0 ;2 33 ora Temp ;3 36 asl ;2 38 adc #$80 ;2 40 rol ;2 42 asl ;2 44 adc #$80 ;2 46 rol ;2 48 sta RAM2,x ;4 52 ;left nybble of sound data is in right. dex ;2 54 dex ;2 56 dey ;2 58 bpl .loop ;2/3 60/61
  15. Good Morning, I need to swap nybbles between two different bytes and have been trying to figure out some clever way to do it. Everything I try seems awkward. Does anyone have something slicker? So: These for two bytes .byte $AB ;Two sound bytes. Left ($A) cannot play, so it needs to move. .byte $CD ;Game data needs to be something like: .byte $CB .byte $DA ;So that B plays, then A plays. C and D can be any arrangement (re-assembled before use) Here's what I've come up with: RAM1 ;Swap space, no permanent game data RAM2 ;Game data .loop lda #$F0 ;2 2 Load a mask and RAM2,x ;4 5 Take the left nybble of the game data sta RAM1,x ;4 9 and store it in the swap space lda #$0F ;2 11 Load a mask and (ROM),y ;5+ 16 Take the right nybble of the sound data ora RAM1,x ;4 20 Add it to the left nybble of game data sta RAM1,x ;4 24 This byte is done. Game data in left nybble, sound in right. lda (ROM),y ;5+ 29 Load sound data asl ;2 31 Move D7 into carry rol RAM2,x ;6 37 and then into D0 or game data asl ;2 39 and repeat... rol RAM2,x ;6 45 asl ;2 47 rol RAM2,x ;6 53 asl ;2 55 rol RAM2,x ;6 61 Now the right nybble of game data is in left nybble and ;left nybble of sound data is in right. dex ;2 63 dex ;2 65 dey ;2 67 bpl .loop ;2/3 69/70 Additionally, it doesn't matter if C and D swap positions, or if their bits are reversed. They will be re-assembled before use. Also, the sound data ($AB) originates in ROM, so it cannot be manipulated until loaded. The Game data is only in RAM
  16. Good Morning! I've been tossing around this idea for quite a while and so I'm just going to put the feelers out and see what kind of interest there is. I'm considering putting together a Space Taxi team so it can be completed in a more reasonable amount of time. If you have a desire to join the team, please let me know! Thanks!
  17. Thanks! I know I'm biased but I really think it came out great!
  18. Good Morning, I have an issue in Stella where the break command fails to break at the spot in the code. Stella seems to be confused by the bank switching. For example it thinks this label is in bank one but its really in bank four: But its in 4 I've verified that it is running through the PackRAM routine.. Does anyone know how to fix this? Thanks!
  19. Hello!! Sorry its been a while.. Had to focus on training for some races, a car accident, and work.. Just wondering if anyone has any better ideas for playing digital voice nybbles inside the kernel. I have few methods here and I suppose all could be used. Assume that enough sound nybbles (~50) have all been set up in RAM prior to the start of the kernel and that a new nybble will have to be stored in AUDV1 about every 4 lines, but misses and variations probably wouldn't be too noticeable if they happen. Straight forward player: BasicNybblePlayer: ;Uses 15 cycles and A and X registers       tya         ;2 2 Use scan line index to drive the player       lsr         ;2 4 Multiply by 4 so new nybble is loaded every 4 lines       lsr         ;2 6       tax         ;2 8       lda RAM,x   ;4 12 Load the new (or existing)       sta AUDV1   ;3 15 Even though this may get stored every line, it will only change every 4 lines Hijack the DoDraw: ;Saves 8 cycles over separate player/DoDraw routines. Doesn't update nybble if taxi is present on line. Probably not very noticeable ;Taxi graphics must be padded with an additional zero line to clear GRP0 since zero is no longer loaded in A. SilentDoDraw:      lda #Player0_HEIGHT-1 ;2 2      dcp Player0Draw ;5 7       tya                     ;2 9 Use scan line index. Moved here to balance cycles. Does not affect carry flag      bcc .Playnibble       ;2/3 11/12 .DoDrawGrp0c                  ;0 11      lda (Player0Ptr),y ;5 16     sta GRP0 ;3 19       SLEEP 3                 ;3 22       jmp .SkipNybble          ;3 25 .Playnibble ;12       ;tya         ;Moved up to balance cycles       lsr         ;2 4 Multiply by 4 so new nybble is loaded every 4 lines       lsr         ;2 6       tax         ;2 8       lda RAM,x   ;4 12 Load the new (or existing)       sta AUDV1   ;3 15 Even though this may get stored every line, it will only change every 4 lines .SkipNybble Taxi disappears during speech (saves one more cycle (9) and sound isn't interrupted on those lines. One additional byte of RAM needed. CheckSpeechDoDraw:      lda RAMPlayer0_HEIGHT-1 ;3 3  Either has the true height of the taxi, or a negative number indicating speech is playing       bmi Speak               ;2/3 5/6      dcp Player0Draw ;5 10      bcs .DoDrawGrp0c ;2/3 12/13      lda #0      .byte $2C .DoDrawGrp0c   ;0 13      lda (Player0Ptr),y ;5 18      sta GRP0 ;3 21       jmp DoneSpeak           ;3 24 Speak:       tya         ;2 2 Use scan line index to drive the player       lsr         ;2 4 Multiply by 4 so new nybble is loaded every 4 lines       lsr         ;2 6       tax         ;2 8       lda RAM,x   ;4 12 Load the new (or existing)       sta AUDV1   ;3 15 Even though this may get stored every line, it will only change every 4 lines       SLEEP 3     ;3 24 DoneSpeak Thanks! -Jeff
  20. Well I just don't know.. Its the kind of thing I'll just have to put off thinking about until things are more complete. Its a really big project!
  21. Sure starting to look different now! Also, you can hear the speech being triggered (but no speech yet) Bin attached.. SpaceTaxi.asm.bin
  22. Just some screenshots of what's been going on.
  23. Awesome.. Tied for third place with Thomas!! Thanks @ZeroPage Homebrew !! ZeroPageHomebrew - Twitch
×
×
  • Create New...