Jump to content

bs4

Members
  • Posts

    13
  • Joined

  • Last visited

bs4's Achievements

Space Invader

Space Invader (2/9)

0

Reputation

  1. To all: Thankyou to everyone for all the excellent help! I've been programming since the C=64 days in the late 70's/early 80's. I knew enough asm back then to use a Super Snapshot fairly well to hack & train games but I've never coded anything in ASM on any system from the ground up. (I can crack things but who can't NOP a DEC ?) I had a friend who was far better at ASM than I was teach me on the C=64. It was when we combined our brains that we were able to do the real damage. I was always better at theory, then he would implement it. (I taught/corrupted him to phreak & other things that I was doing in basic, he taught me ASM.) I never got around to doing sound on the 64, it was just too much trouble. (The Korg M1 was more important back then, heheh!) I've actually got an SX-64 upstairs with an MSSIAH cartridge. I haven't even used it yet! It's like I want to go back and do all the things with all the old systems I loved as a kid now as an adult since things are so much easier now. All I'm really waiting for is the right project where my skills are wanted/needed. I'm almost 42 years old now. As I mentioned earlier, I'm a far better musician than coder. I am enjoying doing this but I don't think I have the time to start learning ASM right now, although I'm familliar with the registers because it's basically the same CPU as the 64. (I'm sure things would start coming back to me quickly if I started learning!) I'd rather just do what I know I'm excellent at and that is game design and music. Then pair up with someone who's good at ASM coding. But it seems most here are already paired up/have a sound/design guy already. (Or they are just BASIC coders like I am.) I am easy to work with because I understand the limitations and concepts and can even make what I want to happen happen in BASIC, just slow & ugly. So what I am going to do is try to make something that is kick ass in BASIC and then try to attract the attention of a good ASM coder with it. There are things I can think of which can be done that no one has tried yet. I am sure they would not work smoothly in BASIC but if they are unique enough, they might attract the attention of a good ASM coder. P.S. - What an awesome community. No one where I live understands this hobby. The VCS and the C=64 are very dear to me, I assume this is true with most here.
  2. ZackAttack: I used a very lame method to make it work. The music is not my own, it's an old song from the 80's. But it was structured in a way clips could be repeated. Basically, I'm just copying the voice.asm routine to each 4k bank and then calling it from BASIC. So it's repeating all the player code every time more of the song plays. I realize that's very lame. What would really rock is if voice.asm could be changed to read data across multiple banks so that there's only 1 "play" routine and the banks can be filled entirely with audio data. I assume that could nuke the delay also. Are sound f/x possible on channel 2 while channel 1 plays digitized audio? IMAGINE THAT!!! Having a feature "real" song playing with f/x also playing simutaneously AND game play!!! I would really love to push the 2600's audio. I saw a "tracker" that exists for VCS and was going to start playing with it but then I got distracted when I discovered it can actually play digitized music! It sounds hilarious and kick ass simutaneously. Who'd of ever thought it?!?! P.S. - 256 MEGS?!?!?! WOW!!! iesposta: Having digitized audio play while the game is going would be f<king awesome. Yes, Stay Frosty 2 proves it can be done. Music can be written in ways which would be compatible with the VCS's limitations and extend the apparent lenght of a song. Like if I write a song which is 12 measures in 4/4 for example... Let's say it's the same melody except measures 1-4 are normal, 5-8 are more intense, and 9-12 are very intense. That way a game could be made where the music is playing but as the game becomes more intense, the music gets more intense. (Yet the melodys all intertwine perfectly.) And from a programming perspective, all you're telling it to do is something like: When the game is normal, just repeat bank 2. When it gets more intense, repeat bank 3. When it's insane, repeat bank 4. Like how Space Invaders gets more intense/faster as the invaders become fewer, ya know? Imagine a theme song that gets more intense as the game goes on and is a real actual digitized song. I assume it is possible to play samples larger than 32 bytes but the "player" will need to do what I was talking about above - Read data across multiple banks. Basically "stream" from the banks, right? Probably need a buffer for when it switches but I don't think any of these things are impossible. Another cheat could be to make the sample data contain the song playing too fast and with too high of pitch. Then the player could play stuff slow, which would reduce the pitch and speed to how it was intended. That way more data could be "compressed" into the 32 byte space. This would work with synth music like I do. It would produce distorted notes that sound unlike other 2600 music or the original song. (I'd have to see how it sounds and then go back and alter the input and play with it but a sweet spot could be found I'm sure.) Sorry for rambling, I have tons of audio ideas. I'm better musician than coder. I grew up listening to Rob Hubbard SIDs. It is insane when I think of the ramifications here. I mean, seriously - the VCS is actually more expandable than the C=64 in a way. It's absolutely insane when you consider how far it could be taken.
  3. CONTROL 2015 AUDIO DEMO This is something I made today to test the theory that what has been discussed above could be expanded across multiple banks. I've heard you can make up to a 512k 2600 rom! A full lenght digitized song should be doable with some creative editing. (Doesn't Stay Frosty play digitized music DURING GAMEPLAY?) Thanks to ZackAttack for giving me enough power to be dangerous. Press fire at the title screen to hear the short demo. Any comments welcome. CONTROL 2015.BIN
  4. ZackAttack: Once again, kudos man! After I nuked the dim statements from my basic source and included the new voice.asm file you created, everything worked flawlessly! The sample plays, then my game starts! Random Terrain: I understand your confusion and I think I can clarify. Take C for example. Most C programs use STDIO.H (Standard I/O). They usually have # include <stdio.h> at the beginning because almost everything uses STDIO. It contains SCANF and PRINTF and all the basic text manipulation and "standard input and output" commands you need. I assume "include fixed_point_math.asm" is the same. (It's something that adds root level functions to Batari BASIC.) These are beginning of program "setup" type things that need to be done up front because they contain things that the rest of the code needs to use. This is different than "more game data" code. I assume the fixed_point_math.asm adds fixed point math, correct? So obviously, that needs to be set up first so the rest of the program can do fixed point math. Either way, "include" is simply "including" the data so where you put the "include" in your program really depends on where you should put the data that the include carries, understand? (Depending on what type of data the include is carrying defines where the include should be located.) Because you can literately take an include file and cut/paste it into a program and not even use the include function and it's the exact same thing. (As I mentioned above, all "include" does is "include" the source into your program.)
  5. ZackAttack: Dude you are awesome! That is exactly what I needed! YES! Including this in the BB library would be awesome! Including it into Visual Batari would rock too, like if there was an editor. For anyone who wants to know how to make it work now, here is my workflow: A - Use Soundforge or some other audio editor to save out whatever audio you want into a 4bit, 8000hz mono WAV file. B - Make sure PERL is installed and use wav2atari.pl to generate the text data from the WAV you created. C - Simply cut & paste the audio data it creates over the audio data in Zack's voice.asm file. (I have found that I need to truncate it after PAGE 9, anything beyond that crashes, probably because memory.) D - Run the basic program and point your include to your modified ASM file E - PROFIT!!! AMAZING! Thank you so very much! P.S. - My next question is about bank switching I think. Why doesn't this source work? It compiles, plays the sample, then sits at a black screen. If I remove the "gosub PlayRecording bank3" line then the title screen shows and all works as before but obviously, it doesn't play the audio sample. If I include it, it plays the sample but then sits there. I have a feeling I'm not telling it to switch back to bank1 (which I assume the main code is at) ? I'm trying to put TITLESCREEN in BANK 2 and the audio sample in BANK 3. So that it plays a sample then goes to titlescreen. I would love to play the sample DURING the title screen but I didn't know if that would work and am just trying to get it to compile first. I can tell they're going there because it shows. And I can get either to work but not both. 3845 bytes of ROM space left in bank 1 2022 bytes of ROM space left in bank 2 1223 bytes of ROM space left in bank 3 I'm including the basic source and titlescreen.asm. Voice.asm is the same as above. SOURCE_Title.bas titlescreen.asm
  6. Random Terrain: All "including" something does is "include" the source from the ASM file into the BASIC source. I have tried not even using the include anyhow and directly just putting the full source into the BASIC source so that it's a huge file with all source and no includes... I get the exact same error. My issue has nothing to do with using the include function. I think Zack is correct - Memory is being over written. ZackAttack: Here is my source. You should be able to compile it by using dasm TEST.ASM -f3 -oTEST.BIN. As for my basic source, I have tried a million different ways - If you can find ANY way in basic to include this ASM it would rock! I assume memory is going to have to be allocated and shifted somehow. Maybe if you know what location the ASM loads into, we can tell BASIC to load somewhere else? Or change the ASM code to load somewhere BASIC doesn't? I am sure this is going to help many people because I have the work flow figured out and if we can get this to work then anyone should be able to put digitized audio into their code. P.S. The sample that plays is a clip of me saying "Copyright" from years ago that I riped off an audio CD I made, it's only for example purposes. (I just needed a quick sample!) TEST.ASM TEST.BIN
  7. randomTerrain: It's right there on the link you post - asm ldx #47 lda #0 playfieldclear sta playfield,x dex bne playfieldclear end The whole function of the asm tag is to allow you to insert asm code into the basic code. Are you misunderstanding what I mean? You use the asm tag, you insert your asm code then you put end at the end. This is the only way I have ever seen asm routines put into Batari. Now... If the ASM code is over writing parts of memory it shouldn't, that's a different issue of course. Hopefully Zack can help me on that.
  8. ZackAttack: Okay then is there a way to get digitized samples into Batari Basic without needing a "very good understanding of assembly" ? Random Terrain: Using asm tag, inserting asm code, then ending with end works with all the example code I've played with. Such as "titlescreen_demo.bas" and others. I have already been using this exact format to make title screens, how can it be wrong? (I have already written programs that are mostly basic but use asm rutines.)
  9. Greetings! I've been studying and learning more and more every day, coding on VCS is awesome! However, there are a few things I'm having issues with. In this post, I would like to ask help for adding ASM routines into the Batari BASIC source. I've been playing around with making digitized samples using the excellent utility wav2atari.pl. I can compile the ASM source I create from command line using DASM with no problem as you can see below. The TEST.BIN plays perfectly and sounds excellent! (I am seriously impressed by the quality!!! WOW!!!) C:\BATARI\HELLO SAMPLE\HelloWorld>\BATARI\dasm.exe TEST.ASM -f3 -oTEST.BIN Complete. C:\BATARI\HELLO SAMPLE\HelloWorld> The issue I'm having is when I try to insert the code into Batari Basic source. The way I understand it is you're simply supposed to use the asm tag and end at the end. Like this: set romsize=32k asm include "HelloWorld/test.asm" end I've tried a million different ways but every time I get "Origin Reverse-indexed" error during compile: Compile started at 3/14/2015 3:58:52 PM Compiling C:\BATARI\HELLO SAMPLE\MAIN.bas segment: CODE 1000 vs current org: f45d HelloWorld/test.asm (38): error: Origin Reverse-indexed. Errors were encountered during assembly. 2600 Basic compilation completed. Compilation completed at 3/14/2015 3:58:52 PM view output file:///C:/BATARI/HELLO SAMPLE/bin Post compilation files deleted Obviously, the source is good else it would not compile using DASM from command line. What am I missing? Thanks for anyone who can help!
  10. bs4

       

    How do I nuke this? (Nuke a post) Sorry.
  11. C:\BATARI>2600bas.bat PR_V2b.bas batari Basic v1.01dreveng36 ©2005-2014 2600 Basic compilation complete. 138 bytes of ROM space left in bank 1 33 bytes of ROM space left in bank 2 175 bytes of ROM space left in bank 3 30 bytes of ROM space left in bank 4 39 bytes of ROM space left in bank 5 32 bytes of ROM space left in bank 6 85 bytes of ROM space left in bank 7 124 bytes of ROM space left in bank 8 Complete. AWESOME!!! I followed that link and installed the latest version and all went well! Everything I try is now compiling! Thanks! P.S. - What is the best doc on programming in Batari? The CurtisP doc is awesome but it just sorta... Stops. (http://atariage.com/forums/topic/111938-programming-tutorial/) It ends with "NEXT : READING THE JOYSTICK" but then there doesn't seem to be any more. There are updates in the source/demos but there isn't any more of the walkthru/explainations. I would love something like a full version of this doc. Thanks!
  12. Well that's the thing... I'm running Windows 7 x64 and initially it wouldn't work. (No 16-bit) I got the Mingw compile which was supposed to be up to date. I don't remember where I got it from but it was supposed to be the way to run it on 64 bit. Is there a place to get a 64-bit compatible version that's also the newest version? Thanks! P.S. My executable says version 1.01 - batari Basic v1.01 ©2005-2007 game
  13. Greetings! I've been lurking here for many years and finally created an account, downloaded Batari and the IDE and got my first software working last night! Wow! This is so f&ck|ng cool!!! Anyhow... I have a quick question. All the example code I've been using compiles great. C:\BATARI>2600bas.bat samples\3_MoveASprite.bas batari Basic v1.01 ©2005-2007 2600 Basic compilation complete. DASM V2.20.07, Macro Assembler ©1988-2003 bytes of ROM space left 2659 bytes of ROM space left Complete. The small bits of code I've been writing myself to learn work also. (Very simple stuff, I am just learning and not doing anything complex.) But many of the larger or more complicate things don't. (For example, Princess Rescue) C:\BATARI>2600bas.bat PR_V2b.bas batari Basic v1.01 ©2005-2007 (846): Error: Unknown keyword: C▬ Compilation failed. There are others as well. (Programs that are known to work, have the source released, yet fail compile.) I download the source and try to compile and get the same type of error. Usually unknown keyword and then some garbage, as if it's an ASCII thing. (You know how CR/LF on Linux is just CR but on DOS there are added linefeeds?) Anyone? Thanks!
×
×
  • Create New...