Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

343 Excellent


About Dionoid

  • Rank
    Chopper Commander

Profile Information

  • Gender
  • Location
    Leiden, Netherlands
  • Interests
    Game development!

Recent Profile Visitors

3,502 profile views
  1. That's really clever! I never would have thought about using a RAM-based dumper and storing it on a SaveKey. Steps 2 and 8 are kind of a mystery to me: How did you know what bankswitching scheme PP was using? And if that bankswitching scheme was unknown until now, how do you get Stella to understand and run it?
  2. Hmm, I think the rule-blocks will be more difficult to use if the words are not written out. Maybe I'll give it a try sometime; for now I've too many projects on my To Do list already 🙂
  3. I was just playing the popular Indie puzzle game 'Baba Is You', which I think would really fit this '2600 tile engine. https://hempuli.itch.io/baba-is-you
  4. Yes, please! I'm a first-time attendee. Name: Dion Olsthoorn AA Handle: dionoid Location: Leiden, The Netherlands
  5. @Albert I'm going to change my plans and visit the PRGE this year; I got green light from both work and my family! 🙂
  6. August is also not very convenient for me. Bummer. @Albert: do you also sell PAL cartridges on your booth at PRGE? Or is it NTSC only?
  7. Portland Retro Gaming Expo 2019 is getting close, and so is the official cart-release of Amoeba Jump! I don't have a bucket-list, but if I had one, it would certainly contain "- Make an Atari 2600 game and get it released on physical cartridge and with a nice box" Thanks to Albert and Nathan for making one of my dreams come true. You guys rock! I'm planning on going the PRGE next year in 2020, so it would be nice to meet some AtariAge friends then! Here is a peek at the box for Amoeba Jump. Nathan Strum's artwork caught the spirit of the game very well.
  8. Excellent suggestion, Nathan. Work in progress... In the coming release this "player vs. AI" will be disabled, as I want to keep that feature exclusive to the cart release.
  9. Hi, I noticed that the Stella emulator shows a refresh-rate of 59.5Hz when running PAL60 games. While I assume that is the correct refresh-rate, I don't understand the reason for this. Where is that .5Hz lost?
  10. The brothers Gary, Dan and Steve Kitchen all worked at Activision for some period of time; pretty unique.
  11. Keep ‘m coming! Thanks!!!
  12. In this case $70 and $60 are values, which after you store them into a HMPx register will instruct the TIA the horizontal pixel offset. Do you have a copy of the "Stella Programmer's Guide"? This guide is essential for learning (and lookup) of the Atari 2600 specs: online PDF version: https://atarihq.com/danb/files/stella.pdf printed booklet: http://www.lulu.com/shop/steve-wright/stella-programmers-guide/paperback/product-23621137.html This is the information from the Stella Programmer's Guide that you are looking for:
  13. (Note: I don't want to hijack this topic, so this will be my last reply with questions about dasm) Hi @RevEng, maybe we got off on the wrong foot here; I really appreciate that you have made these fixes in dasm and the things you're doing to keep the tool alive! And your 'AA' version of dasm allowed me to successfully assemble Andrew's code, so thanks again for that! I'm fairly new to AtariAge (I joined early 2018), so I didn't know about the history of dasm and it's various maintainers over the years. From the information I found in the forums, it looks like the dasm-dillon version on SourceForge wasn't updated since 2015, and the last release is from 2014. It surprises me that an open source tool like dasm isn't on GitHub, which is the 'de facto' platform to maintain and grow open source projects. Btw I did find a old copy of dasm by Dennis Munsie on GitHub, but after the initial commit in 2011 nothing has changed there, and Dennis hasn't visited AtariAge for almost a year now. Would you mind if I put your current version + your base version of dasm into a GitHub repository? If you like I can add you as member, so you can create branches and merge in new changes, etc. If you rather want to send me the updates now and then, that's okay too. Having things in GitHub makes it easy for other people to do pull requests to get their changes in. As an example: the changes that Darrell Spice Jr. has done in Feb/March 2018 (see this thread) in GitHub he could have done this himself with a pull-request which you could have then reviewed and merged back in. So the idea is that after the initial commits (i.e. base version + your current version) in the new GitHub repo, I can see if it makes sense to pull in changes that were done by Peter H. Fröhlich in the SourceForge repo. But I will be reluctant with that, as keeping a stable version of dasm is what we need. Maybe I should ask Peter himself to create a pull request for his changes from 2014 and 2015, if he is still interested. My ambition is that this new repo is going to be the single source for dasm, for which anyone can file issues, create forks and have changes pulled back in, etc. I wouldn't want any big rewrites; the goal is to stabilize the tool as much as possible so it can live on. And the repository won't be under my name, but under the organization named "dasm-assembler". IMO this makes it more professional and 'official': https://github.com/dasm-assembler Hope to hear from you. Please PM me on AtariAge if you like the plan (or not). Cheers!
  14. By the way, if you like books on 2600 assembly game development, Atari 2600 Programming for Newbies by @Andrew Davie is highly recommended!
  15. Good questions; for me it helped to write out the list of possible remainders (and their binary representation) to fully understand this. I also own a copy of "Making Games for Atari 2600", so I pasted the code below: ; A contains the X coordinate. ; First divide A by 15, as de DivideLoop takes 5 CPU cycles for each iteration ; 5 CPU cycles = 15 color clock cycles sec ; set carry DivideLoop sbc #15 ; substract 15 bcs DivideLoop ; branch while Carry still ste ; A now contains (the remainder - 15). ; We’ll convert that into a fine adjustment, which has ; the range -7 to +8. eor #7 ; this calculates (23-A) % 16 asl asl asl ; HMOVE only uses the top 4 bits, asl ; so shift left by 4 sta HMP0 ; set fine position ; That tricky calculation with EOR and ASL converts the remainder into a value ; appropriate for the horizontal motion register. ; ; Hugg, Steven. Making Games For The Atari 2600 ; (The 8bitworkshop Series Book 1) (Page 53). Puzzling Plans LLC. Kindle Edition. So right after the DivideLoop code, A contains the mathematical remainder minus 15; you could write that as (the remainder - 15) I guess. E.g. when you start with 30 as X coordinate, the mathematical remainder would be 0, but A would contain -15. And when you start with 44 as X coordinate, the mathematical remainder would be 14, but A would contain -1. So, the remainder in A can go from -1 (%11111111) to -15 (%11110001) I guess you could say that 'eor #7' is calculating (16 + 7 - A) % 16, but you would have to clear the top 4 bits of the result to make this statement true, so it's confusing. Anyway, by doing that 'eor #7' (or eor %00000111) and then shifting left 4 bits, this basically maps the remainder in A to values in the range $60, $50, $40, $30, $20, $10, $00, $F0, $E0, $D0, $C0, $B0, $A0, $90 and $80. When put in the HMP0 motion register, this will result in a vertical positioning of -6 to +8 "pixels". remainder in A: -15 | #11110001 -> #01100000 | $60 -> -6 pixels remainder in A: -14 | #11110010 -> #01010000 | $50 -> -5 pixels remainder in A: -13 | #11110011 -> #01000000 | $40 -> -5 pixels ... remainder in A: -10 | #11110110 -> #00010000 | $10 -> -1 pixels remainder in A: -9 | #11110111 -> #00000000 | $00 -> +0 pixels remainder in A: -8 | #11111000 -> #11110000 | $F0 -> +1 pixels ... remainder in A: -2 | #11111110 -> #10010000 | $90 -> +7 pixels remainder in A: -1 | #11111111 -> #10000000 | $80 -> +8 pixels So the value $70 (= -7 pixels) is actually never being mapped to, but this is no problem as using the range of -6 to +8 pixels will cover what we need to do fine positioning. Hope this helps!
  • Create New...