dext3r / NBA-JAM-Player-Editor

NBA JAM Player Editor
12 stars 0 forks source link

Getting up and running #1

Open jakemauer opened 10 years ago

jakemauer commented 10 years ago

Hey dext3r,

I'm trying to fire up your code to toy around with adding some friends to a copy of the game. I cloned the repo and was able to build the project in VS2013 Express (Not that I needed to, the binaries were already built, duh.) However when I launch the remixer app it gives me an unhandled exception when I do anything.

I'm assuming I need to have the right ROM, named correctly, or loaded correctly somehow, with the right incantations, if you remember all the details you're a champ because you last touched this a year ago and I can't remember how code I wrote yesterday works.

However! If you can give me a basic "Put this here, pull that lever, pray." series of steps I would be grateful.

jakemauer commented 10 years ago

Okay so I'm a dumbass and just tried "Open File" to get the rom loaded in. Success!

I still would love your help figuring out the methods to get images in correctly.

dext3r commented 10 years ago

Hi Jake,

Haha, wow I just tried to read through my code...luckily I don't do this for my day job, because this stuff is REALLY bad! ;)

I don't even have Visual Studio installed anymore though.... And of course, there isn't really any documentation...so um.....the images need to be 48x56 (I think...pretty sure) and the program should auto-convert to a 32 color palette. (I think?)

I believe any pixel with a magenta value should become transparent, but I'm not really seeing that in the code right now....it may be that I never committed the code that does that? :(

On Mon, Mar 3, 2014 at 1:16 AM, Jake Mauer notifications@github.com wrote:

Okay so I'm a dumbass and just tried "Open File" to get the rom loaded in. Success!

I still would love your help figuring out the methods to get images in correctly.

Reply to this email directly or view it on GitHubhttps://github.com/dext3r/NBA-JAM-Player-Editor/issues/1#issuecomment-36486325 .

jakemauer commented 10 years ago

Hey there, thanks for replying!

So I've taken a PNG portrait, sized it to the right dimensions, and the application is able to import it as the avatar. There are two random chunks of the image that show up as magenta, though the image doesn't have any alpha layers. I can also change the player tag, and save it all out as an .smc file. However when I load it up into zsnes I get a "Bad Rom" error and it never loads.

My first guess was maybe because the image isn't the right format? I toyed around with the image quantitizer application in there but wasn't sure if that was meant just to preview stuff or if it's meant as a part of the process.

I'll try again by adding an alpha layer with some alpha pixels and exporting it as an 8bit PNG.

dext3r commented 10 years ago

I was digging thru my Dropbox and found some I was messing with. Do these work?

[image: Inline image 1] [image: Inline image 2]

On Mon, Mar 3, 2014 at 12:42 PM, Jake Mauer notifications@github.comwrote:

Hey there, thanks for replying!

So I've taken a PNG portrait, sized it to the right dimensions, and the application is able to import it as the avatar. There are two random chunks of the image that show up as magenta, though the image doesn't have any alpha layers. I can also change the player tag, and save it all out as an .smc file. However when I load it up into zsnes I get a "Bad Rom" error and it never loads.

My first guess was maybe because the image isn't the right format? I toyed around with the image quantitizer application in there but wasn't sure if that was meant just to preview stuff or if it's meant as a part of the process.

I'll try again by adding an alpha layer with some alpha pixels and exporting it as an 8bit PNG.

Reply to this email directly or view it on GitHubhttps://github.com/dext3r/NBA-JAM-Player-Editor/issues/1#issuecomment-36543547 .

jakemauer commented 10 years ago

I think Github ate the images.

dext3r commented 10 years ago

Doh, right, I'm responding from email.

How about here: https://www.dropbox.com/sh/5d0dbcwip39r7bh/8aDRRLXT0B

On Mon, Mar 3, 2014 at 1:17 PM, Jake Mauer notifications@github.com wrote:

I think Github ate the images.

Reply to this email directly or view it on GitHubhttps://github.com/dext3r/NBA-JAM-Player-Editor/issues/1#issuecomment-36547492 .

jakemauer commented 10 years ago

Okay, progress.

I would say about half of the portraits load up corrupted as just color gaussian noise. I was loading my portait into one of those guys. If I load and image into a character with a portrait that actually renders, the rom file loads up and plays.

Do you know why the data would be corrupted like that? I'm using NBA Jam TE [U] !.smc from Romnation, though I suppose I can try different copies from my GoodMerged set. Do you have the exact rom you used?

Also as far as transparency and magenta, should I open your demo images and just use that exact shade of magenta to paint in the areas of transparency I want?

dext3r commented 10 years ago

Cool. Yeah, I would stick with the same color as the demo images.

Not sure why the images are loading corrupted, don't think that ever happen to me. I was using the [U] ! version as well. ACTUUUUUUUUALLY, I just remembered. It's not corruption. There are a bunch of portraits that are compressed in some way, they will load all goofy. I never got around to examining the compression algorithm.

Had to dig this out of my Google Drive trash: (haha whoops!) https://docs.google.com/spreadsheet/ccc?key=0AkO6o_BYZWI8dGFyV002aUJvMlc0Q3M0MXhtdkVxdXc&usp=sharing&authkey=CMe3_7AK

On the Player Portraits tab, the ones marked grey (all at 007Fxxxx in memory) are the compressed portraits.

On Mon, Mar 3, 2014 at 2:03 PM, Jake Mauer notifications@github.com wrote:

Okay, progress.

I would say about half of the portraits load up corrupted as just color gaussian noise. I was loading my portait into one of those guys. If I load and image into a character with a portrait that actually renders, the rom file loads up and plays.

Do you know why the data would be corrupted like that? I'm using NBA Jam TE [U] !.smc from Romnation, though I suppose I can try different copies from my GoodMerged set. Do you have the exact rom you used?

Also as far as transparency and magenta, should I open your demo images and just use that exact shade of magenta to paint in the areas of transparency I want?

Reply to this email directly or view it on GitHubhttps://github.com/dext3r/NBA-JAM-Player-Editor/issues/1#issuecomment-36552704 .

dext3r commented 10 years ago

On the "Player Portraits" tab, the ones marked grey (all at 007Fxxxx in memory) are the compressed portraits.

jakemauer commented 10 years ago

Looking better! As long as I stay away from players with compressed images I'm able to save with a new avatar and load up the rom. Do you know if anyone went further and did stuff to change team logos etc?

I was able to get jce3000gt's editor to fire up, so theoretically I can get everyone on the same team.

I'll keep you updated. Don't fall off the edge of your seat.

dext3r commented 10 years ago

Haha, good to hear! Sorry to say, I don't know of any other editors or hacks.

On Mon, Mar 3, 2014 at 4:25 PM, Jake Mauer notifications@github.com wrote:

Looking better! As long as I stay away from players with compressed images I'm able to save with a new avatar and load up the rom. Do you know if anyone went further and did stuff to change team logos etc?

I was able to get jce3000gt's editor to fire up, so theoretically I can get everyone on the same team.

I'll keep you updated. Don't fall off the edge of your seat.

Reply to this email directly or view it on GitHubhttps://github.com/dext3r/NBA-JAM-Player-Editor/issues/1#issuecomment-36568423 .

jakemauer commented 10 years ago

Hey so I got some more time to play around and I'm having trouble with the transparency color. I can't find a reliable way to get transparency. I've tried

In all cases it the image gets reformatted with a new palette order and whatever ends up in that first palette spot seems to be the color treated as transparent.

Whadya think?

jakemauer commented 10 years ago

This code is amazing.

location_of_trans_color = boobs;

jakemauer commented 10 years ago

Not sarcastic I'm loving it.

jakemauer commented 10 years ago

Well Christ maybe I didn't try hard enough. Making sure I had an ARGB color of 255,255,0,255 seems to have worked.

Enjoy these email notifications!

dext3r commented 10 years ago

lol

On Sun, Mar 16, 2014 at 1:49 AM, Jake Mauer notifications@github.comwrote:

Well Christ maybe I didn't try hard enough. Making sure I had an ARGB color of 255,255,0,255 seems to have worked.

Enjoy these email notifications!

Reply to this email directly or view it on GitHubhttps://github.com/dext3r/NBA-JAM-Player-Editor/issues/1#issuecomment-37750748 .

megaBreezy commented 9 years ago

Hi dext3r and jakemauer. I'm trying to accomplish a very similar thing for a nephew of mine. Inserting myself and he as players for the chicago bulls team. Could either of you provide any additional info about going about doing this? I have the player editor from jce3000gt and have been able to fix it up to get it running on a windows 7 machine, but I'm having trouble getting this remixer to open. Any ideas or assistance is greatly appreciated!

dext3r commented 9 years ago

Hello,

Error messages?

On Thu, Dec 4, 2014 at 4:38 PM, Brad Phillips notifications@github.com wrote:

Hi dext3r and jakemauer. I'm trying to accomplish a very similar thing for a nephew of mine. Inserting myself and he as players for the chicago bulls team. Could either of you provide any additional info about going about doing this? I have the player editor from jce3000gt and have been able to fix it up to get it running on a windows 7 machine, but I'm having trouble getting this remixer to open. Any ideas or assistance is greatly appreciated!

— Reply to this email directly or view it on GitHub https://github.com/dext3r/NBA-JAM-Player-Editor/issues/1#issuecomment-65716665 .

megaBreezy commented 9 years ago

Thanks for the quick reply, dext3r.

I'll first admit that I don't have much recent pc experience. I'm a developer, but on the mac side. So, the issues I'm experiencing could have more to do with me than the software.

Firstly, I don't have any Visual Studio software installed on my computer. Would that make a difference in being able to run this software? I've tried to do VS 2013 but apparently I need to regress to older 2010 versions, for compatibility reasons. If I need this, there are several components, C#, C++, etc - what would be the most basic install I could do to be able to build/run the software?

Currently, I've unpacked the repo archive to my desktop and am just clicking any files that appear to be application files from within that NBA JAM REMIXER directory. I see what appear to be application files in the bin and obj subdirectories. When clicking on them, I get the beginning "Are you sure you want to run this application" Windows pop-up, but after some wait time, I never see any application follow that prompt. No error messages or any visual feedback after the initial open, just an empty desktop.

Any ideas are greatly appreciated!

Cheers,

+Brad

dext3r commented 9 years ago

Hello Brad,

Give "\bin\Debug\NBA JAM REMIXER.exe". I just downloaded the Zip and ran it, the editor showed up. Running Win7 64 bit machine. Let me know.

On Fri, Dec 5, 2014 at 1:20 PM, Brad Phillips notifications@github.com wrote:

Thanks for the quick reply, dext3r.

I'll first admit that I don't have much recent pc experience. I'm a developer, but on the mac side. So, the issues I'm experiencing could have more to do with me than the software.

Firstly, I don't have any Visual Studio software installed on my computer. Would that make a difference in being able to run this software? I've tried to do VS 2013 but apparently I need to regress to older 2010 versions, for compatibility reasons. If I need this, there are several components, C#, C++, etc - what would be the most basic install I could do to be able to build/run the software?

Currently, I've unpacked the repo archive to my desktop and am just clicking any files that appear to be application files from within that NBA JAM REMIXER directory. I see what appear to be application files in the bin and obj subdirectories. When clicking on them, I get the beginning "Are you sure you want to run this application" Windows pop-up, but after some wait time, I never see any application follow that prompt. No error messages or any visual feedback after the initial open, just an empty desktop.

Any ideas are greatly appreciated!

Cheers,

+Brad

— Reply to this email directly or view it on GitHub https://github.com/dext3r/NBA-JAM-Player-Editor/issues/1#issuecomment-65840106 .

megaBreezy commented 9 years ago

dext3r, thanks, I had downloaded visual studio 2010 today and was able to build and run the project in debug mode. The file you pointed to is loading for me, however, so that makes things easier.

Changing names is working great. Do you have any information or experience on editing the player in-game heads used in the ROM? Is there an easy way to replace the head, say, Scottie Pippen uses with the head of someone else in the game? Or more ideally, I could perform some manual updates to Scottie Pippen's head sprite, edit a few pixels, add glasses, change hair, etc. I've had a look at a few nba jam rom files in tile editor programs, but the graphics look very distorted and the colors appear much different than they do in game.

Thanks again!

dext3r commented 9 years ago

Hi Brad,

Each player has a location in memory to hold a "head pointer" that tells the game what head sprite to use.

See this spreadsheet: https://docs.google.com/spreadsheets/d/1reGCHUx-KedQtcNwiMxtkAyh8yFOJO3jH4KduQBuatQ/edit?authkey=CMe3_7AK#gid=0

You can modify the head pointer to point to a different sprite. For example, Pippen's data is at location 2079265 in the ROM. I don't know about actually editing the head sprites though, never got that far.

On Fri, Dec 5, 2014 at 5:10 PM, Brad Phillips notifications@github.com wrote:

dext3r, thanks, I had downloaded visual studio 2010 today and was able to build and run the project in debug mode. The file you pointed to is loading for me, however, so that makes things easier.

Changing names is working great. Do you have any information or experience on editing the player in-game heads used in the ROM? Is there an easy way to replace the head, say, Scottie Pippen uses with the head of someone else in the game? Or more ideally, I could perform some manual updates to Scottie Pippen's head sprite, edit a few pixels, add glasses, change hair, etc. I've had a look at a few nba jam rom files in tile editor programs, but the graphics look very distorted and the colors appear much different than they do in game.

Thanks again!

— Reply to this email directly or view it on GitHub https://github.com/dext3r/NBA-JAM-Player-Editor/issues/1#issuecomment-65869496 .

megaBreezy commented 9 years ago

Thanks, dext3r. The program is working great. I've been able to get our portaits inserted, no problem.

Also thanks for the spreadsheet - what an invaluable resource that is!

I'm interested in digging into the room and trying to manually update the head sprites, now. Can you tell me a bit about how your code works in replacing the portrait graphics? Even a basic overview would be incredibly helpful. Did you utilize those pointers in the rom to find a specific portion of the rom file and paste in the supplied graphic? Is the pointer number (like the 2079265 you mentioned) translatable to a specific actual location inside of the rom that contains images?

Opening the rom file in a tile editor, the graphics are definitely all over the place, and I'm wondering if I can use that pointer in some way to make my search a bit easier.

Thanks again for the editor and for providing responses and information!

Cheers,

+Brad

dext3r commented 9 years ago

Brad,

The graphics are 5 bit per pixel (for the player portraits, at least. Not sure about the in-game head graphics) and the data is packed in a less-than-obvious way.

How it works: There is a color palette which contains 32 entries. (0-31) Note that this is 5 bits of data. So each pixel is some value between 0-31, and that maps to the color on the palette.

How the pixel data is formed though, is the confusing part. If you look at the "5BPP GFX" tab on the Google spreadsheet, it kinda shows how the data is packed.

5 bytes are used to draw 8 pixels. The first 2 bytes are next to each other, then the next 2 are offset from the first pair by 0x10 (or 16 in decimal), and the final 5th one is again offset by 0x10.

When you "stack" the data and look at the individual bits, you can see it forms the 5 bits needed for the pixel color, albeit in a less than obvious way - not horizontally like we are used to reading, but vertically. (See LSB->MSB legend)

The pointer locations are indeed the actual locations in the ROM of the data.

Hope that helps!

On Wed, Dec 10, 2014 at 3:22 AM, Brad Phillips notifications@github.com wrote:

Thanks, dext3r. The program is working great. I've been able to get our portaits inserted, no problem.

Also thanks for the spreadsheet - what an invaluable resource that is!

I'm interested in digging into the room and trying to manually update the head sprites, now. Can you tell me a bit about how your code works in replacing the portrait graphics? Even a basic overview would be incredibly helpful. Did you utilize those pointers in the rom to find a specific portion of the rom file and paste in the supplied graphic? Is the pointer number (like the 2079265 you mentioned) translatable to a specific actual location inside of the rom that contains images?

Opening the rom file in a tile editor, the graphics are definitely all over the place, and I'm wondering if I can use that pointer in some way to make my search a bit easier.

Thanks again for the editor and for providing responses and information!

Cheers,

+Brad

— Reply to this email directly or view it on GitHub https://github.com/dext3r/NBA-JAM-Player-Editor/issues/1#issuecomment-66424010 .

megaBreezy commented 9 years ago

Thanks so much for the rundown, dext3r. It's much appreciated!

sbryfcz commented 1 year ago

I was able to follow this thread and use this tool. Needed to look at source code a bit (when I tried using an image that already had a pallete of less than 32 colors). But wow, this is a HUGE jumpstart that accomplishes most of what I was hoping for. Thank you!