Repository navigation
Releases: movingwoo/wfeature
Releases · movingwoo/wfeature
Release list
W-Feature v0.6.0-pre02
게임패드
- 게임패드 지원 (KTF·LGT·SKT 공통)
전체화면
- ⛶ 전체화면 추가: 키패드를 숨기고 게임 화면을 최대로 키움.
화면 크기
- 📱 화면에 자동 추가 (기본값): KTF 게임은 패키지에 적힌 단말 화면 크기로 시작해, 176×220용 게임의 그림이 240×320 화면 구석에 몰리던 문제 수정. 화면 크기를 직접 바꾼 적 없는 게임은 자동으로 시작하고, 직접 골라 둔 크기는 그대로 유지
- 게임 중 화면 크기를 바꾸면 지금 재시작 버튼 표시
호환성
- 일부 KTF 게임이 이름 입력 칸에 키를 누르거나 플레이 도중 실행이 멈추던 문제 수정
- 일부 KTF 게임이 이름 입력 화면을 만들 때 멈추던 문제 수정
- KTF 게임이 키·터치 입력을 처리하다 게임 쪽 오류를 내면 게임 전체가 종료되던 문제 수정
- KTF 게임이 쓸 수 있는 표준 Java 기능(수학 함수, 진법 변환, 스레드 대기 등) 추가
- KTF 게임에서 타이머 콜백이 다른 타이머를 취소·재설정해도 무시되거나 두 번 실행되던 문제와 콜백 하나의 오류로 다른 타이머가 사라져 멈추던 문제 수정
- 이미지를 잘라 쓰거나 복사하는 KTF 게임, 오래 플레이한 KTF 게임이 메모리가 차서 종료되던 문제와 메모리가 거의 찬 상태에서 게임 객체가 잘못 회수되던 문제 수정
- 게임이 화면 밖 아주 먼 좌표나 화면보다 훨씬 큰 크기로 선·도형·호·이미지를 그리면 멈추던 문제 수정
- KTF 화면 전환 중 키 입력에 게임이 끝나거나 이벤트가 두 번 전달되던 문제 수정
- 일부 구형 KTF 게임(BREW)이 검은 화면에서 시작하지 않던 문제와, 구형 KTF 게임(BREW)의 방향키가 엇갈리고 * 키가 듣지 않던 문제 수정
- 구형 KTF 게임(BREW)에서 빨간색과 파란색이 뒤바뀌어 보이던 문제 수정
- 일부 구형 KTF 게임(BREW)이 시작하자마자 오류로 멈추거나, 화면이 검게 나오거나 타이틀 그림이 빠지던 문제 수정
- 일부 구형 KTF 게임(BREW)이 메뉴에서 게임으로 넘어가거나 화면을 바꿀 때 멈추던 문제 수정
- 네트워크 기능이 있는 일부 구형 KTF 게임(BREW)이 시작하지 않던 문제 수정 (서버 접속은 지원하지 않아 게임의 접속 실패 안내가 나옴)
- 구형 KTF 게임(BREW)에서 가운데·오른쪽 정렬 글자가 엉뚱한 자리에 그려지고, 메시지 창 글자와 채운 사각형이 빠지던 문제 수정
- 일부 KTF 게임이 장면을 넘기고 챕터를 불러올 때 오류로 종료되던 문제 수정
- LGT Java 게임이 직접 만든 입력 스트림을 감싸 읽으면 로딩 중 데이터가 깨지던 문제 수정
- LGT Java 게임이 스레드를 여러 번 시작하거나 4KB가 넘는 문자열을 다루면 종료되던 문제 수정
- LGT Java 게임에서 취소한 타이머가 한 번 더 실행되던 문제 수정
- LGT 게임에서 효과음을 오래 반복하거나 짧은 순간에 여러 번 멈추고 재생하면 종료되던 문제 수정
- 일부 LGT 게임이 인증서가 없다는 안내에서 넘어가지 못해 타이틀 화면에 머물던 문제 수정
- 일부 LGT Java 게임이 시작할 때나 첫 키 입력에서 멈추던 문제 수정
- 일부 LGT 게임이 엔딩 직전 마지막 방에 들어설 때 오류로 멈추던 문제 수정
- SKT LCDUI 목록에서 소프트키·메뉴 명령이 커서가 있는 항목을 고르지 않던 문제와 항목을 지운 뒤 확인 키나 게임이 목록·폼을 바꾸는 순간의 키 입력으로 게임이 끝나던 문제 수정
- SKT 숫자 전용 입력 칸에 키패드로 영문이 입력되거나 편집할 수 없는 칸이 고쳐지던 문제, 아주 긴 문장을 표시하는 화면이 키마다 멈추던 문제 수정
- SKT GameCanvas 게임에서 짧게 누른 키가 무시되던 문제, WIPI 화면 픽셀 읽기가 항상 실패하던 문제, WIPI 카드가 자기 위치·크기를 0으로 읽던 문제, 소프트키 상수가 사양과 다르던 문제 수정
- SKT 같은 타이머 작업을 두 번 예약하면 두 배로 실행되던 문제 수정
- 인터페이스에 선언된 상수 배열을 읽거나 동기화된 toString을 문자열로 이어 붙일 때 멈추던 문제, 문자열 메서드에 null을 넘기면 게임이 종료되던 문제, 데이터 끝에서 EOFException이 나지 않던 문제 수정
- Java 게임의 static synchronized 메서드와 클래스 객체에 거는 synchronized 블록이 서로 막지 않아 스레드끼리 값을 함께 고칠 수 있던 문제 수정
- ARM 코드의 일부 명령(CLZ·BLX 레지스터·포화 연산·하프워드 곱셈)이 잘못 실행되던 문제와 LDR·LDM으로 Thumb 코드로 돌아갈 때 상태가 바뀌지 않던 문제 수정
세이브
- KTF·LGT·SKT의 파일 저장 동작을 한 가지 규칙으로 통일
- 대소문자나 유니코드 정규화만 다른 세이브 이름이 macOS·iOS·Windows에서 한 파일을 함께 써 서로 덮어쓰던 문제 수정
- Windows가 쓸 수 없는 이름의 세이브가 저장되지 않던 문제 수정.
- SKT 게임에서 지운 세이브가 빈 파일로 남아 있는 것으로 보이던 문제, 닫지 않은 파일에 쓴 세이브가 게임을 끄면 사라지던 문제, 같은 파일을 여러 번 열면 방금 쓴 내용이 보이지 않거나 이전 내용으로 덮이던 문제 수정
- LGT 게임이 같은 파일을 여러 번 열면 서로 쓴 내용이 보이지 않거나 나중에 닫은 쪽이 덮어쓰던 문제, 파일 출력 스트림에 쓴 내용이 flush 전까지 다른 읽기·퀵세이브에 반영되지 않던 문제, 지운 저장 파일이 게임 종료 때 되살아나던 문제 수정
- KTF Java 게임이 같은 파일을 두 번 열면 먼저 연 쪽이 나중에 쓴 내용을 보지 못하던 문제와 잘라내기로 연 파일이 첫 쓰기 전까지 이전 세이브를 보여 주던 문제 수정
- 이름(SKT)이나 PID(KTF·LGT)에 콜론·물음표 등이 들어가거나 이름이 긴 게임이 브라우저에서 세이브 없이 실행되어 진행이 사라지던 문제 수정.
- SKT WIPI 파일 열기 모드를 사양과 다르게 처리해 세이브가 읽히지 않거나 짧은 세이브 뒤에 이전 세이브 뒷부분이 남던 문제 수정
- SKT 저장소 목록이 어긋나거나 두 스레드가 같은 저장소를 고칠 때 세이브가 덮이거나 오래된 내용이 남을 수 있던 문제와 세이브를 읽지 못하면 빈 세이브로 덮어쓸 수 있던 문제 수정
- LGT 게임 종료 처리 중에 쓴 저장 내용, Java 파일 출력 스트림으로 쓴 저장 내용, 저장소 쓰기가 실패한 저장 내용이 사라지던 문제 수정
- LGT 게임이 저장 파일을 잘라내기로 열고 닫으면 이전 저장이 남던 문제와 같은 데이터베이스를 두 번 열면 새 기록이 이전 내용으로 덮이던 문제 수정
- LGT Java 게임이 이미 닫은 파일을 다시 닫으면 게임이 종료되던 문제와 파일을 닫은 뒤에도 열려 있던 스트림으로 쓴 저장 내용이 사라지던 문제 수정
- KTF 게임에서 잘못된 파일 이름 하나로 이후 세이브가 실패하거나 한 세션에서 파일을 4095번 넘게 열면 저장하지 못하던 문제, 지운 세이브가 남아 있는 것으로 보이던 문제 수정
- KTF Java 게임이 저장할 때 바이트마다 파일 전체를 다시 써서 오래 멈추던 문제 수정
- 일부 LGT 게임이 한글 이름의 세이브 파일을 만들면 macOS·iOS에서는 저장되지 않고 Windows에서는 다른 한글 이름의 세이브와 한 파일을 쓰던 문제 수정
- 손상되었거나 비어 있는 세이브 백업을 가져오면 세이브가 지워지거나 일부만 복원되던 문제와 macOS에서 방금 복원한 세이브가 지워질 수 있던 문제 수정
- iOS 앱에서 가져오기가 아무 동작도 하지 않던 문제 수정
소리
- 앱(Android WebView)처럼 오디오 시계의 정밀도가 낮은 환경에서 짧은 음이 한 시점에 몰리거나 잘못된 크기로 끝나던 문제 수정
- 소리 이벤트를 게임 시각에 맞춰 예약 재생해 전송 묶음이나 게임 속도 변경 때문에 리듬이 뭉개지던 문제 개선
- 전송 중 소리 이벤트가 조금(0.2초 이내) 늦게 도착하면 끊지 않고 이어서 재생하고 빠지거나 더 늦게 도착하면 현재 재생 상태로 복구
- 게임 처리가 잠깐 밀렸다가 따라잡을 때 소리가 끊겼다 다시 나던 현상 감소
- 같은 채널·음을 쓰는 소리 하나를 멈추면 다른 소리까지 끊기던 문제와 멈춘 효과음의 잔향이 계속 울리던 문제 수정
- 게임이 바꾼 기기·클립 볼륨이 실제 소리에 반영되도록 수정 (KTF·LGT·SKT), SKT 플레이어 음소거도 반영
- 일부 KTF 게임에서 게임 안 음량 설정이 소리에 반영되지 않던 문제 수정
- 일부 KTF 게임이 일시정지할 때 배경음도 함께 멈춤
- 일시정지한 소리를 다시 재생하면 처음부터 시작하던 문제 수정
- 재생 중 볼륨·익스프레션·팬 변경, 서스테인 페달, 피치 벤드 범위, 컨트롤러 초기화 지원
- 효과음(PCM) 트랙의 볼륨·익스프레션·팬 반영
- 재생 이벤트를 받는 게임에 재생 상태 알림 전달 (KTF·LGT·SKT Java)
- SKT: 반복 횟수를 지정한 소리가 끝없이 반복되거나 끝나도 재생 중으로 남던 문제, 효과음 톤을 256번 넘게 재생하면 실패하던 문제 수정
- 일부 곡이 중간부터 1~15분 동안 소리가 나지 않던 SMAF 해석 오류 수정
- 일부 음의 세기가 잘못 재생되던 SMAF 해석 오류 수정
- 손상된 소리 파일 때문에 메모리를 과하게 쓰지 않도록 해석 한도 추가
- 핸드셋 트랙이 다섯 개 이상인 손상된 SMAF 사운드를 재생하면 게임이 종료되던 문제 수정
퀵세이브/퀵로드
- 재생 중이던 소리의 위치·음량·일시정지 상태를 퀵로드와 재접속 후에도 이어서 재생
- 게임 속도를 바꾼 KTF 게임의 퀵세이브·소리 시각이 어긋나던 문제 수정
- 일부 SKT WIPI 게임에서 퀵세이브가 거절되던 문제 수정
- 범위를 벗어난 사운드 데이터 하나 때문에 이후 모든 퀵세이브가 거부되던 문제 수정
- 게임이 버린 이미지가 남아 있으면 KTF 퀵세이브가 거절되던 문제 수정
문자 입력
- 입력 불가능을 웬만하면 보이게 하지 않도록 정리 (대부분의 경우 입력창은 활성화 됨)
- 일부 게임에서 문자 입력 후 다른 버튼을 한 번 더 눌러야 입력한 글자가 화면에 나타나던 문제 수정 (KTF·LGT·SKT)
- 일부 LGT 게임에서 이름을 끝까지 입력해도 앞 두 글자만 들어가던 문제 수정
- 일부 LGT 게임에서 문자 입력이 매번 실패하고 이름에 '0'이 들어가던 문제 수정
- 일부 SKT 게임에서 입력한 이름이 어두운 입력 칸에 묻혀 보이지 않던 문제 수정
성능
- 키를 누르고 뗄 때마다 키패드 화면 배치를 다시 계산하던 비용 제거
- 소리가 나지 않는 동안 서버가 매 틱 보내던 소리 시각 메시지를 0.1초에 한 번 이하로 줄여 브라우저 부담 감소
- 연결이 밀려 소리 시각 메시지를 보내지 못할 때 재생 중인 소리 전체를 다시 맞추며 끊던 문제 수정
- 게임 실행 속도 3~5% 향상, SKT 게임의 Java 실행은 최대 9% 향상 (빌드 최적화 프로파일 갱신)
- KTF 게임이 같은 클래스를 다시 등록하거나 그림을 복사하거나 네이티브 함수를 부를 때, KTF·LGT 게임이 문자열을 읽을 때, 서버가 게임 메모리를 읽을 때 들던 CPU 감소 (가벼운 KTF 게임은 서버 CPU 사용량이 절반 이하로, 가장 무거웠던 KTF 게임은 16배 빨라짐)
- Java 게임의 형 검사(instanceof·캐스트)가 검사마다 메모리를 할당하던 비용을 없애고 같은 검사는 결과를 기억해 재검사하지 않음
보안
- 치트 콘솔 명령으로 서버의 파일을 읽고 쓸 수 있던 문제 수정
- 다른 사이트의 페이지가 서버에 게임 추가·삭제나 세이브 가져오기 같은 요청을 보낼 수 있던 문제 수정
- 게임 삭제 요청으로 게임이 아닌 관리 파일까지 지울 수 있던 문제 수정
- 비정상적으로 큰 크기나 압축 데이터를 담은 이미지·파일·배열 하나로 서버가 메모리 부족으로 종료될 수 있던 문제 수정
- Java 게임이 메모리를 끝없이 할당하면 서버가 메모리 부족으로 다른 게임까지 함께 종료될 수 있던 문제 수정
서버
- 리버스 프록시 뒤에서 외부 요청으로 서버를 종료(
/api/shutdown)할 수 있던 문제 수정 - 서버 종료 명령이 게임 정리가 끝나기 전에 종료됐다고 알리던 문제 수정
- 종료 처리에서 멈추는 게임이 대기 중이면 서버가 끝나지 않던 문제 수정
- macOS·Linux에서 터미널 창을 닫아 서버를 끄면 게임을 정리하지 않고 바로 꺼져, 탭을 닫아 대기 중이던 게임의 종료 시점 세이브가 빠질 수 있던 문제 수정
- 서버를 끌 때 종료 처리에 10초 넘게 걸리는 게임의 종료 시점 세이브가 빠질 수 있던 문제 수정
- 이미 끝난 서버를
stop이 오래 기다린 뒤 멈추지 못했다고 알리던 문제 수정 - 심볼릭 링크로 연결한 게임 폴더가 목록에 나오지 않던 문제 수정
디버그
- 디버그 빌드 로그에 소리 재생 지연 통계 표시
기타
- 안드로이드 앱에서 게임 진동이 울리지 않던 문제 수정
- 저장소에서 직접 빌드하려면 Go 1.26 이상 필요
- Xcode 27로 빌드한 iOS 앱이 iOS 27에서 켜자마자 종료되던 문제 수정
- 확인 창이 열린 상태에서 키보드 키가 게임에 전달되던 문제 수정
- 전체화면 전환이나 창 크기 변경 시 연사가 꺼지고 누르고 있던 키가 풀리던 문제 수정
- 게임 목록이 다시 그려진 뒤 속도·화면 크기 메뉴가 다른 게임의 값을 보여 주던 문제 수정
- 서버에 연결할 수 없을 때 브라우저의 영어 오류 문구가 그대로 보이던 문제, 다시 연결된 뒤에도 재연결 대기가 길게 남던 문제, 연결이 끊기며 실패한 퀵세이브·퀵로드 안내가 바로 사라지던 문제 수정
- 안드로이드 앱에서 화면 밀도나 글꼴 크기를 바꾸면 진행 중인 게임이 종료되던 문제, 앱을 뒤로 가기로 닫을 때 게임 종료 시점의 세이브가 빠질 수 있던 문제, 앱을 닫자마자 다시 열면 이전 게임의 종료 처리가 끝나기 전에 새 서버가 시작되던 문제 수정
- 치트 패널에서 '값 모름' 검색을 반복하면 메모리가 계속 늘던 문제 수정
- 안드로이드 앱 화면이 두 겹으로 열린 상태에서 위의 화면을 닫으면 서버가 함께 꺼지거나 아래 화면이 '이전 실행을 마치는 중...'에 멈춰 있던 문제 수정
W-Feature v0.6.0-pre
게임패드
- 게임패드 지원 (KTF·LGT·SKT 공통)
전체화면
- ⛶ 전체화면 추가: 키패드를 숨기고 게임 화면을 최대로 키움.
호환성
- 일부 KTF 게임이 이름 입력 칸에 키를 누르거나 플레이 도중 실행이 멈추던 문제 수정
- 일부 KTF 게임이 이름 입력 화면을 만들 때 멈추던 문제 수정
- KTF 게임이 키·터치 입력을 처리하다 게임 쪽 오류를 내면 게임 전체가 종료되던 문제 수정
- KTF 게임이 쓸 수 있는 표준 Java 기능(수학 함수, 진법 변환, 스레드 대기 등) 추가
- KTF 게임에서 타이머 콜백이 다른 타이머를 취소·재설정해도 무시되거나 두 번 실행되던 문제와 콜백 하나의 오류로 다른 타이머가 사라져 멈추던 문제 수정
- 이미지를 잘라 쓰거나 복사하는 KTF 게임, 오래 플레이한 KTF 게임이 메모리가 차서 종료되던 문제와 메모리가 거의 찬 상태에서 게임 객체가 잘못 회수되던 문제 수정
- 게임이 화면 밖 아주 먼 좌표나 화면보다 훨씬 큰 크기로 선·도형·호·이미지를 그리면 멈추던 문제 수정
- KTF 화면 전환 중 키 입력에 게임이 끝나거나 이벤트가 두 번 전달되던 문제 수정
- LGT Java 게임이 직접 만든 입력 스트림을 감싸 읽으면 로딩 중 데이터가 깨지던 문제 수정
- LGT Java 게임이 스레드를 여러 번 시작하거나 4KB가 넘는 문자열을 다루면 종료되던 문제 수정
- LGT Java 게임에서 취소한 타이머가 한 번 더 실행되던 문제 수정
- LGT 게임에서 효과음을 오래 반복하거나 짧은 순간에 여러 번 멈추고 재생하면 종료되던 문제 수정
- SKT LCDUI 목록에서 소프트키·메뉴 명령이 커서가 있는 항목을 고르지 않던 문제와 항목을 지운 뒤 확인 키나 게임이 목록·폼을 바꾸는 순간의 키 입력으로 게임이 끝나던 문제 수정
- SKT 숫자 전용 입력 칸에 키패드로 영문이 입력되거나 편집할 수 없는 칸이 고쳐지던 문제, 아주 긴 문장을 표시하는 화면이 키마다 멈추던 문제 수정
- SKT GameCanvas 게임에서 짧게 누른 키가 무시되던 문제, WIPI 화면 픽셀 읽기가 항상 실패하던 문제, WIPI 카드가 자기 위치·크기를 0으로 읽던 문제, 소프트키 상수가 사양과 다르던 문제 수정
- SKT 같은 타이머 작업을 두 번 예약하면 두 배로 실행되던 문제 수정
- 인터페이스에 선언된 상수 배열을 읽거나 동기화된 toString을 문자열로 이어 붙일 때 멈추던 문제, 문자열 메서드에 null을 넘기면 게임이 종료되던 문제, 데이터 끝에서 EOFException이 나지 않던 문제 수정
- Java 게임의 static synchronized 메서드와 클래스 객체에 거는 synchronized 블록이 서로 막지 않아 스레드끼리 값을 함께 고칠 수 있던 문제 수정
- ARM 코드의 일부 명령(CLZ·BLX 레지스터·포화 연산·하프워드 곱셈)이 잘못 실행되던 문제와 LDR·LDM으로 Thumb 코드로 돌아갈 때 상태가 바뀌지 않던 문제 수정
세이브
- KTF·LGT·SKT의 파일 저장 동작을 한 가지 규칙으로 통일
- 대소문자나 유니코드 정규화만 다른 세이브 이름이 macOS·iOS·Windows에서 한 파일을 함께 써 서로 덮어쓰던 문제 수정
- Windows가 쓸 수 없는 이름의 세이브가 저장되지 않던 문제 수정.
- SKT 게임에서 지운 세이브가 빈 파일로 남아 있는 것으로 보이던 문제, 닫지 않은 파일에 쓴 세이브가 게임을 끄면 사라지던 문제, 같은 파일을 여러 번 열면 방금 쓴 내용이 보이지 않거나 이전 내용으로 덮이던 문제 수정
- LGT 게임이 같은 파일을 여러 번 열면 서로 쓴 내용이 보이지 않거나 나중에 닫은 쪽이 덮어쓰던 문제, 파일 출력 스트림에 쓴 내용이 flush 전까지 다른 읽기·퀵세이브에 반영되지 않던 문제, 지운 저장 파일이 게임 종료 때 되살아나던 문제 수정
- KTF Java 게임이 같은 파일을 두 번 열면 먼저 연 쪽이 나중에 쓴 내용을 보지 못하던 문제와 잘라내기로 연 파일이 첫 쓰기 전까지 이전 세이브를 보여 주던 문제 수정
- 이름(SKT)이나 PID(KTF·LGT)에 콜론·물음표 등이 들어가거나 이름이 긴 게임이 브라우저에서 세이브 없이 실행되어 진행이 사라지던 문제 수정.
- SKT WIPI 파일 열기 모드를 사양과 다르게 처리해 세이브가 읽히지 않거나 짧은 세이브 뒤에 이전 세이브 뒷부분이 남던 문제 수정
- SKT 저장소 목록이 어긋나거나 두 스레드가 같은 저장소를 고칠 때 세이브가 덮이거나 오래된 내용이 남을 수 있던 문제와 세이브를 읽지 못하면 빈 세이브로 덮어쓸 수 있던 문제 수정
- LGT 게임 종료 처리 중에 쓴 저장 내용, Java 파일 출력 스트림으로 쓴 저장 내용, 저장소 쓰기가 실패한 저장 내용이 사라지던 문제 수정
- LGT 게임이 저장 파일을 잘라내기로 열고 닫으면 이전 저장이 남던 문제와 같은 데이터베이스를 두 번 열면 새 기록이 이전 내용으로 덮이던 문제 수정
- LGT Java 게임이 이미 닫은 파일을 다시 닫으면 게임이 종료되던 문제와 파일을 닫은 뒤에도 열려 있던 스트림으로 쓴 저장 내용이 사라지던 문제 수정
- KTF 게임에서 잘못된 파일 이름 하나로 이후 세이브가 실패하거나 한 세션에서 파일을 4095번 넘게 열면 저장하지 못하던 문제, 지운 세이브가 남아 있는 것으로 보이던 문제 수정
- KTF Java 게임이 저장할 때 바이트마다 파일 전체를 다시 써서 오래 멈추던 문제 수정
- 일부 LGT 게임이 한글 이름의 세이브 파일을 만들면 macOS·iOS에서는 저장되지 않고 Windows에서는 다른 한글 이름의 세이브와 한 파일을 쓰던 문제 수정
- 손상되었거나 비어 있는 세이브 백업을 가져오면 세이브가 지워지거나 일부만 복원되던 문제와, macOS에서 방금 복원한 세이브가 지워질 수 있던 문제 수정
- 세이브 가져오기 확인을 페이지 안의 확인 창으로 물어, iOS 앱에서 가져오기가 아무 동작도 하지 않던 문제 수정
소리
- 앱(Android WebView)처럼 오디오 시계의 정밀도가 낮은 환경에서 짧은 음이 한 시점에 몰리거나 잘못된 크기로 끝나던 문제 수정
- 소리 이벤트를 게임 시각에 맞춰 예약 재생해 전송 묶음이나 게임 속도 변경 때문에 리듬이 뭉개지던 문제 개선
- 전송 중 소리 이벤트가 조금(0.2초 이내) 늦게 도착하면 끊지 않고 이어서 재생하고 빠지거나 더 늦게 도착하면 현재 재생 상태로 복구
- 게임 처리가 잠깐 밀렸다가 따라잡을 때 소리가 끊겼다 다시 나던 현상 감소
- 같은 채널·음을 쓰는 소리 하나를 멈추면 다른 소리까지 끊기던 문제와 멈춘 효과음의 잔향이 계속 울리던 문제 수정
- 게임이 바꾼 기기·클립 볼륨이 실제 소리에 반영되도록 수정 (KTF·LGT·SKT), SKT 플레이어 음소거도 반영
- 일부 KTF 게임에서 게임 안 음량 설정이 소리에 반영되지 않던 문제 수정
- 일부 KTF 게임이 일시정지할 때 배경음도 함께 멈춤
- 일시정지한 소리를 다시 재생하면 처음부터 시작하던 문제 수정
- 재생 중 볼륨·익스프레션·팬 변경, 서스테인 페달, 피치 벤드 범위, 컨트롤러 초기화 지원
- 효과음(PCM) 트랙의 볼륨·익스프레션·팬 반영
- 재생 이벤트를 받는 게임에 재생 상태 알림 전달 (KTF·LGT·SKT Java)
- SKT: 반복 횟수를 지정한 소리가 끝없이 반복되거나 끝나도 재생 중으로 남던 문제, 효과음 톤을 256번 넘게 재생하면 실패하던 문제 수정
- 일부 곡이 중간부터 1~15분 동안 소리가 나지 않던 SMAF 해석 오류 수정
- 일부 음의 세기가 잘못 재생되던 SMAF 해석 오류 수정
- 손상된 소리 파일 때문에 메모리를 과하게 쓰지 않도록 해석 한도 추가
- 핸드셋 트랙이 다섯 개 이상인 손상된 SMAF 사운드를 재생하면 게임이 종료되던 문제 수정
퀵세이브/퀵로드
- 재생 중이던 소리의 위치·음량·일시정지 상태를 퀵로드와 재접속 후에도 이어서 재생
- 게임 속도를 바꾼 KTF 게임의 퀵세이브·소리 시각이 어긋나던 문제 수정
- 일부 SKT WIPI 게임에서 퀵세이브가 거절되던 문제 수정
- 범위를 벗어난 사운드 데이터 하나 때문에 이후 모든 퀵세이브가 거부되던 문제 수정
- 게임이 버린 이미지가 남아 있으면 KTF 퀵세이브가 거절되던 문제 수정
문자 입력
- 일부 게임에서 문자 입력 후 다른 버튼을 한 번 더 눌러야 입력한 글자가 화면에 나타나던 문제 수정 (KTF·LGT·SKT)
- 일부 KTF 게임에서 이름을 입력하면 첫 글자만 들어가고 '입력 불가능'으로 표시되던 문제 수정
- 일부 LGT 게임에서 이름이 제대로 들어갔는데도 '입력 불가능'으로 표시되던 문제 수정
- 일부 LGT 게임에서 이름을 끝까지 입력해도 앞 두 글자만 들어가던 문제 수정
- 일부 LGT 게임에서 문자 입력이 매번 실패하고 이름에 '0'이 들어가던 문제 수정
- LGT 게임에서 입력 칸이 없는 화면(시작 화면·메뉴 등)에도 '입력 가능'으로 표시되던 문제 수정
- 일부 SKT 게임에서 입력한 이름이 어두운 입력 칸에 묻혀 보이지 않던 문제 수정
- 단말 문자셋(KSC5601)에 없는 글자(이모지, '똠'·'햏' 같은 일부 한글 등)는 '입력 불가능'으로 거절
성능
- 키를 누르고 뗄 때마다 키패드 화면 배치를 다시 계산하던 비용 제거
- 소리가 나지 않는 동안 서버가 매 틱 보내던 소리 시각 메시지를 0.1초에 한 번 이하로 줄여 브라우저 부담 감소
- 연결이 밀려 소리 시각 메시지를 보내지 못할 때 재생 중인 소리 전체를 다시 맞추며 끊던 문제 수정
- 게임 실행 속도 3~5% 향상, SKT 게임의 Java 실행은 최대 9% 향상 (빌드 최적화 프로파일 갱신)
보안
- 치트 콘솔 명령으로 서버의 파일을 읽고 쓸 수 있던 문제 수정
- 다른 사이트의 페이지가 서버에 게임 추가·삭제나 세이브 가져오기 같은 요청을 보낼 수 있던 문제 수정
- 게임 삭제 요청으로 게임이 아닌 관리 파일까지 지울 수 있던 문제 수정
- 비정상적으로 큰 크기나 압축 데이터를 담은 이미지·파일·배열 하나로 서버가 메모리 부족으로 종료될 수 있던 문제 수정
- Java 게임이 메모리를 끝없이 할당하면 서버가 메모리 부족으로 다른 게임까지 함께 종료될 수 있던 문제 수정
서버
- 리버스 프록시 뒤에서 외부 요청으로 서버를 종료(
/api/shutdown)할 수 있던 문제 수정 - 서버 종료 명령이 게임 정리가 끝나기 전에 종료됐다고 알리던 문제 수정
- 종료 처리에서 멈추는 게임이 대기 중이면 서버가 끝나지 않던 문제 수정
- 심볼릭 링크로 연결한 게임 폴더가 목록에 나오지 않던 문제 수정
디버그
- 디버그 빌드 로그에 소리 재생 지연 통계 표시
기타
- 안드로이드 앱에서 게임 진동이 울리지 않던 문제 수정
- 저장소에서 직접 빌드하려면 Go 1.26 이상 필요
- Xcode 27로 빌드한 iOS 앱이 iOS 27에서 켜자마자 종료되던 문제 수정
- 확인 창이 열린 상태에서 키보드 키가 게임에 전달되던 문제 수정
- 전체화면 전환이나 창 크기 변경 시 연사가 꺼지고 누르고 있던 키가 풀리던 문제 수정
- 게임 목록이 다시 그려진 뒤 속도·화면 크기 메뉴가 다른 게임의 값을 보여 주던 문제 수정
- 서버에 연결할 수 없을 때 브라우저의 영어 오류 문구가 그대로 보이던 문제, 다시 연결된 뒤에도 재연결 대기가 길게 남던 문제, 연결이 끊기며 실패한 퀵세이브·퀵로드 안내가 바로 사라지던 문제 수정
- 안드로이드 앱에서 화면 밀도나 글꼴 크기를 바꾸면 진행 중인 게임이 종료되던 문제, 앱을 뒤로 가기로 닫을 때 게임 종료 시점의 세이브가 빠질 수 있던 문제, 앱을 닫자마자 다시 열면 이전 게임의 종료 처리가 끝나기 전에 새 서버가 시작되던 문제 수정
- 치트 패널에서 '값 모름' 검색을 반복하면 메모리가 계속 늘던 문제 수정
W-Feature v0.5.2
키패드 격자 편집
- 키 크기·좌우 비율·윗줄 조절을 없애고 기본 윗줄 칸의 가로폭을 반으로 나눈 14열×9행 통합 격자 구성
- 여러 칸을 눌러 선택하거나 드래그해서 병합
- 병합 버튼 나누기·키만 비우기·마지막 변경 되돌리기
- PWA 업데이트 중 이전 서비스 워커가 새 화면 캐시를 삭제하던 문제 수정
퀵세이브/퀵로드
- 실행 중인 게임을 저장한 시점으로 되돌리는 퀵세이브·퀵로드 추가
세이브 안정성
- 서버를 종료할 때 페이지가 연결된 채 실행 중이던 게임도 정상 종료하도록 수정
- 게임별 세이브 폴더가 심볼릭 링크이거나 세이브 폴더가 읽기 전용이거나 파일 잠금을 지원하지 않는 저장 장치에 있어도 0.5.1처럼 동작하도록 수정
- 세이브를 폴더 안에 두는 게임이 그 폴더가 있는지 확인하면 두 번째 실행부터 읽기 오류로 끝나던 문제 수정
- 내용이 0바이트인 레코드를 저장한 게임을 다시 실행하거나 퀵로드하면 그 레코드가 삭제된 것으로 읽히던 문제 수정
- KTF Java 게임이 열어 둔 데이터베이스를 지우고 다시 열면 같은 이름의 저장소가 둘 생겨 한쪽에 쓴 기록이 다른 쪽 기록을 덮어쓸 수 있던 문제 수정
- 심볼릭 링크와 실제 경로로 같은 세이브 폴더를 동시에 점유할 수 있던 문제 수정
호환성
- 클래스 상속 정보가 자기 자신으로 되돌아오는 LGT 게임에서 실행이 멈추던 문제 수정
- KTF 네이티브 패키지가 역슬래시(
\)가 들어간 이름으로 쓴 파일이 저장되지 않던 문제 수정
W-Feature v0.5.1
네트워크 사용량
- 화면이 바뀐 부분만 무손실로 전송: 안 바뀐 픽셀은 투명으로, 256색 이하는 팔레트로 압축
- 화면 전체가 조금씩 밀리는 스크롤 장면은 이동량과 새로 드러난 부분만 전송
- hq2x·hq3x·hq4x 확대를 브라우저에서 처리
- 효과음은 처음 한 번만 보내고 이후는 번호로 재생, 소리 이벤트는 바이너리로 압축
- 같은 순간의 화면과 소리를 한 번에 보내 전송 헤더 부담 감소
- 페이지 파일과 게임 목록을 압축해 전송
- 디버그 빌드 실행 로그에 초당 전송량(net) 표시
- 화면을 PNG 대신 WebP 무손실로 압축해 전송 (WebP를 지원하는 브라우저만)
키패드
- 오른쪽 위 소프트키
우상단버튼 추가 (키보드,) - 키패드 버튼 이름을 한글로 변경: Opts → 설정, Menu → 메뉴, Call → 통화, CLR → 취소
설정을 고정 버튼에서 키패드 칸에 넣는 키로 변경
호환성
- 일부 호환성 작업 진행
W-Feature v0.5.0
속도
- 동일한 화면의 중복 인코딩·전송을 줄여 CPU 사용량 개선
- 화면 확대 처리를 게임 실행과 분리해 화질 옵션 사용 시 실행 코어 부담 완화
- KTF 화면을 불필요하게 추가로 그려 진행이 빨라지던 문제 수정
- SKT 속도 설정을 낮춰도 진행이 지나치게 빠르던 문제 수정
- LGT 키를 누를 때만 진행 속도가 빨라지던 문제 수정
문자 입력
- 게임의 입력칸에 문자를 입력하는 기능 추가 (Opts → 🔤 문자 입력)
키패드
- Type1·Type2 기본 배치 교환 (저장된 커스텀 배치·크기·선택 타입 유지)
- 키패드에 추가 가능한 연사 스위치: 숫자 5·OK 키 대상, off <> manual <> auto 전환
호환성
- SKT 별도 JAR에 들어 있는 데이터를 읽지 못해 종료되던 문제 수정
- LGT 통신 오류로 진행하지 못하던 문제 수정
- LGT 내장 인증서를 읽거나 이미지를 BMP로 저장하지 못해 본편에 진입하지 못하던 문제 수정
- LGT 목록 항목을 교체하는 기능이 없어 플레이 중 종료되던 문제 수정
- KTF 추가 다운로드를 반복하던 문제 수정
- 지원하는 인증서·번호·라이선스 검사를 게임 실행 시 자동으로 처리
- 일부 인증·동의·연결 확인 절차를 외부 통신 없이 로컬에서 처리
- LGT 시작·메뉴·통화키 동작 개선
- SKT 메뉴 입력·화면 갱신 처리 개선
- 일부 SKT GNEX/GVM
.SGS초기 실행 경로 추가 - KTF 종료 처리와 Java·네이티브 코드 사이의 중첩 호출 안정성 개선
- 파일·리소스 읽기와 문자열 처리 호환성 개선
화면·소리
- LGT 지도·글자·상태 표시가 누락되거나 화면 일부가 검게 나오던 문제 수정
- LGT 설정 파일을 제대로 읽지 못하거나 지원 음원을 인식하지 못해 소리가 나지 않던 문제 수정
- KTF 초록 배경과 BMP 이미지 누락 수정
- KTF 영문·숫자 간격이 맞지 않던 문제 수정
- KTF 대화창·입력창 테두리가 그리기 영역 밖으로 깨져 나오던 문제 수정
- LGT 화면 시작 위치와 그림 복사 영역 오류 수정
- SKT 그리기 영역 경계 호환성 개선
- KTF 긴 처리 구간에서도 중간 화면을 브라우저에 전달하도록 개선
- LGT 시작 음성 이후 소리가 이어지지 않던 문제 수정
- 브라우저 오디오가 중단된 뒤 게임 키나 지원하는 화면 터치를 누르면 재개하도록 수정
- 브라우저 오디오가 중단되거나 재생 시간이 멈춘 상태에서도 조작 시 소리 복구를 시도하도록 보강
저장·모바일
- KTF 저장 파일과 내장 리소스 폴더의 이름이 겹칠 때 게임이 종료되던 문제 수정
- KTF 일부 게임의 1번 세이브 슬롯 생성이 연결 오류로 실패하던 문제 수정
- KTF 연속 슬롯 생성 중 사용 중인 배열이 메모리 회수 대상이 되어 종료되던 문제 수정
- 저장 데이터를 읽지 못했을 때 오류가 드러나도록 처리 개선
- 저장 파일·레코드 쓰기 실패 시 기존 데이터와 실행 상태를 보존하도록 보강
- Android·iOS 앱을 다시 열었을 때 브라우저 설정이 유지되도록 수정
PWA·업데이트
- 업데이트 중 이전 service worker가 뒤늦게 만든 캐시를 새 화면 로딩 시 다시 정리
- 오프라인에서 현재 버전의 화면 캐시만 사용하도록 수정
- 앱과 관계없는 캐시를 지우지 않도록 수정
- Chromium·WebKit에서 0.4.2 이후 업데이트 시 게임 파일·세이브·키패드 설정 보존과 세이브 백업 복원을 검증
W-Feature v0.5.0-pre02
속도
- KTF 화면을 불필요하게 추가로 그려 진행이 빨라지던 문제 수정
- SKT 속도 설정을 낮춰도 진행이 지나치게 빠르던 문제 수정
- LGT 키를 누를 때만 진행 속도가 빨라지던 문제 수정
문자 입력
- 게임의 입력칸에 문자를 입력하는 기능 추가 (Opts → 🔤 문자 입력)
키패드
- Type1·Type2 기본 배치 교환 (저장된 커스텀 배치·크기·선택 타입 유지)
- 키패드에 추가 가능한 연사 스위치: 숫자 5·OK 키 대상, off <> manual <> auto 전환
호환성
- SKT 별도 JAR에 들어 있는 데이터를 읽지 못해 종료되던 문제 수정
- LGT 통신 오류로 진행하지 못하던 문제 수정
- LGT 내장 인증서를 읽거나 이미지를 BMP로 저장하지 못해 본편에 진입하지 못하던 문제 수정
- LGT 목록 항목을 교체하는 기능이 없어 플레이 중 종료되던 문제 수정
- KTF 추가 다운로드를 반복하던 문제 수정
- 지원하는 인증서·번호·라이선스 검사를 게임 실행 시 자동으로 처리
- 일부 인증·동의·연결 확인 절차를 외부 통신 없이 로컬에서 처리
- LGT 시작·메뉴·통화키 동작 개선
- SKT 메뉴 입력·화면 갱신 처리 개선
- 일부 SKT GNEX/GVM
.SGS초기 실행 경로 추가 - KTF 종료 처리와 Java·네이티브 코드 사이의 중첩 호출 안정성 개선
- 파일·리소스 읽기와 문자열 처리 호환성 개선
화면·소리
- LGT 지도·글자·상태 표시가 누락되거나 화면 일부가 검게 나오던 문제 수정
- LGT 설정 파일을 제대로 읽지 못하거나 지원 음원을 인식하지 못해 소리가 나지 않던 문제 수정
- KTF 초록 배경과 BMP 이미지 누락 수정
- KTF 영문·숫자 간격이 맞지 않던 문제 수정
- LGT 화면 시작 위치와 그림 복사 영역 오류 수정
- SKT 그리기 영역 경계 호환성 개선
- KTF 긴 처리 구간에서도 중간 화면을 브라우저에 전달하도록 개선
- LGT 시작 음성 이후 소리가 이어지지 않던 문제 수정
- 브라우저 오디오가 중단된 뒤 게임 키나 지원하는 화면 터치를 누르면 재개하도록 수정
- 브라우저 오디오가 중단되거나 재생 시간이 멈춘 상태에서도 조작 시 소리 복구를 시도하도록 보강
저장·모바일
- 저장 데이터를 읽지 못했을 때 오류가 드러나도록 처리 개선
- 저장 파일·레코드 쓰기 실패 시 기존 데이터와 실행 상태를 보존하도록 보강
- Android·iOS 앱을 다시 열었을 때 브라우저 설정이 유지되도록 수정
PWA·업데이트
- 업데이트 중 이전 service worker가 뒤늦게 만든 캐시를 새 화면 로딩 시 다시 정리
- 오프라인에서 현재 버전의 화면 캐시만 사용하도록 수정
- 앱과 관계없는 캐시를 지우지 않도록 수정
- Chromium·WebKit에서 0.4.2 이후 업데이트 시 게임 파일·세이브·키패드 설정 보존과 세이브 백업 복원을 검증
W-Feature v0.5.0-pre
pre-release
문자 입력
- 게임의 입력칸에 문자를 입력하는 기능 추가 (Opts → 🔤 문자 입력)
키패드
호환성
- 지원하는 인증서·번호·라이선스 검사를 게임 실행 시 자동으로 처리
- 일부 인증·동의·연결 확인 절차를 외부 통신 없이 로컬에서 처리
- LGT 시작·메뉴·통화키 동작 개선
- SKT 메뉴 입력·화면 갱신 처리 개선
- 일부 SKT GNEX/GVM
.SGS초기 실행 경로 추가 - KTF 종료 처리와 Java·네이티브 코드 사이의 중첩 호출 안정성 개선
- 파일·리소스 읽기와 문자열 처리 호환성 개선
화면·소리
- KTF 영문·숫자 간격이 맞지 않던 문제 수정
- LGT 화면 시작 위치와 그림 복사 영역 오류 수정
- SKT 그리기 영역 경계 호환성 개선
- KTF 긴 처리 구간에서도 중간 화면을 브라우저에 전달하도록 개선
- LGT 시작 음성 이후 소리가 이어지지 않던 문제 수정
- 브라우저 오디오가 중단된 뒤 게임 키나 지원하는 화면 터치를 누르면 재개하도록 수정
저장·모바일
- 저장 데이터를 읽지 못했을 때 오류가 드러나도록 처리 개선
- 저장 파일·레코드 쓰기 실패 시 기존 데이터와 실행 상태를 보존하도록 보강
- Android·iOS 앱을 다시 열었을 때 브라우저 설정이 유지되도록 수정
PWA·업데이트
- 업데이트 중 이전 service worker가 뒤늦게 만든 캐시를 새 화면 로딩 시 다시 정리
- 오프라인에서 현재 버전의 화면 캐시만 사용하도록 수정
- 앱과 관계없는 캐시를 지우지 않도록 수정
- Chromium·WebKit에서 0.4.2 이후 업데이트 시 게임 파일·세이브·키패드 설정 보존과 세이브 백업 복원을 검증
W-Feature v0.4.2
호환성
- 게임이 직접 찍는 한글이 색 네모로 뭉개져 나오던 것 수정
- 게임 압축 파일 안에 들어 있는 세이브·데이터를 읽도록 수정
세션
- 다른 앱을 보거나 연결이 끊겼을 때 게임을 보관하던 5분 제한을 제거
- 같은 브라우저의 다른 탭에서 진행 중이면
이 화면에서 이어하기로 조작권을 이전 - 서버 전체에서 실행·대기 합계 최대 4개의 게임을 유지, 새 게임을 시작하려고 오래된 대기 게임이나 다른 기기의 같은 게임을 종료해야 할 때는 먼저 확인
편의
- 키패드가 7×4 격자 하나로 구성되며 배치와 크기를 직접 변경 가능
- 게임 삭제 기능 추가
- 게임 삭제로 지우는 게임은 게임 추가로 추가한 게임 뿐이며 세이브는 보관
W-Feature v0.4.1
모바일 앱 핫픽스
- 세이브 내보내기, 불러오기 모바일 환경 오류 핫픽스
W-Feature v0.4.0
모바일 앱 (실험)
- 안드로이드·iOS 앱 빌드
- 안드로이드는 APK, iOS는 서명 없는 IPA — 자세한 건
docs/mobile.md - iOS는 14.0부터 설치 가능
세이브 백업
- 세이브를 내보내기, 불러오기 (
.wfs)
화면
- 아이폰에서 게임 화면 맨 윗줄이 시계·배터리 표시줄에 가려지던 문제 수정
- 키패드가 화면 크기에 맞춰 배치
- 키패드 크기를 직접 조절하는 기능 추가
- 노치·제스처 바를 침범하지 않음
- "+ 게임 추가" 버튼 추가
소리
- SKT 플랫폼 소리가 아예 나지 않던 문제 수정
- 음악이 첫 곡만 1.9초마다 되풀이되던 문제 수정
- 효과음이 시작할 때마다 튀고 지직거리던 문제 수정
- 게임이 자기 음악을 스스로 끊어 무음이 되던 문제 수정
- 압축하지 않은 8비트 파형을 재생하지 않던 문제 수정
LGT
- 게임이 정한 그리기 영역이 실제로는 적용되지 않고 엉뚱한 값을 주던 문제 수정
- 픽셀에서 RGB 값을 꺼내는 함수가 게임에 아무것도 돌려주지 않던 문제 수정
- 게임이 플랫폼에 자기 자신을 물었을 때 답이 없어 첫 화면에서 키를 누르면 멈추던 문제 수정
- 긴 세션에서 메모리를 한 번도 회수하지 않던 문제 수정
KTF
- 일부 게임이 실행할 때마다 다른 오류를 내거나 시작하지 못하던 문제 수정
- 그림을 옮겨 그릴 때 엉뚱한 위치에서 읽어오던 문제 수정
- 바이트 배열을 읽는 스트림에 읽은 위치·길이 항목이 없어 시작하지 못하던 문제 수정
- 게임이 스스로 그리는 화면을 플랫폼이 한 번 더 그리던 문제 수정
- 줄바꿈·탭이 네모 상자로 그려져 문장 끝마다 상자가 붙고 가운데 정렬이 밀리던 문제 수정
- 같은 타이머를 매 프레임 다시 걸면 대기열이 가득 차 멈추던 문제 수정
- 게임이 방금 만든 폴더를 물었을 때 없다고 답해 시작하자마자 스스로 종료되던 문제 수정
- 첫 화면에서 멈춘 채 키를 받지 않던 문제 수정
SKT
- 게임 화면 아래쪽이 잘려 보이던 문제 수정
- 그림을 그리다 멈추던 문제 수정
- 메뉴 글자가 아래위로 겹쳐 보이던 문제 수정
- 일부 게임이 키를 전혀 받지 못하던 문제 수정
- 화면이 처음 나타날 때 게임에 알려주지 않아 그림이 안 뜨거나 키가 먹지 않던 문제 수정
- 방향키가 어떤 방향인지 게임에 잘못 알려줘 소프트키를 누르면 죽던 문제 수정
- 가입자 번호를 011로 시작하지 않게 두면(
-number) 다른 번호로 재조립되던 문제 수정
기타
- DRM 파일은 망가진 파일이 아니라 무엇인지 알려줌
checkgames가 게임 목록에 뜨지도 않는 하위 폴더까지 뒤져 없는 충돌을 보고하던 문제 수정checkgames의 KTF 게임 이름이 깨져 나오던 문제 수정checkgames가 SKT 게임을 검사하지 않던 문제 수정