Old News - 2001 | |
|
Old News (12/23) Yesterday I made some minor modifications to my Sega System 16 board so I could use flash memory with it, and wrote a simple memory viewing program that allowed me to piece together a complete memory map. I've got a few other test programs in the works, and will write up my findings as well as release the programs themselves (source+binaries) later on. At the moment I need to rig up some kind of controller as the memory viewer uses the DIP switces and test menu button for navigation, which is really cumbersome. ;) I was able to get the Pro Action Replay and Gamtec Magicard dumps, so thanks to those of you who helped locate them. I've already got the Magicard hardware figured out, and will upload a document about it next time I update. Old News (12/18) I've decided to release some TurboGrafx-16/PC-Engine programs I've developed over the past two months:
Finally, I've been improving the compatability in TGEmu and have a few more screenshots of other games that now work:
Legendary Axe
Old News (12/10) Today I found out that the Sega System 24 hardware is now supported in MAME, so I've decided to stop my System 24 emulation project, as I also had done in the past with the Sega System C2 emulator. Needless to say I am quite happy to see it emulated, this means one more piece of Sega's history has been preserved. Cheers to the MAME team for their hard work. :) I went through the HuC6280 CPU core used in TGEmu and fixed every single bug and missing feature I could possibly think of, and now have a lot previously broken games working. Including one of my favorites, BravoMan:
Best of all, I've been doing a lot of research on the CD-ROM hardware and have most of the registers figured out, including mostly everything about the ADPCM controller - I even wrote a test program to play back a sample on the real thing. At the very least I'll update the PCE technical documentation in the near future with my new findings, or maybe I'll have a new version of TGEmu ready in time for Christmas. :) Old News (11/22) I had recently looked at a Magician Lord cartridge for the Neo Geo (MVS), and was surprised to find the program board had two sockets for 27C4001 EPROMs. They have nearly the same pinout as some flash memory I have, so I decided to do a simple modification to the board, allowing for two 512K chips to be used. The board also has a jumper which enables either the original 16-bit mask ROM or the two 8-bit EPROMs, which was very convenient. I've had a lot of problems using the program ROMs from other games, I tried Cyber Lip, Viewpoint, and Blue's Journey which all had very erratic behavior, like constant resets or random bits of gameplay occuring when the game was selected, instead of always starting up at the same place. I'm not sure why this is happening, though after looking at some other Neo carts the internals are mostly different between each game. It's possible that the program ROM layout as seen by the game could be different as well. Of course running the original Magician Lord game on the EPROMs will work fine, but I had tried to use an invincibility cheat and the game would refuse to boot - during the startup screen (where some garbage is displayed) the machine would flash the coin counter displays on the control panel and reset. I'm assuming it was performing a checksum on the program ROM and failing. So, does anybody know if I'm right about this checksum idea, and if so how the correct one is calculated? I really want to write some of my own test programs to get a better idea of how the Neo Geo hardware works, but I have no idea what the BIOS expects to find in a cartridge (in terms of a checksum, header, other bits of validation) - I thought for sure this kind of thing had been documented but that's not the case. If someone has more information about this, I'd be interested. Old News (11/18) I finally finished a rewrite my SMS VDP notes, which you can get here: Master System VDP Documentation Most of the new information is based on a lot of experiments I did with my SMS 2 and the flash cartridge I made a few weeks ago. There are still a few things to add to it in the future, but right now I'd say it's pretty much complete. And yes, I've also got a rewrite of my Genesis VDP document in the works, but that won't be ready for a while. I've uploaded the instructions on how to make a SNES flash memory cartridge. The current one is pretty limited in that it can only run LoROM games that are 512K or smaller. I'm currently working on a modification for 24MB games that use the MAD-1 address decoding chip to allow two 512K flash memory chips to be used at once, so 1MB HiROM or LoROM games could be used. (depending on the board which was modified) Super Nintendo 512K Flash Memory Cartridge I've also made a NES devcart out of an old Zelda SNROM board. It has 8K of battery backed RAM, 8K of character RAM, and supports 256K of program ROM, though a switch could be added to the 512K flash memory to select the high or low sections if you wanted to use two 256K games at once. I'll add instructions and pictures later on, at the moment I need to fix a few things about the board layout. (it was initially made to support 128K only since this was what Zelda used, but as it turns out the board will handle 256K just fine) Speaking of the NES, if anybody has a pinout for the MMC3-C or for the PRG and CHR areas on a NES-TKROM-10 board, please let me know. Old News (11/03) Similar to the SMS devcart that was mentioned earlier, I put together a SNES cartridge that accepts 512K of flash memory for program development. I've tried running a few small games and demos which seem to work fine, so it looks like I can start playing around with the SNES hardware. I'll put up instructions and pictures of how to make a cartridge like this yourself, in the near future. I also added a PAL/NTSC switch to my SMS 2, so I can experiment with the 240-line display mode which doesn't work on regular NTSC machines. And of course play PAL games, though the only interesting ones I've been spending time on are Cosmic Spacehead and Micro Machines. Old News (10/18) I recently put together a SMS cartridge that uses flash memory for program development. If you want to make such a cartridge yourself, I've added instructions here: Now that I can run programs on a Master System, my goals are to document the TMS9918 subset used in the VDP, as well as the extra features added to the VDP used in the SMS 2. This will benefit future versions of SMS Plus, as well as the VDP documents I've written. I don't intend to stop working on the TurboGrafx-16 research I've been doing, there will be an update to the hardware notes soon, along with some cool programs I've written. Old News (10/11) I made a small but interesting update to the TurboGrafx/PC-Engine documentation, involving DMA. Old News (10/10) Lots of new things today: I've updated my TurboGrafx-16/PC-Engine hardware information document. It's nearly double the size of the previous version, so there's plenty of material to look through :) I've released a utility, hesfix, which modifies existing HES files to work on a real TurboGrafx-16 system. It's partially based on the player included with the original HES packages, so I can't take credit for the player program. Make sure to create backups of your original HES files before you convert them. I've added a new TurboGrafx-16 page, with patents, utilities, links, etc. I've added PCB scans for the Genesis cartridge version of NBA Jam, thanks to Mr. Sporty. Old News (09/30) I recently bought an EPROM programmer and have been doing experiments on the TurboGrafx-16 hardware, running my own test programs to verify and discover how it works, beyond what's already known. I've written up some preliminary documentation, which is available here: Should be of interest to emulator authors and software developers.One of my goals is to emulate the CD-ROM hardware at the register level in tgemu. I repaired my Turbo CD power pack earlier this week and have started looking at the ADPCM registers. I'll put together a page soon with a new version of my hardware documentation, along with some TurboGrafx-16 patents and some of the test programs I've developed. I'd like to use the EPROM programmer to run test programs on my Sega System 24 and System 16 boards. I still need to buy some extra stuff to do this, so it won't happen quite yet. Old News (08/23) I've completed my screenshots page which shows examples of using the undocumented VDP register described below: After some searching around, I found the rest of the TurboGrafx-16 patents. I'll convert the TIFF images to PDF and include them in the console information page. Old News (08/20) I've released a few more Genesis programs:
Also, here are some details on an undocumented register that the Genesis VDP has.
I'm going to try and get some screen captures of the results created with this register, since it's a little difficult to explain. Old News (08/01) I've released several SMS test programs, a Genesis test program, and some documentation about the SMS video display. Check out the console information section for more details. Old News (07/25) Just for fun, I've been rewriting SMS Plus in my spare time. Recently I worked on implementing some VDP features that are specific to the Codemasters SMS games, and here are the results:
I haven't even considered doing another update to SMS Plus, so these screenshots don't mean anything is going to be released in the future. Old News (07/22) More screenshots - I really couldn't resist this time, as I had found the CD for one of my favorite CD games, Last Alert. It seems to work with very few flaws in tgemu, which is pretty exciting.
Old News (07/21) I've finally gotten around to working on tgemu a bit more, which had been collecting dust for quite some time. I rewrote all of the CD handling, and implemented it as a driver based system for portability reasons. It has a driver for plain ISO files, another one for compressed files (which can be loaded entirely in memory - space allowing), and finally a MSCDEX driver which lets you use real CD's in pure DOS or a Windows DOS box. I've tried it with Monster Lair, which seems to be the only real CD I own that works. A lot of the other code has gotten cleaned up and tweaked a bit, the VDC and PSG emulation are a bit more accurate now. I also added in a hack of sorts for the PSG's noise emulation, since there is no documentation on how it really works. Here's a bunch of screenshots (of regular CD and Super CD games) from the current beta version:
Old News (07/14) Here's a snapshot of my latest project: ![]() At the moment, I have the BIOS from a European board working, thanks to ANY for dumping it. I'm hoping to get a better idea of how the BIOS detects cartridges, and how to enter the diagnostics mode. (which has a lot of interesting tests) For all I know, it may be possible to use existing Mega Drive ROMs with the board, since I've heard the Mega Play cartridges are identical to Mega Drive ones. I am interested in getting dumps of Mega Play / Mega Tech cartridges (and the Mega Tech BIOS), and if anybody owns the board itself, I would like to get some help identifying chips and other parts. Old News (07/10) Thanks to Mr. Ogawa and some helpful MAME developers, I've got a translated version of the MSM6253 documentation. I also want to thank the other people who wanted to help out, it looks like there are a lot of System 24 fans. :) It's been quite a while since the last release, but tgemu is still being worked on. Recently, I found a few patents for the TurboGrafx 16 hardware, and I've been improving the VDC, PSG, and CPU emulation to reflect the new information. I'm considering writing my own CPU emulator for it, but that would probably take quite a bit of time. Chances are I'll have one more hesplay release to test some of the new things prior to coming out with another version of tgemu. Old News (07/08) I'm looking for information on the Oki MSM6253 chip - something like a datasheet that has a pinout of the chip and explains how it functions would be useful. The only thing I've found is a datasheet in Japanese, that can't be viewed in the version of Adobe Acrobat I have. If you can help out, please let me know. I've done quite a lot of work on the System 24 hardware; I figured out how the floppy disk and analog control boards work. The latter item is still missing information on how the brake and accelerator pedals work (which are handled by the Oki chip mentioned above), but I have the steering wheels taken care of. The memory map description has been improved, and the only other things I wanted to work on are a better description of the I/O chip and the name table data format. I think after that, I'll release the new System 24 documentation. Old News (06/06)
The left image is Sega's Alien Storm (bootleg) running in MAME.
As you can probably guess, I plan to rewrite my Sega System 16/18 emulator with full support for the extra video chip which generates the background layers. I haven't worked on the emulator in ages, and only hacked in the second video chip support today. So the source code is a complete mess, and I'd really rather make it more organized, and portable. (instead of DOS only) I wish System 18 games made better use of the second video chip, apart from the shooting gallery stage in Alien Storm, Moonwalker also uses it for hostage sprites. Shadow Dancer doesn't seem to use it at all. Maybe when/if the other System 18 games get unencrypted, I'll be able to see what they do with it. Even though I asked about this before (when my System 16/18 emulator was first released), I am very interested in getting my hands on schematics for the Sega System 18 or System 16 hardware. If you can help out, please send an e-mail my way. :) Old News (06/02) Caz has sent me an updated version of the smdutil source code, which works under BeOS. I will integrate these changes into the next version, but for now you can download the source and compile it yourself.
I've released version 1.0 of hesplay, a utility for DOS which plays ripped PC-Engine/TurboGrafx-16 music stored in PCE-format HES files. It uses the PC-Engine hardware emulation from tgemu, as well as the new sound engine from the current beta version. The player comes with source code, so you can port it to another system, or write a WinAMP plugin, or do whatever else you want within the constraints of the license.
Currently the PSG noise and LFO modes are not emulated. Also, hesplay will only work with ripped music that is stored in a PCE format file. (with the header, music data, and player joined into a single file) I intend to support the player-less files in a future version. Here are the HES data files, too: To make a working HES file, copy the bincut2 utility somewhere within your PATH, copy over the ROM image that matches the game you want (you may have to rename it), and run the appropriate batch file. If something doesn't work out, just examine the batch file to see what's going on. Old News (05/27) I've written a new Sega Genesis demo program which shows 1,536 colors on-screen at once. Here's a snapshot:
![]() Small update: the program had a minor bug and is now fixed. I updated the source code / binary, so grab that if you downloaded the older version from yesterday. This effect isn't exactly useful for a game, but I wanted to see if doing something like this was actually possible. Here's the program itself, with full source code included:
Old News (05/13) I recently developed a music player for the Genesis, which has the Z80 do all the work of sound playback while the 68000 is free for other tasks. It plays SSL logs (GYM support is almost done), but could be expanded for any kind of music format which is updated on a per-VBlank basis. It supports up to 254 songs, and each song can be 16MB in length. (that's in theory, in reality you have up to 4MB of ROM and 64K of RAM to use for storage) The demo program comes with four nice tunes from a few of my favorite Game Gear games. Full source code is included, so those of you working on Genesis demos, games, or really anything can now have music to enhance your project.
There are still a few missing features and minor bugs, for example the player does not take the song length into account and will play past the end. I'll provide updates in the future. Old News (05/02) A while ago I had worked out some fairly unusual behavior that the Genesis VDP sprite hardware is affected by. I finally had the time to implement this in my emulator, and here are the results:
Might not look too amazing, but the deal is that other emulators display these levels with missing sprites or none altogether. For this game only (Castlevania Bloodlines) I also added a level select, so I can just press one key to skip to any level needed. Emulation and cheating go hand in hand. :) Old News (04/20) Minor update: I was advised to check out EmuLition, which happened to have a Namco Classics 1 dump. According to the readme, the graphics ROM is a surface mount chip, which is hard to remove and dump. (if you've seen one, you know what I mean :) So there's the missing graphics explanation - a shame really, since an emulator with no display isn't much fun. I think I'll still continue work on the ND-1 emulator, and at the very least document what I've found out so far. Maybe at some point in the future, the missing ROMs will be dumped. News (04/20) I recently visited the new Namco section of Sega Museum and found the section on the ND-1 board to be fairly interesting. So interesting, in fact, that I started writing an emulator for it. Right now it runs up to the self test and fails - there is no graphics emulation (explained later) but in the name table RAM all the text that it displays is visible. The board uses a vertically oriented monitor, so it took me forever to realize that's why the text was printed vertically and not horizontally. ;) The board has a microcontroller which is what currently makes the self test fail. There are also no graphics ROMs, and the pattern memory which the video chip is supposed to be connected to doesn't seem to be mapped to the main CPU's address space. I have the nagging feeling the microcontroller handles graphics, and possibly other things like inputs. I've found documentation for the microcontroller, and will try to write a disassembler to see what it's purpose really is. If anybody owns a ND-1 board and could answer some questions, please get in touch. I haven't forgotten about tgemu yet. I've improved the CD emulation, and now Gradius 2, Rayxanber II, and Alzadick are *fully* playable, with only CD audio and ADPCM sound missing. There also may be several new ports of tgemu available, but I won't say anything yet. :) Old News (04/17) More work on tgemu, I added support for the Super System Card, which got a few games actually running:
I originally thought that for reasons of compatability, games would access the CD-ROM unit's hardware registers through the System Card functions. As it turns out, a number of games use the registers directly, which means to some degree I'll actually have to emulate the CD hardware. Currently I have the System Card patched to call my own CD simulation routines, which seems to work OK but will not be enough. I rewrote the memory handling to support dynamic memory maps (needed by the various System Cards and special games like SF2:CE'), and started cleaning up the file handling so zipped ISO images can be used. The new memory handling also means that in theory I can support the SuperGrafx, but this would also require all the video code to be rewritten. I've got some CD related questions for you experts out there:
I've been working on tgemu recently. Here are some screenshots of the preliminary CD-ROM emulation: The first two are warning screens which show that a Super System Card is needed - right now I only support the original System Card, and I have no idea how the Super card differs from it. But at the very least, you can see that the CD-ROM emulation works enough for games to run. I would like to stress the point that these are the only working games, and therefore compatability isn't too good at the moment. :)I've also added a lot of other things, such as multi-tap and 6-button controller emulation, full sprite and background priorities (this can be toggled during runtime, since it does take a little more CPU power), and some contributions from users and porters of tgemu. I'm not sure when the next release will be, but rest assured it's something to look forward to. :) News (03/29) More progress on the Sega System 24 emulator today. I worked out how the palette is encoded into each name table word. Much like the System 16 hardware, some of the bits which select the pattern value also select the palette, which forces certain patterns and palettes to be used together. Here are some screenshots of the palette emulation in action:
Looking at these pictures made me notice something interesting, they all have the graphics shifted over to the left a bit. Internally the name tables are arranged as 64 tiles wide, but I do know that the Model 2 hardware uses the same tilemap generator, and it's physical resolution is 496x384 pixels. I don't think this will speed up the rendering code a lot, but I guess I can draw two less tiles per line now. :) Old News (03/26) After tracing through disassemblies for a few hours, I finally got Quiz Ghost Hunter graphics fixed in my Sega System 24 emulator. Here are some screenshots (with incorrect colors) taken from the diagnostics mode: What's weird about this game is that the graphics data is taken from the expansion ROM board, which is accessed in banks. So I had to figure out how the bankswitching and ROM board work all in one go. The master CPU ROM is almost entirely empty, which makes me wonder why they couldn't just store the graphics there. The other good thing is that I figured out exactly how SMS cartridges are mapped to the Super Magic Drive, which solved the missing data problem. I have been able to dump every game I own, except for those that use paging chips which only support frame 3. (Writing to the paging chip does nothing, oddly enough) I'll be sure to explain all of this in my SMD hardware notes in due time. Old News (03/24) After a lot of testing, I finally figured out how to make my Super Magic Drive dump SMS games. The on-cart paging chip can be accessed by the SMD after all, and I successfully dumped one cartridge game as well as the battery backed RAM from another. The bad part is that every other 8K page is missing - I think this is a limitation of the hardware. Considering that the SMD was never intended to dump SMS games, it's great that I've been able to get this extra functionality out of it, but sadly the SMS dumping possibilities seem quite limited. At least I can try experimenting with the various paging chips in the cartridges I own. (need to open them and see which types are available :) Now I wish I owned more games that use non-standard or slightly different mapper chips, like the Codemasters or Taito ones. This also means that Phantasy Star MD could be dumped, though not completely. And most people are saying the game is no different from the SMS version, so it's probably not important. At any rate, I will update smdutil with a SMS dumping option, and maybe a SRAM load/save feature for SMS cartridges. It's nice that I finally hit 100,000 visitors. According to my counter stats, the number of visitors per day are quite high (several hundred) but they always spike when I update the news. :) Old News (03/10) It's about time - I've finally rewritten the Sega System 24 page with all new technical information, including data sheets for the various hardware components, and even some thoughts on encryption used in Sega games. You can check it out here, or use the links at the bottom of the page. Old News (03/07) I completely forgot that I updated my Super Magic Drive Hardware Notes, with much more information on the Z80 memory mapping in the BIOS and SMS compatability modes. I also uploaded a data sheet for the Xicor X24C01 EEPROM chip, which is mentioned my Sega Genesis Hardware Notes, too. Old News (03/06) I've created a program that reads certain addresses from the Genesis 68000 address space, and displays the results. This was needed for my own emulator work, but I think other developers may find it useful in debugging or correcting the memory emulation. The test program displays the emulator values next to the real values taken from a Genesis console.
I've also finally gotten around to writing an up-to-date description of the Genesis VDP's shadow / hilight mode. You can get it here Old News (03/02) Caz has ported SMS Plus to BeOS! You can get it here I've updated my Sega Genesis Hardware Notes with information on EEPROM storage and the SVP chip. Old News (02/27) Pascal Bosquet, author of Past-O-Rama and the c2emu for Windows has ported tgemu to Windows! For now, you can get the binary here. Old News (02/23) Caz has ported tgemu to BeOS! You can get it here Work on tgemu continues. I've added a really cool full-screen tweaked display mode to the DOS version, as well as fixing a timer bug that prevented sound from playing in many games, and optimized memory access based on a clever idea from a contributor. It looks like I may have found a good way to handle the missing inter-sprite and sprite to background priorities, without too much of a loss in performance. If I can work out the bugs, that should be in the next version as well. I added a sound logging feature to tgemu, and even better, made a utility to play back the logs through the OPL-2 soundchip! This works out nicely because the CPU overhead is quite low, at a loss of quality to the sound emulation. I tried logging sound from a bunch of different games, and they all sound surprisingly good, given the differences between the PCE's PSG and the OPL-2's FM sound. Chances are I may keep these features for the next release. (Though the sound logging is technically inaccurate in terms of timing, but then again nobody is ripping more HES-format music from games) I've also been putting a lot of work into the next draft of my Sega Genesis VDP documentation as well as some hardware notes on the Sega System 24 board. No estimated release date for either, but then again I'm running out of topics to cover, so they are well on their way to completion. Also, I changed the banner ad code which has seemed to fix the problems Netscape users were having. Old News (02/17) I've released tgemu, a portable, open-source NEC PC-Engine / TurboGrafx-16 emulator.
If you are a Macintosh user, you can grab the MacOS port done by Richard Bannister at his website: http://www.bannister.org/software/ (TGemu/MacOS) The DOS port has a lot of extras: - Audio logging to WAVE files - Speed throttling - VSync polling - FPS meter - PCX snapshot saving - Automatic resolution switching (for hi-res games) - Configuration file support - Display blurring - Screen scaling You can also find the files in the Emulation section, as always. Old News (02/13) I've updated my Sega Genesis Hardware Notes again, with the following changes: - Added more information about access to the Z80 bus. (section 2.2) - Updated the VDP register information, and removed some things that were specific to VDP programming. (section 1.1) - Added some background about the PSG. (section 4) Old News (02/04) I've updated my Sega Genesis Hardware Notes, with the following changes: - Rewrote the 68000 memory map description. (section 1) - Rewrote the Z80 memory map description. (section 2.1) - Added memory access section. (section 1.2) - Added a few miscellaneous topics. (section 4) I also split up the old news section by year, so it should load faster. Old News (01/31) I've gotten back to working on my Genesis VDP documentation, chances are I'll try to finish up something by the end of next month. One important topic I've finally got covered is how sprite positioning and patterns are modified in interlace mode 2. The program I developed to test this sets up a 320x448 display (the highest you can go on a NTSC Genesis) and shows a 256x448 image in the middle of the screen, composed entirely of sprite patterns. I wanted to get a screen capture, but my capture card only does 30 FPS, so you lose the benefits of the interlaced display. Oh well. If this page doesn't load for you correctly, please let me know. I'm using some new banner ad code, which does not work in Netscape 3.04. I'd like to know if this is a problem for visitors. Old News (01/26) I've updated my Sega Genesis Hardware Notes, with the following changes: - Added more Z80 banking information. - Added unused VDP address return values from the Z80 side. - Added example of how to start up Z80 on power-up. - Added information on Phantasy Star 4 from Jeff Quinn. - Added list of consoles that support Mark-III compatibility mode. - Fixed a few typos. I've made a lot of progress with my unnamed NEC PC-Engine emulator. A huge speed-up to the memory access and rendering code has gotten many games running at around 50 to 120 FPS on my PMMX-266, so they are quite playable. And this is all in "C", I haven't even started writing some optimized asembly rendering code. I've also uploaded my Persona 2: Eternal Punishment FAQ to the Video Game FAQs section. Remember to download the file in binary format if you want to see the cool maps. :) Old News (01/12) I've been working on a Persona 2: Eternal Punishment FAQ, and have released the first version at GameFAQs. Prior to starting that project up, I've also been putting effort into my PC-Engine emulator. I fixed one annoying bug that caused graphics to be improperly placed in many games, and have added the usual load of features (wave logging, screenshots, 16-bit color) to the DOS driver. No plans for a release yet, but it is certainly making progress. Old News (01/02) My Super Magic Drive transfer utility had a fairly major bug that is now fixed; when 2MB games were loaded, a SMD+ feature was enabled which turned off DRAM refresh on normal SMD copiers. This would cause the loaded game data to deteriorate over time, leading to crashes and other weird behavior. So, here is the new version:
| |
| Return | |