(Topic ID: 323915)

The Cat's Meow -- a new home ROM for Bad Cats

By idealjoker

49 days ago


Topic Heartbeat

Topic Stats

  • 88 posts
  • 23 Pinsiders participating
  • Latest reply 1 day ago by Quench
  • Topic is favorited by 14 Pinsiders

You

Linked Games

Topic Gallery

View topic image gallery

IMG_1569 (resized).jpeg
20220925_193203 (resized).jpg
cats_meow_version_screen (resized).png

There are 88 posts in this topic. You are on page 1 of 2.
29
#1 49 days ago

ANNOUNCEMENT

I have begun working on a new home ROM for Bad Cats, which I tentatively call "The Cat's Meow." I am trying to accomplish several different goals:

  1. Fix bugs.
  2. Add a ball saver.
  3. Make the game suitable for competitive play.
  4. Fix problems with some of the game elements.
  5. Make the game more interesting, especially in a small collection.
  6. Implement other improvements.

This thread is intended to provide project updates and offer the opportunity for potential future users and other interested parties to comment and make suggestions.

I have already put a fair amount of effort into this project. The way I make my ROM patches requires disassembly of almost the entire code and data to the point where I can relocate the game-specific code (switch handlers, etc.) and data (e.g. text strings) to any ROM address I want. It has taken somewhere between 100 and 200 hours of work to get to this point. 94.7% of the code and data are disassembled and in my currently installed ROM the entire game code and most of the text strings have been relocated. There are 3385 bytes free, which is nearly 7% of the entire ROM space. The work up to now has been fairly annoying and boring. Now comes the fun stuff: analyzing the game code and making changes.

At some stage I will need beta testers. I will make an announcement on this thread once I have something ready for testing. Once finished, I intend to release the Bad Cats home ROM as a differential patch that does not include any of the original WMS code, the same way I did it with PEMBOT.

The image is from my penultimate version, which had only 2753 bytes free (B.F) and was compiled on October 13 (yesterday). R. 974 is the version number in my Mercurial repo; it is so high because it also includes PEMBOT, Jungle Lord new tricks, as well as my 7eleven tools.

cats_meow_version_screen (resized).png
#2 48 days ago

UPDATE

I implemented the first two useful changes today:

  1. I like the Fishbone-Us target code in the L2 ROM release much better than in the L5 release, because it is much more sensitive. The main reason for this is that in L2 the opto triggers both on closing and opening, while it only triggers once in L5. Additionally, L5 allows a maximum of 2 triggers per target hit. Since I'll base the home ROM on L5, I reverted the fish target handling to L2. (My eventual goal is to make the target gradually more difficult as you score points from it.) This was more tricky than expected. There are about 40 bytes of code in the L5 switch handler that deal with limiting the number of triggers per hit to not more than two. It's tempting to assume that it's this limit that makes the difference. However, that code never does anything on my machine. It would only come into action if you would get 5 triggers in the L2 code, which is not something that I think I have ever seen. What actually makes the difference is a single flag bit in the switch table, which makes the opto generate twice as many triggers in L2 than in L5.

  2. I made a simple fix for the famous trashcan light bug. You can see the effect of the change twice in the video below, at 00:48 and 01:48. I'll most likely change the sound effect to the "What's all the racket" call-out. I think that I should also award the empty-trashcan score when it's unlit. The game does not feel right without the callout and I think that the score is appropriate, too.

#3 47 days ago

If you run out of space completely I have lots of tricks to optimize 68xx code. Just from flight 2000 having five bytes free in the original and my rewritten code with lots of additions actually has fourteen bytes free now with many changes added.

#4 47 days ago
Quoted from slochar:

I have lots of tricks to optimize 68xx code.

Thanks for the offer. I am always interested in learning new tricks. I never know just how much of an audience there is on Pinside for stuff like this. Personally, I think it's fun and may be worth a separate thread.

My compiler automatically optimizes short jumps and some sleep calls that use the "wrong" routine. I manually optimize other things; in BadCats so far I have found quite a few unnecessary statements, including zero-length branches, duplicate code, as well as superfluous instructions that look like they were probably generated by assembler macros.

#5 47 days ago

I look forward to following this project.

#6 46 days ago

Following as well! Very cool!

#7 46 days ago
Quoted from idealjoker:

My compiler automatically optimizes short jumps and some sleep calls that use the "wrong" routine. I manually optimize other things; in BadCats so far I have found quite a few unnecessary statements, including zero-length branches, duplicate code, as well as superfluous instructions that look like they were probably generated by assembler macros.

Yeah, once you have everything 100% stable where you can move stuff around at will you can go heavy on the optimizations if you need to. You have a relative large amount of free space in the romspace right now, you probably won't use it all up unless you plan on really going heavy with more text and stuff like that.

#8 46 days ago

Following, and definitely interested in beta testing for you when the time comes. I have a ROM burner and was also able to help debug some nuances with Slochar's Flight2K rewrite when that was underway.

I'd almost suggest trying to use the trashcan "lock" for a multiball enhancement BUT I presume that is far too ambitious! I think your listed enhancements are a great starting point toward getting this game some increased love.

#9 46 days ago

Multiball on Bad Cats?
Meow meow meow!

#10 46 days ago

Great work!

Could you make it somewhat easier to get more than one extra ball per game from the fishbowl ramp?

And maybe shorten the GI lights flashing period a little bit.

Also, I find the "One more time!" call at at startup a bit annoying, if I just want to turn on the game for some mood illumination (it is the only game in my living room). But I'm not sure if it is the sound rom or game rom that does it.

20220925_193203 (resized).jpg

#11 46 days ago

This is great news.

Some of these old system 11s are great games but could be sooo much more with revised code. Bad Cats for sure falls into this category.

Another one due for code is police force.

#12 46 days ago
Quoted from Blackbeard:

This is great news.
Some of these old system 11s are great games but could be sooo much more with revised code. Bad Cats for sure falls into this category.
Another one due for code is police force.

Every pinball game ever made benefits immeasurably from updated code with fixes, improvements and even added features. Very easy to do in the digital world but hard as hell in the real world.

Who knows, maybe one day someone will be able to do this in the real world... (ID4 with new 'Up Yours' wizard mode)

#13 46 days ago

This looks awesome! Can’t wait to see the results!

#14 45 days ago
Quoted from goingincirclez:

multiball enhancement

I am not sure that this is physically possible. It depends on how the outhole-kicker mech deals with double drains. If it is at all possible that both balls get kicked into the shooter lane at the same time then it cannot be done. However, even if it is possible it would be clunky: The only place for the 2nd ball to sit while you play in single ball is the shooter lane, because the outhole is needed to detect a drain. But if you have a ball in the shooter lane (which is distracting, IMO) that means you can launch it. And if you launch it before multiball is ready, you have to drain both balls, which feels like a tilt even if you serve a ball again. I experimented a bit with this when I was changing a 2-ball into a 3-ball game. It can be done, but I have not found an elegant way of doing it. And Bad Cats is an elegant game.

Quoted from Tuukka:

Could you make it somewhat easier to get more than one extra ball per game from the fishbowl ramp?

This idea fits quite well with some other rules changes I want to implement. And do you mean the GI flashing after the game ends? I agree that it is too long. And what it does to the Jackpot display on the backglass is not nice, either. With regards to the one-more-time callout in attract mode, why don't you turn off the attract mode audio altogether? Adjustment 48.

#15 45 days ago
Quoted from idealjoker:

do you mean the GI flashing after the game ends? I agree that it is too long. And what it does to the Jackpot display on the backglass is not nice, either. With regards to the one-more-time callout in attract mode, why don't you turn off the attract mode audio altogether? Adjustment 48.

Yes that's what I meant.

Thanks for the tip, I thought the adj. 48 does not affect the power-up callout, but looks like it did the trick!

#16 45 days ago

Following...

BadCats with new code would be awesome.

#17 45 days ago
Quoted from idealjoker:

I am not sure that this is physically possible.

You'd have to change to a multiball trough.

Everyone always asks for multiball on games and I've done a few; here is a good way to tell if the layout is even a good multiball shooter.... just start a game and toss another ball in there and play it a bit and see if it makes 'sense'. Some do, some don't. I don't think Alien Poker makes sense as a multiball game that Oliver Kaegi did decades ago because the main goal in AP is to shoot the center bank in order, precision shooting isn't something multiballs are necessarily known for. Now, if there was a different goal during that, like lock 2 balls in saucers and THEN have a timeout while you shoot down the center bank, maybe. Kind of like Mousin' Around.

Quoted from Blackbeard:

Another one due for code is police force.

The 'take the high score' already has a tournament rom to eliminate or did you mean something else in there? I guess there's a lot of mystery shots on system 11 that might need equalization, and a lot of sys11 don't have a lot of 'depth'.... but that's kind of what I like about them. No modes per se. Although I did have a marathon game on f-14 yesterday after doing a mini rebuild on the upper left flipper that did end up like chopping wood, I didn't get 'bored', but it was a LLLLOONG game. I missed the hstd of 12.7 million by 500k (yes, my f-14 has dual 16 digit AN displays in it, with corresponding changes to the software).

#18 45 days ago
Quoted from idealjoker:

I am not sure that this is physically possible. It depends on how the outhole-kicker mech deals with double drains. If it is at all possible that both balls get kicked into the shooter lane at the same time then it cannot be done... I experimented a bit with this when I was changing a 2-ball into a 3-ball game. It can be done, but I have not found an elegant way of doing it. And Bad Cats is an elegant game.

Well to be fair that's why I conceded it would be "ambitious" and no harm no foul, ha ha.

I totally get where you're coming from and previously pondered some of those points... but stranger things have been done on other games so I figured what the hey not trying to force you. But I did always find it odd that BC was a rare single-ball game for the era, even though two "locks" were available via trashcan and/or doghouse (granted, other hardware & logic would be needed to implement either but you get my drift).

As for potential MB rules, given its relative simplicity BC seems more inclined to the classic "2X scoring!" bit and that would be easiest to implement. But in trying to imagine the balls as cats I couldn't help comparing them to my own pair of furred morons, and their odd behaviors such as "chase zoomies" and stalk-attacking each other, among other things. So I thought it would be fun if you had timed shots during MB such as: one ball enters the trash lock, and the other ball / next switch hit immediately is the fish-target for "stalk jackpot". Send one per each ramp in succession for "zoomie award". Send both into the doghouse to "hide from the owner". Etc etc... so you could flail around for 2X scoring, BUT if you pull off some fancy feline flipper skills, you could get hidden timed awards.

Again I realize this is all super ambitious and a LOT to chew and execute, with a ton of logic to recode, so no judgement at all. Just fun to imagine is all. Grateful to have any enhancements w/o MB!

#19 44 days ago
Quoted from goingincirclez:

So I thought it would be fun if you had timed shots during MB such as: one ball enters the trash lock, and the other ball / next switch hit immediately is the fish-target for "stalk jackpot". Send one per each ramp in succession for "zoomie award". Send both into the doghouse to "hide from the owner".

Those are fun ideas! Another one along a similar line would be to have the cats chase each other around the Goldfishramp with the points increasing the closer you get the balls on the ramp. That's something I have wanted to try out for a while. Bad Cats would be ideal for such a rule because you can shoot both ramps from both flippers, so if you could trap a ball on each flipper, you could nail it. I like MB with goals that require multiple balls. The coding logic for all this is not hard, but without hardware to support two or three balls if it is possible at all, it would be clunky.

Quoted from slochar:

You'd have to change to a multiball trough.

That's the problem. I don't want to do that.

I am pretty sure that I'll want to tackle other games in the future, and Police Force looks like it might be a fun game. I don't really plan these things, though. There are several games for future projects on my list. Top of my list are those with unused hardware.

#20 43 days ago
Quoted from idealjoker:

There are several games for future projects on my list. Top of my list are those with unused hardware.

You should add Diner to your list: it specifies three balls and even has extra switches in the subway lock, but one is never used. In addition to trying to crack a 3B mode, you could also look into things like only qualifying full drop banks if you first hit the specific items each character requests (and/or add more callouts so the characters all ask for different things instead of the same ones each time).

Buuuuut only after Bad Cats of course!

#21 43 days ago

In the process of shopping out my bad cats now. On the subject of turning it into a multiball game, how about this? To get around the trough issue, split off the switch for the center ramp jackpot. It is connected with a molex connector. Run a wire down and mount a second switch in the trough to count a second ball.

Yes, this would close the switch every time a ball drained when only one ball was present, and kicking the ball into the shooter lane would open it again. However, you could set it up so that a switch trigger of less than 1/2 a second (like hitting the ramp) registeed as a ramp shot and anything longer than .5 seconds was considered a ball drain.

Logically this would work in all situations I can think of, excepting draining of the 1st ball in a multiball. You'd have to build in logic that if an outlane switch was hit within 3 seconds of that tripping it was a ball drain but there is nothing I have for SDTM that would prevent it from being registered as a jackpot... which in and of itself might be a pretty neat risk/reward decision. Drain your multiball on purpose and get a jackpot.

With that said I am not a programmer and have no idea how easy or hard any of this is. Just thinking out loud.

#22 43 days ago
Quoted from sataneatscheese:

Run a wire down and mount a second switch in the trough to count a second ball.

Yes, this would close the switch every time a ball drained when only one ball was present, and kicking the ball into the shooter lane would open it again. However, you could set it up so that a switch trigger of less than 1/2 a second (like hitting the ramp) registeed as a ramp shot and anything longer than .5 seconds was considered a ball drain.

Logically this would work in all situations I can think of, excepting draining of the 1st ball in a multiball. You'd have to build in logic that if an outlane switch was hit within 3 seconds of that tripping it was a ball drain but there is nothing I have for SDTM that would prevent it from being registered as a jackpot... which in and of itself might be a pretty neat risk/reward decision. Drain your multiball on purpose and get a jackpot.

With that said I am not a programmer and have no idea how easy or hard any of this is. Just thinking out loud.

Bad Cats doesn't have that type of trough though. It's the older traditional one where the outhole switch IS the trough switch, without a holding area that multiball games have (along with the extra solenoid for the launch).

As for the smoothing of inputs, williams' games already do that for certain switches, so that part would be easy. Every williams multiball game with a multiball trough has coding to ignore short hits. Some of them also have coding to not count balls that miss the outhole switch; they will relaunch the ball. (All the way back to firepower, their first).

Now the way the flash multiball was done is that the switches were allowed to 'pile up' in the arpon area, with a switch added there; this isn't ideal, as you'd have to add a shield to the apron entry on Badcats to take care of this.

The only way to do it right would be to change the game to a multiball trough..... but that involves cutting the playfield open, or frankensteining a bally (think xenon) style setup in there.

Three ball diner is more doable since the parts are already present and it's just software (and deciding where the second ball should lock).

Changing the voices though unless the sound bite is already there for other food items.... just not gonna work.

#23 43 days ago
Quoted from slochar:

Changing the voices though unless the sound bite is already there for other food items.... just not gonna work.

Yeah that's the real mountain in the concept. It's not like how you re-did F2K by re-using existing speech-synth code and signals, and plugged into available ROM space. I'm sure the "other foods by other voices" callouts probably don't exist, so you'd have to create them, hope there's rom space for them, and then remap the logic to those addresses, hand in hand with rules. A big task for sure! But that lack of randomess and importance of the requests is Diner's biggest weakness, moreso than "they didn't use the 3rd ball" IMO. If the characters asked for random stuff it would open the challenge/rules/modes quite a bit. As it is, the callouts mean nothing: doesn't matter that they asked for (the always same) anything or even what's lit: you clear the banks to progress either way.

Anyway, much as I love chewing on this prospect for Diner's future, don't mean to clutter a BC thread with it, oops.

#25 42 days ago

What would you change on Mousin? Sorin already made an update that I think “works”?
Pool sharks yes please!

#26 42 days ago

UPDATE

While spending time "prospecting for resources" (unused flags, RAM bytes and thread ids) and analyzing game code I also implemented an experimental fix for the problem that the Jackpot can reach 20M but only 8M are displayed on the backglass. Without adding a Jackpot multiplier I don't think that it makes sense to lower the max Jackpot to 8M, because it requires a lot of effort compared to the 5M Fishbone-Us shot. (I have other plans for the 20M shot.) So I tried a simple and obvious fix where I use more than one backglass lamps blinking at the same time to indicate the Jackpot score. In the video the game starts with a Jackpot value above 13.5M. The skillshot from ball 1 (timestamp 00:10) adds 500K, which brings the value above 14M. I am not sure yet whether I like this fix or not. Let me know if you have an opinion. In the video it looks like Jackpot lamps 1M and 2M may also be blinking. That's a video artifact --- in the real game only two of the lamps are blinking (8M and 5M at game start).

The video also shows an updated fix for the Trashcan light bug (timestamp 01:05).

#27 42 days ago
Quoted from DK:

What would you change on Mousin?

Mousin' Around has an unused ball lock with connected switches and everything (https://pinside.com/pinball/forum/topic/system-11-club/page/72#post-6925003). I don't know what I would do with it, but I have no doubt that after a few hundred games I could come up with a fun idea or two.

#28 42 days ago
Quoted from idealjoker:

UPDATE
While spending time "prospecting for resources" (unused flags, RAM bytes and thread ids) and analyzing game code I also implemented an experimental fix for the problem that the Jackpot can reach 20M but only 8M are displayed on the backglass. Without adding a Jackpot multiplier I don't think that it makes sense to lower the max Jackpot to 8M, because it requires a lot of effort compared to the 5M Fishbone-Us shot. (I have other plans for the 20M shot.) So I tried a simple and obvious fix where I use more than one backglass lamps blinking at the same time to indicate the Jackpot score. In the video the game starts with a Jackpot value above 13.5M. The skillshot from ball 1 (timestamp 00:10) adds 500K, which brings the value above 14M. I am not sure yet whether I like this fix or not. Let me know if you have an opinion. In the video it looks like Jackpot lamps 1M and 2M may also be blinking. That's a video artifact --- in the real game only two of the lamps are blinking (8M and 5M at game start).
The video also shows an updated fix for the Trashcan light bug (timestamp 01:05).

Are you planning on keeping the 20 million shot on ball 3? Is there a possibility of being able to remove from the service menu? Just thinking about trying to keep it tournament viable. Everything you’re doing is amazing so far!

#29 42 days ago
Quoted from DK:

Are you planning on keeping the 20 million shot on ball 3?

You'll be able to chose with a game adjustment whether you want to keep the 20M shot on ball 3 or whether you want to make it an earned shot. In order to light the 20M you will have to have completed a Fishbone-Us 5M shot, an Extra Ball (Consolation EB does not count), and a Jackpot. Once you have completed the 20M shot, everything resets, including the Goldfish EB. Progress toward the 20M goals will be part of the Cat Scan, which will be modified to allow you to page rapidly through the info. (I reserve the right to change my mind on anything I write in this thread )

For tournaments, there will have to be changes to the Jackpot, which will also be on a game setting. I have a novel and potentially neat idea for a different type of Jackpot. Same for the Seafood wheel. Stay tuned...

#30 42 days ago
Quoted from idealjoker:

You'll be able to chose with a game adjustment whether you want to keep the 20M shot on ball 3 or whether you want to make it an earned shot. In order to light the 20M you will have to have completed a Fishbone-Us 5M shot, an Extra Ball (Consolation EB does not count), and a Jackpot. Once you have completed the 20M shot, everything resets, including the Goldfish EB. Progress toward the 20M goals will be part of the Cat Scan, which will be modified to allow you to page rapidly through the info. (I reserve the right to change my mind on anything I write in this thread )
For tournaments, there will have to be changes to the Jackpot, which will also be on a game setting. I have a novel and potentially neat idea for a different type of Jackpot. Same for the Seafood wheel. Stay tuned...

Hell yeah this is awesome!

#31 36 days ago

UPDATE: Ball Saver done

A basic ball saver is easy to add to a game: When the playfield is qualified (the ball hits the first playfield switch) a timer thread is started for a few seconds. When the ball drains while this timer is still running, the ball gets kicked back out into the shooter lane with a suitable callout or display message. For the first few seconds the timer thread is running the shoot-again lamp should be blinking. In principle that's easy, too, but the lamp is also used for other things (solid: EB waiting; blinking: EB being served; also various lamp effects) that you have to work around. Also, you have to ensure that the lamp is reset correctly on a tilt. Once the lamp is off the timer keeps running for a couple of seconds more during the grace period. That's the basic implementation. On Bad Cats I also had to make sure that the outlanes are handled correctly --- you don't want a Curiosity Spin on a ball that is going to be saved, but you also don't want to skip the Curiosity Spin because the ball saver is still active, only to have it time out before the ball reaches the outhole.

Adding the ball saver to the game adjustments is also conceptually easy: add a new string (BALL SAVER) to the game string table and modify the entry for adjustment 42 in the adjustments table from UNUSED to BALL SAVER, and to use the existing YES-NO routine to change the setting. What made it more challenging on Bad Cats is that there are more than 256 strings in the game string table, but you can only use the first 256 for the adjustments. This means I had to find a suitable string to move from a lower to a higher id number to make space for the ball saver. Not very difficult either, as long as you have the game fully disassembled, but you have to be careful because the string table is a multi-pointered beast and full of overlapping strings.

The 19-second video linked below shows the ball saver in action. The ball is an extra ball, which is why the EB lamp is blinking rapidly at the start. Once the playfield has been qualified the blinking slows down to indicate the ball saver is running. The ball is saved during the grace period.

#32 36 days ago
Quoted from idealjoker:

UPDATE: Ball Saver done
A basic ball saver is easy to add to a game......

This is super awesome! Very excited about this project!

#33 36 days ago
Quoted from idealjoker:

In principle that's easy, too, but the lamp is also used for other things (solid: EB waiting; blinking: EB being served; also various lamp effects) that you have to work around.

You are using the SFX lamp matrix to do this right, not the main lamps? If you let the main lamp matrix handle the state of 'extra ball is earned', then you set the mask to use the sfx lamp, then blink just the sfx lamp for the ball saver. Very nice for pinbol to have this in there to allow this, it's a nightmare to do effects on Stern mpu200 games for instance since it's just a lamp matrix, and a blink matrix. Status in the lamp matrix (but also adds the blink matrix in, because the lamps are refreshed only from the main matrix.... so the blink matrix will actually turn off the main lamp...).

(mask +$10 from main, sfx +18 from main)

#34 36 days ago
Quoted from slochar:

You are using the SFX lamp matrix to do this right, not the main lamps?

I used the SFX lamp matrix (which I call the alt buffer) for my ball savers on Jungle Lord and Pin Bot, but not for this one. On Bad Cats the entire SFX lamp matrix is used for the lamp effects, which are handled by another byte-code interpreter. This means that you cannot use the SFX lamp matrix at all when there are any lamp FX threads running. [When you use the alt buffer anyway, any lamp FX that is started turns off the shoot-again lamp immediately.] In the original ROM, the SFX lamp matrix is used in a couple of places, but these code bits are only exectuted when there is no lamp FX thread running. Doing the same would't work for the ball saver lamp, because there always is a lamp FX thread running when you serve a ball.

My options, therefore, were to modify the lamp FX interpreter or using the main buffer. Using the main buffer looked simpler to me, especially because the shoot-again lamp is not used for any non-standard purpose.

#35 36 days ago

The Lamp FX interpreter, which starts at $5463 in the L5 ROM is neat. It appears to be based on Pfutz's FX code in Pin Bot, because it uses the same set of zero-page buffers for the lamps and masks, as well as an identical library of functions to deal with those buffers. There is a different back-end that uses the SFX buffer instead of letting the IRQ handler access the zero-page buffers directly. And then there is also the new interpreter front-end. It is based on a set of powerful lamp operations, augmented with flow control. Amongst the stuff I have decoded there are byte codes to execute for-next loops and jumps. What gives it awesome powers, though, is that there's an op code that spawns another lamp FX thread at an arbitrary address. It is the "code" for this interpreter, which is a data table ($57FA-$60D2 in the L5 ROM), that I had to decipher in order to make the entire game, including the Cat Scan, relocatable.

#36 36 days ago

Some of the other system 11 games have something similar. It likely makes it a lot easier to address groups of lamps I'd think.... some of the wipe patterns are a pain to encode manually (I'm thinking of the attract modes I added to early stern games, here.... my own fault, really, since I wrote the engine.... thought it would be simple to encode the bytes, nope.... if I was doing that one over I'd make a bunch of marcos instead to make my life easier.)

So the IRQ isn't handling the SFX lamps directly from $28? Where does the lamp engine get called, in the IRQ hook somewhere, and it's using the $Ex-$ff area instead? That's probably nice since the existing pinbol routines all look at the 'known' locations, so you can still use those for game state with the existing interpreter functions, then have your lamp effects do whatever you want without touching that. I assume there's functions to sync them up occasionally if needed?

How deep can the lamp thread effects go, one level, two, etc.? From what I've read on WPC stuff there's more lamp matrixes but they all do different things (mask to show, mask to block, etc.). It probably makes perfect sense if we had the design documentation in front of us.

Pfutz did the same thing in system 7 in one of his games, I forget which; and all the stuff he wrote at stern (seawitch and f2k particularly) he did some off-the-beaten-path stuff there too. The sound engines in his stern games were especially difficult to decipher vs. the normal stuff.

#37 36 days ago

Thank you for the context!

Quoted from slochar:

So the IRQ isn't handling the SFX lamps directly from $28?

Sorry I was not clearly or correctly expressing what I meant. What I meant to say is that on BadCats there are FX lamp and mask buffers at $00C9 and $00D1, and those act like the corresponding buffers in Pin Bot at $00E1 and $00CB, as far as I can tell. On Pin Bot, these buffers are completely independent of the SFX buffer at $0028, so you can still use the SFX buffer in the game as you wish. The lamp FX engine in Bad Cats, on the other hand, appears to use the SFX buffer for the actual display of the effects, greatly limiting the use of this buffer for the rest of the game. That's what I think is going on, anyway...

#38 33 days ago

I can’t remember if the discussion was in this thread or the main bad cats thread, but regarding the skillshot bug, where you start a new game during the seizure end of game light show. I can also get it to happen 100% of the time.

Someone said it happens to them, and idealjoker did you mention you could not? When the end of game happens, the flickering lights go at two different speed patterns. Initially it’s really fast but then goes to a slower flicker. Soon as the slower flicker starts if I hit the start button the skillshot is bypassed because I’m awarded a Tiger loop hit (1,000) points.

If I wait for the light show to stop and then hit start I get a normal skillshot available start to the game. Running latest roms fyi.

#39 33 days ago

Additionally, the 2 different speed end of game light show doesn’t happen each time. I went to repeat testing further and the next 4 games had only one speed of flicker and would start a new game properly while pressing start during it.

#40 32 days ago
Quoted from Sethman:

Initially it’s really fast but then goes to a slower flicker. Soon as the slower flicker starts if I hit the start button the skillshot is bypassed because I’m awarded a Tiger loop hit (1,000) points.

Thanks for this additional information. It's very useful to know i) that this problem occurs on different machines, ii) that it is intermittent, and iii) that the problem seems to be a phantom switch hit. I have occasionally observed the slow-fast blinking on my game, too, but I probably have never tried starting a game when the blinking has slowed down. I tried quite hard yesterday, spending a good half hour just draining balls and then playing another half a dozen games or so, but the 2-speed blinking did not happen and the skillshot worked just fine on every new game.

The intermittent 2-speed effect is the result of a 2nd thread that is started 1.375s after the GI blinking starts. The second thread blinks the game-over message on the display. I think that the problem is the following: The GI thread does something every 2nd tic. The display thread does something every 4th tic. Two things can happen: i) the two threads both do their stuff on either even or odd tics (the work in phase). ii) One thread does its stuff on even tics and the other on odd tics (they work out-of-phase). Which of the two things happen is random. I believe that case i) is the one where the blinking slows down.

Now if the game-start bug is related to those two threads then the bug must be in the kernel (System 11), because those two threads run super-simple code that is easy to debug. If it is indeed a kernel problem, it may be very difficult to find and fix, especially if I cannot reproduce it (or it is difficult to reproduce) on my game. But until it is confirmed that the problem can be reproduced reliably when the blinking is 2-speed but does not occur when the blinking is single speed I want to treat this with caution, because there is other game-over stuff running at that time.

At the moment, there is nothing I can do. If I manage to reproduce the problem on my game reliably I can start digging. However, even if I cannot find the issue I should still be able to implement a work-around, by either disabling the start button during the first few seconds of Game Over, or by accepting the button but delaying the game start. In the mean time I would appreciate if others can try to reproduce the problem, too, and verify that it really has to do with the two blinking speeds.

#41 32 days ago

Just make game start specifically check for those threads and kill them before starting the game.

#42 29 days ago

UPDATE: 20M WISH working

I have implemented the earned 20M shot, which lights after you have collected an extra ball, and scored both a Jackpot and a Fish Bone-Us 5M shot. I still have a chunk of work to do improving the light and sound FX when you light and collect the shot but the basic functionality is there. I have named the shot "20M WISH" and it's the only shot with its own dedicated playfield plastic and flasher

I have played maybe a dozen or so full games with the 20M WISH and I am very happy with it. It's still Bad Cats, but with much more excitement (for me). The game I just played is a great example: I got an EB on a random Seafood spin early in ball 1 and completed the BAD-CATS with the remainder of ball 1 and the EB. (I have tentatively changed the rules so you get two BAD-CATS letters when you complete the Birds bank, and I will likely increase the probability of the Spot Letter reward on the Seafood wheel.) I then scored the Jackpot on ball 2, which left me with the 5M Fishbone. I spent the remainder of ball 2 and all of ball 3 trying to get that bloody shot. What makes it harder is that I don't have the 10x on memory, and with the lamp bug fix, on each new ball you first have to hit both the fish and the lit 10x before you can go for the 5M, even when the fish is already lit. I came so close too, scoring both 1M and twice 250K, but in the end I failed.

Once you have collected the 20M, everything resets including the extra ball on the Goldfish ramp. I like this, because the new extra ball gives me a real chance to go for the Jackpot a second time. (Not much point with the shared Jackpot but I am working on that.) An unexpected benefit of the new rules is that there is now an immensely satisfying 3-way award combo when you complete the 5M fishbone first and then light the Jackpot. Now you can collect the Jackpot and loop the ramp 3 more times to collect the Extra Ball *and* light the 20M WISH at the same time. Very rewarding.

The 20M WISH is on game adjustment 42. When it's disabled, the 20M are on ball three just like in the L5 code. When it's enabled, the Cat Scan tells you what you need to light the shot. (You can now scroll quickly through the information with the flipper buttons.) Also, once you have made any progress toward the 20M goals, the game shows what you need at the beginning of every ball, which is when I took the pic.

IMG_1569 (resized).jpeg
#43 27 days ago

Whenever you need a beta tester, I am ready. When - ever Like yesterday with that ball saver! Great work!

#44 27 days ago

Killer work!
Will there be a “no 20 million collect, period” adjustment? I don’t play w extra balls so don’t know the fragility of your addition

#45 26 days ago

Love this! Following

#46 26 days ago
Quoted from idealjoker:

I have implemented the earned 20M shot, which lights after you have collected an extra ball, and scored both a Jackpot and a Fish Bone-Us 5M shot.

So I presume if 20M WISH was on, and the extra balls are set to zero, that would cancel out the 20m all together? (Thinking of tournament play)

I applaud you guys fixing up this old code. I run a bunch of the old PAPA and Søren roms on all my games in the World SYS11 Champs down here.

Just a note re Diner - as it was mentioned - the only major thing I’d like to see is the Cup spin scoring made linear. As it is now (from memory) it goes like 250k, 500k, 750k, 1m then leaps up to 2.5m, 2.75m, 3m (something like that)
It would be much better if it didn’t jump up .. and just added 250k per spin all the way.

rd

#47 26 days ago
Quoted from rotordave:

Just a note re Diner - as it was mentioned - the only major thing I’d like to see is the Cup spin scoring made linear. As it is now (from memory) it goes like 250k, 500k, 750k, 1m then leaps up to 2.5m, 2.75m, 3m (something like that)
It would be much better if it didn’t jump up .. and just added 250k per spin all the way.

* CUP VALUES
; 0025
; 0050
; 0075
; 0100
; 0250
; 0260
; 0270
; 0280
; 0290
; 0300
; 0310
; 0320
; 0330
; 0340
; 0350

Looks like it tops out at 3.5 million. Jumps from 1m as you said to 2.5, then 2.6, 2.7, etc.
I'd think 3.5 would be one helluva spin, that's 15 go rounds. What happens if you take the glass off and artificially do this?

BTW you could make it top out anywhere along the way you'd want, just by changing the number to a max # - so if you wanted it to top out at 1 million, you just change all the values after that to 0100.

PM for details if you want to try it.

#48 26 days ago
Quoted from slochar:

PM for details if you want to try it.

Changing rom data is a tad above my pay grade lol

On my Diner (they’re all a bit different) an average spin will be either 750-1m or 2.5 - 2.7m depending how cleanly you shoot it up the ramp. And it has a lot to do with the original cup switch too, a magnetic switch would get bigger and more consistent points I’m sure. But then it would dominate the game and you’d just loop the right ramp all day. That’d be dumb.

A even 250k jump would really balance it up. Then the variance on my game would then be in the 750k to 1.5m range. Far less soul destroying in a multiplayer game lol.

Back to the cats!

rd

#49 26 days ago
Quoted from DK:

Will there be a “no 20 million collect, period” adjustment? I don’t play w extra balls so don’t know the fragility of your addition

Quoted from rotordave:

So I presume if 20M WISH was on, and the extra balls are set to zero, that would cancel out the 20m all together? (Thinking of tournament play)

I have not yet tested this, but based on the code the EB lamp on the Goldfish Ramp is lit normally even when you have set the max EBs to zero. Instead of awarding an EB, the display should show "NO EXTRA BALL". The same is true, I think, on the Seafood Wheel. Therefore, the 20M WISH should work the same whether you play with EBs or not. As to the "fragility of my addition" I intend to make the code rock solid, which is why the beta testing will take some time. Only two minor light bugs have been reported for my released PEMBOT patch and I would very much like to create similarly solid code for Bad Cats.

Should there be an option in the adjustment to disable the 20M shot altogether? Should there be an option to award a score instead of an EB when the extra balls are disabled? I believe that some tournament ROMs have that.

What else should be changed for tournament play? The Jackpot for sure. The Seafood wheel, perhaps, even though you can disable the Jackpot ramp, Specials and EBs. I don't much like pre-determined award sequences --- what about choosing the awards randomly but making sure that every player gets the same sequence? That's not entirely fair, either, because it gives an advantage to "later players". Alternatively, what if the Seafood wheel award was predetermined for example by the number of switch hits, rather than the System 11 random-number generator? Would this be more acceptable for tournament play?

Quoted from shimoda:

Whenever you need a beta tester, I am ready

I don't want to share any code with known bugs and I don't want to share many different test versions, either. As it stands, my to-do list includes a few minor improvements in the 20M WISH shot, replacing the shared Jackpot with something better, fixing the issue that the game skips, rather than delays, important sounds when something else is playing, and making the skill shot more interesting/relevant. If I continue making good progress I hope to start the beta testing sometime around the end of this month.

#50 26 days ago
Quoted from idealjoker:

Should there be an option in the adjustment to disable the 20M shot altogether? Should there be an option to award a score instead of an EB when the extra balls are disabled? I believe that some tournament ROMs have that.

I'm a firm believer in the 'put as many options as fit' in there for sure. Let the tournament director decide how they want to set up the game. Of course it's up to the programmer to text all possible configurations of this, and to make good documentation explaining exactly what the ramifications are if they aren't obvious. (Sometimes best to explain the obvious ones, as well.)

The old papa tournament rom just removed the curiosity spins altogether, along with the 20m shot on last ball being replaced with whatever it does on the earlier balls (5m I think?)

Pinbot stock I think does the sound delay thing, which is sometimes confusing when the effects are running long after you got the award. Noticeable on the extra ball when you rollover the lane and there's a pause while other things finish and then you get the extra ball fanfare after the ball is somewhere else on the playfield. There should be a cutoff for how long to wait, and certain effects should have way higher priority than they do.

Possibly replacing the current setup of (IIRC) the priority decaying naturally as the sound plays, which the new sound checks against, until the new sound can override it, replace it with a 'kill current sound, and play THIS one NOW, because it's the highest priority). Or if you do the queue, decide where in the queue to insert things, maybe sort them by priority before you run the effects, and limit the queue to 3 or 4 at most. The effects might run different on BC though if it's not keying off the sound timer.

Promoted items from the Pinside Marketplace
$ 19.99
$ 54.99
Cabinet - Shooter Rods
Lighted Pinball Mods
Shooter rods
$ 25.00
Apparel - Men
Pinside Shop
Men
$ 52.99
Cabinet - Shooter Rods
Pinball Shark
Shooter rods
$ 69.99
Cabinet - Shooter Rods
Pinball Shark
Shooter rods
$ 49.99
Eproms
Matt's Basement Arcade
Eproms
$ 399.00
Cabinet - Decals
Mircoplayfields
Decals
$ 54.99
Cabinet - Shooter Rods
Lighted Pinball Mods
Shooter rods
$ 40.00
Various Other Swag
JK Pinball
Various other swag
$ 15.00
Cabinet - Sound/Speakers
Gweem's Mods
Sound/Speakers
$ 15.00
Electronics
Yorktown Arcade Supply
Electronics
$ 45.95
Eproms
Pinballrom
Eproms
$ 11.95
Playfield - Toys/Add-ons
ULEKstore
Toys/Add-ons
$ 18.95
Eproms
Pinballrom
Eproms
There are 88 posts in this topic. You are on page 1 of 2.

Reply

Wanna join the discussion? Please sign in to reply to this topic.

Hey there! Welcome to Pinside!

Donate to Pinside

Great to see you're enjoying Pinside! Did you know Pinside is able to run without any 3rd-party banners or ads, thanks to the support from our visitors? Please consider a donation to Pinside and get anext to your username to show for it! Or better yet, subscribe to Pinside+!