mirror of
https://github.com/MiSTer-devel/InputTest_MiSTer.git
synced 2026-04-19 03:04:18 +00:00
Fix starfield scroll speed and keyboard inputs
This commit is contained in:
3528
rtl/rom.hex
3528
rtl/rom.hex
File diff suppressed because it is too large
Load Diff
29
rtl/system.v
29
rtl/system.v
@@ -177,7 +177,25 @@ always @(posedge clk_24) begin
|
||||
if(system_menu_cs && !cpu_wr_n) menu_trigger <= 1'b0;
|
||||
end
|
||||
|
||||
reg [25:0] frame_timer;
|
||||
reg vblank_last;
|
||||
always @(posedge clk_24) begin
|
||||
vblank_last <= VGA_VB;
|
||||
if(!VGA_VB && vblank_last)
|
||||
begin
|
||||
//$display("VB ended - %d", frame_timer);
|
||||
frame_timer <= 26'b0;
|
||||
end
|
||||
else
|
||||
if(VGA_VB && !vblank_last)
|
||||
begin
|
||||
//$display("VB started - %d", frame_timer);
|
||||
frame_timer <= 26'b0;
|
||||
end
|
||||
else
|
||||
begin
|
||||
frame_timer <= frame_timer + 26'b1;
|
||||
end
|
||||
//if(pgrom_cs) $display("%x pgrom o %x", cpu_addr, pgrom_data_out);
|
||||
//if(wkram_cs) $display("%x wkram i %x o %x w %b", cpu_addr, cpu_dout, wkram_data_out, wkram_wr);
|
||||
//if(chram_cs) $display("%x chram i %x o %x w %b", cpu_addr, cpu_dout, chram_data_out, chram_wr);
|
||||
@@ -191,13 +209,14 @@ always @(posedge clk_24) begin
|
||||
// if(starfield1_cs) $display("starfield1 %b %b", cpu_addr, cpu_dout);
|
||||
// if(starfield2_cs) $display("starfield2 %b %b", cpu_addr, cpu_dout);
|
||||
// if(starfield3_cs) $display("starfield3 %b %b", cpu_addr, cpu_dout);
|
||||
if(timer_cs) $display("timer: %b %x %x", timer_cs, cpu_addr, cpu_dout);
|
||||
//if(!cpu_wr_n) $display("cpu_write %x %b",cpu_addr, cpu_dout);
|
||||
//if(spritecollisionram_cs && !cpu_wr_n) $display("spritecollisionram %b %b %b", cpu_wr_n, cpu_addr, cpu_dout);
|
||||
//if(spriteram_cs && !cpu_wr_n) $display("spriteram_cs %x %b", cpu_addr[SPRITE_RAM_WIDTH-1:0], cpu_dout);
|
||||
//if(sound_cs && !cpu_wr_n) $display("sound_cs %b %b", cpu_addr, cpu_dout);
|
||||
//if(music_cs && !cpu_wr_n) $display("music_cs %b %b", cpu_addr, cpu_dout);
|
||||
//if(tilemapcontrol_cs) $display("tilemapcontrol_cs addr=%x dout=%x din=%x wr=%b", cpu_addr, cpu_dout, tilemapcontrol_data_out, cpu_wr_n);
|
||||
//if(tilemapram_cs && !cpu_wr_n) $display("tilemapram_cs addr=%x dout=%x", cpu_addr, cpu_dout);
|
||||
//if(timer_cs) $display("timer_cs wr=%b timer=%d frame_time=%d hcnt=%d vcnt=%d", ~cpu_wr_n, timer, frame_timer, hcnt, vcnt);
|
||||
end
|
||||
|
||||
// ROM data available to CPU
|
||||
@@ -438,11 +457,9 @@ localparam SD_WAIT = 0;
|
||||
localparam SD_CLEAR_BEGIN = 1;
|
||||
localparam SD_CLEAR = 2;
|
||||
reg [2:0] sd_state;
|
||||
reg vblank_last;
|
||||
reg [15:0] vblank_start;
|
||||
always @(posedge clk_24)
|
||||
begin
|
||||
vblank_last <= VGA_VB;
|
||||
case(sd_state)
|
||||
SD_WAIT:
|
||||
begin
|
||||
@@ -577,9 +594,15 @@ assign VGA_G = spr_a ? spr_g : charmap_a ? charmap_g : sf_on ? sf_star_colour :
|
||||
assign VGA_B = spritedebugram_data_out_a > 8'b0 ? spritedebugram_data_out_a : spr_a ? spr_b : charmap_a ? charmap_b : sf_on ? sf_star_colour : 8'b0;
|
||||
`endif
|
||||
`ifndef DEBUG_SPRITE_COLLISION
|
||||
`ifdef SPRITE_LAYER_HIGH
|
||||
assign VGA_R = spr_a ? spr_r : charmap_a ? charmap_r : tilemap_a ? tilemap_r : sf_on ? sf_star_colour : 8'b0;
|
||||
assign VGA_G = spr_a ? spr_g : charmap_a ? charmap_g : tilemap_a ? tilemap_g : sf_on ? sf_star_colour : 8'b0;
|
||||
assign VGA_B = spr_a ? spr_b : charmap_a ? charmap_b : tilemap_a ? tilemap_b : sf_on ? sf_star_colour : 8'b0;
|
||||
`else
|
||||
assign VGA_R = charmap_a ? charmap_r : spr_a ? spr_r : tilemap_a ? tilemap_r : sf_on ? sf_star_colour : 8'b0;
|
||||
assign VGA_G = charmap_a ? charmap_g : spr_a ? spr_g : tilemap_a ? tilemap_g : sf_on ? sf_star_colour : 8'b0;
|
||||
assign VGA_B = charmap_a ? charmap_b : spr_a ? spr_b : tilemap_a ? tilemap_b : sf_on ? sf_star_colour : 8'b0;
|
||||
`endif
|
||||
`endif
|
||||
|
||||
// Music player
|
||||
|
||||
@@ -335,6 +335,7 @@ void handle_codes()
|
||||
{
|
||||
pushhistory(6);
|
||||
}
|
||||
|
||||
// Check for SNEK code
|
||||
if (history[0] == 1 && history[1] == 1 && history[2] == 2 && history[3] == 2 && history[4] == 3 && history[5] == 4 && history[6] == 5)
|
||||
{
|
||||
@@ -729,6 +730,7 @@ void btntest_select()
|
||||
{
|
||||
if (HBLANK_RISING)
|
||||
{
|
||||
|
||||
// If any of 1st 8 buttons is pressed
|
||||
if (joystick[0] != 0)
|
||||
{
|
||||
|
||||
396
src/inputtest/rom.asm
Normal file
396
src/inputtest/rom.asm
Normal file
@@ -0,0 +1,396 @@
|
||||
;--------------------------------------------------------
|
||||
; File Created by SDCC : free open source ANSI-C Compiler
|
||||
; Version 4.0.0 #11528 (Linux)
|
||||
;--------------------------------------------------------
|
||||
.module os
|
||||
.optsdcc -mz80
|
||||
|
||||
;--------------------------------------------------------
|
||||
; Public variables in this module
|
||||
;--------------------------------------------------------
|
||||
.globl _main
|
||||
.globl _app_main
|
||||
.globl _app_credits
|
||||
.globl _fadein
|
||||
.globl _fadeout
|
||||
.globl _snek_attract
|
||||
.globl _snek_gameplay
|
||||
.globl _start_snek_gameplay
|
||||
.globl _start_snek_attract
|
||||
.globl _app_zorblaxx
|
||||
.globl _menu
|
||||
.globl _start_menu
|
||||
.globl _btntest
|
||||
.globl _inputtester_advanced
|
||||
.globl _inputtester_analog
|
||||
.globl _inputtester_digital
|
||||
.globl _start_btntest
|
||||
.globl _start_inputtester_advanced
|
||||
.globl _start_inputtester_analog
|
||||
.globl _start_inputtester_digital
|
||||
.globl _loader
|
||||
.globl _musicram
|
||||
.globl _sndram
|
||||
.globl _tilemapram
|
||||
.globl _tilemapctl
|
||||
.globl _spritecollisionram
|
||||
.globl _spriteram
|
||||
.globl _bgcolram
|
||||
.globl _fgcolram
|
||||
.globl _chram
|
||||
.globl _system_menu
|
||||
.globl _system_pause
|
||||
.globl _starfield3
|
||||
.globl _starfield2
|
||||
.globl _starfield1
|
||||
.globl _timer
|
||||
.globl _timestamp
|
||||
.globl _ps2_mouse
|
||||
.globl _ps2_key
|
||||
.globl _spinner
|
||||
.globl _paddle
|
||||
.globl _analog_r
|
||||
.globl _analog_l
|
||||
.globl _joystick
|
||||
.globl _input0
|
||||
;--------------------------------------------------------
|
||||
; special function registers
|
||||
;--------------------------------------------------------
|
||||
;--------------------------------------------------------
|
||||
; ram data
|
||||
;--------------------------------------------------------
|
||||
.area _DATA
|
||||
_input0 = 0x8000
|
||||
_joystick = 0x8100
|
||||
_analog_l = 0x8200
|
||||
_analog_r = 0x8300
|
||||
_paddle = 0x8400
|
||||
_spinner = 0x8500
|
||||
_ps2_key = 0x8600
|
||||
_ps2_mouse = 0x8700
|
||||
_timestamp = 0x8800
|
||||
_timer = 0x8900
|
||||
_starfield1 = 0x8a00
|
||||
_starfield2 = 0x8a10
|
||||
_starfield3 = 0x8a20
|
||||
_system_pause = 0x8a30
|
||||
_system_menu = 0x8a31
|
||||
_chram = 0x9800
|
||||
_fgcolram = 0xa000
|
||||
_bgcolram = 0xa800
|
||||
_spriteram = 0xb000
|
||||
_spritecollisionram = 0xb400
|
||||
_tilemapctl = 0x8c00
|
||||
_tilemapram = 0x8c10
|
||||
_sndram = 0x8b00
|
||||
_musicram = 0x8b10
|
||||
;--------------------------------------------------------
|
||||
; ram data
|
||||
;--------------------------------------------------------
|
||||
.area _INITIALIZED
|
||||
;--------------------------------------------------------
|
||||
; absolute external ram data
|
||||
;--------------------------------------------------------
|
||||
.area _DABS (ABS)
|
||||
;--------------------------------------------------------
|
||||
; global & static initialisations
|
||||
;--------------------------------------------------------
|
||||
.area _HOME
|
||||
.area _GSINIT
|
||||
.area _GSFINAL
|
||||
.area _GSINIT
|
||||
;--------------------------------------------------------
|
||||
; Home
|
||||
;--------------------------------------------------------
|
||||
.area _HOME
|
||||
.area _HOME
|
||||
;--------------------------------------------------------
|
||||
; code
|
||||
;--------------------------------------------------------
|
||||
.area _CODE
|
||||
;os.c:38: void app_main()
|
||||
; ---------------------------------
|
||||
; Function app_main
|
||||
; ---------------------------------
|
||||
_app_main::
|
||||
;os.c:40: chram_size = chram_cols * chram_rows;
|
||||
ld hl,#_chram_rows + 0
|
||||
ld e, (hl)
|
||||
ld hl,#_chram_cols + 0
|
||||
ld h, (hl)
|
||||
ld l, #0x00
|
||||
ld d, l
|
||||
ld b, #0x08
|
||||
00221$:
|
||||
add hl, hl
|
||||
jr NC,00222$
|
||||
add hl, de
|
||||
00222$:
|
||||
djnz 00221$
|
||||
ld (_chram_size), hl
|
||||
;os.c:41: while (1)
|
||||
00122$:
|
||||
;os.c:43: hsync = input0 & 0x80;
|
||||
ld iy, #_input0
|
||||
ld a, 0 (iy)
|
||||
rlc a
|
||||
and a, #0x01
|
||||
ld (_hsync+0), a
|
||||
;os.c:44: vsync = input0 & 0x40;
|
||||
ld a, 0 (iy)
|
||||
and a, #0x40
|
||||
ld c,a
|
||||
or a,#0x00
|
||||
add a, #0xff
|
||||
ld a, #0x00
|
||||
rla
|
||||
ld (_vsync+0), a
|
||||
;os.c:45: hblank = input0 & 0x20;
|
||||
ld a, 0 (iy)
|
||||
and a, #0x20
|
||||
ld c, a
|
||||
ld b, #0x00
|
||||
ld a, b
|
||||
or a, c
|
||||
add a, #0xff
|
||||
ld a, #0x00
|
||||
rla
|
||||
ld (_hblank+0), a
|
||||
;os.c:46: vblank = CHECK_BIT(input0, INPUT_VBLANK);
|
||||
ld a, 0 (iy)
|
||||
and a, #0x10
|
||||
ld c, a
|
||||
xor a, a
|
||||
cp a, c
|
||||
rla
|
||||
ld (_vblank+0), a
|
||||
;os.c:47: switch (state)
|
||||
ld iy, #_state
|
||||
ld a, 0 (iy)
|
||||
dec a
|
||||
jp Z,00101$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x02
|
||||
jp Z,00102$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x03
|
||||
jp Z,00103$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x04
|
||||
jp Z,00104$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x05
|
||||
jp Z,00105$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x06
|
||||
jp Z,00106$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x07
|
||||
jr Z,00107$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x08
|
||||
jr Z,00108$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x09
|
||||
jr Z,00109$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x0a
|
||||
jr Z,00110$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x14
|
||||
jr Z,00111$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x16
|
||||
jr Z,00112$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x1e
|
||||
jr Z,00113$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x1f
|
||||
jr Z,00114$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x28
|
||||
jr Z,00116$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x29
|
||||
jr Z,00117$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x2a
|
||||
jr Z,00115$
|
||||
ld a, 0 (iy)
|
||||
sub a, #0x2b
|
||||
jr Z,00118$
|
||||
jp 00119$
|
||||
;os.c:49: case STATE_START_INPUTTESTER:
|
||||
00101$:
|
||||
;os.c:50: start_inputtester_digital();
|
||||
call _start_inputtester_digital
|
||||
;os.c:51: break;
|
||||
jp 00120$
|
||||
;os.c:52: case STATE_INPUTTESTER:
|
||||
00102$:
|
||||
;os.c:53: inputtester_digital();
|
||||
call _inputtester_digital
|
||||
;os.c:54: break;
|
||||
jp 00120$
|
||||
;os.c:56: case STATE_START_INPUTTESTERADVANCED:
|
||||
00103$:
|
||||
;os.c:57: start_inputtester_advanced();
|
||||
call _start_inputtester_advanced
|
||||
;os.c:58: break;
|
||||
jp 00120$
|
||||
;os.c:59: case STATE_INPUTTESTERADVANCED:
|
||||
00104$:
|
||||
;os.c:60: inputtester_advanced();
|
||||
call _inputtester_advanced
|
||||
;os.c:61: break;
|
||||
jr 00120$
|
||||
;os.c:63: case STATE_START_INPUTTESTERANALOG:
|
||||
00105$:
|
||||
;os.c:64: start_inputtester_analog();
|
||||
call _start_inputtester_analog
|
||||
;os.c:65: break;
|
||||
jr 00120$
|
||||
;os.c:66: case STATE_INPUTTESTERANALOG:
|
||||
00106$:
|
||||
;os.c:67: inputtester_analog();
|
||||
call _inputtester_analog
|
||||
;os.c:68: break;
|
||||
jr 00120$
|
||||
;os.c:70: case STATE_START_BTNTEST:
|
||||
00107$:
|
||||
;os.c:71: start_btntest();
|
||||
call _start_btntest
|
||||
;os.c:72: break;
|
||||
jr 00120$
|
||||
;os.c:73: case STATE_BTNTEST:
|
||||
00108$:
|
||||
;os.c:74: btntest();
|
||||
call _btntest
|
||||
;os.c:75: break;
|
||||
jr 00120$
|
||||
;os.c:77: case STATE_START_MENU:
|
||||
00109$:
|
||||
;os.c:78: start_menu();
|
||||
call _start_menu
|
||||
;os.c:79: break;
|
||||
jr 00120$
|
||||
;os.c:80: case STATE_MENU:
|
||||
00110$:
|
||||
;os.c:81: menu();
|
||||
call _menu
|
||||
;os.c:82: break;
|
||||
jr 00120$
|
||||
;os.c:84: case STATE_FADEOUT:
|
||||
00111$:
|
||||
;os.c:85: fadeout();
|
||||
call _fadeout
|
||||
;os.c:86: break;
|
||||
jr 00120$
|
||||
;os.c:87: case STATE_FADEIN:
|
||||
00112$:
|
||||
;os.c:88: fadein();
|
||||
call _fadein
|
||||
;os.c:89: break;
|
||||
jr 00120$
|
||||
;os.c:91: case STATE_START_ATTRACT:
|
||||
00113$:
|
||||
;os.c:92: state = 0;
|
||||
ld hl,#_state + 0
|
||||
ld (hl), #0x00
|
||||
;os.c:93: loader("SNEK.AZN");
|
||||
ld hl, #___str_0
|
||||
push hl
|
||||
call _loader
|
||||
pop af
|
||||
;os.c:94: start_snek_attract();
|
||||
call _start_snek_attract
|
||||
;os.c:95: break;
|
||||
jr 00120$
|
||||
;os.c:96: case STATE_ATTRACT:
|
||||
00114$:
|
||||
;os.c:97: snek_attract();
|
||||
call _snek_attract
|
||||
;os.c:98: break;
|
||||
jr 00120$
|
||||
;os.c:99: case STATE_START_CREDITS:
|
||||
00115$:
|
||||
;os.c:100: app_credits();
|
||||
call _app_credits
|
||||
;os.c:101: break;
|
||||
jr 00120$
|
||||
;os.c:103: case STATE_START_GAME_SNEK:
|
||||
00116$:
|
||||
;os.c:104: start_snek_gameplay();
|
||||
call _start_snek_gameplay
|
||||
;os.c:105: break;
|
||||
jr 00120$
|
||||
;os.c:106: case STATE_GAME_SNEK:
|
||||
00117$:
|
||||
;os.c:107: snek_gameplay();
|
||||
call _snek_gameplay
|
||||
;os.c:108: break;
|
||||
jr 00120$
|
||||
;os.c:109: case STATE_START_ZORBLAXX:
|
||||
00118$:
|
||||
;os.c:110: state = 0;
|
||||
ld hl,#_state + 0
|
||||
ld (hl), #0x00
|
||||
;os.c:111: loader("ZORBLAXX.AZN");
|
||||
ld hl, #___str_1
|
||||
push hl
|
||||
call _loader
|
||||
pop af
|
||||
;os.c:112: app_zorblaxx();
|
||||
call _app_zorblaxx
|
||||
;os.c:113: break;
|
||||
jr 00120$
|
||||
;os.c:115: default:
|
||||
00119$:
|
||||
;os.c:119: loader("INPUTTESTER.AZN");
|
||||
ld hl, #___str_2
|
||||
push hl
|
||||
call _loader
|
||||
pop af
|
||||
;os.c:120: start_inputtester_digital();
|
||||
call _start_inputtester_digital
|
||||
;os.c:125: }
|
||||
00120$:
|
||||
;os.c:127: hsync_last = hsync;
|
||||
ld a,(#_hsync + 0)
|
||||
ld iy, #_hsync_last
|
||||
ld 0 (iy), a
|
||||
;os.c:128: vsync_last = vsync;
|
||||
ld a,(#_vsync + 0)
|
||||
ld iy, #_vsync_last
|
||||
ld 0 (iy), a
|
||||
;os.c:129: hblank_last = hblank;
|
||||
ld a,(#_hblank + 0)
|
||||
ld iy, #_hblank_last
|
||||
ld 0 (iy), a
|
||||
;os.c:130: vblank_last = vblank;
|
||||
ld a,(#_vblank + 0)
|
||||
ld iy, #_vblank_last
|
||||
ld 0 (iy), a
|
||||
;os.c:132: }
|
||||
jp 00122$
|
||||
___str_0:
|
||||
.ascii "SNEK.AZN"
|
||||
.db 0x00
|
||||
___str_1:
|
||||
.ascii "ZORBLAXX.AZN"
|
||||
.db 0x00
|
||||
___str_2:
|
||||
.ascii "INPUTTESTER.AZN"
|
||||
.db 0x00
|
||||
;os.c:135: void main()
|
||||
; ---------------------------------
|
||||
; Function main
|
||||
; ---------------------------------
|
||||
_main::
|
||||
;os.c:137: app_main();
|
||||
;os.c:138: }
|
||||
jp _app_main
|
||||
.area _CODE
|
||||
.area _INITIALIZER
|
||||
.area _CABS (ABS)
|
||||
@@ -164,7 +164,7 @@ void intro_loop()
|
||||
// Setup starfield layer speeds
|
||||
enable_starfield();
|
||||
set_starfield_speed_x(0);
|
||||
set_starfield_speed_y(-0.5f);
|
||||
set_starfield_speed_y(-64);
|
||||
|
||||
// Setup title sprites
|
||||
unsigned char title_sprite = 16;
|
||||
@@ -329,7 +329,7 @@ void game_loop()
|
||||
if (scroll_speed != scroll_speed_last)
|
||||
{
|
||||
scroll_speed_last = scroll_speed;
|
||||
set_starfield_speed_y(scroll_speed * -0.02f);
|
||||
set_starfield_speed_y(-scroll_speed * 4);
|
||||
}
|
||||
|
||||
// Track player button press
|
||||
|
||||
@@ -30,6 +30,7 @@ $(OUTPUT).bin: build/$(OUTPUT).ihx
|
||||
srec_cat $< -intel -o $@ -binary
|
||||
rm build/$(OUTPUT).ihx
|
||||
mv $(OUTPUT).bin bin/$(OUTPUT).bin
|
||||
mv build/$(OUTPUT).asm $(OUTPUT).asm
|
||||
rm -f build/$(OUTPUT).*
|
||||
|
||||
clean:
|
||||
|
||||
@@ -33,10 +33,10 @@ void disable_starfield()
|
||||
starfield3[0] = 0;
|
||||
}
|
||||
|
||||
void set_starfield_speed_x(float speed)
|
||||
void set_starfield_speed_x(signed short speed)
|
||||
{
|
||||
unsigned char dir = (speed < 0) << 7;
|
||||
unsigned short mag = (unsigned short)abs(speed * 256);
|
||||
unsigned short mag = (unsigned short)abs(speed);
|
||||
starfield3[1] = dir | mag >> 8;
|
||||
starfield3[2] = (unsigned char)mag;
|
||||
mag = mag << 1;
|
||||
@@ -47,10 +47,10 @@ void set_starfield_speed_x(float speed)
|
||||
starfield1[2] = (unsigned char)mag;
|
||||
}
|
||||
|
||||
void set_starfield_speed_y(float speed)
|
||||
void set_starfield_speed_y(signed short speed)
|
||||
{
|
||||
unsigned char dir = (speed < 0) << 7;
|
||||
unsigned short mag = (unsigned short)abs(speed * 256);
|
||||
unsigned short mag = (unsigned short)abs(speed);
|
||||
starfield3[3] = dir | mag >> 8;
|
||||
starfield3[4] = (unsigned char)mag;
|
||||
mag = mag << 1;
|
||||
|
||||
@@ -25,8 +25,8 @@ extern void enable_starfield();
|
||||
|
||||
extern void disable_starfield();
|
||||
|
||||
extern void set_starfield_speed_x(float speed);
|
||||
extern void set_starfield_speed_x(signed short speed);
|
||||
|
||||
extern void set_starfield_speed_y(float speed);
|
||||
extern void set_starfield_speed_y(signed short speed);
|
||||
|
||||
#endif
|
||||
@@ -584,7 +584,7 @@ void SimInput::Read() {
|
||||
if (m_keyboardState_last[k] != m_keyboardState[k]) {
|
||||
unsigned int ext = ev2ps2[k] & EXT;
|
||||
//fprintf(stderr, "ev2ps2[k] = %x ext = %x temp = %x\n", ev2ps2[k], ext, EXT | 0x6b);
|
||||
SimInput_PS2KeyEvent evt = SimInput_PS2KeyEvent(k, m_keyboardState[k], ext);
|
||||
SimInput_PS2KeyEvent evt = SimInput_PS2KeyEvent(k, m_keyboardState[k], ext, ev2ps2[k]);
|
||||
keyEvents.push(evt);
|
||||
}
|
||||
m_keyboardState_last[k] = m_keyboardState[k];
|
||||
@@ -631,10 +631,11 @@ void SimInput::BeforeEval()
|
||||
if (keyEvents.size() > 0) {
|
||||
// Get chunk from queue
|
||||
SimInput_PS2KeyEvent evt = keyEvents.front();
|
||||
//fprintf(stderr, "evt = %x ext = %d \n", evt.code, evt.extended);
|
||||
keyEvents.pop();
|
||||
|
||||
ps2_key_temp = ev2ps2[evt.code];
|
||||
//ps2_key_temp = ev2ps2[evt.code];
|
||||
ps2_key_temp = evt.mapped;
|
||||
/*fprintf(stderr, "evt = %x ext = %d key = %d \n", evt.code, evt.extended, evt.mapped);*/
|
||||
|
||||
if (evt.extended) { ps2_key_temp |= (1UL << 8); }
|
||||
if (evt.pressed) { ps2_key_temp |= (1UL << 9); }
|
||||
|
||||
@@ -15,11 +15,13 @@ public:
|
||||
char code;
|
||||
bool pressed;
|
||||
bool extended;
|
||||
unsigned int mapped;
|
||||
|
||||
SimInput_PS2KeyEvent(char code, bool pressed, bool extended) {
|
||||
SimInput_PS2KeyEvent(char code, bool pressed, bool extended, unsigned int mapped) {
|
||||
this->code = code;
|
||||
this->pressed = pressed;
|
||||
this->extended = extended;
|
||||
this->mapped = mapped;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user