Jump to content


+AtariAge Subscriber
  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by playsoft

  1. I think I removed the right ones! It's now playing on just the 64K channels. synth_5200.bin
  2. To convert from RMT to SAP-R I export the RMT to a XEX and then record the SAP-R in Altirra. When doing this it makes a difference whether Altirra is configured for PAL or NTSC; in PAL it records the audio registers 50 times a second but in NTSC it's 60 times resulting in a bigger file. I did this for all of Jaden's RMT files, making PAL and NTSC versions of the SAP-R files and then compressing them with LZSS -8: RMT FILES LZSS PAL FILES LZSS NTSC FILES 205 Galaga - Challenging Stage.rmt 96 challenging_pal.lzss 102 challenging_ntsc.lzss 144 Galaga - Extra Life.rmt 74 extra_life_pal.lzss 87 extra_life_ntsc.lzss 292 Galaga - High Score.rmt 291 high_score_pal.lzss 372 high_score_ntsc.lzss 147 Galaga - Insert Coin.rmt 37 insert_coin_pal.lzss 42 insert_coin_ntsc.lzss 670 Galaga - Perfect!.rmt 319 perfect_pal.lzss 570 perfect_ntsc.lzss 309 Galaga - Results.rmt 283 results_pal.lzss 356 results_ntsc.lzss 366 Galaga - Start.rmt 598 start_pal.lzss 751 start_ntsc.lzss 2,133 bytes 1,698 bytes 2,280 bytes I generated 2 versions of the build with the start tune - the 60 version uses the NTSC data, the 50 version uses the PAL data but skips the playback routine 1 frame in every 6 to correct the speed for NTSC. The advantage of the 50 version is that the data is smaller but I think you can hear a slight difference between the two. jaden_50.xex jaden_60.xex
  3. 👍 I will rebuild the demo tomorrow with the updated file.
  4. Haha I thought you intended that distortion! If you play your file in RMT there's no distortion but if you export it as an Atari executable you get the distortion (you can try it, just select "file -> export as" and choose XEX). I think the distortion is caused by having the volume too high in the instrument envelope. I changed it from FEDC to 7654, exported it to a XEX and it sounded fine.
  5. I generated builds using the two tunes. There's not really much in it, Synthpopalooza's is slightly smaller and requires less cpu cycles although it is not as consistent. I did try the sap/lzss process on Synthpopalooza's but it did not compress as well as Jaden's, presumably because of the 16-bit values. jaden_5200.bin synth_5200.bin
  6. Yes interesting, a sort of harpsichord vibe to it. I think the 4 duration tables are the same, so more like 170!
  7. I much prefer your RMT one over the midi (plus that was the only midi file I could find, so the other tunes would be missing) and with the LZSS compression it's much more viable to include them. I really don't know if the remaining functionality will fit in a 32K cart anyway - and if I do target a bigger cart I can turn the other sprite drawing optimisations on.
  8. Ah yes, blanking with DMACTL would be daring, I just put the blank scanline codes in the display list ($00..$70).
  9. Thanks, that's fantastic, it certainly makes a difference to the cpu and memory overhead. As a comparison I tried 3 different versions of the start tune; the 7800 one, a midi file conversion and Jaden's RMT using LZSS (I used the 12 bit one for this). In terms of what they sound like, Jaden's is obviously by far the best. In terms of cpu cost, the 7800 is cheapest, then midi, then LZSS - appears to be a little over double the 7800 cost. In terms of song size, the 7800 is 100 bytes, midi is 180 bytes, LZSS is 344 bytes. In terms of player size, LZSS is the smallest although the 7800 does have other things in there for sound effects which are not used by this tune. I can't say there would be the resources available for it in a 32K cart but it definitely makes it more viable. vcs.xex midi.xex jaden_start_lzss.xex
  10. No nothing daring - both the screen map and the display list are double buffered, so with the off-screen buffer erase the old sprites, draw the new ones and create the display list so that it only has ANTIC 4 rows for those on which sprites were drawn. You are right, there are single line incoming waves where there may only be a couple of ANTIC 4 rows empty but I think that's enough to cover the overhead of doing this. I roughly estimate there are 100 cpu cycles available on a blank scanline and 50 available (averaged) on a scanline that is part of an ANTIC 4 row. So each one omitted claws back around 400 cycles (minus the overhead). In this case where the sprites are spread out vertically the other optimisation kicks in; because of that spread they tend not to overlap much, so the blank character optimisation gets used a lot. The opposite scenario is when they are all grouped together moving to their formation positions. Here the blank character optimisation isn't used much but removing the ANTIC 4 rows is. The two optimisations work so well together I could probably convince people it was all planned out like this in advance... 😀
  11. Thanks, being a space game I was able to make a couple of good optimisations with the sprites; (a) when drawing over a blank character just write the new data straight out, (b) replace any ANTIC 4 display list entries with blanks if nothing is drawn on those rows. I haven't picked this back up yet and I'm not sure I will (a bit too much pressure for me). I was aiming for a 32K cart - and there is about 8K ROM free and about 4K RAM free. There are times when it can't maintain 60Hz so I flicker one of the sprites. It's barely noticeable as it's 1 sprite in 10 and doesn't happen very often or for very long. I can speed up the sprite drawing but that costs another 5K ROM. I don't know if the remaining 8K ROM/4K RAM would be enough for everything else. It probably is a bit tight, so if it did need a bigger cart that might be the time to consider a more sophisticated music player, although to my non-musician ears I'm not sure the music in Galaga needs it - like Synthpopalooza says above, it might be more a case of mimicking the Namco sound chip.
  12. Plus there are platform and puzzle elements too... I loved the snake puzzle.
  13. The bank switching scheme is described here:
  14. It looks like a bug to me as you now have it crashing at the same point in 2 different scenarios. In Altirra with collision detection disabled the ROM image is unchanged, the collision detection registers simply don't report collisions. The hack tested on real hardware simply loads a 0 instead of reading the collision register.
  15. I hacked the 5200 ROM image from Atarimania to stop it reading the PM collision registers and it still crashes at the same point (the phoenix, not the spaceship) on real h/w: As there's no warp speed available on real h/w it does take over 11 minutes to get there, so maybe no one's ever got that far. Or perhaps there's a version of the prototype out there without this issue. I see you can buy a 5200 cart of it from the AA store, does anyone know if the ROM image used here was made publicly available? From the debug log in Altirra it's going out of bounds in a jump table. I imagine it will be tricky to fix given it's OK the first time round. Xevious_hack.bin
  16. The hacked version is no longer bound by the 16K ROM/16K RAM limit but hacking the game from single buffer xor sprites to double buffer fully masked sprites is a bit much for me. It could probably be done by the original author though.
  17. Thank you. It's really nice to see someone being proactive like this. They sound great and normally I'd jump at any RMT music on offer, but in this case I am up against it with both CPU cycles and memory. The RMT player usually needs 1.5K for its code and 1K for data tables plus the space for the RMT files. Your files are about 2K so that's 4.5K in total. Although you don't get to hear much of it, the demo includes most of the audio converted from 7800 Galaga (typically the sound effects that I couldn't convert, the enemy death sounds, are those which feature most prominently). Attached is a xex, you can step through the music and sound effects with the trigger. Your music is better but the whole package here comes in at 1.8K and will require less processor time to service. If it does progress further then maybe I could run things by you to see what can be improved. I probably won't get around to looking at this again until later in the year. In the meantime, if you are interested in doing some RMT music, I am currently working on something that needs some good music. Let me know and I'll send you details so you can see if it's something you'd like to do. music.xex
  18. Hopefully this is what you are after. I made a 90K disk image in Altirra, put DOS2 on it and copied the XEX. updated.atr
  19. If it knows that at the point of launch then it's a possibility. I have some other things I want to do, but will take a look later in the year.
  20. They had delays of $11 for the console keys and $0B for the keyboard keys (presumably in frames) during which another key press was ignored. I don't know why they chose these values. I changed them both to $04 and gave it a quick test on both NTSC and PAL machines. It seems OK, no double presses, so see how you get on with it. In the previous update (post #171) a change was made for it to automatically cycle between the title screen and the demo. This has a side-effect of stopping it going into attract mode because I did that by pretending keys had been pressed. updated.xex
  21. Thank you! Although it's been mentioned before I'm not sure I can take credit for anything aiding responsiveness(*). In making the aliens smaller I was able to remove some code that set the size registers, but I doubt that had much impact overall. TIX's great graphics make everything seem better but most of the positives were already there from the original team, just that they were restricted to 16K RAM so it didn't shine as much as it should have. (*) For PAL users, having the music at the correct speed, instead of playing too slowly, may make it seem so.
  22. I was surprised to see it mentioned in yesterday's Metro newspaper over here.
  23. The buggy on the title screen uses all 4 player graphics. You can't use them all for the buggy during the game because they are needed for other things (the bombs being dropped at you, the explosions, the rolling boulders).
  24. I didn't do the uphill music because that looks too tricky but everything else seems OK. updated.xex
  25. You're welcome. I hacked my Mega Drive pad for 3 buttons so I will now be supporting it in the future. One question, if I only support 2 buttons should I still label it as Joy 2B+?
  • Create New...