walker7

Members
  • Content Count

    16
  • Joined

  • Last visited

Community Reputation

0 Neutral

About walker7

  • Rank
    Rookie

Previous Fields

  • Preferred System
    Genesis
  • Favorite Way To Score
    Blueline Slapshot
  1. Just in case you don't know, this is the game I am talking about: http://www.sega-16.com/review_page.php?id=570&title=MLBPA+Baseball Obviously, I will not provide a ROM here. The music pointer table can actually be found at offset $16EFF0 in ROM. Each entry has 4 bytes: Byte #1: Always $03 Byte #2: This byte starts at $00 for the first entry, $01 for the second, etc. up to $19, then skipping $1A-$1F and then going from $20-$35. This is the ID for each song/sound effect. ($00-$19 are organ ditties, $20-$32 and $35 are sound effects, $33 is the main theme, and $34 is the options theme.)
  2. Just to clarify, this is the game I am talking about: http://www.sega-16.com/review_page.php?id=570&title=MLBPA+Baseball The music pointer table can actually be found at offset $16EFF0 in ROM. Each entry has 4 bytes: Byte #1: Always $03 Byte #2: This byte starts at $00 for the first entry, $01 for the second, etc. up to $19, then skipping $1A-$1F and then going from $20-$35. This is the ID for each song/sound effect. ($00-$19 are organ ditties, $20-$32 and $35 are sound effects, $33 is the main theme, and $34 is the options theme.) Bytes #3-#4: A 16-byte value that tells the leng
  3. This type of interesting discovery can be used for any game, not just NHL '94. I said earlier that i found the addresses for the organ ditties in MLBPA Baseball for the Sega Genesis. There are 25 organ ditties, numbered from $00-$18. Any time someone from the home team comes up to bat, one of these is played. Each team can have up to 4 possible ditties, each taking one byte. $00 represents an unused slot, but there is an organ ditty in that slot, which is heard on the SNES version of the game. To hear it on a real Genesis console, use the Game Genie code ADAB-NAAG or use the patch code 1
  4. This is an interesting discovery! Thanks for all the info. Now, since the notes in NHL '94 appear to be 16 bytes, could anyone tell what the table for the note values is? Like, what byte value is Middle C and what is the range of possible notes that can be used, and what represents a quarter note, half note, whole note, triplet, etc., and what all 16 bytes represent?
  5. Here are the addresses of each organ ditty, according to their ID. The IDs are stored in $FFE842 in RAM, and the address is stored in $FFE802. Address $FFE824 is the offset that the song is currently at. In the game, in the place where the organ ditty list is stored, 00 means an unused slot, and anything from 01-18 is an organ ditty. To tell which organ ditty goes with which ID, you can use the patch code 16C006:00xx, where xx is the organ ditty ID, and listen when the game is turned on (or after a Reset). Using 00 plays an organ ditty that isn't used in the game--it is in fact heard on t
  6. At 01F436 is the code that detects the presence or absence of the 4-Way Play.
  7. The player stars are stored to VRAM by way of a DMA operation. Therefore, these graphics are uncompressed. Each star takes up 6 tiles in VRAM, and are stored in sprite tile order (top to bottom, then left to right). However, each star graphic is preceded by a $0006, which presumably represents the number of tiles to decompress. Each star has two possible states, the "highlight" state (this is when the person you are currently controlling is in possession of the ball; it looks akin to a dithered translucent shading inside the star), and the "outline" state (this is when the currently contro
  8. At $16C322 is a table, probably used to create the music pointers. It consists of 32-bit values (possibly pointers) increasing from $00000000-$00000014, then skips to $00000020 and continues through $00000032. These are then followed by an $FFFF, which should mean the end of the table. At $16C314 is the following code: lea ($16C322),a0 bsr $02B8 ; BSRs to $16C5D4 bra $0BB8 ; branches to $16D1F2 At $16EEFE is a table of 16-bit values. Maybe that is where the music pointers are created.
  9. The teams are formatted like such: There is a pointer table for the teams that starts at $1B5074. There are 28 pointers, one for each team, but seemingly in no particular order. For example, let's take the Chicago A team. It starts at $1B740C and appears to look like this: It has the text "Chicago A" in ASCII format, followed by a bunch of $00 bytes, then a set of bytes that reads 00 64 00 64, then a pointer that reads $001B73CC, then 00 00, "CH A" in ASCII format (this is the team abbreviation that appears on the scoreboard after a side is retired), then a pointer that reads $001B740C (t
  10. Another thing is that it seems that the subroutine at $16D118 is the one that calculates the pointer for the music. Here is the subroutine: $16D118: movem.l #$7860,-(a7) lea ($FFE93A),a1 move.w #3,d2 cmp.l #$FFFFFFFF,(a1) beq $0050 ; branches to $16D17E move.l (a1),a0 move.l a0,a2 clr.l d3 move.b (a0)+,d3 lsl.w #8,d3 move.b (a0)+,d3 move.l d3,d4 lsl.w #2,d4 add.l d4,a2 add.l #2,a2 $16D148: cmp.b (a0),d0 bne #$18 ; branches to $16D164 cmp.b 1(a0),d1 bne #$12 ; branches to $16D164 move.b 2(a0),d0 lsl.w #8,d0 move.b 3(a0),d0 move.l a2,a0 and.b #$FE,d1 ? ; comes out as A
  11. Another thing that I might want to add is the "Hello from (wherever). I'm John Shrader welcoming you to today's game..." text that appears right before the game starts. In ROM, the text starts at $16A374, and there is an instruction that points to it at $16A23A (a MOVE.L). But, it seems like, if you change the pointer, the game will crash at the time when the text would be loaded. It seems like that one of the RTS's will cause it to return back to address $000000, which is obviously not part of the game code. Can anyone find a way to relocate this text without any crashing? It would be ni
  12. Here is how the graphics are loaded: At $000724 in the ROM, you will find: jsr $000724 move.w $7414(a5),-(a7) move.w #$FFFF,$7414(a5) movem.l #$FFFE,-(a7) Then, it will convert the 16-bit address in a1 to a VDP command like this: move.w a1,d0 and.l #$FFFF,d0 asl.l #2,d0 lsr.w #2,d0 or.w #$4000,d0 swap d0 move.l d0,($C00004) lea ($C00000),a1 Then, it goes: lea ($FF6A9A),a4 move.w #0,d1 move.l (a3)+,d2 lea ($FF744E),a2 move.l a2,a0 Then, a loop, which sets $1000 bytes each to $20: move.l #$20202020,d3 move.w #$3FF,d0 move.l d3,(a0)+ dbra d0,#$FFFC And here's the main lo
  13. This is the thread where we can discuss hacking MLBPA Baseball for the Sega Genesis, in any kind of form. Anyone can post at anytime if they have remarks or findings, but just make sure everything listed is as clear as possible. First, it would be interesting to find out what the format is for the organ ditties. Organ ditties are played any time a player from the home team comes up to bat. An index is stored in RAM address $FFE842, from $01-$18, and the starting ROM address is put in RAM address $FFE802. Each organ ditty is terminated with an $FF, and they run from $1A8DD0 to $1B4C27 in RO
  14. I really like MLBPA Baseball for the Sega Genesis as well, and I recently made a post about modifying the organ ditties that are played whenever a player from the home team comes up to bat, as well as many other things. I like all the music in this game. Maybe we can find some other information about this game, so we can make some hacks. Maybe with more teams, more organ ditties, different theme music and/or options music, faster and/or more accurate gameplay, different graphics/colors, etc. And maybe, someone can come up with editors of all kinds (Windows, DOS, Linux, etc.) for this game.
  15. Does anyone here know or can figure out how the organ ditties in the Sega Genesis version of NHL '94 are formatted? If so, could you please note how the data is arranged and what each byte stands for (e.g. note, note length, etc)? It would be interesting as you can put in your own organ ditties in the game, and figure out how the pointers to them are calculated. For example, in the note values, which value stands for Middle C? What byte denotes a quarter note? A half note? A rest? You can also do this for any other game, be it NHL or anything else. This next part could go in an off-top