Image Map Image Map
Page 51 of 58 FirstFirst ... 41474849505152535455 ... LastLast
Results 501 to 510 of 576

Thread: Tandy Sound Compatible PCB

  1. #501
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    5,945
    Blog Entries
    1

    Default

    In my defense, I didn't want to disassemble the entire thing, but rather teach CarlosTex a little assembly. RE'ing AMB.EXE in IDA, I can see that you're right
    Offering a bounty for:
    - The software "Overhead Express" (doesn't have to be original, can be a copy)
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  2. #502

    Default

    It is rather silly that they check for Tandy and then force it to use PC speaker. Maybe the authors really hated Tandy owners :P

  3. #503

    Default

    Quote Originally Posted by Trixter View Post
    There's actually Tandy detection code in there too.
    I already had that part figured, i mentioned it in a previous post. I was not aware the Compaq check though!


    Quote Originally Posted by Trixter View Post
    The NOT instruction to perform the inversion is only so that values of FF, FE, FD, and FC show up as 0, 1, 2, or 3. (Which is weird, they could have just compared the byte directly, but whatever.) This is their way of checking if the model byte matches FF (IBM PC, or Tandy if f000:c000=21h), FE (PC/XT), FD (PCjr), or FC (PC/AT).
    I know about the machine ID bytes and what was confusing me was why was there not a direct comparison to the byte. Because i'm mostly 8088 assembly illeterate the visual references are the ones i'm looking for first.

    Quote Originally Posted by Trixter View Post
    In my defense, I didn't want to disassemble the entire thing, but rather teach CarlosTex a little assembly.
    And i thank you for that! It is actually something i wish to learn. I gotta order that book.


    Quote Originally Posted by Plasma View Post
    The first two jumps are for Compaq and Tandy detection. NOP them so it always falls through to the PCjr check. Then change "not bl" to "mov bl, 2". This is the value bl would have if the machine byte was FDh (for PCjr) and then inverted.
    Holy crap, i was really close to patch it myself then! You see the only part i didnt understand was how the machine byte check was being made. I actually NOPped those jumps in a previous "desperate attempt" but since i never figured out the machine byte ID code just NOPping was not enough. I thought i was just a silly thought of mine and decided that maybe i would need assistance from the gurus.

    Quote Originally Posted by Plasma View Post
    It is rather silly that they check for Tandy and then force it to use PC speaker. Maybe the authors really hated Tandy owners :P
    And that crossed my mind too, although i'm not sure if they done it on purpose or they just messed up.

    Anyway, Plasma's suggestion works great and now Nine Princes in Amber can be patched too. I only tried it in DOSBox, but i'm sure it will work on my XT with the Tandy Sound Card.

    Funny about this all, PC's that are not Tandy or Compaq Portable don't even need to patch the NOP instrcutions. All is needed is to force PCjr detection by changing F6 D3 (not bl) to B3 02 (mov bl,2) at 8F1A offset.

    Edit: Tested and working on a real machine! Thanks to Plasma and Trixter.
    Last edited by CarlosTex; January 19th, 2017 at 03:39 AM.

  4. #504

    Default

    Good news,

    i patched 2 more games. One was The Wizard of Oz, which PC version seems to use the same engine as the Telarium adventure games, despite apparently being published by Windham.

    The other game is Below the Root, i patched the DOS conversion. This game does not play 3 voice music on a Tandy machine, but it does now.

    Code:
    seg000:0346                 mov     ah, es:0FFFEh
    seg000:034B                 cmp     ah, 0FDh ; ''
    seg000:034E                 mov     al, 0
    seg000:0350                 jnz     short loc_10354
    seg000:0352                 mov     al, 4
    It was rather easy to patch, by just changing the value on offset 054Fh 00 to 02.

    For the booter version the offset is 1B9Fh. Same treatment just replace 00 for 02.
    Last edited by CarlosTex; January 23rd, 2017 at 06:50 AM.

  5. #505
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    5,945
    Blog Entries
    1

    Default

    Do we have a repo for these patched versions yet?

    If not, I am offering to set up an FTP directory on ftp.oldskool.org and give the login/password to a user who is not myself, so that said user can be the contact for "forced tandy audio patched games" and upload them. I nominate CarlosTex.

    Are there any public file sharing sites that allow multiple people to have admin access to a single repo? You'd think that problem would have been solved by now. I know github can work in that capacity, but using it as a dump for patched binaries is not in the spirit of using github and is likely against their terms of service.
    Offering a bounty for:
    - The software "Overhead Express" (doesn't have to be original, can be a copy)
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  6. #506
    Join Date
    Dec 2014
    Location
    The Netherlands
    Posts
    2,024

    Default

    What if we write patch scripts instead, rather than the actual binaries?
    There's probably a generic DOS patcher out there, and if not, it's not too difficult to write one in Pascal or C I guess. Just a list of offsets and bytes.
    I've done a simple one in C for Windows, could be ported if someone wants.

    The patches will be smaller than the binaries, and they will not violate any laws or terms of service I guess.

  7. #507

    Default

    Quote Originally Posted by Trixter View Post
    Do we have a repo for these patched versions yet?

    If not, I am offering to set up an FTP directory on ftp.oldskool.org and give the login/password to a user who is not myself, so that said user can be the contact for "forced tandy audio patched games" and upload them. I nominate CarlosTex.
    I don't mind doing that at all. I already have a set of exe files ready and i'm gonna build a readme.txt file to document which and what are the changes to each game. ftp.oldskool.org was actually what i thought at first and i was eventually gonna contact you, if there was interest to host these patches.

    Quote Originally Posted by Trixter View Post
    Are there any public file sharing sites that allow multiple people to have admin access to a single repo? You'd think that problem would have been solved by now. I know github can work in that capacity, but using it as a dump for patched binaries is not in the spirit of using github and is likely against their terms of service.
    Because of the issue you mention i don't think github is a good place either.


    Quote Originally Posted by Scali View Post
    What if we write patch scripts instead, rather than the actual binaries?
    There's probably a generic DOS patcher out there, and if not, it's not too difficult to write one in Pascal or C I guess. Just a list of offsets and bytes.
    I've done a simple one in C for Windows, could be ported if someone wants.

    The patches will be smaller than the binaries, and they will not violate any laws or terms of service I guess.
    That's a very good idea, and probably th best way to go for the majority of people wanting to patch their games. However, i would like to keep the patched binaries in ftp.oldskool.org, specially because its a lot of fun to access the ftp from the actual vintage machines.

    I'm trying catch the smaller fish, by patching these CGA only games that also support 3 voice sound. Other games seem to be much harder to patch so i'm probably gonna need some help from the gurus. With time, we can have a lot of games patched.


    I would like to ask a moderator to move all the patching discussion from the last 2-3 pages to a different thread, so that this thread can be left just to the actual Tandy card discussion, even though the patching question is very much relevant to it.

  8. #508
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    5,945
    Blog Entries
    1

    Default

    Quote Originally Posted by Scali View Post
    What if we write patch scripts instead, rather than the actual binaries?
    Because this only works if the binaries don't change size. One of the first things I do patching binaries is uncompress them, so a simple patching util won't work. (I don't know of a free tool that does complex differential patching that runs in DOS)

    Quote Originally Posted by CarlosTex View Post
    I don't mind doing that at all. I already have a set of exe files ready and i'm gonna build a readme.txt file to document which and what are the changes to each game. ftp.oldskool.org was actually what i thought at first and i was eventually gonna contact you, if there was interest to host these patches.
    Okay, email me privately and I'll get it set up.
    Offering a bounty for:
    - The software "Overhead Express" (doesn't have to be original, can be a copy)
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  9. #509
    Join Date
    Dec 2014
    Location
    The Netherlands
    Posts
    2,024

    Default

    Quote Originally Posted by Trixter View Post
    Because this only works if the binaries don't change size. One of the first things I do patching binaries is uncompress them, so a simple patching util won't work. (I don't know of a free tool that does complex differential patching that runs in DOS)
    True, but in 99% of all cases, unp can probably take care of that. So that would make patching a 2-step process:
    1) Run unp on the binary
    2) Run the patch script

    I believe unp needs at least a 386 though, so you may have to end up doing the unp and patching in DOSBox or such, before transferring to the target machine. At least, that's what I normally do.

    An alternative could be a TSR-based patcher. You load the TSR with your patch-script, it hooks into some relevant DOS/BIOS call which you know will not be called until the binary is unpacked in memory. Then it patches on-the-fly.

    Sure, binaries are easier, but they aren't legal. The above methods are.

  10. #510

    Default

    I really don't think we need to worry about the legality of distributing 30 year old patched binaries that require additional data files to run anyway.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •