NTSC filter option tab filled, made tab feature more flexible, fixed FPS display for values >99 and made it aware of slowmo. Some cleanup.

This commit is contained in:
grinvader
2006-03-28 16:39:42 +00:00
parent 9c502baa1c
commit 8af1ea7067
6 changed files with 596 additions and 1075 deletions

View File

@@ -352,4 +352,11 @@ NEWSYM MovieVideoMode, db 4
NEWSYM MovieAudio, db 1
NEWSYM MovieVideoAudio, db 0
NEWSYM MovieAudioCompress, db 0
NEWSYM NTSCFilter, db 0
NEWSYM NTSCFilter, db 0
NEWSYM NTSCBlend, db 0
NEWSYM NTSCHue, db 0
NEWSYM NTSCSat, db 0
NEWSYM NTSCCont, db 0
NEWSYM NTSCBright, db 0
NEWSYM NTSCSharp, db 0
NEWSYM NTSCWarp, db 0

View File

@@ -105,6 +105,7 @@ EXTSYM MovieRecord,MovieInsertChapter,MovieSeekAhead,MovieSeekBehind
EXTSYM ResetDuringMovie,MovieDumpRaw,AutoLoadCht
EXTSYM GUIwinposx,GUIwinposy,maxskip,GUIEffect,hqFilter,En2xSaI,NTSCFilter
EXTSYM NTSCBlend,NTSCHue,NTSCSat,NTSCCont,NTSCBright,NTSCSharp,NTSCWarp
EXTSYM LowPassFilterType,MovieStartMethod,MovieDisplayFrame,resetposn
EXTSYM SnapPath,SPCPath,BSXPath,SGPath,STPath,GNextPath,FEOEZPath,SJNSPath
EXTSYM MDHPath,SPL4Path,CheatSrcByteSize,prevloadfnamel
@@ -2910,7 +2911,7 @@ GUISetPal:
inc dx
.loopf
add bh,2
add ah,1
inc ah
mov al,63
out dx,al
mov al,bh
@@ -3324,7 +3325,7 @@ GUISetPal16:
mov esi,128
.loopf
add bh,2
add ah,1
inc ah
mov edx,1Fh << 6
or dl,bh
shl edx,5
@@ -3742,14 +3743,6 @@ GUIconvpal:
SECTION .data
GUIMousePtr:
db 50+88,47+88,45+88,43+88,40+88,0 ,0 ,0
db 53+88,52+88,46+88,42+88,0 ,0 ,0 ,0
db 55+88,54+88,54+88,44+88,0 ,0 ,0 ,0
db 57+88,57+88,56+88,52+88,45+88,0 ,0 ,0
db 59+88,0 ,0 ,55+88,50+88,45+88,0 ,0
db 0 ,0 ,0 ,0 ,55+88,50+88,45+88,0
db 0 ,0 ,0 ,0 ,0 ,55+88,50+88,47+88
db 0 ,0 ,0 ,0 ,0 ,0 ,52+88,0
db 50,47,45,43,40,0 ,0 ,0
db 53,52,46,42,0 ,0 ,0 ,0
db 55,54,54,44,0 ,0 ,0 ,0
@@ -3760,707 +3753,148 @@ GUIMousePtr:
db 0 ,0 ,0 ,0 ,0 ,0 ,52,0
NEWSYM GUIFontData
db 0,0,0,0,0; empty space
db 01110000b
db 10011000b
db 10101000b
db 11001000b
db 01110000b; 0
db 00100000b
db 01100000b
db 00100000b
db 00100000b
db 01110000b; 1
db 01110000b
db 10001000b
db 00110000b
db 01000000b
db 11111000b; 2
db 01110000b
db 10001000b
db 00110000b
db 10001000b
db 01110000b; 3
db 01010000b
db 10010000b
db 11111000b
db 00010000b
db 00010000b; 4
db 11111000b
db 10000000b
db 11110000b
db 00001000b
db 11110000b; 5
db 01110000b
db 10000000b
db 11110000b
db 10001000b
db 01110000b; 6
db 11111000b
db 00001000b
db 00010000b
db 00010000b
db 00010000b; 7
db 01110000b
db 10001000b
db 01110000b
db 10001000b
db 01110000b; 8
db 01110000b
db 10001000b
db 01111000b
db 00001000b
db 01110000b; 9
db 01110000b
db 10001000b
db 11111000b
db 10001000b
db 10001000b; A
db 11110000b
db 10001000b
db 11110000b
db 10001000b
db 11110000b; B
db 01110000b
db 10001000b
db 10000000b
db 10001000b
db 01110000b; C
db 11110000b
db 10001000b
db 10001000b
db 10001000b
db 11110000b; D
db 11111000b
db 10000000b
db 11110000b
db 10000000b
db 11111000b; E
db 11111000b
db 10000000b
db 11110000b
db 10000000b
db 10000000b; F
db 01111000b
db 10000000b
db 10011000b
db 10001000b
db 01110000b; G
db 10001000b
db 10001000b
db 11111000b
db 10001000b
db 10001000b; H
db 11111000b
db 00100000b
db 00100000b
db 00100000b
db 11111000b; I
db 01111000b
db 00010000b
db 00010000b
db 10010000b
db 01100000b; J
db 10010000b
db 10100000b
db 11100000b
db 10010000b
db 10001000b; K
db 10000000b
db 10000000b
db 10000000b
db 10000000b
db 11111000b; L
db 11011000b
db 10101000b
db 10101000b
db 10101000b
db 10001000b; M
db 11001000b
db 10101000b
db 10101000b
db 10101000b
db 10011000b; N
db 01110000b
db 10001000b
db 10001000b
db 10001000b
db 01110000b; O
db 11110000b
db 10001000b
db 11110000b
db 10000000b
db 10000000b; P
db 01110000b
db 10001000b
db 10101000b
db 10010000b
db 01101000b; Q
db 11110000b
db 10001000b
db 11110000b
db 10010000b
db 10001000b; R
db 01111000b
db 10000000b
db 01110000b
db 00001000b
db 11110000b; S
db 11111000b
db 00100000b
db 00100000b
db 00100000b
db 00100000b; T
db 10001000b
db 10001000b
db 10001000b
db 10001000b
db 01110000b; U
db 10001000b
db 10001000b
db 01010000b
db 01010000b
db 00100000b; V
db 10001000b
db 10101000b
db 10101000b
db 10101000b
db 01010000b; W
db 10001000b
db 01010000b
db 00100000b
db 01010000b
db 10001000b; X
db 10001000b
db 01010000b
db 00100000b
db 00100000b
db 00100000b; Y
db 11111000b
db 00010000b
db 00100000b
db 01000000b
db 11111000b; Z
db 00000000b
db 00000000b
db 11111000b
db 00000000b
db 00000000b; -
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 11111000b; _
db 01101000b
db 10010000b
db 00000000b
db 00000000b
db 00000000b; ~
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00100000b; .
db 00001000b
db 00010000b
db 00100000b
db 01000000b
db 10000000b; /
db 00010000b
db 00100000b
db 01000000b
db 00100000b
db 00010000b; <
db 01000000b
db 00100000b
db 00010000b
db 00100000b
db 01000000b; >
db 01110000b
db 01000000b
db 01000000b
db 01000000b
db 01110000b; [
db 01110000b
db 00010000b
db 00010000b
db 00010000b
db 01110000b; ]
db 00000000b
db 00100000b
db 00000000b
db 00100000b
db 00000000b; :
db 01100000b
db 10011000b
db 01110000b
db 10011000b
db 01101000b; &
db 00100000b
db 00100000b
db 10101000b
db 01110000b
db 00100000b; arrow
db 01010000b
db 11111000b
db 01010000b
db 11111000b
db 01010000b; #
db 00000000b
db 11111000b
db 00000000b
db 11111000b
db 00000000b; =
db 01001000b
db 10010000b
db 00000000b
db 00000000b
db 00000000b; "
db 10000000b
db 01000000b
db 00100000b
db 00010000b
db 00001000b; \ (Screw you nassm)
db 10101000b
db 01110000b
db 11111000b
db 01110000b
db 10101000b; *
db 01110000b
db 10001000b
db 00110000b
db 00000000b
db 00100000b; ?
db 10001000b
db 00010000b
db 00100000b
db 01000000b
db 10001000b; %
db 00100000b
db 00100000b
db 11111000b
db 00100000b
db 00100000b; +
db 00000000b
db 00000000b
db 00000000b
db 00100000b
db 01000000b; ,
db 00110000b
db 01000000b
db 01000000b
db 01000000b
db 00110000b; (
db 01100000b
db 00010000b
db 00010000b
db 00010000b
db 01100000b; )
db 01110000b
db 10011000b
db 10111000b
db 10000000b
db 01110000b; @
db 00100000b
db 01000000b
db 00000000b
db 00000000b
db 00000000b; '
db 00100000b
db 00100000b
db 00100000b
db 00000000b
db 00100000b; !
db 01111000b
db 10100000b
db 01110000b
db 00101000b
db 11110000b; $
db 00000000b
db 00100000b
db 00000000b
db 00100000b
db 01000000b; ;
db 01000000b
db 00100000b
db 00000000b
db 00000000b
db 00000000b; `
db 00100000b
db 01010000b
db 00000000b
db 00000000b
db 00000000b; ^
db 00110000b
db 01000000b
db 11000000b
db 01000000b
db 00110000b; {
db 01100000b
db 00010000b
db 00011000b
db 00010000b
db 01100000b; }
db 00100000b
db 00100000b
db 01110000b
db 01110000b
db 11111000b; Up
db 11111000b
db 01110000b
db 01110000b
db 00100000b
db 00100000b; Down
db 00001000b
db 00111000b
db 11111000b
db 00111000b
db 00001000b; Left
db 10000000b
db 11100000b
db 11111000b
db 11100000b
db 10000000b; Right
db 00100000b
db 01100000b
db 11111000b
db 01100000b
db 00100000b; Arrow Left
db 00111000b
db 00100000b
db 00110000b
db 00001000b
db 10110000b; .5
db 11111100b
db 10000100b
db 11111100b
db 00000000b
db 00000000b; Maximize
db 00000000b
db 11111100b
db 00000000b
db 00000000b
db 00000000b; Minimize
db 11111000b
db 10001000b
db 10001000b
db 10001000b
db 11111000b; Maximize (Linux)
db 00000000b
db 00000000b
db 00100000b
db 01010000b
db 00100000b; sjis halfwidth (shw) fullstop 0x4E
db 01110000b
db 01000000b
db 01000000b
db 01000000b
db 00000000b; shw left bracket 0x4F
db 00000000b
db 00010000b
db 00010000b
db 00010000b
db 01110000b; shw right bracket 0x50
db 00000000b
db 00000000b
db 00000000b
db 01000000b
db 00100000b; shw comma 0x51
db 00000000b
db 00100000b
db 01110000b
db 00100000b
db 00000000b; shw mid-dot 0x52
db 11111000b
db 00001000b
db 11110000b
db 00100000b
db 11000000b; shw wo 0x53
db 00000000b
db 11111000b
db 01010000b
db 01100000b
db 01000000b; shw mini a 0x54
db 00000000b
db 00010000b
db 00100000b
db 11100000b
db 00100000b; shw mini i 0x55
db 00000000b
db 00100000b
db 11111000b
db 10001000b
db 00110000b; shw mini u 0x56
db 00000000b
db 00000000b
db 11111000b
db 00100000b
db 11111000b; shw mini e 0x57
db 00000000b
db 00010000b
db 11111000b
db 00110000b
db 11010000b; shw mini o 0x58
db 00000000b
db 01000000b
db 11111000b
db 01010000b
db 01000000b; shw mini ya 0x59
db 00000000b
db 00000000b
db 11110000b
db 00010000b
db 11111000b; shw mini yu 0x5A
db 00000000b
db 11111000b
db 00001000b
db 01111000b
db 11111000b; shw mini yo 0x5B
db 00000000b
db 10101000b
db 10101000b
db 00010000b
db 01100000b; shw mini tsu 0x5C
db 00000000b
db 10000000b
db 01111000b
db 00000000b
db 00000000b; shw prolong 0x5D
db 11111000b
db 00101000b
db 00110000b
db 00100000b
db 11000000b; shw a 0x5E
db 00001000b
db 00110000b
db 11100000b
db 00100000b
db 00100000b; shw i 0x5F
db 00100000b
db 11111000b
db 10001000b
db 00010000b
db 01100000b; shw u 0x60
db 11111000b
db 00100000b
db 00100000b
db 00100000b
db 11111000b; shw e 0x61
db 00010000b
db 11111000b
db 00110000b
db 01010000b
db 10010000b; shw o 0x62
db 01000000b
db 11111000b
db 01001000b
db 01001000b
db 10011000b; shw ka 0x63
db 00100000b
db 11111000b
db 00100000b
db 11111000b
db 00100000b; shw ki 0x64
db 01000000b
db 01111000b
db 10001000b
db 00010000b
db 01100000b; shw ku 0x65
db 01000000b
db 01111000b
db 10010000b
db 00010000b
db 01100000b; shw ke 0x66 ^^
db 11111000b
db 00001000b
db 00001000b
db 00001000b
db 11111000b; shw ko 0x67
db 01010000b
db 11111000b
db 01010000b
db 00010000b
db 01100000b; shw sa 0x68
db 01000000b
db 10101000b
db 01001000b
db 00010000b
db 11100000b; shw shi 0x69
db 11111000b
db 00001000b
db 00010000b
db 00110000b
db 11001000b; shw su 0x6A
db 01000000b
db 11111000b
db 01010000b
db 01000000b
db 00111000b; shw se 0x6B
db 10001000b
db 01001000b
db 00001000b
db 00010000b
db 01100000b; shw so 0x6C
db 01000000b
db 01111000b
db 11001000b
db 00110000b
db 01100000b; shw ta 0x6D
db 11111000b
db 00100000b
db 11111000b
db 00100000b
db 01000000b; shw chi 0x6E
db 10101000b
db 10101000b
db 00001000b
db 00010000b
db 01100000b; shw tsu 0x6F
db 11111000b
db 00000000b
db 11111000b
db 00100000b
db 11000000b; shw te 0x70
db 01000000b
db 01000000b
db 01100000b
db 01010000b
db 01000000b; shw to 0x71
db 00100000b
db 11111000b
db 00100000b
db 00100000b
db 01000000b; shw na 0x72
db 11110000b
db 00000000b
db 00000000b
db 00000000b
db 11111000b; shw ni 0x73
db 11111000b
db 00001000b
db 00101000b
db 00010000b
db 011010000b; shw nu 0x74
db 00100000b
db 11111000b
db 00001000b
db 01110000b
db 10101000b; shw ne 0x75
db 00001000b
db 00001000b
db 00001000b
db 00010000b
db 01100000b; shw no 0x76
db 01010000b
db 01010000b
db 01010000b
db 10001000b
db 10001000b; shw ha 0x77
db 10000000b
db 10011000b
db 11100000b
db 10000000b
db 01111000b; shw hi 0x78
db 11111000b
db 00001000b
db 00001000b
db 00010000b
db 01100000b; shw hu 0x79
db 01000000b
db 10100000b
db 10010000b
db 00001000b
db 00000000b; shw he 0x7A
db 00100000b
db 11111000b
db 01110000b
db 10101000b
db 00100000b; shw ho 0x7B
db 11111000b
db 00001000b
db 10010000b
db 01100000b
db 00100000b; shw ma 0x7C
db 11111000b
db 00000000b
db 11111000b
db 00000000b
db 11111000b; shw mi 0x7D
db 00100000b
db 01000000b
db 01000000b
db 10010000b
db 11111000b; shw mu 0x7E
db 00001000b
db 01001000b
db 00110000b
db 00110000b
db 11001000b; shw me 0x7F
db 11111000b
db 00100000b
db 11111000b
db 00100000b
db 00111000b; shw mo 0x80
db 01000000b
db 11111100b
db 01001000b
db 00100000b
db 0010000b; shw ya 0x81
db 11110000b
db 00010000b
db 00010000b
db 00010000b
db 11111000b; shw yu 0x82
db 11111000b
db 00001000b
db 11111000b
db 00001000b
db 11111000b; shw yo 0x83
db 11111000b
db 00000000b
db 11111000b
db 00010000b
db 01100000b; shw ra 0x84
db 10001000b
db 10001000b
db 10001000b
db 00010000b
db 01100000b; shw ri 0x85
db 01100000b
db 01100000b
db 01101000b
db 01101000b
db 10110000b; shw ru 0x86
db 10000000b
db 10000000b
db 10001000b
db 10001000b
db 11110000b; shw re 0x87
db 11111000b
db 10001000b
db 10001000b
db 10001000b
db 11111000b; shw ro 0x88
db 11111000b
db 10001000b
db 00001000b
db 00010000b
db 01100000b; shw wa 0x89
db 10000000b
db 01001000b
db 00001000b
db 00010000b
db 11100000b; shw n 0x8A
db 10100000b
db 10100000b
db 00000000b
db 00000000b
db 00000000b; shw voiced 0x8B
db 01000000b
db 10100000b
db 01000000b
db 00000000b
db 00000000b; shw halfvoiced 0x8C
; bitmap 5x5 font; char - offset for ASCII2Font
db 0,0,0,0,0; empty space 0x0
db 01110000b,10011000b,10101000b,11001000b,01110000b; 0 0x01
db 00100000b,01100000b,00100000b,00100000b,01110000b; 1 0x02
db 01110000b,10001000b,00110000b,01000000b,11111000b; 2 0x03
db 01110000b,10001000b,00110000b,10001000b,01110000b; 3 0x04
db 01010000b,10010000b,11111000b,00010000b,00010000b; 4 0x05
db 11111000b,10000000b,11110000b,00001000b,11110000b; 5 0x06
db 01110000b,10000000b,11110000b,10001000b,01110000b; 6 0x07
db 11111000b,00001000b,00010000b,00010000b,00010000b; 7 0x08
db 01110000b,10001000b,01110000b,10001000b,01110000b; 8 0x09
db 01110000b,10001000b,01111000b,00001000b,01110000b; 9 0x0A
db 01110000b,10001000b,11111000b,10001000b,10001000b; A 0x0B
db 11110000b,10001000b,11110000b,10001000b,11110000b; B 0x0C
db 01110000b,10001000b,10000000b,10001000b,01110000b; C 0x0D
db 11110000b,10001000b,10001000b,10001000b,11110000b; D 0x0E
db 11111000b,10000000b,11110000b,10000000b,11111000b; E 0x0F
db 11111000b,10000000b,11110000b,10000000b,10000000b; F 0x10
db 01111000b,10000000b,10011000b,10001000b,01110000b; G 0x11
db 10001000b,10001000b,11111000b,10001000b,10001000b; H 0x12
db 11111000b,00100000b,00100000b,00100000b,11111000b; I 0x13
db 01111000b,00010000b,00010000b,10010000b,01100000b; J 0x14
db 10010000b,10100000b,11100000b,10010000b,10001000b; K 0x15
db 10000000b,10000000b,10000000b,10000000b,11111000b; L 0x16
db 11011000b,10101000b,10101000b,10101000b,10001000b; M 0x17
db 11001000b,10101000b,10101000b,10101000b,10011000b; N 0x18
db 01110000b,10001000b,10001000b,10001000b,01110000b; O 0x19
db 11110000b,10001000b,11110000b,10000000b,10000000b; P 0x1A
db 01110000b,10001000b,10101000b,10010000b,01101000b; Q 0x1B
db 11110000b,10001000b,11110000b,10010000b,10001000b; R 0x1C
db 01111000b,10000000b,01110000b,00001000b,11110000b; S 0x1D
db 11111000b,00100000b,00100000b,00100000b,00100000b; T 0x1E
db 10001000b,10001000b,10001000b,10001000b,01110000b; U 0x1F
db 10001000b,10001000b,01010000b,01010000b,00100000b; V 0x20
db 10001000b,10101000b,10101000b,10101000b,01010000b; W 0x21
db 10001000b,01010000b,00100000b,01010000b,10001000b; X 0x22
db 10001000b,01010000b,00100000b,00100000b,00100000b; Y 0x23
db 11111000b,00010000b,00100000b,01000000b,11111000b; Z 0x24
db 00000000b,00000000b,11111000b,00000000b,00000000b; - 0x25
db 00000000b,00000000b,00000000b,00000000b,11111000b; _ 0x26
db 01101000b,10010000b,00000000b,00000000b,00000000b; ~ 0x27
db 00000000b,00000000b,00000000b,00000000b,00100000b; . 0x28
db 00001000b,00010000b,00100000b,01000000b,10000000b; / 0x29
db 00010000b,00100000b,01000000b,00100000b,00010000b; < 0x2A
db 01000000b,00100000b,00010000b,00100000b,01000000b; > 0x2B
db 01110000b,01000000b,01000000b,01000000b,01110000b; [ 0x2C
db 01110000b,00010000b,00010000b,00010000b,01110000b; ] 0x2D
db 00000000b,00100000b,00000000b,00100000b,00000000b; : 0x2E
db 01100000b,10011000b,01110000b,10011000b,01101000b; & 0x2F
db 00100000b,00100000b,10101000b,01110000b,00100000b; arrow down 0x30
db 01010000b,11111000b,01010000b,11111000b,01010000b; # 0x31
db 00000000b,11111000b,00000000b,11111000b,00000000b; = 0x32
db 01001000b,10010000b,00000000b,00000000b,00000000b; " 0x33
db 10000000b,01000000b,00100000b,00010000b,00001000b; \ 0x34
db 10101000b,01110000b,11111000b,01110000b,10101000b; * 0x35
db 01110000b,10001000b,00110000b,00000000b,00100000b; ? 0x36
db 10001000b,00010000b,00100000b,01000000b,10001000b; % 0x37
db 00100000b,00100000b,11111000b,00100000b,00100000b; + 0x38
db 00000000b,00000000b,00000000b,00100000b,01000000b; , 0x39
db 00110000b,01000000b,01000000b,01000000b,00110000b; ( 0x3A
db 01100000b,00010000b,00010000b,00010000b,01100000b; ) 0x3B
db 01110000b,10011000b,10111000b,10000000b,01110000b; @ 0x3C
db 00100000b,01000000b,00000000b,00000000b,00000000b; ' 0x3D
db 00100000b,00100000b,00100000b,00000000b,00100000b; ! 0x3E
db 01111000b,10100000b,01110000b,00101000b,11110000b; $ 0x3F
db 00000000b,00100000b,00000000b,00100000b,01000000b; ; 0x40
db 01000000b,00100000b,00000000b,00000000b,00000000b; ` 0x41
db 00100000b,01010000b,00000000b,00000000b,00000000b; ^ 0x42
db 00110000b,01000000b,11000000b,01000000b,00110000b; { 0x43
db 01100000b,00010000b,00011000b,00010000b,01100000b; } 0x44
db 00100000b,00100000b,01110000b,01110000b,11111000b; up 0x45
db 11111000b,01110000b,01110000b,00100000b,00100000b; down 0x46
db 00001000b,00111000b,11111000b,00111000b,00001000b; left 0x47
db 10000000b,11100000b,11111000b,11100000b,10000000b; right 0x48
db 00100000b,01100000b,11111000b,01100000b,00100000b; arrow left 0x49
db 00111000b,00100000b,00110000b,00001000b,10110000b; .5 0x4A
db 11111100b,10000100b,11111100b,00000000b,00000000b; maximize (Win) 0x4B
db 00000000b,11111100b,00000000b,00000000b,00000000b; minimize (Win) 0x4C
db 11111000b,10001000b,10001000b,10001000b,11111000b; maximize (SDL) 0x4D
db 00000000b,00000000b,00100000b,01010000b,00100000b; shw fullstop 0x4E
db 01110000b,01000000b,01000000b,01000000b,00000000b; shw left bracket 0x4F
db 00000000b,00010000b,00010000b,00010000b,01110000b; shw right bracket 0x50
db 00000000b,00000000b,00000000b,01000000b,00100000b; shw comma 0x51
db 00000000b,00100000b,01110000b,00100000b,00000000b; shw mid-dot 0x52
db 11111000b,00001000b,11110000b,00100000b,11000000b; shw wo 0x53
db 00000000b,11111000b,01010000b,01100000b,01000000b; shw mini a 0x54
db 00000000b,00010000b,00100000b,11100000b,00100000b; shw mini i 0x55
db 00000000b,00100000b,11111000b,10001000b,00110000b; shw mini u 0x56
db 00000000b,00000000b,11111000b,00100000b,11111000b; shw mini e 0x57
db 00000000b,00010000b,11111000b,00110000b,11010000b; shw mini o 0x58
db 00000000b,01000000b,11111000b,01010000b,01000000b; shw mini ya 0x59
db 00000000b,00000000b,11110000b,00010000b,11111000b; shw mini yu 0x5A
db 00000000b,11111000b,00001000b,01111000b,11111000b; shw mini yo 0x5B
db 00000000b,10101000b,10101000b,00010000b,01100000b; shw mini tsu 0x5C
db 00000000b,10000000b,01111000b,00000000b,00000000b; shw prolong 0x5D
db 11111000b,00101000b,00110000b,00100000b,11000000b; shw a 0x5E
db 00001000b,00110000b,11100000b,00100000b,00100000b; shw i 0x5F
db 00100000b,11111000b,10001000b,00010000b,01100000b; shw u 0x60
db 11111000b,00100000b,00100000b,00100000b,11111000b; shw e 0x61
db 00010000b,11111000b,00110000b,01010000b,10010000b; shw o 0x62
db 01000000b,11111000b,01001000b,01001000b,10011000b; shw ka 0x63
db 00100000b,11111000b,00100000b,11111000b,00100000b; shw ki 0x64
db 01000000b,01111000b,10001000b,00010000b,01100000b; shw ku 0x65
db 01000000b,01111000b,10010000b,00010000b,01100000b; shw ke 0x66 ^^
db 11111000b,00001000b,00001000b,00001000b,11111000b; shw ko 0x67
db 01010000b,11111000b,01010000b,00010000b,01100000b; shw sa 0x68
db 01000000b,10101000b,01001000b,00010000b,11100000b; shw shi 0x69
db 11111000b,00001000b,00010000b,00110000b,11001000b; shw su 0x6A
db 01000000b,11111000b,01010000b,01000000b,00111000b; shw se 0x6B
db 10001000b,01001000b,00001000b,00010000b,01100000b; shw so 0x6C
db 01000000b,01111000b,11001000b,00110000b,01100000b; shw ta 0x6D
db 11111000b,00100000b,11111000b,00100000b,01000000b; shw chi 0x6E
db 10101000b,10101000b,00001000b,00010000b,01100000b; shw tsu 0x6F
db 11111000b,00000000b,11111000b,00100000b,11000000b; shw te 0x70
db 01000000b,01000000b,01100000b,01010000b,01000000b; shw to 0x71
db 00100000b,11111000b,00100000b,00100000b,01000000b; shw na 0x72
db 11110000b,00000000b,00000000b,00000000b,11111000b; shw ni 0x73
db 11111000b,00001000b,00101000b,00010000b,01101000b; shw nu 0x74
db 00100000b,11111000b,00001000b,01110000b,10101000b; shw ne 0x75
db 00001000b,00001000b,00001000b,00010000b,01100000b; shw no 0x76
db 01010000b,01010000b,01010000b,10001000b,10001000b; shw ha 0x77
db 10000000b,10011000b,11100000b,10000000b,01111000b; shw hi 0x78
db 11111000b,00001000b,00001000b,00010000b,01100000b; shw hu 0x79
db 01000000b,10100000b,10010000b,00001000b,00000000b; shw he 0x7A
db 00100000b,11111000b,01110000b,10101000b,00100000b; shw ho 0x7B
db 11111000b,00001000b,10010000b,01100000b,00100000b; shw ma 0x7C
db 11111000b,00000000b,11111000b,00000000b,11111000b; shw mi 0x7D
db 00100000b,01000000b,01000000b,10010000b,11111000b; shw mu 0x7E
db 00001000b,01001000b,00110000b,00110000b,11001000b; shw me 0x7F
db 11111000b,00100000b,11111000b,00100000b,00111000b; shw mo 0x80
db 01000000b,11111100b,01001000b,00100000b,00100000b; shw ya 0x81
db 11110000b,00010000b,00010000b,00010000b,11111000b; shw yu 0x82
db 11111000b,00001000b,11111000b,00001000b,11111000b; shw yo 0x83
db 11111000b,00000000b,11111000b,00010000b,01100000b; shw ra 0x84
db 10001000b,10001000b,10001000b,00010000b,01100000b; shw ri 0x85
db 01100000b,01100000b,01101000b,01101000b,10110000b; shw ru 0x86
db 10000000b,10000000b,10001000b,10001000b,11110000b; shw re 0x87
db 11111000b,10001000b,10001000b,10001000b,11111000b; shw ro 0x88
db 11111000b,10001000b,00001000b,00010000b,01100000b; shw wa 0x89
db 10000000b,01001000b,00001000b,00010000b,11100000b; shw n 0x8A
db 10100000b,10100000b,00000000b,00000000b,00000000b; shw voiced 0x8B
db 01000000b,10100000b,01000000b,00000000b,00000000b; shw halfvoiced 0x8C
; 189 .. 220
GUIIconDataClose:
@@ -4535,18 +3969,6 @@ GUIIconDataCheckBoxC:
db 0 ,215,214,165,212,211,210,202,0 ,0
db 0 ,0 ,202,202,202,202,202,202,0 ,0
GUIIconDataCheckBoxX:
db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0
db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0
db 0 ,165,0 ,0 ,0 ,0 ,0 ,165,0 ,0
db 0 ,220,165,218,217,216,165,0 ,0 ,0
db 0 ,219,218,165,216,165,214,202,0 ,0
db 0 ,218,217,216,165,214,213,202,0 ,0
db 0 ,217,216,165,214,165,212,202,0 ,0
db 0 ,216,165,214,213,212,165,202,0 ,0
db 0 ,165,214,213,212,211,210,165,0 ,0
db 0 ,0 ,202,202,202,202,202,202,0 ,0
GUIIconDataUpArrow:
db 201,209,209,209,209,209,209,200,0 ,0
db 207,205,205,202,203,205,205,203,0 ,0

View File

@@ -706,21 +706,33 @@ GUIgetcurrentinput:
.nokey
ret
%macro KeyTabInc 1 ; tab array
cmp dh,9
jne %%done
%macro KeyTabInc 1-* ; tab arrays
push edx
%rep %0
xor edx,edx
mov eax,[%1]
cmp eax,[%1+4]
je %%back
inc dword[%1]
jmp %%done
%%back
mov dword[%1],1
%%done
div dword[%1+4]
mov [%1],edx
%rotate 1
or [%1],eax
cmp eax,1
je %%exit
%rotate -1
sub eax,[%1]
adc dword[%1],0
cmp dword[%1],0
jne %%exit
%rotate 1
%endrep
%%exit
pop edx
%endmacro
GUIInputKeys:
cmp dh,9
jne .notab
KeyTabInc GUIInputTabs
.notab
ret
GUITCPIPKeys:
@@ -838,13 +850,13 @@ GUISpeedKeys:
cmp dh,'A' ; Framerate Checkboxes
jne .noautofr
mov byte[FPSOn],0
cmp byte[frameskip],0
cmp byte[frameskip],0 ; 0 = autoframerate / 1-10 = frameskip 0-9
je .zero
mov byte[frameskip],0
jmp .notzero
.zero
mov byte[frameskip],2
mov byte[FPSOn],0
mov byte[frameskip],1
.notzero
.noautofr
ret
@@ -939,7 +951,15 @@ GUIGUIOptnsKeys:
ret
GUIVideoKeys:
cmp dh,9
jne near .notab
cmp byte[NTSCFilter],0
jne .ntsc
KeyTabInc GUIVideoTabs
jmp .notab
.ntsc
KeyTabInc GUIVideoTabs,GUIVntscTab
.notab
cmp dh,'a'
jb .nocap
cmp dh,'z'
@@ -1340,8 +1360,12 @@ GUIVideoKeys:
.nograyscale
.notfilterstab
cmp dword[GUIVideoTabs],3
cmp dword[GUIVntscTab],1
jne .notntsctab
cmp dh,'B'
jne .noblend
xor byte[NTSCBlend],1
.noblend
.notntsctab
ret

View File

@@ -53,12 +53,14 @@ ProcessMouse:
call Set_MouseYMax
.nohold1
cmp byte[GUIHold],5 ; Sound Slider
je .dohold5
je .holdslider
cmp byte[GUIHold],6 ; Speed Slider
je .dohold5
je .holdslider
cmp byte[GUIHold],2 ; Colour Slider
je .holdslider
cmp byte[GUIHold],7 ; Video Slider
jne .nohold2m
.dohold5
.holdslider
mov ecx,[GUIHoldXlimL] ; Sets min/max move range for mouse
mov edx,[GUIHoldXlimR] ; once holding slider
call Set_MouseXMax
@@ -334,7 +336,7 @@ ProcessMouseButtons:
xor ebx,ebx
mov bl,[GUIwinorder+eax]
cmp byte[GUIHold],2
je .hold2
je near .hold2
cmp byte[GUIHold],3
je near .hold3
cmp byte[GUIHold],4
@@ -343,6 +345,8 @@ ProcessMouseButtons:
je near .hold5
cmp byte[GUIHold],6
je near .hold6
cmp byte[GUIHold],7
je near .hold7
cmp byte[GUIHold],1
je near .hold
cmp byte[GUIHold],255
@@ -452,6 +456,23 @@ ProcessMouseButtons:
.nogreat6
mov byte[lastmouseholded],1
jmp DisplayGUISpeedClick
.hold7
; Video Slide Bar Hold
mov eax,[GUIHoldYlim]
mov [GUImouseposy],eax
mov ebx,[GUImouseposx]
mov eax,[GUIHoldXlimL]
cmp ebx,eax
jnl .noless7
mov [GUImouseposx],eax
.noless7
mov eax,[GUIHoldXlimR]
cmp ebx,eax
jng .nogreat7
mov [GUImouseposx],eax
.nogreat7
mov byte[lastmouseholded],1
jmp DisplayGUIVideoClick
.hold
cmp word[GUImouseposy],16
jge .noover
@@ -2182,7 +2203,7 @@ DisplayGUIMovieClick:
%%noclick
%endmacro
%macro GUIPTabClick 4 ; minX, maxX, var, value
%macro GUIPTabClick 3-* ; minX, maxX, value, var, vars to zero
cmp eax,%1+1
jl %%noclick
cmp eax,%2-1
@@ -2191,7 +2212,14 @@ DisplayGUIMovieClick:
jl %%noclick
cmp edx,22
jg %%noclick
mov %3,%4
mov dword[%4],%3
%if (%0>4)
%rotate 4
%rep (%0-4)
mov dword[%1],0
%rotate 1
%endrep
%endif
%%noclick
%endmacro
@@ -2213,11 +2241,11 @@ DisplayGUIInputClick:
;x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick#
GUIWinControl 5,36,107,34+5*8,GUIBlankVar,GUIcurrentinputviewloc,GUINumValue,35,8,GUIcurrentinputcursloc,4,3,0
GUIPTabClick 0,21,dword[GUIInputTabs],1
GUIPTabClick 22,43,dword[GUIInputTabs],2
GUIPTabClick 44,65,dword[GUIInputTabs],3
GUIPTabClick 66,87,dword[GUIInputTabs],4
GUIPTabClick 88,109,dword[GUIInputTabs],5
GUIPTabClick 0,21,1,GUIInputTabs
GUIPTabClick 22,43,2,GUIInputTabs
GUIPTabClick 44,65,3,GUIInputTabs
GUIPTabClick 66,87,4,GUIInputTabs
GUIPTabClick 88,109,5,GUIInputTabs
GUIPHoldbutton 123,34,153,45,14 ; Buttons
GUIPHoldbutton 123,50,177,61,40
@@ -2381,7 +2409,6 @@ DisplayGUIOptionClick:
%endif
ret
DisplayGUIVideoClick2:
cmp dword[GUIVideoTabs],1 ; modes
jne near .notmodestab2
@@ -2393,11 +2420,11 @@ DisplayGUIVideoClick2:
GUIPostWinBoxMove 5,27,115,27+5*8,GUIcurrentvideoviewloc,GUIcurrentvideocursloc,GUINumValue,.scrollup,.scrolldown,DisplayGUIVideoClick.skipscrol,5
.notmodestab2
DisplayGUIVideoClick:
GUIPTabClick 0,39,dword[GUIVideoTabs],1
GUIPTabClick 40,91,dword[GUIVideoTabs],2
cmp dword[GUIVideoTabs+4],3
GUIPTabClick 0,39,1,GUIVideoTabs,GUIVntscTab
GUIPTabClick 40,91,2,GUIVideoTabs,GUIVntscTab
cmp byte[NTSCFilter],1
jne .nontscf
GUIPTabClick 92,125,dword[GUIVideoTabs],3
GUIPTabClick 92,125,1,GUIVntscTab,GUIVideoTabs
.nontscf
cmp dword[GUIVideoTabs],1 ; modes
@@ -2542,13 +2569,103 @@ DisplayGUIVideoClick:
GUIClickCButtonT 115,183,byte[vsyncon],byte[Triplebufen]
%endif
GUIClickCButton 11,183,byte[GrayscaleMode]
.notfilterstab
cmp dword[GUIVideoTabs],3 ; NTSC
jne .notntsctab
.notntsctab
mov al,[vsyncon]
mov [cfgvsync],al
.notfilterstab
cmp dword[GUIVntscTab],1 ; NTSC
jne near .notntsctab
mov eax,[GUImouseposx] ; update mouse location
sub eax,[GUIwinposx+5*4]
mov edx,[GUImouseposy]
sub edx,[GUIwinposy+5*4]
GUIClickCButton 5,25,byte[NTSCBlend] ; Checkboxes
;Sliders
cmp eax,15 ; X-Range for click-area
jl near .nomovebar
cmp eax,15+100
jg near .nomovebar
cmp edx,54 ; Y-Range for click-area
jl near .nomovebar
cmp edx,58
jg .nohuebar
sub eax,15
mov [NTSCHue],al
mov byte[GUIHold],7 ; Lock mouse to bar when clicked
mov eax,[GUIwinposy+5*4]
add eax,56
mov [GUIHoldYlim],eax
jmp .nowarpbar
.nohuebar
cmp edx,74
jl near .nomovebar
cmp edx,78
jg .nosatbar
sub eax,15
mov [NTSCSat],al
mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4]
add eax,76
mov [GUIHoldYlim],eax
jmp .nowarpbar
.nosatbar
cmp edx,94
jl near .nomovebar
cmp edx,98
jg .nocontbar
sub eax,15
mov [NTSCCont],al
mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4]
add eax,96
mov [GUIHoldYlim],eax
jmp .nowarpbar
.nocontbar
cmp edx,114
jl near .nomovebar
cmp edx,118
jg .nobrightbar
sub eax,15
mov [NTSCBright],al
mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4]
add eax,116
mov [GUIHoldYlim],eax
jmp .nowarpbar
.nobrightbar
cmp edx,134
jl .nomovebar
cmp edx,138
jg .nosharpbar
sub eax,15
mov [NTSCSharp],al
mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4]
add eax,136
mov [GUIHoldYlim],eax
jmp .nowarpbar
.nosharpbar
cmp edx,154
jl .nomovebar
cmp edx,158
jg .nomovebar
sub eax,15
mov [NTSCWarp],al
mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4]
add eax,156
mov [GUIHoldYlim],eax
.nowarpbar
mov eax,[GUIwinposx+5*4]
add eax,15
mov [GUIHoldXlimL],eax
add eax,100
mov [GUIHoldXlimR],eax
.nomovebar
.notntsctab
xor al,al
ret
@@ -2944,7 +3061,7 @@ DisplayGUIOptnsClick:
cmp eax,25
jl near .nomovebar
cmp eax,25+32*4-1
cmp eax,25+128
jg near .nomovebar
sub eax,25
shr eax,2
@@ -3036,7 +3153,7 @@ DisplayGUIOptnsClick:
add eax,25
mov [GUIHoldXlimL],eax
mov eax,[GUIwinposx+10*4]
add eax,25+32*4-1
add eax,25+128
mov [GUIHoldXlimR],eax
.nohold
ret
@@ -3449,8 +3566,6 @@ DrawMouse:
cmp bl,220
ja .nomidshad
sub bl,189
; test bl,01h
; jnz .nomidshad
shr bl,1
add bl,189
mov [edi+288*7+5],bl
@@ -3458,6 +3573,7 @@ DrawMouse:
.nomidshad
.finishadow
add al,88
mov [edi],al
.nodraw
inc esi

View File

@@ -281,8 +281,8 @@ GUIStringGreater2:
add eax,dword[GUIwinsizex+%1*4]
mov ecx,eax
mov esi,[GUIwinsizey+%1*4]
mov edx,[GUIWincol]
add edx,1
mov dl,[GUIWincol]
inc dl
.loop3
DrawGUILine
dec esi
@@ -567,7 +567,7 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
mov dl,[GUIWincol]
DrawGUIWinBox %1,%2,%3-3+2,%4,%3+1,dl
mov dl,[GUIWincol]
add dl,1
inc dl
DrawGUIWinBox %1,%2-1,%3,%2,%5,dl
mov dl,[GUIWincol]
add dl,4
@@ -588,7 +588,7 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
mov dl,[GUIWincol]
DrawGUIWinBox %1,%2,%3-3+2,%4,%3+1,dl
mov dl,[GUIWincol]
add dl,1
inc dl
DrawGUIWinBox %1,%2-1,%3,%2,%5,dl
mov dl,[GUIWincol]
add dl,4
@@ -608,14 +608,38 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
add esi,[vidbuffer]
%endmacro
%macro GUIDrawTArea 1 ; win #id
mov dl,[GUIWincol]
inc dl
mov eax,[GUIwinposx+%1*4]
mov ebx,[GUIwinposy+%1*4]
add ebx,10
mov ecx,eax
add ecx,[GUIwinsizex+%1*4]
mov esi,12
%%loop1
DrawGUILine
dec esi
jnz %%loop1
add dl,3
inc eax
DrawGUILine
sub ebx,13 ; set ebx to minY
dec eax ; set eax to minX
%endmacro
%macro DrawTabOn 1 ; %1 = array, ebp = offset, eax = minX, ebx = minY
push edi
mov esi,%1
mov ecx,8
add ecx,eax
%%skip
cmp byte[esi+ebp],0
jne %%read1
inc ebp
jmp %%skip
%%read1
mov dl,[esi+ebp]
cmp dl,0
cmp byte[esi+ebp],0
je %%ok1
inc esi
add ecx,6
@@ -673,23 +697,26 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
add eax,2 ; restore and set Xoff for next tab
%%read2
mov esi,%1
mov dl,[esi+ebp]
cmp dl,0
cmp byte[esi+ebp],0
je %%ok2
inc ebp
jmp %%read2
%%ok2
inc ebp ; set pointer to next string
pop edi
%endmacro
%macro DrawTabOff 1 ; %1 = array, ebp = offset, eax = minX, ebx = minY
push edi
mov esi,%1
mov ecx,8
add ecx,eax
%%skip
cmp byte[esi+ebp],0
jne %%read1
inc ebp
jmp %%skip
%%read1
mov dl,[esi+ebp]
cmp dl,0
cmp byte[esi+ebp],0
je %%ok1
inc esi
add ecx,6
@@ -711,7 +738,6 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
jnz %%draw1
sub ebx,10
push ebx ; save Yoff for next drawing step
push ebp ; save array offset
mov byte[GUItextcolor],202
cmp byte[GUIWincoladd],0
je %%nochange
@@ -723,25 +749,18 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
add edx,6
push edx ; save label Xoff
SetVidbufLoc
push edi
mov edi,%1
add edi,ebp
call GUIOutputStringwin
pop edi
pop edx
pop ebx
pop ebp
push ebp ; save array offset again
add byte[GUItextcolor],15
dec edx
dec ebx
SetVidbufLoc
push edi
mov edi,%1
add edi,ebp
call GUIOutputStringwin
pop edi
pop ebp ; restore pointer
pop ebx ; restore Yoff for drawing step
pop eax
inc eax ; restore and set Xoff for drawing step
@@ -756,50 +775,71 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
inc eax
%%read2
mov esi,%1
mov dl,[esi+ebp]
cmp dl,0
cmp byte[esi+ebp],0
je %%ok2
inc ebp
jmp %%read2
%%ok2
inc ebp ; set pointer to next string
pop edi
%endmacro
%macro GUIDrawTab 2 ; window id #, tabs/label array
mov dl,[GUIWincol]
add dl,1
mov eax,[GUIwinposx+%1*4]
mov ebx,[GUIwinposy+%1*4]
add ebx,10
mov ecx,eax
add ecx,[GUIwinsizex+%1*4]
mov esi,12
%%loop1
DrawGUILine
dec esi
jnz %%loop1
add dl,3
inc eax
DrawGUILine
sub ebx,13 ; set ebx to minY
dec eax ; set eax to minX
mov esi,[%2] ; active tab
mov ecx,[%2+4] ; total #
%macro GUIDrawTabs 1 ; tabs/label array
mov ecx,[%1+4] ; total #
cmp ecx,0
je near %%nodraw
mov esi,[%1] ; active tab
mov ebp,8 ; set array offset at top of labels
%%loop2
dec esi ; check if tab is the current one
push ecx
push esi
jnz near %%disabled
DrawTabOn %2 ; draws tab, updates eax, ebx & ebp for next tab...
jmp %%done
DrawTabOn %1 ; draws tab, updates eax, ebx & ebp for next tab...
jmp near %%done
%%disabled
DrawTabOff %2 ; ... and autosizes the tab for its label
DrawTabOff %1 ; ... and autosizes the tab for its label
%%done
pop esi
pop ecx
dec ecx
jnz %%loop2
%%nodraw
%endmacro
%macro GUIDrawSlider 6 ; win #id, minX, width, Ypos, variable, text
mov eax,[GUIwinposx+%1*4]
mov ebx,[GUIwinposy+%1*4]
add eax,%2
add ebx,%4
mov ecx,eax
add ecx,%3
xor edx,edx
mov dl,215
sub dl,[GUIWincoladd]
DrawGUILine
inc ecx
inc eax
sub dl,13
DrawGUILine
xor eax,eax
mov al,[%5]
mov dword[GUITemp],%2-4
add [GUITemp],eax
GUIDisplayIconWin %1,[GUITemp],%4-4,GUIIconDataSlideBar
mov word[%6],' '
mov esi,%6+3
mov al,[%5]
mov bl,10
%%asciilp ; turns decimal into ascii
dec esi
xor ah,ah
div bl
add ah,48
mov [esi],ah
cmp al,0
jne %%asciilp
mov dword[GUITemp],%6 ; Display Value (Green)
GUIDisplayTextG %1,%2+%3+6,%4-1,[GUITemp]
%endmacro
; DGUIDisplay
@@ -1166,7 +1206,7 @@ SECTION .text
mov dl,[GUIWincol]
DrawGUIWinBox %1,%2+1,%3,%2+18,%3,dl
mov dl,[GUIWincol]
add dl,1
inc dl
DrawGUIWinBox %1,%2,%3+1,%2-1,%3+5,dl
mov dl,[GUIWincol]
add dl,4
@@ -1274,7 +1314,8 @@ DisplayGUIInput: ; Player Select, Joystick/keyboard Type List, Button Assignm
mov eax,[GUIInputTabs]
dec al
mov [cplayernum],al
GUIDrawTab 3,GUIInputTabs
GUIDrawTArea 3
GUIDrawTabs GUIInputTabs
GUIDisplayTextY 3,6,26,GUIInputTextA
xor eax,eax
@@ -1632,12 +1673,12 @@ DisplayGUIVideo:
GUIDrawWindowBox 5,GUIVideoDisp ; Video Modes List/Options
xor ebx,ebx
mov bl,[NTSCFilter]
add ebx,2
mov [GUIVideoTabs+4],ebx
GUIDrawTab 5,GUIVideoTabs
GUIDrawTArea 5
GUIDrawTabs GUIVideoTabs
cmp byte[NTSCFilter],0
je near .nontsc
GUIDrawTabs GUIVntscTab
.nontsc
cmp dword[GUIVideoTabs],1
jne near .notmodestab
@@ -1860,8 +1901,23 @@ DisplayGUIVideo:
%endif
.notfilterstab
cmp dword[GUIVideoTabs],3
jne .notntsctab
cmp dword[GUIVntscTab],1
jne near .notntsctab
GUIDisplayCheckboxu 5,5,25,NTSCBlend,GUIVideoTextG1,0
GUIDisplayTextY 5,7,46,GUIVideoTextG2
GUIDisplayTextY 5,7,66,GUIVideoTextG3
GUIDisplayTextY 5,7,86,GUIVideoTextG4
GUIDisplayTextY 5,7,106,GUIVideoTextG5
GUIDisplayTextY 5,7,126,GUIVideoTextG6
GUIDisplayTextY 5,7,146,GUIVideoTextG7
GUIDrawSlider 5,15,100,56,NTSCHue,GUIVideoTextG
GUIDrawSlider 5,15,100,76,NTSCSat,GUIVideoTextG
GUIDrawSlider 5,15,100,96,NTSCCont,GUIVideoTextG
GUIDrawSlider 5,15,100,116,NTSCBright,GUIVideoTextG
GUIDrawSlider 5,15,100,136,NTSCSharp,GUIVideoTextG
GUIDrawSlider 5,15,100,156,NTSCWarp,GUIVideoTextG
.notntsctab
ret
@@ -1869,6 +1925,7 @@ SECTION .data
GUIVideoTabs dd 1,2
db 'MODES',0
db 'FILTERS',0
GUIVntscTab dd 0,1
db 'NTSC',0
GUIVideoTextB db 'LEGEND:',0
@@ -1904,6 +1961,15 @@ GUIVideoText8 db 'SET',0 ; set button
GUIVideoText9 db 'VSYNC',0 ; -c
GUIVideoTexte db 'NTSC',0
GUIVideoTextG db '---%',0
GUIVideoTextG1 db 'BLEND FRAMES',0
GUIVideoTextG2 db 'HUE:',0
GUIVideoTextG3 db 'SATURATION:',0
GUIVideoTextG4 db 'CONTRAST:',0
GUIVideoTextG5 db 'BRIGHTNESS:',0
GUIVideoTextG6 db 'SHARPNESS:',0
GUIVideoTextG7 db 'HUE WARPING:',0
SECTION .bss
GUIVStA resd 3
GUIcurrentvideoviewloc resd 1
@@ -1961,51 +2027,7 @@ DisplayGUISound: ; Sound Related Options
add [GUITemp],eax
GUIDisplayTextG 6,23,64,[GUITemp]
mov eax,[GUIwinposx+6*4] ; Volume Level Slider
mov ebx,[GUIwinposy+6*4]
mov ecx,eax
add eax,15
add ecx,15+100
add ebx,91
xor edx,edx
mov dl,215
sub dl,[GUIWincoladd]
DrawGUILine
inc ecx
inc eax
sub dl,13
DrawGUILine
xor eax,eax
mov al,[MusicRelVol]
mov dword[GUITemp],11
add [GUITemp],eax
GUIDisplayIconWin 6,[GUITemp],87,GUIIconDataSlideBar
mov dword[GUISoundTextC1],' '
mov byte[GUISoundTextC1+3],'%'
mov esi,GUISoundTextC1+2
xor eax,eax
mov al,[MusicRelVol]
mov ebx,10
div bl
add ah,48
mov [esi],ah
cmp al,0
je .nomore
dec esi
xor ah,ah
div bl
add ah,48
mov [esi],ah
cmp al,0
je .nomore
dec esi
xor ah,ah
div bl
add ah,48
mov [esi],ah
.nomore
mov [GUITemp],esi
GUIDisplayTextG 6,119,89,[GUITemp]
GUIDrawSlider 6,15,100,91,MusicRelVol,GUISoundTextC1
ret
SECTION .data
@@ -3027,7 +3049,7 @@ GUIGameOptnsTextC7 db 'SAVE SPC',0
GUIGameOptnsTextD1 db 'MISC TOGGLES:',0
GUIGameOptnsTextD1a db 'USE PL12/34',0
GUIGameOptnsTextD1b db 'CLRSWITCHES',0
GUIGameOptnsTextD1b db 'PANIC KEY',0
GUIGameOptnsTextD1c db 'DISPLAY FPS',0
GUIGameOptnsTextD1d db 'BATT POWER',0
@@ -3104,19 +3126,19 @@ DisplayGUIOptns: ; GUI Options
xor eax,eax
mov al,[TRVal2]
shl eax,2
mov dword[GUITemp],22
mov dword[GUITemp],23
add [GUITemp],eax
GUIDisplayIconWin 10,[GUITemp],120,GUIIconDataSlideBar
xor eax,eax
mov al,[TGVal2]
shl eax,2
mov dword[GUITemp],22
mov dword[GUITemp],23
add [GUITemp],eax
GUIDisplayIconWin 10,[GUITemp],132,GUIIconDataSlideBar
xor eax,eax
mov al,[TBVal2]
shl eax,2
mov dword[GUITemp],22
mov dword[GUITemp],23
add [GUITemp],eax
GUIDisplayIconWin 10,[GUITemp],144,GUIIconDataSlideBar
@@ -3491,7 +3513,7 @@ SECTION .text
mov dl,[GUIWincol]
DrawGUIWinBox %1,%2,%6,%4,%3,dl ; freezes if you replace %6 with %3-1
mov dl,[GUIWincol]
add dl,1
inc dl
DrawGUIWinBox %1,%2-1,%3,%2,%5,dl
mov dl,[GUIWincol]
add dl,4
@@ -3507,7 +3529,7 @@ SECTION .text
mov dl,[GUIWincol]
DrawGUIWinBox %1,%2,%6,%4,%3,dl
mov dl,[GUIWincol]
add dl,1
inc dl
DrawGUIWinBox %1,%2-1,%3,%2,%5,dl
mov dl,[GUIWincol]
add dl,4
@@ -3532,7 +3554,7 @@ SECTION .text
mov dl,[GUIWincol]
DrawGUIWinBox %1,%2,%6,%4,%3,dl
mov dl,[GUIWincol]
add dl,1
inc dl
DrawGUIWinBox %1,%2-1,%3,%2,%5,dl
mov dl,[GUIWincol]
add dl,4
@@ -4233,8 +4255,8 @@ DisplayGUIAddOns: ;Select Special Controllers
mov eax,GUIAddOnEETopBar
mov ebx,GUIAddOnsDisp
.loopA
mov cl,byte[eax]
mov byte[ebx],cl
mov cl,[eax]
mov [ebx],cl
inc eax
inc ebx
cmp cl,0
@@ -4263,8 +4285,8 @@ DisplayGUIAddOns: ;Select Special Controllers
mov eax,GUIAddOnsDispEE
mov ebx,GUIAddOnsDisp
.loopB
mov cl,byte[eax]
mov byte[ebx],cl
mov cl,[eax]
mov [ebx],cl
inc eax
inc ebx
cmp cl,0
@@ -4273,8 +4295,8 @@ DisplayGUIAddOns: ;Select Special Controllers
pop ebx
pop eax
GUIDisplayText 17,20,15,GUIAddOnText1
GUIDisplayText 17,112,15,GUIAddOnText2
GUIDisplayTextY 17,20,15,GUIAddOnText1
GUIDisplayTextY 17,112,15,GUIAddOnText2
GUIDisplayButtonHoleTu 17,9,23,byte[device1],0,GUIAddOnText3,0
GUIDisplayButtonHoleTu 17,9,33,byte[device1],1,GUIAddOnText4,0
@@ -4523,14 +4545,13 @@ DisplayGUISave: ;Save & Rewind options/Hotkeys
GUIDisplayCheckboxu 20,11,100,PauseRewind,GUISaveTextB7,12
GUIDisplayBBox 20,150,17,165,24,167 ; Rewind States Box
xor ax,ax
mov ah,[RewindStates]
mov al,48
add ah,48
.asciiloop
cmp ah,58
jb .hex2asciidone
add al,1
inc al
sub ah,10
jmp .asciiloop
.hex2asciidone
@@ -4538,14 +4559,13 @@ DisplayGUISave: ;Save & Rewind options/Hotkeys
GUIDisplayTextG 20,154,19,GUISaveTextZ3
GUIDisplayBBox 20,150,29,165,36,167 ; Second/Rewind Box
xor ax,ax
mov ah,[RewindFrames]
mov al,48
add ah,48
.asciiloop2
cmp ah,58
jb .hex2asciidone2
add al,1
inc al
sub ah,10
jmp .asciiloop2
.hex2asciidone2
@@ -4649,7 +4669,6 @@ DisplayGUISpeed: ;Speed Options
GUIDisplayCheckboxun 21,11,145,frameskip,0,GUISpeedTextC2,0
GUIDisplayBBox 21,96,24,114,31,167 ; FF Ratio Box
xor ax,ax
mov ah,[FFRatio]
add ah,2
mov al,48
@@ -4657,7 +4676,7 @@ DisplayGUISpeed: ;Speed Options
.asciiloop
cmp ah,58
jb .hex2asciidone
add al,1
inc al
sub ah,10
jmp .asciiloop
.hex2asciidone
@@ -4669,7 +4688,6 @@ DisplayGUISpeed: ;Speed Options
GUIDisplayTextG 21,101,26,GUISpeedTextZ3
GUIDisplayBBox 21,96,35,114,42,167 ; SD Ratio Box
xor ax,ax
mov ah,[SDRatio]
add ah,2
mov al,48
@@ -4677,7 +4695,7 @@ DisplayGUISpeed: ;Speed Options
.asciiloop2
cmp ah,58
jb .hex2asciidone2
add al,1
inc al
sub ah,10
jmp .asciiloop2
.hex2asciidone2
@@ -4717,7 +4735,7 @@ DisplayGUISpeed: ;Speed Options
xor eax,eax
mov al,[EmuSpeed]
shl eax,1
mov dword[GUITemp],12
mov dword[GUITemp],11
add [GUITemp],eax
GUIDisplayIconWin 21,[GUITemp],171,GUIIconDataSlideBar
mov dword[GUISpeedTextD1],0

View File

@@ -19,6 +19,8 @@
%include "macros.mac"
%include "video/2xsaimmx.inc"
%include "video/copyvid.inc"
EXTSYM BGMA,V8Mode,antienab,cacheud,cbitmode,ccud,cfield,cgram,coladdb,coladdg
EXTSYM coladdr,curblank,curfps,cvidmode,delay,extlatch,fnamest,En2xSaI
@@ -38,14 +40,11 @@ EXTSYM intrlng,mode7hr,newgfx16b,vesa2_clbitng,vesa2_clbitng2,CSStatus
EXTSYM CSStatus2,CSStatus3,SpecialLine,Clear2xSaIBuffer,vidbufferofsb,bg1scroly
EXTSYM bg1objptr,DecompAPtr,HalfTransB,HalfTransC,cur_zst_size,old_zst_size
EXTSYM MovieProcessing,mzt_chdir,UpChdir,MovieFrameStr,GetMovieFrameStr
EXTSYM MovieDisplayFrame
EXTSYM MouseCount,device2
EXTSYM MovieDisplayFrame,SloMo,MouseCount,device2
%ifndef __MSDOS__
EXTSYM MouseMoveX,MouseMoveY,MouseButtons,MultiMouseProcess,mouse
%endif
%ifdef __MSDOS__
%else
EXTSYM SB_blank,vsyncon,Triplebufen,granadd
%endif
@@ -54,7 +53,6 @@ NEWSYM ScreenScale, resb 1 ; If horizontal is scaled or not
NEWSYM TempDebugV, resw 1 ; Temporary Debugging variable
SECTION .text
%macro MMXStuff 0
%%1
movq mm0,[esi]
@@ -67,56 +65,7 @@ SECTION .text
jnz %%1
%endmacro
%macro FPUStuff 1
FILD QWORD[ESI+%1*16]
FILD QWORD[ESI+8+%1*16]
FISTP QWORD[ES:EDI+8+%1*16]
FISTP QWORD[ES:EDI+%1*16]
%endmacro
%MACRO CopyFPU 0
%ENDMACRO
%include "video/2xsaimmx.inc"
%include "video/copyvid.inc"
SECTION .text
NEWSYM FPUZero
%if 0
; omg this is lame ;P
mov [.Zero],eax
mov [.Zero+4],eax
mov [.Zero2],eax
mov [.Zero2+4],eax
.TopOfLoop
FILD QWORD[.Zero]
FILD QWORD[.Zero2]
FXCH
FISTP QWORD[EDI]
FISTP QWORD[EDI+8]
ADD EDI,16
DEC ECX
JNZ .TopOfLoop
%else
fld1
fsub st0,st0
.TopOfLoop
fst qword[edi]
fst qword[edi+8]
add edi,16
dec ecx
jnz .TopOfLoop
fstp st0
%endif
ret
%if 0
SECTION .bss
.Zero resd 2
.Zero2 resd 2
SECTION .text
%endif
;*******************************************************
; ShowVideo Processes & displays video
@@ -548,118 +497,119 @@ NEWSYM outputhex16
SECTION .data
NEWSYM ASCII2Font
db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h,00h,30h,00h,00h,00h,00h,00h,00h
db 00h,3Eh,33h,31h,3Fh,37h,2Fh,3Dh,3Ah,3Bh,35h,38h,39h,25h,28h,29h
db 01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,2Eh,40h,2Ah,32h,2Bh,36h
db 3Ch,0Bh,0Ch,0Dh,0Eh,0Fh,10h,11h,12h,13h,14h,15h,16h,17h,18h,19h
db 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh,20h,21h,22h,23h,24h,2Ch,34h,2Dh,42h,26h
db 41h,0Bh,0Ch,0Dh,0Eh,0Fh,10h,11h,12h,13h,14h,15h,16h,17h,18h,19h
db 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh,20h,21h,22h,23h,24h,43h,00h,44h,27h,00h
db 0Dh,1Fh,0Fh,0Bh,0Bh,0Bh,0Bh,0Dh,0Fh,0Fh,0Fh,13h,13h,13h,0Bh,0Bh
db 0Fh,0Bh,0Bh,19h,19h,19h,1Fh,1Fh,23h,19h,1Fh,0Dh,10h,23h,1Ah,10h
db 0Bh,4Eh,4Fh,50h,51h,52h,53h,54h,55h,56h,57h,58h,59h,5Ah,5Bh,5Ch
db 5Dh,5Eh,5Fh,60h,61h,62h,63h,64h,65h,66h,67h,68h,69h,6Ah,6Bh,6Ch
db 6Dh,6Eh,6Fh,70h,71h,72h,73h,74h,75h,76h,77h,78h,79h,7Ah,7Bh,7Ch
db 7Dh,7Eh,7Fh,80h,81h,82h,83h,84h,85h,86h,87h,88h,89h,8Ah,8Bh,8Ch
db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,4Dh,4Ch,4Bh,4Ah,45h,46h,47h,48h,49h
db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h,00h,30h,00h,00h,00h,00h,00h,00h
db 00h,3Eh,33h,31h,3Fh,37h,2Fh,3Dh,3Ah,3Bh,35h,38h,39h,25h,28h,29h
db 01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,2Eh,40h,2Ah,32h,2Bh,36h
db 3Ch,0Bh,0Ch,0Dh,0Eh,0Fh,10h,11h,12h,13h,14h,15h,16h,17h,18h,19h
db 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh,20h,21h,22h,23h,24h,2Ch,34h,2Dh,42h,26h
db 41h,0Bh,0Ch,0Dh,0Eh,0Fh,10h,11h,12h,13h,14h,15h,16h,17h,18h,19h
db 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh,20h,21h,22h,23h,24h,43h,00h,44h,27h,00h
db 0Dh,1Fh,0Fh,0Bh,0Bh,0Bh,0Bh,0Dh,0Fh,0Fh,0Fh,13h,13h,13h,0Bh,0Bh
db 0Fh,0Bh,0Bh,19h,19h,19h,1Fh,1Fh,23h,19h,1Fh,0Dh,10h,23h,1Ah,10h
db 0Bh,4Eh,4Fh,50h,51h,52h,53h,54h,55h,56h,57h,58h,59h,5Ah,5Bh,5Ch
db 5Dh,5Eh,5Fh,60h,61h,62h,63h,64h,65h,66h,67h,68h,69h,6Ah,6Bh,6Ch
db 6Dh,6Eh,6Fh,70h,71h,72h,73h,74h,75h,76h,77h,78h,79h,7Ah,7Bh,7Ch
db 7Dh,7Eh,7Fh,80h,81h,82h,83h,84h,85h,86h,87h,88h,89h,8Ah,8Bh,8Ch
db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,4Dh,4Ch,4Bh,4Ah,45h,46h,47h,48h,49h
NEWSYM FontData
db 0,0,0,0,0,0,0,0
db 01111100b,11000110b,11001110b,11010110b ; 0, 01
; bitmap 8x8 font ; char, offset for ASCII2Font
db 0,0,0,0,0,0,0,0 ; ' ', 00
db 01111100b,11000110b,11001110b,11010110b ; 0, 01
db 11100110b,11000110b,01111100b,00000000b
db 00011000b,00111000b,01111000b,00011000b ; 1, 02
db 00011000b,00111000b,01111000b,00011000b ; 1, 02
db 00011000b,00011000b,01111110b,00000000b
db 01111100b,11000110b,00001100b,00011000b ; 2, 03
db 01111100b,11000110b,00001100b,00011000b ; 2, 03
db 00110000b,01100110b,11111110b,00000000b
db 01111100b,11000110b,00000110b,00111100b ; 3, 04
db 01111100b,11000110b,00000110b,00111100b ; 3, 04
db 00000110b,11000110b,01111100b,00000000b
db 00111100b,01101100b,11001100b,11111110b ; 4, 05
db 00111100b,01101100b,11001100b,11111110b ; 4, 05
db 00001100b,00001100b,00001100b,00000000b
db 11111110b,11000000b,11000000b,11111100b ; 5, 06
db 11111110b,11000000b,11000000b,11111100b ; 5, 06
db 00000110b,11000110b,01111100b,00000000b
db 00111100b,01100000b,11000000b,11111100b ; 6, 07
db 00111100b,01100000b,11000000b,11111100b ; 6, 07
db 11000110b,11000110b,01111100b,00000000b
db 11111110b,11000110b,00000110b,00001100b ; 7, 08
db 11111110b,11000110b,00000110b,00001100b ; 7, 08
db 00011000b,00011000b,00011000b,00000000b
db 01111100b,11000110b,11000110b,01111100b ; 8, 09
db 01111100b,11000110b,11000110b,01111100b ; 8, 09
db 11000110b,11000110b,01111100b,00000000b
db 01111100b,11000110b,11000110b,01111110b ; 9, 0A
db 01111100b,11000110b,11000110b,01111110b ; 9, 0A
db 00000110b,11000110b,01111100b,00000000b
db 00111000b,01101100b,11000110b,11111110b ; A, 0B
db 00111000b,01101100b,11000110b,11111110b ; A, 0B
db 11000110b,11000110b,11000110b,00000000b
db 11111100b,11000110b,11000110b,11111100b ; B, 0C
db 11111100b,11000110b,11000110b,11111100b ; B, 0C
db 11000110b,11000110b,11111100b,00000000b
db 01111100b,11000110b,11000000b,11000000b ; C, 0D
db 01111100b,11000110b,11000000b,11000000b ; C, 0D
db 11000000b,11000110b,01111100b,00000000b
db 11111100b,11000110b,11000110b,11000110b ; D, 0E
db 11111100b,11000110b,11000110b,11000110b ; D, 0E
db 11000110b,11000110b,11111100b,00000000b
db 11111110b,11000000b,11000000b,11111000b ; E, 0F
db 11111110b,11000000b,11000000b,11111000b ; E, 0F
db 11000000b,11000000b,11111110b,00000000b
db 11111110b,11000000b,11000000b,11111000b ; F, 10
db 11111110b,11000000b,11000000b,11111000b ; F, 10
db 11000000b,11000000b,11000000b,00000000b
db 01111100b,11000110b,11000000b,11000000b ; G, 11
db 01111100b,11000110b,11000000b,11000000b ; G, 11
db 11001110b,11000110b,01111100b,00000000b
db 11000110b,11000110b,11000110b,11111110b ; H, 12
db 11000110b,11000110b,11000110b,11111110b ; H, 12
db 11000110b,11000110b,11000110b,00000000b
db 00111100b,00011000b,00011000b,00011000b ; I, 13
db 00111100b,00011000b,00011000b,00011000b ; I, 13
db 00011000b,00011000b,00111100b,00000000b
db 00011110b,00001100b,00001100b,00001100b ; J, 14
db 00011110b,00001100b,00001100b,00001100b ; J, 14
db 00001100b,11001100b,00111100b,00000000b
db 11001100b,11011000b,11110000b,11100000b ; K, 15
db 11001100b,11011000b,11110000b,11100000b ; K, 15
db 11110000b,11011000b,11001100b,00000000b
db 11000000b,11000000b,11000000b,11000000b ; L, 16
db 11000000b,11000000b,11000000b,11000000b ; L, 16
db 11000000b,11000000b,11111110b,00000000b
db 11000110b,11101110b,11111110b,11010110b ; M, 17
db 11000110b,11101110b,11111110b,11010110b ; M, 17
db 11000110b,11000110b,11000110b,00000000b
db 11000110b,11100110b,11110110b,11011110b ; N, 18
db 11000110b,11100110b,11110110b,11011110b ; N, 18
db 11001110b,11000110b,11000110b,00000000b
db 01111100b,11000110b,11000110b,11000110b ; O, 19
db 01111100b,11000110b,11000110b,11000110b ; O, 19
db 11000110b,11000110b,01111100b,00000000b
db 11111100b,11000110b,11000110b,11111100b ; P, 1A
db 11111100b,11000110b,11000110b,11111100b ; P, 1A
db 11000000b,11000000b,11000000b,00000000b
db 01111100b,11000110b,11000110b,11000110b ; Q, 1B
db 01111100b,11000110b,11000110b,11000110b ; Q, 1B
db 11010110b,11001110b,01111110b,00000000b
db 11111100b,11000110b,11000110b,11111100b ; R, 1C
db 11111100b,11000110b,11000110b,11111100b ; R, 1C
db 11001100b,11000110b,11000110b,00000000b
db 01111100b,11000110b,11000000b,01111100b ; S, 1D
db 01111100b,11000110b,11000000b,01111100b ; S, 1D
db 00000110b,11000110b,01111100b,00000000b
db 01111110b,00011000b,00011000b,00011000b ; T, 1E
db 01111110b,00011000b,00011000b,00011000b ; T, 1E
db 00011000b,00011000b,00011000b,00000000b
db 11000110b,11000110b,11000110b,11000110b ; U, 1F
db 11000110b,11000110b,11000110b,11000110b ; U, 1F
db 11000110b,11000110b,01111100b,00000000b
db 11000110b,11000110b,11000110b,11000110b ; V, 20
db 11000110b,11000110b,11000110b,11000110b ; V, 20
db 01101100b,00111000b,00010000b,00000000b
db 11000110b,11000110b,11000110b,11010110b ; W, 21
db 11000110b,11000110b,11000110b,11010110b ; W, 21
db 11010110b,11111110b,01101100b,00000000b
db 11000110b,01101100b,00111000b,00010000b ; X, 22
db 11000110b,01101100b,00111000b,00010000b ; X, 22
db 00111000b,01101100b,11000110b,00000000b
db 11001100b,11001100b,01111000b,00110000b ; Y, 23
db 11001100b,11001100b,01111000b,00110000b ; Y, 23
db 00110000b,00110000b,00110000b,00000000b
db 11111100b,10001100b,00011000b,00110000b ; Z, 24
db 11111100b,10001100b,00011000b,00110000b ; Z, 24
db 01100000b,11000100b,11111100b,00000000b
db 00000000b,00000000b,00000000b,11111110b ; -, 25
db 00000000b,00000000b,00000000b,11111110b ; -, 25
db 00000000b,00000000b,00000000b,00000000b
db 00000000b,00000000b,00000000b,00000000b ; _, 26
db 00000000b,00000000b,00000000b,00000000b ; _, 26
db 00000000b,00000000b,11111110b,00000000b
db 01110000b,11011100b,00000110b,00000000b ; ~, 27
db 01110000b,11011100b,00000110b,00000000b ; ~, 27
db 00000000b,00000000b,00000000b,00000000b
db 00000000b,00000000b,00000000b,00000000b ; ., 28
db 00000000b,00000000b,00000000b,00000000b ; ., 28
db 00000000b,00110000b,00110000b,00000000b
db 00000010b,00000100b,00001000b,00010000b ; /, 29
db 00000010b,00000100b,00001000b,00010000b ; /, 29
db 00100000b,01000000b,10000000b,00000000b
db 00001100b,00011000b,00110000b,01100000b ; <, 2A
db 00001100b,00011000b,00110000b,01100000b ; <, 2A
db 00110000b,00011000b,00001100b,00000000b
db 01100000b,00110000b,00011000b,00001100b ; >, 2B
db 01100000b,00110000b,00011000b,00001100b ; >, 2B
db 00011000b,00110000b,01100000b,00000000b
db 00111000b,00100000b,00100000b,00100000b ; [, 2C
db 00111000b,00100000b,00100000b,00100000b ; [, 2C
db 00100000b,00100000b,00111000b,00000000b
db 00111000b,00001000b,00001000b,00001000b ; ], 2D
db 00111000b,00001000b,00001000b,00001000b ; ], 2D
db 00001000b,00001000b,00111000b,00000000b
db 00000000b,00011000b,00011000b,00000000b ; :, 2E
db 00000000b,00011000b,00011000b,00000000b ; :, 2E
db 00011000b,00011000b,00000000b,00000000b
db 00011000b,00100100b,00011000b,00111010b ; &, 2F
db 00011000b,00100100b,00011000b,00111010b ; &, 2F
db 01000100b,01000110b,00111010b,00000000b
; Arrow, 30
; #, 31 (, 3A {, 43
@@ -2607,22 +2557,29 @@ SECTION .text
;*******************************************************
NEWSYM showfps
mov cl,50
mov al,60
cmp byte[romispal],0
jne .nontsc
mov cl,60
.nontsc
je .ntsc
mov al,50
.ntsc
inc byte[curfps]
cmp byte[nextframe],cl
cmp byte[nextframe],al
jb .nofrc
mov al,[curfps]
mov [lastfps],al
mov al,[curfps2]
mov [lastfps2],al
mov cl,[curfps]
mov [lastfps],cl
mov cl,[curfps2]
mov [lastfps2],cl
mov byte[curfps],0
mov byte[curfps2],0
sub byte[nextframe],cl
sub byte[nextframe],al
.nofrc
mov cl,[SloMo]
cmp cl,0
je .noslw
inc cl
div cl
.noslw
mov cl,al
cmp byte[cbitmode],1
je near .do16b
@@ -2660,73 +2617,50 @@ NEWSYM showfps
ret
.do16b
mov al,[lastfps]
mov bl,10
xor ah,ah
div bl
shl al,4
add ah,al
mov al,ah
mov esi,208*288*2+32*2
add esi,[vidbuffer]
push ecx
call outputhex16
mov esi,208*288*2+48*2
add esi,[vidbuffer]
mov al,[lastfps]
push ecx
xor ecx,ecx
.strloop
xor ah,ah
add al,48
sub esi,8*2
.asciiloop16b
cmp al,58
jb .h2adone16b
inc ah
sub al,10
jmp .asciiloop16b
.h2adone16b
mov cl,al
mov al,[ASCII2Font+ecx]
call outputchar16b
mov al,ah
or al,al
jnz .strloop
mov esi,208*288*2+48*2
add esi,[vidbuffer]
mov al,29h
call outputchar16b
pop ecx
mov esi,208*288*2+48*2
add esi,[vidbuffer]
mov al,41 ; '/'
call outputchar16b
pop ecx
mov al,cl
mov bl,10
xor ah,ah
div bl
shl al,4
add ah,al
mov al,ah
mov esi,208*288*2+56*2
add esi,[vidbuffer]
call outputhex16
ret
.ng16b
mov byte[ngfont],1
mov al,[lastfps]
mov bl,10
xor ah,ah
div bl
shl al,4
add ah,al
mov al,ah
mov esi,208*288+32
add esi,[vidbuffer]
push ecx
call outputhex
mov esi,208*288+48
add esi,[vidbuffer]
mov al,29h
call outputchar
pop ecx
mov al,cl
mov bl,10
xor ah,ah
div bl
shl al,4
add ah,al
mov al,ah
mov esi,208*288+56
add esi,[vidbuffer]
call outputhex
ret
mov al,cl
mov bl,10
xor ah,ah
div bl
shl al,4
add ah,al
mov al,ah
mov esi,208*288*2+56*2
add esi,[vidbuffer]
call outputhex16
ret
SECTION .bss
NEWSYM spcdebugaddr, resd 1
NEWSYM tempoffset, resw 1
NEWSYM Testval, resd 1
SECTION .text