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 Monday, 10-Feb-2025 01:06:00 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️

    void allocate_36800_bytes(void)

    reasonable functions that imply good things about how your program is designed

    In conversation about 5 months ago from digipres.club permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 01:05:57 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      char * strlen(void)

      I AM GOING TO TRY TO EXPLODE YOU WITH YOUR MIND

      In conversation about 5 months ago permalink
      Haelwenn /элвэн/ :triskell: likes this.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 01:05:58 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I would say it's the result of a badly written debug macro, ie there's a function that only prints #IFDEF DEBUG, instead of a function that's only called if DEBUG is defined.

      except it takes no parameters, so that'd only work if it's a debug function that examples globals and prints about them.

      which is possible, this program is global-heavy

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 01:05:58 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I typo'd that as "global-heaven" which I guess is also technically true, in more way than one. Heaven is a big part of this game.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 01:05:59 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      this program is either doing something sneaky and clever (overwriting its own code dynamically) or it's doing something stupid (calling a function with no body)

      I pray (no pun intended) that it's the latter

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 01:06:00 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I know programmers who use return values and parameters and they're all cowards

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 01:12:21 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      call it twice in a row! that makes even more sense!

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 01:12:21 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      sometimes the length of a string takes some time to settle, so to avoid race conditions you should always call strlen twice and check that the results match

      In conversation about 5 months ago permalink
      Haelwenn /элвэн/ :triskell: likes this.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 13:15:49 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      also FUCK I wrote a 32bit x86 emulator! I need a 16bit emulator!

      In conversation about 5 months ago permalink
      Haelwenn /элвэн/ :triskell: likes this.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 13:15:49 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      yes that's right, this isn't the first time I've gone "writing an x86 emulator would be easier than understanding this decompression code"

      I hate decompression code THAT MUCH

      In conversation about 5 months ago permalink
      Haelwenn /элвэн/ :triskell: likes this.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 13:15:50 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      it supports 20 entire instructions! (assuming you count Jcc as one, if not it's 25)

      is that the same 25 instructions this code uses? NO!

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 13:15:51 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      11 years ago!?

      https://github.com/foone/DecompVM

      In conversation about 5 months ago permalink
      Haelwenn /элвэн/ :triskell: likes this.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 13:15:52 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      maybe I should modify the emulator to give me Fake Protection. I need to write my own x86 emulator.
      again. sigh.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 13:15:53 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I had the bad idea of using 16bit protected mode to help me extract the decompress function, but there's a lot of reasons why that is probably a very bad idea

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 13:15:53 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I kinda want to yank the function out of the EXE into a separate tool and just call it remotely, but it's so globals-based that I'm worried it'd break writing some address I'm not emulating.

      So being able to have the pages not loaded and watching for page faults would be useful! unfortunately, 16bit real mode

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 13:15:54 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      changing THE STACK POINTER? in a function called multiple times in the decompress?

      WHAT THE FUCK ARE YOU DOING?

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 13:15:55 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      CLI
      MOV SP ,word ptr CS :[DAT_1000_c780 ]
      STI

      ALRIGHT, FUCK YOU. I'M GOING TO BED

      In conversation about 5 months ago permalink
    • Embed this notice
      Rich Felker (dalias@hachyderm.io)'s status on Monday, 10-Feb-2025 20:28:33 JST Rich Felker Rich Felker
      in reply to

      @foone Should be 10 per register, but make sure control register isn't in the dumb mode Windows defaults it to that breaks that.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:34 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      anyone know off the top of their heads how many characters you can reliably store in your standard x87 floating point register?

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:35 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      "what if I just smuggled in filenames using floating registers?"

      VERY NORMAL THOUGHTS, FOONE

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:36 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      this is a totally normal thing to think in 2025, guys.

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/978/597/843/128/580/original/6f8ba6bdafb5cb98.jpg
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:36 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      trying to script the DOSBox-X debugger by making a keyboard probably counts as using my powers for evil.

      I might still do it though. Someday I'll make a nice clean way to interface with DOSBox from python, but that would require a lot more work than just using a keyboard I made

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:37 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      the function that sneakily changes DS also changes SI.

      fun.

      this is definitely hand written assembly because compilers make more sense than this

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:38 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I can't find the exact details but that's definitely what's happening

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:38 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      after it makes that array of 256 0xFFFFs, it makes another array that's the values 0-255.

      suspicious. definitely doing some kind of huffmanning or LZ*

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:39 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      okay it's doing some weird effective-address calculating that means there's an implicit SS: prefix on that address.

      Ghidra is not showing this to me, which is very very confusing

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:40 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I'm now reading the DOSBox source code to try and figure this out because I have a normal life

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:41 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      it IS pulling from the SS register, but I do not know why

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:41 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      wikipedia has a great article documenting the ModR/M format used in x86 encoding, including a very handy table explaining how it works (in 16bit mode, too!), but it never mentions segment selectors once.

      https://en.wikipedia.org/wiki/ModR/M

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:42 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      SS:BP+06 is in linear addresses, 27748h

      but DS:BP+04 is 37758h

      those are different places. this shouldn't work, unless I'm missing something very badly

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:43 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      16bit decompression is way worse than 32bit decompression, btw.

      there's multiple different DS here and I'm not sure when it's changing. sometimes it's loading stuff from 4 and 8 and that can't be normal, those aren't real addresss

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:43 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      okay so, see the "mov ES, [bp+06]"? That's normal code that is getting the arguments to the function, right? which are at +4 and +6 on the original stack pointer. They're accessing through BP because the stack pointer changes when they push those other registers, to preserve them.

      HOWEVER, look at the DS and SS. SS is 1810, but DS is 2811.
      The problem is that that instruction should be accessing DS:bp+06, not SS:bp+04. and those are DIFFERNT

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/977/733/411/563/704/original/d9c209cca20c7606.png
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:44 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I would also like this to be less than the slowest thing possible, but unfortunately my experience with x86-on-python has shown that to be tricky.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:45 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      what I want is a way to iteratively isolate a function.
      Like I tell it "hey, grab these bytes from this EXE. that's a function with this calling function. now call it, but trap whenever it accesses global data I haven't defined or calls other functions"

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:45 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      then I can go through and add those extra functions until I have a magic Just Run The Function tool

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Monday, 10-Feb-2025 20:28:46 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      in fairness, x86 is documented. I can look up how it works. I can't do that with this decompression

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:15 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      time for some late-night reading

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/983/950/900/130/882/original/9432e09ff17bf1c2.png
      pistolero likes this.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:16 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      it's definitely multi-image, rather than simply animated. For example, the puzzle pieces at the end of a run are all in one chunk, they're just different images inside it.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:17 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      sadly this includes SODOMA.ART and SODOMB.ART, which render completely inaccurately.

      but hopefully I will be able to fix this tomorrow

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:17 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I did some looking into the file format. It's tricky because it doesn't seem to ever declare how many sub-images are in an image, it just determines it by the header length, and the header length is something like n*11+48?+16? and I'm only like 80% sure of those numbers.

      I need to find the code in the binary for loading this. I've just been staring at the hex. it seemed simple enough, but the multi-image format is more complex than I thought

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:18 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      okay I think I've got all the non-animated images extracting properly.

      other than one of jesuses which I can't figure out which palette it uses.

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/979/735/365/191/903/original/6a28b271971707eb.png
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:19 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I think what's happening is that there's some animation supported in this format, and the extra animation bytes in the header are throwing off the parsing of the image (explaining the color and scrolling) and then I don't support the sprites yet (explaining the missing head)

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:19 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I fixed the scrolling problem, but the palettes are still deeply fuckt.

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/979/639/691/795/255/original/e007fb546a664dee.png
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:20 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      WHERE'S YOUR HEAD?

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/979/582/804/070/924/original/34625c9e17481efb.png
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:21 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      whoops, I got my lefts and rights backwards. silly little-endian formats.

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/979/529/617/846/163/original/82e187da84e036ab.png
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:21 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      there are two ART formats: TITLEA.ART is the first one, and TITLEB.ART is the second one.

      ewww. two halves of one image but they're encoded differently!

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/979/539/443/741/752/original/9b56eae8293ed220.png
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:22 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      all dats extracted. I need to write some code to convert the ART files, but they're simple and I understand most of them already. but now I have 89 example files to work on.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:23 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      IT WORKS! I have DAT2 now!

      lets see how it breaks when we try DAT3...

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:24 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      my code starts right AFTER the chunk is loaded. I'd have to move it. MOTHERFUCKER

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:24 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      ALRIGHT HERE'S WHAT WE'RE DOING. WE'RE DOING IT LIVE.

      loadChunk is gonna fail. Fine.
      We ignore it, then call load_dat_file on the correct dat, then we call loadChunk again!

      This is stupid, but it means I don't have to move the fucking start position!

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:25 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      yep, changing it to DAT2 breaks it. I can't swap DAT2 into the place of DAT1, because it does indeed need other chunks from it.

      UGH.

      maybe I can just add my own call to load_dat_file at the top of my assembly. I do NOT want to have to relocate it, that sounds like it'd be REALLY FUCKING HARD

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:26 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I should do this to Carmen when I get back to that project. Then instead of understanding it's compression, I just bypass it completely

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:27 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      ... they put BIB100.MUS in DAT1 and DAT2.

      MOTHERFUCKER

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:27 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I can't just extract them all to the same folder, because there's duplicates. possibly different duplicates!

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:28 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      ahh, I forgot the implicit state.
      I'm injecting into the game when it first tries to load the title screen, which it does before it loads DAT2,DAT3,DAT5

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:28 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      hopefully I can just patch it to load DAT2 instead. That might break if it needs to use DAT1 resources first... I don't THINK it does? but I'm not sure.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:29 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      TO THE DEBUGGER, BATMAN!

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:30 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      it worked successfully so of course as soon as I try it on DAT2, it starts hanging.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:31 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      (that's why the filenames are a full 8.3 characters, so I can overwrite them with any valid DOS name)

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:32 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      then I compile that and I wrote a tiny python script to inject it into the EXE (by just copying the old EXE and pasting my shit in at an offset), and then I call that EXE once per chunk.

      well, I call a dosbox-x exe with a conf set to just run it and then exit.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:32 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      but since I didn't want to deal with writing code to parse the size and filenames and shit from the command line, I just have my script write a new EXE per chunk.
      It just takes the old EXE, applies patches over where size, "internal.ext", and "12345678.ext" are in the EXE, then it runs that new EXE

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:33 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      so I hacked the game like this:

      I wrote a little assembly program that basically just goes:
      unsigned short size=64020;
      ptr=loadChunk("internal.ext");
      f=fopen("12345678.ext","wb");
      fwrite(ptr,size,1,f);
      fclose(f);
      exit(0);

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:34 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      fuck it I'm overdumping every chunk by 5 bytes and I'll figure if I need to trim them later

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:34 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      YES! I extracted and decompressed every chunk in DAT1!

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:35 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I can't tell if I'm 5 bytes off when writing out this file. That's REALLY annoying

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:36 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      ugh why am I even using fwrite. it's a pain when I'm writing assembly. I'm gonna give up and just call int 21h

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:36 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      normal thoughts for a python programmer:

      "THIS C SHIT IS TOO HIGH LEVEL!"

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:37 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I miss the days when I could write:

      fwrite(ptr, size, 1, fp);

      and not worry about what segment ptr is in

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:38 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      setting the ORG wrong in your x86 assembly really fucks it up. It was calculating the addresses all wrong!

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:38 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      fopen("w","1234568.ext")

      WHY ISN'T IT WORKING?, I say, while hitting myself in the head

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:39 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I ran into a minor problem because I had to rewrite some code, as I'd written "MOV DS,CS" which won't work: you can only move to segment registers like DS from general purpose registers.

      So I rewrote it as:
      MOV AX, CS
      MOV CS, AX

      Yeah that second line is a typo. I typed CS instead of DS. CS is where it gets instructions from, so the x86 will not let you write to it, although the encoding allows it. So yeah, that didn't work, it triggered a CPU fault

      In conversation about 5 months ago permalink

      Attachments


    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Tuesday, 11-Feb-2025 16:05:40 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      sadly I'm giving up on the floating point idea. I'm just gonna rewrite the EXE between every iteration. it's a bit easier.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 12-Feb-2025 02:47:51 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      PROTESTANT SPOTTED

      (different religious traditions number the 10 commandments differently. The catholic 4th commandment is "Honour thy father and thy mother")

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/986/462/134/467/046/original/5aadf2f4a4eea60b.png
      Haelwenn /элвэн/ :triskell: likes this.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 12-Feb-2025 02:47:52 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      what is the theological use in teaching children to identify hellenistic-era settlements in the Levant?

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/986/420/267/899/976/original/f09ca30b41ec0c3c.png
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 12-Feb-2025 02:47:53 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      no, angel, I will never give you up

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/985/917/713/793/231/original/50756667f4419c01.png
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Wednesday, 12-Feb-2025 07:23:21 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      oh hello there spooky mario 64 creepypasta, what are YOU doing here in this EGA bible game?

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/987/576/787/460/223/original/1852348f58bc89ed.png
      Haelwenn /элвэн/ :triskell: likes this.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:50 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      this explains why all the copies online are incorrectly cracked: They zipped up their installation, which worked fine... on their machine.

      as soon as you run it on a different machine, it fails

      In conversation about 5 months ago permalink
      Haelwenn /элвэн/ :triskell: likes this.
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:51 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      It naturally encrypts the file. But it does it badly, so I can probably bypass it without too much trouble

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:52 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      And tested in DOS. It passes the copy protection!

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:52 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      okay, so I've patched out the copy protection, easy.
      I've created the hacked disk, as 1.44mb, then created it again as the correct 720kb.

      BUT IT TURNS OUT THERE'S ONE MORE

      That "DAT4" file? It's actually supposed to be to let you install this game to a hard drive, and it works by building signature of what your computer looks like (or as well as it can in DOS), and comparing it to a file.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:53 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      There we go.
      Track 39, side B, and the sector numbers go 1,2,3,255,5,6,7,8,9.

      No sector 4, so it'll fail to be found. Which is what I want.

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/997/003/467/126/456/original/1edf88a7fb5d282e.png
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:54 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I'm trying to format the disk with some RANDOM MEMORY as the sector numbers! no wonder it doesn't fucking work

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:54 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I'm amazed I didn't notice that in the debugger!

      OH WAIT I DON'T HAVE A DEBUGGER

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:55 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      FUCK! I clobbered ES! my code assumed ES never got modified, but when I had to do all the set-interrupt stuff I had to clobber it myself

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:56 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      save me foxflux:
      https://dbalsom.github.io/fluxfox/index.html

      HEY WHO STOLE MY WHOLE TRACK? WHERE ARE THE SECTORS?

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/996/938/933/244/251/original/5159cc28bdc987d9.png

    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:58 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      BOY IT WOULD BE NICE IF I COULD OPEN THIS IN A FLUX VISUALIZER

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:47:59 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I think that means I'm formatting the right track, but with the wrong sectors.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:01 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      the one annoying thing about doing this in an accurate emulator is that it's accurately emulating how slow the floppy drive is

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:01 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      so my current format seems to work, but it leads to the whole track being bad, apparently.
      sectors 02C7h through 02CF are bad.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:02 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      okay I think the problem may be slightly weirder: norton disk edit told me the wrong format for this drive.
      it's not 8 sectors a track, it's 9.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:03 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      NOPE! int13h, AH=18 returns it in ES:DI and int 21h,AH=25h takes it in DS:DI

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:04 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      fortunately DOS has a simple syscall I can use to set the vector. And surely the int 13h,AH=18 returns the new vector in the same registers as the dos set-interrupt syscall, right?

      RIGHT?

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:05 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      "Note: This function does not set the INT 1E vector to point at the returned parameter table; it is the caller's responsibility to do so "

      whaaaat

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:05 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      so the notes for int 13h/AH=05h say to call int13h/AH=17h first, to set up int 1E
      but the notes for Int 13h/AH=17h say not to use it, because it doesn't support 1.44mb drives, so use int 13h,AH=18h instead. but int13h, AH=18h doesn't set up INT 1E, which is THE ONLY REASON I'M CALLING IT

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:06 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      FAILED AGAIN.

      somehow sectors 321h, 323h, and 329h are bad.

      the fuck?

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:07 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      I'd love to show you what the low-level track looks like but I can't load .86f files the HxC tools. Once I do this on a real machine I'll have an image, though

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:08 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      BTW "BAD" is technically incorrect. Those sectors are not bad, in the sense we usually mean it: a spot on the disk that can no longer correctly store data, and reading from it will give checksum mismatches.

      No, those sectors are just not there. The drive controller is on the track, reading for those sectors numbers, and it finds nothing that matches.

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:09 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      nope fucked up again

      In conversation about 5 months ago permalink

      Attachments


      1. https://digipres.club/system/media_attachments/files/113/996/587/006/020/117/original/e3267c9c3c2e47b2.png
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:09 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      mov CX, 1300h ; TRACK 44

      HEY FOONE, IS 44 IN HEX "13"?

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:10 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      track 44, side B, sector 3

      In conversation about 5 months ago permalink
    • Embed this notice
      Foone🏳️‍⚧️ (foone@digipres.club)'s status on Thursday, 13-Feb-2025 23:48:11 JST Foone🏳️‍⚧️ Foone🏳️‍⚧️
      in reply to

      okay I'm back to trying to do the floppy hack correctly (so, on a DD disk) and OH NO I have to figure out where the sector is again.

      I hate converting between LBA and CHS

      In conversation about 5 months ago permalink

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.