You can also try searching for "DD FF", a common bytecode sequence in the music data which sets the pan to full volume on both sides. I usually search for strings of repeated "1F"s or "01"s - common sequences that occur in additional waveform data. ![]() You'll need to check this for each game.įinding all the music data can be a challenge in itself. However, depending on the game, it can be driven either by IRQ1 or TIQ. LDA songtable,X load song number specific to music data block insert data init routines #$05-#$09 - similar to that of #$04 JSR $E0D8 set clock frequency (w/ arg=#$05) LDA banktable,X load banks - set up music data in $8000-$BFFF ![]() #$05-#$09 are purely optional, for example, although the music will generally sound better if they are used.īelow is a typical init routine (assuming banking is handled outside as described above): Also, not all games will used all the above routines. You can take out routine #$03 if you NOP out the banking used in the driver and handle it from the outside (this is what I prefer). The song selection is handled the same way in every System Card driver game. So, they are very easy to find in a hex editor. The above init routines (other than the song select one) are called sequentially in a block of code in just about every game I've seen that uses the system card driver. #$08 $F8,$F9 - " " frequency modulation data #$04 $F8,$F9 - address (little endian) song data #$03 $F8,$F9 - stored into MPR4,MPR5 respectively banks for song data #$02 $F8=(0.5) sets clock rate, preps RAM These are:Ĭode: Select all $E0D8 init routines - parameter $FF selects the routine For HES rips, you only need to care about 9 or 10 of these routines. The initialization routines make take additional parameters (usually $F8 and $F9 depending on the routine). This parameter is located at $FF on the zero-page. $E0D8 takes at least one parameter which determines which one of the initialization routines is chosen. In summary, for an System Card driver rip, you will need to rip bank 2 from the system card, the interface routines in bank 0, and of course the music data itself. Song data is loaded into MPR4-MPR5 - one or the other or both. The initialization routines are called through $E0D8 and the play routine through $E0E1. These are called through a jump table at the top of bank 0 of the system card which is loaded into MPR7. The PSG driver has two interface routines, one for intialization and one for playback. The System Card PSG driver comprises bank 2 of the system card and is loaded into MPR6 when needed. If you get some matches, chances are the game uses the System Card driver. To determine if a game does, make a save state while PSG music is playing, and search for occurances of "20 D8 E0" in a hex editor. Most CD games use the System Card PSG driver (thankfully). ![]() I don't have an information page about CD rips, though I'll give a short description right here. I wouldn't know, given how the Japanese ripping scene consists of posting links to low-retention upload sites on 2ch (also low-retention). I wouldn't be surprised at all if some are duplicates of what has been done the Japanese ripping community, though. Yes, I ripped all the HES files on my page.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |