Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

Aaron Giles

@aaronsgiles@corteximplant.com
mastodon 4.8.0-alpha.3+glitch.cortex
  • Open on corteximplant.com

Rogue emulation programmer & demon hunter. Formerly of #Microsoft, #MAME, #Connectix, and #LucasArts. Still active in the Seattle choral scene #SeattleSings via Summer Fling Singers and Sine Nomine.

Author of #DREAMM emulator and the #ymfm audio library.

0 Followers
0 Following
23 Posts
Joined November 12, 2022
Homepage:
https://aarongiles.com
GitHub:
https://github.com/aaronsgiles
BlueSky:
https://bsky.app/profile/aarongiles.com
Ko-fi:
https://ko-fi.com/aaronsgiles
Location:
Issaquah, WA
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 5mo ago

Was looking at the digital audio in Another World (aka Out of This World) and found it pretty fascinating.

The game has an all-digital soundtrack and supports digital playback on SoundBlaster, AdLib(!), and PC Speaker(!) I was curious to see how it manages to do digital sound across all these devices and came away pretty impressed.

For SoundBlaster it's straightforward, since the SB supports digital audio directly. However, the way the game runs the audio is unusual: it configures the PIT to generate 10,000 interrupts/second, and manually feeds a single 8-bit sample to the SB on each interrupt, rather than using PC's DMA controller to send data like almost every other game.

For PC Speaker, it uses a similar technique. But since the PC speaker is essentially a 1-bit DAC, it can't just feed an 8-bit sample to it. Instead, it changes the timer connected to the speaker, which is normally in "square wave" mode, to run instead in "one shot" mode. This means whenever a new timer count is written, the timer drives the speaker low until the count is expired, then the timer goes high again and remains there. By programming different values, the game essentially does pulse-width modulation at 10kHz to produce surprisingly reasonable digital sound.

For the AdLib, which is an FM-only chip, it uses a clever hack. It programs one channel for playback with instant attack and forever sustain, and starts a note playing. Then, almost immediately afterwards, it changes the note's frequency to 0, which causes the phase counter to stop counting and essentially locks the channel's output to whatever position within the sine wave it was when the frequency was nullified. With proper timing, it will be near its peak. At this point, the game can alter the channel's "total level" (aka volume) and change the magnitude of the locked output, basically making it into a DAC. The total level is only 6 bits, so it's lower fidelity than the SoundBlaster, but still sounds pretty decent.

75
0
39
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 7mo ago

Happy to announce that DREAMM 4.0 is now available for Windows, macOS, and Linux!

https://dreamm.aarongiles.com/

Now with support for all Lucas-family games released prior to 2000 on DOS, Windows, and FM-Towns, including all 8 Lucas Learning games. Network play is also now supported (experimentally).

DREAMM
DREAMM

DREAMM

DREAMM is a bespoke emulator for LucasArts, Lucasfilm, and Lucas Learning games.

87
2
62
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 6mo ago

Heh, so yeah it's finally been officially revealed that the Mac port of Day of the Tentacle I did also contained a stealth Mac port of the original Maniac Mansion to the Mac.

In the PC version of DoTT you can just use Weird Ed's computer and it dumps you into Maniac, and I had thought (after all these years) I made it work the same way on the Mac. But it turns out my memory had some faulty bits and, while it did work, it only works after you try it five times.

This was a concession to our Mac QA department, which was small, and a bit overwhelmed with the unanticipated ports of DoTT and Sam & Max. They didn't really have the bandwidth to stress test the Maniac Mansion port, so I made it a bit more of an Easter egg than it was on the PC.

https://www.youtube.com/watch?v=N5AZY3tNFW4&t=1s

32
2
14
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 5mo ago

This was awesome. It hadn't occurred to me that a video signal of scrolling text would be physically legible on a CAV disc medium like laserdisc or CED, but it makes total sense upon reflection. (Skip to the halfway point if you don't care about unboxing the microscope.)

https://www.youtube.com/watch?v=qZuR-772cks

17
0
10
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 5mo ago

Dear OS providers: please for the love of god stop hiding your restart option. You are not perfect. Sometimes you need to reboot the freaking device. And now that everyone's assigned "long hold on power" to AI, it becomes nigh impossible to figure out how to do a restart. (Looking at you Android)

Literally spent 15 minutes trying to restart the wife's tablet. Never did find a way to do it. Instead found the option to disassociate AI from the power button so we could get access to the traditional power options it used to bring up. This shouldn't be so hard.

16
0
4
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 5mo ago

Guess it was naive to hope that Disney would keep selling the OG versions of Dark Forces and Outlaws after the remasters were released. 🙄 Star Wars: Rebellion is now no longer available well.

Updated my "Where to buy these games" page, which is looking sadder and sadder. dreamm.aarongiles.com/buy/

16
0
8
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 7mo ago

Speaking of DREAMM, after a few unfortunate delays, I'm pushing to finish up DREAMM 4.0 for the end of the month. If you're into LucasArts/LucasFilm/Lucas Learning games and want to help make sure this release is solid, please check out the latest beta! https://dreamm.aarongiles.com/beta/

dreamm.aarongiles.com
24
0
20
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 11mo ago

It's been a while since I've widely advertised it, but DREAMM 4.0 is (finally) nearing the end of its beta cycle. If you're a LucasArts/Lucasfilm Games/Lucas Learning fan and want to see how easy it can be to run your old games on a modern PC/Mac, check it out: https://dreamm.aarongiles.com/beta

dreamm.aarongiles.com
35
1
28
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 7mo ago
Replying to
Also can add Rayman to the list of games I've emulated on multiple platforms. My first experience with Rayman was emulating the PS1 release in Connectix Virtual GameStation back in 1998.
13
0
3
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 9mo ago

Today was "rewrite the Win16 local heap manager" day. Probably could have gotten away with a less aggressive approach, but figured in the long run it would pay off.

Fortunately, there's a lot of good information out there. Mostly worked from Schulman's 1992 "Undocumented Windows" book, which describes most of the Win16 heap data structures. Also some good information in Raymond Chen's Old New Thing blogs to provide some perspective.

Previously I was using my own generic heap library, which I like because it keeps metadata outside of the heap memory block, so there's no risk of corruption. However, I was definitely seeing suspicious activity from some early programs making assumptions about the structure of the heap data, so figured that replicating the original behavior with more fidelity would be a good thing.

Unfortunately, it's moderately complex. They maintain a doubly-linked list of blocks, and a separate doubly-linked list of free blocks. On top of that it supports optionally-moveable memory blocks with MacOS-like handles (which was actually what tripped me up in the first place).

Now at least it's working enough for the 4 officially supported Win16 games (Pipe Dream, Indy Desktop, Star Wars Chess, Star Wars Screen Entertainment), so time to make it official.

Protip: when writing a heap manager, always write an extensive heap validation function and in your debug builds call it before and after any heap manipulation to ensure that you haven't messed things up. I've written probably a dozen or so heap implementations in my time and this has always saved my bacon.

16
0
6
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 6mo ago

In case you were craving a 4k restoration of the #1 song in the US 40 years ago...

https://www.youtube.com/watch?v=y-H895vrIU8

8
0
3
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 6mo ago

First thought: There's no way this is going to be good.
Second thought: OK, but it will fall apart once they get to the chorus.
Final thought: Holy shit, the chorus works even better.

https://www.youtube.com/watch?v=V1E4Qdrjxi0

6
0
1
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 6mo ago

1/2 cup of ground cumin??? I think not! (Pretty sure that should be 1/2 tsp like the ones below.)

5
0
2
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 18mo ago

Happy to announce that DREAMM 4.0b1 is now available for download: https://dreamm.aarongiles.com/beta/

If you do actually test out network play, let me know good/bad how it goes. I have only tested it locally, so I'm kind of nervous to see real-world results!

dreamm.aarongiles.com
32
5
21
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 6mo ago

In anticipation of Netflix's One Piece Season 2 I managed to convince the fam to rewatch season 1 with me, which has been fun. I personally loved season 1, having never seen the original. I thought the goofy optimism and the weirdness of the world just worked so well and left me with a smile on my face after each episode.

Contrast to my son, who has seen a few hundred episodes of the original animated series. It's been amusing to watch him reverberate with suppressed desire to spoil things, but also it's been fun to see him get excited about seeing things spool out in a different medium.

Looking forward to actually getting to season 2 and seeing what's new!

4
0
0
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 5mo ago
Replying to
@gloriouscow Can you point us to these "super awesome" transcriptions? I didn't know they existed!
2
3
0
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 5mo ago
Replying to
@gloriouscow@oldbytes.space Yay, my beloved PCjr. Nicely done!
1
1
0
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 7mo ago
Replying to
@xtof DREAMM has supported MacOS and Linux since 2.1! My work to support DREAMM's use in Digital Eclipse's Tetris Forever collection meant that it also built for Xbox, PS5, and Switch. Rayman just builds on all of that. :)
1
1
0
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 7mo ago
Replying to
@et_andersson Yeah, not sure the logic behind that, but I'm two steps removed from that kind of decision-making.
0
0
0
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 18mo ago
Replying to
@oschneider Yes, 4.0b1 should recognize DroidWorks French. Maybe you have a different pressing? Can you share the dump with me so I can compare it against the one I have?
0
2
0
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 18mo ago
Replying to
Yes, dreamm -at- aarongiles.com works, or just PM me here.
0
0
0
0
Open post
Aaron Giles @aaronsgiles@corteximplant.com
· 5mo ago
Replying to
@gloriouscow Thanks!
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 17:00:50 UTC