Jump to content

Eyvind Bernhardsen

Members
  • Content Count

    161
  • Joined

  • Last visited

Community Reputation

94 Excellent

About Eyvind Bernhardsen

  • Rank
    Chopper Commander

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I get a bunch of writes in A0xx on level 1 when I collect items. A000-A040 and A100-A1CF look untouched, but I can't be sure that any bytes in that area won't get overwritten on later levels. I like to see huge swaths of zeroes before I trust that a game doesn't use a block of memory for anything. I'm not sure if Altirra has the option to count the number of accesses to every memory location, that'd be super handy to find out if there's anywhere that is (ideally) loaded from disk before the start of the game and (definitely) never overwritten or used for anything else. But I wouldn't be able to use it myself, because you'd have to play through the whole game and I can't even get past the first level 😅
  2. I've removed the on-disk obfuscation from Operation Blood, but I can't find a safe place to put a button scanning routine. Since it's not really my kind of game I'm going to find something easier to do instead Here's the deobfuscated image in case someone else is willing and able to patch it: Operation Blood (deobfuscated).atr The in-game trigger check routine starts at $F3F5 (in shadow RAM) and is at byte offset $C205 in the .atr file. The main load is in two parts: a big read to $4400-$FFFF from sectors $025-$19C (this is the one that was scrambled on disk) and a smaller one to $0700-$337F from sectors $1ED-$245. The loading routine for the latter is at $569A. There's more loading before the game starts, including a read to $4800-$5699 from $2D1-$2EE, again using the loading routine at $569A. I haven't played far enough to know which other parts of memory are overwritten.
  3. No ARexx in 1.3, so stick with 3.1. Assuming you have at least Kickstart 2.04 of course. 😛
  4. Here is my final version of Spelunker, including a second button mode selector. Pressing Select during the attract sequence switches between three fan modes for the second button, turning the background a different colour for each one: green (default): the second button only triggers the fan when the joystick is held to the left or right yellow: the second button triggers the fan unless the joystick is held up (flare) or down (dynamite) blue: the second button never triggers the fan Pressing the third button always triggers the fan, regardless of mode or joystick direction. The .atr version saves the mode to disk when the game is started, but only if it has been modified. Spelunker - Joy2B.atr Spelunker - Joy2B.car This version also fixes a bug in my deobfuscated version: the Reset button now properly restarts attract mode, at least on disk (the cartridge version exits to BASIC). If anybody wants to modify the game further, PM me for details on how the multistage loader works. There's a lot of free space on the disk and it's pretty easy to modify the loader.
  5. Well, it's only easier to activate when you land if you happen to be facing the ghost But yeah, it's a compromise either way. I got frustrated because testing the three button version in Altirra got me used to holding the button and then pushing up or down for flare/dynamite, which kept triggering the fan in the two-button version. The real solution is to get a three-button joystick, of course 😛 Hmm, that's doable. On the disk version it'll even be possible to save the setting by storing it in the high score area 🤔
  6. Wow, that was fast! I can confirm that the two-button patch is in place, and I played it through to The Falls, so the loading routine works. Thanks!
  7. Here's an alternative two-button version of Spelunker (yes, I'm a little obsessed with this game). I tweaked the controls a bit, inspired by the better-feeling three-button version: now the second button doesn't do anything unless the joystick is pushed left, right, up, or down; left and right will turn you in the appropriate direction before starting the fan. More importantly though, I've removed all obfuscation from the loader. Now the boot sector is read to $4000 (init at $4008), does minimal setup, and loads the main game in plain text from sectors $21C-$293 to $0400-$3FFF. I zeroed out the sectors that used to be part of the multi-stage loader, but haven't made any other changes to the image. I've tested it as far as The Shaft, the first time I've reached it in decades! spelunker-2btn-deobfuscated.atr I tried using The!Cart Studio to make a cartridge image, but I couldn't get anywhere with it. Hopefully this will help someone else make a working cartridge version The game calls the resident disk handler at $E453 from a routine at $06DD, and if necessary it looks like it's possible to put some extra code in the stack page now that the loader no longer fills $80-$17F with deobfuscation junk. Note that the stack pointer is reset to 0 every time the game starts, so the routine would need to start at $101.
  8. Oh, a tiny suggestion for the 3-button version: if you look at my code, I delayed setting the "button held" flag for button 2 until after the decision to launch a flare or place dynamite. That way you can hold the button and then press up or down instead of having to move the joystick to the correct position first, which makes the controls feel a bit less fussy.
  9. I just managed it on the disk version, so putting the patch after the high score table doesn't seem to cause any problems with that. (I like to play the disk version because that saves the high scores... but that means it also saves the button status, which is another reason autodetection won't work. Oh well.) We can't be 100% sure that it doesn't cause problems until somebody beats the game with a patched version, of course
  10. Oh, I was wondering if that would be a problem. Looking at the pinout now, the Genesis controller uses the third button pin for its power supply. It’s probably pulling the pin low enough that the routine thinks there’s a button there. I tested last night and it does work for me, but I’m using an adapter that reroutes the power from Atari pin 7 and leaves pin 5 unconnected. Ah well, thanks for testing 😊 That’s great!
  11. Not exactly what you asked for, but here's the atr version already patched: spelunkertest.atr I took the liberty of adding autodetection of the third button. It should work just like the two-button version when only two buttons are available, but when a third button is detected the second button no longer triggers the fan. The loader is obfuscated, so I put the button reading routine just after the high score table (which is only 24 bytes long but uses an entire plain-text sector), meaning that I only had to modify three obfuscated bytes to call the routine. Thanks to Avery for the Altirra debugger: this kind of patching wouldn't be possible without it. I've only tried it on Altirra with an emulated three-button joystick so far, and my rusty skills couldn't get me past the Ropes to verify that the second load works. Please test
  12. They did! The Amiga 2000 had a PC compatibility card (basically an 8086 with some support chips) which let you use it as a PC, I think they even sold a model with the card preinstalled. IIRC the PC "display" was a screen on the Amiga, so you could switch between it and Workbench pretty easily.
  13. Last night I discovered that the built-in memory test hung after a single green square, which made me think there was a problem with the ROM: the U1MB menu and all the games I tried were stable, while SpartaDOS, BASIC, and the self test acted flaky. Today I realised that while the OS ROM is XEGS, the XEGS jumper wasn't installed in the U1MB. Adding that jumper seems to have stabilised the system! The self-test memory test passed, and I've used SpartaDOS quite a bit without a single hang. Is it expected that running an XEGS OS without the XEGS jumper will cause system instability, or is it more likely that I jiggled something in a lucky way when removing and reinstalling the U1MB? I discovered another thing last night: the video signal in general looks excellent, but the V-gate is absolutely sublime. It's so nice to play Pang without the annoying flicker in the right border. Thanks once again, @mytek
  14. Update: I ordered a couple of UM61512As from a different eBay seller on a hunch that the second RAM chip was also flaky. They arrived today, and when I swapped one in the XEL is much healthier! The U1MB setup menu and loader work, I've played some games (graphics and sound are present and correct), and I've been able to boot into SpartaDOS intermittently, though that sometimes hangs during boot. Once it's started up it can read my CF card just fine, so I would like to get a memory tester on there. I'm open to suggestions as to what else could be wrong
  15. That's how Joy2B works. The third button is PADDL1.
×
×
  • Create New...