Register - Login
Views: 86639698
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
10-24-17 12:57:11 AM

Jul - Game Research/Hacking/Modding - N64 Graphics Tools New poll - New thread - New reply
Pages: 1 2 3 4Next newer thread | Next older thread
Joe
Common spammer
🗿
Level: 104


Posts: 2989/3287
EXP: 11518687
For next: 343439

Since: 08-02-07
From: Pororoca

Since last post: 20 days
Last activity: 12 hours

Posted on 11-05-13 01:07:14 AM Link | Quote
New code, new features.

It's not done yet, but you can use it to export graphics now.


Exports:
  • 16-bit RGBA
  • 32-bit RGBA
  • 16-bit IA
  • 4-bit I
  • 8-bit I


Imports:
  • Nothing.
  • I'm not done yet.
Joe
Common spammer
🗿
Level: 104


Posts: 2992/3287
EXP: 11518687
For next: 343439

Since: 08-02-07
From: Pororoca

Since last post: 20 days
Last activity: 12 hours

Posted on 11-05-13 09:43:04 PM Link | Quote
Double post because it's done now.

Imports:
  • Everything it exports.


Rus: I didn't understand all of your examples. Do you need my program to do anything else?
stag019

Red Koopa
Level: 24


Posts: 85/129
EXP: 69256
For next: 8869

Since: 09-11-11


Since last post: 1.0 years
Last activity: 46 days

Posted on 11-05-13 10:51:30 PM Link | Quote
I submitted a pull request. Just curious, how much do you care about making it cross-platforms and/or allowing it to be compiled with other compilers?
Joe
Common spammer
🗿
Level: 104


Posts: 2993/3287
EXP: 11518687
For next: 343439

Since: 08-02-07
From: Pororoca

Since last post: 20 days
Last activity: 12 hours

Posted on 11-06-13 12:17:43 AM Link | Quote
I'd like to fix it up to run on big-endian CPUs, but I can't use my Quadra 605 without a keyboard and I have no room to set up my eMac.

If you have any more fixes you'd like to contribute, please do.
Rus
Random nobody
Level: 5


Posts: 2/5
EXP: 426
For next: 103

Since: 10-30-13
From: Russia

Since last post: 3.0 years
Last activity: 71 days

Posted on 11-06-13 04:28:25 AM (last edited by Rus at 11-07-13 04:26:25 PM) Link | Quote
Joe: Thank you very much. It's great.

Still interested in working with puzzles. When I get to them, try to explain with an example of your program.

In my examples was a precursor analysis and show their pros and cons (as well as necessary to verify the software).
Some more questions about the Japanese language. )
And more examples reasons why CLI version needed. ))

Again, I apologize for the difficulties of translation. (
Joe
Common spammer
🗿
Level: 104


Posts: 2998/3287
EXP: 11518687
For next: 343439

Since: 08-02-07
From: Pororoca

Since last post: 20 days
Last activity: 12 hours

Posted on 11-10-13 09:44:15 PM Link | Quote
More new code. This version adds support for exporting CI. You'll have to specify the address of the palette for it to work.

Rus: Download it again and try this.

n64rawgfx -r 42C178.bin -m e -f ci -d 4 -a 0x190 -x 64 -y 64 --pd 16 --pa 0x170
Rus
Random nobody
Level: 5


Posts: 3/5
EXP: 426
For next: 103

Since: 10-30-13
From: Russia

Since last post: 3.0 years
Last activity: 71 days

Posted on 11-11-13 11:55:50 AM Link | Quote
It's great. But how to determine the address of the palette there is some sort of guide?

Yet found a tiny utility TGAtoN64 by Zoinkity. It may seem to convert tga to N64 IA 4b and IA 8b, as well as a source.
But I do not know how to distinguish between normal greyscale I and I with alpha in CristalTile2.
Joe
Common spammer
🗿
Level: 104


Posts: 2999/3287
EXP: 11518687
For next: 343439

Since: 08-02-07
From: Pororoca

Since last post: 20 days
Last activity: 12 hours

Posted on 11-12-13 02:11:06 AM Link | Quote
Originally posted by Rus
But how to determine the address of the palette there is some sort of guide?
Sometimes guessing works.

For 42C178.bin, the palette is before each graphic. Palettes are always 32 bytes for CI 4b or 512 bytes for CI 8b. If a CI 4b graphic is at 0x9b0, the palette is at 0x990.

For other games, the palette might be after each graphic. For those, add the size of the graphic to the address to get the palette address.

Sometimes the palette is elsewhere entirely. I don't have a guide for finding those.

Originally posted by Rus
But I do not know how to distinguish between normal greyscale I and I with alpha in CristalTile2.
IA will have vertical stripes if you view it as grayscale I.

I 8b:


IA 16b:
Rus
Random nobody
Level: 5


Posts: 4/5
EXP: 426
For next: 103

Since: 10-30-13
From: Russia

Since last post: 3.0 years
Last activity: 71 days

Posted on 11-12-13 04:07:00 AM (last edited by Rus at 11-12-13 05:29:16 AM) Link | Quote
Joe: This guide is a very good. Thanks! )
==============================================================
For 42C178.bin (Banjo-Kazooie(E)(M3)), the palette is before each graphic.
Palettes are always 32 bytes for CI 4b or 512 bytes for CI 8b.
For other games, the palette might be after each graphic.
For those, add the size of the graphic to the address to get the palette address.
Sometimes the palette is elsewhere entirely.
==============================================================

Only need to add about the depth: it is always 16 or only for CI 4b.
For CI 8b same depth or may be greater than?

When I see the vertical stripes I usually reduces the width of the image in half and change the bit depth. On your pictures see the same thing, but I still do not understand with alpha image or not.
In the first example file (GFX_complete.txt) where a lot of addresses for the files of the LOZ only I 4b and I 8b or still IA? After all, the black background around the inscriptions in the game does not appear, it is transparent, is not it?
In CrTl2 they are designated as 4bpp and 8bpp and everything, no information about that with an alpha or not.

Where can I take and what to look for YUV? I have no idea. (

Joe
Common spammer
🗿
Level: 104


Posts: 3000/3287
EXP: 11518687
For next: 343439

Since: 08-02-07
From: Pororoca

Since last post: 20 days
Last activity: 12 hours

Posted on 11-12-13 12:42:27 PM Link | Quote
Originally posted by Rus
Only need to add about the depth: it is always 16 or only for CI 4b.
For CI 8b same depth or may be greater than?
I think the depth is always 16, but I added 32 in case I'm wrong. If you're using depth 32, the palette is twice as many bytes: 64 bytes for CI 4b, and 1024 bytes for CI 8b.
Originally posted by Rus
When I see the vertical stripes I usually reduces the width of the image in half and change the bit depth. On your pictures see the same thing, but I still do not understand with alpha image or not.
In the first example file (GFX_complete.txt) where a lot of addresses for the files of the LOZ only I 4b and I 8b or still IA? After all, the black background around the inscriptions in the game does not appear, it is transparent, is not it?
In CrTl2 they are designated as 4bpp and 8bpp and everything, no information about that with an alpha or not.
The N64 has a mode that uses I 4b and I 8b as the alpha channel instead of color. In that case, white means visible and black means invisible. If you aren't sure if a graphic is I or IA, send me examples and I will check.
Originally posted by Rus
Where can I take and what to look for YUV? I have no idea.
I don't know what to look for either. I've never seen any games use it for anything other than JPEG.
gamax92
Member
Level: 13


Posts: 23/34
EXP: 9660
For next: 607

Since: 04-24-11
From: Inside my Wii

Since last post: 3.0 years
Last activity: 1.0 years

Posted on 11-26-13 12:20:22 AM (last edited by gamax92 at 03-29-14 10:21:57 AM) Link | Quote
Ooh nice, I'll get to updating my front end to support these new formats.
----------
Download N64Rip.zip
Alright, updated to use the new command line format of n64rawgfx.
Added in RGBA 16, RGBA 32, IA 4, IA 8, IA 16, I 4, I 8 to selectable options.

For now, disabling the check inside the actual program is going to require me modifying and compiling the code.
Minimal testing done as well, sorry.
Joe
Common spammer
🗿
Level: 104


Posts: 3017/3287
EXP: 11518687
For next: 343439

Since: 08-02-07
From: Pororoca

Since last post: 20 days
Last activity: 12 hours

Posted on 11-26-13 01:24:18 AM Link | Quote
Be careful about exporting CI. Support for it isn't finalized, and probably won't be until I figure out a good way to allow re-importing modified graphics (and determine what formats palettes can be).
zoinkity

Level: 12


Posts: 16/27
EXP: 6071
For next: 1850

Since: 09-06-12


Since last post: 48 days
Last activity: 9 days

Posted on 02-28-14 03:14:07 PM Link | Quote
Might as well chime in...
YUV was also used for the HVQ and HVQM formats, which are still image and video formats with encoders provided in the official library. For the most part they were only used in Japanese titles, but a notable exception would be Pokémon Puzzle League.

Trick is, you can't really decode a YUV image with just the image data. You're going to have to parse the display lists using that image in order to determine the conversion values. I happen to know HVQ differs from jpeg, despite being based on the encoding format. Actually, they're variable.

There's a similiar issue with CI. CI is a bit misleading actually, since it's really a generic "indexed" wrapper. In practical application you'll only ever see 16bit color palettes, but there's nothing preventing support for other palette modes such as 16bit IA and 32bit color. IAI is rather rare, but I've happened across it before. In order to be certain of the mode, again you'll have to parse the display list and read the format flags for where the palette is loaded.

The support you have is probably fine for 98% of all images you'll find in the wild. That said, there are exceptions. For instance, the Aki fighting games used a 1bit font and GE uses a series of 1bit images for the blood on-screen when you die. 4bit images in Eurocom titles may be nibble-swapped. You may find the occational ia4 that's encoded 2:2 instead of 3:1, or titles that encode 32bit c as ARGB.
Joe
Common spammer
🗿
Level: 104


Posts: 3099/3287
EXP: 11518687
For next: 343439

Since: 08-02-07
From: Pororoca

Since last post: 20 days
Last activity: 12 hours

Posted on 03-01-14 03:20:22 AM Link | Quote
I'm already aware that YUV requires the conversion constants, and it doesn't surprise me that different graphics use different conversion constants. However, I have yet to see any uncompressed YUV textures. If you come across any of those, I'll do my best to add support for them.

As for CI, I'll add support for any varieties the RDP natively supports. (Actually, I don't know if the RDP supports 32-bit palettes or not, but I added it anyways since the code is so simple.)

The rest of those formats sound like they aren't supported by the RDP at all, which puts them out of my program's scope. Before I go adding edge cases like those, I'd rather restructure my program around libpng, endian-independence, and supporting formats other than those used in N64 games.
Rus
Random nobody
Level: 5


Posts: 5/5
EXP: 426
For next: 103

Since: 10-30-13
From: Russia

Since last post: 3.0 years
Last activity: 71 days

Posted on 03-29-14 06:31:36 AM Link | Quote
Hi, Joe.
Tried to get the font from Banjo-Tooi, that's what happened.
http://www.sendspace.com/file/fdrubs
Apparently it's AI 8b or bug...
gamax92
Member
Level: 13


Posts: 24/34
EXP: 9660
For next: 607

Since: 04-24-11
From: Inside my Wii

Since last post: 3.0 years
Last activity: 1.0 years

Posted on 03-29-14 10:32:04 AM Link | Quote
The "bug" you're seeing is simply due to the lack of (proper) support for 32bit BMP images in Windows. You can use a utility that supports these 32bit BMP's like nconvert, and turn them all into png's where it will display properly.

After batch converting all the bmp's to png's, it appears IA 8 was the correct format.
hennahacker

Level: 25


Posts: 128/132
EXP: 80293
For next: 9327

Since: 02-19-10
From: The Endless Cabal

Since last post: 1.0 years
Last activity: 1.0 years

Posted on 07-28-15 10:07:30 AM Link | Quote
Any chance of seeing CI textures implemented in the frontend? It's much quicker to punch in addresses etc than using the CLI tool.
CruisnEma
Member
Level: 19


Posts: 38/79
EXP: 32110
For next: 3667

Since: 02-01-12


Since last post: 65 days
Last activity: 12 days

Posted on 10-17-16 07:03:54 PM (last edited by CruisnEma at 10-22-16 08:23:33 PM) Link | Quote
Joe please can you help me? I need of change a texture palette into Cruis'n World (Nintendo 64), the textures is this



I've found it, is in the 16DFC0.bin file extracted by EDL uncompressor, the palette is at the first byte of the uncompressed file, but can't be replaced currently, 'cause EDL compressor compress the file but is more larger by the original, also if I re-compress the untouched 16DFC0 original file. What I can do for compress correctly my custom file?

SOLVED, imported uncompressed file and repointed, works correctly!
Pages: 1 2 3 4Next newer thread | Next older thread
Jul - Game Research/Hacking/Modding - N64 Graphics Tools New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 2f1bc75 [2017-08-27]
©2000-2017 Acmlm, Xkeeper, Inuyasha, et al.

31 database queries, 11 query cache hits.
Query execution time: 0.145900 seconds
Script execution time: 0.014276 seconds
Total render time: 0.160176 seconds