calamari
Members-
Content Count
369 -
Joined
-
Last visited
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by calamari
-
I've written a program that will convert a MIDI text file to a format easy for the 5200 to play. There are some limitations on the source midi, and it will need to be converted to a text list (see the documentation for details). Also included in the ZIP is a full example, with MIDI music source, before & after modifications and after conversion, as well as a working 5200 POK player, with 5200BAS source, compiled ASM source and test binary. The example song doesn't convert the best, but the other song I made that sounds better I plan on putting into my game Moderator Edit: MIDI2POK is located here: http://lilly.csoft.net/~jeffryj/5200bas/5200bas.html
-
You're right! The newest VSS doesn't seem to have BB support.. that's weird. I checked out some older versions of VSS: v0.71 and v0.77 both have a -bb command line option. However, I looked in the readme, and I found this: "Mr Do's Castle - Currently available ROM dump does not work, I believe it is corrupt." So, maybe what we need is a new BB dump calamari
-
Bounty Bob uses bankswitching (it's a big game!) If the emu you are using doesn't support BB specifically, try a different emu. The VSS emu should work with BB. calamari
-
ALong with the above new 1.40 version of 5200BAS I've put a 3-D Maze 5200BAS example program on the website. It's been gathering dust for a while and is still in the early stages, but it should be fun to mess around with. Full source is included, along with a Antic4 graphics file and test compile/binary. calamari [ 02-09-2002: Message edited by: calamari ]
-
5200BAS version 1.40 is here! The most notable change in this release is the preliminary sprite support. * New/modified commands: SPRITES, SET SPRITES=, INTERNAL, PUT, JOYTRIG, PUSH, POP, DLIST, PRINT {} * Fix: Removed the DLI token * Fix: Bug in FLAG style IF...EXIT DO/FOR * Revised docs for SCREEN function * Added "Index" and "Registers Changed" sections to the online docs. The online documentation has also been updated to reflect the changes in this release. Download from: http://www.azstarnet.com/~jeffryj/5200bas.html calamari
-
I'm highly biased in that area, but I find it easy to work with calamari
-
quote Yep! I'm not sure on the details of this yet tho. quote Not yet, but I plan on writing an adaptive algorithm that will be able to handle the trak-ball, joysticks, or masterplay. quote That version of Solitaire was written in 1997 using 100% ASM, but it became too hard to work with, and besides adding face cards, that screenshot is all there was. The game was not playable. I scrapped it and started over in 5200BAS, and I've managed to get farther than I ever dreamed of. I'm thinking of limiting the game music to the title screen, and making in-game sounds optional. I'm also considering adding another Solitaire game that I made up "Poker Solitaire", but I'll be sure to finish the Klondike game first before attempting that. If anyone is interested in actively testing the game for bugs, please let me know! Thanks for all your support! calamari
-
If you decide to recycle existing boards, you may be able to make use of the research I did for this with 32k eproms (one chip). File:EPROM Cartridge Modification Procedure I know this procedure works, because I have a "Meteorites" cart to prove it. I still need to do something about that Ms. Pac Man label tho! calamari
-
Cafeman, From what I've seen, with the 27- line of eproms, you should be able to multiply the last number by 128 to determine the number of bytes of storage. Examples: 27C(32) => 4096 bytes 27C(256) => 32768 bytes calamari
-
Check out the ATARI SYSTEM REFERENCE MANUAL, Chapter 16 PLAYER AND MISSILE (PM) GRAPHICS. There is an excellent description there of sprites and the different settings, etc. calamari
-
The way I read it, this value is incremented, and when it reaches $7F or $80, the attract mode turns on. What I've done is set it back to $00 and everything seems okay.. this seems to work on both emulators (Atari800 dos, & VSS), but I haven't tried on the real thing. BTW, instead of setting it every vblank, maybe just reset it when there is joystick/button movement, that way it can still work as intended. calamari
-
5200BAS version 1.30 is out! * New/modified commands: SET, PUSHA, POPA, SUB, END, TITLE * Title screen now optional (TITLE OFF) * If the title is left on, the ASCII to ATASCII translation works better now. * Memory/code layout management with the SET command. * Improved keypad code (after fixes, thanks Cafeman for your help!) The online documentation has also been updated to reflect the changes in this release. Enjoy, calamari
-
This time it was a bit more complicated.. I was missing these lines (I had them before but didn't think they were needed anymore.. whoops I also needed COLOR1 to be set, not just COLOR0. code: LDA #$22 STA SDMCTL According to what I read, setting SDMCTL ($0007, shadow for $D400) to zero turns off the ANTIC, and also speeds up program execution (at the expense of a blank screen). I'm still not sure why Antic 4 mode lines were working (this was still zero with them), maybe just a bug in the emu. calamari
-
Never mind, found one! http://www.atarihq.com/danb/files/5200BIOS.txt Dan, thanks for making that! calamari
-
Well, the keypad problem is solved.. but there is another problem that I did not expect. Text on Antic 2 mode lines in the display list the screen text doesn't show up, but text on Antic 4 lines shows up fine. (of course it looks weird because it's an Antic 2 character set) Does anyone have a disassembly of the 5200 ROM? I'd like to know exactly what it does and does not do, maybe that would help me here. Thanks, calamari
-
5200BAS is probably not ready for your game just yet. Give it a little bit of time. I've added Antic 4 support in 5200BAS. However, sprites aren't built in yet. I also just recently discovered the VBI. I'll be adding more features as I need them, or as people request them. I've received several requests and I'm working hard to implement them. 5200BAS allows plain ASM statements in the code, but as of the current release, several areas are pretty hardcoded. For example, you'd have to change 10 or 15 different things in your code if you wanted screen memory in an address other than $1000. Same thing if you wanted a DLI at a certain offset in the code. I'm working on this problem currently, and am well on the way to a solution. It will take a bit of doing to weed out all the hard coded stuff, but when it's done it will be a lot easier to port your game if that's what you want to do. calamari
-
Here is my deferred keyboard routine. It gives a 16 character buffer, so if the program can't get around to reading the keyboard right away, the keystrokes won't be lost. I have no idea if this is actually necessary in practice, but it works for me code: ;--------------------------------------------------------------------- ; KEYPAD -- Keypad buffer handler ; On entry: A=key just pressed ;--------------------------------------------------------------------- .ORG $BC00 LDX KEYSTAT CPX #$0F ; already at buffer limit? BEQ KEYDONE ; if so, ignore this keypress STA KEYBUFF,X ; otherwise, store key INC KEYSTAT ; update number of keys in buffer KEYDONE PLA TAY ;POP Y PLA TAX ;POP X PLA ;POP A RTI Here is the routine I use to read a character from the buffer: code: ;--------------------------------------------------------------------- ; INKEY ; Requires: KEYBUFF (16-character buffer) ; KEYSTAT (points to last character+1) ; Destroys: X,Y ; Returns: keypress in A, or A=$FF if no key waiting ;--------------------------------------------------------------------- INKEY LDA KEYSTAT ; get current key buffer length BEQ NOKEY ; key pressed? (buffer>0) if not, return $FF LDY KEYBUFF ; Y=first key from buffer LDX #$01 ; move all buffered keys to the left one NEXTKEY LDA KEYBUFF,X ; A=KEYBUFF(X) STA KEYBUFF-1,X ; KEYBUFF(X-1)=A INX ; X=X+1 CPX #$0F ; is X=KEYSTAT? BNE NEXTKEY ; if not, move the next keystroke left one DEC KEYSTAT ; point KEYSTAT to the new end char TYA ; restore the first key from Y to A RTS NOKEY LDA #$FF RTS calamari
-
Cafeman, you got it! Here's what I was missing (as always, it makes perfect sense in retrospect.. hehe): code: LDA #$02 ; point Keyboard immediate STA $0208 ; to BIOS routine LDA #$FD ; / STA $0209 ;/ I also like the way that loop is used to store the $02xx values (saves a few bytes.. I think I'm going to do it that way Thanks a lot! calamari [ 01-24-2002: Message edited by: calamari ]
-
Thanks! It still is crashing when I push a keypad button, but I think I might have that code in the wrong place, or my existing code might be in the wrong order. Maybe a sequence of events would be helpful here: 1) clear antic, gtia, etc.. 2) clear ram $0200-$3fff 3) etc ??? (This is where I am probably having a problem) I'm guessing that any vectors should probably set up first.. I think I might be missing a few though. DLI, DL, IRQ, keyboard, timer, ? After the vectors, I put more generic stuff like setting up character sets, colors, gractl, chactl, prior.. that kind of stuff. I probably have 99% of what I need, but I might be missing 1 or 2 things or have something in the wrong order. Thanks calamari
-
Hi, I am trying to free myself from the 5200 logo screen. Everything works, except one "minor" detail. Now when I set IRQEN to $40, for keypad enable, it crashes the emu out. I don't think my keypad code is right anyways tho... should I really have to do LDA #$40 STA IRQEN to keep the keypad active? Surely there is a zeropage address that will handle the situation permanently. Any ideas on this would be great! Thanks, calamari
-
Quick note: Version 1.21 is out.. there was a missing file in the 1.20 release, thank you to James Higgs for noticing this! Also the range for decimal and binary values has been extended to the full 16-bit. See 5200bas.txt for more details about this release. Thanks, calamari
-
I actually tried to make a 2600 game once. I got as far as being able to change the screen color by pressing the reset switch. It was very primitive and I have no idea if it would even work on a real Atari, hehehe. After that experience, I decided 5200 was maybe more my style (besides I grew up playing the 5200). I may try the 2600 again, but I want to actually complete a 5200 game first. There is plenty that still needs to be done with 5200BAS.. for example, while browsing the doc I realized I had restricted decimal/binary values to 32767 (hex is okay to $FFFF). I will be fixing that ASAP BTW, I'm thinking that scrapping the built 5200 logo is the best way to go.. I'll still look into implementing that y2k logo as an option, tho. Thanks for all your compliments and interest in this project! calamari
-
Hello! Version 1.20 of the 5200BAS compiler is here! New features include ANTIC 4 graphics mode and memory copy routines. Sorry, still haven't fixed that title yet. Using 1.20 I've written the foundations of a 1st-person maze game, I will probably make it a little better before releasing it tho. You can get other examples from the 5200BAS webpage. Please drop me a line if you use 5200BAS. Definitely email me if you want new features added, have bug reports for me, questions, etc. http://www.azstarnet.com/~jeffryj/5200bas.html 5200 forever, calamari
-
Yep you only have a 128 color palette unless its a GTIA mode. calamari
-
Analysis of certain Atari 5200 games
calamari replied to Cafeman's topic in Atari 5200 / 8-bit Programming
I've also been thinking about this multiple sprites on one line situation.. I think Wizard of WOR does this by not drawing the sprite on some frames. I can think of a few ways to accomplish that, but I am not sure which way would be fastest. Any ideas on a good method for this? Also, I'd like to include 2 sprites and the 4 missiles (for a total of 6), that would hopefully minimize flicker. Also, I'm guessing if I do multiple sprites/scanline, I lose collision detection. Is there any way around that? The program I'm messing with could potentially have 10 or more sprites on the same line. I think character graphics could also work, but I am not sure how much of a speed impact they would have (erasing and redrawing each "block"). calamari
