Jump to content


+AtariAge Subscriber
  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by playsoft

  1. Yes. The 5200 prototype bases the thresholds (for up/down/left/right) on the range of values it's seen from the joystick. So you need to move the joystick fully up, fully down, fully left and fully right before control will function properly. This would be an odd thing to have in a commercial release without there being some sort of prompt, but this was just a prototype. Since they had the A8 source code it was probably only a few hours work for someone at Atari to put the prototype together. It may have been just to test what Asteroids would play like with a CX52.
  2. I've not looked at the 5200 prototype in detail, but it doesn't seem possible to change the defence option (you can step through them with * but it is not selected when you press the trigger). I'm also not sure how you select fast asteroids, but I did manage to do it once.
  3. I don't think there is anything wrong with Altirra or anything wrong with my port to the 5200 as I just tested the Asteroids.rom image from atarimania (which is what I disassembled and ported) on a 130XE via a UNO cart and it is exactly the same.
  4. The A8 original behaves the same in Altirra. Maybe the idea is that you are supposed to release it just after it's changed direction IDK.
  5. In this variant player 1 has keypad control: 1 = rotate left 2 = rotate right 3 = defence upper trigger = thrust lower trigger = fire Other players controlled with the joystick as before. asteroids_CXL4013_1p_keypad.bin
  6. It's slow in the 400/800 original, by design from the looks of it.
  7. This won't be enough to bring it up to a C- but it's a port of the (released) A8 version with the controls mapped: start = start game pause = pause/resume game * = defence option (you have to press the trigger to choose it) # = number of players/game type 8 = bounce on/off 0 = fast/slow asteroids It seems to work OK. The _a version has a couple of minor mods, disabled attract mode and sped the defence option up (it was intentionally slow, don't know why). asteroids_CXL4013.bin asteroids_CXL4013_a.bin
  8. Interesting, I wondered if anyone would know (I googled CFE Services and Hardie but didn't get any hits).
  9. It seems to me like the A8 original game also takes a long time to activate the shields but it does have flip over, hyperspace and no effect - where the 5200 prototype has shields regardless of the selection. Edit: Looking at the A8 original 8K cart every byte appears to be used; on the 5200 prototype it looks like there's about 1.5K free so maybe flip over and hyperspace were removed.
  10. This is what I'd expect from the (unhacked) 5200 prototype. It allocates the dead zone based on the range of values it gets from the controllers so it won't know that range until it's seen a full up/down/left/right on the joystick. Once it's had that it's playable. It would be best to use an image dumped straight from the prototype cart but I don't imagine the controller code was modified. I am sure the first thing Atari would have tried is a simple fixed threshold. Perhaps this more sophisticated method was an attempt to improve on it that backfired and it just happens to be this prototype cart that was found. Or it's over engineering. Or all of your consoles are out. When I next set up my 5200 I will see how the unhacked prototype plays for me.
  11. Well I guess you're never going to tell me what values you get from your controllers, so here is the original Asteroids port hacked to use a fixed threshold (same as Wing War). I've only tested controller #1 under emulation but if it works for you please do not call it a "fix" or the original port "botched" because I suspect there is nothing wrong with it, just that the more sophisticated threshold algorithm might not work so well on a 38 year old console that has never been recalibrated. By the way I don't know where your 16K image comes from but the two 8K halves are identical other than what looks like 3 rows of screen data containing: COPIED CFE SERVICES HARDIE Asteroids_hack_8K.bin
  12. I think this is everything I've done on the 5200. Note that .hyb files only work on the Atarimax Ultimate SD. I did not include the 5200 hacks with Darryl since he has them all available here. 5200.zip
  13. You open up the console, not the controllers. There are 2 adjustment pots on the 5200 motherboard, one to adjust the colour, one to adjust the controllers. 5200 owners should make themselves familiar with the controller calibration process as it will need doing at some point. You've had your 5200 for 30+ years and have never recalibrated so there's a possibility it might be out. That you don't see the issue with other similar games doesn't necessarily mean your calibration is good as you might be getting away with it on games with simple fixed thresholds but not with Asteroids which uses dynamic thresholds. Checking the values read from your controllers would indicate the state of your controller calibration. I don't think it's worth doing anything with Asteroids unless you can show that your controller calibration is good. I don't mix hobby and money... you couldn't afford my rates anyway 😀
  14. Have you checked what values your controllers are returning with that cal program, if so what were they? It might be that you need to calibrate your 5200, when was the last time you opened it up and performed controller calibration?
  15. For general compression I tend to use LZ4 on the A8/5200 and have made a quick 7800basic test. I'm not that familiar with 7800basic so I probably haven't interfaced to it in the best way. Basically you need to set 3 variables; the LZ4 data source address, the destination address and the destination end address then call lz4_decode. The lz4_decode routine needs 6 bytes in ZP for pointers, plus some other variables which can go anywhere (these are all temporary and only needed for the duration of the lz4_decode call). The my_lz4.exe command line program is the standard LZ4 code with the header information removed, just run this with the file you want to compress (e.g. my_lz4 graphics\image.dat). test.zip
  16. Yes it looks like Quick Step and Wing Wars were both written for cart but ended up on a compilation disk, so it seems they were cutting their losses on the Atari 8-bit computers.
  17. Ray, The Asteroids code keeps track of the lowest and highest values it reads from each POT. It splits this range into quarters so that a value in the first quarter is up/left and a value in the last quarter is down/right. The other 2 quarters form the dead zone, which is 50% of the range, which ought to be enough. A perfectly operating POT would give values in the range $00 to $E4. You probably won't get that but you want the range centred around the mid-point. The CX52 I have plugged in a the moment reads $0F/$CE/$09/$D7 when fully up/down/left/right. Run the attached cal.bin to see what values you are getting from your controller. cal.bin
  18. Ray, you could always try another game which uses the alternate button and see whether that works. The instructions for the A8 version can be found here: Imagic 1-2-3.pdf (atarimania.com)
  19. All I can say is it works fine for me with my CX52.
  20. Your mileage may vary with these quick conversions. Both were new to me, so no nostalgia and I can't get into playing either of them. I like that Wing Wars keeps everything very simple (no scrolling, basic P/Ms) but it does the job OK. I changed the controls so the second trigger launches a fireball, no need to hold the joystick down. There is some impressive programming in Quick Step where it changes colour registers on the fly each scanline so that every individual item of food has a totally independent colour. ww.bin qs.bin
  21. Perhaps the lime green is yellow? The 7800basic IRQ routine, which is triggered when the 6502 executes a BRK instruction, will set the background colour to yellow (colour value $1A) and halt the 6502. The BRK instruction has an op. code value of $00 and usually wouldn't be used, but $00 is frequently found elsewhere (in data, RAM). So when a BRK instruction is executed it's normally a sign that something's gone wrong. A quick test would be to change the colour value that the 7800basic IRQ uses and get @john_q_atari to retest; if it freezes with the new colour then you know the IRQ is being triggered. It's probably not the same thing but during the development of Popeye Darryl encountered intermittent IRQs on Dragonfly that did not occur in emulation or on the versa-cart. Mike added the crashdump so that the IRQ routine displayed the contents of the stack and we could see that the BRK instruction executed was the $00 part of a BEQ $00 instruction. BEQ $00 is pointless in that regardless of whether the branch condition is true or not, the next instruction is executed. However it ought to work and it did most of the time as the issue was intermittent. So there would seem to be specific conditions under which BEQ $00 can cause a fault running from Dragonfly. Looking at why 7800basic generated the BEQ $00, one instance was: if popeyeDeath > 0 || IntervalCount <> 3 then returnMoveLetters Which generated: 30884 10e91 .L02435 ;; if popeyeDeath > 0 || IntervalCount <> 3 then returnMoveLetters 30885 10e91 30886 10e91 a9 00 LDA #0 30887 10e93 cd 5a 01 CMP popeyeDeath 30888 10e96 b0 03 BCS .skipL02435 30889 10e98 .condpart1157 30890 10e98 4c a1 8e jmp .condpart1158 30891 10e9b .skipL02435 30892 10e9b a5 ff LDA IntervalCount 30893 10e9d c9 03 CMP #3 30894 10e9f f0 00 BEQ .skip439OR 30895 10ea1 .condpart1158 30896 10ea1 .skip439OR Not only has it generated a BEQ $00 but it doesn't jump to returnMoveLetters at all. To get around this Darryl made every goto explicit and changed any label names which started with a keyword (in this instance returnMoveLetters starts with return).
  22. I've recently experimented with the YM IRQ and it works well. I was resampling VGM files but at 50/60Hz the main instruments weren't too bad but timing for percussion was out. So I used the YM IRQ and resampled at a higher frequency. Attached is the VGM for Shinobi playing at about 2kHz (you can change tracks by pressing the trigger). shinobi.a78
  23. That is what I intend to do - eventually! For now, if you press reset you take over control, left trigger to fire, right trigger to turn. Collision detection with enemy sprites/missiles is disabled as it is impossibly hard. You can still collide with the guns though.
  24. I don't know why you can't download it, so I have put it here as well.
  25. It would make a cool pause screen. You could leave yourself notes for when you come back to the game.
  • Create New...