+playsoft Posted February 22, 2014 Share Posted February 22, 2014 To fully complete the Caverns saga... Start = begin game Pause = pause game Reset = select level There is a cheat in the A8 original where shift + control + tab takes you to the next sub-level (A..P). I have remapped this to the * key. phobos.bin 5 Quote Link to comment Share on other sites More sharing options...
+playsoft Posted February 22, 2014 Author Share Posted February 22, 2014 In case this is of any interest, here is the build directory for this conversion. I use ca65 and have the bin sub-directory in my path. The .001-.006 source code files were generated from the A8 executable using the dis6502 interactive disassembler (downloaded from the atarimax website). For these 16K games I do not worry too much about dotting the i's and crossing the t's - I just try to make sure that I have identified the code and data sections correctly. With the code sections identified, most of the time it is enough to modify the h/w register equates (I pull in atari5200.inc) although this can miss some h/w locations if accesses have been done through zero page. I put hooks into the code to cater for the A8/5200 differences without disturbing the footprint of the code which is what lets me get away without doing a 100% disassemble as everything remains at its original location. phobos.zip 2 Quote Link to comment Share on other sites More sharing options...
Rybags Posted February 22, 2014 Share Posted February 22, 2014 Pretty prolific output of conversions lately. I've been meaning to do a couple myself - don't have a real 5200 though, and not quite the overall grasp of handling the controllers. Does anyone have some standard routines they use? The way I'd go about it is convert to something the A8 would have otherwise generated, and allow remapping of button inputs to keystrokes for pause, smart bomb etc. 1 Quote Link to comment Share on other sites More sharing options...
+playsoft Posted February 22, 2014 Author Share Posted February 22, 2014 The keypad and joystick reading code you see in phobos.s is pretty much what I do each time. For example, with the basketball conversion I had to read all 4 joysticks and then combine them into fake PORTA,B registers - but the actual reading was done in exactly the same way. Regarding the keypad, in the first couple of conversions I used an IRQ interrupt but I subsequently switched to key held checks in the vertical blank (I had to do this in ATARI BLAST! because I'm using a Pokey timer for the sprites). The other bits of operating system and hardware I do as required by the program. For example, Savage Pond was using the o/s count down timers. It is the controllers which are most likely not to be emulated correctly but if you end up doing a conversion before you have real h/w you would have no shortage of testers here. The first release of GTIABlast! (as it was then) on the 5200 was developed completely blind as I did not have any h/w at the time and the Ultimate SD is not supported by any of the emulators. Quote Link to comment Share on other sites More sharing options...
Aking Posted February 22, 2014 Share Posted February 22, 2014 In case this is of any interest, here is the build directory for this conversion. I use ca65 and have the bin sub-directory in my path. The .001-.006 source code files were generated from the A8 executable using the dis6502 interactive disassembler (downloaded from the atarimax website). For these 16K games I do not worry too much about dotting the i's and crossing the t's - I just try to make sure that I have identified the code and data sections correctly. With the code sections identified, most of the time it is enough to modify the h/w register equates (I pull in atari5200.inc) although this can miss some h/w locations if accesses have been done through zero page. I put hooks into the code to cater for the A8/5200 differences without disturbing the footprint of the code which is what lets me get away without doing a 100% disassemble as everything remains at its original location. this .i'm sure,will encourage people to do even more conversions Quote Link to comment Share on other sites More sharing options...
Aking Posted February 22, 2014 Share Posted February 22, 2014 To fully complete the Caverns saga... Start = begin game Pause = pause game Reset = select level There is a cheat in the A8 original where shift + control + tab takes you to the next sub-level (A..P). I have remapped this to the * key. i didn't know about this one, and its the best of the 3, now really the "saga" is complete on the 5200 Quote Link to comment Share on other sites More sharing options...
thegamezmaster Posted February 22, 2014 Share Posted February 22, 2014 Thanks for the great work! 1 Quote Link to comment Share on other sites More sharing options...
Charlie_ Posted February 22, 2014 Share Posted February 22, 2014 This is great. I really dig games like this. Thank you. 1 Quote Link to comment Share on other sites More sharing options...
MAC-42 Posted February 22, 2014 Share Posted February 22, 2014 In case this is of any interest, here is the build directory for this conversion. Yes! Thank you, Paul! I've been too shy to ask for this sort of thing from anyone to date! This will be very interesting. And thanks for this new conversion, too. 1 Quote Link to comment Share on other sites More sharing options...
zylon Posted February 23, 2014 Share Posted February 23, 2014 Works great on stock 4-port system. Thanks. 1 Quote Link to comment Share on other sites More sharing options...
mmervine Posted February 24, 2014 Share Posted February 24, 2014 Anyone else try this on a real 5200? The reason why I ask is that I can not get the ship to move right...only left, up, or down... Quote Link to comment Share on other sites More sharing options...
+Allan Posted February 24, 2014 Share Posted February 24, 2014 Yup. It works fine on my 4-port with CX52 stick. Allan Quote Link to comment Share on other sites More sharing options...
jetset Posted February 24, 2014 Share Posted February 24, 2014 Anyone else try this on a real 5200? The reason why I ask is that I can not get the ship to move right...only left, up, or down... Yes I've played it quite a bit. Works fine on my system. Sounds like your controller may need adjusting? Oh and thanks for the conversion Paul! 1 Quote Link to comment Share on other sites More sharing options...
Greg2600 Posted February 25, 2014 Share Posted February 25, 2014 Excellent, excellent all the way around! 1 Quote Link to comment Share on other sites More sharing options...
Goochman Posted February 25, 2014 Share Posted February 25, 2014 Great job Paul - thanks for all the contributions! 1 Quote Link to comment Share on other sites More sharing options...
mmervine Posted February 26, 2014 Share Posted February 26, 2014 I tried a different controller and still have the same problem, Must be the inter-action between my Atarimax cart and my 5200. I have the same problem with Pole Position. Quote Link to comment Share on other sites More sharing options...
MAC-42 Posted February 26, 2014 Share Posted February 26, 2014 I tried a different controller and still have the same problem, Must be the inter-action between my Atarimax cart and my 5200. I have the same problem with Pole Position. I haven't had any problems with it using my Atarimax cart, though I've had similar problems with Zaxxon. That's a bit unfortunate. Quote Link to comment Share on other sites More sharing options...
+DamonicFury Posted February 26, 2014 Share Posted February 26, 2014 I tried a different controller and still have the same problem, Must be the inter-action between my Atarimax cart and my 5200. I have the same problem with Pole Position. It's probably your 5200 itself that needs calibrated. See the recent "Stupid joystick tricks - Horizontal motion issue" thread for instructions on how to do so. http://atariage.com/forums/topic/216798-stupid-joystick-tricks-horizontal-motion-issue/?view=getnewpost Quote Link to comment Share on other sites More sharing options...
+playsoft Posted February 26, 2014 Author Share Posted February 26, 2014 Recently I was having trouble moving down - with both of my joysticks - on games which were previously ok. I calibrated the 5200 and that did the trick. In my recent conversions I check for the pot values being less than $42 for left/up and greater than $A2 for right/down. In future conversions (and possibly ATARI BLAST! although that may end up with proper analogue control eventually) I am thinking of either: (1) Keeping to this method --- it's the simplest! (2) An automatic calibration based on the lowest and highest pot values read during the game. (3) An optional manual calibration which can be run at start up Regarding (3) I have put together a quick test program which is attached. The status line at the top shows the joystick values, averaged over 8 frames which is why you can see them ramp up and down quickly. To calibrate your joystick you should follow the on-screen instructions - push the joystick in the direction indicated and press the fire button to record the appropriate pot value. Once you have done this for all four directions and a centred stick, it will calculate the thresholds for digital joystick emulation. You are then able to move a square around to check that it works ok. By default I calculate the thresholds with 50% dead space - i.e. so that you need to move the joystick 50% in order to register a change in direction. By pressing * (after the calibration is complete) you can switch to 33% dead space - i.e. you don't need to move the joystick so far. You can switch back to 50% by pressing #. At any time you can restart the alignment process by pressing reset. I'd be interested in knowing what pot values other people are seeing. Below are the readings from my two controllers. left = 04 right = CC up = 02 down = B7 centre = 63 60 left = 26 right = C5 up = 01 down = B6 centre = 7E 62 cal.bin Quote Link to comment Share on other sites More sharing options...
Charlie_ Posted February 26, 2014 Share Posted February 26, 2014 ...I'd be interested in knowing what pot values other people are seeing. Below are the readings from my two controllers. left = 04 right = CC up = 02 down = B7 centre = 63 60 left = 26 right = C5 up = 01 down = B6 centre = 7E 62 My beater 4 port with Wico Command Control analog joystick: left = 01 right = E4 up = 01 down = E4 center = 6A 65 Calibration program is cool, but I'd like games to have a nice amount of dead zone that assumes the console is in proper calibration. I understand why some Atari games like Galaxian and Ms. Pacman had an auto calibration routine... but I know it plays havoc for people trying to use digital to analog converts.. like the Masterplay Interface. Keep up the excellent work! 1 Quote Link to comment Share on other sites More sharing options...
kenfused Posted February 28, 2014 Share Posted February 28, 2014 Looks like I was using $40 and $a4 as my threholds in my joystick read routines (at least for one of my conversions I ripped this from). Not sure why I didnt use A instead of stickval and x for the comparisons though. lda $E802 cmp #114+50 rol stickval cmp #114-50 rol stickval lda $E803 cmp #114+50 rol stickval cmp #114-50 rol stickval lda $E800 cmp #114+50 rol stickval cmp #114-50 rol stickval lda $E801 cmp #114+50 rol stickval cmp #114-50 rol stickval lda stickval eor #2+8+32+128 sta SPORTA All of my conversions I kind of made a mini atari computer like os just adding features as they were needed. I used dis6502 to make a rough dissassembly, changed references to hardware locations, only a couple vector references needed altered because I was using my own mini os with all of the vectors where they are in the computers (except for IRQ, NMI, hardcoded in ROM). Patches were then inserted where needed. Sometimes calling subroutines to read, or sometimes having the vbi update shadow registers (like for console register, keyboard, joystick). 1 Quote Link to comment Share on other sites More sharing options...
+playsoft Posted March 5, 2014 Author Share Posted March 5, 2014 My beater 4 port with Wico Command Control analog joystick: left = 01 right = E4 up = 01 down = E4 center = 6A 65 Perfect! Not seen one that good with the full range. Quote Link to comment Share on other sites More sharing options...
+playsoft Posted March 5, 2014 Author Share Posted March 5, 2014 Looks like I was using $40 and $a4 as my threholds in my joystick read routines (at least for one of my conversions I ripped this from). Not sure why I didnt use A instead of stickval and x for the comparisons though. lda $E802 cmp #114+50 rol stickval cmp #114-50 rol stickval lda $E803 cmp #114+50 rol stickval cmp #114-50 rol stickval lda $E800 cmp #114+50 rol stickval cmp #114-50 rol stickval lda $E801 cmp #114+50 rol stickval cmp #114-50 rol stickval lda stickval eor #2+8+32+128 sta SPORTA All of my conversions I kind of made a mini atari computer like os just adding features as they were needed. I used dis6502 to make a rough dissassembly, changed references to hardware locations, only a couple vector references needed altered because I was using my own mini os with all of the vectors where they are in the computers (except for IRQ, NMI, hardcoded in ROM). Patches were then inserted where needed. Sometimes calling subroutines to read, or sometimes having the vbi update shadow registers (like for console register, keyboard, joystick). Thank you, nice to hear you'd used almost identical thresholds so I'll continue using these. I did notice when porting Savage Pond that it takes the 5200 a little longer to get to your dli routine so there is a little less time available before you need to do the WSYNC. Quote Link to comment Share on other sites More sharing options...
kenfused Posted March 6, 2014 Share Posted March 6, 2014 I did notice when porting Savage Pond that it takes the 5200 a little longer to get to your dli routine so there is a little less time available before you need to do the WSYNC.IIRC, I ran into that with Tapper so I had to tweak the DLI a little bit. Quote Link to comment Share on other sites More sharing options...
Charlie_ Posted March 23, 2014 Share Posted March 23, 2014 Perfect! Not seen one that good with the full range. This is my 2 port: Stock analog stick: left = 01 right = C7 up = 04 down = D3 center = 60 60 Wico analog stick: left = 01 right = E4 up = 01 down = E4 center = 6A 6F Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.