Jump to content

Urchlay

Members
  • Posts

    1,213
  • Joined

  • Last visited

Everything posted by Urchlay

  1. Warning: long rambling post, made at 4AM... I seem to remember reading about old-style terminals and why their numbers/punctuation were laid out the way they were, but it was ages ago. Wikipedia mentions it but doesn't go into detail: https://en.wikipedia.org/wiki/Keyboard_layout#History Early terminal keyboards were bit-shifting ASCII types. The keyboard (or the keyboard decoder in the terminal) would send ASCII codes 49 through 57 for the unshifted number keys, and the shift key would cause it to send the same codes with bit 4 cleared, which gave the punctuation in ASCII order. So the layout would look like: ! " # $ % & ' ( ) 1 2 3 4 5 6 7 8 9 For upper/lowercase, the shift key would clear bit 5 instead of bit 4, giving lowercase a-z in place of capital A-Z. All this stuff was probably done with logic gates, not in software. Very simple design. Of course the ASCII codes were chosen to match (or at least be similar to) the standard layout of mechanical typewriters, back when ASCII was first invented. I haven't used a mechanical typewriter in close to 40 years so I'm not sure how standardized the layout really was. I do remember using one that lacked the 1 key, had to type a lowercase L instead. Later on, because the technology kept getting smaller/faster/cheaper, the ASCII decode could be more or less arbitrary. There was no reason to tie the keyboard layout to the ASCII codes so strictly. So the old-style punctuation layout could be changed... Atari mostly stuck with the old standard, except they moved the parentheses over one key (so they're on 9 and 0) and put the @ above the 8. To me, switching between PC and Atari keyboard layouts is almost seamless. If I go a really long time without typing on an Atari, it takes a few minutes to adjust to it. But if I'm switching between PC and Atari keyboards several times a day, my brain & fingers automatically hit the right keys without conscious thought. Sort of like switching between guitar and ukulele. As for UK keyboard layouts, the modern one: https://en.wikipedia.org/wiki/UK_keyboard_layout shows the double-quote over the 2, but the rest of it matches the US PC layout (except the pound in place of #), not the Atari. Maybe the switch to @ over 2 just never caught on in the UK?
  2. I can think of a 'dumb' way to do it. Get a cheapo USB PC keyboard, use the 'brain' from it, just wire the Atari keyboard so the columns/rows connect where the original keyboard's columns/rows went. The keymap will be totally wrong, but every modern OS lets you remap the keyboard. The hardest part of that (to me anyway) would be the mechanical part: mounting the Atari keyboard inside the modern keyboard's case so it looks nice. Someone good at mechanical stuff could make a new case for it... Maybe you'd want to use a 1200XL keyboard, since it has more keys... And/or mount the guts of a CX-85 where the PC keyboard's numeric keypad would go.
  3. Super Unarc did this, IIRC it's just one line of GR.0 text. Another nice thing on the Atari, you could hear the SIO beeps. Sometimes that's all you got, to tell that a program was still running. Also some programs (Lords of Conquest, while the computer player is "thinking") made their own beeps. Though, this thread's about a cross-platform BASIC benchmark, there's no cross-platform way to make sound on these old machines.
  4. It's definitely a subtle effect. Probably the most noticeable thing is that if you get killed & start a level over, it's different the next time around. So memorization doesn't help. I'm just glad someone's playing it!
  5. You're probably right. But, I couldn't resist making the attempt, and it turns out to work OK, so: https://atariage.com/forums/topic/294135-river-raid-randomised/
  6. The "River Raid Bold" thread got me thinking about this game: https://atariage.com/forums/topic/293861-river-raid-bold/ So here's a simple River Raid hack. The terrain and enemy placement is partially randomized, based on player input. Basically the LFSR that's used to generate the map is clocked an extra time, every time the player fires a shot. The "preview" you see before starting the game is still the original layout. Whichever level you start out on, looks like the original map for at least the first screens' worth, until you start shooting. Carefully counting your shots will result in repeatable maps. The random enemies still follow the rules of the game: the balloon doesn't appear until level 3, the diagonally-moving enemy planes don't appear until level 5, etc. Lower levels have fewer enemies, as usual. As usual, even-numbered levels split into multiple paths with islands in the center of the river, and odd-numbered levels only have one path. The random terrain doesn't actually make the game more difficult, except that it means you can't memorize the maps. The "Press START key Use joystick 1" text has been replaced with "Randomised by Urchlay", so you can tell which version of the game you're playing. Also, for reference, the md5sum of the ROM is 0842355056c3f7f8598a9ae38df3ccfe. Download here: http://urchlay.naptime.net/~urchlay/src/river_raid_random_hack.rom This is a raw ROM dump. In your emulator, select "Standard 8KB cartridge". If anyone's really interested, I can post a .xex file and/or a .car file with a header.
  7. I'm pretty sure the maps are algorithmically generated. At least, I've read that the 2600 version does this. The 2600 version is only a 4KB ROM, there probably wouldn't be enough space to store all those maps. It probably uses an LFSR initialized to a known value as a repeatable "random" number generator. Changing the initial value would change all the maps. Changing the algorithm would also work, but you'd have to really know what you're doing. If it works the way I think it does, causing the LFSR to run one extra iteration every time the users presses the Fire button (and throwing away the result) would be interesting: the first level would always be the same, but after that the terrain would be different for every game, unless the player knows the trick and counts how many times he presses the button.
  8. Please don't take this stuff as a personal attack. It's meant as constructive criticism. I just finished reading a book on military hardware... Blockier too. Also, all tanks made since the very early days of tanks have angled armor on the front & back (the "glacis"), like the original sprites. The angle is there to deflect incoming enemy fire. It's such an obvious design that it's used by everyone, and has become part of what a tank looks like, to the general public. Your tank has vertical armor on the front and angled on the back, I'm not sure any tank ever made looks like that. Plus the tank body is actually shorter in the front, which kinda makes it less recognizable as a tank... Maybe take the original sprite and make it taller, without changing the sloped armor, and see how that looks to you? Copters haven't got propellors, it's a rotor (sorry, being pedantic). It looks OK, except you moved the center of it to the back of the body, so it's no longer mounted in the center of the body. I'm not sure a real helicopter built like that would be stable enough to fly... or if it flies, it might be impossible to control and give the pilot motion sickness. Maybe that level of realism is too much for an 8-bit game? The original sprite, you're right, the rotor is too small, a helicopter built like that also wouldn't get off the ground. What would be really cool (if possible) would be to add a tail rotor. It's OK for them to look different, they're enemy planes, made in a different country from the player's plane :) Your missile looks more like a spaceship (reminds me of the player's ship from Defender). See if you can make the body of the missile less tapered, and the tailfins more triangular. More squared-off tailfins might work too, example: https://en.wikipedia.org/wiki/File:Tomahawk_Block_IV_cruise_missile.jpg Also, your tailfins extend past the back of the missile, swept back like the wings of a fighter jet. Real ones don't do that (I think because the rocket exhaust might melt them), and that's part of why it looks like a spaceship. Don't read too much into all my rambling. This is your game mod, I'm just some random guy giving my opinions...
  9. I thought 5200 Star Raiders was ported from the 400/800 version in the first place? I haven't played it on the 5200, just going by screenshots I've seen and this video: https://www.youtube.com/watch?v=6cVg604AAk0 Looks identical to the 8-bit computer version, to me. Are there any differences in gameplay or graphics that aren't obvious from the video? Looks like all they changed was the controls.
  10. Interesting. Now I want one of these ESP8266 thingies... DNS is the slowest part of Fujichat. I can connect reliably with 19200 using a Linux box + slattach with an IP for the server, but DNS only works for me at 9600 or slower. The DNS resolver code in Fujichat comes straight from uIP. I didn't write it or even look at it very much, so there's likely plenty of room for optimization. It's too bad your ESP's firmware won't support 4800 bps. Most likely, DNS would work fine, and 4800 seems fast enough for IRC to me (YMMV of course).
  11. A friend gave me a "dead" 800XL with an ingot (in like 1987). The ingot was putting out something like 2 volts with reverse polarity. I don't know all there is to know about power supplies, but that's a bizarre failure mode, to me. The 800XL wasn't damaged by it thankfully. Tried to give it back to him, but he didn't want it (had replaced it already). Are there official (or unofficial even) schematics of the various power supplies? The difference between the ingot and the others isn't just that it's potted in epoxy, is it?
  12. The best *looking* one IMO is the upper-left. I have one and it looks great sitting next to an XL machine. Of course if you've got it on the floor under the desk, looks don't matter. Kinda wish I could get hold of a few dead ones, to reuse their cases.
  13. Keep the cord that goes from the power supply to the computer (with the DIN connector on it). Splice it to a modern 5V supply rated for at least 1.5 amps. Make sure you get the polarity right, and you're good to go. If you're really into the idea of doing it, you could hollow out the ingot and put your modern (physically smaller) power supply inside, so it still looks like Atari equipment. Looks like a lot of work, the ingot's full of ancient dried-up epoxy. I haven't tried it myself. I have a couple of ingots I've cut the cords from, can't think of a use for them. Paperweights? Bludgeoning weapon, like a flail, swing it around by the AC cord... don't have enough of them to use as bricks, or I could build a wall out of them. Tire chocks, to keep a car from rolling downhill if its parking brake is broken? One thought: when the ingot PSU fails in overvoltage mode, it's not the transformer that fails, right? Maybe salvage the transformer and check its voltage, I'd be willing to bet it's the same transformer that's in the 9VAC supplies Atari made for the 800, 810, 1050, etc. If so, you could use it for that purpose. Again, a lot of work, have to get it out of the epoxy.
  14. What kind of problem? Sometimes collisions just wouldn't register? The ROM shouldn't affect collisions... did you perhaps also upgrade from CTIA to GTIA around the same time? Or... maybe it could have been caused by a loose board, which got reseated when whoever did your upgrade took the machine apart & put it back together.
  15. { } ~ characters can possibly be sent by typing control codes on the Atari. Depends on the terminal you're using. The right brace } is ASCII code 125, which is the clear-screen key on the Atari, maybe you can type it with shift-clear, or maybe you have to press Esc first. Or maybe it's impossible... Ice-T probably has keystrokes to send those characters, since it has them in its font and can display them correctly at least. Have to find the Ice-T manual & check. I've never really used the Atari as a dumb terminal to do any serious programming-type tasks. My personal favorite editor is Vim (the terminal one, not GVim), and IIRC the best I got vim working with an Atari was using the old VT100 (aka VT102) terminal emulator... but it's limited to slow baud rates (1200 or maybe 2400 max) so not much fun to use. Mostly what I used the Atari dumb terminal for was the links browser, which IIRC works well with Bobterm (only 40 columns though)... and IRC, for which I tried various clients and settled on Rhapsody: http://rhapsody.sourceforge.net/ links works (or if you have trouble with it, try lynx), but a text-only browser without a mouse (or javascript, etc) is kinda painful to use on the modern web. I used it to post a message on AtariAge just to see if I could, but it's not much good for serious use. A Gopher client would be better, except Gopherspace is tiny these days, not much there. I only played around with using the Atari as a terminal for a short while. Then I started working on an Atari-native IRC client (FujiChat) using SLIP over the serial port, and haven't used the Atari as a dumb terminal much since then. One thing to be aware of: if you're using the SIO2PC to load software (emulating a disk drive with either Atariserver or RespeQt), you'll have to exit the drive-emulation software before starting up the getty or whatever on the same serial port. You could maybe write yourself a little shell script that looks something like: #!/bin/sh PORT=ttyS0 # or whatever you need while true; do echo "Running atariserver" atariserver -f /dev/$PORT echo "Running agetty" agetty -L $PORT 9600 vt100 # change this line to whatever your distro needs echo "Press ^C to exit or Enter to continue" read done When atariserver is running, select whatever terminal emulator disk image you're using, then boot the Atari. After it's running the term program, hit Enter on the Linux box's keyboard to start up a login prompt. Log in on the Atari, do whatever you like. When you log out, press Enter on the Linux box to get back into atariserver... The above does *not* work if you're using the atarisio kernel driver (you'd have to have modprobe, rmmod, and probably setserial commands in there). But it shouldn't be needed on modern systems anyway, unless maybe you insist on using POKEY divisor 0 for atariserver. Also if you don't want to run as root or use sudo, you'll have to add your user to whatever group owns the /dev/ttyS* devices (or diddle udev rules to make them readable/writable by normal users).
  16. Cut the RTS pin off of a *regular* serial cable (not a null one). The SIO2PC already cross-connects the PC and SIO RX/TX lines. Be aware that Ice-T requires at least a 128K Atari. There's an older version usually called ICET800 that will work in 48K, but not on an XL/XE (only on an 800 apparently). Might be able to use that with the Translator disk, I haven't tried. If you have trouble with Ice-T, try Omnicom or Kermit, both of those do 80-column text the way Ice-T does. There's also FlickerTerm, which does 80 columns using flicker. It's supposed to be pretty good, *if* you can use it without getting a headache (I can't). If you have trouble with things like the arrow keys not working, or weird characters in the display, try messing with the TERM environment variable on the Linux side.
  17. If you mean real RS232 (not a USB SIO2PC), yes, it works fine for terminal sessions. However, the AtariMax SIO2PC uses the RTS line to control whether it's in SIO2PC or 1050-2-PC mode. The default is 1050-2-PC, meaning whatever software you use will have to clear the RTS line... or, you can remove the RTS pin from your serial cable. What I did: I got a "port saver" 9-pin adaptor, which is just a pass-thru, male to female. I was lucky enough to find it on clearance at the local Microcenter for $2. Amazon sells them for $4: https://www.amazon.com/Monoprice-Male-Female-Saver-101185/dp/B001TIHZ3C (it says "gender changer" but isn't really, mine looks the same) You could also do this with an extension cable (also male-to-female), or if you have multiple 9-pin serial cables lying around, just modify one of them (and don't forget which one it is). The modification is simple: use a pair of needlenose pliers to pull pin 7 out of the cable or adaptor. For reference: https://www.stratusengineering.com/rs232-9-pin-pinout/ After you pull the pin, count to 3, then throw the adaptor... wait, no, that's directions for something else! :) When you use the modded cable/adaptor with the AtariMax SIO2PC, it will always work in SIO2PC mode. Software written for a regular "dumb" SIO2PC (or for a regular serial port) won't have to be modified. The disadvantage is that 1050-2-PC mode is unavailable (meaning you can't connect an Atari drive to the PC and read/write from it). If you need 1050-2-PC, you can switch to an unmodded cable or remove the port-saver. The other thing you'll want to do if you haven't already: use a real serial port, if possible. USB adaptors can work (especially FTDI-based ones), but they're hit-or-miss. You can get a PCI or PCIe serial port card pretty cheap: mine's got 4 ports and cost me $25, I've seen 2-port ones on Amazon for $15. This will make life a lot easier when using an SIO2PC with Linux, and will allow higher bit rates for drive emulation with atariserver or respeqt (I can use POKEY divisor 0 with atariserver). For terminal sessions, you'll have to make sure your getty or whatever you're using has hardware handshaking disabled. agetty calls this "local mode" and uses the -L switch to enable it. Once you get all this stuff working, if you're feeling adventurous, you can try getting your Atari on IRC with fujichat: http://urchlay.naptime.net/repos/fujichat/about/ Connect to the freenode network and join ##atari, and say hi!
  18. If you already had the older ANTIC on hand, I'd say try it. Since you have to buy one, might as well buy the newer one. ...at what point do we start pronouncing ANTIC as "antique"?
  19. Deoxit can also be found at music stores, e.g. Guitar Center or Sam Ash, if you don't want to wait for it to ship. Price might be a little higher, but you don't pay shipping. The CRC stuff is available 24/7 if you have a Wal-Mart within driving distance. Look in the automotive department. I've gotten good results with it on Atari stuff (e.g. filthy cartridge ports).
  20. Ugh, first time posting since the forum software update. The "Quote" button is gone, so I can't reply to you point-by-point... The 6502 used in the Atari computers can only address 64K of memory, which includes RAM, ROM, and memory-mapped I/O (e.g. the Atari's POKEY, ANTIC, etc chips take up address space). The extra 16K is "hidden", it uses the same address space as the OS ROM. To access it, software has to temporarily disable the ROM. Most software written back in the day doesn't use the extra 16K because (a) it requires extra programming to switch the OS on & off, and (b) there were lots of 800s out there still, using the extra XL RAM would mean the software wouldn't run on an 800. The self-test only tests the first 48K if the built-in BASIC is disabled, or the first 40K if it's enabled. The two long bars each represent half of the 16K ROM. It's divided in half because the memory-mapped I/O is mapped to the middle of the ROM area... fun fact: the 64K XL/XE machines are really only 62K, because there's no way to disable the 2K I/O window. The other 2K of RAM is physically present but impossible to access. The keyboard test shows the keyboard layout of the 1200XL, which has extra function keys F1 to F4. That's what the mysterious 1 2 3 4 across the top are supposed to represent. R is Reset, and can't be tested by the keyboard test because when you press it, it resets the system. H is the Help key, which exists on the 800XL but is located in a different place. It's normal for the Break key not to show up in the keyboard test. Also Ctrl-1 is the "pause the screen" key, it's not surprising that it doesn't do anything in the keyboard test. Hope this helps.
  21. Hm, wonder when they switched to the crappy boxes. I have the box my 400came in, in... '81? And it's the same as the one here, no sleeve, box is printed. Too bad I don't still have the 400 that came in that box
  22. You sure the trace inside the membrane sandwich is at fault? It might just need cleaning at the connector. I'd definitely try that first (just use 92% isopropyl alcohol, or something like Deoxit). Or... If you're not going to upgrade the RAM, you'll probably end up using the 400 just for cartridge games. Most of those would be fine without control, shift, or break.
  23. Here's a pretty good technical description of the 8-humanoids bug: http://forum.atarimania.com/viewtopic.php?t=2356 I still haven't found the old forum post I referenced in my notes, looks like I messed up the URL way back when I copied it. This was a few years back when I was working on a commented dissassembly of the Defender ROM. The only mystery remaining is... how did the person who cracked the game and introduced the bug not *notice* the bug? It's pretty noticeable if you finish level 1 without losing any humanoids: they get displayed in a row which is obviously not centered and has room for 2 more. Maybe that's just hindsight speaking? I guess there's one more mystery: who the cracker was. Probably the answer to that is lost to the ages...
  24. It's a bug caused by a badly done crack. There's a writeup and a corrected .xex version by Fandal, on the atarimania forums somewhere (I had a link to this, but it's no longer valid). There's supposed to be 10 humanoids, but whoever patched the ROM to defeat the copy protection (stop it overwriting itself), patched a section of code that shouldn't have been patched. The really (to me) weird thing is, the patches are only needed for a .xex version of the game. But later on, someone turned the patched .xex code back into a raw ROM image and included it in the Holmes Archive, and later it found its way into TOSEC, so this version was (still is) found all over the 'net. The 8-humanoids version isn't any kind of official alternate version, I wish it could disappear forever, but that's not how the internet works... The correctly dumped unpatched ROM (with 10 humanoids) lives here: http://www.atarimania.com/game-atari-400-800-xl-xe-defender_1561.html If it helps, the broken "8 humanoids" ROM image has md5sum: e8d52b4aa33da38f99312f9aa8b48885 ...and the proper one is: 8709351e76ec7c407e63c47ac53f8d19
×
×
  • Create New...