Jump to content

Search the Community

Showing results for tags 'batari basic'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Atari Systems
    • Atari 2600
    • Atari 5200
    • Atari 7800
    • Atari Lynx
    • Atari Jaguar
    • Dedicated Systems
    • Atari 8-Bit Computers
    • Atari ST/TT/Falcon Computers
  • Gaming General
    • Classic Gaming General
    • Classic Computing
    • Modern Gaming
    • Prototypes
    • Arcade and Pinball
    • Emulation
    • Hardware
    • Gaming Publications and Websites
    • International
  • Marketplace
  • Community
  • Game Programming
  • Site
  • Classic Gaming News
  • 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
  • Tesla's Vehicles
  • Tesla's Solar
  • Tesla's PowerWall
  • Tesla's General
  • 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


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
  • ZeroPage Homebrew's Schedule

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 22 results

  1. DRAGON'S DESCENT Direct your dragon through a sprawling labyrinth, hunting for treasure, power, and danger! -Thousands of possible maps to explore, either randomly selected or predetermined -Eight different types of enemies -One mid boss, one final boss, one hidden boss -Powerups to increase firepower or health as you delve deeper into the labyrinth ...and an easter egg or two, of course! Latest Build [August 12]: I've changed the graphic for the exit. I even squeezed a few more bytes out so that it has "closed" and "open" graphics, depending on whether you have a key. I'm hoping this is close to the final version, so any feedback on how it plays is appreciated! DragonsDescent_2019_8_12.bin Older builds: I've added four separate high scores, one for each "mode" - they should show up when you have the appropriate switches/settings applied on the title screen. I think it works properly (with caveats, for instance you can fool it by using the switches mid-game) but I would appreciate feedback! I also added an easter egg bug fix. DragonsDescent_2019_May_HiScoreTests.bin Here's a video of the first three levels, up to the midboss. The default mode has four more levels ending with the final boss, and other modes allow potentially thousands of different levels! This game is, among other things, an experiment in procedural maze generation for the Atari 2600 - There are a few secrets to find, so I won't reveal everything here, but I will give a basic outline of the controls and mechanics. [EDIT: HIGH SCORE CONTEST!] High score contest! I'll be posting in the High Score Club forum with details - it's very informal, but I have a specific, common build people can use to play. Further details here: http://atariage.com/forums/topic/289548-dragons-descent-homebrew-high-score-contest/ High score contest build: DragonsDescent_2019_April_Competition.bin DragonsDescent_3_22_2019_Beta8.bin 3-22-2019 Another update - found a semi-exploit (really just method of scoring late game that results in boring gameplay) and adjusted things to discourage the behavior. DragonsDescent_3_19_2019_Beta7.bin 3-20-2019 Another update - no better method to find a bug or quirk in a project than to claim it's finished! The method to reach the hidden boss, while functional, had some odd loopholes and inconsistencies that I wanted to close. Fixed a thematic inconsistency involved with getting to the hidden bonus boss. DragonsDescent_3_5_2019_Beta6.bin - Font change and a few other tiny adjustments. DragonsDescent_1_10_2019_Beta5.bin - Retry random maze option (press up or down on the Game Over screen to see the "Retry Maze" screen, press button to start again), starting rooms have no enemies, score placement adjusted. DragonsDescent_12_16_2018_Beta4.bin - Maze generation fix, random seed shown when picking random level, other small fixes I might go into more details about what I did to fix the maze generation later - the short answer is that every seed -seems- to work now, without the hacky checker I had in earlier versions. I also added a -little- more time solve a given level before various "complications" arise. It can still be a little mean. I'm keeping an informal version history even as I remove the older versions - I can repost them if folks clamor for the older versions, but hopefully the bugs present in them have been addressed. Version History: 3-5-2019 - Changed to a custom font. Semi-final build. 12-16-2018 - Current public version. All attempted maps seem to be solvable, certain UI color cycling adjusted. 12-15-2018 - Tentative "fixed" beta for random mazes This version has a band-aid for the random mode bug - I'm keeping it here for the moment in case the above version has some unforseen bug or error. 12-14-2018 - Old version, only play the default mode (Left/Right switches set to "B") on this one. I've tentatively tested it on my ol' sixer as well as the Flashback Portable, and the game seems to run ok, although I would welcome any bugs/issues found if anyone else plays. I'm curious to see what people find! Current known bugs/fixes/updates: -You can now retry a randomly generated maze by pressing up or down on the Game Over screen - when you see words "Retry Maze," press the button to restart the game at your old starting point. -Starting rooms on a level no longer generate enemies, giving you some time to breathe or get used to the controls. -Hopefully the level generation bug is fixed - any random seed should generate a solvable level. When choosing a random level, you will be shown the seed in case you want to try the level again. -I also fixed a flashing problem to a more pleasant "pulsing" effect for max health/fire breath. I'm working on a little write up of how I generated the mazes, and programmed the game in general. Many thanks to those on this board who have posted an incredible amount of useful information, as well as those who have authored the kernels and other components on which this game has been programmed. STORY Legends speak of a labyrinth created by the mind of a dreaming elder dragon. This maze is filled with the promise of wealth, power and danger-an endless length of corridors, with spectres and monsters appearing out of thin air, and strange happenings occurring the deeper one travels and survives. You are a young dragon yourself, perhaps trapped here, perhaps tempted by the wealth and power that drives your kind. Regardless, you have little choice but to find your way through the corridors and chambers of the labyrinth, finding glory, or perhaps escape... CONTROLS Joystick - Move the dragon around the labyrinth. Button - The dragon will breathe fire in the direction it is facing. SETTINGS Left Difficulty A - Game will continue indefinitely, only ending with a game over. Left Difficulty B - Game will end after you complete level 7 Right Difficulty A - You will start in a randomized maze. Right Difficulty B - Maze will be the same layout each playthrough. Game Select (Make sure right difficulty is also set to "B") - Will allow you to set the random "seed" when starting the maze. Move the joystick left/right to select the left or right seed, each can be set to a value between 1 and 255. The title screen will reflect what options the game is set to - an infinity symbol for an unending maze, and an alternating maze pattern for random mazes. HOW TO PLAY Depending on your game settings, you may find an end to the maze on the 7th level, or the maze can continue until you are defeated, trying to attain the highest score! A - The Player B - Dragonfire C - Monster D - Firepower Meter E - Score F - Health Meter G - Room exit Each level of the maze is made up of several rooms - you can leave through any exit on the boundaries of the screen you find. To make progress in the maze, find the key on each level, and then the level's exit. The exit, resembling a door with a key imprint, will only activate if you touch it while you have the key found on the same level. Upon each new level you will face more dangers but also potentially increased power and scoring! Key Exit Avoid touching walls and enemies - doing so will deplete your hit points, and eventually terminate your game! Scoring comes from collecting gems and defeating monsters. You get more points for defeating monsters in deeper levels, and a slightly higher score for each shot you use with higher fire breath power. In addition to a key and exit, each level of the labyrinth has a treasure room: This room allows you to pick one of three power ups, just wait until you see the one you want: Gem - increases your score. Heart - increases your total hit points, while completely replenishing your health. Lamp - increases the strength of your fire breath, while refilling its supply. Don't stay too long on a single level, or you may find things getting much more difficult! The deeper you explore, the more monsters, dangers, and higher scores you find... Your hit points are indicated by meter on the right, as well as the color of the dragon. The strength of your fire breath is indicated by the color of your score, as well as the size the fire itself. If your firepower ever increased, you only have a limited amount you must replenish somehow - this amount is indicated by the meter on the left. If it ever runs out, you will go back your initial, weakened fire breath. You can find non-flashing hearts and lamps from fallen enemies, which will replenish a small part of your hit points or fire breath, respectively. If you survive long enough, you may reach a maximum amount of hit points or firepower, in which case your health meters or score will be flashing. SCORING Defeating Enemies: Fiery Eye - 5 points Medusae - 10 points Dragon Head Sentry - 10 points Teleporting Masque - 20 points Janus Guardian - 25 points Ghost - 20 points Dragon - 25 points Shadow - just 1 point base, if you can even manage it. Getting rid of it might be reward enough, though... Revenant Dragon (Midboss) - 500 points Elder Dragon (Boss) - 1000 points Jeweled Dragon (a hidden beast) - 2000 points Collecting a gemstone in a treasure room will get you 500 points. Your strength of your firepower is also added to your score whenever you hit an enemy with your fire breath, so you can gain 1-6 points for every hit even if an enemy is not defeated. Defeating enemies on lower levels adds further bonuses: Level 2 - 1 point Level 3 - 2 points Level 4 - 3 points Level 5 - 4 points Level 6 - 5 points Level 7 - 10 points Level 8+ - 15 points HINTS -Find a balance between increasing your hit points and increasing your firepower - each level gives you the opportunity to do one or the other. -Gems give you large amounts of points, but your forgo an increase of power for that level - they're for those brave or foolish enough to think they can survive regardless. -The beginner mode always gives you the same maze, be sure you become familiar with the game before tackling the random mazes offered by the advanced mode. -Each enemy has a specific type of behavior, learn all of them-and learn how to counter them! -Time can be your enemy, but remember that you don't have to fight everything - pick your battles! -Despite the enticement to hurry, be patient and careful! Most situations can be escaped with a little bit of caution and forethought, and impatience has ended more games than the cruellest monster. There are many secrets to discover within the labyrinth, so I won't tell you everything here! [Ongoing EDITs for bug tracking/reporting] DragonsDescent_3_22_2019_Beta8.bin - Scoring adjustment DragonsDescent_3_19_2019_Beta7.bin - Fix on method to finding hidden boss. Semi-Final build. DragonsDescent_3_5_2019_Beta6.bin - Font change, cleanup. DragonsDescent_1_10_2019_Beta5.bin - Retry option, quiet starting room, UI adjustments DragonsDescent_12_16_2018_Beta4.bin - Random maze fix, and other adjustments, current recommended version
  2. Welcome to Atari Dev Studio for designing homebrew games for the Atari 8-bit systems (Atari 2600 and 7800). Atari Dev Studio is a one-stop-shop for any programmer and includes a number of built-in features to allow you to design, develop and test games for your favourite system. Get started with batari Basic (2600) or 7800basic (7800) using easy to learn BASIC-like languages or go hard-core with assembly using dasm. During development test your creation using the Stella (2600) or A7800 (7800) emulators right from within Atari Dev Studio. Requirements Atari Dev Studio is an extension for Microsoft's cross-platform IDE Visual Studio Code and will run on the Windows, Linux and macOS platforms. The latest releases of batari Basic, 7800basic, dasm, Stella and A7800 are included so you can begin coding straight after installing the extension. Features Atari Dev Studio includes the following features: Develop your game on Windows, Linux or macOS Compile source code for your Atari 2600 or 7800 using batari Basic, 7800basic or dasm Optionally launch and test your game using the Stella (2600) or A7800 (7800) emulators Built-in Sprite Editor (also suitable for tiles and other objects) [preview] Manage your project using the File Explorer or version-control your source code directly with GitHub (and others) using the built-in features of the Visual Studio Code platform. Provide references to your own specific releases of each language or emulator rather than use the includes ones via the Settings. Additional features are planned for the future. At this time the focus is on the core functionality and ensuring full cross-platform support. Installing Atari Dev Studio What is Visual Studio Code? Visual Studio Code (VS Code) is a streamlined code editor with support for development operations like debugging, task running, and version control. It aims to provide just the tools a developer needs for a quick code-build-debug cycle and leaves more complex workflows to fuller featured IDEs, such as Visual Studio. Which OSs are supported? VS Code is a cross-platform application which runs on Windows, Linux and macOS. See requirements for the supported versions. Note: Linux users on 64-bit systems will be required to install the 32-bit compatibility libraries on your system to ensure everything will run as expected. Installing the extension Once you have installed VS Code (available here), open the VS Code program and complete the following: From the Activity Bar, click the Extensions button to display the Extensions window. From the Extensions window, type Atari into the Search box and press Enter to display the list of available extensions. From the list of available extensions, locate Atari Dev Studio and click the green Install button. Updating the extension Updates will be regularly made available and will be announced via the AtariAge forum (you will also be notified in VS Code). To update to the latest release: From the Activity Bar, click the Extensions button to display the Extensions window. From the Extensions window, search the Enabled list, locate Atari Dev Studio and click the Update button. Note: It is recommended you restart VS Code after installing an update. Using Atari Dev Studio Compiling your program To display the available extension features press CTRL+SHIFT+P to display the Command Palette. From the command palette prompt type adv to short-list the available options: ads: Open the Welcome page ads: Compile source code ads: Compile source code and run in emulator Language Selection When you load a file the initial language will be chosen based on the file extension. For example: batari Basic (.bas, .bb) [Default for .bas files] 7800basic (.bas, .78b) dasm (.dasm, .asm, .a, .h) To change a language you can click on the Status Bar Language selector and a list will be shown allowing you to choose another language. Optionally in the Settings you will be able to either let the extension choose based on the active language or set a specific language to always compile against. Status Bar Apart from using the Command Palette to select compilation, there are a number of short-cut buttons on the Status Bar allowing you to: Display the extension version (might be useful at times) Open the Welcome page Open the Sprite Editor Compile source code Compile source code and run Note: The short-cut buttons on the Status Bar can be turned off via the Settings. Sprite Editor [preview] Atari Dev Studio includes a simple and easy to use Sprite Editor allowing you to create sprites, tiles and other objects for use in your projects. It has the following features: New Project wizard allowing you to select the size, region (palette) and total colors of your sprites Load and Save projects allowing you to save and come back to on-going work Editing features such and palette selector, zoom, pen, eraser, fill and move modes Ability to manage your sprites in a sortable list with options to copy, paste, duplicate, resize and delete Export sprites to .png - either selected or all (compatible with 7800basic 3+1 and 12+1 image requirements) Load and save palettes More features are planned... The Sprite Editor is based on Spritemate by Ingo Hinterding (GitHub) and was suggested by RandomTerrain for inclusion in Atari Dev Studio. I have customised the source to provide the required features necessary for editing sprites, tiles and objects for the Atari platforms. This work is currently in preview and will be on-going until all required features have been added. Note: The Sprite Editor is currently configured for working with 7800basic images. Settings There are a number of compiler, emulator and editor configuration options available in Atari Dev Studio which can be changed via the Settings (Preferences -> Settings -> Extensions -> Atari Dev Studio). This is a preview This software is currently in preview and contains the following missing or untested features: [macOS] Stella emulator is missing. You will be required to provide your own path to Stella for the time-being (via the Settings). [macOS] 7800basic and the A7800 emulator is untested [Linux] Potential for missing packages (On Ubuntu 18.04.02 x64 I have been required to install a number) I don't currently have direct access to a macOS machine to finalise feature integration but will do so in the near future. The previous incarnation of this extension (containing batari Basic and dasm) has been tested by users on macOS and as the process is very similar to Linux I do expect the extension to function correctly. Debugging the extension During the development phase of the extension I've added some developer output to assist with any issues that may appear. To view this output, open the VS Code Developer Tools by selecting Help -> Toggle Developer Tools from the menu, and in the debugger window ensure the Console tab is activated. This information may help identify the area where the extension is failing to process as expected. Known Issues There are currently no known feature issues. If you find a problem please raise an issue on GitHub or contact mksmith at the AtariAge community. Acknowledgements This extension is only available due to the great people of the AtariAge community who have created these tools to help developers build their vision. Special thanks to the following for either allowing the inclusion of their tools or for their ongoing help and encouragement: 7800basic - Mike Saarna (RevEng) batari Basic - Fred 'batari' Quimby dasm - the many contibutors Stella emulator - Stephen Anthony (stephena) A7800 emulator - Mike Saarna (RevEng) and Trebor Muddyfunster, TwentySixHundred, Lillapojkenpåön and vbauer for their additional testing and bug-reporting of the previous incarnation of this extension for batari Basic. Mats Engstrom (SmallRoomLabs) for his valued testing, suggestions and enhancements to Atari Dev Studio The AtariAge community including Albert, RevEng, Random Terrain, Gemintronic, Karl G and ZeroPage Homebrew Languages Atari Dev Studio includes the following programming languages: batari Basic (release BB.1.1d.reveng41) batari Basic created by Fred 'batari' Quimby is a BASIC-like language used in the creation of Atari 2600 games. batari Basic is compiled to generate a binary file that can by used on actual Atari 2600 VCS hardware via cartridge (such as a Harmony or UNO cart) or by using an Atari 2600 VCS emulator such as Stella. batari Basic is an external project and can be downloaded separately from here. Further information is about this release is available here at AtariAge. 7800basic (release 0.6 Jul 13 2019 22:37:29) 7800basic is a BASIC-like language for creating Atari 7800 games. It is a compiled language that runs on a computer, and it creates a binary file that can be run with an Atari 7800 emulator, or the binary file may be used to make a cartridge that will operate on a real Atari 7800. 7800basic is derived from batari basic, a BASIC-like language for creating Atari 2600 games. Special thanks to the bB creator, Fred Quimby, and all of the the bB contributors! 7800basic is included as part of this extension with many thanks to Mike Saarna (RevEng). 7800basic is an external project and can be downloaded separately here. Further information about this release is available here at AtariAge. dasm (release 2.20.11 - 20171206) dasm is a versatile macro assembler with support for several 8-bit microprocessors including MOS 6502 & 6507, Motorola 6803, 68705 & 68HC11, Hitachi HD6303 (extended Motorola 6801), and Fairchild F8. Matthew Dillon started dasm in 1987-1988. Olaf 'Rhialto' Seibert extended dasm in 1995. Andrew Davie maintained dasm in 2003-2008. During all this time, several other versions of dasm sprung up all over the net as well, making the exact chronology quite complicated. Peter Froehlich started maintaining dasm in 2008, hoping (against hope) to unify the various strands of development a little, and to maybe give dasm another 20 years of productive life. 🙂 Emulation Atari Dev Studio includes the following emulators for testing purposes: Stella (release 6.0.1 - 20190606) Stella is a multi-platform Atari 2600 VCS emulator released under the GNU General Public License (GPL). Stella was originally developed for Linux by Bradford W. Mott, and is currently maintained by Stephen Anthony. Since its original release several people have joined the development team to port Stella to other operating systems such as AcornOS, AmigaOS, DOS, FreeBSD, IRIX, Linux, OS/2, MacOS, Unix, and Windows. The development team is working hard to perfect the emulator and we hope you enjoy our effort. Stella is included as part of this extension with many thanks to Stephen Anthony. Stella is an external project and can be downloaded separately here. If you enjoy using Stella place consider donating to ensure it's continued development. A7800 (release 188-03) A7800 is a fork of the MAME Atari 7800 driver, with several enhancements added: Support for emulation of Proline Joysticks, VCS Joysticks, Lightguns, Paddles, Driving Controllers, Keypads, Trak-Balls, Amiga Mice, and ST Mice. Maria DMA timing has been improved further, with the addition of accurate DMA hole penalties. Improved saturated/normalized colors with palette selection. Streamlined UI including menu options to have an Atari 7800 system focus. A bug in the existing RIOT emulation has been fixed. MAME compatibility and syntax has been maintained, to allow for the reuse of MAME configuration files and front-ends. A7800 is included as part of this extension with many thanks to Mike Saarna (RevEng). A7800 is an external project and can be downloaded separately here. Releases 20190807 - Build v0.2.8 Fixed issue with rem keyword mis-highlighting when used within variables (batariBasic and 7800basic) Added missing 7800basic keywords: tallsprite Updated existing and added additional hover tooltips for 7800basic keywords 20190711 - Build v0.2.7 Added missing 7800basic keywords: hsgamename, noflow, trackersupport Added additional hover tooltips for 7800basic keywords Sprite Editor Updated Editor window to be resizable Re-arranged Toolbar order 20190614 - Build v0.2.5 Added hover tooltips for 7800basic keywords (a large majority) Updated 7800basic to 0.6 Jul 13 2019 22:37:29 20190611 - Build v0.2.4 Updated Stella to 6.0.1 (Windows, Linux) 20190604 - Build v0.2.3 20190528 - Build v0.2.2 20190522 - Build v0.2.1 20190521 - Build v0.2.0 20190513 - Build v0.1.9 20190510 - Build v0.1.8 20190506 - Build v0.1.7 20190428 - Build v0.1.6 20190425 - Build v0.1.5 20190421 - Build v0.1.2 & v0.1.3 20190420 - Build v0.1.1 20190419 - Build v0.1.0 Initial release Manual download
  3. Yes! It's finally here. The playable Demo of Robot Zed. Years in the making! I spent all day trying to figure out this game breaking bug that's been plaguing me for months and finally figured it out. Now I can finally release this thing. You're a cute little robot that can obtain the powers of certain enemy robots once you defeat them. You can use those powers in your quest to rescue all of your Robo Buddies! This is just the opening level that everyone plays before you get access to any of the other levels. This game is also a rogue like with inspiration from Mega Man and Kirby. Here are the control instructions: Left / Right - Moves in that direction Up - Fires current weapon power Fire Button - Jumps Fire Button AND Down - Cycle through your powers to select (if you've obtained any). You only have one life and an energy status. Every hit by enemy fire, an explosion, or even running into an enemy will knock it down. To the right is the your power ability number. Every time you use one of your selected abilities, it will drain this. Once you are down to zero, you will return to normal power Zed. You can obtain life energy from the regular bots that don't give you any special powers. You can obtain special powers from the robots with special abilities. You receive their ability plus 10 power ability points. If you already have their ability, you will receive 5 power ability points instead. When you lose all your life energy, it's game over. When you destroy an enemy, it will release their power module and will follow you until you collect it. The regular bot won't always give you life energy. So, have fun, tell me what you think, and if you run into any crazy bugs. I will also be updating this demo with additional window dressing so to speak, to make it look even better. Once I make any additions, I will upload the new version. Note: Quick edit. Minutes after uploading I realized I forgot to remove a recent bug checker I added to the code. I removed it and have uploaded the correct version. RobotZed_07.bas.bin
  4. Here is a project that I have been working on for some time and it's finally in a shareable state. VisualbB is an integrated development environment for writing Atari 2600 programs in batariBasic. For anybody that is familiar with Microsoft Visual Studio, it has a similar look and feel. Hope somebody find this useful *New* Build 554 Update Notes (Because AA limits 2MB uploads you'll need to download both files and unzip it to the same folder) VisualbB_1.0_Build_554.zip VisualbB.SoundLib1.0.0.1.zip Work in Progress You can grab the latest from my blog. Along with changes that work with the bB1.1 beta builds there are other enhancements like a title screen wizard, integration with bblint, and a new bookmarking feature. These builds are specific to the beta versions of bB1.1 so use at your own risk. It should work fine (even better?) with the latest 1.0 release of bB. Previous Releases Build 550 Update NotesVisualbB_1.0_Build_550.zip VisualbB.SoundLib1.0.zip Build 548 Update NotesVisualbB_1.0_Build_548.zip Build 544 Update NotesVisualbB_1.0_Build_544.zip Build 536 Update NotesVisualbB_1.0_Build_536.zip Build 535 Update Notes VisualbB_1.0_Build_535.zip Build 532 Update Notes VisualbB_1.0_Build_532.zip Build 530 Update Notes VisualbB_1.0_Build_530.zip VisualbB_1.0_Build_526_.zip Feature list: Project Management and Grouping Color Sprite Editor Image Importer & Converter (works with the bitmap kernel and titlescreen kernel) Sprite Animator Color, Height Playfield Editor Project Wizard for creating new projects Code editor with Syntax Highlighting and color coding Music composing and Sound Editing Built in integration with bB compiler Built in integration with multiple Windows Atari 2600 emulators Built it in TIA Palette Built in Score Table Editor Quick bB Commands for rapid application development Quick launch Online Guide available here Troubleshooting guide is here Daniel Davis has started a set of video tutorial here Prerequisites If you are not running Vista or Windows 7 then you'll need to make sure the .NET Framework 3.0 is installed If you are running Vista you may need to RunAs Administrator. If you are logged in with admin privileges or have turned off UAC then it should just work If you are having trouble with the music and sound editor, it's likely you don't have the .NET 1.1 runtimes installed. Older machines don't include it and I believe newer ones won't allow the install.You can just copy msvcr71.dll to your visualbB folder. msvcr71.zip Optional If you are having trouble you may want to try a different 2600bas.bat 2600bas.zip If you're using Windows 7 64-bit, you'll need to update your bB files. Here is a copy of my working bB folder bBWin7_64bit-2-26-2013.zip You can learn more by reading this thread. Updated on 2/13/2013 with RevEng's jitter fix If you're having trouble using the sprite/playfield editor go here for a registry fix. Special thanks to Random Terrain for beta testing and submitting bug reports for many, many years! Screen Shots -Jeff bBWin7_64bit.zip
  5. [ON HOLD] So DionoiD has now released his WIP of Tower of Rubble and his take is amazing to say the least! Great visuals, music and game play really makes it a fantastic Atari 2600 conversion. So for now I'm going to leave this to one side - I might pick up the game to maybe do something different down the track. I'm also making the source code available if anyone wants to make use of anything. Tower of Rubble How long can you survive on the lethal TOWER OF RUBBLE as it crumbles and rebuilds itself around you? This is my first Atari 2600 game written batari Basic and DPC+ as a way of learning to code the Atari which I have recently returned to after a very long hiatus. I started coding just before Christmas so about 4 weeks worth of work so far. How to play Control the player with the joystick only (no fire button) moving left and right to run across the tiles and pushing up and down to climb. Learning to jump is key to surviving the tower and is essentially automatic: you jump off the edge and depending on whats in front of you, you will jump across and hang or drop and hang you can climb down backwards into a hanging position then move left/right to jump across (again depending on whats in front of you). there is a short jump (between 1 tile gap) and a long jump (between 2 tile gap). State of the game Currently a basic mechanics of the game is complete and the following is essentially complete: the player can run, jump, climb and hang around the main beam drops tiles randomly another beam destroys tiles and sends them crumbling into the water (moving from the outside-in) some basic sounds (walk, jump, death) pause game with Color/B&W button (press fire to continue) game currently ends and pauses for a period of time before returning to title screen (you can restart directly after a short pause here by pressing fire) I've had to work around a few things to keep the frames from jumping (hopefully!) There is still a number of things to finalise: test on real hardware (Harmony cart on it's way) balancing - game runs quite quickly ATM add some variation to the tiles (currently causing a few frame issues so not sure I will be able to do it) sound and music - always an issue for me but we'll see how I go! horizontal beam - will need to look at drawing this with the background (I believe?) - have about 900 bytes available in the bank I'm using for the beams. other beams - there are a couple of other beams which I need to investigate which drop and clear tiles slightly differently game over notification - still deciding on whether to add this as it will explain your death (would love to overlay but doesn't appear possible) any remaining bugs would love a 2 player version - I've partially coded it so this may be possible - not sure how may frames might be left though Feedback Any feedback would be very much appreciated. Real Hardware 17/01 - Currently it appears the game doesn't work on real hardware when launching off the title-screen (frame overrun) - will investigate. 18/01 - A build has been tested by @cimmerian which has fixed the launching issue but I still have a minor overrun with the crumbling beam to sort through 21/01 - This build should now run on hardware without any frame overruns [TBC] Downloads 20190121 - all frame overruns should now be removed (Stella is showing no overruns) as I've fully split the game initialisation (start) and beam completion (ie. main beam - adding tile, crumbling beam - removing columns) over multiple frames. This should set me up for adding the next horizontal beam (fingers crossed). towerofrubble.20190121.bin Older builds 20190117 - this release includes some sounds (Walk, Jump and Death), a number of optimisations to provide better/faster access to the ram bank, reduced cross-bank access (found 1 or 2 not required) and cleaned up a lot of no longer used code. The game runs a lot smoother and seems to have removed most/all frame overuns (finger crossed). towerofrubble.20190117.bin 20190115 - Initial WIP release towerofrubble.20190115.bin
  6. Dragon's Descent Level Generation The latest build is here: DragonsDescent_3_22_2019_Beta8.bin A recent build is here: DragonsDescent_3_19_2019_Beta7.bin A fairly recent build is here: DragonsDescent_3_5_2019_Beta6.bin An older build of the game is here: DragonsDescent_1_10_2019_Beta5.bin ...an an even older version here: DragonsDescent_12_16_2018_Beta4.bin When I posted my Atari 2600 game "Dragon's Descent," I said, among other things, that it was an experiment in maze generation for the Atari. I'm fascinated with algorithmically generating virtual spaces, from VR to arcade games. When given only a few kilobytes to work with, using procedural systems almost becomes a necessity. I wanted to see if I could make a "desert island" game that someone could play multiple times while still getting a sense of novelty - one of my favorite parts of a good Roguelike. I learned to program for the Atari 2600 using batari Basic, which has proven very handy and fun. I'm using the 16k SuperChip template - this gives me four banks to work with, a little more resolution, and extra RAM, but still keeps things relatively simple. High end games in the early 80s could use this setup. One caveat - Some of this comes from my imperfect understanding of how rand works in batari basic. In practice it seems that using the 16-bit random generator means you can set each byte of the "seed" independently, either by setting rand = <value> or z = <value>. It seems to work pretty well for me, but there's still a lot I can learn... (click to enlarge) Each level generated in Dragon's Descent comes from a specific random seed based on the 16 bit random function used by batari Basic. Using the same seed will produce the same maze. Since the random seed uses two bytes, I can vary each byte, and in this case I usually pick one as a "world" byte and the other as the "level" byte, adding 1 to the "level" byte to create a new, but replicatable maze level. I even allow the player to select the seed they want using the "Select" switch, acting as a de-facto level select mode. The random seed primarily drives where the actual rooms exist within an 8x8 grid (7x8 after a fix, a silly story I might get to later). I allocated 8 bytes in RAM, and used their bit values to indicate if a room exists (1) or not (0). Using the array function I could see what each row maze rooms looked like. Going into this, I thought that getting the bit value would be relatively easy, but alas Batari Basic cannot use a variable when checking a specific bit of a variable (variable{2} is fine but variable{x} is not). The other way to check a given bit in a byte is to bit shift, but that required a bit of assembly. My clumsy implementation produced a bug I only found much later, but the system seems to work. As for the generation of rooms within the maze, the algorithm is pretty simple. Each maze has several rooms, but specifically includes a Starting Room, an Exit Room, a Key Room, and a Treasure Room. Each of these rooms is placed in a separate quadrant of the 8x8 maze, although which room gets which quadrant is randomly determined. Separating the rooms like this guarantees that they won't be placed on top of one another (bad) and -usually- spreads them out to make a more interesting maze. If I just did this, though, there wouldn't really be any dead ends, and the odds are high of each room being very close to each other (there's a chance they'll all be next to each other, and a 4 room maze is not really a maze). To help add potential loops and dead ends I also add in 2 "spare" rooms placed randomly but each on specific areas of the maze, roughly corresponding to opposite corners of the maze, away from the center, to make sure the maze is properly spread out, and entertain the possibility of a dead end or two. To connect a room I check to see where the rooms are in relation to each other - I then create a horizontal corridor until a passage of rooms is vertically aligned with the target room, and them vertically connect them. In a larger maze array this would show up as a fairly obvious set of "L" shaped passages, and sill kind of does, but an 8x8 array is small enough that the resulting patterns aren't too obviously L shaped. As the passages criss-cross you get loops, dead ends, and large internal spaces, creating new rooms as I make my way towards a special room. I don't connect all rooms to each other - that would pretty much fill the 8x8 array and always leave a fairly open maze. Certain rooms will always connect with certain other rooms, which in sum total means you can eventually get anywhere you need to. The start room always connects to a spare room, while that same spare room always connects to the exit. This increases the probability of more interesting maze - while a straight shot to the exit (or just having it next door) can still happen, you generally have to turn a few corners, even before you try to find the key. The 8x8 bit array just stores if there is a room or not. I also store the location of each of the 4 special rooms in their own byte, being a value between 0 and 63, accounting for the 64 possible rooms in the 8x8 grid. At any given point I might need to convert this 1D array value to a semi-2D bit/byte location, which results in some clumsy code on my part. What I outlined above accounts for the maze room placement, but not the actual contents of the room- this involves another system. Each of the special rooms has their own playfield data, and I have around 10 different room designs defined as playfields for non-special rooms. In order to determine what kind of room will be in a given place on the 8x8 array, I have an array of 64 random "noise" values stored in ROM. A simpler maze setup would just equate one value to one type of room, so the array bit at (2,3) would always have room 7, for instance. Instead, I also take into account what level the player is currently on (0-7), and add a further lookup table of rooms for each level. While mixing things up a little more, this also allows more difficult or wall-heavy rooms to have a higher chance of appearing the deeper you go. What I've outlined here is the "pseudo-code" for generating the mazes - implementing this all in batari Basic was interesting, and required a few tricks. Explaining everything would take a while, but I'll say here that key components involved referring to 8 adjacent variables in RAM as array data, and bit-shifting/ORing binary values in order to actually set the room values. According to my calculations, there are potentially 255x255x(8 variants dependent on level depth) = 520,200 different mazes. A lot of this depends on the quirks of the random generation system, and I'm certain there are repeats, but I did a few experiments in outputting a few dozen mazes and found a pretty good variation - below are a few maze shapes that have been produced (I ended up outputting the data to the player sprite and making screenshots to make these): I might go into further detail on how the code actually works in a later post, but I wanted to get some of this knowledge posted, and show how some of the game works "under the hood."
  7. Sorry, unlike last year I was unable to finish this game on Christmas Eve, however I decided to use Snow Flakes to celebrate New Years Instead. For Fans of the Original Snow Flakes (2017) you'll be happy to know this version of the game is vastly superior in every way. The background isn't as empty and includes an Igloo The Paddle from before is now replaced with a Sled The Paddle controller is now supported (and recommended) Up to Two snow flakes at a time 5 Phases with each one becoming more difficult From Day to Night. The sky becomes darker the more phases you conquer Highscore is Saved Here's how to Play: Fire Button to Start Reset to go back to Menu Color Switch to Change Controls (Color = Joystick and B/W = Paddle) Left Difficulty Switch to change the size of your Sled Right Difficulty Switch to change how many flakes appear at a time Pro Tip: Phases change depending on time, not how many snow flakes you catch. 1st Phase is 30 seconds, and then the next one increases by another 30 seconds, so Phase 2 is 60 seconds, and the 3rd is 90 etc... Hope you enjoy, and of course have a great New Year Edit: I tried to upload this before 2019, however I was in such a rush I forgot to add the .bin file Snow_Flakes_2018.bas.bin
  8. Something from my vault of unreleased shovelware for your independence day enjoyment. shootshit.bin
  9. Hello, AtariAge! I decided to get into bAtari BASIC programming after sprybug's wonderful Zippy the Porcupine, although I did have a small bit of experience with the language after watching Tinkernut's video on it. My first full game with it is called "Wal-Rush!" This is actually my port of my other original game, Wal-Rush! on Scratch (written for a contest over at CodeWalrus. I am still waiting for the results, if anyone wants to ask. The controls in this one are LEFT and RIGHT to move, and FIRE to fly! You get 1 point every so often as you fly, and you can eat the fish for 10 points. Don't crash into the spikey mines, or else you EXPLODE! (I am planning to add an invincibility powerup like my original game, and that is coming up!) I used the amazing Titlescreen Kernel to make the titlescreen, but other than that, this game is written in pure bAtari BASIC (perhaps inefficiently at times; please, tell me if I'm coding inefficiently.) All of the code is REMed, so if you want to modify it, I think you could understand the code. What I would really like is a sound engine so I can put in sound effects, and maybe a jingle that plays throughout the game. If anyone can tell me how to do that, that would be swell! Here is a video of the gameplay, as this game stands. Tell me what you think so far! Wal Rush A2600.zip
  10. Dear all, I'm pleased to announce the availability of the first playable release of Ms Snake! my first homebrew game developed using Batari. It is a remake of the classic Snake. It is very simple and tested using Stella on Windows. Obviously is not finished, I'm working on: 1. Graphic of the Title and Game Over screens [DONE] 2. Scoring system [DONE] 3. A second element in the game logic (aka Red Spider) [REMOVED] It's my intention to complete the game before this Autumn. Meanwhile I would be very happy to receive your feedback and suggestions added v1.0 releases NTSC/PAL60 use Color/BW switch to change color palette PAL50 fixed version in this release: no more auto-biting in case or reverse direction restored old title screen with animation (Ms Snake closes eyes every 3 seconds) Thanks, Daniele ms-snake!.bas.bin ms-snake!-0.1-NTSC.bas.bin ms-snake!-0.2-NTSC-PAL60.bas.bin ms-snake.-1.0-PAL50.bas.bin ms-snake!-1.0-NTSC-PAL60.bas.bin
  11. Hey all. First post, first game, first question. I'd like to make a simple two-player fighting game. I have 2 player sprites controllable on screen, a background, and now I just need to define some things such as the edges of the screen where the players bump into, bumping into eachother, and add a missile-based punch function, and collision between those missiles and the two players. attached is my (likely rough) code, everything working up to the point where I need to add the things described. As far as work flow goes, I've gotten to the point where I need to figure out and add collision detection, and I haven't yet begun exploring the missile system, but help with both would be very valuable to me. So far I've seen lots of complicated examples of collision detection, where the playing field wasn't a solid block that the players appear in front of (like my game), and included X and Y axis movement. I only require X axis movement, so I only require X axis collision detection, and between a total of 4 (or 6, including the edges of the screen) objects. I feel as though I understand what needs to be coded, but I'm not sure how to do it without making things far more complicated than I perceive that they need to be. in psuedo code: if collision(player0, player1) then player0 can't move right and player1 can't move left if collision(player0, left edge of screen) then player0 can't move left if collision(player1, right edge of screen) then player1 can't move right I think I read under random terrain's tutorial stuff that only standard objects like player1, missile0, etc are valid arguments in the collision/!collision statements. how do I work around this? I'd be really stoked to find out that the required work is easy, but if it required defining several constants or dimensions and includes checks and calls in the main loop.. can someone help spell it out for me? I really appreciate any help on this one. Lincoln Fight.bas
  12. Do THE MATH! I knew in my heart of hearts that the 2600 was capable of producing an accurate Cybermorph, after finding out that HALO was a reality! I downloaded visual bAtariBasic. I chose Cybermorph as my first killer app, and I decided to dedicate an hour or so on my proof of concept. I would have to say the logic for Skylar was pretty taxing, but everything went smoothly once figured out the complex algorithm for Sklar's artificial intelligence. Currently, she only detects ground collisions, and the enemies are not yet present. Unfortunately, some people may say this isn't a "game", since there are no "enemies." Minor details.. Hey! I got a good laugh out of it! Latest Version: Cybermorph26K_DPC_NewScroll.bin 12/23/2014 Previous Versions: Cybermorph26k.bin
  13. Underwater Predator By ThatDude (Declan Hoare) EDIT: All updates will be posted with their own post to this topic. If you want the latest version, go to the last post in this topic by me. I would appreciate it if you didn't take my name out of this game's credits or sell the game without my permission. Technically, the latter is legal, but I would obviously prefer that you didn't. This is the first version of my first ever working Atari 2600 game, distributed under the GPL version 3. Please let me know what you think and give suggestions for improvements! You are a shark (in the loosest sense of the word ) flying around in SPAAAACE! underwater, surprisingly. You have to eat the "gold"fish (although because of the 2600's limited pallette, they're really light yellow) while avoiding black fish, which are rotten but somehow still alive and swimming (SHHH, don't question these things). Every 20 points, the speed of the fish increases, and although the first speed is downright boring, it quickly gets more interesting. You use the stick to move and the button to eat. Source code (warning: extremely messy): predator.bas NTSC ROM: Underwater_Predator_V1.bin I haven't made a PAL ROM at the time of this posting, but I definitely will at some point - I live in a PAL region, after all. z26 and Stella both run this game fine, although I don't have a Harmony cart (or, for that matter, a 2600) so I can't be sure if it works on real hardware. Enjoy!
  14. Hello, I can't seem to figure this out. I want to program in the original Basic just like I used to on the Atari 800 when I was a kid. I'm using a windows 7 os and I have 32 at work and 64 at home. I have tried several times to download the link from the Batari Basic download page from the batari basic website. I can unzip the files and try to run 2600bas and it gives me a command prompt window that flashes and goes away quickly. I have tried several times. anybody know what I should do? I can hardly wait to get my feet wet coding with line numbers again.
  15. I made a goal to make a game for Christmas eve (in one day) on batari basic. I didn't have to much time so the game isn't really that great, but hopefully you'll enjoy it. Press fire to start the game Use the select switch the quit back to the menu (your score will reset to 0) Left Difficulty Switch to change the size of your paddle Right Difficulty Switch to alter the height of the cloud It's Christmas time, and your outside as a paddle catching snow flakes, but watch out these snow flakes are tricky. If one snow flake falls on the snowy floor, your toast!!! Snow_Flakes.bas.bin
  16. This is my first post on any atariage forum, if this is the wrong place to post this topic, then I'll gladly move it. First of all, I just need to give out a big thank you to Random Terrain for the awesome tutorial page (I use it like a bB bible), atariage for this forum, and anyone who worked on batari basic/visual bB. So while testing out my first project this weird glitch came out of nowhere, everything works fine until the player touches (collides) with player1 (the finish flag). When this happens the game starts all over. I assume either a variable was messed up or misspelled, or perhaps players can't collide? (I don't need anything else fixed, I know the movement of the player sucks as well as the collision against walls. I'll be sure to improve those in Max's Maze 2) Max's_Maze_2017_11_2_1723.bas
  17. Hello AtariAge! I am making my first game, and all I really need to add is sound effects, and possibly music. I understand how setting AUDV0/1, AUDC0/1, and AUDF0/1 change the pitch, but I am stuck on even how to begin to write music or sound effects for it. Is there some sort of engine I can use in my game to play an arbitrary song or sound? The one engine I can find (right here) loops the music (which isn't what I want, except for perhaps a music track during the game), and doesn't work when I put it in my code.
  18. So I'm tinkering with batari for the first time, and have gotten past the ENORMOUS headache of compiling issues to actually be able to make some neat little things. one of my sprites i.e. the player is even animated and looks awesome. I've got a second sprite however, that is making me go crazy. I am 100% new to coding in general, but this is something that I really want to successfully accomplish. Anyway.. the whole thing I want the main player to be able to do is chase mice and "munch" on them to earn as many points as possible before a timer runs out(I'll figure that out later) So far I've gotten my cat to be able to move everywhere flawlessly. the mouse just shows up right now and is chilling out. my question: How can I make it so that when the cat comes in contact with the mouse the player gets their points/ How can I get the mouse to "run away" from the cat and re-spawn when "eaten"? Forgive me for being a complete noob, but I'm at the point where I'm completely stuck, and google has run out of answers. The attached file is what I've come up with so far. Thanks!!!default.bas
  19. Hi there! Let me introduce myself. My name is Daniel. I'm a brazilian graphic designer, digital artist and web and mobile designer. I have some basic experience with C/C++ and Java, and used to play a lot with Basic when I was a kid with my good ol' MSX I got for christmas. That said, please forgive my bad english skills (everything I know I got from reading books and watching movies). So, this is my first Atari 2600 project. I'm a 2600 enthusiast, and found AA when I was collecting info on 2600 games for my collection a few months ago. At the forums I found out this homebrewing community and since then realized I really needed to create my own 2600 game. My initial plan is to make a runner kinda like Bit.Trip Runner, respecting the 2600's limitations of course (and perhaps bending a little bit those limits ) I have no clue if it is possible to do, for I started to mess around with bB only a few days ago. The player for this game will look like a skeleton, as you'll see on the first screenshot. The level design should use a lot of white, black and gray tones for an eerie feeling, with occasional colors to make impact (I really like Frank Miller's Sin City comics, just so you know what I'm talking about). This is my first take at the player. I'm using Atarius Maximus's samples as reference for the coding. Atarius's playfield example is still there since I'm messing around with those snippets and only implemented player's movement and sprite animation. You can check the first .bin at the end of the post. I know that there's almost nothing to see here, but it means a lot to me. Hopefully I'll update this post regularly. If you're an old timer on bB, I'll appreciate your comments. If you're a newbie like me, feel free to ask me how I did this or that. We'll learn together! Keep on rockin'! char.bas.bin
  20. So I'm making an air hockey game in bB, and it was going fine for a while until it wasn't and I can't figure out why. It says it's a syntax error at like 193, column 0, but I can't for the life of me figure out what the problem is with it. Source attached, go nuts. Feel free to ask any questions. default.bas
  21. I'm looking to demo Stella with Batari Basic running on a Raspberry Pi are there any homebrew games that are considered open source which the Author(s) would be happy for me to demonstrate? thanks Barnie
  22. Ping Made in 48 hours for the April Ludum Dare. http://youtu.be/4o2WSCxtwIk Play NTSC version 1: ping.bin - version 2: ping_2.bin PAL60 version 1: ping_PAL60.bin - version 2: ping_2_PAL60.bin Source (NTSC) - version 1: pingsource.zip - version 2: pingsource2.zip About For a small bat like Ping, the world is a big, dangerous place. Will little Ping make it in her new home? Instructions Move using joystick, ping using echolocation with joystick fire. Version 1 Pinging costs 25 points. You gain points by making progress to the right and by eating bugs. Try to ping as few times as possible to maximize your score. Version 2 Remaining pings are displayed on the right side of the score. You get 4 free pings per room. Any pings over those four will cost 25 points each. Any points you have left over after completing a room will award you a bonus 25 points in addition to 50 points for completing the room. Try to ping as few times as possible to maximize your score. Avoid owls and walls, eat bugs, and get as far as you can! Special Supports AtariVox high score saving. Requires an AtariVox/SaveKey module to be plugged in to controller port 2 (or emulated in Stella). Clear your AtariVox high score for Ping with select + joystick fire while in game. Mute the pinging sound by setting Color/BW to BW. Have fun!
  • Create New...