Jump to content

Search the Community

Showing results for tags 'programming'.

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
  • 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
  • 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
  • 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
  • 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
  • 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 102 results

  1. My attempt to System Off in Millfork: java -jar $HOME/Programs/Millfork/millfork.jar -Xr -t a8 your_code.mfk // ================================================ // // antic_nmien = $40 // // %01000000 $40 VBI // %10000000 $80 DLI // %11000000 $c0 VBI + DLI // // ================================================ // // pia_portb = $fe // // PORTB_BASIC_OFF + PORTB_SELFTEST_OFF + %01111100 // // PORTB_SELFTEST_OFF = %10000000; portb bit value to turn Self-Test off // PORTB_BASIC_OFF = %00000010; portb bit value to turn Basic off // PORTB_SYSTEM_ON = %00000001; portb bit value to turn System on // // ================================================ byte nmien = $c0 byte rti @ $15 // default routine for VBI & DLI word vbivec @ $10 // vector for VBI word vdslst @ $16 // vector for DLI // simple display list; LMS = $e000 const array(byte) dl align(32) = [ $70,$70,$70, $42,$00,$e0,2,2,$f0,2,2,2,$f0,2,2,2, $41,@word[dl.addr] ] // init procedure void system_off(){ asm { sei } // turn off IRQ antic_nmien = 0 // turn off ANTIC pia_portb = $fe // turn off ROM rti = $40 // set RTI opcode vbivec = rti.addr // set address for VBI routine vdslst = rti.addr // set address for DLI routine os_NMIVEC = nmi.addr // set address for custom NMI handler antic_nmien = nmien } // custom NMI handler asm void nmi(){ bit antic_nmist // test nmist bpl .vblclock // if 7-bit not set handle VBI jmp (vdslst) // indirect jump to DLI routine .vblclock: // RTCLOK maintainer inc os_RTCLOK.b2 bne .tickend inc os_RTCLOK.b1 bne .tickend inc os_RTCLOK.b0 .tickend: jmp (vbivec) // indirect jump to VBI routine } // example dli interrupt asm void dli_first(){ pha lda #$2a sta gtia_colpf2 sta antic_wsync lda #<dli_second.addr sta vdslst.lo lda #>dli_second.addr sta vdslst.hi pla rti } // example dli interrupt void dli_second(){ gtia_colpf2 = $de antic_wsync = $de vdslst = dli_first.addr } // wait for VBLANK asm void pause() { lda os_RTCLOK.b2 .rt_check: cmp os_RTCLOK.b2 beq .rt_check rts } // wait 0-255 frames noinline asm void wait(byte register(a) f) { clc adc os_RTCLOK.b2 .rt_check: cmp os_RTCLOK.b2 bne .rt_check rts } // example vbi interrupt void vbi(){ gtia_colpf2 = os_RTCLOK.b2 } // main procedure void main(){ system_off() // turn off OS wait(100) // waint 2 sec on PAL for fun antic_dlist = dl.addr // set custom display list wait(100) // waint 2 sec on PAL for the lulz vbivec = vbi.addr // set custom VBI wait(100) // waint 2 sec on PAL because we can vdslst = dli_first.addr // set custom DLI while(true){ wait(100) nmien ^= %10000000 // toggle DLI antic_nmien = nmien } } systemoff-example.mfk systemoff-example.xex EDIT: My repository with examples https://github.com/zbyti/a8-millfork-playground
  2. A project I have been working on for the last two years is nearing completion i.e. my next book called 'Programming Games for the Colecovision and Adam in Assembler'. It includes a tutorial section working through the steps of creating a game, with a Z80 assembler primer and information on how to set up a cross development environment (similar but extended from my Let's Make a Retro Game series). It also includes a complete Colecovision BIOS reference guide, covering ALL of the jump table BIOS calls with explanations and examples for using each call. There are extensive memory and port maps, also with explanations etc. It will have a dedicated web site section where you can download the code (for lazy typers :)). The early pre-order link for the Kindle edition is available here. Cover is still a draft. Shortly after I have released the Kindle Edition, there will also be a physical print edition available on Amazon's print to order service, which I used for my last book and has been received well. It does have some colour screen shots and pictures in it, let me know how many people would be interested in a full colour edition, rather than a colour cover with black and white interior. The book is currently 90% complete, with the majority of the content completed, but I have about ten quality read through passes to do and need to tidy-up/check all the source code etc. I am aiming for a 1st August 2020 release date at this stage.
  3. https://en.wikipedia.org/wiki/Dhrystone source:https://homepages.cwi.nl/~steven/dry.c Is it possible to run this on Atari? Not in assembler but maybe in other languages like: action, mad pascal, fast basic,basic, gcc6502, vbcc,turbo basic,quick and effectus ?
  4. Converted my Atari 800 game Uno card to TI-99. I used the KXBII extensions to create multi-color text. (see earlier blog post for Uno for Atari 800 and KXBII extensions for TI-99/4a). Plays at TI-99 XB speeds, which is to say, fast enough. The multi-color text is part of the KXBII extension package. Works rather well & fast enough and bug free. Only weird glitch is 1/2 character random flicker in one letter (you'll see it) when text being printed. I created a CALL PR(X,Y,TEXT$,fore-color, back-color) SUB-routine for printing to simplify conversion from Atari 800 MSBASIC. attached is a booklet and the .DSK bootable disk game. Enjoy. uno.zip
  5. Hi, everybody. I wonder if anyone has time to look at some code and tell me what I'm doing wrong. Ok, I'm sure I'm doing many things wrong, but the first compile error in the list is "Illegal Storage Class" in line 12 "extern unsigned char sprite[];". I've found that the Illegal Storage Class error goes away if I comment out the tgi_setpalette(pal) line, so I'm sure something's wrong with the way I've set up my palette. I've taking my working treeJumper game, based on Karri's template, and I've pulled out almost all the code to get the simplest testcase possible. I want to have a custom palette with one sprite. I've been staring at this for hours. I just don't know what I'm doing wrong. Below is my code, Makefile, palette file, and the compile errors. If anyone is kind enough to advise me, I'd really appreciate it. Thank you. My game.c file: #include <lynx.h> #include <conio.h> #include <joystick.h> #include <tgi.h> #include <stdlib.h> unsigned char checkInput(void); extern unsigned char reset; tgi_setpalette(pal) extern unsigned char sprite[]; static SCB_REHV_PAL Ssprite = { BPP_4 | TYPE_NORMAL, 0x10, 0x20, 0, sprite, 0, 0, 0x0100, 0x100, {0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef} }; void draw_sprite (int x, int y) { Ssprite.vpos = y; Ssprite.hpos = x; Ssprite.vsize = 20; Ssprite.hsize = 20; tgi_sprite(&Ssprite); } void game() { char x = 90; char y = 50; while (!reset) { if (!tgi_busy()) { draw_sprite(x, y); tgi_updatedisplay(); } } } My palette file pal.c: /* * This file was generated by sp65 2.13.9 from * sprite.pcx (640x400, 16 colors, indexed) */ unsigned char pal[] = { 0x0F,0x0F,0x00,0x0B,0x07,0x00,0x0C,0x08,0x0F,0x0C,0x0A,0x00,0x00,0x04,0x04,0x03, 0x00,0xFF,0x00,0xBB,0x95,0xF0,0x11,0x01,0x0F,0x0F,0x0F,0x0F,0xFF,0x5B,0x07,0x04, }; My MakeFile: include ../Common.mk thisdir=game objects= \ game.o \ sprite.o SEGMENTS= \ --code-name GAME_CODE \ --rodata-name GAME_RODATA \ --data-name GAME_DATA \ --bss-name GAME_BSS all: objlist objlist: $(objects) $(RM) objlist for obj in $(objects); do $(ECHO) ../$(thisdir)/$$obj >> objlist; done sprite : sprite.pcx $(SP) -r $< -c lynx-sprite,mode=packed,ax=0,ay=0 -w $*.c,ident=$*,bytesperline=8 clean: $(RM) objlist $(temporaryobjects) $(objects) My terminal window:
  6. So, as I've mentioned before, I've recently come back to Atari 8 bit computing after decades away. Currently I don't actually have any of my old hardware, other than 520ST. I am in the progress of procuring some old hardware in the form of an 800XL and supporting hardware(possible disk drives/SIO solution/display/etc). One of the goals I have set for myself is to *finally* do some programming for the old 800XL. I did BASIC back in the day on my old 400/800XL, when I was a kid. Then didn't really touch computing from 90-96 or so while I was in the US Navy. After leaving the navy I went to school and became a software engineer, which I still am today. But I never have done any assembly programming. Until I have actual hardware to develop on, I plan on using one of the emulators I've used over the years(most likely Altirra) to write/test my code. I'm also considering using a windows editor/compiler for the actual development work, whether I have actual hardware or not. Does anyone have any thoughts on how they would proceed if they were me? More later...
  7. ProcessJoystick: lda SWCHA sta Temp ; store Joysticks for later, ; going go be trashing the accumulator ldx #0 ; joystick counter PJLoop: cpx #1 beq LowNibble ; J1 already has bits in correct position lsr ; J0 needs to shift bits right 4 times lsr lsr lsr LowNibble: and #%00001111 ; we only want the low nibble xor #%00001111 ; flip bits so 1=direction held scb ; set carry bit? necessary? sbc #3 bmi MedSpeed ; must be going vertically sbc #2 ; all directions less than 5 aren't diag bmi FastSpeed ; probably going horizontally sbc #3 ; subtract 8 total beq FastSpeed ; going Right ; otherwise ... ; going diagonally lda Temp pha ; push it onto the stack lda Frame ; get the current frame and #7 ; if 8th frame, beq SlowMovement ; branch to rest of handler, like Collect Tutorial pla ; pull off stack lsr lsr lsr lsr jmp NextJoystick MedSpeed: lda Temp ; restore Joystick pha lda Frame and #3 beq SlowMovement pla lsr lsr lsr lsr jmp NextJoystick SlowMovement: pla ; pull back from stack FastSpeed: NormalJP: CheckRight asl bcs CheckLeft ldy ObjectX,x iny <compare with Arena size> CheckLeft: asl bcs CheckDown ... CheckDown: ... CheckUp: ... NextJoystick: inx cpx #2 bne PJLoop rts If I wanted to set the player speed based upon which direction the player is moving, how best to do that? Horizontally (fastest speed) Vertically (medium speed) Diagonally (slowest speed) I know of the Fractional/Sub-pixel movement. This doubles the RAM requirements for X,Y positions for each object. Essentially, you do 16-bit math on the positionX (onscreen) and the fractionalX (sub-pixel), and when the carry overflows into the onscreen Y position (P0_YPosFromBottom+1), the actual pixels get updated. I am still not sure In the example code, how I would modify it to identify the difference between moving vertical and moving vertically+horizontally simultaneously (diagonally). https://alienbill.com/2600/cookbook/subpixel.html ; for up and down, we INC or DEC ; the Y Position ;joystick down? lda #%00010000 bit SWCHA bne DoneMoveDown ;16 bit math, add both bytes ;of the ghost speed constant to ;the 2 bytes of the position clc lda P0_YPosFromBot adc #<C_GHOST_SPEED sta P0_YPosFromBot lda P0_YPosFromBot+1 adc #>C_GHOST_SPEED sta P0_YPosFromBot+1 DoneMoveDown lda #%00100000 ;Up? bit SWCHA bne DoneMoveUp ;16 bit math, subtract both bytes ;of the ghost speed constant to ;the 2 bytes of the position sec lda P0_YPosFromBot sbc #<C_GHOST_SPEED sta P0_YPosFromBot lda P0_YPosFromBot+1 sbc #>C_GHOST_SPEED sta P0_YPosFromBot+1 DoneMoveUp In the Collect Tutorial, the speed is modified by reading the joystick button. It uses a similar approach to handle directional movement as the example above. It left-shifts the SWCHA bits into the carry flag, and then processes each individual direction. Instead of setting the speed via a fractional X/Y position, it checks the current frame and only processes movement if the frame is divisible by 8 (about every 133 millisecond ) My guess is that before I start processing the individual directions RLUDxxxx, I need to determine if the player is moving Diagonally, Vertically, or Horizontally. Since the Atari sets bits as 0 when that direction is held (which does seem backwards), I would need to read SWCHA, store it (so it can be restored when processing the other joystick), set a counter for JoystickNo (X reg), shift-right if processing J0, then AND it with the P1 bitmask (P1_MASK = #%00001111, then XOR with the same mask to get bit=1 (true) for holding that direction. LowerNibble possible Joystick Values, (after AND + XOR) #%1010 - 10, RU-diag, slow speed #%1001 - 9, RD-diag, slow speed #%0110 - 6, LU-diag, slow speed #%0101 - 5, LD-dish, slow speed #%1000 - 8, R, fast speed #%0100 - 4, L, fast speed #%0010 - 2, U, med speed #%0001 - 1, D, med speed #%0000 - 0, not moving (Other impossible combinations, without special controllers) At this point I see two possibilities Poss1 - I should be able to use the lower nibble as a pointer offset to a speed table of possible speeds. (Not sure if I need a table that is 16 bytes or 11 bytes. 11 is the maximum when dealing with normal controllers since some joystick combinations aren’t possible). The table could have fractional speeds (so once again 2-bytes for each speed (20 total ROM bytes), and 4-bytes for each object. (X,Y and fractional for each). Poss2 - I can do what was done in the Collect Tutorial. Instead of saving the speed values, check the current frame and only process joysticks on frames divisible by some number (2^x-1 for best results). I can have conditional branches that first check if we are moving Up/Down (conveniently, this means low-nibble < 3) {only process every 4th frame}, then check if low-nibble is >4 (all low-nibbles 5 or greater are diagonal with the exception of Right = 0x08) and not exactly 8 {only process every 8th frame}, all other conditions {process every 2nd frame}. This should conveniently handle impossible joystick combinations. Code at TOP (seems to be full of errors. I must not be pushing/popping from the stack properly. I also seem to be controlling P0/P1 with the same controller)
  8. About 10 years ago I was curious about Gameboy Advance programming. I found the Unofficial Programming Guide written by Jonathan S. Harbour, so I printed it and put it into a 3-ring binder. I marked every chapter and then put it on my shelf at home. Here I am all these years later and I'm really not interested in it after all. o_O So before I recycle it, I wanted to know if anyone here wanted it. It weighs over 4 lbs. It will fit in a large flat rate box of which the cost was raised to $21.10. I think there are other options available that are just under $10 depending on where in the US it is going. If you are interested, let me know your zip code and I can try to find some shipping options from USPS . com. I'm only asking for shipping costs, but I would also accept an additional printing fee (completely optional and at your discretion) Kind regards,
  9. I have been a pixel designer for about 10 years now and will guarantee to give your 2600 game the best graphics I possibly can. Any and all graphics in game I am willing to flesh out. Any serious offers can email me at [email protected] and we can talk further in depth. Thank you.
  10. Hey all, I'm putting a query out to see if anyone has an interest in making XL BOSS, or a forward compatible version of OS B with PBI for the Ultimate 1 MB. I did various tests, and even confirmed with Jazzcat that PBI functions of XL Boss are not working for it, or non-existent. Now the rational for my query to make it PBI supported is this. I found that the game ENCOUNTER!, *Which has other revisions that work with the Base XL version on the Aug 2019 rev of the U1MB update works with other revs of the game. Sure, you'd think that would be the end of that knowing other copies work. But what if you ran into a game that was not? Or just needed to have that straight up backwards 800 compatibility, other than the OS B PAL or NTSC rev. For some reason, the XL Boss rev 2 works perfectly with loading up this un-patched version of Encounter! Now don't get distracted by me repeating this one game. I can live with the work around. What I'm looking for though it a community level update to XL Boss to use with the U1MB on a routine basis with PBI support. The original thread I found on XL BOSS is noted below. I've already had some discussions with Nezgar, and it does seem like a plausible idea to do. There's a few other features of XL Boss that are meaning full to use, and there's even many who've tried to use XL BOSS, but I can't find mention of quirks with PBI. NOTABLE TESTS RAN: Equipment: | Atari 800XL - U1MB | SDMAX - SIO - Gavin SIO board latest rev. | Side test with, same results as U1MB Boss Xl rev. Atari 800XL with OS rom replaced with patched HSIO and Boss XL with reverse Option only mod | Game: Encounter 3 versions ran against the default u1mb OS choices (excluding XEGS) - Either lead to black screen, start screen, but locks on starting the game. U1MB CHANGE: Replaced XEGS with Boss XL Rev 2. - Game runs as normal. --------------------------------------------------------------------------------------- Load Boss only, no cart, no SIO option, loading Sparta up. - Sucess OS works with Sparta seemingly normal. Load Boss with SideCart2 - Cart only mode and ATR mode - Unable to see it - Alternatively J.S.C. ran some inquiries for PBI fumction, and nothing indicated they we're found by the os. Keep in mind, this focus is not on the game, as much as it's an inquiry to make XL BOSS a possible alternative OS for the U1MB. Thanks for your input all!
  11. What I mean is that when you play Atari 5200 games on the Atari 800 using a Sio2sd will all the games play just like they would on a real Atari 5200, no emulation? I'm aware that the systems are very similar but the software is built differently but once you run it will the games play natively? Like is it comparable to other backwards compatible systems like the GBA with gbc and the Ps2 with ps1 games?
  12. [edited: link to PDF added] Hot news: the book Atari 2600 Programming for Newbies - Revised Edition by Andrew Davie is now available on Lulu.com for only $4.69. Order your copy here: http://www.lulu.com/shop/andrew-davie/atari-2600-programming-for-newbies-revised-edition/paperback/product-23644281.html Basically this book is the printed version of the Atari 2600 programming tutorials by Andrew Davie that he originally posted on these forums between 2003 and 2004 (and one extra session posted in 2012). Editing and formatting was done by yours truly. Note that in 2011 someone already bundled these tutorials into a book and published it on Lulu.com, but IMO there are a lot of issues with that version (e.g. no page numbers, missing session no. 25, images cut off on the end of the page, outlining issues, code samples hard to read because of wrapping). That's why I decided to call my version the "Revised Edition" :-) I formatted all code samples to make them readable in print-format, fixed a few spelling errors and also did some editing where the original text was clearly assuming the reader is reading the text online. Note that I'm not making a single dollar-cent on this; you only pay for the printing of the booklet. The consequence is that Andrew Davie is also not making any money from this, but knowing that in 2011 he was OK with the other published book on Lulu.com, I hope he's also OK with this new "Revised Edition". The binding and printing of this book is really nice. The pages are black & white, but the cover is full color (see attached images). I also added Andrew's avatar on the back of the book :-) And Lulu.com regularly has these promotions where they offer free shipping, making this a real bargain! Here is a link to the PDF for your convenience: Atari_2600_Programming_for_Newbies_Revised_Edition.pdf Cheers, Dion
  13. Papa

    Titan Axe Beta

    I would like to give folks a try at my new game before the finishing touches are added. If you like my game please consider buying it when it comes out!! This was programmed from scratch, by me!! Here are the instructions.. Joystick = moves the character Hold action = Jump (in Jump let go of action to attack) Left + action = attack Right + action = attack Down + action = special attack Hold up + action = Use magic (uses power) In easy hold action on the Game Over screen to continue In Hard hold action to begin at an earlier point in the game (usually), or choose a different character On the title screen hold a direction to listen to one of the music tracks, five in total! (I made all the music, too) This game is one of my most loved creations and I hope you all enjoy it and consider purchasing it when/if it comes out at AtariAge Please don't take my code or modify it in any way!! I present.. Titan Axe Beta TitanAxeBeta.bin
  14. While looking for something else the other night, I stumbled on this Wikipedia article that describes Quarter Square Multiplication. I had never seen this algorithm before. For a machine like the Intellivision, it appears to be a perfect fit! I won't repeat the Wikipedia article here, but the short version: With a few additions, subtractions and table lookups, you can perform arbitrary multiplication wicked fast. For an 8-bit x 8-bit multiplication (16-bit result), we're talking ~70 cycles. For 16x16 multiplication (also 16-bit result), we're talking ~302 cycles. It didn't take me very long to code it up at all. The algorithm is that simple. It just needs a 511 word lookup table. Here's the implementation of both 8x8 => 16 and 16x16 => 16 multiplies. . ; Quarter Square Multiplication ; Assembly code by Joe Zbiciak, 2015 ; Released to public domain. QSQR8_TBL PROC DECLE $0000, $0000, $0001, $0002, $0004, $0006, $0009, $000C DECLE $0010, $0014, $0019, $001E, $0024, $002A, $0031, $0038 DECLE $0040, $0048, $0051, $005A, $0064, $006E, $0079, $0084 DECLE $0090, $009C, $00A9, $00B6, $00C4, $00D2, $00E1, $00F0 DECLE $0100, $0110, $0121, $0132, $0144, $0156, $0169, $017C DECLE $0190, $01A4, $01B9, $01CE, $01E4, $01FA, $0211, $0228 DECLE $0240, $0258, $0271, $028A, $02A4, $02BE, $02D9, $02F4 DECLE $0310, $032C, $0349, $0366, $0384, $03A2, $03C1, $03E0 DECLE $0400, $0420, $0441, $0462, $0484, $04A6, $04C9, $04EC DECLE $0510, $0534, $0559, $057E, $05A4, $05CA, $05F1, $0618 DECLE $0640, $0668, $0691, $06BA, $06E4, $070E, $0739, $0764 DECLE $0790, $07BC, $07E9, $0816, $0844, $0872, $08A1, $08D0 DECLE $0900, $0930, $0961, $0992, $09C4, $09F6, $0A29, $0A5C DECLE $0A90, $0AC4, $0AF9, $0B2E, $0B64, $0B9A, $0BD1, $0C08 DECLE $0C40, $0C78, $0CB1, $0CEA, $0D24, $0D5E, $0D99, $0DD4 DECLE $0E10, $0E4C, $0E89, $0EC6, $0F04, $0F42, $0F81, $0FC0 DECLE $1000, $1040, $1081, $10C2, $1104, $1146, $1189, $11CC DECLE $1210, $1254, $1299, $12DE, $1324, $136A, $13B1, $13F8 DECLE $1440, $1488, $14D1, $151A, $1564, $15AE, $15F9, $1644 DECLE $1690, $16DC, $1729, $1776, $17C4, $1812, $1861, $18B0 DECLE $1900, $1950, $19A1, $19F2, $1A44, $1A96, $1AE9, $1B3C DECLE $1B90, $1BE4, $1C39, $1C8E, $1CE4, $1D3A, $1D91, $1DE8 DECLE $1E40, $1E98, $1EF1, $1F4A, $1FA4, $1FFE, $2059, $20B4 DECLE $2110, $216C, $21C9, $2226, $2284, $22E2, $2341, $23A0 DECLE $2400, $2460, $24C1, $2522, $2584, $25E6, $2649, $26AC DECLE $2710, $2774, $27D9, $283E, $28A4, $290A, $2971, $29D8 DECLE $2A40, $2AA8, $2B11, $2B7A, $2BE4, $2C4E, $2CB9, $2D24 DECLE $2D90, $2DFC, $2E69, $2ED6, $2F44, $2FB2, $3021, $3090 DECLE $3100, $3170, $31E1, $3252, $32C4, $3336, $33A9, $341C DECLE $3490, $3504, $3579, $35EE, $3664, $36DA, $3751, $37C8 DECLE $3840, $38B8, $3931, $39AA, $3A24, $3A9E, $3B19, $3B94 DECLE $3C10, $3C8C, $3D09, $3D86, $3E04, $3E82, $3F01, $3F80 DECLE $4000, $4080, $4101, $4182, $4204, $4286, $4309, $438C DECLE $4410, $4494, $4519, $459E, $4624, $46AA, $4731, $47B8 DECLE $4840, $48C8, $4951, $49DA, $4A64, $4AEE, $4B79, $4C04 DECLE $4C90, $4D1C, $4DA9, $4E36, $4EC4, $4F52, $4FE1, $5070 DECLE $5100, $5190, $5221, $52B2, $5344, $53D6, $5469, $54FC DECLE $5590, $5624, $56B9, $574E, $57E4, $587A, $5911, $59A8 DECLE $5A40, $5AD8, $5B71, $5C0A, $5CA4, $5D3E, $5DD9, $5E74 DECLE $5F10, $5FAC, $6049, $60E6, $6184, $6222, $62C1, $6360 DECLE $6400, $64A0, $6541, $65E2, $6684, $6726, $67C9, $686C DECLE $6910, $69B4, $6A59, $6AFE, $6BA4, $6C4A, $6CF1, $6D98 DECLE $6E40, $6EE8, $6F91, $703A, $70E4, $718E, $7239, $72E4 DECLE $7390, $743C, $74E9, $7596, $7644, $76F2, $77A1, $7850 DECLE $7900, $79B0, $7A61, $7B12, $7BC4, $7C76, $7D29, $7DDC DECLE $7E90, $7F44, $7FF9, $80AE, $8164, $821A, $82D1, $8388 DECLE $8440, $84F8, $85B1, $866A, $8724, $87DE, $8899, $8954 DECLE $8A10, $8ACC, $8B89, $8C46, $8D04, $8DC2, $8E81, $8F40 DECLE $9000, $90C0, $9181, $9242, $9304, $93C6, $9489, $954C DECLE $9610, $96D4, $9799, $985E, $9924, $99EA, $9AB1, $9B78 DECLE $9C40, $9D08, $9DD1, $9E9A, $9F64, $A02E, $A0F9, $A1C4 DECLE $A290, $A35C, $A429, $A4F6, $A5C4, $A692, $A761, $A830 DECLE $A900, $A9D0, $AAA1, $AB72, $AC44, $AD16, $ADE9, $AEBC DECLE $AF90, $B064, $B139, $B20E, $B2E4, $B3BA, $B491, $B568 DECLE $B640, $B718, $B7F1, $B8CA, $B9A4, $BA7E, $BB59, $BC34 DECLE $BD10, $BDEC, $BEC9, $BFA6, $C084, $C162, $C241, $C320 DECLE $C400, $C4E0, $C5C1, $C6A2, $C784, $C866, $C949, $CA2C DECLE $CB10, $CBF4, $CCD9, $CDBE, $CEA4, $CF8A, $D071, $D158 DECLE $D240, $D328, $D411, $D4FA, $D5E4, $D6CE, $D7B9, $D8A4 DECLE $D990, $DA7C, $DB69, $DC56, $DD44, $DE32, $DF21, $E010 DECLE $E100, $E1F0, $E2E1, $E3D2, $E4C4, $E5B6, $E6A9, $E79C DECLE $E890, $E984, $EA79, $EB6E, $EC64, $ED5A, $EE51, $EF48 DECLE $F040, $F138, $F231, $F32A, $F424, $F51E, $F619, $F714 DECLE $F810, $F90C, $FA09, $FB06, $FC04, $FD02, $FE01 ENDP ; R2 = R0 * R1, where R0 and R1 are unsigned 8-bit values ; Destroys R1 qs_mpy8 PROC MOVR R0, R2 ; 6 ADDR R1, R2 ; 6 a + b SUBR R0, R1 ; 6 a - b BPL @@ok ; 7 NEGR R1 ; 6 @@ok: ADDI #QSQR8_TBL, R2 ; 8 ADDI #QSQR8_TBL, R1 ; 8 [email protected] R2, R2 ; 8 [email protected] R1, R2 ; 8 JR R5 ; 7 ;---- ; 70 ENDP ; R1 = R0 * R1, where R0 and R1 are 16-bit values ; destroys R0, R2, R3, R4, R5 qs_mpy16 PROC PSHR R5 ; 9 MVII #QSQR8_TBL, R5 ; 8 MOVR R0, R2 ; 6 R2 is orig 16-bit a MOVR R1, R3 ; 6 R3 is orig 16-bit b ; lo * lo ANDI #$FF, R0 ; 8 R0 is lo(a) MOVR R0, R4 ; 6 R4 is lo(a) ANDI #$FF, R1 ; 8 R1 is lo(b) PSHR R1 ; 9 save lo(b) ADDR R1, R4 ; 6 R4 = lo(a) + lo(b) SUBR R0, R1 ; 6 R1 = lo(a) - lo(b) BPL @@pos_ll ; 7 NEGR R1 ; 6 @@pos_ll: ADDR R5, R4 ; 6 R4 = &qstbl[lo(a)+lo(b)] ADDR R5, R1 ; 6 R1 = &qstbl[lo(a)-lo(b)] [email protected] R4, R4 ; 8 R4 = qstbl[lo(a)+lo(b)] [email protected] R1, R4 ; 8 R4 = lo(a)*lo(b) ;---- ; 113 ; lo * hi SWAP R3 ; 6 \_ R3 = hi(b) ANDI #$FF, R3 ; 8 / MOVR R0, R1 ; 6 R0 = R1 = lo(a) ADDR R3, R1 ; 6 R1 = hi(b) + lo(a) SUBR R0, R3 ; 6 R3 = hi(b) - lo(a) BPL @@pos_lh ; 7 NEGR R3 ; 6 @@pos_lh: ADDR R5, R1 ; 6 R1 = &qstbl[hi(b)+lo(a)] ADDR R5, R3 ; 6 R3 = &qstbl[hi(b)-lo(a)] [email protected] R1, R1 ; 8 R1 = qstbl[hi(b)-lo(a)] [email protected] R3, R1 ; 8 R1 = lo(a)*hi(b) ;---- ; 73 ; 113 (carried forward) ;---- ; 186 ; hi * lo SWAP R2 ; 6 ANDI #$FF, R2 ; 8 R2 = hi(a) PULR R3 ; 11 R3 = lo(b) MOVR R3, R0 ; 6 R0 = lo(b) ADDR R2, R3 ; 6 R3 = hi(a) + lo(b) SUBR R0, R2 ; 6 R2 = hi(a) - lo(b) BPL @@pos_hl ; 7 NEGR R2 ; 6 @@pos_hl: ADDR R5, R3 ; 6 R3 = &qstbl[hi(a)+lo(b)] ADDR R5, R2 ; 6 R2 = &qstbl[hi(a)-lo(b)] [email protected] R3, R1 ; 8 \_ R1 = lo(a)*hi(b) + hi(a)*lo(b) [email protected] R2, R1 ; 8 / ;---- ; 84 ; 186 (carried forward) ;---- ; 270 SWAP R1 ; 6 \_ shift upper product left 8 ANDI #$FF00, R1 ; 8 / ADDR R4, R1 ; 6 final product PULR PC ; 12 ;---- ; 32 ; 270 (carried forward) ;---- ; 302 ENDP . I spent maybe 20 minutes on the 8x8 implementation, and another 40 - 60 minutes on the 16x16 implementation. (I first did a naive implementation that called qs_mpy8, and then a smarter implementation that inlined everything.) Tonight, I ran both through literally millions of random tests, comparing against JLP's multiply accelerator. (Side note: If you run jzIntv with rate control off (-r0), audio off (-a0), and minimize the window, it runs very, very fast. About 280x on my machine. 270x if you forget and leave audio on.) As the comment says, I release this to the public domain. If you use this in one of your games / programs / whatever, I don't mind a tip of the hat my way if you happen to think of it. And if not, eh, we still all get more cool games. If any of you find ways to improve this code (I'm sure it's possible), post it here and share with everyone! Homework assignment for the motivated: Add an 8x16 multiply to the library. With all three, then programs like IntyBASIC have a nice arsenal for implementing multiplication efficiently, with no surprises for oddball multiplicands. (That's presuming IntyBASIC can figure out if the arguments to the multiply come from 8 bit variables or 16-bit variables/intermediate results.) I think adding an 8x16 multiply mainly requires removing the 'hl' portion of the 16x16 multiply code and a PSHR, saving ~93 cycles. quarter_square_multiplication.asm
  15. set kernel_options playercolors player1colors dim zombiewalk=a dim zombiewalk2=b dim zombiewalkdelay=c dim zombiewalk2delay=d dim zombiespeed=e dim ballwasshot=f CTRLPF=$21 playfield: ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0: %1101100 %0100100 %0100100 %0100100 %0100100 %0010100 %0001000 %0001011 %1111111 %1111111 %0101010 %0011100 %0001000 %0011100 %0100010 %1000001 %1000001 %1000001 %0100010 %0011100 end player1color: $F0 $F0 $F0 $F0 $F0 $F0 $F4 $F4 $F4 $F4 $F4 $F4 $F4 $F4 $C4 $C4 $C4 $C4 $C4 $C4 end player1: %00011001 %00010010 %00010010 %00010010 %00011110 %00010000 %00011110 %10011100 %10011000 %10111101 %10111101 %10111001 %01111110 %00011100 %00011110 %00110001 %00111111 %00110101 %00111111 %00011110 end COLUBK=6 COLUPF=244 player0x=138 player0y=79 player1x=17 player1y=79 zombiespeed=20 ballheight=1 ballx=139 bally=71 ballwasshot=0 loop drawscreen player1: %00011001 %00010010 %00010010 %00010010 %00011110 %00010000 %00011110 %10011100 %10011000 %10111101 %10111101 %10111001 %01111110 %00011100 %00011110 %00110001 %00111111 %00110101 %00111111 %00011110 end if zombiewalk=1 then player1: %01100110 %01000100 %00100100 %00100100 %00011000 %00010000 %00011110 %10011100 %10111000 %10111010 %10111010 %10111010 %01111110 %00011100 %00011110 %00110001 %00111111 %00110101 %00111111 %00011110 end if switchreset then reboot if joy0left then player0x=player0x-1 if joy0right then player0x=player0x+1 if !joy0fire && !ballwasshot then ballx=player0x+1 if joy0fire then ballwasshot=1 if ballwasshot then ballx=ballx-2 if player0x>138 then player0x=138 if player0x<16 then player0x=16 if player1x>138 then player1x=138 if collision(ball,player1) then player1x=16:ballx=player0x+1:ballwasshot=0:score=score+1 zombiewalkdelay=zombiewalkdelay+1 if zombiewalkdelay=zombiespeed then zombiewalk=zombiewalk+1:zombiewalkdelay=0:player1x=player1x+1 if zombiewalk=2 then zombiewalk=0 goto loop The code was compiling and executing fine a while ago, but now, wherever I place my cursor, there is a syntax error there. Any tips?
  16. Hello all, I am a new to this forum. I would like to program the 2600 as a hobby. I have been reading posts this morning on how to begin. I am hoping that some of you nice folks can save me some time. I have read about DASM, batari Basic and others. Can someone answer a few questions for me and save me a great deal of time. Maybe this will help others also. What editor assembler software is used most these days? What do you recommend? Please leave a link. I have downloaded Barair Basic and and IDE and will install it today. Any useful links? Any other software that you folks use? I downloaded Stella and I have ordered a Harmony cartridge. I know these questions have been asked before but I ask for your patience and help. I hope to start writing some code today if I can get the software I need in place. Thanks to all of you in advance. Ed Cheek
  17. LEARN ASSEMBLY IN 8 HOURS with bB and the ASDK Tutorial Intro This tutorial will teach you 6502 Assembly programming for the Atari 2600 using a RAD Framework that abstracts the hardware so you can quickly marshal high level objects to build games like batari BASIC. Due to the similarities we will use BASIC examples side by side and use the bB compiler to illustrate (and to help with creating Assembly when preferred). Peruse and complete these short lessons over time or stay up all night drinking coffee and taking breaks to play Defender
  18. Can someone recommend a relatively simple, easy to learn & use, yet powerful enough to do what I want, imperative programming language like BASIC or Visual Basic, for making Atari VCS and 8-bit type games for the Windows desktop (or maybe Linux but prefer Windows)? I would mainly be making 2-D games - stuff like Pong or Combat up to 8-bit Atari or Commodore era games, but probably nothing more complex. Maybe remake Pinball Construction Set or classic Ultima. Some features that would help relatively self contained (not 1,000,000 libraries you have to go through) free or not too expensive (this would be just for fun) easy to find lots of sample code for how to do things, and strong active community to ask questions built in IDE (preferably a visual IDE) and most importantly: currently supported and should continue to keep working for some time developed with a backwards-compatible philosophy so your programs will still work after a couple years! I have dabbled in various languages / systems over the years and made some games or partial games: Commodore 64 / BASIC - easy but games ran too slow, compiler helped speed games up, used some simple assembly for speeding up little routines (hard!) Commodore 64 / Gamemaker - easy but too limited (plus I missed being able to type code) Mac Classic / Pascal - limited to black & white graphics, couldn't find any info on making sounds (pre-Web so it was very hard to find docs or examples) Windows / QuickBasic - nice and easy but obsolete & couldn't figure out anything past text graphics and simple beeps Windows / VB6 - I liked the language and IDE but limited graphics support (bitblt, kind of confusing), and I never figured out playing >1 sounds at a time, just playing back WAV files one at a time; eventually VB6 became obsolete so I had to start over Windows / VB.NET 1.1 and some C# - the .NET language kept changing and got too complicated with the enterprise OO features JavaScript / HTML5 - figured out canvas graphics, Javascript syntax is easy but I am not crazy about HTML and CSS, and parts of language were too complicated and ugly (prototype stuff, too many libraries & frameworks, no types, etc.) Python / Pygame - mainly playing around with other people's code from pygame.org, still not comfortable with Python, not crazy about certain things like the indentation, no types, too many libraries / choices, dependencies and things changing too much that can break your code, etc. After all these years and languages I still prefer BASIC or VB6 syntax (JavaScript/C syntax is OK, Pascal is OK) and a visual editor. Mainly I don't have a ton of time to invest in learning stuff and if I get busy (which is often the case!), I might put a project down for months at a time, or even a couple years, and by the time I get back to it, the language I wrote it in has updated/changed or become totally obsolete, and I have to go back and fix my code or start over from scratch. I know computers change and all that but come on So anyway, if anyone has any advice or recommendations that would be grand. And hey, if it doesn't exist, it doesn't exist, but I thought I would ask! PS here are some pages I was looking at, in no particular order - if anyone can share any opinions on these, please: SDLBasic XBASIC BASIC Compiler (Windows, Linux) QB64 (Windows, Mac OS X, Linux), QB64 Just BASIC (Windows) SmallBASIC (Windows, Linux, N770/N800, PalmOS, eBookMan) ThinBasic Basic Interpreter (Windows) ElectronJS How to create a 2D game with Python and the Arcade library | Opensource.com FUZE4: Bringing BASIC to Switch — Wireframe Magazine I am really looking for Windows, but this caught my eye! Construct 2 – The Windows favourite Clickteam Fusion 2.5 – The veteran RPG Maker – The RPG specialist Microsoft Small Basic (wikipedia) Unity (probably not what I am looking for) Microsoft MakeCode Arcade (info) Atari Dev Studio A way to make games for the 2600 using BASIC? Hmm... DarkBasic GLBasic Liberty BASIC PureBasic RapidQ REALbasic (Xojo) XBasic Free BASIC Compilers and Interpreters (thefreecountry.com) https://www.gamedesigning.org/career/software/ https://www.websitetooltester.com/en/blog/best-game-engine/#GameSalad_The_Educators_Choice What is the easiest programming language to make games with? - Quora App Development - Infinite Runner - CodaKid Action! is an Atari-specific programming language written by Clinton Parker and sold by Optimized Systems Software (OSS) in ROM cartridge form starting in August 1983. It is the only language other than BASIC and assembler) that had real popularity on the platform and saw any significant coverage in the Atari press; type-in programs and various technical articles were found in most magazines. In comparison, languages like Forth and Logo saw much less use and almost no press coverage. Processing Tutorial: Building a Simple Game | Toptal Much appreciated
  19. Hey everyone, I'm very new to programming with assembly. Anyways, from the tutorial in this section of the forums I played around with the first kernel that is presented in Session 8. I made the lines alternate their colors with it. I ran it with SECAM60 after being satisfied, and wow is it an eyesore. I attached an image of the screen when I ran it. Challenge: look at the SECAM60 screenshot for 30 seconds and then turn away. pantomchap_test_game_5-17-2017-2.27PM.bin
  20. I am looking for a simple example of: a) A MADS based program. b) ... which will use an AtariMax 1mb or 8mb cartridge when written to it. c) ... which then can switch in any bank from the cartridge. I'd also like some clarification of: - If a 2 megabit file is added to the 8mb cartridge, when you're addressing bank 0, is that bank 0 of the file that is being addressed or bank 0 of the cartridge as a whole? I guess the latter.
  21. Hi Guys, yesterday I have run into a nasty Syntax Error in Extended Basic, which also occurs in RXB. I don't understand it and wonder if the line really contains a Syntax Error or this is a Interpreter Bug. Version 1: 1 IF A=1 THEN 2 ELSE FOR I=1 TO 2 :: PRINT I :: NEXT I 2 END Version 2: 1 IF A=1 THEN 2 :: FOR I=1 TO 2 :: PRINT I :: NEXT I 2 END Both versions complain about a Syntax Error in Line 1. I would like to analyze it with the help of you and maybe RXB can be even fixed.
  22. I believe this falls into the programming section: 30 to 35 years ago I wrote a program for Hardball, the Baseball game, that allowed a person to replace the original baseball teams with modern teams in Hardball. I was much younger then and smarter than I am now so looking back at this program written in Atari Basic, What the heck did I do to write this? I don't even remember doing that , but it was in the KWEST library, so I am including it first. Once I figure out exactly what I did I will recreate the teams with 2019 teams, there may be some users on here that can look at my basic programs and tell me what I did? Because I am having a senior moment when it comes to remembering what I did 35 years ago. Here is the three programs in one zip file, Hardball Creator Disk, Hardball Creator Docs Disk, and of course Hardball itself. I may have changed the information with a sector editor and copied the text to data strings in the program. And from what I can see I wrote to specific spots on the COPY of Hardball itself, but beyond there? Russ Hardball Team Disk Creator.zip
  23. I just finished programming a music program into my Commodore 64 in BASIC. I ran it before saving, and it worked fine. I saved it and turned the computer off, then back on and loaded it, then typed 'list' to make sure all the lines of the program were there. They were. So I ran it. All that I could hear was (the best way I can describe it) a clicking sound rather than the musical melody that was there before saving and loading. The program ran for it's regular cycle and exited like it was supposed to, but the sound was messed up. I tried this a few times with the same results. Thinking that perhaps my sound chip was burned out, I loaded games on both cartridge and floppy disk. They worked fine. So my next step was to type the program again, save it under a different name and on a different disk, and run it. Same results.The last thing I did was turn the computer off and back on, then type the program into it again. I ran it without saving and it worked fine. Bad drive maybe? It's just weird that I can load it and the program shows all the lines, but it won't work right. And only after loading it from a 5.25 floppy. Any ideas or thoughts? Just so you know, I am doing this on original hardware. I am using an actual breadbox C64 with a 1541 disk drive and disks that were brand new in the packages(DD Fujifilm). They formatted just fine too. Any advice you can give would be appreciated. Thanks guys!
  24. Intellivision IntyBASIC Programming Contest 2015 Welcome to the first IntyBASIC game programming contest held on AtariAge (thanks Albert!). The contest is open to all IntyBASIC programmers and is sponsored by GroovyBee, nonner242, nanochess, CollectorVision and Albert. Further prizes are being offered by revolutionika and cmart604, and awards will be given to entries that place 1st, 2nd and 3rd respectively. Drop us a PM if you'd also like to help out with some more prizes! THE RULES So you can get started, the basic rules are laid out below: The competition starts today (Wednesday 1st of July 2015) and the deadline for submissions is 00:00 GMT on the 1st of January 2016 (midnight on the 31st of December) - this gives you around 6 months of development time. There will be no competition unless a minimum of six entries are submitted by the deadline. Your game(s) must be developed in IntyBASIC and use the default prologue/epilogue files. The only assembly language statement allowed within your game is the ORG statement so that you can develop a larger game. However, bank switching is not permitted. All submitted games must meet the entry criteria to be valid. The games submitted do not necessarily need to be new, but must be your own work, not sold commercially or released in cartridge format previously. NTSC must be supported, with additional PAL support optional (but encouraged). The maximum number of single entries from a person or group is set at three. If more entries are made, the applicant has the opportunity to replace a previous entry with a new one. The 1st prize winning game may be published by CollectorVision (should it's developer enter into an agreement to do so). This matter will be discussed privately with the parties concerned and if an agreement is reached a public announcement will be made later. There will be a panel of judges (announced in full over the coming weeks), and entries will be scored on a points basis across several criteria. The decision of the panel is final. All game ROMs below 1st prize (2nd, 3rd etc.) will be published after judging has been completed. However, if the 1st prize game is to be published by CollectorVision its ROM will be distributed after game sales have completed. All entries must be submitted via email to [email protected] by the closing date. The judges will declare the results of the contest by 12:00 GMT on the 31st of January 2016. GAME ENTRY Each entry into the contest must consist of the following items to be valid :- Game image in *.rom or *.bin+*.cfg. Brief instructions on how to play the game. IntyBASIC source code (and any data files). Instructions on how to build the IntyBASIC source code (this must also include IntyBASIC compiler version number). As part of the validation process, each entry's source code will be built using its instructions and the final binary produced must match the submitted binary image 100%. Any entry that fails this criteria will not be judged. It is not necessary for any contestant to publish the source code to their entry. However, if they wish to do so before the contest closes, they will be awarded an extra 5 points. Competition contestants are free to discuss their game's progress, provide source code and WIP ROMs and to also help other contestants should they wish to do so. Your entry must be submitted via email to [email protected] by the competition's closing date. THE JUDGING PANEL The panel of judges is as follows :- Albert Yarusso (Albert) Mark Ball (GroovyBee) nonner242 Oscar Toledo G. (nanochess) J-F (retroillucid) Judges are not permitted to enter the contest themselves. However, they are permitted to answer technical questions and provide assistance to applicants publicly when required. DZ-Jay will validate the entries. His role is to ensure that only the permitted assembly language is used in the game and that an exact game binary can be produced. SCORING SYSTEM The criteria that each game will be evaluated on are: Originality (1 ro 10) - Is the game based on a new idea or a twist on an established design? Concept (1 to 10) - Quality of game design. Execution (1 to 10) - Execution of design, taking into account controls, NTSC/PAL compatibility. Graphics (1 to 10) - Quality of graphics and animation. Sound (1 to 10) - Quality of music and sound effects. Presentation (1 to 10) - Overall presentation. Game play (1 to 10) - A measure of how enjoyable the game is to play. Lasting Appeal (1 to 10) - Replay value, addictiveness. Source code (5) - These points are awarded to any coder that publishes his/her game's source code publicly. When the panel has scored each game accordingly, the totals for each criteria will be added together for each game to give it a final score. PRIZES First prize: Game on Bee3 cartridge (1 copy only). End label and a box designed by nonner242 (1 copy only). Hive Multi-cart Deluxe Edition. 2 blank Bee3s. 1 Bee3 programmer adapter (donated by DZ-Jay). Optional: CIB publication with CollectorVision. CIB Copter Command Deluxe (donated by revolutionika). One console from CIB Intellivision I, CIB Intellivision II or CIB Sears (donated by cmart604). 30 pack of CIB common games (donated by cmart604). Choice of D1K or D2K (donated by cmart604). Second prize: Game on Bee3 cartridge (1 copy only). End label by nonner242 (1 copy only). Hive Multi-cart Standard Edition. CIB Copter Command (donated by revolutionika). One console from the remaining choice of CIB Intellivision I, CIB Intellivision II or CIB Sears after the 1st prize winner has picked theirs (donated by cmart604). 20 pack of CIB common games (donated by cmart604). Third prize: Game on Bee3 cartridge (1 copy only). A simple end label by nonner242 (1 copy only). CIB Space Raid (donated by nanochess). CIB Copter Command (donated by revolutionika). The remaining CIB Intellivision/Sears console after 1st and 2nd prize winners have picked theirs (donated by cmart604). 10 pack of CIB common games (donated by cmart604). Note: These rules are based on RGCD's Programming Contest 2014 rules and are used with permission. DEVELOPMENT The development tools and emulators needed to create and play your games can be found here.
  25. Another work in progress. Mode 0 , 0,0,0,0 Wait Print At 0 Color 7 , "Greensleeves (1)" Print At 80 Color 4 , "Press top side" Print At 100 Color 4 , "button to" Print At 120 Color 4 , "restart music." Print At 160 Color 1 , "Press bottom side " Print At 180 Color 1 , "button to exit." Wait Play Full Wait Play mymusic Wait Goto PlayLoop PlayLoop: Wait If Cont.B0 Then Wait : Play Off : Wait : Play mymusic If Cont.B1 Then Goto ExitThis If Cont.B2 Then Goto ExitThis Wait Goto PlayLoop ExitThis: Wait Print At 235 Color (Rand and 7) , "Bye." For spinWait = 0 to 5 Wait Next Play Off mymusic: Data 5 Music - , - Music - , - Music A4Y , - Music - , - Music A4Y , - Music - , - Music A4 , - Music S , A4Y Music C5 , S Music S , C5 Music S , S Music S , S Music D5 , S Music S , D5 Music E5 , S Music S , E5 Music E5 , S Music F5 , E5 Music E5 , F5 Music S , E5 Music D5 , S Music S , D5 Music S , S Music S , S Music B4 , S Music S , B4 Music G4 , S Music S , G4 Music G4 , S Music A4 , G4 Music B4 , A4 Music S , B4 Music C5 , S Music S , C5 Music S , S Music S , S Music A4 , S Music S , A4 Music A4 , S Music S , A4 Music A4 , S Music G4 , A4 Music A4 , G4 Music S , A4 Music B4 , S Music S , B4 Music S , S Music S , S Music G4 , S Music S , G4 Music E4 , S Music S , E4 Music S , S Music S , S Music A4 , S Music S , A4 Music C5 , S Music S , C5 Music S , S Music S , S Music D5 , S Music S , D5 Music E5 , S Music S , E5 Music E5 , S Music F5 , E5 Music E5 , F5 Music S , E5 Music D5 , S Music S , D5 Music S , S Music S , S Music B4 , S Music S , B4 Music G4 , S Music S , G4 Music G4 , S Music A4 , G4 Music B4 , A4 Music S , B4 Music C5 , S Music S , C5 Music S , S Music S , S Music B4 , S Music A4 , B4 Music S , A4 Music G4# , S Music S , G4# Music G4# , S Music F4# , G4# Music G4# , F4# Music S , G4# Music A4 , S Music S , A4 Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music A4 , S Music S , A4 Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music A3 , S Music S , A3 Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music A2 , S Music S , A2 Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music Stop
  • Create New...