Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

130 Excellent

1 Follower

About billkendrick

  • Rank
    Chopper Commander
  • Birthday 05/04/1975

Contact / Social Media

Profile Information

  • Gender
  • Location
    Olympia, WA
  • Interests
    BASIC, Action!, games, demoscene, history

Recent Profile Visitors

8,191 profile views
  1. I posted the 'best of' my junk a few years back... categorized and "screenshots" (terrible cellphone camera photos of my C=1902 monitor) even! http://www.newbreedsoftware.com/atari/relics/ Don't judge... I was a kid.
  2. I remember impressing my friends (including my now-wife) back in the 90s by cranking out a starfield in QBASIC on one of our friend's random MSDOS PCs they had at their house. Yeah, I'm great at parties.
  3. Right after I got mine, I started asking a ton of questions and came up with a Quickstart Guide: https://github.com/FujiNetWIFI/fujinet-platformio/wiki/FujiNet-Quickstart-Guide Enjoy, and feedback (or edits; it's a wiki) welcome!
  4. Yes yes yes... I want to see the "N:" side of Fujinet go from "thing that runs on a physical, ESP-based Fujinet" to "C library that Atari800 can link to" >;-)
  5. So I've got 3 Lynxes now, while I've now got two of the new RetroHQ Lynx GameDrives, I also still have the original Lynx SD Cart. It works a bit differently, and I'm finally setting it up 'nicely' for my family to hopefully enjoy some 3-player games with me. I finally noticed the "romlist.txt" feature in the new menu update that came out last year (see https://atarigamer.com/articles/introducing-lynx-sd-menu-loader-version-2), and decided I'd take advantage of it. Seeing "FOOBAR~1.LNX" on the screen was a bit annoying and confusing and reminded me of the horrible days when I was using Windows in the late 1990s. But rather than just sit down and create some those text files by hand (and have to update them by hand whenever I add new games, or shuffle/organize ROMs into subdirectories), I created a little Bash shell script for Linux that can create such a file, given a list of ".lnx" files on the command-line. Usage would be something like "/path/to/make_romlist.sh *.lnx > romlist.txt" It's not going to be perfect, but I struggled to find any kind of tool to help with this process. The closest I found was "mshortname" from "mtools", but it's really focused on reading a floppy disk (A: drive aka /dev/fd0 😆). For example, my regular expressions for valid characters may be off. And while most disallowed characters convert to "_", spaces just go away. (So "Super Offroad.lnx" must become "SUPERO~1.LNX", not "SUPER ~1.LNX".) And it assumes there'll be no clashes (how would we even figure which is which!?), e.g., "FILENA~1.LNX" vs "FILENA~2.LNX". So, YMMV. Feel free to improve it, and post your updates to this thread! Here's example output when I ran it on a directory of LNX files: [email protected]:~/Lynx/sdcard_files_20201127$ rm romlist.txt ; ../make_romlist.sh *.lnx > romlist.txt rm: remove regular file 'romlist.txt'? y Shortening 'Assembloids' to 'Assemb~1' Shortening 'BattleZone2000' to 'Battle~1' Ignoring 'BlockOut'; it's already short... Cleaning 'Electrocop (USA, Europe)' to 'Electrocop_USA_Europe_'... ...shortening to 'Electr~1' Shortening 'GrowingTies' to 'Growin~1' Cleaning 'Hard Drivin' (USA, Europe)' to 'HardDrivin'_USA_Europe_'... ...shortening to 'HardDr~1' Cleaning 'Lemmings (USA, Europe)' to 'Lemmings_USA_Europe_'... ...shortening to 'Lemmin~1' Shortening 'SuperMissileCommand' to 'SuperM~1' [email protected]:~/Lynx/sdcard_files_20201127$ cat romlist.txt [Assemb~1.lnx]Assembloids [Battle~1.lnx]BattleZone2000 [Electr~1.lnx]Electrocop (USA, Europe) [Growin~1.lnx]GrowingTies [HardDr~1.lnx]Hard Drivin' (USA, Europe) [Lemmin~1.lnx]Lemmings (USA, Europe) [SuperM~1.lnx]SuperMissileCommand And here's the script itself: #!/bin/bash # make_romlist.sh # # Output content you can place in a 'romlist.txt' file on # an SD card used in a RetroHQ Lynx SD Cartridge (original # model, using new Lynx SD Menu 2, from March 2019; see # https://atarigamer.com/articles/introducing-lynx-sd-menu-loader-version-2) # # By Bill Kendrick <[email protected]> # 2020-11-27 - 2020-11-27 # # As seen in the README.md for Lynx SD Menu 2 # (the a menu system for loading Atari Lynx ROMs via the Lynx SD Cartridge. # Redesigned and updated by Atari Gamer.): # # [...] # By placing a file called romlist.txt in a directory you can specify long ROM # names for each of the 8.3 DOS file names. An example file is like so... # [gateszen.lnx]Gates of Zendocon # [alien.lnx]Alien vs Predator # [apb.lnx]All Points Bulletin # [awegolf.lnx]Awesome Golf # # Note that the short DOS (8.3) file name is in square brackets, followed by the long # ROM name. Maximum length for a ROM name is 45 characters. # The DOS (8.3) names could be in the form romnam~1.lnx. [...] OIFS="$IFS" IFS='|' vfat="A-Za-z0-9_'-" for lfn in [email protected]; do base=`basename $lfn .lnx` len=${#base} if [[ $base =~ ^[$vfat]+$ ]]; then if [ $len -gt 8 ]; then sfn=${base:0:6}~1 echo "Shortening '$base' to '$sfn'" 1>&2 echo "[$sfn.lnx]$base" else echo "Ignoring '$base'; it's already short..." 1>&2 fi else clean=`echo "$base" | tr -d " " | sed -e "s/[^$vfat]/_/g"` echo "Cleaning '$base' to '$clean'..." 1>&2 sfn=${clean:0:6}~1 echo "...shortening to '$sfn'" 1>&2 echo "[$sfn.lnx]$base" fi echo 1>&2 done IFS="$OIFS" Enjoy!
  6. I just fetched the latest firmware and tested this out (using Super Asteroids & Missile Command -- I had to rename the "xxx.bmp" directory to match the "xxx.lnx" filename for the ROM). It appears to work, but after paging through a couple of the screenshots, I get a mostly black screen (info bar at the bottom), and my Lynx locks up. Sometimes it happens after paging 1->2->3->4, but I also got it to happen going 1->2->1. So it doesn't seem to be an issue with the BMP files themselves. This is a Lynx II with a BenVenn LCD mod (if that matters in any way).
  7. Back in the late 1990s I invented "Super IRG" mode -- simply flickering two character sets to achieve more colors, inspired by APAC and ColorView modes of the era -- and used it in my game Gem Drop. The "IRG" here was meant to refer to ANTIC mode 4 [and 5] (seen in GRAPHICS 12 [and 13] on XL/XE OSes) -- the multicolor text mode. [*] I listened to @playermissile's latest podcast that dropped today, and he mentioned Super IRG. That reminded me... I couldn't for the life of me remember where I first came across the term "IRG". Everyone just calls it "ANTIC mode 4". (People don't even seem to particularly refer to "GRAPHICS 12" -- I assume since the 400/800 OS and BASIC had no such mode.) My own attempt to Google for relevant terms -- I'm usually thwarted by "interrecord gap" relating to cassette drive storage -- and @Savetz (via Twitter) both simultaneously reminded me of the Compute! type-in game "Thunderbird", which I plugged into my 1200XL as a kid (specifically, from Compute!'s First Book of Atari Games). The text alongside that game referred to the mode as "IRG-4", but didn't explain what that term actually meant. I suppose as a kid, I just accepted that there were 16 graphics modes, and two of them are the "IRG" ones (whatever that means). Got it! 👍 In my Googling this evening, I came across other early references to the term, but frustratingly they also lacked any explanation. Compute! #32 (Jan. 1983), "Thunderbird" [aforementioned game] "The playing field is a mixed-mode display consisting of two rows of GRAPHICS 1 text, and 21 rows of a multicolored character mode, IRG 4." Compute! #41 (Oct. 1983), "A Multicolor Atari Character Editor" "two special ANTIC modes, ANTIC 4 and ANTIC 5 (or IRG 4 and 5 according to the hardware manual), allow four colors per character." Compute! #26 (July 1982): [the earliest I could find] "[Caverns of Mars] is constructed using a custom character set in the special four-color IRG graphics mode (a rather unexploited feature of the Atari until now)" So now I'm super curious! 😃 What does "IRG" actually stand for? Over on Twitter, @Bill Lange pointed me at the Atari Hardware Manual, and I also dug up an amusing scan of it over at Internet Archive (with LOTs of corrections and commentary from whoever owned it). The "IR" seems to mean "Instruction Register", an ANTIC-related term. As in, "Program 1 demonstrates the first of these modes, designated by Atari as Instruction Register (IR) Mode 3" (quoted from Compute! #55, Dec. 1984, "Atari's 'Hidden' Character Modes"). It really seems to be a synonym with the term "Antic mode" (as opposed to OS / BASIC "GRAPHICS mode"). So if that's the case, then does the "G" just mean "graphics", like Bill Lange suggested? ("Graphics" aka "Display", as opposed to "Blank" or "Jump" Display List instructions) Is there actually anything special about these two multicolored text modes (ANTIC 4 & 5) that make them "IRG" modes, and all of the others not? In other words, could you say "GRAPHICS 15", aka "GRAPHICS 7½" in the pre-XL era, is just a screen full of "IRG-14" or "IRG-E"? The wording in that multicolor character editor article (Compute! #41) seems to imply it. If so, then "whoops!" Sorry for coining the term "Super IRG". Blame the folks writing for Compute! in 1982 & 83, I guess. 😆 [*] @Synthpopalooza subsequently went hog wild with the Super IRG idea (🙇‍♂️ ), and peeking around AtariAge forums, it looks like others have used it/them!
  8. I've got one small thing to mention about the ".XEX" filename. (Corrections & clarifications appreciated!) I remember running (as in, Atari DOS or MyDOS: "[L]oad Binary"-ing) .COM, .OBJ, and .EXE files on the Atari. IIRC, a subtle difference between them might be whether or not the code loaded is run (executed) immediately. (e.g., you could binary-load an OBJ file which places itself into page 6 ($0600), then "B. Run Cartridge" back to BASIC, and do an "X=USR(1536)" to run it whenever you needed to.) Anyway, as everyone knows, ".EXE" is also the filename extension for executable programs on MSDOS / Windows, and that platform became a haven for viruses and other malware, so EXE files are shunned -- no one trusts random EXEs they get in email or see floating around the 'net. (And ".COM" is also another binary format for DOS/Windows.) Therefore, someone out here in Atari land (does anyone know who?) decided to start naming Atari executables with an ".XEX" extension, to avoid conflict/confusion/filtering. "Back in my day" (1990s on BBSes, Fidonet, Internet email, Usenet newsgroups, FTP, and extremely early days of the web), the ".XEX" filename extension was never used by anyone, that I [*] know of. It seemed to appear after the web got popular, and everyone & their cat got internet access. [*] For a time, I maintained the Atari 8-bit corner of the UMich. archive.
  9. The Atari8bitBot on Twitter (https://twitter.com/Atari8bitBot) supports Logo, if you can fit it in ~280 characters!
  10. Oh wow, yeah, I hadn't thought of the Touch Tablet. That's a cool idea! I'm also now having a brainstorm for a USB or Bluetooth-based "controller" device for the Atari, where you could, on your modern tablet (Android, or iPhone/iPad), emulate a bunch of different controllers, including... joystick paddle mouse / Trak-ball Touch Tablet / Koala Pad keyboard controller Driving Controller I'm guessing the paddle-based ones may be more difficult (analog POT input, vs. digital for the rest), but again, I'm not experienced with this stuff.
  11. I had an idea like this for racing games. A controller that could, somehow, be switched into different modes for Pole Position (up/down for gear shift), Enduro (fire for gas), etc. 🙂
  12. So a long while ago I had a bright idea on a "captain's chair" 'controller' for playing Star Raiders on the 8-bit / 5200. My thought is a joystick on one arm of the chair (e.g. on the right, for right-handed folks), with a thumb trigger on top, or index finger trigger on the front, so it can be controlled entirely with one hand. On the other side, there'd be a keypad controller (like used by the 2600 version of the game), offering the various toggle controls: front view (F) aft view (A) long range view (L) galactic map (G) attack computer (C) targeting computer (T) target selector (M) shields (S) hyperwarp (H) pause (P) That's 10 keys, so totally doable with a 12-button keyboard controller, connected to the second controller port. Finally, on that same side (e.g., left, for right-handed users) would be an analog throttle, like you see in a boat. Fully forward (towards the TV) would be "twin-ion engine" at full-speed (9), and fully back (toward the player) would be full-stop (0). This would be connected to the paddle input of controller port 1, alongside the main digital joystick input (if I'm reading things right, it looks like the POT stuff is used by keyboard controllers). Obviously, a hacked version of Star Raiders would be required for this to work (read paddle for engine control, read keyboard controller for other keyboard control). It'd be a pretty cool set-up, though, don't you think? Sadly, I don't have the skill to do either the hardware, or the ROM hacking. 😛
  13. I tried calling him randomly the other day to check in. He never called back, the BUM
  14. Not sure how you're managing the tiles (I'm still waiting for your ATR to finish loading in Atari800, in turbo mode! )... but don't forget you can create larger tiles without necessarily chopping down how many different tiles are available. Say you're using a 40x24 text mode, and want 2x2 tiles to get higher resolution shapes appearing in a 20x12 tile grid. Normally, you'd end up using up to (usually) 4 characters per shape, meaning you've got 128/4 = 32 possible shapes. But using DLIs, you can swap between two different character sets (fonts) every other line, meaning you can get 64 different shapes. That requires another 1KB of character set data, but you can also use Load Memory Scan so that every other line shown on the screen is simply a repeat of the one before. Here's a thing I did two years ago as a little test static test. This is GRAPHICS 12 mode, but with 64 2x2 tiles that fit in a 20x12 (really 40x12... but not 40x24!) grid. Anyway, it's late, my brain is turning off and I need to get to bed. Hopefully this makes some sense.
  • Create New...