- Group:
- Tech Member: Tech Members
- Active Posts:
- 129 (0.07 per day)
- Most Active In:
- Technical Discussion (29 posts)
- Joined:
- 02-November 10
- Profile Views:
- 1846
- Last Active:
Private- Currently:
- Offline
My Information
- Age:
- 32 years old
- Birthday:
- October 3, 1982
- Gender:
-
Male
- Location:
- USA
Contact Information
- E-mail:
- Private
- Website:
-
http://
Previous Fields
- Project:
- a disassembly, some small Sega CD projects
- National Flag:
- us
Topics I've Started
-
Flickie's Island Defense
25 August 2012 - 06:13 PM
Well Flickies' Island Defense was released to the Sonic Hacking Contest 2012. It was a slowly worked on project over a year and a half. My heart wasn't really in the project so I easily got distracted on other projects. It took me a while to realize that the tower defense genre is either quite boring or requires a lot of micro management (which I hate). So basically this project no longer has a developer. The source is on the ISO if anyone cares to resurrect the game.
SSRG Download Link For Flickies' Island Defense
Youtube of sample "gameplay":
-
SCDTools
10 April 2012 - 09:45 AM
I have hinted at my SCDTools before in previous posts and even released a few scripts individually. The SCDTools is a combination of PERL scripts along with some shell scripts. Some of the most useful are creating a Sega CD data track, converting images to Sega VDP formats, converting Sega VDP formats to images, converting wave to PCM, and decoding/encoding Sega CD Cinepak. All the scripts I have made for Sega CD development are located at:
http://sourceforge.net/p/scdtools/
If you run each script you will get a full description of the script, but here is a (very) quick description of each script:
scd68kdcleanup Kind of cleans up output from 68kd (68k disassembler) scdasm Wrapper for your favorite assembler and favorite options scdasmall Run asmx, asm68k, and SNASM68K and verify they have the same output scdchecksum A specific tool to make a 16 bit checksum for all but first two bytes and put the 16 bit checksum at the first two bytes of the file. Used for a specific homebrew game. scdcinepakencode Encode a cinepak file scdcinepakencodeframe Encode the image data for a cinepak frame scdget Retreive the iso for the Sega CD in your CD-ROM Uses dd program scdhex Does a search and replace using hex strings (I used for Sonic CD hacking) scdimg2tile Converts an image to Sega VDP data Uses Perl's Image::Magick library scdimgvdppalette TODO work in progress scdisofilefromoffset Determines the filename from which an ISO byte index corresponds to Uses isoinfo program scdlittle2bigword I used this to convert cram part of savestate file the more convient endian scdmake Used to make a Sega CD ISO scdmoviedecode Used to decode a Cinepak for Sega file scdtile2img Converts Sega VDP data to a PNG scdupdatebinfile Takes a binary file and replaces it at a specified byte index in a file. Useful for overwriting data in an ISO file. scdwav2pcm Converts a wav file to Sega CD PCM data scdwrite Writes Sega CD files out to a CD-R
-
Demystifying Cinepak For Sega
27 August 2011 - 12:37 PM
I have been researching heavily into the Cinepak For Sega (as used on the Sega CD).
First off, many places that talk about Cinepak for Sega and it seems like they make up things with little or no evidence. Cinepak uses 16276 Hz 8-bit PCM (this is fixed) but the code thinks it is 16000 Hz (so it plays faster than the code expects). It has a max of 61 unique colors in one frame since it only uses one plane with the possibility of 1 to 4 palettes. It is not 128 or 256 colors as many places suggest (including Sega Mega CD - Sega Retro). It is double buffered in both the Word RAM and the VDP RAM (so when seeing if a tile has changed, you need to check if was the same from two frames ago, and do not check it against the last frame). There is no necessity for ordered dithering to be used, but it is typically used since ordered dithering typically produces smaller frame data due to the way 4x2 or 2x2 pixel blocks are encoded and reused (and better compression means you can have a larger picture or faster frame rate). When two palettes are used, the palette map uses two bits to encode each palette for a tile. And many places claim a movie is or is not Cinepak For Sega and are wrong.
I have been working on disassemblies of both the MAIN and SUB CPU code, a detailed list of Cinepak games and notes about each one, a Cinepak encoder, and a Cinepak decoder. The MAIN code went through a couple of revisions but not much changed between revisions. The SUB code went through several revisions and had much larger changes (which makes sense since it was more complex than the MAIN code). I plan to release all of these as they get more refined and finalized.
For now, I am excited to provide my Nyan Cat Cinepak Demo (it uses unmodified Cinepak revision 1.2 with some small startup MAIN/SUB code to start the movie). I was real happy when this finally worked in Gens (and worked first try on hardware last night).
Collection of files released in this thread:
Nyan Cat Cinepak Demo ISO
Bad Apple Cinepak Demo ISO and source
Glenn Miller In The Mood Cinepak Demo ISO and source
Nyan Cat Cinepak Demo ISO and source
Star Wars Chess Reencoded Cinepak Demo ISO and source
Cinepak 68k Disassemblies
Cinepak Movie Reseach (ods)
Cinepak Movie Research (xls) -
SCDBook Volume 0
15 June 2011 - 01:24 AM
I have developed an eBook reader for the Sega CD called SCDBook Volume 0. I made this since I wanted to read the books from Project Gutenberg but did not like reading them on my computer. Currently, it has 43 books from Project Gutenberg site (mostly books I recognized from the top 100 and some others that I like). It works on both real hardware and emulators (tested Gens and Fusion). I read the entirety of Alice in Wonderland using the RF output on a CRT and the entirety of Pinocchio with my son with the composite output on a CRT and both work very well. It also reads well on an LCD in an emulator. However, trying to read these books on the projector was bad (the text was too big).
<img src="http://img688.imageshack.us/img688/9218/scdbookvolume0000.png" border="0" class="linked-image" />
I parse the gutenberg books that I add a markup to (that indicates chapter breaks, title, author, etc). This makes an information file and a 36 character wide text file. The 36 character wide text file can be read by a regular text editor (though some Windows text readers may not like the single linefeed character I use for the newline). It can read books that are up to ~22MB long (to put this in perspective, the full King James Bible is ~4MB long). It can handle ~400 books in its present form (could be more if I changed things around, but I think more than that would be difficult to navigate so many books anyways).
YouTube Video of SCDBook Volume 0
SourceForge page for ISO and source
If anyone else plans on using SCDBook and would like to see additional books on the CD, just send your book suggestions to me and I can include them in the next revision. -
Sega VDP Format And Image Converters
21 January 2011 - 12:38 AM
I have developed PERL scripts that allow converting from the Sega VDP format and image file format. My script scdtile2img will take a palette and a set of Sega VDP tiles and generate an 4 bit indexed transparent PNG file. Another script scdimg2tile will convert most image formats (since it uses the ImageMagick PERL API) to a labeled asm file (base on the input image file name). They have options for map/sprite ordering, magic pink support for image formats that do not support transparency, option to call pngcrush to generate an optimized png, and many more.
Using this, I made PNGs for all the Sonic 2 animals (from the disassembly) and many of the sprites from the Dr. Robotnik's Mean Bean Machine (from a save state). I also use these scripts for the development of my Riley's Letter Recycle game and the current project I am working on. A sample from the mean bean collection is:
All of my scd scripts and the two sprite collections mentioned can be be found at http://dhost.info/gekkinfo/scd.html


Find My Content
Private
Male