Skip to content

Commit d77013e

Browse files
author
zacaj
committed
misc
1 parent 0da3f43 commit d77013e

25 files changed

+203
-128
lines changed

cdisp/HW/dev_hardware_SPI.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void DEV_HARDWARE_SPI_begin(const char *SPI_device)
9393
DEV_HARDWARE_SPI_Mode(SPI_MODE0);
9494
DEV_HARDWARE_SPI_ChipSelect(SPI_CS_Mode_LOW);
9595
DEV_HARDWARE_SPI_SetBitOrder(SPI_BIT_ORDER_LSBFIRST);
96-
DEV_HARDWARE_SPI_setSpeed(10000000);
96+
DEV_HARDWARE_SPI_setSpeed(20000000);
9797
DEV_HARDWARE_SPI_SetDataInterval(0);
9898
}
9999

@@ -120,6 +120,7 @@ void DEV_HARDWARE_SPI_beginSet(const char *SPI_device, SPIMode mode, uint32_t sp
120120
DEV_HARDWARE_SPI_Mode(mode);
121121
DEV_HARDWARE_SPI_ChipSelect(SPI_CS_Mode_LOW);
122122
DEV_HARDWARE_SPI_setSpeed(speed);
123+
printf("got speed %i\n", speed);
123124
DEV_HARDWARE_SPI_SetDataInterval(0);
124125
}
125126

cdisp/media/128/pinkArrow.png

1.41 KB
Loading

cdisp/media/160/lower_bet.png

-13.9 KB
Loading

cdisp/media/160/lower_bet.svg

Lines changed: 16 additions & 16 deletions
Loading

events.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ export const Events = {
178178

179179
// stuff on the top comes first
180180
export enum Priorities {
181-
EndMb = 1,
181+
ReleaseMb = 1,
182+
EndMb,
182183
ShowCards,
183184
Mystery,
184185
EndBall,

game.ts

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class Game extends Mode {
3434
return this.playerUp>=0? this.players[this.playerUp] : undefined;;
3535
}
3636
ballNum = 1;
37-
ballCount = 1;
37+
ballCount = 3;
3838

3939
get ball() {
4040
return this.curPlayer?.ball;
@@ -67,7 +67,7 @@ export class Game extends Mode {
6767
this.end();
6868
}
6969
}, 2000, 'start button hold'));
70-
this.listen([...onSwitchOpen(machine.sStartButton), () => time()-machine.sStartButton.lastClosed! < 500 && machine.sStartButton.lastClosed! > this.startTime], 'addPlayer');
70+
this.listen([...onSwitchOpen(machine.sStartButton), () => time()-machine.sStartButton.lastClosed! < 1000 && machine.sStartButton.lastClosed! > this.startTime], 'addPlayer');
7171
// this.listen<DropDownEvent>(e => e instanceof DropDownEvent, e => {
7272
// if (e.target.image) {
7373
// const disp = e.target.image.actual;
@@ -96,7 +96,7 @@ export class Game extends Mode {
9696
async onBallEnd() {
9797
const lastPlayer = this.curPlayer;
9898

99-
// todo voice
99+
// todo voice p# youre up
100100
if (this.playerUp+1 < this.players.length)
101101
this.playerUp++;
102102
else {
@@ -124,6 +124,8 @@ export class Game extends Mode {
124124
players: this.players.map(p => ({
125125
number: p.number,
126126
score: p.score,
127+
ballTimes: p.ballTimes,
128+
gameTime: p.ballTimes.sum(),
127129
store: objectMap(p.store, o => objectMap(o, v => typeof v === 'object'? undefined : v)) })),
128130
audits: this.audits,
129131
totals,
@@ -186,7 +188,7 @@ export class Game extends Mode {
186188
}
187189

188190
addPlayer() {
189-
if (!machine.sShooterLane.state || this.ballNum > 1 || this.curPlayer!.score>0) return;
191+
if (!machine.sShooterLane.state || this.ballNum > 1) return;
190192
this.players.push(new Player(this, this.players.length+1, this.seed));
191193
alert(`PLAYER ${this.players.length} ADDED`);
192194
if (this.players.length <= 4) void playSound(`player ${this.players.length}`);
@@ -219,12 +221,12 @@ export class Game extends Mode {
219221
[machine.sRight5, 4000],
220222
[machine.sLeftBack1, 5000],
221223
[machine.sLeftBack2, 5000],
222-
[machine.sUpper3Left, 12000],
223-
[machine.sUpper3Center, 12000],
224-
[machine.sUpper3Right, 12000],
225-
[machine.sUpper2Left, 12000],
226-
[machine.sUpper2Right, 12000],
227-
[machine.sSingleStandup, 13000],
224+
[machine.sUpper3Left, 6000],
225+
[machine.sUpper3Center, 6000],
226+
[machine.sUpper3Right, 6000],
227+
[machine.sUpper2Left, 6000],
228+
[machine.sUpper2Right, 6000],
229+
[machine.sSingleStandup, 3000],
228230
[machine.sRampMini, 3000],
229231
[machine.sRampMiniOuter, 3000],
230232
[machine.sRampDown, 0],
@@ -238,14 +240,13 @@ export class Game extends Mode {
238240
[machine.sShooterLane, 0],
239241
[machine.sShooterLower, 10],
240242
[machine.sBackLane, 1000],
241-
[machine.sPop, 7500],
242243
[machine.sUpperInlane, 1000],
243-
[machine.sUnderUpperFlipper,25000],
244+
[machine.sUnderUpperFlipper,0],
244245
[machine.sUpperSideTarget, 15000],
245246
[machine.sUpperEject, 1000],
246-
[machine.sUpperLane2, 1000],
247-
[machine.sUpperLane3, 1000],
248-
[machine.sUpperLane4, 1000],
247+
[machine.sUpperLane2, 1000],
248+
[machine.sUpperLane3, 1000],
249+
[machine.sUpperLane4, 1000],
249250
[machine.sRampMade, 5000],
250251
]);
251252
}

gfx.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ export async function initGfx() {
169169
screen.sy(-screen.h()/Screen.h);
170170
}
171171

172-
root.add(pfx.createCircle().radius(10).x(screenW).y(screenH/-2));
172+
// root.add(pfx.createCircle().radius(10).x(screenW).y(screenH/-2));
173173

174174
playfield.acceptsMouseEvents = true;
175175
playfield.acceptsKeyboardEvents = true;
@@ -927,7 +927,6 @@ const gfxSwitches: { [name: string]: {
927927
y: 25.650000000000002,
928928
},
929929
'ramp made': { x: 2.5875, y: 38.025 },
930-
'pop': { x: 12.487499999999999, y: 33.8625 },
931930
'upper 2 left': { x: 6.2437499999999995, y: 39.15 },
932931
'upper 2 right': { x: 7.3687499999999995, y: 39.43125 },
933932
'upper 3 left': { x: 10.575, y: 39.825 },

gfx/poker.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import { Group, ImageView } from 'aminogfx-gl';
22
import { Poker, Card, getFileForCard } from '../modes/poker';
3-
import { gfx, makeImage, Screen, Image, makeText, ModeGroup } from '../gfx';
3+
import { gfx, makeImage, Screen, Image, makeText, ModeGroup, Pie } from '../gfx';
44
import { onChange } from '../state';
55
import { tryNum, comma, money } from '../util';
66
import { machine } from '../machine';
77
import { onAny } from '../events';
88
import { Mode } from '../mode';
9+
import { time } from '../timer';
910

1011
export class PokerGfx extends ModeGroup {
1112
bet = makeText('BET: 0', 40);
@@ -19,6 +20,8 @@ export class PokerGfx extends ModeGroup {
1920
playerHand!: PokerHand;
2021
dealerHand!: PokerHand;
2122
rects = gfx?.createGroup();
23+
action = new Pie(gfx).radius(Screen.h * 0.15).start(Math.PI/2).fill('#AAAAAA');
24+
actionText = makeText('FOLDING...', 40, 'center', 'top').y(Screen.h * 0.25);
2225
constructor(
2326
public poker: Poker,
2427
) {
@@ -62,10 +65,10 @@ export class PokerGfx extends ModeGroup {
6265
});
6366

6467
this.add(this.snailInstr.y(Screen.h*.49));
65-
poker.watch(() => this.snailInstr.visible(poker.step>2 && poker.step<=6 && poker.player.chips>=1 && !machine.sShooterLane.state));
68+
poker.watch(() => this.snailInstr.visible(poker.step>2 && poker.step<=6 && poker.player.chips>=1));
6669

67-
this.add(this.foldInstr.y(Screen.h*.49));
68-
poker.watch(() => this.foldInstr.visible(poker.step < 7 && machine.sShooterLane.state));
70+
// this.add(this.foldInstr.y(Screen.h*.49));
71+
// poker.watch(() => this.foldInstr.visible(poker.step < 7 && machine.sShooterLane.state));
6972

7073
poker.watch(() => {
7174
this.rects.clear();
@@ -79,6 +82,13 @@ export class PokerGfx extends ModeGroup {
7982
}
8083
});
8184
this.add(this.rects);
85+
86+
// this.add(this.action, this.actionText);
87+
// poker.watch(() => {
88+
// this.action.visible(machine.sActionButton.state && machine.sShooterLane.state);
89+
// this.actionText.visible(machine.sActionButton.state && machine.sShooterLane.state);
90+
// this.action.percent((time() - machine.sActionButton.lastClosed!) / Poker.FoldTime);
91+
// });
8292
}
8393
}
8494

jserver/src/main/java/zpin/SwitchMatrix.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ public void update(int row, int col, boolean on) throws InterruptedException {
5959
e.when = ms;
6060
e.state = sw.rawState;
6161
e.name = sw.name;
62+
sw.state = sw.rawState;
6263
events.add(e);
6364

64-
sw.state = sw.rawState;
6565

6666
System.out.println("NEW switch event: "+e);
6767

machine.ts

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -476,8 +476,8 @@ export class Light extends MachineOutput<LightState[], LightOutputs> {
476476
}
477477
else if (MPU.isConnected) {
478478
Log.info('mpu', `Light: %s`, this.name);
479-
if (state.length) {
480-
const states = state.map(normalizeLight).truthy();
479+
const states = state.map(normalizeLight).truthy();
480+
if (states.length) {
481481
const parts = states.map(({color, type, freq, phase, dutyCycle}) => `${colorToHex(color)} ${type} ${freq} ${phase} ${dutyCycle}`);
482482
for (const num of this.nums)
483483
await MPU.sendCommand(`light ${states.length} ${num} `+parts.join(' '));
@@ -613,8 +613,8 @@ export class Image extends BatchedOutput<ImageType, ImageOutputs> {
613613
for (const cmd of cmds) {
614614
await CPU.sendCommand(cmd+(cmd===cmds.last()? '' : ' &'));
615615
}
616-
if (inverted !== undefined) {
617-
await CPU.sendCommand(`invert ${numStr} ${inverted}`);
616+
if (inverted !== undefined || !old) {
617+
await CPU.sendCommand(`invert ${numStr} ${inverted ?? false}`);
618618
}
619619
// if (old?.off && !state?.off)
620620
// cmds.push(`power ${numStr} true`);
@@ -787,7 +787,7 @@ export class Machine extends Tree<MachineOutputs> {
787787
sUpper3Right = new Switch(5, 0, 'upper 3 right', Drop);
788788
sUpper2Left = new Switch(6, 4, 'upper 2 left', Drop);
789789
sUpper2Right = new Switch(6, 3, 'upper 2 right', Drop);
790-
sSingleStandup = new Switch(7, 3, 'single standup', [0, 100]);
790+
sSingleStandup = new Switch(7, 3, 'single standup', StandupSet);
791791
sRampMini = new Switch(3, 7, 'ramp mini', StandupSet);
792792
sRampMiniOuter = new Switch(3, 0, 'ramp mini outer', StandupSet);
793793
sRampDown = new Switch(7, 4, 'ramp down');
@@ -801,23 +801,22 @@ export class Machine extends Tree<MachineOutputs> {
801801
sShooterLane = new Switch(0, 0, 'shooter lane', 100, 10);
802802
sShooterLower = new Switch(2, 0, 'shooter lower', 0, 50);
803803
sBackLane = new Switch(5, 5, 'back lane', [0, 100]);
804-
sPop = new Switch(4, 7, 'pop', Bumper);
805-
sUpperInlane = new Switch(7, 1, 'upper inlane', 0, 50); // disabled
804+
sUpperInlane = new Switch(7, 1, 'upper inlane', 0, 50);
806805
sUnderUpperFlipper = new Switch(7, 5, 'under upper flipper', StandupSet);
807806
sUpperSideTarget = new Switch(6, 1, 'upper side target', StandupSet);
808807
sUpperEject = new Switch(7, 6, 'upper eject', Hole);
809808
sUpperLane2 = new Switch(6, 5, 'upper lane 2', 1, 50);
810809
sUpperLane3 = new Switch(5, 7, 'upper lane 3', 1, 50);
811810
sUpperLane4 = new Switch(5, 3, 'upper lane 4', 1, 50);
812-
sRampMade = new Switch(7, 0, 'ramp made', [0, 100]);
811+
sRampMade = new Switch(7, 0, 'ramp made', [0, 150]);
813812
sPopperButton = new Switch(5, 8, 'popper button', 1, 50);
814813
sMagnetButton = new Switch(6, 8, 'magnet button', 1, 50);
815814
sLeftFlipper = new Switch(4, 8, 'left flipper', 1, 50);
816815
sRightFlipper = new Switch(1, 8, 'right flipper', 1, 50);
817816
sStartButton = new Switch(0, 8, 'start button', 1, 50);
818-
sActionButton = new Switch(3, 8, 'action button', 25, 250);
817+
sActionButton = new Switch(3, 8, 'action button', 25, 100);
819818
sBothFlippers = new Switch(1, 15, 'both flippers', 1, 50, false, false, true);
820-
sTilt = new Switch(2, 8, 'tilt');
819+
sTilt = new Switch(2, 8, 'tilt', 1, 100);
821820
sDetect3 = new Switch(0, 15, '3v detect', 100, 100);
822821

823822

@@ -897,7 +896,6 @@ export class Machine extends Tree<MachineOutputs> {
897896
this.sShooterMagnet,
898897
this.sShooterLower,
899898
this.sBackLane,
900-
this.sPop,
901899
this.sUpperInlane,
902900
this.sUnderUpperFlipper,
903901
this.sUpperSideTarget,
@@ -1209,8 +1207,6 @@ export class Machine extends Tree<MachineOutputs> {
12091207

12101208
this.listen([...onSwitchClose(this.sLeftOutlane), () => !this.out!.treeValues.lMiniReady.includes(Color.Red)], () => {
12111209
this.miniDownUntil = time() + 2000 as Time;
1212-
this.cMiniDiverter.pending = this.cMiniDiverter.val = true;
1213-
this.cMiniDiverter.trySet();
12141210
});
12151211
// this.listen([onAnySwitchClose(this.sOuthole), () => this.miniDown = false);
12161212

@@ -1325,6 +1321,7 @@ class MachineOverrides extends Mode {
13251321
rightGate: () => machine.pfIsInactive()? false : undefined,
13261322
lockPost: () => machine.pfIsInactive()? false : undefined,
13271323
miniDiverter: () => machine.pfIsInactive()? false : undefined,
1324+
kickerEnable: () => machine.sActionButton.state || undefined,
13281325
});
13291326

13301327
this.listen(e => e instanceof SolenoidFireEvent && e.coil === machine.cRealRightBank, () => Events.fire(new SolenoidFireEvent(machine.cRightBank)));
@@ -1378,6 +1375,8 @@ class MachineOverrides extends Mode {
13781375
await wait(1000);
13791376
if (this.curBallSearch !== ballSearchNum) return;
13801377
for (const bank of machine.dropBanks) {
1378+
if (bank === machine.rightBank)
1379+
fork(FireCoil(this, machine.cShooterDiverter, 500, false));
13811380
await FireCoil(this, bank.coil, 50);
13821381
await wait(100);
13831382
}

0 commit comments

Comments
 (0)