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

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

View File

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

View File

@@ -53,12 +53,14 @@ ProcessMouse:
call Set_MouseYMax call Set_MouseYMax
.nohold1 .nohold1
cmp byte[GUIHold],5 ; Sound Slider cmp byte[GUIHold],5 ; Sound Slider
je .dohold5 je .holdslider
cmp byte[GUIHold],6 ; Speed Slider cmp byte[GUIHold],6 ; Speed Slider
je .dohold5 je .holdslider
cmp byte[GUIHold],2 ; Colour Slider cmp byte[GUIHold],2 ; Colour Slider
je .holdslider
cmp byte[GUIHold],7 ; Video Slider
jne .nohold2m jne .nohold2m
.dohold5 .holdslider
mov ecx,[GUIHoldXlimL] ; Sets min/max move range for mouse mov ecx,[GUIHoldXlimL] ; Sets min/max move range for mouse
mov edx,[GUIHoldXlimR] ; once holding slider mov edx,[GUIHoldXlimR] ; once holding slider
call Set_MouseXMax call Set_MouseXMax
@@ -334,7 +336,7 @@ ProcessMouseButtons:
xor ebx,ebx xor ebx,ebx
mov bl,[GUIwinorder+eax] mov bl,[GUIwinorder+eax]
cmp byte[GUIHold],2 cmp byte[GUIHold],2
je .hold2 je near .hold2
cmp byte[GUIHold],3 cmp byte[GUIHold],3
je near .hold3 je near .hold3
cmp byte[GUIHold],4 cmp byte[GUIHold],4
@@ -343,6 +345,8 @@ ProcessMouseButtons:
je near .hold5 je near .hold5
cmp byte[GUIHold],6 cmp byte[GUIHold],6
je near .hold6 je near .hold6
cmp byte[GUIHold],7
je near .hold7
cmp byte[GUIHold],1 cmp byte[GUIHold],1
je near .hold je near .hold
cmp byte[GUIHold],255 cmp byte[GUIHold],255
@@ -452,6 +456,23 @@ ProcessMouseButtons:
.nogreat6 .nogreat6
mov byte[lastmouseholded],1 mov byte[lastmouseholded],1
jmp DisplayGUISpeedClick 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 .hold
cmp word[GUImouseposy],16 cmp word[GUImouseposy],16
jge .noover jge .noover
@@ -2182,7 +2203,7 @@ DisplayGUIMovieClick:
%%noclick %%noclick
%endmacro %endmacro
%macro GUIPTabClick 4 ; minX, maxX, var, value %macro GUIPTabClick 3-* ; minX, maxX, value, var, vars to zero
cmp eax,%1+1 cmp eax,%1+1
jl %%noclick jl %%noclick
cmp eax,%2-1 cmp eax,%2-1
@@ -2191,7 +2212,14 @@ DisplayGUIMovieClick:
jl %%noclick jl %%noclick
cmp edx,22 cmp edx,22
jg %%noclick 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 %%noclick
%endmacro %endmacro
@@ -2213,11 +2241,11 @@ DisplayGUIInputClick:
;x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick# ;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 GUIWinControl 5,36,107,34+5*8,GUIBlankVar,GUIcurrentinputviewloc,GUINumValue,35,8,GUIcurrentinputcursloc,4,3,0
GUIPTabClick 0,21,dword[GUIInputTabs],1 GUIPTabClick 0,21,1,GUIInputTabs
GUIPTabClick 22,43,dword[GUIInputTabs],2 GUIPTabClick 22,43,2,GUIInputTabs
GUIPTabClick 44,65,dword[GUIInputTabs],3 GUIPTabClick 44,65,3,GUIInputTabs
GUIPTabClick 66,87,dword[GUIInputTabs],4 GUIPTabClick 66,87,4,GUIInputTabs
GUIPTabClick 88,109,dword[GUIInputTabs],5 GUIPTabClick 88,109,5,GUIInputTabs
GUIPHoldbutton 123,34,153,45,14 ; Buttons GUIPHoldbutton 123,34,153,45,14 ; Buttons
GUIPHoldbutton 123,50,177,61,40 GUIPHoldbutton 123,50,177,61,40
@@ -2381,7 +2409,6 @@ DisplayGUIOptionClick:
%endif %endif
ret ret
DisplayGUIVideoClick2: DisplayGUIVideoClick2:
cmp dword[GUIVideoTabs],1 ; modes cmp dword[GUIVideoTabs],1 ; modes
jne near .notmodestab2 jne near .notmodestab2
@@ -2393,11 +2420,11 @@ DisplayGUIVideoClick2:
GUIPostWinBoxMove 5,27,115,27+5*8,GUIcurrentvideoviewloc,GUIcurrentvideocursloc,GUINumValue,.scrollup,.scrolldown,DisplayGUIVideoClick.skipscrol,5 GUIPostWinBoxMove 5,27,115,27+5*8,GUIcurrentvideoviewloc,GUIcurrentvideocursloc,GUINumValue,.scrollup,.scrolldown,DisplayGUIVideoClick.skipscrol,5
.notmodestab2 .notmodestab2
DisplayGUIVideoClick: DisplayGUIVideoClick:
GUIPTabClick 0,39,dword[GUIVideoTabs],1 GUIPTabClick 0,39,1,GUIVideoTabs,GUIVntscTab
GUIPTabClick 40,91,dword[GUIVideoTabs],2 GUIPTabClick 40,91,2,GUIVideoTabs,GUIVntscTab
cmp dword[GUIVideoTabs+4],3 cmp byte[NTSCFilter],1
jne .nontscf jne .nontscf
GUIPTabClick 92,125,dword[GUIVideoTabs],3 GUIPTabClick 92,125,1,GUIVntscTab,GUIVideoTabs
.nontscf .nontscf
cmp dword[GUIVideoTabs],1 ; modes cmp dword[GUIVideoTabs],1 ; modes
@@ -2542,13 +2569,103 @@ DisplayGUIVideoClick:
GUIClickCButtonT 115,183,byte[vsyncon],byte[Triplebufen] GUIClickCButtonT 115,183,byte[vsyncon],byte[Triplebufen]
%endif %endif
GUIClickCButton 11,183,byte[GrayscaleMode] GUIClickCButton 11,183,byte[GrayscaleMode]
.notfilterstab
cmp dword[GUIVideoTabs],3 ; NTSC
jne .notntsctab
.notntsctab
mov al,[vsyncon] mov al,[vsyncon]
mov [cfgvsync],al 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 xor al,al
ret ret
@@ -2944,7 +3061,7 @@ DisplayGUIOptnsClick:
cmp eax,25 cmp eax,25
jl near .nomovebar jl near .nomovebar
cmp eax,25+32*4-1 cmp eax,25+128
jg near .nomovebar jg near .nomovebar
sub eax,25 sub eax,25
shr eax,2 shr eax,2
@@ -3036,7 +3153,7 @@ DisplayGUIOptnsClick:
add eax,25 add eax,25
mov [GUIHoldXlimL],eax mov [GUIHoldXlimL],eax
mov eax,[GUIwinposx+10*4] mov eax,[GUIwinposx+10*4]
add eax,25+32*4-1 add eax,25+128
mov [GUIHoldXlimR],eax mov [GUIHoldXlimR],eax
.nohold .nohold
ret ret
@@ -3449,8 +3566,6 @@ DrawMouse:
cmp bl,220 cmp bl,220
ja .nomidshad ja .nomidshad
sub bl,189 sub bl,189
; test bl,01h
; jnz .nomidshad
shr bl,1 shr bl,1
add bl,189 add bl,189
mov [edi+288*7+5],bl mov [edi+288*7+5],bl
@@ -3458,6 +3573,7 @@ DrawMouse:
.nomidshad .nomidshad
.finishadow .finishadow
add al,88
mov [edi],al mov [edi],al
.nodraw .nodraw
inc esi inc esi

View File

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

View File

@@ -19,6 +19,8 @@
%include "macros.mac" %include "macros.mac"
%include "video/2xsaimmx.inc"
%include "video/copyvid.inc"
EXTSYM BGMA,V8Mode,antienab,cacheud,cbitmode,ccud,cfield,cgram,coladdb,coladdg EXTSYM BGMA,V8Mode,antienab,cacheud,cbitmode,ccud,cfield,cgram,coladdb,coladdg
EXTSYM coladdr,curblank,curfps,cvidmode,delay,extlatch,fnamest,En2xSaI 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 CSStatus2,CSStatus3,SpecialLine,Clear2xSaIBuffer,vidbufferofsb,bg1scroly
EXTSYM bg1objptr,DecompAPtr,HalfTransB,HalfTransC,cur_zst_size,old_zst_size EXTSYM bg1objptr,DecompAPtr,HalfTransB,HalfTransC,cur_zst_size,old_zst_size
EXTSYM MovieProcessing,mzt_chdir,UpChdir,MovieFrameStr,GetMovieFrameStr EXTSYM MovieProcessing,mzt_chdir,UpChdir,MovieFrameStr,GetMovieFrameStr
EXTSYM MovieDisplayFrame EXTSYM MovieDisplayFrame,SloMo,MouseCount,device2
EXTSYM MouseCount,device2
%ifndef __MSDOS__ %ifndef __MSDOS__
EXTSYM MouseMoveX,MouseMoveY,MouseButtons,MultiMouseProcess,mouse EXTSYM MouseMoveX,MouseMoveY,MouseButtons,MultiMouseProcess,mouse
%endif %else
%ifdef __MSDOS__
EXTSYM SB_blank,vsyncon,Triplebufen,granadd EXTSYM SB_blank,vsyncon,Triplebufen,granadd
%endif %endif
@@ -54,7 +53,6 @@ NEWSYM ScreenScale, resb 1 ; If horizontal is scaled or not
NEWSYM TempDebugV, resw 1 ; Temporary Debugging variable NEWSYM TempDebugV, resw 1 ; Temporary Debugging variable
SECTION .text SECTION .text
%macro MMXStuff 0 %macro MMXStuff 0
%%1 %%1
movq mm0,[esi] movq mm0,[esi]
@@ -67,56 +65,7 @@ SECTION .text
jnz %%1 jnz %%1
%endmacro %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 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 ; ShowVideo Processes & displays video
@@ -566,7 +515,8 @@ NEWSYM ASCII2Font
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,4Dh,4Ch,4Bh,4Ah,45h,46h,47h,48h,49h
NEWSYM FontData NEWSYM FontData
db 0,0,0,0,0,0,0,0 ; 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 01111100b,11000110b,11001110b,11010110b ; 0, 01
db 11100110b,11000110b,01111100b,00000000b db 11100110b,11000110b,01111100b,00000000b
db 00011000b,00111000b,01111000b,00011000b ; 1, 02 db 00011000b,00111000b,01111000b,00011000b ; 1, 02
@@ -2607,22 +2557,29 @@ SECTION .text
;******************************************************* ;*******************************************************
NEWSYM showfps NEWSYM showfps
mov cl,50 mov al,60
cmp byte[romispal],0 cmp byte[romispal],0
jne .nontsc je .ntsc
mov cl,60 mov al,50
.nontsc .ntsc
inc byte[curfps] inc byte[curfps]
cmp byte[nextframe],cl cmp byte[nextframe],al
jb .nofrc jb .nofrc
mov al,[curfps] mov cl,[curfps]
mov [lastfps],al mov [lastfps],cl
mov al,[curfps2] mov cl,[curfps2]
mov [lastfps2],al mov [lastfps2],cl
mov byte[curfps],0 mov byte[curfps],0
mov byte[curfps2],0 mov byte[curfps2],0
sub byte[nextframe],cl sub byte[nextframe],al
.nofrc .nofrc
mov cl,[SloMo]
cmp cl,0
je .noslw
inc cl
div cl
.noslw
mov cl,al
cmp byte[cbitmode],1 cmp byte[cbitmode],1
je near .do16b je near .do16b
@@ -2660,21 +2617,32 @@ NEWSYM showfps
ret ret
.do16b .do16b
mov al,[lastfps] mov esi,208*288*2+48*2
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] add esi,[vidbuffer]
mov al,[lastfps]
push ecx push ecx
call outputhex16 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 mov esi,208*288*2+48*2
add esi,[vidbuffer] add esi,[vidbuffer]
mov al,29h mov al,41 ; '/'
call outputchar16b call outputchar16b
pop ecx pop ecx
@@ -2690,43 +2658,9 @@ NEWSYM showfps
call outputhex16 call outputhex16
ret 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
SECTION .bss SECTION .bss
NEWSYM spcdebugaddr, resd 1 NEWSYM spcdebugaddr, resd 1
NEWSYM tempoffset, resw 1 NEWSYM tempoffset, resw 1
NEWSYM Testval, resd 1 NEWSYM Testval, resd 1
SECTION .text SECTION .text