======================================= NBA Jam TE - Double Z Mod v1.35 [U] [h] by Double Z (aka eskayelle) ======================================= This patch is a proof in concept to learn and provide written instructions with respect to certain elements of PSX hacking, the game in question being NBA Jam - Tournament Edition. This patch should be applied to the US version of the game. Note that various assets used in this patch were obtained via porlork's NBA Jam 21 hack. Please be sure to support that hack; download it and enjoy all the new players and features! (https://www.romhacking.net/hacks/5700/) Please also note that most of the utilities mentioned in this document may be found on www.romhacking.net. This hack was tested and confirmed as working in the Windows version (v2.0.2) of ePSXe as well as pSX v1.13. It is also known to work in RetroArch (v1.9.1) for Android. (It's also confirmed as working on hardware via PSIO!) ------------------- Secret Player Codes ------------------- Scorpion | SCO | 7/6 Chris Kirby | CHR | 12/18 Dominique Wilkins | DOM | 4/16 Alonzo Mourning | ZO_ | 2/8 Sub-Zero | SUB | 12/5 Bill Laimbeer | BIL | 5/19 Patrick Ewing | PAT | 8/5 David Robinson | ROB | 8/6 Kobe Bryant | KOB | 8/23 Bart Simpson | EAT | 2/23 Charles Barkley | SIR | 2/20 Shawn Kemp | KMP | 11/26 LeBron James | KNG | 12/30 Karl Malone | KRL | 7/24 Mike Iuzzolino | WHY | 1/22 Michael Jordan | AIR | 2/17 Dennis Rodman | ROD | 5/13 Hakeem Olajuwon | HAK | 1/21 Scottie Pippen | PIP | 9/25 Moses Malone | MOS | 3/23 Magic Johnson | ERV | 8/24 Noob Saibot | SAI | 6/6 Reptile | RPT | 11/11 Shaquille O'Neal | SHQ | 3/6 James Worthy | WOR | 2/27 Air Morris | AIR | 1/1 Stephen Curry | CUR | 3/14 Smoke | SMK | 7/4 Chris Webber | WEB | 3/1 Isaiah Thomas | ZEK | 4/30 Kevin Durant | KEV | 9/29 Mark Turmell | TUR | 1/31 Prince Charles | CHA | 5/4 Frank Thomas | FNK | 1/8 Fresh Prince | FRS | 2/2 Heavy D | HEA | 1/9 Hillary Clinton | HIL | 11/6 Jazzy Jeff | JAZ | 10/9 Benny the Bull | BEN | 9/20 Carol Blazejowski | BLZ | 1/14 Hugo | HOR | 6/12 Larry Bird | LAR | 1/15 Suns Gorilla | APE | 4/2 Crunch | WOL | 3/7 Bill Clinton | BIL | 6/3 Jean-Claude Van Damme | DAM | 10/18 (v1.31) Giannis Antetokounmpo | FRK | 12/6 (v1.31) Kim Gordon | GOR | 7/3 Jimmy Butler | BKT | 9/14 (v1.31) Lee Renaldo | REN | 2/4 Steve Shelley | SHY | 6/8 Thurston Moore | MOE | 6/8 --------------- Version History --------------- v0.1 (3-11-2021): Replaced all three in-game tracks with 80s/90s jams. Also replaced title screen music with "Roundball Rock" / "NBA on NBC" theme. How??? Check out the tutorial "How to Replace Music in NBA Jam T.E. for PSX" on romhacking.net! (http://www.romhacking.net/documents/840/) Minor opening screen text edit to establish version control. Oh NBA Jam, I'll never give you up! Files affected: NEW1.RAW; NEW5.RAW; NEW6.RAW; NEW7.RAW; OVERLAY.BIN (only version #) v0.2 (4-11-2021): Using TileMolester and ProPackEDv1.8, replaced Acclaim screen with Double Z logo. Files affected: HICOL.GFX v0.3 (4-19-2021): Using xvi32, replaced RON HARPER string with MICHAEL JORDAN. Replaced Harper's skills attributes with Jordan's from the SNES Double Z Mod. Using Paint Shop Pro, Photoshop, and RNC ProPackED, inserted Jordan's portrait as per arcade source (reducing the image to 64x56 and 165 colors to fit the compressed space). Edited roster via xvi32 to replace Longley with Rodman. Longley's space is now available to use. Using HxD, swapped out Harper's head sprites in favor of ponlork's NBA Jam 21 v1.0 Jordan head sprites. Using HxD, in OVERLAY.BIN, swapped out skin color code to match to ponlork's NBA Jam 21 v1.0 bytes. Using HxD, in PLAYER.NAM, swapped out ADPCM sound code at A000 in favor of ponlork's NBA Jam 21 Jordan sound clip. Edited OVERLAY.BIN to point to the revised sound code address. At this point, we have Jordan in the game! Files affected: OVERLAY.BIN; PRESQUAT.GFX; PIN.BIN; PLAYER.NAM v0.4 (4-19-2021): Using xvi32, replaced BRUTAH string with JORDAN. Replaced Brutah's skills attributes with Jordan's from the SNES Double Z Mod. Replaced remainder of attributes with those from v0.3 regular player Jordan. At 2F4A4, changed secret table attributes to read as AIR, 02/17. The portrait appears to not show when pointing to Jordan's one from v0.3, so needed to replace the portrait at 22000 in HIDDEN.BIN. Files affected: OVERLAY.BIN; HIDDEN.BIN v0.5 (4-22-2021): Using HxD, and at the suggestion of lupus, decompressed the HICOL.GFX title screen logo file and padded the file with FFs. This allowed a solution for the bug in TileMolester whereby the last rows can't be seen in 2-dimension mode. Replaced the title screen with that from the SNES Double Z Mod. Files affected: HICOL.GFX v0.6 (4-23-2021): Using xvi32, replaced BRUTAH string with JORDAN. Replaced remainder of attributes with those from SNES NBA Jam 2K22 TE. At 2F45C, changed secret table attributes to read as KNG, 12/30. Replaced portrait in HIDDEN.BIN, offset 1C000. Replaced head sprites at 234000 in PIN.BIN with ponlork's NBA Jam 21 v1.0 James head sprites. Using HxD, in OVERLAY.BIN, swapped out skin color code to match to ponlork's NBA Jam 21 v1.0 bytes. Using HxD, in PLAYER.NAM, swapped out ADPCM sound code at 258000 in favor of ponlork's NBA Jam 21 James sound clip. We now have LeBron James in the game! Files affected: OVERLAY.BIN; HIDDEN.BIN; PIN.BIN; PLAYER.NAM v0.7 (4-24-2021): Using HxD, edited the Bulls through Nets rosters to move them down 64 bytes, add a 5th Bull (Longley), and remove Edwards from the Nets, since Blue Edwards was in the game instead of Kevin. Updated the pointers at 2F2B0 to repoint the 64-byte address changes so the players can be properly selected. Files affected: OVERLAY.BIN v0.8 (4-24-2021): Replaced portrait in HIDDEN.BIN, offset 14000. Replaced head sprites at 22C000 in PIN.BIN with ponlork's NBA Jam 21 v1.0 Bryant head sprites. Using xvi32, replaced MCHUGH string with BRYANT. Replaced remainder of attributes with those from ponlork's NBA Jam 21 v1.0. Swapped out skin color code to match to ponlork's NBA Jam 21 v1.0 bytes. At 2F3FC, changed secret table attributes to read as KOB, 8/23. Using HxD, in PLAYER.NAM, swapped out ADPCM sound code at 33E000 in favor of ponlork's NBA Jam 21 Bryant sound clip. Kobe has entered the game! Files affected: OVERLAY.BIN; HIDDEN.BIN; PIN.BIN; PLAYER.NAM v0.9 (4-26-2021): Using xvi32, at 2F324, changed secret table attributes to read as BRI, 4/1. Replaced CATLING string and remainder of attributes. Replaced head sprites at 204000 in PIN.BIN with custom sprites. Replaced portrait in HIDDEN.BIN, offset 00000. Using HxD, in PLAYER.NAM, copied ADPCM sound code at 33E000 to 262000. Cut the file with a sequence of 77s to remove the end part of the sound clip. We have our Double Z! (v0.9.1 & .2 - 4-27-2021: Heads clean-up.) Files affected: OVERLAY.BIN; PIN.BIN; HIDDEN.BIN; PLAYER.NAM v0.10 (4-28-2021): In OVERLAY.BIN, color palettes for the player attributes appear to be at 30F58, 30F98, and 30FD8 (two bytes each, i.e., 15bpp BGR). Changed 30F58 from #$7FFF (white) to #$18DF (red). Changed 30F98 from #$2BAA (green) to #$7FFF (white). Changed 30FD8 from #$18DF (red) to #$2BAA (green). Note the reverse Endian format. v0.11 (4-29-2021): Using xvi32, replaced HIGGINS string with BARKLEY and remainder of attributes with the equivalent for Barkley from the SNES Double Z Mod. Changed name sound pointer to point to Prince Charles sound. Using HxD, replaced head sprites at 238000 in PIN.BIN with a combination of Barkley's arcade sprites and Xavier McDaniel's PSX sprites. Replaced portrait in HIDDEN.BIN, offset 18000. At 2F42C, changed secret table attributes to read as SIR, 2/20. Sir Charles is back in NBA Jam! Files affected: OVERLAY.BIN; HIDDEN.BIN; PIN.BIN v0.12 (4-30-2021): Using xvi32, at 2C1AC in OVERLAY.BIN, changed all of WEASEL's info (except head portrait pointer and AI level) to reflect Dennis Rodman. At 2F4BC in OVERLAY.BIN, changed WEASEL's secret player data to read as ROD, 5/13. Using HxD, inserted Rodman portrait into HIDDEN.BIN at 24000. The Worm is now a secret player! Files affected: OVERLAY.BIN; HIDDEN.BIN v0.13 (5-1-2021): Using xvi32, at 2F1F8, changed bytes D0 BA to 40 CA. This puts Brooks Thompson back in team #19 for the Rookies. Next, at 2F1F4, changed bytes 3C BC to A4 C9. This puts Edwards into team #18, which we'll use for Monty Williams. Then, at 2D9A4, swapped out Edwards' stats for Williams', using the SNES game as a guide. Repointed to in-game assets for portrait (165D4), head (10C000), and name sound (3C0000). (Note: For the W in WILLIAMS to display, I had to go one byte past the # when typing the name and then put the # back at the end.) Using xvi32, at 2BFA4 in OVERLAY.BIN, changed all of JAX's info (except head portrait pointer and AI level) to reflect Patrick Ewing. At 2F3CC in OVERLAY.BIN, changed JAX's secret player data to read as PAT, 8/5. Using HxD, inserted Ewing portrait into HIDDEN.BIN at 10000. Using xvi32, at 2C0DC in OVERLAY.BIN, changed all of HILL's info (except head portrait pointer and AI level) to reflect Shawn Kemp. At 2F444 in OVERLAY.BIN, changed HILL's secret player data to read as KMP, 11/26. Using HxD, inserted Kemp portrait into HIDDEN.BIN at 1A000. Using xvi32, at 2C110 in OVERLAY.BIN, changed all of J MOON's info (except head portrait pointer and AI level) to reflect Karl Malone. At 2F474 in OVERLAY.BIN, changed J MOON's secret player data to read as KRL, 7/24. Using HxD, inserted Malone portrait into HIDDEN.BIN at 1E000. Using xvi32, at 2BF3C in OVERLAY.BIN, changed all of HODGESON's info (except head portrait pointer and AI level) to reflect Alonzo Mourning. At 2F384 in OVERLAY.BIN, changed HODGESON's secret player data to read as ZO_, 2/8. Using HxD, inserted Mourning portrait into HIDDEN.BIN at A000. Using xvi32, at 2C1E0 in OVERLAY.BIN, changed all of FUMUNGUS' info (except head portrait pointer and AI level) to reflect Hakeem Olajuwon. At 2F4D4 in OVERLAY.BIN, changed FUMUNGUS' secret player data to read as HAK, 1/21. Using HxD, inserted Olajuwon portrait into HIDDEN.BIN at 28000. Using xvi32, at 2C214 in OVERLAY.BIN, changed all of KABUKI's info (except head portrait pointer and AI level) to reflect Scottie Pippen. At 2F4EC in OVERLAY.BIN, changed KABUKI's secret player data to read as PIP, 9/25. Using HxD, inserted Pippen portrait into HIDDEN.BIN at 2A000. Using xvi32, at 2BFD8 in OVERLAY.BIN, changed all of MAD MIKE's info (except head portrait pointer and AI level) to reflect David Robinson. At 2F3E4 in OVERLAY.BIN, changed MAD MIKE's secret player data to read as ROB, 8/6. Using HxD, inserted Robinson portrait into HIDDEN.BIN at 12000. Using xvi32, at 2BF08 in OVERLAY.BIN, changed all of D FALCUS' info (except head portrait pointer and AI level) to reflect Dominique Wilkins. At 2F36C in OVERLAY.BIN, changed D FALCUS' secret player data to read as DOM, 4/16. Using HxD, inserted Wilkins portrait into HIDDEN.BIN at 8000. We now have 8 original arcade secret players back as secrets in PSX NBA Jam! (Others in the arcade would be Dee Brown (DEE 11/29); Derrick Coleman (DC_ 6/21); Scott Skiles (JMS 7/29); and Chris Webber (WEB 3/1), plus Isaiah Thomas (ZEK 4/30). v0.14 (5-2-2021): Using xvi32, replaced PISTOL string with ONEAL and remainder of attributes with the equivalent for Shaq from the SNES Double Z Mod. (No ' was available in game, so I also had to move the # up one and put a 00 after it.) At 2F564, changed secret table attributes to read as SHQ, 3/6. Replaced portrait in HIDDEN.BIN, offset 38000. Using HxD, replaced head sprites at 288000 in PIN.BIN with Shaq's arcade sprites. Replaced the sound at 361000 in PLAYER.NAM with a custom Shaq sound clip from resurrecta. Shaq is back! Files affected: OVERLAY.BIN; HIDDEN.BIN; PIN.BIN Using xvi32, replaced J FALCUS string with LAIMBEER and remainder of attributes with the equivalent for Shaq from the SNES Double Z Mod. At 2F3B4, changed secret table attributes to read as BILL, 5/19. Replaced portrait in HIDDEN.BIN, offset E000. Using HxD, replaced head sprites at 220000 in PIN.BIN with Laimbeer's arcade sprites. Replaced the sound at 2A8000 in PLAYER.NAM with a custom Laimbeer sound clip from resurrecta. Time for Combat Basketball! Files affected: OVERLAY.BIN; HIDDEN.BIN; PIN.BIN v0.15 (5-3-2021): Using pSX v1.13, set a breakpoint on RAM value 80084308 to locate code for the flags tripped in the various Tonight's Matchup cheats. At 1D698, changed value 02 00 to F7 01 to change the MAX POWER cheat to give all abilities except fire. In the consolidated bin, at F09216 (1A2E in SLUS_000.02), fixed the MAW POWER typo to just read POWER. Right, Right, Left, Right, X, X, Right now gives a super cheat! Files affected: OVERLAY.BIN; SLUS_000.02 v0.16 (5-4-2021): Using xvi32, at 2C484 in OVERLAY.BIN, changed all of GOSKIE'S info (except head portrait pointer and AI level) to reflect Chris Webber. At 2F5DC in OVERLAY.BIN, changed GOSKIE'S secret player data to read as WEB, 3/1. Using HxD, inserted Webber portrait into HIDDEN.BIN at 40000. Inserted the MKII "Toasty!" sound clip into 12E50 of 4/6 NBA[x].VB files. This should allow alternation between "He's heating up!" and "Toasty!", depending on which sound packet is randomly selected by the game for that quarter. Edited head sprites at 204000 in PIN.BIN. Files affected: NBA1.VB; NBA3.VB; NBA5.VB; NBA6.VB; OVERLAY.BIN; HIDDEN.BIN; PIN.BIN v0.17 (5-5-2021): Using xvi32, at 2C3B4 in OVERLAY.BIN, changed all of FACIME'S info to reflect James Worthy. Used attributes from Mattrizzle's SNES NBA Jam Old School Edition. Repointed heads to 12C000 in PIN.BIN. At 2F57C in OVERLAY.BIN, changed FACIME'S secret player data to read as WOR, 2/21. Using HxD, and via 461CC in PRESQUAT.GFX, inserted Worthy portrait into HIDDEN.BIN at 26000. Replaced name sound at 2A3000 in PLAYER.NAM with Saturn clip provided by resurrecta. James Worthy present. Replaced HIGGINS sound clip with custom Barkley clip provided by resurrecta. Replaced assets in PLAYER.NAM, PIN.BIN, and HIDDEN.BIN such that IUZZOLINO takes CHOW-CHOW's spot. This includes attributes and secret player data in OVERLAY.BIN (use WHY, 1/22). Files affected: OVERLAY.BIN; HIDDEN.BIN; PLAYER.NAM; PIN.BIN v0.18 (5-6-2021): Edited and reinserted Rodman's portrait to correct for three pixels in his uniform that were originally transparent. Replaced Kevin Johnson's head sprites at 1CC000 in PIN.BIN with arcade sprites provided by resurrecta. Did the same with Horace Grant to give him back his goggles (sprites provided by resurrecta). Files affected: OVERLAY.BIN; HIDDEN.BIN; PLAYER.NAM v0.19 (5-7-2021): Using xvi32, at 2C450 in OVERLAY.BIN, changed DIVITA's info to reflect Smoke. At 2F5C4 in OVERLAY.BIN, changed DIVITA's secret player data to read as SMK, 7/4. Using HxD, inserted UMK3 Smoke portrait into HIDDEN.BIN at 3E000. Inserted custom MKII Smoke name sound by resurrecta into PLAYER.NAM at 299000. Inserted scaled arcade Smoke head sprites from resurrecta into PIN.BIN at 248000. Using xvi32, at 2BEA0 in OVERLAY.BIN, changed HUTCHINSON's info to reflect Scorpion. At 2F33C in OVERLAY.BIN, changed HUTCHINSON's secret player data to read as SCO, 7/6. Using HxD, inserted arcade Scorpion portrait into HIDDEN.BIN at 4000. Inserted custom MK Scorpion name sound into PLAYER.NAM at 2F8000. Inserted scaled arcade Scorpion head sprites from resurrecta into PIN.BIN at 20C000. Using xvi32, at 2C34C in OVERLAY.BIN, changed BOO-BOO's info to reflect Reptile. At 2F54C in OVERLAY.BIN, changed BOO-BOO's secret player data to read as RPT, 11/11. Using HxD, inserted arcade Scorpion portrait into HIDDEN.BIN at 36000. Inserted custom MK Reptile name sound provided by resurrecta into PLAYER.NAM at 24E000. Inserted scaled arcade Reptile head sprites from resurrecta into PIN.BIN at 284000. Using xvi32, at 2BF70 in OVERLAY.BIN, changed TUNNICLIFF's info to reflect Sub-Zero. At 2F39C in OVERLAY.BIN, changed TUNNICLIFF's secret player data to read as SUB, 12/5. Using HxD, inserted arcade Sub-Zero portrait into HIDDEN.BIN at C000. Inserted scaled arcade Sub-Zero head sprites from resurrecta into PIN.BIN at 21C000. Inserted MK Sub-Zero sound at 39D000 in PLAYER.NAM. Files affected: OVERLAY.BIN; HIDDEN.BIN; PLAYER.NAM; PIN.BIN v0.20 (5-7-21): Edited custom Thompson sound and reinserted into PLAYER.NAM. Inserted SNES NBA Jam / Jam TE tunes over tracks at NEW2, NEW3, and NEW4. Files affected: OVERLAY.BIN; PLAYER.NAM; NEW2.RAW; NEW3.RAW; NEW4.RAW v0.21 (5-10-2021): Updated end credits in OVERLAY.BIN. Updated features and some attract mode text in OVERLAY.BIN. Resorted the "Most popular teams" order in OVERLAY.BIN (2AD10 - 2AD7B). Via SLUS_000.02, and with help from Mattrizzle, resorted the campaign ladder at 5E95C - 5E9C7 to mimic the SNES Double Z Mod. Removed the Iguana screen in favor of Double Z Mod credits. Files affected: OVERLAY.BIN; SLUS_000.02; HICOL.GFX v0.22 (5-11-2021): Using xvi32, at 2C3E8 in OVERLAY.BIN, changed AIR-DOG's info to reflect Willie "Air" Morris. At 2F594 in OVERLAY.BIN, changed AIR-DOG's secret player data to read as AIR, 1/1. Using HxD, inserted arcade Air Morris portrait into HIDDEN.BIN at 3A000. Inserted NBA Hangtime Morris head sprites into PIN.BIN at 290000. Inserted arcade Morris sound from resurrecta at 235000 in PLAYER.NAM. Files affected: OVERLAY.BIN; HIDDEN.BIN; PLAYER.NAM; PIN.BIN v0.23 (5-14-2021): Using xvi32, at 2C2B0 in OVERLAY.BIN, changed MAGIC HAIR's info to reflect Magic Johnson. At 2F51C in OVERLAY.BIN, changed MAGIC HAIR's secret player data to read as ERV, 8/24. Using HxD, inserted arcade Magic Johnson portrait into HIDDEN.BIN at 30000. Inserted custom head sprites (some from the mobile game via resurrecta, some from photos) into PIN.BIN at 270000 (replacing Kita's, as Magic Hair's conflicted with the palette). Inserted team name "Magic" sound at 32A000 in PLAYER.NAM. Note: When attempting to change the Superstars roster, after entering the FIN 1/1 initials code to jump directly to expanded roster, the portraits will not display correctly. This is because the portraits for secret players come from HIDDEN.BIN, and the game is looking for portraits in PRESQUAT.GFX for any players on a team. So... to create a Dream Team, Magic would need to be assigned to the Lakers and Bird to the Celtics, with portraits in PRESQUAT.GFX. Barkley would need to be assigned to the Suns as well. Using xvi32, at 2C41C in OVERLAY.BIN, changed CARLTON's info to reflect Stephen Curry from ponlork's NBA Jam 21. At 2F5AC in OVERLAY.BIN, changed CARLTON's secret player data to read as CUR, 3/14. Using HxD, inserted custom Curry portrait into HIDDEN.BIN at 3C000. Inserted Curry head sprites from NBA Jam 21 into PIN.BIN at 244000. Repointed name sound to Dell Curry's clip. Using xvi32, at 2C4EC in OVERLAY.BIN, changed RIVETT's info to reflect Kevin Durant from ponlork's NBA Jam 21. At 2F60C in OVERLAY.BIN, changed RIVETT's secret player data to read as KEV, 9/29. Using HxD, inserted custom Durant portrait into HIDDEN.BIN at 44000. Inserted Durant head sprites from NBA Jam 21 into PIN.BIN at 254000. Inserted Durant sound clip at 339000 in PLAYER.NAM. Files affected: OVERLAY.BIN; HIDDEN.BIN; PLAYER.NAM; PIN.BIN Note: Within v0.17, I inserted Isaiah Thomas to replace GOKSIE (ZEK | 4/30). v0.24 (5-15-2021): Within GAMEINIT.RNC (B2E10), replaced the palette for SUPERSTARS to a white with blue stripes (i.e., from the Cavs). This mimics to some degree the 1992 Team USA uniforms. At GAMEINIT.RNC (9E9A0), edited the SUPERSTARS team name on the scoreboard to read as USA. Within PRESQUAT.GFX, replaced the logo at E77A with a Team USA Basketball logo. Also, via EE9B, altered the Team Select screen team name to read as DREAM TEAM. Logo palette placed at 2FE44 in OVERLAY.BIN. At 2F208 in OVERLAY.BIN, adjusted the roster to reflect Dream Team players. Note the issues above that need to be resolved. The game will also crash before the Final Stats screen if this isn't fixed. At 33EE4 in OVERLAY.BIN, changed JAM to USA. Resorted Superstars roster at 2F208 to reflect slots reserved for future Dream Team players. At 2CAD0, 2D79C, and 2DFBC in OVERLAY.BIN, adjusted player names and attributes for Bird, Magic and Barkley. PRESQUAT replacements: 1) Montross/Bird 2) Peeler/Magic 3) Green/Barkley Files affected: OVERLAY.BIN; PRESQUAT.GFX; GAMEINIT.RNC v0.25 (5-16-2021): Using xvi32, conducted roster updates via OVERLAY.BIN for the following teams, given the Dream Team player swaps: 1) Lakers (2E3D8) 2) Suns (2E440) 3) Celtics (2ED48; would be 2ED08 if I hadn't expanded the Bulls roster previously) 4) Rookies (2F160) Features text edits. Files affected: OVERLAY.BIN v0.26 (5-17-2021): Within PRES.SND, replaced Rookies/Superstar team name sound clip with "Stars". Using xvi32, at 2C27C in OVERLAY.BIN, changed Max's info to reflect Moses Malone. At 2F504 in OVERLAY.BIN, changed MAX's secret player data to read as MOS, 3/23. Using HxD, inserted arcade Malone portrait into HIDDEN.BIN at 2E000. Inserted Malone head sprites from arcade into PIN.BIN at 274000. Revised bytes in OVERLAY.BIN to point to Malone name sound. Updated loading screen in HICOL.GFX. Files affected: PRES.SND; OVERLAY.BIN; HIDDEN.BIN; PLAYER.NAM; PIN.BIN; HICOL.GFX v0.27 (5-18-2021): At 347C0 in NBA3.VB, replaced the "Get that outta here!" sound clip. Added a custom "Get that sh-t outta here!" clip instead. Skin color palette pointer correction for Barkley. Files affected: NBA3.VB; OVERLAY.BIN v0.28 (5-19-2021): At 58730 in NBA3.VB, replaced the "Unconscious!" sound clip. At 43AA0 in NBA4.VB, replaced the "Unconscious!" sound clip. At 42BF0 in NBA5.VB, replaced the "Unconscious!" sound clip. Added a "You've got mail!" clip instead. Files affected: NBA3.VB; NBA4.VB; NBA5.VB v0.29 (5-20-2021): Changed "THE CHAMPS" to "OLYMPIANS" in SLUS_000.02. Added to 28B00 in PRESQUAT.GFX custom Kukoc portrait from resurrecta. Using xvi32, at 2C2E4 in OVERLAY.BIN, changed SEQUOIA's info to reflect Noob Saibot. At 2F534 in OVERLAY.BIN, changed SEQUOIA's secret player data to read as SAI, 6/6. Using HxD, inserted MK3 portrait into HIDDEN.BIN at 32000. Inserted custom Noob Saibot head sprites from resurrecta into PIN.BIN at 27C000. Inserted Noob Saibot MK3 sound clip at 370000 in PLAYER.NAM. Files affected: OVERLAY.BIN; SLUS_000.02; PRESQUAT.GFX; HIDDEN.BIN; PLAYER.NAM; PIN.BIN v1.30 (5-21-2021): Work plan for Simpson palette substitution in OVERLAY.BIN... 1) Started at 2BE30. 2) Jumped $34 bytes (F5 in xvi32). 3) Looked for skin color 01s: a) 2C20C (Olajuwon) b) 2CC00 (Mobley) c) 2DD78 (Olajuwon) 4) Changed 01 to 02 5) Used 01 for Bart. Via guidance from Mattrizzle, located unused arcade NBA Jam T.E. Simpsons palette. Converted it from 15bpp RGB (Midway) to 15bpp BGR, little endian (PSX) and inserted into OVERLAY.BIN at 32798. (Because the arcade palette is 0x6D bytes and the PSX palette 0x6C, I did not copy over the first converted index ($0000).) Using xvi32, at 2C040 in OVERLAY.BIN, changed GRAY's info to reflect Bart Simpson. Changed sound pointer from FF FF FF FF to 00 10 3B 00 (Whitaker / Unused). Kept portrait (16000) and head (230000) pointers. Changed skin color pointer to 01. Changed height to F4 (mimicking Bogues). At 2F414 in OVERLAY.BIN, changed GRAY's secret player data to read as EAT, 2/23 (birthday per "Simpsorama" episode). Using HxD, inserted Simpson portrait into HIDDEN.BIN at 16000. Inserted custom Bart Simpson head sprites from resurrecta into PIN.BIN at 230000. Inserted custom Simpson sound clip from resurrecta at 3B1000 in PLAYER.NAM. D'Oh! Files affected: OVERLAY.BIN; HIDDEN.BIN; PLAYER.NAM; PIN.BIN v1.31 (5-27-2021): Using xvi32, at 2C6C0 in OVERLAY.BIN, changed MIKE D's info to reflect Jean-Claude Van Damme. At 2F774 in OVERLAY.BIN, changed MIKE D's secret player data to read as DAM, 10/18. Using HxD, inserted custom Van Damme portrait (remastered from the SNES Double Z Mod) into HIDDEN.BIN at 5C000. Inserted custom Van Damme head sprites (from Bloodsport) into PIN.BIN at 2C8000. Inserted custom Van Damme sound clip at 37F000 in PLAYER.NAM (replaces Sprite Boy). Using xvi32, at 2C6F4 in OVERLAY.BIN, changed ADROCK's info to reflect Giannis Antetokounmpo, as per ponlork's NBA Jam 21. At 2F78C in OVERLAY.BIN, changed ADROCK's secret player data to read as FRK, 12/6. Using HxD, inserted Giannis portrait (from ponlork's NBA Jam 21) into HIDDEN.BIN at 48000. Inserted Giannis head sprites from NBA Jam 21 into PIN.BIN at 2CC000. Inserted custom Giannis sound clip at 230000 in PLAYER.NAM. Using xvi32, at 2C75C in OVERLAY.BIN, changed MCA's info to reflect Jimmy Butler, as per ponlork's NBA Jam 21. At 2F7BC in OVERLAY.BIN, changed MCA's secret player data to read as BKT, 9/14. Using HxD, inserted Butler portrait (from ponlork's NBA Jam 21) into HIDDEN.BIN at 5A000. Inserted Butler head sprites from NBA Jam 21 into PIN.BIN at 2D4000. Inserted Butler sound clip from NBA Jam 21 at 334000 in PLAYER.NAM. At 2C310 in OVERLAY.BIN, made an edit to Noob's skin tone to match to byte 0C (changed from 00). Also reduced his height via 2C30F. Files affected: OVERLAY.BIN; HIDDEN.BIN; PLAYER.NAM; PIN.BIN v1.32 (6-5-2021): At 2D9A4 in OVERLAY.BIN, changed D4 65 01 00 to 0C CA 02 00. This fixes an error where G. Wilkins' portrait was displaying for Monty Williams. Files affected: OVERLAY.BIN v1.33 (6-6-2021): Cut time off the Laimbeer sound so that it doesn't cause the 2nd player's name to register during play as well. Pasted the revised clip into 2A8000 in PLAYER.NAM. Jimmy Butler's name clip sounded too low in pitch; increased pitch 10% and reinserted it into PLAYER.NAM at 334000. Files affected: PLAYER.NAM v1.34 (7-7-2021): Via reverse engineering and disassembly analysis (in pSX v1.13 and no$psx), based on ponlork's NBA Jam 21 v1.3 and using HxD, modified the following offsets in SLUS_000.02: 1) 31D10: Changed from 01 to 04 to speed up the inbound passing. 2) 368C0: Changed from 01 to 00 to unlock certain missing play-by-play sounds. Given the above, because we can now hear 3-point shot announcements, modified NBA2.VB at 2AE90. Likewise, modified NBA4.VB at 653B0. Here, inserted the "Hadoken!" clip from the SNES Double Z Mod. PROTIP: In the Japanese rom, address 2FF10 (F375F8 in full ROM) is the equivalent of US 31D10. The Japanese equivalent of US 368C0 is trickier... it's 3492C (F3CBF4)... Reminder that the original American and Japanese .VBs are the exact same. Files affected: SLUS_000.02; NBA2.VB; NBA4.VB; OVERLAY.BIN v1.35 (7-11-2021): At 2A46C in OVERLAY.BIN, changed "IDIOT" to "BOZO" to reflect Mark Turmell's discussion of Bozo Boxes at the GDC. This lines up with the Japanese version of the PSX Double Z Mod as well. Replaced G. Wilkins' portrait with Shaq's within PRESQUAT.GFX. Revised Dennis' Scott's attributes in OVERLAY.BIN to reflect Shaq instead... Portait pointer in OVERLAY.BIN is 165D4. Actual address in PRESQUAT is 2B6D9. Attributes thus changed to: D4 65 01 00 (portrait pointer) 00 80 28 00 (head pointer) 00 10 36 00 (name sound pointer) SHAQUILLE# 00 (5x) ONEAL# 00 (9x) 32 0A 02 00 05 29 29 59 (stats) At 2EFAB in OVERLAY.BIN, sorted the Magic Order to assign the following players: O'Neal (74 CA), Grant (A8 CA), Hardaway (DC CA), and Anderson (0C CA) Grabbed the Astroblast-style font from the Japanese Double Z Mod (courtesy of ponlork's NBA Jam 21), and inserted it into offset 0000 within PRESQUAT.GFX. Files affected: OVERLAY.BIN; PRESQUAT.GFX ----------------------------------------------------- Bugs and Minor Issues Not Found in the Original Game: ----------------------------------------------------- 1) Sometimes pixels will not display properly for custom heads in Big Head mode. Example: When the home team is inbounding, the visitor player at the top of the screen may have a more square-like head than the actual sprite should be displaying. 2) When resorting the campaign ladder, when it appears in attract mode, it will not stop at the last team. Rather, it will continue to roll, despite having run through all teams. Just press X to move to the next screen, or press Start to begin play. 3) The act of replacing sound clips in the game may cause it to randomly play a voice clip when selecting players on the substitution screen. (Actually, this may be a bug in the original game.) ===================================== How to Patch NBA Jam T.E. for PSX Step-by-Step instructions by Double Z ===================================== Step 1 (Using CDMage): Let's assume your ISO is a bin (or multiple bins) and a cue file. Open the .cue file using CDMage. (File > Open) If you want to combine a multiple bin game into one bin, in CDMage, select the .cue file at the top of the file structure in the left panel of the GUI. Go to File > Save As... > Save > OK. Remember where you saved your file! (This might be an optional step, in case you need a one-bin file such as to convert to .pbp and play on a Raspberry Pi.) (CDMage will merge the multiple bins into one, leaving you with a single bin and a cue file.) (Because I created this Double Z Mod using one bin, it may be best to perform this step.) Step 2 (Using PPF-O-Matic v3.0): In the ISO File field, open a copy of you original .bin file. In the Patch field, select your patch. Press Apply. WARNING: The file you select will be patched, so be sure to take a copy of the original file before patching. Step 3 (Using your favorite emulator): Play your patched game! ========================================= BONUS How to Create PSX Patches Another Step-By-Step Tutorial by Double Z ========================================= Step 1 (Using PPF - Studio v1.01b) Use the General tab for ease. In the PPF File (Output) field, select a folder and name a file in that folder with a .ppf extension. In the Original File field, select the original bin. In the Patched File field, select the bin that you have hacked. (This is part of the reason I originally used CDMage to make one bin.) Press Create PPF-Patch. Wait. Your patch will be the .ppf extension file in the folder you had selected for PPF File (Output). ========================================== BONUS How to Convert BINs to PBPs One More Step-By-Step Tutorial by Double Z ========================================== Step 1 (Using Google): Find and download PSX2PSP v1.4.2. Step 2 (Using PSX2PSP v1.4.2): Under ISO/PBP File:, find and select the .bin to be converted. Under Output PBP folder:, select a folder to output the PBP file. Note: You cannot have multiple bins, only one consolidated one. Press Convert. Wait. Try out your new PBP file in your favorite emulator.