Jump to content

Search the Community

Showing results for tags 'bataribasic'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type

Marker Groups

  • Members


  • Atari Systems
    • Atari General
    • Atari 2600
    • Atari 5200
    • Atari 7800
    • Atari Lynx
    • Atari Jaguar
    • Atari VCS
    • Dedicated Systems
    • Atari 8-Bit Computers
    • Atari ST/TT/Falcon Computers
  • Classic Consoles
  • Classic Computing
  • Modern Consoles
  • Gaming General
  • Marketplace
  • Community
  • Community
  • Game Programming
  • Site
  • PC Gaming
  • The Club of Clubs's Discussion
  • I Hate Sauron's Topics
  • 1088 XEL/XLD Owners and Builders's Topics
  • Atari BBS Gurus's Community Chat
  • Atari BBS Gurus's BBS Callers
  • Atari BBS Gurus's BBS SysOps
  • Atari BBS Gurus's Resources
  • Atari Lynx Programmer Club's CC65
  • Atari Lynx Programmer Club's ASM
  • Atari Lynx Programmer Club's Lynx Programming
  • Atari Lynx Programmer Club's Music/Sound
  • Atari Lynx Programmer Club's Graphics
  • The Official AtariAge Shitpost Club's Shitty meme repository
  • The Official AtariAge Shitpost Club's Read this before you enter too deep
  • Arcade Gaming's Discussion
  • Tesla's Vehicles
  • Tesla's Solar
  • Tesla's PowerWall
  • Tesla's General
  • Harmony/Melody's CDFJ
  • Harmony/Melody's DPC+
  • Harmony/Melody's BUS
  • Harmony/Melody's General
  • ZeroPage Homebrew's Discussion
  • Furry Club's Chat/RP
  • PSPMinis.com's General PSP Minis Discussion and Questions
  • PSPMinis.com's Reviews
  • Atari Lynx 30th Birthday's 30th Birthday Programming Competition Games
  • 3D Printing Club's Chat
  • Drivers' Club's Members' Vehicles
  • Drivers' Club's Drives & Events
  • Drivers' Club's Wrenching
  • Drivers' Club's Found in the Wild
  • Drivers' Club's General Discussion
  • Dirtarians's General Discussion
  • Dirtarians's Members' Rigs
  • Dirtarians's Trail Runs & Reports
  • Dirtarians's Wrenching
  • The Green Herb's Discussions
  • Robin Gravel's new blog's My blog
  • Robin Gravel's new blog's Games released
  • Atari Video Club's Harmony Games
  • Atari Video Club's The Atari Gamer
  • Atari Video Club's Video Game Summit
  • Atari Video Club's Discsuuions
  • Star Wars - The Original Trilogy's Star Wars Talk
  • PlusCart User's Bug reports
  • PlusCart User's Discussion
  • DMGD Club's Incoming!
  • DASM's General
  • AtariVox's Topics
  • Gran Turismo's Gran Turismo
  • Gran Turismo's Misc.
  • Gran Turismo's Announcements
  • The Food Club's Food
  • The Food Club's Drinks
  • The Food Club's Read me first!
  • The (Not So) Official Arcade Archives Club's Rules (READ FIRST)
  • The (Not So) Official Arcade Archives Club's Feedback
  • The (Not So) Official Arcade Archives Club's Rumor Mill
  • The (Not So) Official Arcade Archives Club's Coming Soon
  • The (Not So) Official Arcade Archives Club's General Talk
  • The (Not So) Official Arcade Archives Club's High Score Arena
  • Adelaide South Australia Atari Chat's General Chat & Welcome
  • Adelaide South Australia Atari Chat's Meets
  • Adelaide South Australia Atari Chat's Trades & Swaps
  • KC-ACE Reboot's KC-ACE Reboot Forum
  • The Official Lost Gaming Club's Lost Gaming
  • The Official Lost Gaming Club's Undumped Games
  • The Official Lost Gaming Club's Tip Of My Tounge
  • The Official Lost Gaming Club's Lost Gaming Vault
  • The Official Lost Gaming Club's Club Info
  • GIMP Users's Discussion


There are no results to display.

There are no results to display.


  • AtariAge Calendar
  • The Club of Clubs's Events
  • Atari BBS Gurus's Calendar

Product Groups

  • Subscriptions

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start










Custom Status



Currently Playing

Playing Next

Found 6 results

  1. For about a month I have been studying a little bit of Assembly through the great material gathered on the Random Terrain website. (https://www.randomterrain.com/atari-2600-memories.html#assembly_language) Although I managed to create my own kernel, several parts of it I still don't understand. And instead of spending effort with such deep learning, I researched if it was possible to simply create a kernel for batariBasic and continue programming in bB. I found this post which presents a way to use a custom kernel. With some modifications I got to this version below. It's a 2LK and I'm trying to use the same variables as bB to control the players, but this is the problem: I can't (I don't have enough knowledge) use the players pointer correctly. Could anyone clarify my ideas? Player0Draw = $A4 ; I'm not using the vars (0-47) Player1Draw = $A5 BackgroundPtr = $A6 ; $A7 .customdrawscreen custom_eat_overscan ;bB code runs during overscan. We wait for overscan to finish so the ;frame timing doesn't get screwed up. lda INTIM bmi custom_eat_overscan custom_do_vertical_sync ;just a standard vsync lda #2 sta WSYNC ;one line with VSYNC sta VSYNC ;enable VSYNC sta WSYNC ;one line with VSYNC sta WSYNC ;one line with VSYNC lda #0 sta WSYNC ;one line with VSYNC sta VSYNC ;turn off VSYNC custom_setup_vblank_timing ;use bB timing variables so it should work with both PAL and NTSC ifnconst vblank_time lda #42+128 else lda #vblank_time+128 endif sta TIM64T ; feel free to throw useful pre-kernel code in here, so long as it ; completes before vblank is over. custom_eat_vblank ;wait for vblank to complete lda INTIM bmi custom_eat_vblank lda #0 sta WSYNC sta VBLANK custom_setup_visible_timing ;my preference is to use TIM64T to ensure a full screen is drawn. lda #230 sta TIM64T ;------------------------------------------------------------------------------ ; Desenha a parte superior da tela ; 192 - 22 scanlines = 192 - (11*2) = 170 lda #$02 ; Cor cinza no PF sta COLUPF ; COR no PF lda #1 ; sta CTRLPF ; Liga o REFLECT ldx #11 UpperSection: sta WSYNC lda customPFPattern,x sta PF0 sta PF1 sta PF2 lda customPFColor,x sta COLUBK sta WSYNC dex bne UpperSection stx PF0 stx PF1 stx PF2 ; y position lda #80 adc player0height sbc player0y sta Player0Draw ;------------------------------------------------------------------------------ ;-- AREA DE JOGO ;------------------------------------------------------------------------------ ; Desenha a área de jogo ; 170 - 160 scanlines = 170 - (80*2) = 10 (base ... not implemented) ldy #80 ; Carrega o y com o tamanho da área de jogo KernelLoop: ; 15 - todal de 15 ciclos, vindos do bne KernelLoop ; Continuação da segunda linha do 2LK ; precalcula os dados usados na primeiralinha do 2LK lda player0height ; 2 17 - altura do Player0 - IMPORTANTE!! este valor deve ser altura-1 dcp Player0Draw ; 5 22 - Decrementa Player0Draw e compara com a altura bcs DoDrawGrp0 ; 2 24 - (3 25) se o Carry estiver setado, player0 está na scanline atual lda #0 ; 2 27 - caso contrário, desliga o player0 .byte $2C ; 4 31 - $2C = BIT with absolute addressing, trick that ; causes the lda (HumanPtr),y to be skipped DoDrawGrp0: ; 25 - 25 ciclos do pior caso na linha bcs DoDrawGrp0 lda (player0pointer),y ; 5 30 - carrega o formato do player0 <<----------------------------- It's not working sta WSYNC ; 3 33 - Aguarda o fim da scanline ;------------------------------------------------- ; começo da primeira linha do 2LK sta GRP0 ; 3 3 - @ 0-22, desenha o player0 efetivamente (entre os ciclos 0 e 22) lda (BackgroundPtr),y ; 5 8 - Atualizo a linha do BG sta COLUBK ; 3 11 - guardo o valor do BG no resitrador COLUPF lda (player0color),y ; 5 16 - Pega a cor do Player0 sta COLUP0 ; 3 19 - seta a cor do Player0 ; todo esse código acima precisa estar entre o ciclo 0 e 22 ; para adicionar mais alguma coisa neste scanline, é preciso liberar algo acima ; sobraram apenas 3 ciclos ... é possível ainda colocar algum padrão de PF em PF1 e PF2 ;-------------------------------------------------- ; pre calcula os dados necessáriso para a segunda linha do 2LK ; lda player1height ; 2 21 - altura do Player0 - IMPORTANTE!! este valor deve ser altura-1 ; dcp player1y ; 5 26 - Decrementa Player1Draw e compara com a altura ; bcs DoDrawGrp1 ; 2 28 - (3 18) se o Carry estiver setado, player1 está na scanline atual ; lda #0 ; 2 31 - caso contrário, use 0 para desligar o player1 ; .byte $2C ; 4 35 - $2C = BIT with absolute addressing, trick that ; causes the lda (BoxPtr),y to be skipped DoDrawGrp1: ; 28 - 28 ciclos vindo do bcs DoDrawGRP1 ; lda (player1pointer),y ; 5 32 - Carrega a aparencia do player1 sta WSYNC ; 3 35 - Aguarda o inicio de uma nova scanline ;--------------------------------------- ; inicio da segunda linha do 2LK ; sta GRP1 ; 3 3 - @0-22, desenha o player1 efetivamente (entre os ciclos 0 e 22) ; lda (player1color),y ; 5 8 - Pega a cor do Player1 ; sta COLUP1 ; 3 11 - seta a cor do Player1 ; todo o codigo acima precisa estar entre os ciclos 0 e 22. ; ainda há 11 ciclos sobrando, talvez um playfield ou ball, ou missile ; possa entrar aqui neste ponto. dey ; 2 13 - decrementa o y bne KernelLoop ; 2 15 - se não for igual a zero, pula plá pra cima ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ sty COLUBK custom_eat_visible ;wait for the visible display to complete lda INTIM bne custom_eat_visible custom_setup_overscan_timing ifnconst overscan_time lda #35+128 else lda #overscan_time+128-3-1 endif sta TIM64T lda #%11000010 sta WSYNC sta VBLANK ;bB macro to return from a bank-switch gosub or from a regular gosub. RETURN customPFPattern .byte %11011001 .byte %11111111 .byte %11011001 .byte %11001001 .byte %11011111 .byte %11011001 .byte %11011001 .byte %11001001 .byte %01001001 .byte %01001001 .byte %01001001 .byte %01001001 .byte %11001001 .byte %00001000 .byte %00001000 .byte %11001001 .byte %11011001 customPFColor: .byte $00, $AA, $00, $AA, $00, $AA, $00, $AA, $00, $AA, $00, $AA, $00 Thanks in advance.
  2. Unless bugs are identified this will be the final release of Heist. This release fixes a number of small bugs and implements a few additional features such as Bezerk style directional shooting (selectable via the Left Difficulty Switch). This release also makes (3) lives standard. Single life games are still selectable as games 4-6. I hope you enjoy. - Tim Gameplay Capture the money while avoiding the police and laser defenses. Once the money is in your possession a door will open. You still need to make it out of the bank to clear the level. All of this must be done before time runs out. Some levels are easier than others and the time is adjusted accordingly. Note that the police will not notice you until you are in their general proximity or you have taken the money. Once you capture the money all police become aware of your presence and they move with an increased sense of urgency (i.e., faster). There is a total of 20 levels using 10 playfields. Each playfield is displayed twice. The second time through you are given less time and the police move faster. If you complete all twenty levels you will flip the game and have the chance to play through them again. This time, however, the police will move faster and you will be limited to (4) bullets. Controls Movement: Use the left joystick to move left, right, up, down and on diagonals. Pause: Set the COLOR/BW switch to BW to pause the game. The playfield walls will turn lite gray and the player will face left to indicate that the game is paused. Set the switch back to COLOR to continue gameplay. Shooting: Behavior dependent upon position of Left Difficulty Switch. In either mode, the bullet travels in the direction that the player is presently moving. Mode A (Left Difficulty Switch A): If player is standing still then the bullet moves in the direction that the player last moved. This is similar to the behavior implemented in Berzerk released by Stern Electronics, Inc. in 1982. Mode B (Left Difficulty Switch B): If player is standing still then the bullet moves horizontally to the left when the player is facing left. Similarly, the bullet moves horizontally to the right when player is facing right. Game Variants Use Game Select switch while on Title Screen to cycle through game variants Game 1 – (3) Lives, Limited Time, Limited Bullets (Normal Game) Game 2 – (3) Lives, Unlimited Time, Unlimited Bullets Game 3 – (3) Lives, Unlimited Time, No Bullets Game 4 – Single Life, Limited Time, Limited Bullets Game 5 – Single Life, Unlimited Time, Unlimited Bullets Game 6 – Single Life, Unlimited Time, No Bullets Scoring $1000 for each money bag stolen. On games where you have more than one life you will lose the money if you are caught/die before clearing the level by making it through the exit door. Hints It may help your overall strategy to get the police to chase you. You can get their attention by moving close to them. This works even if you are protected behind a wall. Level Timers (Games 1 & 4) Level Time 1 30 seconds 2 24 seconds 3 30 seconds 4 24 seconds 5 20 seconds 6 16 seconds 7 28 seconds 8 24 seconds 9 14 seconds 10 12 seconds 11 20 seconds 12 16 seconds 13 20 seconds 14 16 seconds 15 36 seconds 16 32 seconds 17 20 seconds 18 16 seconds 19 24 seconds 20 20 seconds HEIST.bin HEIST Game Manual.pdf HEIST.bas I'm including the source code as it may help someone. I'm sure there are plenty of areas where the code could have been written better. Sometimes the 'hack' is actually a means of doing something without using additional variables. Other times what looks like a hack is truly a hack. It can be a little intimidating showing how the sausage is made... and there is no claim that anything performed by the code is the best way to do it.
  3. I'm trying to make a home console port of Space Race using visual batari basic. (Its my first time coding a game). I'm coding my game. Everything is going fine, but when I compile and then attempt to test the game with Stella, an error message appears in Stella. Fatal Error Invalid Instruction. So I tried it with Z26. But when I compile and open the game, instead of opening the game, it opens to a black screen with the word jammed at the bottom. Please help me. I looked everywhere but I haven't found a way to fix this.
  4. Hello. Using batari basic, I pfscroll down for a graphical effect. Number of scrolls down is random and varies according to input. On a new screen I attempt to draw a new playfield, but now it is mis-aligned because I scrolled it previously. How can I reset the starting playfield blocks to their default position without having to know the exact number of times they were scrolled? Is this possible to do in batari? Please help.
  5. Hello, I'm currently a newbie to Batari Basic and Visual bB for the Atari 2600 and had only begun to set up both programs. I installed both Batari Basic 1.5 and Visual bB build 568. So far according to the Windows 10 installation method I had extracted both zipped files and placed them together in a folder labeled "Atari2600". From there I launched the Visual bB configuration wizard and ran the install_win batch file. From there I am able to launch the Visual bB however I get error windows claiming to be script errors. I'm able to skip or ignore these messages and go into the program, from there everything appears to work as normal and I'm able to compile my code which at the moment has only been a playfield. When I test my code in the built in emulator, I'm then presented with an error regarding the file which will not allow me to run the code. Could I have possibly made an error while installing both programs or made an error with the configuration wizard? Any help or guidance would be greatly appreciated!
  6. i am in the process of making a game and well i don't know how to make an enemy shoot i only want the enemy to shoot down and up according to player 0's y position can any one help?
  • Create New...