Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Songbird last won the day on August 9 2019

Songbird had the most liked content!

Community Reputation

1,321 Excellent


About Songbird

  • Rank

Contact / Social Media

Profile Information

  • Interests
    2600, 7800, Jaguar, Lynx

Recent Profile Visitors

18,670 profile views
  1. Every Biniax 2 cartridge includes both Biniax 1 and Biniax 2. The "duo" ordering option is just to give you a chance to buy a second cart at a discounted price. Other Songbird games with comlynx now have a similar ordering option (Champ Rally, SIMIS, Othello, etc.). Thanks for all the support so far! Happy to publish these for Atari fans.
  2. My build invocations on Remnant were pretty bland: cc65 -DCARTRIDGE main.c xopt main.m65 ra65 main.m65 link65 -o remnant.o lynx.olb u*.obj b*.obj sled?.obj met*.obj ex*.obj cockpit?.obj remlogo.obj pw3d.obj main.obj lynxer remnant.mak make_lnx remnant.lyx -b0 256K I don't recall running a special tool or tool parameter to generate the *.map file. I think I just redirected the text output to a file. But that was many years ago...
  3. In the case of Quadromania, the levels occupy a blob of RAM but have other variables before and after them. So I had to ensure that I worked within the original start and end RAM locations. That means individual levels could grow or shrink but I couldn't go past the original end. And actually, I could have gone past the original end of level RAM by finding a new unused location in RAM and updating the level pointer. So then I'd have more of a scatter/gather list instead of a contiguous chunk of level RAM. But as it turned out, a lot of the higher levels had so many blocks I found it easy to shrink levels rather than grow them. As Bastian said, you should be able to see the memory map for C code during the build process. That's a tool I've used for many years on C programming -- just haven't done any C recently! But you usually get some kind of linker output that shows your text, data, and bss. For example, I wrote Remnant for the Lynx in C with cc65 20 years ago, and here's a snipped of the "map" file output: R - relative A - absolute T - text Z - zeropage text-segment base address 0400 d:\prog\lynx\newcc65d\lib/runtime.run (0400 to 09f4 = 1525 bytes) ufo1.obj (09f5 to 0a81 = 141 bytes) ufo2.obj (0a82 to 0b18 = 151 bytes) ufo3.obj (0b19 to 0bab = 147 bytes) ufo4.obj (0bac to 0c33 = 136 bytes) boss1.obj (0c34 to 0df8 = 453 bytes) sled1.obj (0df9 to 0e9f = 167 bytes) ... more stuff ... _LoadCartBlock 962c RT _viddma fd92 A? _remlogo 2137 R? incsp7 0464 RT _cos1 a0de RB _pFirstEnemy a450 RB incsp8 0468 RT __iodir 0090 RZ _cos2 a0e0 RB _scbnext fc10 A? sreggeax 0774 RT _cos3 a0e2 RB _SetBuffers 8f58 RT _debris a108 RB ... etc. So I can see all my variable locations, data structs, and function calls (such as SetBuffers()).
  4. Songbird is super-excited to announce orders are open for Biniax 2 and Xump for the Atari Lynx! Biniax is a frantic push-your-luck puzzle game that includes Biniax 1 and Biniax 2, while Xump is a clever navigate-the-maze game with dozens of levels. Both games feature top-notch graphics and music to keep you entertained. First run of each game is limited to 150 copies, so click on the links to reserve your copies today. Regular price is $49.95, but everyone who orders these games before June 30, 2020 will receive a $5 discount for each! First orders will ship by end of June. Happy gaming!
  5. OK, I figured out how to create patterns by typing new numbers in the playlist. Now I understand it's a "pattern within a pattern" for each channel, thus I can reuse for example a drum beat in one track in multiple patterns. This does help so I don't have to type something in repeatedly, but if there are any advanced editing options such as "select-and-copy" or "copy a track to a new track ID", please let me know. Very nice tool, though!
  6. Raiders of the Lost ROM part 5 is now available! See how a sailboat made it into Quadromania, and how a tiny amount of Python code can enable you to become a ROM hacker too!
  7. How do you change the number of measures / lines for a given song in Chipper? It seems to default to 64, and I'd like it to be 128 or longer. However if I change the "Lines" number, I can't see the lines to edit; only the first 64 are visible. Am I missing something? Edit: realized the above question didn't make any sense. I know the pattern has 64 lines in it. However the Chipper "playlist" window seems more like a channel window. How do I edit patterns besides the first one, and then also create a list of patterns like a regular MOD player would have? Also is there any kind of cut and paste or duplicate support? Would be nice to have so I don't have to type out repeating patterns manually.
  8. In case anyone is interested, and you don't regularly keep up with the programming sub-forum, I've been blogging on Quadromania ROM hacking. Enjoy!
  9. Impressive! Can we expect a port of Superhot to the Jaguar soon?
  10. I don't know that you could accomplish that with panning on the Lynx. You certainly could add a depth component to the sound, though. I believe Klax does this already, where the blocks further away from you not only pan left and right, but are also quieter. Then they slowly get louder as they approach. So you could in a sense make the sound move closer or farther in addition to left or right, but I don't see how you could simulate up and down. It would be kind of neat though in a 3D game if a fireball could shoot towards the player then get quieter if it missed and kept traveling behind the player -- that would be pretty close to a surround effect. Thanks, that's my goal. I'm more of a brute-force hacker who looks for ways to add simple new features or fix key bugs. There are of course a lot of details I am glossing over, but I'm trying to give a higher-level view of the methodology behind the changes rather than an in-depth treatise on assembly programming.
  11. Raiders of the Lost ROM part 4 is now available! I discuss how to identify and patch joypad accesses in a Lynx ROM, as well as a couple of Quadromania-specific bugs I fixed along the way. Note that when I talk about patching a Lynx ROM, you will of course need to re-encrypt the ROM after the patch. Unless your ROM has an encrypted boot loader on it that does not checksum the ROM.
  12. I'm confused... on the first page it says 128 bytes, then on the next page it says "no file size limit."
  13. Hi @Nop90, thanks for the kind words! It was a pleasure to partner with you on these two releases -- you are extremely professional, and dedicated to fixing even the minor optional UI issues we found. Looking forward to seeing what other cool games you can bring to the Lynx! I also want to thank Retroguru for kindly providing the license for Xump, and other Atari fans like @karri and @Igor and for all their help getting me started on the process of building carts. This hobby has come along way since I was hacking with a parallel-to-comlynx RAM loader in the 1990s, and it's really enabled a lot more development than we've ever seen before. For those eagerly awaiting Biniax and Xump, hang in there for just a couple more weeks! Carts are being manufactured now and I should be able to open orders very soon.
  • Create New...