Tiny Emulators - 작은 에뮬레이터 모음

2 hours ago 1

Hacker News 의견들
  • -preview가 붙은 URL은 몇 가지를 시험하려고 만들었던 것으로, 2021년 이후 갱신되지 않은 낡은 주소다. 최신 주소는 https://floooh.github.io/tiny8bit/이다
    핀 에뮬레이션 외에도 CPU를 사이클 단위로 진행시키는 점이 흥미롭다. CPU가 시스템의 특별한 제어자 역할을 하지 않고 다른 칩과 함께 틱마다 움직인다. Z80에서는 명령어 하나당 분기 하나가 아니라 명령어 사이클마다 switch-case 분기 하나를 두며, 자세한 방식은 https://floooh.github.io/2021/12/17/cycle-stepped-z80.html에 정리했다
    원래 크리스마스 휴가 때 주로 작업하던 프로젝트였고 2023년 이후에는 거의 손대지 못했다. 그 뒤로는 sokol과 Dear ImGui 의존성을 갱신하고, 가끔 https://www.pouet.net/https://csdb.dk/에 올라온 새 데모를 추가한 정도다

  • 이 프로젝트를 보니 0x10c가 강하게 떠오른다. 가상 미니컴퓨터가 존재하는 세계관에 여전히 매료되어 있으며, 우주여행과 사이버펑크를 바탕으로 몇 가지를 구상하고 칩 설계에는 Zachtronics풍 요소를 섞었으며 판타지 변형까지 생각해 봤다
    다만 아무리 봐도 극도로 틈새적인 소재라는 생각을 떨칠 수 없다. 관심 있다면 여기서 이야기하거나 프로필의 이메일로 연락해도 좋다. 참고: https://en.wikipedia.org/wiki/0x10c

    • 0x10c를 바탕으로 기본적인 Zachtronics식 퍼즐 게임을 만든 적이 있으며, 지금까지도 가장 좋아하는 구상 중 하나다. 모두가 코딩에 몰두하는 출시 초기에도 전 세계 이용자가 수백 명 정도일 것 같아 재정적으로는 끔찍한 선택이 된다
      우주선 하드웨어를 다루려고 이용자가 운영체제 전체를 직접 만들고 싶어 할지, 게임 안에 소프트웨어 시장을 두고 우주선 제어 프로그램을 사고팔게 해야 할지부터 어렵다. 누군가 보상도 없이 DCPU용 Windows 3.1을 정말 만들까 싶다
      성공시키고 싶지만, 예전에 나온 오픈소스 게임은 BIOS 수준까지 내려가 대부분에게 지나치게 기술적이었다. 단지 우주선을 움직이려고 API/ABI 작업부터 하고 싶은 이용자는 드물 것이다
  • 이 프로젝트의 핀 수준 에뮬레이션 방식이 마음에 든다. 각 구성요소가 자체 완결적이고 모듈식으로 동작해 유연성이 크다
    극도로 얇지만 명시적으로 정의된 인터페이스는 상호운용성 측면에서 아직 충분히 탐구되지 않은 영역일 수 있다. 양쪽이 정해진 시점에 값을 표본화하고 시간상 접근을 위한 소수의 신호만 제공한다면, 핀이든 소수의 레지스터든 메모리 매핑 영역이든 적합성 시험에 훌륭한 대상이 된다
    AI 생성 코드 시대에는 명시적인 적합성 요구사항을 둔 모듈식 구성요소가 특히 유용할 수 있다. 블랙박스 내부가 어떻게 구현됐든 요구된 동작을 위반할 수만 없다면 신경 쓰지 않아도 된다

    • 그게 바로 소프트웨어 라이브러리의 기본 발상이며, AI가 없어도 가능하다 ;)
      실제로 자체 완결적인 라이브러리를 만들려면 약간의 규율이 필요하고, DRY를 외치는 쪽의 말을 지나치게 따르지 않아야 한다
    • Amstrad CPC 에뮬레이터의 모든 칩을 핀 수준까지 구현했지만, 이 모드로 실시간 속도를 내려면 M2 이상 CPU가 필요하다
      그래서 모듈성을 조금 포기해 속도를 높인 "soldered" 모드도 추가했다. 여기서는 CRTC를 떼어낼 수 없으며, 결국 고속 모드도 별도로 넣었다. 그래도 핀 수준 구현은 언제든 정확성을 검증할 수 있는 훌륭한 검증 오라클이 되어 그 자체로 가치가 크다
      이제 USB 연결 확장 포트를 만들어 실제 하드웨어를 모두 붙여 보고 싶다. 핀 수준 코드는 아직 공개하지 않았지만 일주일 정도 기다리면 된다
    • 하드웨어와 소프트웨어는 오래전부터 내부를 몰라도 되는 블랙박스와 모듈로 설계되어 왔다. 모든 것이 그렇지는 않지만 대부분 모듈성을 추구한다. 이제 AI를 만족시키려는 과정에서 더 많은 이들이 이 발상을 새삼 깨닫는 모습이 재미있다
  • 정말 멋지다. 어릴 때는 테이프로 게임 하나를 불러오는 데 영겁처럼 긴 시간이 걸렸는데, 이제는 순식간에 실행된다. ZX Spectrum의 Bruce Lee를 특히 좋아했다

  • Oric도 더 필요하다: https://oric.games/

  • 일부 게임은 예상보다 음량이 꽤 크게 설정되어 있다. 게임을 직접 클릭하기 전까지는 알기 어렵다

  • 사이트 UI에서 음량을 조절할 수 있으면 좋겠다. 몇몇 게임의 소리가 지나치게 크다

  • 주소를 https://floooh.github.io/tiny8bit/로 갱신해 달라. 공식적으로 연결된 주소이고 이전 제출에서도 사용됐으며, 개발자도 작년에 https://news.ycombinator.com/item?id=43821756에서 이를 알렸다
    게시자가 이 미리보기용 주소를 어디에서 찾았는지, 다른 곳에 연결되어 있었는지도 궁금하다

  • 이 프로젝트는 최소 8년 전부터 존재했다: https://hn.algolia.com/?query=Tiny%20Emulators&type=story&da...

Read Entire Article