mirror of
https://github.com/imjasonh/nescript
synced 2026-07-14 19:46:46 +00:00
IR codegen: Player 2 controller support
ReadInput now takes an explicit player index (0 = P1, 1 = P2). The IR lowering for ButtonRead threads the player through, and the IR codegen selects the correct zero-page input byte ($01 for P1, $08 for P2). https://claude.ai/code/session_01W6eQFStA66EuMKHUFo2rx3
This commit is contained in:
parent
adf50aaa7f
commit
8a6441071e
5 changed files with 17 additions and 10 deletions
|
|
@ -407,8 +407,10 @@ impl<'a> IrCodeGen<'a> {
|
|||
self.load_temp(*x);
|
||||
self.emit(STA, AM::Absolute(base + 3));
|
||||
}
|
||||
IrOp::ReadInput(dest) => {
|
||||
self.emit(LDA, AM::ZeroPage(0x01)); // ZP_INPUT_P1
|
||||
IrOp::ReadInput(dest, player) => {
|
||||
// $01 = P1 input byte, $08 = P2 input byte
|
||||
let addr = if *player == 1 { 0x08 } else { 0x01 };
|
||||
self.emit(LDA, AM::ZeroPage(addr));
|
||||
self.store_temp(*dest);
|
||||
}
|
||||
IrOp::WaitFrame => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue