Browse Source

Begining to add support for SDL2

Yann Weber 5 years ago
parent
commit
2721947f10
3 changed files with 59 additions and 19 deletions
  1. 10
    2
      Makefile
  2. 9
    1
      sdl.asm
  3. 40
    16
      yaglitch.asm

+ 10
- 2
Makefile View File

@@ -5,13 +5,21 @@ NASM=nasm
5 5
 
6 6
 ifeq ($(DEBUG), 0)
7 7
 	ASFLAGS=-felf64
8
-	LDFLAGS=-s -melf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -lSDL
8
+	LDFLAGS=-s -melf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2
9 9
 	#LDFLAGS=-s -melf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -lSDL2
10 10
 else
11 11
 	ASFLAGS=-felf64 -g -F dwarf -l $(TARGET).lst
12 12
 	#LDFLAGS=-g -melf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -lSDL
13
-	LDFLAGS=-g -melf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -lSDL2
13
+	LDFLAGS=-g -melf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2
14 14
 endif
15
+ifeq ($(SDL), 2)
16
+	LDFLAGS += -lSDL2
17
+	ASFLAGS += -DSDL2=1
18
+else
19
+	LDFLAGS += -lSDL
20
+	ASFLAGS += -DSDL1=1
21
+endif
22
+
15 23
 
16 24
 OBJ=$(TARGET).o
17 25
 SRC=$(TARGET).asm

+ 9
- 1
sdl.asm View File

@@ -8,8 +8,16 @@ Extern SDL_PauseAudio
8 8
 Extern SDL_WaitEvent
9 9
 Extern SDL_GetError
10 10
 
11
+;Extern SDL_QUIT
12
+;Extern SDL_AUDIODEVICEADDED
11 13
 
12
-%define SDL_QuitEvent 0x0C
14
+%ifdef SDL1
15
+	%define SDL_QUIT 0x0C
16
+%endif
17
+%ifdef SDL2
18
+	%define SDL_QUIT 0x100
19
+	%define SDL_AUDIODEVICEADDED 0x1100
20
+%endif
13 21
 
14 22
 %define SDL_SWSURFACE 0
15 23
 

+ 40
- 16
yaglitch.asm View File

@@ -89,7 +89,12 @@ section .bss
89 89
 	; audiospec returned from SDL
90 90
 	audiospec_recv: resb 32
91 91
 	; Event receveid from SDL
92
-	event: resb 24
92
+	%ifdef SDL1
93
+		event: resb 24
94
+	%endif
95
+	%ifdef SDL 2
96
+		event: resb 56
97
+	%endif
93 98
 
94 99
 section .text
95 100
 global _start
@@ -344,7 +349,7 @@ sdl_init:
344 349
 	mov rdi, audiospec_wanted
345 350
 	mov rsi, audiospec_recv
346 351
 	call SDL_OpenAudio
347
-
352
+dbginit:
348 353
 	; 256*256 window
349 354
 	;mov rdi, 256
350 355
 	;mov rsi, 255
@@ -353,10 +358,12 @@ sdl_init:
353 358
 	;xor rcx, rcx
354 359
 	;call SDL_SetVideoMode
355 360
 
356
-audio_start:
357
-	;start audio
358
-	xor rdi, rdi
359
-	call SDL_PauseAudio
361
+%ifdef SDL1
362
+	audio_start:
363
+		;start audio
364
+		xor rdi, rdi
365
+		call SDL_PauseAudio
366
+%endif
360 367
 
361 368
 loop_event:
362 369
 	xor rdi, rdi
@@ -366,19 +373,35 @@ loop_event:
366 373
 	cmp rax, 0
367 374
 	je sdl_error ; error fetching event...
368 375
 	xor rdi, rdi
369
-	mov di, [event]
370
-
371
-dbg:
372
-	;mov rsi, 1
373
-	;push rdi
374
-	;call print_hnum
375
-	;pop rdi
376
-
377
-	test di, SDL_QuitEvent
378
-	jnz exit
376
+%ifdef SDL1
377
+		mov di, [event]
378
+
379
+	dbg:
380
+		;mov rsi, 1
381
+		;push rdi
382
+		;call print_hnum
383
+		;pop rdi
384
+
385
+		test di, SDL_QUIT
386
+		jnz exit
387
+%endif
388
+%ifdef SDL2
389
+		mov edi, [event]
390
+		cmp edi, SDL_AUDIODEVICEADDED
391
+		je sdl2_audiostart
392
+		cmp edi, SDL_QUIT
393
+		je exit
394
+%endif
379 395
 
380 396
 	jmp loop_event
381 397
 
398
+%ifdef SDL2
399
+	sdl2_audiostart:
400
+		xor rdi, rdi
401
+		call SDL_PauseAudio
402
+		jmp loop_event
403
+%endif
404
+
382 405
 sdl_error:
383 406
 	; display error & exit
384 407
 	call SDL_GetError
@@ -596,6 +619,7 @@ audio_cllbck:
596 619
 		pop rcx
597 620
 		inc dword [t]
598 621
 		loop .loop
622
+dbg0:
599 623
 	ret
600 624
 
601 625
 run_glitch:

Loading…
Cancel
Save