Jump to content

ScumSoft

Members
  • Content Count

    415
  • Joined

  • Last visited

Everything posted by ScumSoft

  1. Two of my favorite videos: reverse_engineering_mos_6502: http://mirror.us.oneandone.net/projects/media.ccc.de/congress/2010/webm/27c3-4159-en-reverse_engineering_mos_6502.webm The Atari 2600 Video Computer System: The Ultimate Talk: http://www.youtube.com/watch?v=aNyebnxV9R8
  2. I've returned for a little while, not sure how much time I can spend on my hobbies though. I'm back to working on my old project, rewriting the DPC+ ARM bootloader code for a more bitmap/vector based display output, and want more info into what has already been tried. I would like access to the restricted Harmony Cart Development forum, please.
  3. I got an email saying that someone replied to a posting I made over two years ago >_< What I want to know is why Glade Swope is necrobumping old posts answering them. Does this new member really think we never got an answer after all this time? FYI I have a major real work deadline that is sucking all my time, otherwise I would be here working on my harmony projects. So I haven't disappeared completely again. Be back later on after work settles down
  4. The 2600 is great in that there is no one shoe fits all (yet) boiler plate code, but there is a generally accepted method to how most kernels are laid out. Your draw kernel is segmenting itself twice when it should be one contiguous flow, the way your HMOVE is handled can be improved greatly, joystick polling also. Your variables for position checking are not required ect.. [edit]Oh, and when you can see how other people work the kernels you can get an idea how it compares to your methods. I am not implying mine are better, just a different way of approaching the build and might be of some use.
  5. Your code is a bit messy and the kernel isn't implemented fully, I was doing a merge of your code into a template I wrote up years back that helps keeps things neat and organized. Give me a little more time to make sure everything you need is well commented and written up and you should be able to use it for any future projects.
  6. ScumSoft

    Vader

    My VCS
  7. CX-2600 A NTSC S.N. 812406936 Manufactured in Taiwan Smooth Front
  8. Finally got a 2600 to program with again! It's a Vader, but it works and I am happy!

    1. JacobZu7zu7

      JacobZu7zu7

      once you go 2600 black, u never go back.

    2. iesposta

      iesposta

      You there, bus stuff and go!

      I was impressed that nanochess made a game in assembly, and had to wire a board to play it on Colecovision Expansion Module #1!

  9. I don't think there is any directive for binary like you want, but the source to dasm is available and it could be added if you really need it.
  10. I loved Temple of Apshai on my C64, I played it so much as a kid. When I was first getting started with 2600 programming, I sought to make a new ToA game and call it Tower of Tulgey a.k.a(Tower of Darkness). I still have my project folder when I was working on it, but I ran into and rediscovered fun complex display kernel stuff and got sidetracked. Still am sidetracked by it to be honest but hopefully once my new display kernel is done it will pave the way to finishing that recreation.
  11. My benevolent Atari gods, why did you resurrect this infernal thread!? NOP is an instruction, NOP #0 is an instruction with a parameter. NOP can take parameters but will not do any work on them, instead it simply is burning cycle time as it parses over them. A = A is an assignment which makes the point that something is being done, but nothing has actually been done. This is why NOP can be considered an Operator and Operand. NOP <--Operator by itself NOP #0 <--Operator told to work on a byte and do something different, thus working as an Operand
  12. ScumSoft

    Degenatron

    I don't see why the rest of the Degenatron games couldn't be coded up. They aren't all that complex ;)
  13. ScumSoft

    Degenatron

    Was going through my old bB project folder and Ohhhhh this is hilarious, I forgot I threw this together way back when to show my cousin how bB worked. It's a quick and cheap recreation of Monkeys Paradise from Degenatron, Since it would otherwise just sit on my computer never shared, I thought I would share it. Degenatron commercial DegenatronSRC.zip Degenatron.bin
  14. That was cool, be sure to also check this one out as well Atarsi rom, Video
  15. I think functions in general just make code look nicer, but they don't have any inherent properties that cannot be achieved through normal methods. I have not used them yet in bB as I prefer more finite control over everything done, but I like the cleaner code. function .Multiply Result = temp1 * temp2 return Result //Result not needed as value is kept in Acc? end P0velocity = .Multiply(Vector,Speed) //This looks far better than say .Multiply //Label Result = temp1 * temp2 //Save result of multiplication return thisbank //or otherbank temp1 = Vector temp2 = Speed gosub .Multiply P0velocity = Result
  16. Sorry for not clarifying in my post, but in my ASM example you will use either rts or return to get back to where you called the function depending on if it was a bankswitched game or not, not both
  17. I think my example is more of mixed asm + bB rather than the pure asm implementation. the differences being that you need to treat the asm as you would if you were coding in pure asm with dasm, and not bB. You would define your function name in pure asm like so: addlives ;function label ;a holds first value passed which is score ;y holds second value which is lives lsr lsr lsr lsr ;//divided A cpu register a which currently holds the score by 16 sta temp1 ;//Save result in temp1 tya ;//bring Lives in y over to a clc ;//Clear carry flag adc temp1 ;//Add new lives from score together with existing lives sta lives ;//Store final result in variable rts ;//return for non-bank switched games return lives ;//for bankswitched games, omit this line if you use rts above and vice versa (actually you would also need asm and end directives if used from bB, so this might be better ignored all together and just stick with rts) //Call this pure asm routine like such NewLives = addlives(score,lives)
  18. Ok here is a proper implementation of a bB function being used for both bB and asm: //Variable for p0lives dim P0Lives = a dim Score = b //Lets add to the player lives based of the score player has //For every 16 points add a life to the player //Score will be passed to the function in temp1 //Declare a function function ScoreLife temp2 = Score / 16 //divide the score by 16 to find how many lives to add return temp2 //now return the value to be then added to p0lives end //end function //The function can be used to add lives to the player based on end of level score P0Lives = P0Lives + ScoreLife(Score) //This then becomes in logic p0lives = p0lives + temp2 once the function is done * Now in ASM it's the same thing, but instead the function will hold ASM code: //Variable for p0lives dim P0Lives = a dim Score = b //Lets add to the player lives based of the score player has //For every 16 points add a life to the player //Score will be passed to the function in temp1 //Declare a function function ASM_ScoreLife //temp2 = Score / 16 //divide the score by 16 to find how many lives to add asm //Replacing the above statement with asm lda temp1 lsr //divide by 16 lsr lsr lsr sta temp2 end //end asm return temp2 //now return the value to be then added to p0lives end //end function //The function can be used to add lives to the player based on end of level score P0Lives = P0Lives + ASM_ScoreLife(Score) //This then becomes in logic p0lives = p0lives + temp2 once the function is done Ok that should do it, forgive me if there are any more mistakes I am overlooking.
  19. I have returned! shhhhhhhhhhh.

  20. I would love nothing more than to get back to reprogramming these games, this time from the ground up in asm to do things right. These games were my crash course in 2600 programming Back in Dec 11', I had inadvertently burned myself out programming so much. I also had to move in January and accept my old job back as a staples easytech. I've just had no mental energy on my days off to pursue this properly, and have been struggling to survive and make ends meet. (bottom line, I just need a better job, retail is horrible and killing me) I would also need to acquire a 2600 again, I was borrowing my uncles back then and no longer have access to it. But I would like to purchase one and s-video mod it so it will connect to my new Commodore 1702 monitor or one that's already been premodded. I also apologize for avoiding this wonderful place all this time. I needed a complete mental break from everything I revolved my life around, in order to get my priorities straight and focus on the important things. I'll hope to see you all again come this new year!
  21. Something like this works, you don't include the .h header files like that includesfile multisprite_superchip.inc set kernel multisprite set tv ntsc set romsize 8kSC set smartbranching on
×
×
  • Create New...