GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Conversation

Notices

  1. Embed this notice
    Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:57 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️

    So I'm working on implementing support for GameLink, which is an underdocumented protocol for talking to DOSBox, to let you grab frames and memory and submit input and such.

    So I'm gonna write out some of how it works just so I'll (hopefully) understand it

    In conversation about 4 days ago from digipres.club permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:47 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      enough debugging the game and the script to talk to dosbox to debug the game, let's debug dosbox! why not!

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:48 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      or not. it seems to get the value 0x62 for every byte in memory. That's... weird.

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:48 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      so GFX_EndUpdate calls OUTPUT_GAMELINK_Transfer.

      OUTPUT_GAMELINK_Transfer calls GameLink::Out, which should set the values I'm looking at, including version.

      In conversation about 4 days ago permalink
      GreenSkyOverMe (Monika) repeated this.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:49 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      okay the version trick isn't working (and I'm not sure why), but this process is successfully getting bytes out.

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:50 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      PermissionError: [WinError 5] Access is denied.

      WHAT

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:50 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      okay that was just a thinko.

      but now I'm doing my version trick and it's not working. maybe I missed something

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:51 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      MapViewOfFile(shm_handle, FILE_MAP_READ, 0, 0, 0)

      hey foone maybe if you want write access, you should ask for it

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:52 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I think (but I'm not 100% certain) that the addresses it wants are 32bit linear addresses. So if you're running at 16-bit DOS program (and who isn't?), you'll need to linearize your address

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:52 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      well my first attempt at PEEKing over GameLink seems to be silently segfaulting python

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:53 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      a dumb-but-should-work way:
      set the sSharedMemoryMap_R4.version to some other value. DOSBox-x sets it every frame (and never reads it, so it doesn't care what it is set to)

      So if you read the value and it's 4, you know DOSBox-X has processed all your peeks. If it's not 4 yet, sleep a bit then lock the mutex and check again

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:54 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      So the way it works is that you set addr_count to how many bytes you want to read, and set the appropriate addresses in addr.
      then you release the mutex and wait

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:54 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      dosbox will fill out the data values for the requested addresses.

      I'm not sure how you know dosbox has filled them out.

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:55 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      So, the peek interface.
      https://github.com/joncampbell123/dosbox-x/blob/921acaa2915db5ea28b2ecba520a15e42e218175/src/gamelink/gamelink.h#L70C1-L77C4

      It's got addr_count, addr, data. The later two being arrays.

      In conversation about 4 days ago permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: opengraph.githubassets.com
        dosbox-x/src/gamelink/gamelink.h at 921acaa2915db5ea28b2ecba520a15e42e218175 · joncampbell123/dosbox-x
        DOSBox-X fork of the DOSBox project. Contribute to joncampbell123/dosbox-x development by creating an account on GitHub.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:56 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      Code to refer to is here:

      https://github.com/joncampbell123/dosbox-x/tree/master/src/gamelink

      So it's a shared memory region and a mutex. The way it works is you hold the mutex to access the shared memory.

      In conversation about 4 days ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 07-May-2025 15:06:56 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      The top level struct is sSharedMemoryMap_R4.

      https://github.com/joncampbell123/dosbox-x/blob/921acaa2915db5ea28b2ecba520a15e42e218175/src/gamelink/gamelink.h#L108C9-L108C28

      In conversation about 4 days ago permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: opengraph.githubassets.com
        dosbox-x/src/gamelink/gamelink.h at 921acaa2915db5ea28b2ecba520a15e42e218175 · joncampbell123/dosbox-x
        DOSBox-X fork of the DOSBox project. Contribute to joncampbell123/dosbox-x development by creating an account on GitHub.

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.