Autor
| Extract game data
|
Henk msx lover Mensajes: 99 | Publicado: Julio 08 2004, 16:22   |
Hi,
Does anyone how it is done to extract game data like sprites and maps from MSX games?
I was busy with a remake of the goonies but its a real pain in the ... to use screenshots to do that.
Anyone?
Greetz,
Henk
|
|
ro msx guru Mensajes: 2353 | Publicado: Julio 08 2004, 16:30   |
hmm, so you're bussy with a remake.. on PC?
Well, The Goonies is written in screen 1, with pattern data as screen tiles. The characters are indeed sprites. To rip these you'd be hackin' into Gonnies itself I'm afraid. (unlike msx2 screens)
I've dun a complete remap of the tiles 15 years ago, I was bussy converting the Goonies to a BASIC version (yeah, I was young and naive..) How? just look at the screen and redraw the whole shit.
|
|
[D-Tail]
 msx guru Mensajes: 3026 | Publicado: Julio 08 2004, 17:06   |
Yeah, it'd be somewhat easier if you'd pick a MSX2 game. However, I don't know in what way Goonies was programmed, but I assume it works on a MSX1 with 16kB VRAM. Then I think you don't stand a chance. Otherwise, you could do a lot with vdp regs 2 (Pattern name table address reg), 3 and eventually 10 (Color table address reg), 4 (Pattern generator table address reg), 5 and eventually 11 (Sprite attribute table address) and 6 (Sprite pattern generator table base address reg).
Well, you could give it a try anyway. I bet you can find the exact meaning of these registers somewhere either on FuNET or on the MSX Assembly Pages. Good luck! |
|
BiFi msx guru Mensajes: 3142 | Publicado: Julio 08 2004, 18:02   |
Hint: Konami Game Master...
|
|
Henk msx lover Mensajes: 99 | Publicado: Julio 08 2004, 18:14   |
People,
The goonies was just a project.
There a tons of great MSX games.
I mean, there isnt an easy way to read a MSX rom or disk into a HEX-editor or something? Or even tools that are already made for this purpose?
|
|
BiFi msx guru Mensajes: 3142 | Publicado: Julio 08 2004, 18:25   |
Konami uses RLE to compress most of the data. Goonies is an MSX1 game which doesn't use bitmap formatted graphical data like most MSX2 games do.
|
|
mth online msx freak Mensajes: 200 | Publicado: Julio 08 2004, 20:46   |
All Konami MSX1 games I've seen use SCREEN2, but with the pattern and colour table masks set to mirroring: the same 256 pattern and colour entries are used for the entire screen, instead of the top 64 lines.
Since the graphics of ROMs are usually compressed (and not in a standard format), there is no easy way to rip them from a ROM image. Some disk games store images uncompressed; try to load the image as 256x2880x8bpp raw image (SCREEN8) or 256x5760x4bpp raw image (SCREEN5) in an image editor (Paint Shop Pro and the GIMP both support raw image loading).
Probably the quickest way to rip graphics is to use an emulator with debug features (such as openMSX) or save state (such as blueMSX and NLMSX) to dump the entire VRAM to file and then extract the graphics from that. Advantage: graphics are usually stored uncompressed in VRAM. Disadvantage: you will have to make one dump for every stage (typically), but it should be quicker than screenshots because you'll get all patterns at once.
Tip: learn to use a simple scripting language (such as Python) in which you can easily write converters. A hex editor is useful for figuring out how a format works, but once you know that, automatic conversion using a script is much more efficient. To write image files, either look for a library that can write PNG, or write to a simple image format yourself (such as BMP or XPM).
|
|
Henk msx lover Mensajes: 99 | Publicado: Julio 09 2004, 10:27   |
The dump of the VRAM is a great idea.
Tnx for all the replies
|
|
[D-Tail]
 msx guru Mensajes: 3026 | Publicado: Julio 09 2004, 13:16   |
AFAIK NLMSX doesn't support save states, tho...  |
|
Henk msx lover Mensajes: 99 | Publicado: Julio 09 2004, 14:24   |
About time they implemented it  |
|
mth online msx freak Mensajes: 200 | Publicado: Julio 10 2004, 02:56   |
D-Tail: then probably I'm mistaken. I don't have Windows on my PC, so I never run NLMSX myself.
|
|
|
|
|