Jump to content

Bobo Cujo

New Members
  • Content Count

  • Joined

  • Last visited

Everything posted by Bobo Cujo

  1. The Joy2B version of Hawkquest was never made in 1MB .xex form; it was only made available in .car (Atarimax cartridge) form. If that was made into an .xex, it would definitely explain why the game didn't boot 🙂 To my knowledge, I don't think non-Joy2B Hawkquest ever made it to an .xex version either... (for those wondering: I didn't make a Joy2B version of the original 4-disk version, since it lacks NTSC compatibility)
  2. Regarding Hawkquest Joy2B: There's two preceding "original" versions: 1) The original 4-disk version 2) The Atarimax 1MB(8mbit) cart version by @playsoft per this thread: @mytek @[email protected] Robot Did you try version #2 above, or just #1? Assuming that the non-Joy2B Atarimax cart version works and the Joy2B one doesn't, there's a few things that may come to mind: 1) @playsoft mentioned in the post below that there was a bug that sometimes caused the game to not boot on real hardware; I patched in the proposed fix into the Joy2B release (I don't think it's in the original Atarimax cart release). It may be possible that something about it is causing issues with 576NUC (or I implemented it incorrectly)? 2) One of the big differences between the original disk version and the Atarimax version is the usage of the >48K memory map (E000-FFFF, AKA the OS ROM space). The extra code for Joy2B support (which was a more involved hack than the other Joy2B hacks I made) involves even more extra code in the OS ROM space. I can't imagine that it would cause problems since that part of ram should be fully banked in (and the OS ROM banked out), but just in case, could that be causing issues with 576NUC memory management? From my original notes (pardon the lack of comments; the key thing is where I located things in memory...): ;-------------------------------------------------- ; New Button 2 handler (in OS RAM space) ;-------------------------------------------------- ; E965: Button 2 debouncing value E966: AD 70 02 lda PADDL0 E969: C9 E4 cmp #$e4 E96B: D0 0D BNE $E97A E96D: AD 65 E9 lda $E965 E970: D0 0D BNE $E97F E972: A9 01 lda #$01 E974: 8D 65 E9 sta $E965 E977: 4C 9E 85 JMP $859E E97A: A9 00 lda #$00 E97C: 8D 65 E9 sta $E965 E97F: 60 RTS ;-------------------------------------------------- ; New, relocated Custom Immediate VBLANK handler (the call to setting SETVBV needs to be set to the new address too) ;-------------------------------------------------- F2E0: AD 00 D3 LDA PORTA ; $FE380 in the rom, $E965 in system memory F2E3: 29 0F AND #$0F ; ($FED40 in rom/$F2DF in system) is where free space begins) F2E5: 8D 78 02 STA STICK0 F2E8: AD 10 D0 LDA TRIG0 F2EB: 8D 84 02 STA STRIG0 F2EE: AD 00 D2 lda POT0 F2F1: 8D 0B D2 STA POTGO F2F4: 8D 70 02 STA PADDL0 F2F7: A9 01 LDA #$01 F2F9: 8D 16 E8 STA $E816 F2FC: AD 18 02 LDA CDTMV1 F2FF: F0 08 BEQ $E985 F301: CE 18 02 DEC CDTMV1 F304: D0 03 BNE $E985 F306: 20 C2 E9 JSR $E9C2 ;[expand] F309: AD 1A 02 LDA CDTMV2 F30C: F0 08 BEQ $E992 F30E: CE 1A 02 DEC CDTMV2 F311: D0 03 BNE $E992 F313: 20 C5 E9 JSR $E9C5 ;[expand] F316: AD 1C 02 LDA CDTMV3 F319: F0 0A BEQ $E9A1 F31B: CE 1C 02 DEC CDTMV3 F31E: D0 05 BNE $E9A1 F320: A9 00 LDA #$00 F322: 8D 2A 02 STA CDTMF3 F325: AD 1E 02 LDA CDTMV4 F328: F0 0A BEQ $E9B0 F32A: CE 1E 02 DEC CDTMV4 F32D: D0 05 BNE $E9B0 F32F: A9 00 LDA #$00 F331: 8D 2C 02 STA CDTMF4 F334: AD 20 02 LDA CDTMV5 F337: F0 0A BEQ $E9BF F339: CE 20 02 DEC CDTMV5 F33C: D0 05 BNE $E9BF F33E: A9 00 LDA #$00 F340: 8D 2E 02 STA CDTMF5 F343: 6C 24 02 JMP (VVBLKD) ;-------------------------------------------------- ;As pointed out by Paul Lay, replace the following mutexes to fix a bug from the original cart release: AD 0E D4 LDA NMIEN 48 PHA ;with: A9 40 LDA #$40 48 PHA EA NOP ;-------------------------------------------------- And finally, for those wondering: I tested Hawkquest Joy2B on an actual NTSC 800XL and in Altirra; I didn't test this on other systems (I don't even have NTSC 128K Ataris anymore 😞 )
  3. @rensoup I went ahead and played the entire game (Atarimax Cart version in Altirra, NTSC 130XE mode with 128KB ram, default game settings) start to finish. First of all, like everyone else on this thread, I'm incredibly, unbelievably impressed by this port. My hat is very much off to you 🙂 That said, I did run into a couple of issues (and my apologies if any of this has been asked before; it's a looooooong thread), so here's my bug reports: - ESC/Option doesn't seem to skip between-level cutscenes, or skip the death music. Was this intentional? (I may be used to this from playing the DOS version of this game) - Two of the fake life-up jugs on Level 9 are supposed to vertically flip the screen as a joke (the first one flips the screen, the second one reverses the effect). In this version, it does nothing. Was this intentional for technical reasons (PMG handling)? - I don't think the "princess watching the hourglass" cutscene is supposed to play between: Level 12/Before Jafar, and After Jafar/Before the ending level. I saw it both times... (I had 12 or so minutes on the clock) - I didn't get to see the ending animation because Altirra/the game crashed 😞 Altirra threw up an internal error dialog message (no specifics on the actual error) when the ending was about to play. I enabled the debugger when this happened; attached is a screenshot of the history/registers windows and the history window text itself - let me know if there's a better/more comprehensive way to get a dump for this. Again, despite the above, amazing work! PoP Atarimax History Dump.txt
  4. I've personally played A8 Scramble with both a Sega Genesis controller and a Joy2B stick - both work great for shoot+bomb. You actually wouldn't want down+fire to bomb in this game - a key strategy in this game is to stay low to the ground so that you can bomb at a fast rate, and you wouldn't want to risk crashing into the ground... (Especially in areas 3 and 4)
  5. I've also noticed that the Ultimate cart isn't consistent about loading .xex files on the Atari 800. It works fine on XL/XEs pretty consistently. I'm guessing this has to do with 400/800s somehow not being able to use $8000-BFFF because the hardware isn't there to allow cartridge disabling (CCNTL/$D500-D5FF)? ("Mapping the Atari memory map" is unclear on whether this works differently on 400/800s)
  6. @Mr Robot As for Joy2B ergonomics, I'm happy to report that it wasn't anywhere near as bad as I originally thought they'd be: My right pinky works surprisingly well for triggering Button 2. ...even in games where Button 2 is used extensively (Dreadnaught Factor, Hawkquest, Conan, Moon Patrol Redux, ...) Even reaching around for button 2 with my left index finger isn't that bad - the joystick shaft cover is helpful here. I have a leaf-switch-based original Competition Pro (which I hate), and despite resembling it, the ArcadeR is clearly superior in button accessibility/responsiveness/joystick feel/etc. The biggest issue with 2-buttoning an ArcadeR, oddly enough, is actually the quality of the Sanwa clone buttons - they don't like being pressed on the edges, and sometimes they don't quite press cleanly. I'd imagine that real Sanwa buttons (known for their high sensitivity) would do wonders to fix this, however - has anyone tried this, and if so, how hard is it to remove the existing buttons without breaking anything?
  7. I ended up getting an ArcadeR after all (it took about 30 days + order processing time from China, for those wondering). Here's a picture of my Joy2B mod (with the newer 1.5c board revision). It turns out there's easier (larger) solder points that can be used instead of the really tiny wires on the ribbon cable plug: Essentially, it's taking advantage of the through-hole points for the Button 2/Button 3 selector switch (which directly connect to pins 5/9), as well as the C64/Atari jumper (which directly connects to Pin 7). I'd imagine this also works on the 1.5b board revision, for the same reason...
  8. The 64-bit drivers on the Atarimax forum for Vista/Win7 should work on Windows 10 too: https://atarimax.com/flashcart/forum/viewtopic.php?f=5&t=889 I'm pretty sure that's what I use on my Win10 system...
  9. The UAV has a trim pot specifically for modifying the artifact color value - I have one in my 800XL and I purposely set it to Orange/Blue. (There's a test program somewhere in the forums (uav.xex) for calibrating this...)
  10. From looking a bit closer at the NES controller schematic and briefly skimming through the Adrian's Digital Basement video, it looks like the hack simply bypasses the shift register chip and effectively wires the joystick port pins directly to the switches. For Joy2B (schematic here, courtesy of @ascrnet and @mrrobot), you'd do a similar approach, but with a twist because you now need to tie the extra buttons into what would normally be the paddle lines: Wire Atari pin 7 to what would normally be +5V (we need this for the pull-up resistors. It's safe to still have it going to the shift register chip since it's no longer an integral part of our circuit anyway) A button (button 2): Wire Atari Pin 9 to the point where the switch connects to the shift register chip Start button (button 3): Wire Atari Pin 5 to the point where the switch connects to the shift register chip Swap the 1kohm resistors that are connected to the the A/Start button lines with 330 ohm resistors Remove or disconnect all the resistors on the other 6 buttons - unlike the Adrian hack, we're sending 5v to the pull-up resistors, and we don't want or need those on the up/down/left/right/fire inputs. (Big disclaimer: I haven't tried/doublechecked any of this myself; this is all off the top of my head...)
  11. IMO, if you're going to hack an NES pad, you should go the Joy2B route, seeing as NES controller circuitry inherently requires a more involved hardware hack anyway. (Recommended mapping: B as button 1, C as button 2, Start as button 3) Many of the Joy2B hacks eliminate the need for Button 2 as Up - in some cases, they're better as Up still can climb ladders (or perform other functions) while Button 2 handles jumping. Button 2 as Up also doesn't help for games where up doesn't jump (think "bomb button")... As an extra bonus, the 2600 folks have a similar set of 2 button modified games/homebrews that use the same hardware standard 🙂
  12. I use Sega Genesis 3-button controllers with no ill effects - as a bonus, Button C works as the second button for most Joy2B games* right out of the box. Reportedly, 6-button controllers may cause some issues - the adaptor that @manterola mentioned above (by @Eyvind Bernhardsen) is meant to address that, and also provide Button 3 support for 3-button Joy2B+ games. * the vast majority of these are 2 button games
  13. I don't think it's a bad idea to have the ICSP header - imagine flashing different versions of the firmware if someone wants a different button layout... Also - if this is to be mounted in a (3d-printed?) case, would it be advisable to expand the PCB to include some screw holes for mounting? Or would such a case simply be a snap-fit held in place by the DB9 sockets? (I have no specific preference here; I'm mostly asking out of curiosity)
  14. I think you meant to thank @manterola on this one 🙂
  15. Ah, alas; I was hoping the other button was a bit more reachable. It may be worth trying the sideways approach for tabletop-only purposes, though... @Mr Robot By any strange chance, I don't suppose you'd happen to know where the ArcadeR joystick maker sourced those 9-wire joystick cords? They look quite sturdy and properly shaped, with thick cords, a properly shaped plug (no screw brackets), and a stress relief that can be fitted into a plastic joystick case - I'd be interested in getting a few to Joy2B-ize my Wico Command Control and Quickshot joysticks, since they look like good drop-in replacements that'll fit neatly into the existing cases... (and no, those "atari joystick extender cables" available on various parts on the internet don't seem like a good option, per this thread... even if they were, it'd be nice to have ones with stress reliefs built in)
  16. This looks like a really elegant solution for using Sega controllers without having to permanently modify them. I may just have to try this with my 3-button Genesis controllers (which do work out of the box for 2 button mode, but not for 3 button mode). @Eyvind Bernhardsen Out of curiosity, where did you source the DB9 joystick connectors with built-in ribbon cable/header?
  17. @Mr Robot As awesome as this joystick looks, I'm concerned about ergonomics of the two buttons. 1) For your own use, do you set up the buttons on the top, or the buttons on the right? (buttons on top corresponds more easily to Joy2B mappings, but buttons on the right presumably doesn't require an awkward claw grip around the stick?) 2) How did you end up mapping the buttons? 3) Is it feasible at all to swap out the autofire latches for a regular button (same size) that could then be hooked up to any of the button headers? 4) Is the joystick's manufacturer considering adding native Joy2B+ support for a future board revision? (All of the Joy2B mods I made assumed button 2 would be on the right, or at least triggered with the finger to the right - this is particularly important for jump + fire actions)
  18. I haven't had a chance to dive as deeply into this as I originally wanted (and I too got distracted with a new project), but a few thoughts: It may be a bit harder to tweak the underlying game logic than I originally thought... Some months ago (after my last post) I did try to double the speed of the bombs to increase the player's ability to quickly take out multiple ground targets. While I was able to do that, it turns out that the animation for blowing up buildings is dependent on being able to finish before the next bomb lands - otherwise, the second (quickly fired) bomb interrupts the previous animation and apparently corrupts the state of the logic for actually destroying the buildings, resulting in half-blown up buildings and subsequent bombs not actually destroying buildings 😞 It may be possible to more safely double the speed of the player shots, but that also entails doubling the height of the shots themselves to ensure that collisions aren't missed - I haven't tried this yet. It's getting a bit difficult to keep track of further hacks, even with @playsoft's project files above, since it still requires doing manual patches in the original disk images. I was hoping to try to assemble @kiwilove's aforementioned source code disk images into something that could build in MADS (with @playsoft's changes integrated, of course) so that it'd be easier to modify and more maintainable. To that end, does anyone know of a utility that can batch-extract files from an ATR and auto-convert them from ATASCII to ASCII? (ATR Tools can convert and extract files, but it has to be done manually on a file by file basis 😞 ) @TIX I could try to put in those sprites, but I kind of want to see how far the balance tweaks can go first - one particular thing I noticed is that as nice as the chopper looks, its wide sprite causes it to be a wide target for getting hit, since that's dependent on P/M collisions. Ideally, we'd add some additional software collision checks to see if the object in question collided with just the frame of the chopper, but that might be a little more difficult to integrate - another reason it'd be nice to have a full source-level project to work with 🙂
  19. @shanti77 It turns out you already support them. 🙂 Unmodified Genesis/MegaDrive/Master System controllers effectively pull Pin 9 low, causing POT0 (not POT1) to return $E4 if the button is pressed. Your game already does that, from what I can tell: 95D5: 8D 0B D2 STA POTGO ;-------------------------------------------------- 0EF9: AE 00 D2 L0EF9 LDX POT0 <--- button B read here 0EFC: AD 82 0B LDA $0B82 0EFF: D0 01 BNE $0F02 0F01: 60 RTS ;-------------------------------------------------- 0F02: AD 30 18 L0F02 LDA $1830 0F05: D0 FA BNE $0F01 0F07: 20 BD 0E JSR $0EBD ;[expand] 0F0A: AD 30 18 LDA $1830 0F0D: D0 F2 BNE $0F01 0F0F: AE 00 D2 LDX POT0 <--- button B read here 0F12: E0 14 CPX #$14 0F14: B0 01 BCS $0F17 0F16: 60 RTS ;-------------------------------------------------- I admit I didn't think it was working the first time I played it, as I was expecting it to do some other type of attack. Just a moment ago, I realized that what it's actually doing is enabling a more powerful (wide) shot for a limited time - the counter at the lower-left of the screen shows how many times the player can do this. Awesome game BTW 🙂
  20. The cart image (via Ultimate Cart) definitely works without issues on my real NTSC Atari 800XL 🙂
  21. There are apparently two versions of Seafox floating around. The cartridge image allows you to shoot up and forward, but only one projectile at a time per direction (matching the original Apple II version). It also uses more of the built in atari fonts. The .xex file (found on homesoft and elsewhere) instead only allows shooting upward, but allows up to three projectiles at once. Having recently hacked the former version for 2 button joystick support, I can definitively say that those differences have nothing to do with 400/800/xl/xe differences...
  22. And after 30 (!) of these, it's now time for me to take a break from these and let others have a go... 🙂 Here's a list of other games to consider, along with some caveats: Ace of Aces Press Button 2 instead of double-tapping the fire button (!) to invoke view switching (see the game's manual for more on this) Asteroids Press Buttons 2/3 for thrust and shield/hyperspace/flip over - but it'd be good to let players select Joy2B vs. original controls on this one. Axis Assassin Press Button 2 to activate the zapper. Use the .atr from Fandal for this; other versions don't actually have a properly working zapper. Also note that pressing the zapper when the spider web appears takes you to a special bonus round... Raster Blaster Press Button 2 to activate the right flipper. This one will require hacking in a custom VBI for STA POTGO since the main loop runs repeatedly between VBLANKS... Castle Hassle Press Buttons 2/3 to switch between different ghost forms. Cloudburst Hold Button 2 to hold up the umbrella? (currently this involves holding UP) Computer War Press Button 2 to rotate pieces during the piece-matching puzzle. Dandy Dungeon Press Buttons 2/3 to activate food/bombs per player. Dark Chambers.rom Press Button 2 to activate magic (instead of double-tapping the button - the logic for this is really finicky, too) Decathlon Use Buttons 2/3 (or 1/2) for running instead of wrecking the joystick 🙂 Desert Falcon Press Button 2 to activate acquired abilities (instead of double-tapping the button) Final Legacy Press Button 2 to instantly go back to the main view selector screen (currently mapped to the space bar). This needs to work in each of the different subscreens... Gateway to Apshai Use Button 2/3 + stick directions to substitute the START/SELECT/OPTION functions (see the manual for details) Ghost Chaser Press Button 2 to jump (instead of UP). Ghostbusters Press Button 2 to drop ghost bait and Button 3 to see status. This one's tricky since there's a rather complicated key handler here... Gumball Press Button 2 to activate the bomb defuser (instead of the space bar). Hard Hat Mack Press Button 2 to drop the jackhammer (first screen only) instead of the space bar. King Tuts Tomb Buttons 1/2 to fire left/right, and Button 3 for the flash (just like Tutankham, above). Livewire and Livewire 2 Press Button 2 to fire the zapper (Joystick mode) or Paddle 2's Button (Paddle mode). Nightstrike.rom Use the extra buttons to either independently rotate the turret or to load the other ammo types (see the manual for details). Pinball Construction Set Press Button 2 to use the right flipper (and possibly other construction set functions?) Qix (the older Mode E version) Press Button 1 for fast draw, Button 2 for slow draw. Thunderfox Press Button 1 for regular shots, and Button 2 for bombs. This also requires some UI treatment to get rid of the weapon selector icon. Wizard of Wor Button 2 + direction to change aiming direction without moving, to simulate the original arcade game's special joystick. I attempted this, but the direction changing code auto-assumes that the player will move forward and makes this harder to implement... And I'm sure there's more - can someone also fill in some PAL titles (my recommendations above come from NTSC-land)?
  23. Here's Beer Belly Burt in Brew Biz Joy2B (based on the Homesoft .xex version). This hack essentially separates out jumping from other actions activated by pressing UP. Old controls: UP: Jump (combine with Left/Right to jump left/right), Climb stairs, Climb up conveyor belts, Climb up ladders Fire button: Shoot New controls: Button 1: Shoot Button 2: Jump (combine with Left/Right to jump left/right) UP: Climb stairs, Climb up conveyor belts, Climb up ladders Note that if you are on the ground and want to start climbing on a ladder, you'll have to jump (Button 2) to start climbing it. The original game code doesn't explicitly check if you're in front of a ladder; it makes you jump up - and holding up starts the actual climbing. 😞 No attempt has been made to smooth over some of the other clumsy aspects of movement in this game (can't crouch until the character's momentum has run out, momentum comes to a dead stop after landing from a jump, etc.) If anyone wants to take a try at smoothing that up, you're welcome to use this Joy2B hack as a starting point... Beer Belly Burt in Brew Biz - Joy2B.xex
  24. I just looked at this, and unfortunately the disk does obfuscated loading a la Spelunker 😞 @Wrathchild Did you mean "the second button of the Amiga mouse" rather than "the second button of a Joy2B controller?" I think the game plays better with a mouse compared to a joystick, but I'm not sure offhand what the correct handling of the second button would be... Does anyone else want to attempt this?
  25. I just tried it and it works pretty well - this is a pretty elegant way to handle selecting the control preferences. Thank you @Eyvind Bernhardsen for making this! @ascrnet Please replace the existing Spelunker binaries on the git/wiki with Eyvind's binaries 🙂
  • Create New...