Extract game data

Door Henk

Expert (107)

afbeelding van Henk

08-07-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

Aangemeld of registreer om reacties te plaatsen

Van ro

Scribe (4698)

afbeelding van ro

08-07-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.

Van [D-Tail]

Ascended (8259)

afbeelding van [D-Tail]

08-07-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!

Van BiFi

Enlighted (4348)

afbeelding van BiFi

08-07-2004, 18:02

Hint: Konami Game Master...

Van Henk

Expert (107)

afbeelding van Henk

08-07-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?

Van BiFi

Enlighted (4348)

afbeelding van BiFi

08-07-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.

Van mth

Champion (506)

afbeelding van mth

08-07-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).

Van Henk

Expert (107)

afbeelding van Henk

09-07-2004, 10:27

The dump of the VRAM is a great idea.

Tnx for all the replies

Van [D-Tail]

Ascended (8259)

afbeelding van [D-Tail]

09-07-2004, 13:16

AFAIK NLMSX doesn't support save states, tho... Wink

Van Henk

Expert (107)

afbeelding van Henk

09-07-2004, 14:24

About time they implemented it Big smile

Van mth

Champion (506)

afbeelding van mth

10-07-2004, 02:56

D-Tail: then probably I'm mistaken. I don't have Windows on my PC, so I never run NLMSX myself.