Perfect Dark: Recompiled

There’s an interesting renaissance of Nintendo 64 gaming, powered by the ability to decompile N64 ROMs back into C code using Ghidra. There are projects around multiple classic games, taking the Ghidra output and renaming the generic function and variable names. There are two approaches to these projects, sometimes happening in parallel. The first is to perfectly recreate the original work, and get a bit-perfect binary that matches the original ROM. The other approach is to fix bugs, optimize the code, and add new features, often porting to new platforms in the process. Right now, we’re seeing the latter happen with 2000’s Perfect Dark.

There is a project by [Ryan Dwyer] to produce a matching C codebase, and that project is functionally complete with an over 99% bit-perfect output. But as impressive as that is, we’re interested in making code even better, and that’s what [fgsfdsfgs] has accomplished with the Perfect Dark port.

The game now runs on Windows or Linux, has mouse support, and runs at a solid 60 frames per second (FPS) at multiple screen resolutions. Want an ultra-widescreen Perfect Dark experience? The upgraded rendering engine handles it wonderfully. Mods? No problem. In the future, the developer is also looking to support high-definition textures.

To play, you do have to provide your own legally sourced copy of the original Perfect Dark game. That is the only way this project is remotely legal, and we suspect that even then it’s in a somewhat grey zone, as a derivative work of a copyrighted game. Big N hasn’t shut the project down, but the Mario 64 port was killed for attempting the same thing. We’ll hope for the best, and enjoy the nostalgia trip in the meanwhile!

An Intel 8008 On A Single-Board Computer

The last time we covered [Dr. Scott M. Baker], he made his Heathkit H8 run on a considerably older processor than it was made for. This time, apparently still not satisfied with the number of 8008 computers, he made an Intel 8008-based single-board computer.

The Mini-08, as [Scott] calls it, is based on his previous endeavour of downgrading the Heathkit H8. Its “CPU board” has even more memory than its predecessor at 128KiB RAM and ROM and an 8251 UART connected to a DB25 serial port. The entirely optional “display board” adds to that 10 digits of 7-segment displays, a backlit Cherry MX Blue hexadecimal keypad, a real-time clock and even a 4-voice sound generator!

[Scott] has also done an impressive job with the software, porting BASIC, FORTH, a clone of Star Trek and some utilities to his Mini-08. He demonstrates both BASIC and FORTH by printing “SCOTT WAS HERE” in a for loop and finishes off by showing how to use some of the display board with FORTH.

Like last time, he published design files and resources for you to enjoy. Overall, an interesting spin on the retro single-board computer concept.

Video after the break.

Continue reading “An Intel 8008 On A Single-Board Computer”

Saving Apollo By Decoding Core Rope

One of our favorite retro hardware enthusiasts, [CuriousMarc], is back with the outstanding tale of preserving Apollo Program software, and building a core rope reader from scratch to do it. We’ve talked about [Marc]’s previous efforts to get real Apollo hardware working again, and one of the by-products of this effort was recovering the contents of the read-only core rope memory modules that were part of that hardware.

The time finally came to hand the now-working Apollo guidance computer back to its owner, which left the team without any hardware to read core rope modules. But the archive of software from the program was still incomplete, and there were more modules to try to recover. So, the wizardly [Mike Stewart] just decided to roll up his sleeves and build his own reader. Which didn’t actually work as expected the first time.

And this leads us into one of [Marc]’s elevator music explainers, where he gives a beautiful rundown on how core rope works. And if you are thinking of core memory based on ferrite cores, get ready for a brain stretch, as core rope is quite a bit different, and is even more complicated to read. Which brings us to the bug in [Mike]’s reader, which is actually a bug in the block II design of the core rope modules.

Reading a byte off the module requires setting multiple inhibit wires to select an individual core. An innovation in block II allowed those inhibit wires to run at half current, but it turns out that didn’t actually work as intended, and partially selected multiple cores on the other half of the module. And [Mike] forget to re-implement that bug — the reader needs to literally be bug-for-bug compatible. A quick recompile of the FPGA code makes everything work again. And the conservation effort can continue. Stay tuned for more in the Apollo story!

Continue reading “Saving Apollo By Decoding Core Rope”

Learn Forth On The Commodore VIC-20

Although BASIC was most commonly used on home computers like the Commodore VIC-20, it was possible to write programs in other languages, such as Forth. Conveniently, all it took to set up a Forth development system was inserting the cartridge into the VIC-20 and powering it on, with the VIC-FORTH cartridge by [Tom Zimmer] being a popular choice for the Commodore VIC-20. In a recent video, the [My Developer Thoughts] YouTube channel covers Forth development using this cartridge.

In addition to the video tutorial, the original VIC-FORTH Instruction Manual is also available, together with the 1541 disk image. In an upcoming video, the Commodore 64 version of the cartridge will also be covered, which is called 64Forth, and which is also readily available to tinker with. For those interested in learning more about [Tom Zimmer] and his Forth-related work, a 2010 interview could be interesting. This covers the other platforms which he developed an implementation for.

As for why Forth might be interesting to developers and users, this comes mostly down to the much lower overhead of Forth compared to BASIC, while avoiding the pitfalls of ASM and resource-intensive nature of developing in C, as the entire Forth development system (compiler, editor, etc.) comfortably fits in the limited memory of the average 8-bit home computer.

(Thanks to [Stephen Walters] for the tip)

Continue reading “Learn Forth On The Commodore VIC-20”

Digital Photography Comes To The Apple II

Back in the very early days of consumer digital photography, one of the first stars of the new medium came from Apple. The QuickTake 100 used a novel flat form factor and at its highest resolution could only shoot 640×480 images, but at the time it was a genuine object of desire. It came in Windows and Apple versions, and to use the Apple variant required a Mac of the day with appropriate software.

The interface was an Apple serial connector though, so it was quite reasonable for [Colin Leroy-Mira] to wonder whether it could work with Apple’s 8-bit machines. The result is QuickTake for the Apple IIc, the product that perhaps Apple should have brought us in an alternative 1994.

Fortunately the protocol has already been reverse engineered and forms part of the dcraw package, however the process of extracting the code wasn’t easy. The full resolution and colour of the original pictures has to be sacrificed, and of course once the custom serial cable has been made it’s a painfully slow process transferring the pictures. But to get anything running in this way on such elderly hardware which was never intended to  perform this task is an extremely impressive feat. We would have given anything for this, back in the 8-bit days.

If you have a QuickTake and want to use a more modern machine, we’ve got you covered there, too.

Teensy Stands In For The Motorola 68k

While it might not seem like it today, there was a time in the not-too-distant past where Motorola was the processor manufacturer. They made chips for everything, but the most popular was arguably the 68000 or 68k. It’s still has a considerable following today, largely among retrocomputing enthusiasts or those maintaining legacy hardware. For those wanting to dip their toes into this world, this Motorola 68000 emulator created by [Ted Fried] may be the thing needed to discover the magic of these once-ubiquitous chips.

The emulator itself runs on a Teensy 4.1, a 32-bit ARM microcontroller running at 600 MHz — giving it enough computing power to act as a cycle-accurate emulator not only for the 68000 CPU but also the local bus interface, in this case for a Mac 512K. This capability also makes it a drop-in replacement for the 68000 in these older Macs and the original hardware in these computers won’t notice much of a difference. A few tricks are needed to get it fully operational though, notably using a set of latches to make up for the fact that the Teensy doesn’t have the required number of output pins to interface one-to-one with the original hardware.

While the emulator may currently be able to replace the hardware and boot the computer, there is still ongoing development to get every part of the operating system up and working. The source code is available on the project’s GitHub page though so any updates made in the future can be found there. And if you have a Mac 128k and still haven’t upgraded to the 512k yet, grab one of these memory switching modules for the upgrade too.

Continue reading “Teensy Stands In For The Motorola 68k”

HDMI For The Original Xbox

The original Xbox was a console based on PC architecture that launched back in 2001. That was long before HDMI became a defacto standard for home AV systems. However, it’s possible to mod the Xbox to output lovely crisp digital video over HDMI for use with modern screens, as covered by [Modern Vintage Gamer].

The mod, originally known as XboxHDMI and later XboxHD+, is a pure digital output mod, and was developed by [Dustin Holden]. Unlike other solutions, it doesn’t work by converting the console’s existing analog output. Instead, it captures pixel data straight out of the GPU and pumps it out over HDMI, along with 5.1 surround sound, too.

Mods like these have become popular in recent years for multiple reasons. Original HD output cables for older consoles are often hard to come by, and many used analog outputs that are no longer suitable for using with modern screens. For those that don’t want to keep older CRTs and flat screens going for older consoles, digital video output kits are a great way to keep using your old consoles well into the future. Video after the break.

Continue reading “HDMI For The Original Xbox”