Jump to content
IGNORED

Ghostbusters - Development Diary


TheMole

Recommended Posts

Okay, this is going to be the last update for a while (probably a month or so), as I'm leaving tomorrow for what is shaping up to be a proper vacation without laptops and technology!

I'd have hoped that I would've been able to finish the game before, but alas... still a few things on the todo list for me to tackle when I get back.

 

New in this version:

  • Account system is implement, and compatible with the old accounts from the original game (C64 and MSX only, Speccy and CPC had a slightly different algorithm).
  • The shop is there now, as are all the items the game will support
  • So far, the following items are properly implemented
    • Traps
    • Vacuum (although the car graphics do not yet reflect whether or not you've purchased the ghost vacuum)
    • Image intensifier -> if you don't have this, the ghosts in the cathcing sequences will flicker in and out of existence, making it harder to catch them.
    • Different cars, with different properties (speed and capacity)
  • Boss battle is there, if you manage to finish the game with more money than you started with, you will get the opportunity to sneak past the Marshmallow man. Sneak past with two of your three men, and you win the game, fail and you lose.
  • Two new songs, the classic theme song throughout the majority of the game. In the shop you'll get the "Main Theme" though.

 

Still todo:

  • Improved navigation on the map screen
  • Karaoke-style intro
  • Victory sequence: scrolling up the Zuul building, crossing the streams and defeating Gozer. This is just an animation though, so just some polish.
  • Show account info after winning, so you can start with more money the next time you play.
  • Marshmallow building destruction.
  • Port keyboard code over to the Geneve, so no Geneve version this time around.
  • Some other stuff...

 

Have fun! Any and all feedback welcome, after I get back I'll work on the final version and release it officially!

 

 

ghostbusters.rpk ghostbusters.bin

  • Like 14
Link to comment
Share on other sites

Played a long game tonight.  Driving is better, but still frustrating af. :D  I had a strange occurrence in which the ghost passed through a beam and escaped getting trapped (not sure if that is intentional.)  Many times I was vacuuming a ghost when the car was pulling over to a destination and the ghost either flitted around on the left side of the screen or spun around on the right, either way it was not captured.

 

I spent all but $100 getting started.  That means I would have to catch 50 ghosts to make it to Zuul.  Not an easy task, so more planning is necessary.

 

Fun game!  I am excited for its completion.  This is one of the games which has been on my TI wish list for a looooooong time, and it is shaping up to be everything I hoped.

  • Like 3
Link to comment
Share on other sites

6 hours ago, OLD CS1 said:

That means I would have to catch 50 ghosts to make it to Zuul.

In the original game there is another source of revenue, here from the Atari 2600 manual:

OUT OF CONTROL

Periodically you will lose all control of your ghostbusters
while on the map screen. Your vehicle (Ghostbusters symbol) will freeze up!
Also you will notice that the roamers start moving considerably faster
towards Zuul. This means that the menacing, monstrous Marshmallow Man is quickly
approaching, Your only way out is to drop bait - if you bought any.

To bait the Marshmallow Man, move the right difficulty switch.
If it is on 'A' switch it to 'B'; if it is on 'B' switch it to 'A'.


* If you're fast enough, you'll bait the Marshmallow Man and
earn $2000. He'll appear on screen but quickly run off.

* If you're not fast enough, the Marshmallow Man will stomp on
one of your blocks and you'll lose $4000.

 

  • Like 2
Link to comment
Share on other sites

9 hours ago, OLD CS1 said:

Played a long game tonight.  Driving is better, but still frustrating af. :D  I had a strange occurrence in which the ghost passed through a beam and escaped getting trapped (not sure if that is intentional.)  Many times I was vacuuming a ghost when the car was pulling over to a destination and the ghost either flitted around on the left side of the screen or spun around on the right, either way it was not captured.

 

I spent all but $100 getting started.  That means I would have to catch 50 ghosts to make it to Zuul.  Not an easy task, so more planning is necessary.

 

Fun game!  I am excited for its completion.  This is one of the games which has been on my TI wish list for a looooooong time, and it is shaping up to be everything I hoped.

Glad to hear that you find the driving to be better, but in all honesty, I haven't made any changes to that yet :). Perhaps you're starting to get used to it...?

 

Yeah, I noticed some bugs while futzing about with it on the plane, I'm taking notes on all feedback I'm getting. I must have broken something in the vacuuming mechanic, the distance calculation is all off.

 

As @SteveB pointed out, there's an important gameplay mechanic still missing, which can lead to massive earnings (and losses) in the second half of the game. Each ghost you catch can net you up to $900 depending on how quickly you get to the building. So, you should be able to win the game with about 15-20 successful catches.

 

Thanks for the feedback, and glad to hear you enjoyed it so far!

  • Like 2
Link to comment
Share on other sites

1 hour ago, TheMole said:

Glad to hear that you find the driving to be better, but in all honesty, I haven't made any changes to that yet :). Perhaps you're starting to get used to it...?

Different joystick.  I was using my Epyx 500XJ.  Usually I am using the keyboard (Classic99) or a different stick, like a TAC2 or Atari CX40.

  • Like 1
  • Haha 1
Link to comment
Share on other sites

Played some more last night.  I must have jinxed myself... driving around was killing me!

 

The accounting system definitely works.  A couple of the cheat accounts listed on-line give the expected results.  I noticed a couple of things about the alternate cars.  First, the car selection screen will redraw the current car if you select it, again.  That is, if you are viewing the Beetle and press "1", the screen will blank and bring the Beetle up, again.  Probably not a big deal.  Second, while driving around in the red sports car, ghosts will disappear under the front fenders, and the ghost vacuum does not show up on the car.

 

Last thing I noticed, and I cannot recall if this was in the C64 game, if you place your Ghostbusters facing the same direction, you can move them past each other without the streams crossing.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...
On 7/31/2023 at 11:58 AM, TheMole said:

Some unrelated progress, I wanted to get working on the account and shop systems... what do you guys think, does this look work?

 

I wanted to do something a bit more polished than the original, but still keep the teletype style feeling...

 

The monitor should be a TI monitor!  I mean, that's what everyone had or wanted to have back in the day.  🙂

 

Also, for the love of all things holy, PLEASE tell me this will get a nice boxed, cart release!

 

I both loved and hated this game on my C64 back in the day.  And now I want to love and hate it on my TI today.  LOL

 

Great work!

 

  • Like 3
Link to comment
Share on other sites

  • 3 weeks later...
On 8/17/2023 at 11:14 PM, OLD CS1 said:

Played some more last night.  I must have jinxed myself... driving around was killing me!

 

The accounting system definitely works.  A couple of the cheat accounts listed on-line give the expected results.  I noticed a couple of things about the alternate cars.  First, the car selection screen will redraw the current car if you select it, again.  That is, if you are viewing the Beetle and press "1", the screen will blank and bring the Beetle up, again.  Probably not a big deal.  Second, while driving around in the red sports car, ghosts will disappear under the front fenders, and the ghost vacuum does not show up on the car.

 

Last thing I noticed, and I cannot recall if this was in the C64 game, if you place your Ghostbusters facing the same direction, you can move them past each other without the streams crossing.

 

Yeah, the other cars were a quick addition I threw in and they aren't really polished yet. Now that I'm back from vacation, that's one of the things on my todo list I'm looking forward to tackling.

I also don't know if the C64 let you move your men past each other when facing the same direction, something to figure out later today.

 

On 9/1/2023 at 8:54 PM, cbmeeks said:

 

The monitor should be a TI monitor!  I mean, that's what everyone had or wanted to have back in the day.  🙂

 

Also, for the love of all things holy, PLEASE tell me this will get a nice boxed, cart release!

 

I both loved and hated this game on my C64 back in the day.  And now I want to love and hate it on my TI today.  LOL

 

Great work!

 

Sorry for picking the wrong monitor, but it's what I had back in my day, so it's staying ;). (although I had the amber version, it's just that the TI doesn't have any good shades of amber to work with).

 

Still planning to do the boxed release. Hopefully more news on that soon...

  • Like 3
  • Haha 1
Link to comment
Share on other sites

  • 2 weeks later...
On 7/13/2023 at 5:56 AM, OLD CS1 said:

Oh, yeah.  Driving around town is just as annoying in this as it is on the C64 :D

On 7/16/2023 at 5:14 AM, SteveB said:

It is a little bit hard to go around the corner on a map, hitting the right spot. We solved this in our version by only querying the joystick in the crossroad and the middle of a block, otherwise continue. You have plenty of time change direction or stop between those points and never miss a corner.

On 7/28/2023 at 5:41 AM, Asmusr said:

I agree with others that it's difficult to navigate around corners on the map.

On 7/29/2023 at 8:42 PM, OLD CS1 said:

Make it five.  I had a couple of people try playing it yesterday at VCF and they commented on the unforgiving nature of the movement.  One thing I noticed is it seems to not like the joystick pushed in an ordinal direction.  It kind-of makes sense, if you are at an intersection and press the joystick in the NE direction, which way are you really trying to go?

 

Can y'all test one of the attached builds for me? I've completely rewritten that part of the code from scratch, and it feels quite a bit better (imho) and wanted to get the community's feedback, especially those using joysticks. These builds immediatelly take you to the map screen and will only let you drive around to test that specific part of the game (other things are a bit broken due to 'fixes' I'm adding elsewhere in the game 😛 ).

 

Thanks!

 

mazecollisionttest.rpk mazecollisionttest.bin

  • Like 2
Link to comment
Share on other sites

8 hours ago, TheMole said:

Can y'all test one of the attached builds for me?

It feels very much like the Atari XL version, you can get around the corner by using the diagonal direction. 

 

I still prefer the way we did it, even though it is "better than the original" ...

  • Like 2
Link to comment
Share on other sites

18 hours ago, SteveB said:

It feels very much like the Atari XL version, you can get around the corner by using the diagonal direction. 

 

True, it's inspired by Pacman's movement, except that you stop moving if you don't hold a direction on the joystick. I personally prefer it over the semi-automatic solution you guys came up with, but that was certainly also a very valid way of solving the problem. I've always liked the extra control over the total distance during the driving sections you get when you can position the logo on the corner of the building like in the C64 version... it adds a little bit of strategy to that part of the game when trying to find the shortest route.

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...
On 6/14/2023 at 10:36 AM, adamantyr said:

although I would warn you can't use half-bitmap/enhanced graphics mode in that case, only full bitmap, because the table masks mess up the sprites and you're limited to 8 unique sprites. (If you use 9 or higher, they just repeat the first eight.)

Well, I guess I just ran into this... :)

 

I'm optimizing big parts of the code (started dropping frames quite heavily when I added the marshmallow attack code) and moved to half-bitmap mode to speed up the rendering (it's not technically needed, but I noticed I had only 240 different patterns and forgot about this limitation). @mizapf: is it possible that mess doesn't implement the above behavior? I see it in js99er, but not in mess.

Link to comment
Share on other sites

20 hours ago, TheMole said:

Well, I guess I just ran into this... :)

 

I'm optimizing big parts of the code (started dropping frames quite heavily when I added the marshmallow attack code) and moved to half-bitmap mode to speed up the rendering (it's not technically needed, but I noticed I had only 240 different patterns and forgot about this limitation). @mizapf: is it possible that mess doesn't implement the above behavior? I see it in js99er, but not in mess.

Several attempts to correctly emulate this glitch in the past were tried and removed in several emulators, though I'm not aware of the exact reasons. The MSX people claimed that some of the effects seemed thermal dependent, but I never observed that. 

Ultimately, if you report it, I'd be curious to hear what the response was. ;)

Link to comment
Share on other sites

I think JS99'er is the only emulator that emulates this glitch. It's important to emulate, because if you discover the issue too late, you can potentially waste a lot of time developing something that doesn't work. Of course, no released games will have the issue, so it's not important for emulating those games.

 

The basic issue seems to be that the 2 least significant bits of VR4, which determines the pattern masking in half bitmap mode, are ANDed onto the 2 most significant bit of the line number counter used for determining if a sprite is drawn at that line. So, for instance, if you have a sprite at line 56, and the line number counter is 123 (0111 1011) and the mask is 00, it will become 59 (0011 1011), so when it compares that to the sprite at line 56 (which is supposed to be display from line 56 to 74) it will decide to display a duplicate at line 123. 

 

The solution, if you run into the issue, depends on your reason for using half bitmap mode in the first instance:

  1. Revert to full bitmap mode and use the same patterns and colors on each 3rd of the screen. If you don't need to save VDP RAM and don't need to update the characters on the fly, this should work fine.
  2. Change to 3 pattern tables and one color table.  This will save 4K VDP RAM compared to full bitmap mode and will reduce the time it takes to update a character, but it's still not as fast as half bitmap mode. I used this in Flying Shark, for instance.
  3. Reduce the number of sprites to 8. If you need fast smooth scrolling, for instance, this may be your only option.

 

  • Like 12
Link to comment
Share on other sites

On 10/20/2023 at 12:11 AM, Asmusr said:

The solution, if you run into the issue, depends on your reason for using half bitmap mode in the first instance:

  1. Revert to full bitmap mode and use the same patterns and colors on each 3rd of the screen. If you don't need to save VDP RAM and don't need to update the characters on the fly, this should work fine.

This is what I ended up doing. I don't need the VRAM as such (or, will never get enough for what I need it to do even if I went to Graphics mode anyway), but I was struggling with updating the pattern definitions quickly enough. Since I wasn't using more than 256 unique tiles anyway, even with the animations, I just duplicated the patterns/colors three times and use the nametable to get the animated effect I was after.

 

On an unrelated note, I finally got the 'engine' for the karaoke-style intro sequence working! Now, I will need to spend an inordinate amount of time aligning the lyric scrolling and ball bouncing with the music before I can call this finished, but the technical part is done:

 

Here's the project's todo-list (software only), just to get an idea of how far along I am:

TODO's
	[x] Fix navigation on the main map screen
	[x] Don't let players "re-select" the same car again in the shop screen
	[x] Fix roamer catching mechanic while driving
	[x] Fix rendering issues with cars that are not the Hearse ('roamer under fender' bug)
	[x] Show game-over screen, including updated account info if player has won
	[x] Add pressing spacebar to show status message
	[x] Add building pre-highlight when PK Energy meter is installed
	[x] Add marshmallow building destruction game feature (including marshmallow sensor)
	[x] Change marshmallow algorithm to use offsets instead of exact pk energy levels
	[ ] Change car image depending on if the vacuum is installed or not
	[ ] Add sound effects
	[ ] Add karaoke intro animations
	[ ] Add Zuul outro animation
	[ ] Fix music playback stuttering while loading assets
	[ ] Improve ghost/beam collission detection
	[ ] Complete Geneve port

NICE TO HAVE's
	[ ] "TheMole Games" logo intro
	[ ] Add missing animations on catching screen (no ghost, leave with trap, etc...)
	[ ] Introduce different sprites for ghosts for visual variety
	[ ] Add keymaster and gatekeeper to map screen

 

Quite a lot has been done since the last release (the x's in the list), but I'm eager to get the final product done before I upload a new version.

  • Like 11
Link to comment
Share on other sites

  • 2 weeks later...

I'm proud to present the first release candidate for Ghostbusters for the TI!

 

Improvements in this version:

  • Improved cornering on the map
  • Fixed some bugs when vacuuming roamers while driving
  • Improved ghost/beam collission detection, now works exactly like the C64
  • Multiple rendering fixes
  • Cars now correctly show the vacuum depending on if the player has purchased it in the shop
  • All shop items work as designed
  • Background music continues playing in between screens
  • Karaoke intro added
  • Marshmallow attacks on map added
  • Added sound effects
  • Add outro animation when defeating Stay Puft at Zuul.

 

It hasn't been tested on real hardware, so there might (will) be bugs and timing issues that pop up. Let me know if you get a chance to play it on the real deal! I'm also looking for feedback on the game's difficulty and balancing. I've been test playing it so much that I'm not sure I can still judge how easy or difficult it is for both newbies to the game and those that have played it on other platforms in the past. Starting from a new account, I will typically have earned over $20.000 by the time the pk energy level gets to 9999. I never managed to do that on the C64, which worries me :).

 

I also added in two new sets of sprites for ghosts during the catching sequences. The SMS did something similar, I believe, and I like the idea of having some variety. However, I'm not convinced about my pixel art and how well it fits with the esthetic of the game:

Screenshot2023-11-06at11_28_59.png.5a49f90d2cd8e5a615b5731f4b17e340.png

So if anyone wants to come up with some nice ghost designs, please do let me know (a ghost needs to fit in a 2-color/layer 16x16 sprite).

 

Anyway, enough babbling, here are the roms:

ghostbusters.rpk

ghostbusters.bin

 

 

  • Like 7
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...