Saturday, March 21, 2026

About Hardware - Retro Musing

I sort of had two first computers. At home we got a TI-99/4A. While an interesting machine under the hood, the base console was restricted only to TI BASIC (not even peek and poke for assembly), and fairly slow. We were told no games unless we write them ourselves - which I took as permission to play games as long as I wrote them. I was down for that!

We typed in all the games from the books we had. The first creative change we made was changing the text in Alligator Alley (Oh no! You were eaten! Now the poor alligator has indigestion!) This was a really simple game where you moved a white cursor on a green screen and tried to reach the edge without hitting one of the randomly scattered alligators (you can't see green alligators in a green swamp, you see).

But since it left a trail, I studied it because I thought maybe it could be a start for a Dig Dug clone.

I learned enemy movement - or at least how to move towards the player - from Chase in the Creative Computing book. As a much more full featured game, I spent a lot of time understanding it. The original game was meant to be played on a printer - it displayed the maze, and you entered the direction you wanted to move. So my first bigger task was to make it just update the maze onscreen, and move continuously. This was more than just calling HOME and printing the maze again, as TI BASIC was too slow at printing the maze, and anyway it couldn't HOME, it ALWAYS had to scroll when it PRINTed. But I made it work.

But being limited to TI BASIC and frame rates measured in the seconds per frame left me frustrated. In grade 5, schools in BC started to get Apple 2 computers. I remember the principal proudly rolling that school's first machine into the classroom and then playing Oregon Trail in front of us for half an hour. When I went to the office after school to ask about getting time on the Apple, they declined as I'd never used one before. That struck me as odd - why show us then?

The next year I was at a different school, and they also got their first machine. When I expressed interest, I was paired up with an older student, and we typed in a bouncing ball demo together. I remember that this one included a small assembly language program, POKEd in from BASIC, to play the beeps and boops when it hit a wall. We didn't do much else that I remember, but it was a start.

It had to be the next year, or at least very soon after, that every school suddenly had a computer room, usually with 10-20 Apple's on tables around the room. Furthermore, most schools had the room open in the morning and at lunch to anyone who wanted to learn. So finally, I was able to start learning on a much more open machine. The school libraries had enough books to get started.

To learn assembly in the limited time I had, I wrote out all the assembly opcodes on paper (so I could return the library book), and I hand assembled my test programs at home so I could just type them in when I got to school. I also developed a technique of test-running the programs on paper - a column for each register (the 6502 in the Apple 2 only had the program counter, X, Y, and A. Technically also STatus but I never tracked that one in my testing...) Then I could go through the code and update the state - it was slow but good for the overall logic. And I was used to slow. ;)

One school I was in had a closet full of Timex/Sinclair 1000s. Apparently before the government sponsors Apple2 computer labs across the province, the teachers had gotten together and built a lab of these machines. These were small, Z80-based machines with 3k of RAM (well, I remember 3, but I'm not sure. The ZX81 it was based on had 1k.) They had big 16k expansion packs that made them sort of usable, and even a thermal printer. I played with them a bit, though I didn't learn beyond BASIC. The school sold one to a friend of mine for $20, but I couldn't come up with that much money back then. I did later get a ZX81 gifted to me, and learned that one slightly deeper, but it was harder to find books on how to push this one. And there was no internet yet!

Over time I got to know the base Apple 2 pretty well. I didn't get into ProDOS or most of the features of the Enhanced 2E, but it was neat to watch the machines improve. Most of the first machines were just stock Apple 2 or maybe 2+, but by the end of my time in high school they were all enhanced 2Es.

One day, feeling malicious, I set up a couple of machines on a timer. The next class had a friend of mine in it, and in that class they didn't use the computers. When the timer expired, they started a loud beeping song. The first time successfully flustered the teacher, I'm told. When we did it a second time, the teacher apparently just flipped the switches that turned all the computers off. I figured I could thwart that - I made a cassette recording of the song with a long blank lead, and put a walkman inside one of the Apples instead. Unfortunately, fresh batteries were hard to come by - the walkman batteries died before it went off.

I got really brave in my final year. One friend bragged that his Apple 2 could never catch a virus, so I wrote one for DOS 3.3 (thanks entirely to the amazing Beneath Apple DOS book). Sorry about that. The good news is there's no evidence it's out in the wide world today. ;) If it helps, when I later finally got my own Apple 2+, I found it on all my own disks. I couldn't clean it, because at the time I relied on Copy 2+ to copy the DOS tracks from a clean disk. But that required 128k and I only had 64k. So I patched out the payload and let the virus re-copy itself to all my disks. It would still run, but harmlessly. ;)

I also wanted to leave my mark on the computer lab and the teacher that taught computing. We'd gotten along very well. So I went to the end machine that was usually the last computer people chose to use, and opened up the second drive (again, rarely used). There I disabled the write-protect sensor. Then I took the teacher's master Appleworks disk. Each year he'd make copies of that for the students to use. I used a sector editor to change the copyright text to "Hi Mr Atkinson!" Apparently that generated some amusement the next year.

But, that was towards the end of the Apple2 era, too, that was 1989. The school already had a lab of PCjr machines (whoops). I'm told a year or two after that, the Apples were done.

I stuck with the Apple and the TI for a few more years, though I settled on the now fully expanded TI. I was able to do more with it than the Apple and had a strong affection for the machine. But eventually, I wanted to move on to newer hardware.

Eventually, in 92 or 93, I finally moved from TI to ST, then to Amiga 2000 which I started to learn before declaring being tired of having to always write my own software, and moving to PC. Originally I intended to use OS/2 Warp, but Windows 95 came out and won me over before I installed it. I never learned those machines as deeply as the first two.

So many systems kept me curious, so I've coded unofficially for consoles too. Through emulation I was able to mess around first with the Vectrex. I'd not had a chance to learn the 6809 before, though all I ever built was a spinning star demo. But then the Playstation homebrew scene happened. A replacement flash for the GameShark called Caetla and a cheap ISA parallel port card (meant for cheat code searching) suddenly made it possible to upload your own code to the Playstation. A hack to the Net Yaroze toolchain let you create and run Yaroze code without the Yaroze platform (which was something I had really wanted!) So suddenly I could run my code on a real console. That felt like a dream come true. The first time I burned a CD and the PSX logo came up, indicating successful boot, was a rush like I've rarely, if ever, felt.

Yet for that, there was a lot to learn for the Playstation. Almost all the concepts were far beyond what I'd ever done before. So I never went further than some simple intros. I ported my DOS game Takatron - a Lion King/Robotron mixup - but lacking basic understanding of some features it was far inferior on the Playstation. I did release a Tetris and started a platformer, but got distracted.

The next platform I spent a lot of time on was Dreamcast. This time I got in early - the serial slave CD had just been released and I built a cable instantly. With that I can claim the honor of the first one to run any code that became part of Kallistios - Dan had some test code but didn't have a serial cable, so he sent me the code to test. ;) I didn't do much in the libraries themselves, but that collaboration is where Cool Herders came from. As much as I loved the Dreamcast, I didn't do much else there.

By then everything was exploding. Every platform was open. Every system could be developed for. Growing up I wanted to program everything. It became clear that was no longer feasible!

I ended up writing code for esoteric devices like the Matsucom OnhandPC - a bulky wristwatch with a 16 bit PC inside it. I loved that thing. ;) I ended up coding a game designed by an artist called TunnelX, a greyscale image viewer, and a silly magic trick demo.

When a friend brought over a system he'd developed to upload code to the Atari Jaguar, and showed me a simple full screen rotation demo, I was blown away. That led to a long involvement in that community and the development of the Skunkboard. We did four releases of that and I think there has been at least two since I released it all to the public domain. I never finished a game of note though. I did Martian Attack for a contest - but the contest rules emphasized usage of the hardware. So I made sure there was code on every CPU, split screen palettes, and heavy use of the OP and Blitter together. The game itself wasn't that interesting - just a target shoot with minimal feedback. But the only other entrant was Jungle Jane - a platformer made with stock graphics, which I also didn't find interesting (nor did I see how it was pushing the hardware ;) ). Anyway, since it was just us two who even made anything, we split the prize.

I also ended up doing a lot in the ColecoVision community, although I never really became a noted name there. I was impressed to see it was basically a TI with a different CPU, and I could program it in C and almost have the same code run on each machine. I released Mario Bros through CollectorVision, which got pretty high praise. I also released Mr Chin and Super Demon Attack - the TI version. I didn't like either of these games and did what I could to make them a little more interesting, but they were requests. I'm actually kind of proud of the improvements to Demon Attack (I stole the splitting in two and homing bombs from other versions), but the other versions are still far nicer than the TI one IMO. Finally for my own work, I released an update of Super Space Acer - one of the first attempts at a game I did for the TI.

Super Space Acer I also ported back to the TI and released a special cartridge through ArcadeShopper. But this is when I realized the community didn't have my back. The "UberGROM" cartridge that I'd helped develop was my target, in order to use the extra memory space and the EEPROM capability. But what I didn't know was that the cart wasn't being made anymore, and that the design was proprietary -- even I couldn't make one as I didn't have the layout files. That delayed the game significantly and put a sour taste in my mouth, as I've never made anything I've released proprietary on purpose.

Dragon's Lair is probably seen as my top release for the TI. This was a fully licensed version, and contained the entire laserdisc's worth of video on a cartridge for the unexpanded TI. This was definitely a passion project although I don't think Dragon's Lair is very fun to play... most of the time. (The one scene with the pool and the need to move constantly actually does feel like a game, though it's brief.) I do think it's a technical marvel, though, and lovely to look at, so it was fun to make it work. The documentation at Dragon's Lair Project made it possible to sort out the scenes (and I was very disappointed to not find anything as nicely put together for Space Ace, which I'd have liked to do as well.) Post license interest was still pretty high, but as I put the onus for licensing and distributing any subsequent releases on the people who insisted there was profit to be made, little ever happened. Ultimately we were told the licensing terms had changed and there was no longer profit to be made. I did release all the hardware, software and scripts though. Only the video was not mine to share.

I also ported Super Space Acer to the Gameboy Advance - a platform I'd messed with years back but never released anything for. I ported Cool Herders to it - quite a nice port IMO, but Piko Interactive bought the property and I did it for them. Unfortunately it's their call if it ever sees the light of day. So I used the libraries I wrote to port it there as well, thinking it was a better known platform than the TI and might get some retro collector interest. It did not. ;)

The last thing I've done to date was a Phoenix Wright style engine. I've wanted to make a classic MLP / Phoenix Wright crossover video into an actual game for years. The story is really good, and I thought as a game, more people would give it a chance. With the release of internet hardware for the TI, I decided it was finally feasible to make it happen.

I went all in on this. This game would select 9918A or F18A graphics automatically - why not? I had "infinite" memory through downloading from the web. I converted the music files to TI format. I built a scripting engine that handled graphics, text, music, input, inventory, conditionals, investigation, and cross examination. To keep performance up, I added support for the TI AMS memory expansion system up to 1MB and used it to cache images downloaded and store speech samples. The whole game was broken into scenes that could each specify only the elements they required in order to share the memory resources. When I still ran into memory constraints, I wrote a whole new linker that let me more easily manage where data loaded so the whole base 32k was available to me. When I finally released the first hour of gameplay, there was a good amount of people discussing it and lauding the effort.

But nobody played it. A side effect of the downloading of images and music means I can tell the activity in the server logs. Only one person, weeks later, played more than 5 minutes. Most people loaded the title page and then quit. This was a huge disappointment. I mean, I get people don't care about MLP, but I thought people would at least give it a chance. ESPECIALLY when they were there in the forum telling me they couldn't wait to give it a chance. Honesty is fine, but blowing smoke up my backside is frustrating.

I ported it to Javascript and put it on the web instead. Now the memory restrictions went away, and I don't have to spend hours fiddling with the music to try and get a recognizable variant of it in three square wave voices. It loads screens faster and I was able to expand the decision trees. I've been slowly updating that version instead. I sometimes consider porting back to the TI - I might have to split some of the scenes up a bit more, but it should be feasible. But I'm delaying that decision till I'm done. To be frank, (I'd have to change my name), but nobody's playing that version either. Oh well. ;) /I/ like it. Maybe someday, if I finish it, someone else will come along and clean up the graphics, and we'll get a full version of it.

And so today I'm trying to cast my sights on modern game dev. All the above - all of it - was because I wanted to make games. And I've spent my life writing tools for other people, mostly, while my own games were largely ignored. It's very frustrating. So I've got another learning curve, and I'll see what I can do. I moved to the PC back in 1995 because I wanted to reach more people, but I ended up using the machine to support the tiny communities around the retro machines I loved. But it feels kind of toxic right now, so it's time to do what I was supposed to do twenty years ago, heh.

Anyway, I'm sure I'll change my mind in a couple months, but what the heck. What's life but a series of trying to keep yourself distracted? :)

This link should take you to most things mentioned above: https://harmlesslion.com/things/


Saturday, December 28, 2024

2024 Comes to a Close

2024 was pretty weak as far as productions went. Perhaps a bit too much frustration with how things are proceeding?

In terms of game production, I was paid for Super Space Acer on the ColecoVision. I've seen the box art and there's supposedly going to be a collector card, but the entire year went by without release. I'm told earlier in the new year.


A couple months after that I declared the TI-99/4A version finished - with some bonus features that take advantage of my UberGROM cart. However, the entire year has gone by here as well due to hardware issues. Most unfortunate. As a result of that I could not release the ROM file for Christmas like I had planned to.


Cool Herders GBA still not being out as well.. I think future publishing deals will need to include a time limit after which I can do with it as I will. ;) That wouldn't help Cool Herders anyway, but the others...

I worked quite a bit on the GBA port of Super Space Acer, getting a perspective view going which helped the entire 256x192 game fit on the GBA's 240x160 display, and takes me back to the PC Arcade port I had started and never finished many years ago. Unfortunately it won't make year end as there are still some bugs to solve and graphics to adapt.



Early in the year I also released a free Tarot Reader for the TI-99/4A and ColecoVision. With graphics based on the Rider deck and reading code that I wrote way back in the early 90s, it was something I'd always wanted to do. It was fun to put it out there.

Video of Tarot Reader

I also made libti99all my main retro dev library, deprecating the old libti99 and libti99coleco.

LibTI99All on Github

First full year with my Canadian employer, and it was okay. But a little dry. I did Linux setups, a wheel driver for a robot, a video analysis demo, and some test scripts. I spent some time taking an AI class, but I feel I chose poorly on that one and didn't get what I'd like out of it.

I also worked on a small embedded project - basically a keypad driven MP3 player as an information kiosk. It was a fun little project.

In June I attended GameCon Canada as an exhibitor. I didn't make much of an impression, but a lot of people were amused to see a TI-99/4A running on the floor (running Dragon's Lair). I showed off Cool Herders and Super Space Acer. It was a sponsored booth and while I probably wasn't what the sponsor wanted, it was worth the time and I met some cool people. I was the only retro booth I noted, though!

Looks like I did one notable project for someone else - I ported PacMan++ by Cheung for the TI to cartridge. IIRC it was his first project, and it was a neat game in compiled XB, but it booted from cart and loaded the levels from disk, so I patched it to run fully from cart. HIS cart is available for sale, of course. ;)

Pacman++ at AtariAge

I also added a TI-99/4A target to CVBasic, a Basic compiler for pretty much every Z80/TMS9918A console and computer. When Oscar added the Creativision and its 6502 core, that gave me a way to also slip in the TI and it's 9900 core. Oscar was able to run with it and port his compression scheme and everything, so it's pretty complete.

CVBasic for TI at AtariAge

And I re-released my old TI Christmas demo from 2015 (since I had nothing to show), and found myself motivated to port it to Applesoft.

Post with Source

I finally moved my server away from IBM after continuously growing frustration with them. The new company is decent so far, no problems. Very quiet.

I did a bit of work on the Second Life Wrestling group this year.

First I updated my WLV enhancement HUD into a full wrestling control HUD, and I've been using that fully. This let me extend some of my overlay enhancements to the opponent as well. It didn't get any interest from people since I'm not well known, and the big well known name released a new HUD as well. But that's okay, I wrote it for me mostly.

Video describing WLV

I also helped produce two shows. For Halloween we did our annual "Slam-O-Ween", this year with a Haunted Mansion theme. I made the shifting portraits and gave every wrestler a copy of theirs. I also made the piano ghost, scripted the funeral coffin, and helped with some little things. I was happy to be able to help that build.

UFW Slam-O-Ween 2024

The second was a silly thing we did for Christmas. In the spirit of the 80's specials, we did "Nate Saves Christmas", a light hearted storyline in which Santa doesn't show up to guest referee, and through five matches the heros discover what happened. (Our bumbling small town sheriff Roy Carter arrested him for impersonating Santa. Santa shows Roy the meaning of Christmas in a steel cage match.)

UFW Nate Saves Christmas

I also introduced a new wrestler - Taka. (This was started well before the Mufasa movie, but yes, that's the origin of the name). He's a brute of a lion and sells himself as 'The King of UFW'. I was waiting till I felt confident enough before putting him out there. We've got a little storyline starting up at the beginning of the year for that.

King Taka's BSky

As a random in the middle thing, I commissioned a small plush of Ocellus the changeling. It was a cute concept I saw that I had to make real. I also got a copy of Tobin's Spirit Guide - I always loved that there was a technical reference to spooks in the Ghostbusters series.

Then finally travel - I didn't go far in 2024. I did spent a month back in my hometown, and that was nice. While there, I did some things I never did before - I toured the S.S.Sicamous (which has been parked on the beach since before I was born), and I tried parasailing. I even went back out to the lake I used to camp at with the folks.

I did go to the Portland Retro Game Expo - it was a last minute decision boosted by the discovery that Yak was going and the hope we'd get to hang out. (Also wanted to meet R.J. Mical and talk Amiga, but he didn't go in the end.) I eventually caught Yak in the arcade (which was awesome to see), but it was very awkward and I let it go. Sad face. Still, was a fun environment to spend a couple of days in! I did get to talk to the voice of Dexter from Space Ace for a while! And put a high score on Gyruss, though it was not as impressive a score as I'd hoped.


I went to the 42rd annual Chicago TI Faire, hosted by the TI User Group there. It was good to see people again. I showed them Super Space Acer (though the cart was malfunctioning - as ALL DEMOS IN CHICAGO DO, what the heck?) I also ran some Dragon's Lair for them.

TI Faire Video

I also spent a week out in Ottawa as I like to do. But it is feeling very expensive to do that lately.

Not much else to report for 2024. Plan for 2025 is to start getting some game titles out, probably on Itch and maybe Steam, and see if we can't start making something of all this work. Really need to win the lotto so I can work on that stuff. ;)





Thursday, August 22, 2024

Let's Write Something...

Waiting for a system update to finish so I can sleep, when I know full well it can finish without me... but I remembered this existed and figured I should post! How will I ever become a famous blogger?

Sadly not a lot to report since March! We've got Cool Herders off to the publisher, just waiting for Piko to get everything set back up again. In the meantime, I finished Super Space Acer for the TI and ColecoVision, and those are off to ArcadeShopper and CollectorVision respectively - who I have heard back from are putting their packages together.


Apparently I need to take a few more screenshots! ;) Have a look at the teaser vid instead - https://www.youtube.com/watch?v=vb0D47OZML8

(Boy, I really should update Youtube more often too...)

Since then I started on a Gameboy Advance port. My original attempt was to port my libti99 library... which I did achieve for the most part. I also got the music player working. The problem is the library is way too slow drawing the TI screen, so I'll probably have to skip 'partially working' and go straight to porting the graphics. The goal, and I still don't know if it's achievable, is to introduce a 3D perspective angle to deal with the reduced resolution.

I still want to port to a few other systems, but it's really needing to be higher priority than it is. So now we can get to the lesson part of this post...

DECIDE YOUR PRIORITIES.

Unfortunately I've let myself be distracted by TWO projects. Both I thought would be simple, and neither were.

The first was a port of a newcomer to the TI community's game - he wrote it for cartridge using Compiled BASIC, but though it loaded from cartridge it needed a floppy for support files. I adapted it to read the files from cart instead, using a simulation of the disk access code -- but then I foundered for a few days trying to fit it into memory. Turns out when he said he had 100 bytes free, he wasn't kidding! But I did succeed.

The other is a port of CVBasic to the TI. This is a BASIC compiler for the ColecoVision - and now most Z80+9918A computers. I noted they were looking at a port to the 6502-based Creativision, and I noted if they did that, I'd extend the scheme to the TI.

Well, they did, and so I started in. What originally looked like properly isolated code turned out to be thousands of lines of undocumented assembly language, and more assembly in almost every file. So this has been taking a very long time -- and indeed when I finish I am not even certain it is going to work. My original high hopes were dashed by this and at this point it's more stubbornness than interest that has me finishing the task. I expect, if I can get it to compile the test app, I will report the repo and leave it at that.

I can probably share the Github for that -- if you are interested you can follow the fork back to the original and see Oscar's original compiler. https://github.com/tursilion/CVBasic/tree/ti99

I am back to RL work these days, so maybe I'll have more to rant about soon ;)


Wednesday, March 6, 2024

Willy's Chocolate Experience

So like everyone else, I've been looking at that disastrous Willy experience. My heart goes out to the actors who tried their damndest, and the kids who were expecting a lot more.

I was curious about the script. I meant, it largely didn't seem undoable. Might have taken more time to set up than was given, but... here's the copy I worked from: https://www.documentcloud.org/documents/24449349-willyschocolateexperince

Obviously, the candy supplies should have been right. You knew how many tickets you sold.

You would have needed to dress the entire visible portion of that set. So that would mean building walls and decorating, using lighting to hide the ceiling would probably work. Astroturf makes an easy ground cover.

Everyone picks on the audience reactions being in the script. I guess that's not normal, but it's kind a 'so what?' on top of everything else. ;) It's a live show. "Pause for reaction" means the same thing.

Sound track would be needed, of course. Speakers hidden in the set on loop would do - volume adjusted per scene might even work? Otherwise you could use a dynamically adjusted soundtrack, assuming one tour at a time. That gives you the singing flowers and whispering trees, as well as musical cues for mood.

The giggle grass is why I wanted to review the script. You could have some astroturf mounted a little higher, waist high for a child perhaps, and simple proximity sensors could trigger it to vibrate and play the giggles. Safer and more reliable than stepping on it, but meets the goal.

Same for the talking tulips, of course, though why flowers and grass are so prominent in a candy display seems odd to me. Even better, you can deal with the wilting using air pressure in a rubber tube stem, and have them react to nearby voices by no longer sagging and thanking the audience.

Bubble machines are next - that's easy and can be cued by Willy or a cast member. The bubble that pops in his hand and turns into a sparkling light that ascends to the sky would be hard to do convincingly. I'd be inclined to drop it. You might be able to use projection and rely on a controlled point of view if you had a smokey room. Otherwise I think I'd have him catch a prop on a string during a moment of distraction, then let a flickering LED prop be pulled into the rafters on his release.

The Twilight Tunnel is next and is pure construction - should be simple to create and completely controls line of sight. Musical cues go darker. LED 'stars' can light roof of the tunnel and twinkle. Again, Willy needs a lighted prop - he can pull this one from his pocket since it doesn't fly away. Apparently all the audience gets one - kind of unfortunate but I guess you're making cheap LED ping-pong balls ;) A button cell battery and a single LED will glow for at least an hour or so. When making them you can insulate the battery with a small piece of paper or fabric, and leave a slot to pull it out at distribution time to activate the light.

The tunnel obviously won't be as dark as described for safety reasons, nor as long. Open at the entrance, bend to hide the entrance, and end at a door for the scene with the Unknown. Everyone agrees the Unknown's actress nailed it, so nothing to do here, and no prop was needed, though there are some cute lighting cues.

Have a cast member open the doors, and stride out to the Bubble and Lemonade Room. Larger, brighter, and still still decorated. Large rooms like this are how you will decide the size of the tour group, as you need enough room for them to be comfortable while still keeping the theme.

The lemonade perhaps should be carbonated to match the 'fizzes' description? Backup drinks of water or such should be available to those who can't have it - check with a nurse what makes sense for kids. Likewise for the candies, of course, every kid deserves SOMETHING.

Apparently nothing else of importance here - this is the snack area. Bubble machines need to be going all the time, but be sure to protect the drinks from popping soap with simple lids or a cover. (Perhaps they can be kept in refrigeration - a cooler or such).

Ah, but then we're off to the Imagination Lab. Okay... so we have a big 'Keep Out' door (and this would be at least a double-wide because this is a tour). The text for this introduction is poor, but that's not my problem as imaginary technical side. 

The bizarrely flavored jelly beans are easy enough if they still make those Harry Potter jelly beans. We'll just use a bunch of those. Perhaps have the cast members hand them out. Give them a bunch of random, but a small reserve of known, pleasant beans for the less adventurous.

The big TV camera is easy - this is a classic photo op. Could be done a couple of ways, but the simplest might be to run people through an exit corridor after they get their beans with a marked location to stop and pose (with appropriate backdrop). People are told they can claim their photos at the end of the experience, and we will email them (or, as is the trend, they can take a picture of the screen they are previewed on.)

Now we're at the final scene with the anti-graffiti gobstopper. Obviously, there should be a display stage and it should be covered, so Willy can hop up and present it. There's a bit with Willy and the Unknown, up on stage where they are safe from bumping into the guests. We want a battlefield of lasters and lights... I don't know why, but okay! So the Unknown's appearance is prefaced with a fog machine, and now strobing lights and flashing lasers can create a scene of chaos. It might be important to identify anyone with photosensitivity before this scene so they can be escorted out.

During the scene Willy uses a remote to activate traps and 'illusions'. Simplest thing here is probably a cast member off stage who can slide false walls into the Unknown's path on cue once or twice. I was thinking from underneath, but such props would need to be light and might be unsafe if accidentally stepped on. No need for motors anyway, this can be kept very simple.

The Unknown's own weapon can be based on a laser pointer, with Willy dodging dramatically behind props. Some kind of response on the prop would be ideal - might be as simple as a projected explosion (or at least flash) with a sound. The audio engineering over this whole scene is what will sell it.

The final machine is probably going to be accomplished with projection across the stage. "Holographic" images of "sparkling cleanliness" can start across the stage. When Willy loads the Gobstopper into the machine's recepticle, the projection focuses into a wave that starts from the machine and flows across the Unknown, giving it time to be swept backwards. A wall panel opens showing a giant vaccuum with an opening large enough for them to enter, along with a vaccuum sound effect, seals the deal. He goes into the vaccuum, the panel slams shut, and the sparkle projection fades out.

Then we're off to the gift shop, because you'd be dumb not to have some cheap merch to sell. Here people are encouraged to hang out by the need to claim their TV photos.

So that's my proposal for the technical sides. It's /still/ a ridiculously cheap and cheesy experience, but at least it would have delivered on some of the promise??

Friday, February 16, 2024

ITrax Module Teardown

While working on my car battery, I discovered a forgotten little GPS tracker tossed in with the jack. At first I couldn't figure out what I was looking at...


Why, it's a cellular GPS tracker! Eventually I figured out it came with the ITrax system I got when I bought the car way back in 2016. Some online investigation found that the company is long dead, and many believe it may have died in 2015, when the last Facebook post is: https://www.facebook.com/goitrax/

Anyway, I figured no harm seeing what was inside, so I took it apart.


Inside the base is this little instruction pad. Under that are a number of strong magnets used to attach it to metal parts of the car.


On the other side, we have two tiny antenna - labelled on the sides -- which are attached to with little pogo pins on the PCB.

PCB itself looks like this. There's a GPS module and a cellular modem, presumably under the two shields (which I didn't remove). They are labelled MB81 and MB70, but this doesn't appear to be meaningful.


On the other side of this PCB, and taking up most of the space, is this big ol' battery. It's a D cell sized 3.6v ER34615M - apparently a rather standard battery. It's pretty dead, of course. It had a foam pad glued all around it that was quite difficult to remove, even with heat (not that I wanted to try too much heat.) ie: https://www.batteryjunction.com/titus-er34615m-ax


The SIM card has no markings besides the standard identification data on the reverse side. I didn't take a picture of that in case it still worked -- but of course it doesn't still work. ;)


The USB port was interesting so I decided to power it up and see if it spoke to me as anything. It didn't take power from the USB port, so I ran 3.6v across the battery terminals, which happily didn't explode. The LEDs began blinking as the lid suggested they might.


Windows didn't know what to make of it, but gave me the VID/PID 0E8D/0003, which mapped down to a MediaTek MT6227 phone. I couldn't find a lot of information about this unit, but I did see it was supported under Linux. https://linux-hardware.org/index.php?id=usb:0e8d-0003


So I booted up Minicom to have a look at it, and yeah, it talks like a GSM modem! 


The MCU is also trying to initialize the connection, but since there wasn't one, it didn't seem to get very far.

I did try putting my T-Mobile SIM in, and seemed like it may have initialized it, eventually stopping on an ATH instead of the repeated AT%IPSYS? above, but I didn't catch it going further. (I didn't leave it on long, perhaps it was trying to acquire satellites.)


The MCU would appear to be over here, labelled SBK TI 571 AKY1. Couldn't find much, though there is a CH571 based on RISC-V. I think it has the right number of pins... This page has the 573/571 datasheet: https://www.aliexpress.com/item/1005005805175647.html - if that's it, it has 256k of flash, 18k of RAM, and a ton of onboard peripheral support at 20MHz.

I didn't go any further with it, but I was surprised to see at least as recently as 2020 people were still being sold these systems. The unit was dropped randomly all over the car - one person found it in their glove box! And cellular modems aren't really expensive anymore, so I'm not sure how useful this may be. But, if you wanted to use such a thing, you could try disabling the MCU to just have a USB modem (possibly), or even potentially try to reprogram it.

Other things I should have done but didn't - remove the the shields to verify what's under them, and see what the RX/TX pads under the SIM card are for. ;)