Autor
| Editing graphics
|
JuliusCaius msx friend Mensajes: 4 | Publicado: Agosto 07 2007, 16:55   |
Greetings everyone,
I have a rather unorthodox problem... I whish to change a few graphic elements in MG2. Namely, the codec screens, as a little surprise for someone, and it would be rather important for me. Now, I'm not a complete noob to computer and game graphics, but I am to editing roms. I'd be glad if you guys gave me a few basic guidelines, as where to get started... I tried a hex editor with graphics view, but only got color noise everywhere.
Thanks in advance!
|
|
wolf_
 msx legend Mensajes: 4663 | Publicado: Agosto 07 2007, 17:00   |
I haven't checked those ROMs out in a hex editor, but if the gfx data is compressed in any way, then it's over and out. (I'd bet on it!)
|
|
JuliusCaius msx friend Mensajes: 4 | Publicado: Agosto 07 2007, 17:02   |
There must be some way...
I hope...
>.>
Peek into the file structure inside the rom and decompress it (if it works that way at all)?
Or maybe I just did something wrong in the hex editor?
|
|
wolf_
 msx legend Mensajes: 4663 | Publicado: Agosto 07 2007, 17:09   |
Even if you somehow can "decompress" it, there might be a chance that your new gfx are going to be bigger than the original ones, with which you might go beyond the size of the ROM. Additionally, you're at least stuck with the game's own palette at that spot. If you change it, you might ruin other things.
It takes a good ASM programmer to do something like what you want to do, and even then it's not easy.
|
|
JuliusCaius msx friend Mensajes: 4 | Publicado: Agosto 07 2007, 17:10   |
Oh well
Anyway, thanks very much for the quick reply! |
|
wolf_
 msx legend Mensajes: 4663 | Publicado: Agosto 07 2007, 17:16   |
btw, out of interest, are there any gfx from you to see somewhere? (MSX scene lacks active designers ._. )
|
|
JuliusCaius msx friend Mensajes: 4 | Publicado: Agosto 07 2007, 17:46   |
I've been doing sprites for a guy who's making a snes-style RPG for a while, but my hard drive died a few weeks ago... fortunately he has all the stuff, I just have to wait for him to bring them over to me. I promise I will post them ASAP  |
|
Edwin msx professional Mensajes: 596 | Publicado: Agosto 07 2007, 22:59   |
Over and out it rather harsh. It's difficult, but certainly not impossible. I don't think guidelines will help here. It basically a case of smart debugging to find what you need to change. And then somehow fit the actual changes. Not something you do in a spare hour, but possible if you're up for a challenge. Emulators will be convenient here because you will have a much easier time debugging everything. Or even set watchpoints on vram changes or something like that.
|
|
nikodr msx addict Mensajes: 453 | Publicado: Agosto 08 2007, 17:28   |
How are the data of graphics stored?I always wanted to change graphics of metal gear 1.
The only think i managed to do by editing the rom files is to change the graphics in a room with other objects.There were some hex data that i changed,so i managed to remove the fence or add binoculars in another room,i managed to put cameras or boxes.
What i did change probably was only the placement of the graphics,where are those graphics in the vram?What is the routine that designs them?
I found an rra instruction that if i remove then all sprites are removed except the main sprite.This has the consequence that if you go to the metal gear room then metal gear is destroyed instantly and the music remains the typical music that the game has.You can go to the next room,but there is no big boss,no count down,so you are stuck there.
i managed to turn the cameras off(actually with this rra removed the cameras explode!),or make the soldiers go in red alert each time i enter a room(after i enable the rra instruction again).I managed to make the sprite move anywhere on screen without having any obstacles but still i can't find the location
I would be interested on any article regarding this:Where did konami put the compressed data?What address?
|
|
norakomi msx professional Mensajes: 861 | Publicado: Agosto 08 2007, 21:40   |
interesting indeed.
a while ago i wanted to change grapx for runemaster 2.
basically what you need to find first is the decompressor.
whenever a picture is loaded, this will be decompressed to vram.
find this first, study it for a long time.
when you figure out how this works, then you can start looking for pictures.
lets say you are looking for a picture in which you see 6 red pixels, folowed by 10 blue pixels, folowed by 8 green pixels (or whatever).
then figure the palette out first. (look for the routine that out's the palette values, do you know how that works ?)
when you found the palette values, then you find that (example) red=2, blue=3 and green=7
next step:
without compression you know that the part of the picture (6 red, 10 blue, 8 green) can be found by looking with you hex editor for:
$22, $22, $22, $33 $33 $33 $33 $33, $77, $77, $77, $77
if you know how the compression works, you can now start looking for your picture:
(maybe $03, $22, $05, $33, $04, $77)
does this help ?
|
|
wolf_
 msx legend Mensajes: 4663 | Publicado: Agosto 08 2007, 21:53   |
I estimate JC is more a gfx artist than a coder.. .. so.. I doubt  but who knows..  |
|
nikodr msx addict Mensajes: 453 | Publicado: Agosto 08 2007, 23:22   |
Norakomi in specific area of the rom file there are certain hex numbers that are tiles.For example a 888888888 could be t fence of some rooms by changing the 88888888 with 8888338888 i could create a hole in the fence and i could go where the original designers did not want me (to go to the courtyard in metal gear 1 you need a parachute).
By altering specific rooms i noticed that pallete has to do with what you see.I could see some of the tiles or sprites of the game with wrong colors if used in room that have different pallete.
Does the HL have the address that points to vram area that shows where the new screen is?I think that when i removed the rra instruction i could go anywhere i wanted on the room.
Now if i went to an exit that the original game did not have then we have a crash.Take a look at this screenshot
if i keep going to the left then i have a reset ,msx logo appears (game have crashed).So i assume that in hl is stored the address that shows me where the next screen is in video ram? |
|
SLotman msx professional Mensajes: 531 | Publicado: Agosto 09 2007, 12:52   |
RRA = Rotate Right A
it's a bit shift to right on the A register, so it doesnt affect HL.
I dont think the "next screen" would be stored on HL, mostly because every screen has two or more exits (you can always come back from where you entered the room) - HL could be a pointer to reference all room exits, from N/S/E/W - it could be a direct pointer on RAM where the tiles info are, could be just an offset, or a room number... but I'm guessing, never disassembled a Konami game before  |
|
nikodr msx addict Mensajes: 453 | Publicado: Agosto 09 2007, 16:18   |
Address in metal gear that RRA instruction appears is $82c3.Nop this and there are no obstacles.So register A has to do with the collision between the main sprite and tiles and obstacles like walls etc.
However this does not affect the collision between main character and cameras for example.With the rra there being a nop instruction you can have collision with the cameras.Now this is instantly game over.
Now there is another address that controls wether the cameras see you or not,and another one that can be used to draw sprites on screen or not.However even with this instructions nopped i can't find where the sprite data are designed.
I can find and change the tiles of the game.And the fact that if you place a tile where you are not supposed to put it then you will see it has the wrong colors.Which makes me believe that tiles are the same all over the game and only the pallete data change.
How can i find the values of the existing pallete ?In bluemsx configuration the if i look at the registers of 9938 i can easily find them but they have a value of 4 digits which confuses me a lot.So how can i find the pallete data?
|
|
|
|
|