Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

1,836 Excellent


About cmadruga

  • Rank
  • Birthday 10/02/1974

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

1,998 profile views
  1. Ha. I just checked both the C64 and the MSX versions, and neither does the real time city ghost movement thing. PK will increase while you are driving or capturing ghosts in front of buildings... but the position of the ghosts will stay the same as when you left them. This is an important detail actually, because when a ghost reaches Zuul, the PK count is supposed to jump by 100. PK can actually jump by up to 400 if all ghosts reach Zuul at the same time. By freezing the ghosts' positions in place while not on screen, the original game is giving the player an advantage. On the other hand, the way I implemented it, you will see PK increasing and also jumping every now and then, as the movement from the city ghosts continues to be simulated even while they are off screen. As you return to the city map, their positions will be up-to-date.
  2. You are not missing much, it is barely playable now. At least the alert system (red / purple blocks) is up and running, and you can make some money by heading to those blocks and capturing some Slimers. I have also synced up the PK count across all screens (city map, driving, buildings). That means the ghosts converging to Zuul keep moving in real time even when you are not looking. I don't remember if the original does that, but it felt right to do it like that. Anyway, I thought having this game be compatible with the original GB account system would be pretty cool and make it feel more "legit" in my mind.
  3. Sorry, didn't see your edit to the previous post.
  4. Now we are cooking! Thanks!!! #name_checksum = $05 ' Iterations #check_byte = $2C ' BCD high-byte + low-byte tmp = 0 FOR I = 1 to #name_checksum ' Compute temporary obfuscation code tmp = ((#check_byte * 2) XOR #check_byte) tmp = ((tmp * 2) XOR #check_byte) tmp = ((tmp * 4) XOR #check_byte) ' Compute check-byte #check_byte = (#check_byte * 2) AND $FF IF (tmp AND $80) THEN #check_byte = (#check_byte OR 1) END IF PRINT AT 0 COLOR 7,<>#check_byte," " GOSUB wait_for_action_button NEXT
  5. This version seems to diverge on the 3rd iteration as well... I'm getting $0161 instead of $61. Anyway, I appreciate the help, didn't mean to take too much of your time.
  6. Sadly, not. It seems to jump from the first screen below to the second while making you always go with the Hearse(?).
  7. The output of this code does not match what the source says should happen. It leads to : $2C -> $58 (ok) -> $B1 (not ok) -> $63 (not ok) ... I don't think the comparison with $80 is supposed to happen with each iteration.
  8. This reminds me that I will need to revise my logic for the payment received when capturing ghosts. Players are supposed to receive between $300 and $1000 depending on how fast they answered the call. I was not rounding that reward to multiples of $100, but given how the account system works I guess I will need to do that.
  9. I don't know Python, but I suspect it's about this part of the code: for _ in range(iters😞 tmp = (cb << 1) & 0xff tmp ^= cb tmp = (tmp << 1) & 0xff tmp ^= cb tmp = (tmp << 2) & 0xff tmp ^= cb cb = (cb << 1) & 0xff if tmp & 0x80: cb |= 0x01 return cb I was able to reproduce the output with this code in Intybasic. Am I on the right path? #name_checksum=$2C FOR I=1 TO 5 #name_checksum=#name_checksum*2 IF (#name_checksum AND $100)<>0 THEN #name_checksum=(#name_checksum AND $FF)+1 IF (I%4=0) AND (#name_checksum AND $80)<>0 THEN #name_checksum=#name_checksum OR 1 NEXT I
  10. Ok, if this is just a rotate left, something doesn't look right. The source code gives this example for rotating $2C 5 times. $2c --> 1: $58 2: $b0 3: $61 4: $c3 5: $87 I don't get how it arrives at $C3 on the 4th iteration. Shouldn't that be $C2 ? After all, 0110 0001 = $61 If you rotate that left, you should get 1100 0010 = $C2 ... and not the $C3 shown? What am I missing?
  11. Ahh... there is xor done besides the shift... perfect. Thank you very much!
  12. Could anyone help me understand how $AD becomes $2C Look at 5:44. I understand he rotated $AD (8 bits) in a loop 173 times. It doesn't say if he rotated it left or right, but anyway. Just looking at the bits, $2C does not look like a possible outcome of rotating $AD. Or maybe I misunderstood the operation? I'm not great with this bitwise stuff, so I appreciate the help. PS.: another question I have is whether other versions of GB calculated the account name checksum using PETSCII as well... Anyone ever tried using C64 account numbers on other versions? PSS.: I checked out this account number generator and there is definitely a difference in how it operates depending on the platform. https://www.perifractic.com/takeout-shop/ghostbusters-password-generator/
  13. Sorry, I thought you knew where that came from. Posting some additional pics for ghostbusting fans out there who (like me) couldn't play it. 🤣
  14. It looks like this last video I posted is going around and being described as an upcoming release or something. To be clear, this game is for my own enjoyment. I'm making it because I can't afford the existing version. Which I'm sure is worth $500.
  • Create New...