Mogs Emulation StationNOTE 1: Subtitles will be added in a few days, once I have time to breathe. NOTE 2: There's a known sequencing error; "Atari followed suit a year later with Hard Drivin'" with respect to the initial launch of Namco's System 21 board, not Air Combat from 1992.
After getting the emulation of Polygonet Commanders and Poly-Net Warriors working in June 2022, the game seemed obscure enough, and had taken enough time and effort to get working, that it was worth making a video about.
I leave it up to anyone watching this to decide whether the video's any good or not; I made it because I found it an interesting story to tell. It was a learning process, and any videos in the future should go a lot smoother.
I don't have any expectations, but in case anyone wants to get in touch or show their support -
Be excellent to each other, and I'll catch y'all down in the comments.
Chapters: 00:00 Part 1 - Intro 01:21 Part 2 - Arcade 3D for All 05:10 Part 3 - How to Be Forgotten 08:18 Part 4 - The Road to Nowhere 11:15 Part 5 - Perseverence Through Insomnia 18:08 Part 6 - The Gang's All Here
Videos used under license from Shutterstock.com. Most other videos used under Creative Commons license from Pexels.com. Assembled, edited, and rendered using Kdenlive. "Cait Sith's Theme [Remastered]" is used with permission of the original uploader, Sean Schafianski: youtube.com/@sschafi1
The History, The Failure, and The Emulation of: Polygonet CommandersMogs Emulation Station2022-12-23 | NOTE 1: Subtitles will be added in a few days, once I have time to breathe. NOTE 2: There's a known sequencing error; "Atari followed suit a year later with Hard Drivin'" with respect to the initial launch of Namco's System 21 board, not Air Combat from 1992.
After getting the emulation of Polygonet Commanders and Poly-Net Warriors working in June 2022, the game seemed obscure enough, and had taken enough time and effort to get working, that it was worth making a video about.
I leave it up to anyone watching this to decide whether the video's any good or not; I made it because I found it an interesting story to tell. It was a learning process, and any videos in the future should go a lot smoother.
I don't have any expectations, but in case anyone wants to get in touch or show their support -
Be excellent to each other, and I'll catch y'all down in the comments.
Chapters: 00:00 Part 1 - Intro 01:21 Part 2 - Arcade 3D for All 05:10 Part 3 - How to Be Forgotten 08:18 Part 4 - The Road to Nowhere 11:15 Part 5 - Perseverence Through Insomnia 18:08 Part 6 - The Gang's All Here
Videos used under license from Shutterstock.com. Most other videos used under Creative Commons license from Pexels.com. Assembled, edited, and rendered using Kdenlive. "Cait Sith's Theme [Remastered]" is used with permission of the original uploader, Sean Schafianski: youtube.com/@sschafi1MAME Work-In-Progress: Panic! at the Park (Namco System 23, Panic Park)Mogs Emulation Station2024-07-16 | I needed something to get myself back into the swing of video production so that I can motivate to finish my eventual UltraHLE video. As it happened, this past weekend (13/14 July 2024), I managed to nail down a few issues that were preventing Panic Park - the legendary shoulder-crusher of a 2P head-to-head arcade game - from booting.
To my pleasant surprise, it doesn't have any of the exploding-horse issues of Final Furlong, nor the floating-villain issue of Time Crisis 2, which my current work-in-progress codebase is plagued by.
00:00 Lead-In 01:36 Intro & Title 02:12 Why Arcade Machines Are Hard to Emulate 02:39 System 23 Game Breakdown 03:42 Why Lack of Test Cases Is Bad 04:12 Lamentations & Mea Culpas 04:35 Panic about Video Game Violence 06:10 Current Work-In-Progress Footage of Panic Park 11:30 Final Analysis & Next-Video Hype 12:05 Outro
Assorted Game Music Used: * Nobuo Uematsu - Final Fantasy VII - The Oppressed * Grant Kirkhope - Donkey Kong 64 - Snide's HQ * Yasunori MItsuda - Chrono Trigger - Underground Sewer * David Clynick - Perfect Dark - Maian Tears * Yuzu Koshiro - Super Smash Bros. Ultimate: PAC-MAN * Yuu Miyake - Katamari March Damacy
Moogle art designed, sketched, inked and colored by Arty Cheetah (Twitter: cheetah_secreto) Stock footage provided courtesy of Pexels (https://pexels.com). Video assembled, edited and rendered with Kdenlive, a KDE project. Some animations made with Adobe Animate 2024. MAME® is a registered trademark of Gregory Ember.MAME Work-In-Progress: Thayers QuestMogs Emulation Station2024-01-07 | After Matt Ownby (of the famous Daphne laserdisc-game emulator) handed me four Domesday Duplicator captures of four different Thayer's Quest discs, I just had to try my hand at "stacking" the discs - that is, merging the contents in order to try to minimize laser dropouts.
To my surprise, the resulting stacked capture was completely free of dropouts that weren't there during manufacturing. As a result, I've spent the past week or so getting it up and running in MAME.
It's now fully playable, although the SSI-263 emulation is currently a gross hack, redirecting speech-synthesis requests to the Votrax SC-01 emulation in MAME, which is the direct predecessor of the SSI-263/SC-02. It sounds worse than real hardware would, but the speech is at least reasonably intelligible if you listen closely.
To answer a question that has been popping up, yes, once I've gotten a few more Laserdisc games added to MAME, I have an item on my to-do list to make a video about the history of Laserdisc games in MAME, similar to the Polygonet docu-video.MAME Work-In-Progress: Dragons LairMogs Emulation Station2024-01-01 | After a bunch of debugging, and multiple hours grinding through about 440 gigabytes of raw Laserdisc captures, I now have Dragon's Lair pretty much working in MAME.
There are a few things that I still want to sort out before calling it working - a deinterlacer, mostly - but it does seem to be playable, although I completely suck at quick-time events.MAME Work-In-Progress: Sega - Time Traveler (Japan)Mogs Emulation Station2023-12-26 | I'm not terribly good at it, but it looks like we now have a decode of the Japanese version of Time Traveler. It appears to be playable, but I occasionally run into a "Time Warp Malfunction" moment in the game. However, it seems too scripted to be an actual disc problem, so I'm not sure what's going on there.MAME Work In Progress: Namco System 22.5/23/Super 23 - Swing A Horse!Mogs Emulation Station2023-04-01 | I've been gradually making progress picking apart the rendering hardware used by Namco System 22.5 (codenamed "Gorgon"), Namco System 23, and Namco System Super 23, which played host to the following arcade titles: - Rapid River (Gorgon, 1997) - Final Furlong (Gorgon, 1997) - Downhill Bikers (NS23, 1997) - Motocross Go! (NS23, 1997) - Time Crisis II (NSS23, 1997) - Panic Park (NS23, 1997) - Gunmen Wars (NSS23, 1998) - Race On! (NSS23, 1998) - 500 GP (NSS23, 1998) - Angler King (NSS23, 1998) - Final Furlong 2 (NSS23, 1998) - Crisis Zone (NSS23, 1999) - Guitar Jam (NSS23, 1999)
With the current top-of-tree code in MAME, only Time Crisis II shows any reasonable amount of graphics beyond the Power-On Self Test (POST). However, following my dusting off of some mothballed code I had to improve Rapid River and Final Furlong (on Gorgon hardware), I've begun looking into the code again after a long break, and was able to make further improvements to all machines shown in the video.
The current blocker issue on all of the Gorgon and System (Super) 23 titles is that the sometimes-dreaded Namco "KEYCUS" protection chip is documented as being present on all boards, and with the driver in its current state not having any hookups or protection work-arounds, all games end up crashing - in Final Furlong's case, seemingly intentionally - either immediately after POST, partway through attract mode, or when starting an actual game.
There are a whole host of graphical issues to fix, and a pretty limited number of known test cases, in addition to the per-game protection not being handled. If anyone feels like collaboration, the following things will need looking at once my changes get merged into the mainline MAME build, in no particular (but vaguely priority) order: - Z-sorting, to prevent the obvious overlapping in Motocross Go!, Rapid River, and Final Furlong, among others - Figuring out the KEYCUS hookup and implementing it to stop the games from intentionally crashing - Why an evil code bug has stolen the horses' bodies in the horse-select menu in Final Furlong - Gouraud shading, if it exists on the hardware (it likely does), and lighting as part of that - The intent and functionality of various unknown GPU state-setting packets that are presently skipped - Blending - Fogging - Texturing modes (500 GP seems notably unhappy in its opening scene) - Any System Super 23-specific texturing modes (purportedly that was its thing, I'm assuming a means for enabling bilinear filtering) - Why the shadows of the horses in Final Furlong's horse-select mode look like actual horses, rather than shadows
In any case, hopefully this will invigorate people to look into the hardware a bit more, and collaborate - I'm happy for an extra pair of eyes or ten, preferably still attached to a skilled coder, reverse-engineer, and/or graphics wizard, warlock, or maven.
Abbreviated intro cover of "Critter Tripper Fritter" arranged, performed, and used with permission of Ian Martyn: https://linktr.ee/IanMartynMAME - A 2022 RetrospectiveMogs Emulation Station2023-03-01 | The MAME 2022 Retrospective is finally here!
I had to omit an unfortunate amount of cool progress just to keep the video a manageable length, and even then it ended up being far longer than anticipated. I wish there were more opportunities for jokes, but the subject matter was, by necessity, a little on the dry side. Still, I'm happy with how it turned out - how about you?
00:00 Intro 01:25 Part 1: Newly Added & Promoted 10:44 Part 2: Internal Polish 12:09 Part 3: Computers & Peripherals 18:31 Part 4: Arcade Machines 27:26 Part 5: Consoles & More 33:21 Outro
Assorted Game Music Used: * SMRPG - Sunken Ship * Dr. Mario 64 - Title Theme * Star Fox 64 - Meteo * Mega Man 7 - Shade Man's Stage * Street Fighter II (Arcade) - Chun Li's Theme * Wolfenstein 3D (PC, Adlib)- Get Them Before They Get You * Jazz Jackrabbit - Tubelectric * Little Mermaid (PC) - Under The Sea * Out Run (Arcade) - Last Wave
Chapter Jingles: * Part 1: Arkanoid * Part 2: Dig Dug * Part 3: Frogger * Part 4: Donkey Kong * Part 5: Ghosts & Goblins
Moogle art designed, sketched, inked and colored by Arty Cheetah (Twitter: cheetah_secreto)
Stock footage provided courtesy of Pexels (pexels.com)
"Don of the Slums" and "Critter Tripper Fritter" arranged, performed, and used with permission of Ian Martyn: https://linktr.ee/IanMartyn
"Rumble Rangers" used with permission of Dunderpatrullen via Jim Lindgren - youtube.com/DunderpatrullenMAME Work In Progress - Palm IIIcMogs Emulation Station2022-12-11 | I spent this past weekend doing a major refactoring of the Motorola 68328 "DragonBall" system-on-a-chip emulation. The MC68328 was used by the first generation of PalmPilot PDAs, but beyond the IIIx model, Palm had moved on to using an updated version of the chip, called the MC68EZ328.
It shares a considerable amount of functionality with the original, and so it was necessary to revise the implementation so that the shared functionality can be inherited by both the MC68328 and MC68EZ328 devices.
There's still a lot to be done - touch events are unreliable, and there are some issues with the system hanging - but it's better than not booting at all, as it was this past Friday.MAME Work In Progress - Quantel DPB-7001 Digital Paintbox - Initial Font WorkMogs Emulation Station2022-10-16 | Here's more work-in-progress footage of the Quantel DPB-7001 "Digital Paintbox" driver in MAME.
I've been working on getting font stamping working correctly. There's still a ways to go, but it turns out a good chunk of the problem was that the fonts themselves were not getting correctly installed onto the hard disk.MAME Work In Progress - Quantel DPB-7001 Digital Paintbox - Drawing, Blending, & Palette FixesMogs Emulation Station2022-10-09 | This video is a follow-up to the previous three work-in-progress videos for the Quantel DPB-7001 "Digital Paintbox" driver in MAME.
Over the past day, I've: - Improved handling of the Stencil store resulting in the intended-antialiased border around brushes. - Fixed blending and matte functionality between the two frame stores. - Fixed handling of vertical and horizontal scroll registers. - Added support for Framestore Read and Framestore Write commands. - Improved position matching between the cursor and the menu, as well as the cursor and MAME's crosshair. - Started working on typeface brushes.
Until next time, be good to each other.MAME Work In Progress - Quantel DPB-7001 Digital Paintbox - Diagnostic TestsMogs Emulation Station2022-10-09 | Yesterday, a set of test ROMs from a diagnostic card were provided to me by @DextersTechLab in the hope that they might be useful.
After some challenges in getting the card up and running - it has slightly different expectations in terms of ROM and RAM mapping than the normal system firmware - it proved to be rather useful in shaking loose various bugs in the Combiner Card implementation for the Quantel DPB-7001 driver in MAME.MAME Work In Progress - Quantel DPB-7001 Digital Paintbox, Hard Disk supportMogs Emulation Station2022-10-08 | This video is a follow-up to the previous work-in-progress video for the DPB-7001 driver in MAME. Hard disk support is now working, which will make life much easier for installing typefaces and additional brushes. The interface is now considerably snappier as well, now that it doesn't have to spool brushes off of a floppy every time a menu comes up.
Description of the previous video follows:
I've been working on a driver for this off and on for about 3 years now. Recently I picked it back up again and have managed to solve some significant drawing-related bugs, to the point that the system is approaching usable.
The Quantel DPB-7000/7001 was a revolutionary machine used for broadcast-quality graphics generation. It first launched in 1981 at an eye-watering price of around £150,000 (that's over half a million GBP these days). For that, you got: - A Motorola 68000 main CPU - A bucketload of additional CPUs: One in the floppy controller, one in the keyboard, one in the drawing tablet, and one in the box to which the keyboard, tablet, and pen all connected - Upwards of 600k of ROM - Nearly 4 megabytes of frame-store RAM, split across two banks each of Luma, Chroma, and Stencil storage - An 8" floppy drive - A Fujitsu hard drive, 80 megs minimum - A pressure-sensitive drawing tablet - An alphanumeric keyboard for console operator control - A crate of around 20 individual PCBs, riddled with mixed analog/digital discrete logic - The ability to capture still frames from live footage
The Paintbox was employed heavily by the BBC at the time, as well as being used in the production of various music videos and other media. It's safe to say that it was the product that catapulted the reputation of Quantel in the field of graphics production from a niche player to the forefront.
Thanks to the gracious @DextersTechLab loaning me a physical service manual which holds schematics for all of the cards, as well as flaying open his own DPB-7001 and dumping every single ROM, PROM, and PAL (except one, but we're working on that), emulation has moved forward slowly, but with certainty.MAME Work In Progress - Quantel DPB-7001 Digital PaintboxMogs Emulation Station2022-10-01 | I've been working on a driver for this off and on for about 3 years now. Recently I picked it back up again and have managed to solve some significant drawing-related bugs, to the point that the system is approaching usable.
The Quantel DPB-7000/7001 was a revolutionary machine used for broadcast-quality graphics generation. It first launched in 1981 at an eye-watering price of around £150,000 (that's over half a million GBP these days). For that, you got: - A Motorola 68000 main CPU - A bucketload of additional CPUs: One in the floppy controller, one in the keyboard, one in the drawing tablet, and one in the box to which the keyboard, tablet, and pen all connected - Upwards of 600k of ROM - Nearly 4 megabytes of frame-store RAM, split across two banks each of Luma, Chroma, and Stencil storage - An 8" floppy drive - A Fujitsu hard drive, 80 megs minimum - A pressure-sensitive drawing tablet - An alphanumeric keyboard for console operator control - A crate of around 20 individual PCBs, riddled with mixed analog/digital discrete logic - The ability to capture still frames from live footage
The Paintbox was employed heavily by the BBC at the time, as well as being used in the production of various music videos and other media. It's safe to say that it was the product that catapulted the reputation of Quantel in the field of graphics production from a niche player to the forefront.
Thanks to the gracious @DextersTechLab loaning me a physical service manual which holds schematics for all of the cards, as well as flaying open his own DPB-7001 and dumping every single ROM, PROM, and PAL (except one, but we're working on that), emulation has moved forward slowly, but with certainty.MAME Work In Progress - Rapid River (Namco System 23)Mogs Emulation Station2022-07-16 | After enabling a ton of logging related to the 3D pipeline used by the game, and a fair bit of head-scratching for a couple of hours, Rapid River now has something resembling 3D graphics in my local build of MAME.
It's nowhere near where it should be, but it's a lot better than it was (which was, no 3D at all).MAME Work In Progress - Fairlight CMI IIx - Classic Samples (ORCH5, SARARR1, BIGBAND1)Mogs Emulation Station2022-07-13 | Just some more assorted MIDI-noodling, this time with some of the more characteristic samples of the Fairlight CMI line.MAME Work In Progress - Fairlight CMI IIx - MIDI InputMogs Emulation Station2022-07-13 | The SMPTE/MIDI card was already 99% implemented, and only required a tiny amount of debugging to actually wire up the Tx/Rx clocks to the four 6850 ACIAs that are used to manage the four MIDI-out and three MIDI-in ports on the emulated CMI IIx.
Here's a brief video of me noodling around using a few patches (brass and vox) using my DSI Prophet 12 hooked up to my PC via USB-MIDI, and plumbed into the emulated MIDI-in ports exposed by the CMI IIx driver that MAME can plumb outward to the host OS.MAME Work In Progress - Fairlight CMI IIx - MILLION.RS (Fixed)Mogs Emulation Station2022-07-13 | After a week and a half of random poking and prodding at different parts of the CMI-01A "Channel Card" emulation for the Fairlight CMI IIx driver in MAME, I finally managed to isolate and fix the sample issue that was affecting ITCH.RS and MILLION.RS.
Without getting too far into the gory details, it turns out that the Motorola 6840 Programmable Timer Module (PTM), one of which exists on each Channel Card and one of which exists on the Master Card to drive primary tempo-keeping, ticks on the falling clock edge when clocked externally, not a rising edge.
For certain particularly long samples, this resulted in the sample either being far too short, or far too long. With this sequence in particular, the "LOSTR3" sample would re-trigger towards the very end of the whole note when played at its highest pitch (as this runs through all 16k worth of individual sample bytes), and the "TBMILCLP" sample would occasionally play as just an abrupt click rather than the expected clap patch.
The one remaining issue is that the "MOOGTRIG" 'sample' seems to emit an audible click when triggered. Most likely, this specific channel was used to trigger events on an external Moog synthesizer during ABC's performance of "(How to Be a) Millionaire" on UK TV programme called "The Tube", back in 1984; due to the very short nature of the click, the most likely scenario is that it ended up being rendered inaudible by the Channel Card's Curtis SSM2045 filter chip, which is not yet emulated here.MAME Work In Progress - Fairlight CMI IIx - ITCH.RS (Fixed)Mogs Emulation Station2022-07-13 | After a week and a half of random poking and prodding at different parts of the CMI-01A "Channel Card" emulation for the Fairlight CMI IIx driver in MAME, I finally managed to isolate and fix the sample issue that was affecting ITCH.RS and MILLION.RS.
Without getting too far into the gory details, it turns out that the Motorola 6840 Programmable Timer Module (PTM), one of which exists on each Channel Card and one of which exists on the Master Card to drive primary tempo-keeping, ticks on the falling clock edge when clocked externally, not a rising edge.
For certain particularly long samples, this resulted in the sample either being far too short, or far too long; in this sequence in particular, the "JETTKICK" and "SEXSNAR2" samples were originally being cut off too early. This is now fixed.MAME Work In Progress - Fairlight CMI IIx - WESTEND.RSMogs Emulation Station2022-07-09 | A video of the Page R sequence, WESTEND.RS, off of the WESTEND.IMD floppy image, being run through the current work-in-progress Fairlight CMI IIx driver in MAME. Other than the missing Curtis SSM2045 filtering, no discernible differences compared to reference footage from real hardware.
Since the well-sourced Wikipedia article on West End Girls doesn't mention the Fairlight CMI, it's not 100% clear as to why this disk, which purportedly was used by Pet Shop Boys, would have existed. However, it's known that PSB used a Fairlight CMI III in some live performances - it stands to reason that the CMI IIx may have also been used in earlier years. This sequence combined with string pads on an E-mu Emulator II would have comprised the majority of the instrument track in the event of a live performance, so it's a reasonable enough theory.MAME Work In Progress: Fairlight CMI IIxMogs Emulation Station2022-07-03 | Back in 2009 or so, MAME developer Phil Bennett put aside a driver for the Fairlight CMI IIx he was working on, and never submitted it for inclusion in MAME. After a handful of went by, I offered to update it through the fairly massive number of core API revisions that MAME had undergone in the intervening time.
Unfortunately, either the backup version of the driver was earlier than what was remembered, or my update to the driver mangled things in some way: While the CMI system software has been able to run for ages, the music keyboard module wouldn't make any noise, and any Page R sequences produced little other than short blips.
After spending the past couple of days poring over the schematics for the CMI-01A channel card, I'm happy to say that it's now working well enough to play intelligible music and samples.
The secondary keyboard is currently not implemented, nor is the Analog Card (used for sampling), the MIDI card emulation has some fault that prevents revision 1.2 of the system software from booting, and emulation of the Curtis SSM2045 filter is completely missing so the samples are pretty rough around the edges - but it plays.
Lastly, the reason why I keep inadvertently typing 'P' into the command line at the top of the screen is because I kept having to pause MAME, bring up the file selector, and mount different floppies, as the full sample set for the Page R sequence that I load in this video is split across about 6 different disks.MAME Work In Progress - Poly-Net Warriors (In-Game)Mogs Emulation Station2022-06-26 | This whole game is adorable chaos, but the abysmal frame rate when in-game certainly doesn't help matters. It's pretty close to the frame rate seen on original hardware, however. At the end of the day, even flat-shaded real-time 3D in 1993 was a pretty big thing.
Overall, it's a small wonder why Konami's "Polygonet" hardware failed at the proverbial box office - it was presumably designed to go head-to-head with Sega's "Model 1" platform which was released the same year, but which gave a consistently better frame rate, and could drive medium-resolution monitors rather than the standard-resolution affair that Polygonet and Poly-Net were stuck with.MAME Work In Progress - Poly-Net Warriors (Attract Mode)Mogs Emulation Station2022-06-26 | After a small fix to how audio interrupts are handled, Poly-Net Warriors fires up just fine, and looks fantastic. It pretty obviously uses the exact same DSP program as Polygonet Commanders, as it required exactly 0 additional work on the DSP end of things for the 3D graphics to show up.
This game is just plain bizarre, but is an amusingly unique 1993-era take on first-person "arena deathmatch" style games.MAME Work In Progress - Polygonet Commanders (In-Game Footage)Mogs Emulation Station2022-06-26 | With some assists from "Uncle" Phil Bennett, Dave "MameHaze" Haywood, and some fellow calling himself Hydreigon, a few more fixes have gotten in just under the wire for the upcoming release of MAME 0.245: - Screen resolution adjusted from 256x368 to 256x384 (Phil) - Rotate/zoom layer fixes (Phil and Haze) - Network-board tweaks to prevent a hang when going in-game (Hydreigon)
With that in mind, I figured I'd record some in-game video. The tank controls are super awkward, and I look forward to the inevitable footage of someone doing a one-credit-clear on this game.MAME Work In Progress - Polygonet Commanders (Part 7, Ordering - 7:23AM 25 June 2022)Mogs Emulation Station2022-06-25 | This video represents the present state of Polygonet Commanders in my MAME source tree, and is (at a minimum) how the game will look in the upcoming release of MAME 0.245, assuming my pull request is approved.
One of the consistently irritating issues that I kept circling back to was the apparently "missing" portions of the player's tank during the very beginning of attract mode, as well as the base portions appearing in front of the doors as they open.
The hardware is both old enough and simple enough to obviously not support depth buffering: Although it was a concept which was known in the computer graphics field for at least a decade prior, the necessary bandwidth and RAM was still out of throwing range for even the custom sort of hardware that could be found in arcades during their heyday. Moreover, based on getting the on-screen 3D to draw at all, it was clear that Konami's custom chips are little more than accelerated span fillers: Which is to say, the DSP56156 manages transforming the 3D vertices to "screen-space" vertices, i.e., 2D coordinates. It then simply emits a set of start/end coordinates for horizontal lines that, when filled, will form a flat-shaded polygon. By the time the hardware even knows about the polygons, there's no such thing as depth.
Finally, out of desperation, I tried treating the framebuffers themselves as a very limited depth buffer: If a pixel has already been filled, don't allow any spans later in the list to overwrite it until an entirely new batch is being drawn.
It turns out that this was the key, and makes sense in retrospect. While it would be awkward in actual silicon to iterate to the end of the span list and then work backwards, it would be fairly trivial to have framebuffer writes use a read-modify-write cycle that aborts the "modify" and "write" portions if the framebuffer contains a non-zero value at that point.
While I was in there, I also worked to square up the size and position of the framebuffer relative to footage from real hardware, kindly provided by MAME developer Phil Bennett.
As far as I can ascertain, the only significant graphical issue is that some geometry continues to drop out, but I believe this is still due to lurking DSP56156 issues. After inserting a significant amount of debug-drawing code, it would appear that when the player's own tank body disappears, it simply is just not there in any of the span lists.MAME Work In Progress - Polygonet Commanders (Part 6, Color - 2:46AM 25 June 2022)Mogs Emulation Station2022-06-25 | With the geometry-related issues mostly ironed out, it was time to figure out why so many poly spans were using the wrong RGB555 color. Of particular note was that my chosen tank color was stated by the game as being "blue", when in practice it seemed to have a distinctly more psychedelic style going on.
As it happens, bitwise operations on accumulator registers are also subject to saturation logic. Since the DSP56156 uses a number of left and right shifts and bit-masking across the full 40-bit width of the B accumulator in order to construct the desired RGB555 value from an RGB888 value pulled from a table in program memory, getting this behavior correct was critical in order to not end up with mangled color channels.MAME Work In Progress - Polygonet Commanders (Part 5, Geometry - 12:48AM 25 June 2022)Mogs Emulation Station2022-06-25 | Ironing out some edge cases with how the DSP56156's accumulator registers are handled in full 40-bit mode - primarily pertaining to truncating the lower 16 bits and saturating the high 24 bits when above/below the limits of a signed 16-bit value - the warped polygons and massive holes in the world geometry went away.
It was at this point that I started trying to work out the issues with coloring and sorting.MAME Work In Progress - Polygonet Commanders (Part 4, Stability - 12:00AM 25 June 2022)Mogs Emulation Station2022-06-25 | After spending roughly 12 hours on Friday tracking down more arithmetic and functional issues in MAME's the DSP56156 core, the stability of the geometry in the game was much improved. Although there were visible issues with priority, issues with warped triangles, and coloration was significantly off, it was less of a flickering mess than when I put the driver to the side earlier this week in order to focus on a milestone at my day job.MAME Work In Progress - Polygonet Commanders (Part 3, More Polys)Mogs Emulation Station2022-06-20 | Some code that I had initially put in to limit polygon spans to a certain range, and reject any outside of it, ended up inadvertently rejecting spans that were in fact intended to reach the edge of the framebuffer.
There are clearly some DSP bugs left - the first-person tank having a few broken triangles is a clear indicator of that - but with some free time coming on Thursday and Friday, I'm reasonably confident that it should be possible to get things into a relatively sane state by the upcoming code freeze on Saturday for the monthly last-Wednesday release of MAME 0.245.MAME Work In Progress - Polygonet Commanders (Part 2, Fixed Polys)Mogs Emulation Station2022-06-16 | It turns out that things look a bit better, and have less corrupted geometry, if you don't try to process spans beyond the end of a given span group.MAME Work In Progress: Polygonet Commanders (Konami)Mogs Emulation Station2022-06-16 | Polygonet Commanders was a failed 1993 arcade game by Konami, running on an arcade board intended to go head-to-head with the Sega Model 1 board in terms of flat-shaded 3D graphics. Only two games were ever released on this hardware, the second being Poly-Net Warriors.
Under the hood, the system sported a Motorola 68EC020 as the main CPU, a Motorola DSP56156 for processing 3D geometry, a quartet of custom chips for filling the horizontal spans of the geometry, a Konami PSAC custom for rotate/zoom ("Mode 7"-style) graphics, a simple 8x8 tilemap implemented in discrete logic, and a Zilog Z80, Konami custom K054321, and Konami custom K054539 to handle sound.
Cabinets could be linked together for local networked play.
The two games have remained without 3D graphics in MAME for over a decade, primarily due to the DSP56156 core having a myriad of bugs.
While it still clearly has its share of bugs, this is the first time that it's been able to run its geometrizer program successfully enough to produce any data at all, let alone recognizable polygon data.Story of Seasons: Pioneers of Olive Town playthrough, Week 2, Spring 8-14 (No Commentary)Mogs Emulation Station2022-04-29 | I bought this game a few weeks ago when I happened to be on a plot-driven life/farm/social kick.
Story of Seasons is what most people would think of as the Harvest Moon series, as it's developed by the same company which originally developed "Bokujou Monogatari", which is what was originally localized under the name Harvest Moon. When the original developer (now known as Marvelous, Inc.) switched publishers, Natsume retained the rights to the Harvest Moon name, and so Marvelous, Inc. found a new name.
So far, the game has been addictively enjoyable. It's not without its warts - any tutorialization involving which items are accepted by which machines that you can build is entirely nonexistent - but beyond that it's a charming 3D take on the classic Harvest Moon formula, not at all dissimilar to projects like My Time At Portia.Story of Seasons: Pioneers of Olive Town playthrough, Week 1, Spring 1-7 (No Commentary)Mogs Emulation Station2022-04-26 | I bought this game a few weeks ago when I happened to be on a plot-driven life/farm/social kick.
Story of Seasons is a fairly interesting series, insofar as it is what most people would think of as the "Harvest Moon" series.
Natsume, under contract to Victor Interactive Software, localized the series "Bokujou Monogatari" into English as "Harvest Moon" from the mid 90's to around 2013. At that point, VIS - which had since been acquired and become part of Marvelous, Inc. - opted to hire a different western localization team, known as Xseed.
After that point, Natsume - owning the rights to the name "Harvest Moon" - continued to develop IP under that name, while Xseed in turn opted for the name "Story of Seasons". In every respect, Story of Seasons is the "true" Harvest Moon, as it is a localization of the original VIS (now Marvelous) team's vision.
This past Saturday, I began playing it on a whim when my usual routine of playing Stardew Valley Expanded with a friend was interrupted due to illness. This was a rather dangerous choice, as it turns out that Story of Seasons: Pioneers of Olive Town is a rather solid title and addictive as all hell. It's not without its warts - any tutorialization involving which items are accepted by which machines that you can build is entirely nonexistent - but beyond that it's a charming 3D take on the classic Harvest Moon formula, not at all dissimilar to projects like My Time At Portia.Silicon Graphics O2 - All Boot/Shutdown Chimes (+ 8 Unused)Mogs Emulation Station2022-04-17 | The Silicon Graphics O2 - their new "low-end" system introduced in 1996 to replace the aging Indy - was a graphics workstation that still managed, for its time, to pack a wallop in terms of RAM capacity, real-time 3D graphics, and CPU grunt.
While working on emulating the O2 this past weekend and looking at some scattered source code that's been floating around the web, I kept coming back to the code that generates the plucked-string boot chime, as it appeared that there were enough tables for 11 different chimes, although only 3 were used.
I wrote a small program to compile and run the relevant segment of code, generating a WAV for each table. Sure enough, in addition to the usual Power On, Shutdown, and Graphics Failure chimes, there are 8 others that vary from completely unique to barely different from the main three.MAME Work In Progress: SGI O2 WorkstationMogs Emulation Station2022-04-17 | For the past two weekends, I've been working on and off to improve the SGI O2 driver in MAME. While it currently needs to rely on one specific hack in the CPU core due to not having L1 cache support yet, and so a pull request cannot yet be submitted, it's coming along.
The next stumbling block will most likely be implementing the Adaptec AIC-7880 SCSI controller in order to be able to run diagnostics or attempt to install IRIX, as I'm pretty lousy when it comes to disk controllers.MAME Work In Progress - Time Traveler (Sega, 1991), Easter EggsMogs Emulation Station2022-03-29 | According to Wikipedia, there are two easter eggs that can be found in Time Traveler, so I decided to try to verify them. It seems that both, indeed, exist.
With a full credit inserted (3 coins by default) and the game in attract mode, hold the Attack and Time Reverse buttons, and while keeping them held, push the joystick down. The attract mode video will be replaced by a short clip of Rick Dyer (the game's creator) running around with his kid on his shoulders, and a voiceover explaining that the game is dedicated to his son. After the video ends, the screen will remain black until the point the game's attract mode would normally progress to the next video in the sequence.
To view a short clip of the development team, follow the same steps, but push the joystick up instead.MAME Work In Progress - Time Traveler (Sega, 1991), EndingMogs Emulation Station2022-03-29 | After a handful of bug fixes - some of which, sadly, missed the cutoff for MAME 0.242, and will be in MAME 0.243 instead - Time Traveler is now fully playable to the end.
The ending is like something out of a bizarre fever dream, so I couldn't resist uploading it here for everyone to see.(Reupload) MAME Work In Progress - Time Traveler, further progressMogs Emulation Station2022-03-26 | This video is a follow-up to the previous upload, as well as the two attempts at uploading this video earlier this morning, but with mangled quality, cropping, and aspect ratio. I apologize to anyone who's gotten spammed with notifications about it as a result.
Time Traveler is, by and large, now working. There are the occasional questionable deaths and questionable moments, but at this point it's unclear to me if it's because I'm terrible at "games" that are ostensibly non-stop Quick Time Events, or if there are emulation bugs to be ironed out.
For example: - I'm not sure if the number of times I had to shoot a given enemy in the "1998" world is supposed to be a thing or not, but given that I died when I stopped shooting and didn't die when I didn't stop shooting, I suspect it's intended. - I'm not sure if the lengthy pause after a Time Reversal Cube is hardware-accurate. - In general, the timing window for some of the deaths in the game seems to be razor-thin and woefully unfair.
In any case, improvements from the last video include: - A proper layout file for showing the alphanumeric LED readout, Time Reverse button lamp and 1P+2P start lamps - Fixed input hookups, allowing Time Reversal Cubes to be used - More of the Pioneer LD-V4200 command set is implemented, including Step Forward/Backward, Multi-Speed Forward/Backward. - Courtesy of Matt Ownby of the Dragon's Lair Project website, tests have been run against a Pioneer player of similar vintage in order to iron out some ambiguity in the documentation as to what circumstances cause a delayed response from the player, and what circumstances cause an immediate response.
A pull request has been submitted upstream to the MAME team, here's hoping that it makes it into the upcoming release of MAME 0.242!MAME LaserDisc Work In Progress - Time Traveler (Sega, 1991)Mogs Emulation Station2022-03-21 | This is a very work-in-progress demonstration of Sega's LaserDisc-based arcade game from 1991, Time Traveler, running for the first time in MAME.
The LaserDisc capture was produced by the ld-decode toolchain, developed by the Domesday86 team, which can capture every shred of data on a LaserDisc.
Time Traveler is a particularly hard case for the ld-decode tools, as the audio was mastered very "hot", requiring some tweaking and bug fixes to the toolchain. In addition, only one disc has as yet been captured, so "disc stacking" to remove drop-outs (rather than filling them from neighboring data in the single capture) can't yet be applied.
In the case of MAME, Time Traveler also happened to be one of a small handful of LaserDisc games that doesn't use a player model which had been emulated yet. The current player implementation is based on high-level emulation of the Pioneer LDV-4x00 command set, and certain commands (e.g. Speed Set and Multi-Speed Forward) being unimplemented led to some of the playback glitches seen towards the end of the video. Last but not least, the scrolling messages towards the bottom of the screen should be implemented as alphanumeric LED groups via MAME's artwork system, rather than using debug pop-message functionality.
This wouldn't have been possible at all without the Herculean amount of effort put in by the ld-decode Team (Chad, Simon and Ian), Matt & Warren, and a whole lot of people working behind the scenes to source and capture LaserDiscs before the last of them rot.
To read more about the Domesday86 project as a whole, stop by the website here: domesday86.com
Or, to read more about the technical nitty-gritty of the ld-decode toolchain, go to Chad "Happycube" Page's own Github repository for it: github.com/happycube/ld-decodeMAME 0.240 Work In Progress - Philips CD-i, The Apprentice, proper CD audioMogs Emulation Station2022-01-07 | As it turns out, "CD-i Ready" games are almost identical to a standard CDDA disc other than the fact that the initial set of sectors can be decoded as data, and the lead-in is (by definition) larger than 30 seconds.
After taking this into account, as well as the fact that sectors can be scrambled in a different format different from the expected one, it was straightforward enough to get The Apprentice (as well as Dimo's Quest - video coming later, once a proper dump is available) running as intended.
Between a handful of graphical bugs being fixed, a significant amount of optimization (the driver is currently 2-3x faster than it was), and these audio fixes, MAME 0.240 is shaping up to be the go-to version for CD-i emulation enthusiasts, as long as you don't want to run a title that requires MPEG decoding.MAME 0.240 Work In Progress: Philips CD-i, The ApprenticeMogs Emulation Station2022-01-03 | After a small handful of fixes to the video chip (MCD-212 'VDSC') emulation in MAME's Philips CD-i driver, The Apprentice no longer has flashing corruption at the bottom of the screen.
There are still audio issues remaining - primarily, the game being silent until going in-game - but the visuals are at least on-target.MAME 0.240 Work In Progress - Quizard 4, Philips CD-i Arcade MachineMogs Emulation Station2021-12-30 | In light of the recent improvements to the Philips CD-i console driver in MAME, I figured I'd record a run-through of each of the four major revisions of the pub-quiz series from TAB Austria, "Quizard".
They're fairly unique in that they have an off-board microcontroller, plugged in in place of a regular controller, providing an additional button/coin-mechanics/DIP-switch interface, as well as copy protection.
Until this most recent round of fixes, Quizard 3 and Quizard 4 didn't work, but Quizard 1 and Quizard 2 are also improved in terms of audio.
In particular, Quizard 3 and Quizard 4 would tend to hang when going in-game. Quizard 4, would eventually run off the rails either when displaying quiz images, during bonus rounds, or after a game, all of which are now fixed.
Additionally, this iteration of the game includes user-selectable categories, which include an adults-only "Erotik" category, which has been blurred prior to upload for what should be obvious reasons on this platform.MAME 0.240 Work In Progress - Quizard 3, Philips CD-i Arcade MachineMogs Emulation Station2021-12-30 | In light of the recent improvements to the Philips CD-i console driver in MAME, I figured I'd record a run-through of each of the four major revisions of the pub-quiz series from TAB Austria, "Quizard".
They're fairly unique in that they have an off-board microcontroller, plugged in in place of a regular controller, providing an additional button/coin-mechanics/DIP-switch interface, as well as copy protection.
Until this most recent round of fixes, Quizard 3 and Quizard 4 didn't work, but Quizard 1 and Quizard 2 are also improved in terms of audio.
In particular, Quizard 3 and Quizard 4 would tend to hang when going in-game. Quizard 3, in this case, would invariably exhibit visual glitching during the bonus round, which is shown here, working, in its entirety.MAME 0.240 Work In Progress - Quizard 2, Philips CD-i Arcade Machine by TAB AustriaMogs Emulation Station2021-12-30 | In light of the recent improvements to the Philips CD-i console driver in MAME, I figured I'd record a run-through of each of the four major revisions of the pub-quiz series from TAB Austria, "Quizard".
They're fairly unique in that they have an off-board microcontroller, plugged in in place of a regular controller, providing an additional button/coin-mechanics/DIP-switch interface, as well as copy protection.
Until this most recent round of fixes, Quizard 3 and Quizard 4 didn't work, but Quizard 1 and Quizard 2 are also improved in terms of audio.MAME 0.240 Work In Progress - Quizard, Philips CD-i Arcade MachineMogs Emulation Station2021-12-30 | In light of the recent improvements to the Philips CD-i console driver in MAME, I figured I'd record a run-through of each of the four major revisions of the pub-quiz series from TAB Austria, "Quizard".
They're fairly unique in that they have an off-board microcontroller, plugged in in place of a regular controller, providing an additional button/coin-mechanics/DIP-switch interface, as well as copy protection.
Until this most recent round of fixes, Quizard 3 and Quizard 4 didn't work, but Quizard 1 and Quizard 2 are also improved in terms of audio.MAME 0.240 Work In Progress: Philips CD-i, Santa Claus MiceMogs Emulation Station2021-12-30 | Just a video demonstrating this fairly unremarkable "game" - if it even is one - and the fact that it no longer reports a "disc dirty" error when bringing up the in-game pause menu.MAME 0.239 CD-i Driver - Work In ProgressMogs Emulation Station2021-12-24 | Having spent a ton of time updating MAME's emulation of the CDIC - the chipset that controls both audio playback and CD reading - various games are working better than before.
Hotel Mario works about as well as it did before, but there was a fun little discovery: Apparently, the game detects when it's Christmas Eve / Christmas Day, and adjusts its loading-screen messages!MAME 0.233 Work-In-Progress - Sango Fighter, Super ACan driverMogs Emulation Station2021-06-04 | After a considerable amount of reverse-engineering effort on the part of SuperCTR, Olivier Galibert, as well as myself, enough information has been teased out to add rudimentary sound support to the Super A'Can driver.
The Super A'Can was a Taiwanese game console that was originally made in the mid 90's. It was a colossal failure at the market, with a small number of different game cartridges ever released. Due to this, there is a remarkably small landscape on which to work out the expected hardware behavior based on the accesses made to the hardware by each game.
The hardware itself is based around a Motorola 68000 main CPU, with a UMC "UM6618" custom IC for video hardware, and a UMC "UM6619" custom IC for audio hardware. At this point, the UM6619 has been determined to contain at least a 6502 core as well as the sound hardware core. It is theorized that the UM6619 may also contain some amount of ROM, containing both initial program for the embedded 6502 which performs the initial cartridge security check, as well as initial system bring-up, along with the instrument patch for the characteristic harp patch which is played during the boot logo. Without this data, the boot logo animation is notably silent.
There is still much work to be done: Envelopes are not fully understood, voice samples are missing in Sango Fighter, and there are several audio-related registers where the intended behavior is not fully clear. Nonetheless, this is a major step forward in preserving this incredibly rare (and incredibly expensive) console.MAME Work In Progress: V-Tech V.Smile Dance Mat, Jam GymMogs Emulation Station2020-10-09 | MAME's V-Tech V.Smile driver has been working nearly perfectly for a couple of releases now, but there have been some games that require custom controllers that have been a bit elusive to reverse-engineer.
Thanks to the efforts of MAME contributor "bmx" to both acquire a dance mat, and hook it up to his logic analyzer so that we could figure out what was being sent to the base console, I was able to implement a working emulation of the dance mat controller for this particular series of games.
As a nod to bmx, I chose the French localization of the game, but the German and Spanish localizations of the game work just as well. In principle, the regional variants of Jam Gym which have yet to be acquired - US, UK, and Netherlands - should work just as well once they have been acquired and dumped.
If there is anyone in possession of the above regional variants and is willing to send them off for preservation, please reach out to me.Ataris Destroyer - MAME Gameplay w/ Netlist AudioMogs Emulation Station2020-08-11 | This one was a bit more of a challenge than Flyball to get transcribed into netlist form, as the scan of the schematic was of extremely poor quality. Regardless, it still only ended up taking around 7 hours to implement from start to finish, including debugging time.
Compared to recordings off of a real cabinet, there's still some strangeness that I can't quite figure out, but at this point I have to figure it's either the cabinet's speaker or the cabinet itself acting as a low-pass filter, or even the camera with which the reference video was recorded. In Trevor Brown's recording of a real Destroyer machine, the sonar sound effect in particular has a much more pronounced "pong" sound to it, without all of the higher harmonics that are present in MAME. I've verified and re-verified the hookups and part values, however, and I'm reasonably confident that I have not missed anything.Ataris Flyball - MAME Gameplay w/ Netlist AudioMogs Emulation Station2020-08-11 | Veering temporarily into Atari territory, we have another game that has, to date, entirely lacked audio in MAME, with not even recorded samples available. It now enters the ranks of games with their audio circuits preserved in MAME's netlist system. Please refer to previous videos in this series for a full description of said system.