그건 사실 그렇게까지 어렵진 않을 듯함
다만 UEFI엔 사운드 드라이버가 없는 걸로 알고 있고, 요즘은 오디오 코덱 칩조차 NDA 전용 데이터시트뿐이라 직접 작성하기도 까다로움
더 황당한 건 graphics output protocol에 vsync 정보가 없어서 찢김 없는 blitting이 안 된다는 점이고, 이건 문자 그대로 VGA보다 못함
UEFI는 약간 현대식 DOS처럼 느껴짐
솔직히 엄청 멋진 그림임
grub 같은 메뉴로 부팅했더니 고전 게임 목록이 쭉 뜬다고 생각하면 꽤 설렘
한마디로 bare metal용 SDL임
이 스크린샷이 특히 웃긴 이유는 DosBOX 자체가 SDL 위에서 만들어졌기 때문임
그럼 이제 DOS 안에서 도는 dosbox가 필요해짐
SDLception 그 자체임
이건 DJGPP를 쓰고 있어서 DPMI로 CPU를 32비트 모드로 전환함
그래서 segmented memory, near pointer, 온갖 64KB 제한이 난무하던 진짜 올드스쿨 감성은 못 느끼게 됨
직접 확인해볼 생각임
원래 DOS 출신인 OHRRPGCE를 다시 DOS로 포팅해야지 하고 몇 년째 마음먹고 있었음
그리고 SDL 1.2 시절에 있던 거의 모든 포트와 OS 지원을 SDL이 공격적으로 쳐냈던 걸 생각하면, SDL3가 DOS 지원을 되찾은 것은 꽤 놀라움
완벽함
오늘 아침에 macOS 안의 VMware Fusion 안의 Debian GNU/Linux 안의 DOSBox-X 안의 Turbo C로 개발하고 있었는데 딱 맞는 소식임
농담이었는지 진심이었는지 꼭 알고 싶음
Linux용 turboc 변종이 있었나 싶음
수십 년 전에 turboc로 작업했던 기억이 어렴풋이 남아 있음
그렇다면 영화 Inception도 재밌게 볼 듯함 :)
엄밀히 말하면 이건 이미 HXDOS로 가능했음
DirectDraw를 SDL이 쓸 수 있을 만큼 충분히 잘 에뮬레이션했기 때문임
잠깐, 뭐라고?
그럼 어떤 SDL 타깃으로 컴파일하는 건지 궁금함
Win32 독점 전체화면인지, 아니면 640x480 같은 VESA 해상도인지 궁금함
SDL 같은 오픈소스 프로젝트에서 이런 지원이 들어가는 건 보통 변경이 얼마나 침습적인지, 그리고 기여자가 실제로 유지보수까지 계속할지에 달려 있음
프로젝트마다 정책은 다르고 SDL 정책은 모르지만, 이미 포트가 많으니 스스로 무엇을 감당하는지 알고 들어가는 거라 봄
이런 희귀 아키텍처 지원은 거의 항상 꿈을 가진 한 사람, 그리고 그걸 실제로 만들고 유지하는 한 명의 영웅이 떠받침함
내가 가장 좋아하는 예는 openbsd luna88k https://www.openbsd.org/luna88k.html임
실제 사용자가 얼마나 있는지는 전혀 모르겠음. 아마 일본에서만 나온 꽤 희귀한 기계였던 것 같고, 사용자가 있다면 대부분 일본 쪽일 텐데 내 시야 밖이라 체감상 사용자는 포터 한 명뿐임
그런데도 매 릴리스마다 정식 공개일보다 몇 주 뒤 숲에서 툭 튀어나오듯 luna88k 파일과 패키지를 올려줌
실제 luna88k에서 컴파일하느라 오래 걸리는 게 아닐까 싶고, 어쨌든 그 정도면 OpenBSD의 공식 하드웨어 플랫폼으로 유지되기에 충분함
나 자신은 luna88k를 갖고 싶지도 않지만, 그렇게 계속 굴러가게 만드는 그 사람은 정말 존경스러움
SDL이 다시 Loki 시절의 뿌리로 돌아가는 느낌임
멋짐
왜냐고? 이유는 몰라도 멋지면 된다고 봄
이제 DOS에서 Dota 2를 돌릴 수 있으니까
브라우저 기반 DOSBox가 워낙 쉽고 빠르게 돌아가서, DOS는 작은 게임은 물론 꽤 본격적인 게임까지도 올릴 수 있는 휴대성 좋은 타깃이 됨
인터넷 아카이브를 보면 알 수 있듯, 키보드와 마우스만 있으면 중반 90년대 AAA급 복잡도까지는 사실상 어디서나 실행 가능함
Tomb Raider, Command & Conquer, Quake 같은 게임들이 그렇고, 그냥 잘 돌아가는 플랫폼을 원한다면 꽤 매력적임
여기에 SDL까지 생기면 훨씬 쉬워짐
Hacker News 의견들
이제 UEFI용 SDL만 있으면 게임을 OS 부팅 전 환경에서도 돌릴 수 있게 됨
보안이 더 단단해졌는지, 아니면 여전히 접근 가능한지도 궁금하고 https://www.zdnet.com/article/minix-intels-hidden-in-chip-operating-system/
다만 UEFI엔 사운드 드라이버가 없는 걸로 알고 있고, 요즘은 오디오 코덱 칩조차 NDA 전용 데이터시트뿐이라 직접 작성하기도 까다로움
더 황당한 건 graphics output protocol에 vsync 정보가 없어서 찢김 없는 blitting이 안 된다는 점이고, 이건 문자 그대로 VGA보다 못함
grub 같은 메뉴로 부팅했더니 고전 게임 목록이 쭉 뜬다고 생각하면 꽤 설렘
이 스크린샷이 특히 웃긴 이유는 DosBOX 자체가 SDL 위에서 만들어졌기 때문임
이건 DJGPP를 쓰고 있어서 DPMI로 CPU를 32비트 모드로 전환함
그래서 segmented memory, near pointer, 온갖 64KB 제한이 난무하던 진짜 올드스쿨 감성은 못 느끼게 됨
멋짐
SDL 바인딩을 지원하는 FreeBASIC의 386+ 대상 MS-DOS 실행 파일과 함께 쓰면 어떻게 될지 궁금해짐
[1] - https://github.com/freebasic/fbc
원래 DOS 출신인 OHRRPGCE를 다시 DOS로 포팅해야지 하고 몇 년째 마음먹고 있었음
그리고 SDL 1.2 시절에 있던 거의 모든 포트와 OS 지원을 SDL이 공격적으로 쳐냈던 걸 생각하면, SDL3가 DOS 지원을 되찾은 것은 꽤 놀라움
완벽함
오늘 아침에 macOS 안의 VMware Fusion 안의 Debian GNU/Linux 안의 DOSBox-X 안의 Turbo C로 개발하고 있었는데 딱 맞는 소식임
수십 년 전에 turboc로 작업했던 기억이 어렴풋이 남아 있음
엄밀히 말하면 이건 이미 HXDOS로 가능했음
DirectDraw를 SDL이 쓸 수 있을 만큼 충분히 잘 에뮬레이션했기 때문임
그럼 어떤 SDL 타깃으로 컴파일하는 건지 궁금함
Win32 독점 전체화면인지, 아니면 640x480 같은 VESA 해상도인지 궁금함
SDL 같은 오픈소스 프로젝트에서 이런 지원이 들어가는 건 보통 변경이 얼마나 침습적인지, 그리고 기여자가 실제로 유지보수까지 계속할지에 달려 있음
프로젝트마다 정책은 다르고 SDL 정책은 모르지만, 이미 포트가 많으니 스스로 무엇을 감당하는지 알고 들어가는 거라 봄
내가 가장 좋아하는 예는 openbsd luna88k https://www.openbsd.org/luna88k.html임
실제 사용자가 얼마나 있는지는 전혀 모르겠음. 아마 일본에서만 나온 꽤 희귀한 기계였던 것 같고, 사용자가 있다면 대부분 일본 쪽일 텐데 내 시야 밖이라 체감상 사용자는 포터 한 명뿐임
그런데도 매 릴리스마다 정식 공개일보다 몇 주 뒤 숲에서 툭 튀어나오듯 luna88k 파일과 패키지를 올려줌
실제 luna88k에서 컴파일하느라 오래 걸리는 게 아닐까 싶고, 어쨌든 그 정도면 OpenBSD의 공식 하드웨어 플랫폼으로 유지되기에 충분함
나 자신은 luna88k를 갖고 싶지도 않지만, 그렇게 계속 굴러가게 만드는 그 사람은 정말 존경스러움
SDL이 다시 Loki 시절의 뿌리로 돌아가는 느낌임
멋짐
왜냐고? 이유는 몰라도 멋지면 된다고 봄
인터넷 아카이브를 보면 알 수 있듯, 키보드와 마우스만 있으면 중반 90년대 AAA급 복잡도까지는 사실상 어디서나 실행 가능함
Tomb Raider, Command & Conquer, Quake 같은 게임들이 그렇고, 그냥 잘 돌아가는 플랫폼을 원한다면 꽤 매력적임
여기에 SDL까지 생기면 훨씬 쉬워짐
정말 기쁨
이건 나를 아주 행복하게 만듦