Editing graphics (Development Foros MSX)MSX Resource Center MSXdev 2008 - MSX1 development bonanza!           
                       
English Nederlands Español Português Russian                  
 Noticias
   Página principal
  Almacén de noticias
  Temas de noticias

 Recursos
   Foros MSX
  Artículos
  Analisis
  Informe de ferias/RUs
  Álbum de fotos
  Ferias y encuentros
  Encuestas
  Enlaces
  Buscar

 Software
   Descargas
  Tienda Online

 MRC
   Quiénes somos
  Únete a nuestro equipo
  Donar
  Políticas
  Contacta con nosotros
  Enlázanos
  Estadísticas

 Buscar
 
  

  

 Login
 

Login

Contraseña




¿Aún no tienes una cuenta? ¡Conviértete en miembro del MSX Resource Center! ¡Únete a nosotros!.


 Estadísticas
 

Hay 124 invitados y 3 miembros en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Development - Editing graphics

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?


 
 







(c) 1994 - 2008 Fundación MSX Resource Center. MSX es una marca registrada de MSX Licensing Corporation