I’ve got three reels going now. The slot machine front is just temporary, to see if I could get it in and working. The handle is in a different picture and world. Slot reels- BGMap1, Slot machine front – BGMap0, and handle – BGMap2.
Attachments:
Slot machine redesign. What do you think?
I also moved the handle to the same BGmap as the front. So any picture donations for the front need to leave space for handle pictures as well as the words “slot machine” in the upper right corner.
Attachments:
Not much work this weekend. I did just devote about three hours to make the user have to press A to start the slot machine. I guess the problem was I wanted to speed it up but it kept glitching out on a real VB so I had to slow it down some. Right now this is the fastest it can go.
Made the reels stop psuedo-randomly. This version is not tested on real hardware because it’s late and I want to sleep now. Download the latest version at http://www.atari2600land.com/casino/
Fixed the first reel showing problem on real Virtual Boy from today’s earlier post. I still don’t know why it is happening. I also still don’t know why I have to put in
VIP_REGS[XPCTRL] = VIP_REGS[XPSTTS] | XPEN; while (!(VIP_REGS[XPSTTS] & XPBSY1));
whenever I try to display ANYTHING.
Added betting system to all three games. You can change how you want to bet after every turn. Or keep it the same. To change the betting number, press up or down on the right dpad. Maximum bet number is 5. Download here:
http://www.atari2600land.com/casino/
Man I wish we had signatures.
Does anyone have a want for a casino game I don’t have yet? Video Poker is out since it seems very complicated to keep track of all the types of ways you can win.
I see this and memories of Go Fish from Mario’s Game Gallery come rushing to my head haha.
I’m assuming it would be a bit difficult to add Go Fish?
(EDIT: I realize now Go Fish isn’t really a Casino game but alas Go Fish, Checkers, and Dominoes would still be kinda neat haha)
Anyone here an expert of Craps (the casino dice game)?
I’m trying to make a version of Craps using the rules in Wikipedia: https://en.wikipedia.org/wiki/Craps
I’ve got pass and don’t pass bets and what I think are basic rules down, but since I’ve never played the game, I don’t know if they’re correct or not. Check out what I’ve got so far and a ROM and code zip file here: http://www.atari2600land.com/casino/casino20180511.zip
Let me know what you think so far.
Attachments:
Craps is a very difficult game to learn. I watched someone trying to teach it, and it was mind-boggling how many rules there were. Who in the heck even came up with something like that???
I think I got the Come/Don’t Come bets in. I’m using the Hoyle website for these rules now. http://www.hoylegaming.com/rules/showrule.aspx?RuleID=206
To turn on/off a Come bet, press the Left Trigger button. To turn on/off a Don’t Come bet, press the Right Trigger button. As per rules, you can only make a Come/Don’t Come bet after a non-crapping out/non-winning roll.
Just poking my head in to say “hi, I’m back working on my casino game.”
No craps, I’ve decided it was too tough to program and learn, so I’m going to attempt to replace it with a version of Video Poker.
Attachments:
So someone was kind enough to give me some code for ranking hands:
function rankHand() { var rank; // sort hand into card rank order for (i=1;i<=5;i++){ for (j=i;j<=5;j++){ if (rankHandRank[i] > rankHandRank[j]) { tmpSuit = rankHandSuit[i]; tmpRank = rankHandRank[i]; rankHandSuit[i] = rankHandSuit[j]; rankHandRank[i] = rankHandRank[j]; rankHandSuit[j] = tmpSuit; rankHandRank[j] = tmpRank; } } } // now rank the hand (1 is the highest) if (rankHandSuit[1] == rankHandSuit[2] && rankHandSuit[2] == rankHandSuit[3] && rankHandSuit[3] == rankHandSuit[4] && rankHandSuit[4] == rankHandSuit[5] && rankHandRank[5] == 13 && rankHandRank[4] == 12 && rankHandRank[3] == 11 && rankHandRank[2] == 10 && rankHandRank[1] == 1) { rank = 1; // royal straight flush } else if (rankHandSuit[1] == rankHandSuit[2] && rankHandSuit[2] == rankHandSuit[3] && rankHandSuit[3] == rankHandSuit[4] && rankHandSuit[4] == rankHandSuit[5] && rankHandRank[5] == (rankHandRank[4] + 1) && rankHandRank[4] == (rankHandRank[3] + 1) && rankHandRank[3] == (rankHandRank[2] + 1) && rankHandRank[2] == (rankHandRank[1] + 1)) { rank = 1; // straight flush } else if (rankHandRank[1] == rankHandRank[2] && rankHandRank[2] == rankHandRank[3] && rankHandRank[3] == rankHandRank[4]) { rank = 2; // 4 of a kind } else if (rankHandRank[2] == rankHandRank[3] && rankHandRank[3] == rankHandRank[4] && rankHandRank[4] == rankHandRank[5]) { rank = 2; // 4 of a kind } else if (rankHandRank[1] == rankHandRank[2] && rankHandRank[2] == rankHandRank[3] && rankHandRank[4] == rankHandRank[5]) { rank = 3 // full house } else if (rankHandRank[3] == rankHandRank[4] && rankHandRank[4] == rankHandRank[5] && rankHandRank[1] == rankHandRank[2]) { rank = 3; // full house } else if (rankHandSuit[1] == rankHandSuit[2] && rankHandSuit[2] == rankHandSuit[3] && rankHandSuit[3] == rankHandSuit[4] && rankHandSuit[4] == rankHandSuit[5]) { rank = 4; // flush } else if (rankHandRank[5] == (rankHandRank[4] + 1) && rankHandRank[4] == (rankHandRank[3] + 1) && rankHandRank[3] == (rankHandRank[2] + 1) && rankHandRank[2] == (rankHandRank[1] + 1)) { rank = 5; // straight } else if (rankHandRank[5] == 13 && rankHandRank[4] == 12 && rankHandRank[3] == 11 && rankHandRank[2] == 10 && rankHandRank[1] == 1) { rank = 5; // straight } else if (rankHandRank[1] == rankHandRank[2] && rankHandRank[2] == rankHandRank[3]) { rank = 6; // 3 of a kind } else if (rankHandRank[2] == rankHandRank[3] && rankHandRank[3] == rankHandRank[4]) { rank = 6; // 3 of a kind } else if (rankHandRank[3] == rankHandRank[4] && rankHandRank[4] == rankHandRank[5]) { rank = 6; // 3 of a kind } else if (rankHandRank[1] == rankHandRank[2] && rankHandRank[3] == rankHandRank[4]) { rank = 7; // 2 pair } else if (rankHandRank[2] == rankHandRank[3] && rankHandRank[4] == rankHandRank[5]) { rank = 7; // 2 pair } else if (rankHandRank[1] == rankHandRank[2] && rankHandRank[4] == rankHandRank[5]) { rank = 7; // 2 pair } else if (rankHandRank[1] == rankHandRank[2]) { rank = 8; } else if (rankHandRank[2] == rankHandRank[3]) { rank = 8; } else if (rankHandRank[3] == rankHandRank[4]) { rank = 8; } else if (rankHandRank[4] == rankHandRank[5]) { rank = 8; } else { rank = 0; } return rank; }
Since it’s Javascript, I tried to convert it to C. I also adapted my code for the cards. I now have strings:
Cardnumber and Suitnumber, each having numbers 0-4. I tried to merge the card ranking code into my game, but I don’t know what I need to do to make the code read the strings and work. Could someone please help me? The videopoker routine starts at line 2,062 and goes until the end.
Attachments:
Testing time. After hours of work, I think I may have done it. I tested this for 10 minutes, and there was no missed pairs like the previous versions I had tried.
SO LET ME KNOW if you come across any instance where it missed a pair. Take a picture of it (F9 in Mednafen).
The next thing I will do is add an option to change cards and redeal it again. Because right now, pressing start over and over again just gives you new hand after new hand. I am doing this for test purposes. Get the latest ROM here:
http://www.atari2600land.com/casino/
I think I finished a Video Poker game for the casino. Please test the latest version from the link in my previous post to play and test. The zip file will come with instructions.
Tried on a real Virtual Boy. I had to make the wheel spinning silent because it wasn’t working right with the music. Otherwise, all visual stuff should be working fine. If you have the one in the 3pm hour, upload the one in the 4pm hour.
I got the spinning sound in, but it sounds different on a real Virtual Boy as opposed to Mednafen. I wonder why.