don't click here

Trying to find a bit more info about converting GG->SMS

Discussion in 'General Sega Discussion' started by Skaarg, Feb 22, 2010.

  1. Skaarg


    Well recently I've been bored and looking for a new project to take on. Well something that's interested me is that I've seen it's possible to convert GG games to be played on a SMS. Well unfortunately I've only been able to come across one large section of information and that being the following site:

    On here he has many of the things that need to be changed, and well I got to thinking about a GG game that would be better on the big screen. First thing that came to my mind was Mega Man. One of the major complaints people have about Mega Man on the GG is the tiny screen not allowing you to see as much. Well if this game were on the SMS wouldn't it be able to have a larger view? Looking at the images on the site mentioned above it certainly seems that way. As for another problem is the fact that the SMS does not have a start button on the controller. The simplest thing I could think of would to be remap anything that uses the start button. The title screen and stage select could easily be changed to the 1 or 2 button and for the start menu I figured something like up+1 would be best since it would have the least interference. The only time you would have a problem is when shooting on ladders, but I figured down+1 would be a more problem because of holding your charged shot and then sliding.

    Basically what I'm wondering is are there any other limitations that I am not thinking of that will prevent this from working, besides the things I mentioned and the things on the site such has changing the palettes from 64 bytes to 32. Another item is has anyone here dabbled in this before that would maybe have some helpful hints to starting a project like this. From reading the tech diary on the site it seems the hard work is the finding where things are and just changing them for SMS compatibility.
  2. Polygon Jim

    Polygon Jim

    Eternal Tech Member
    across town from Hinchy
    All the bitches.
    I'm actually working on this.

    I started working on this a few months back, labeling things in a dissasembly slowly. I'm quite lazy so I haven't got much done, and I need to learn z80 better so I know what is going on some things I label.

    I need to find the pallete fading routine, figure out how the screen scrolling works, move the HUD, and change with the start button(Along with various other small things). For testing I've just been making the start button, button 1, which obviously doesn't work, because then you can't control.

    Here's the bit of the I/O ports I labeled(And probably got some parts wrong).

    Code (Text):
    1. IO_Port_Read:; Z80 I/O ports
    3.     in   a, ($00)
    4.     cpl
    5.     and  $80
    6.     ld   c, a
    7.     in   a, ($DC)    ;Joypad port 1 (read only)
    8.     cpl
    9.     and  $3F               ;I/O port control
    10.     or   c
    11.     ld   hl, $C14C
    12.     ld   (hl), a
    13.     inc  l
    14.     and  (hl)
    15.     inc  l
    16.     ld   c, a
    17.     and  $0F               ;not pressed
    18.     ld   b, a
    19.     ld   a, (hl)
    20.     inc  l
    21.     and  $F0               ;pressed
    22.     or   b
    23.     ld   b, a
    24.     ld   a, (hl)
    26. ButtonStart:                   ;Start button: part 1
    27.     bit  7, c
    28.     jp   nz, ButtonStart_2
    29.     and  $7F
    30.     res  7, b
    31.     jp   Button1
    33. ButtonStart_2:                 ;Start button: part 2
    34.     bit  7, a
    35.     jp   nz, Button1
    36.     or   $80
    37.     set  7, b
    38. Button1:                       ;Button 1: part 1
    39.     bit  4, c
    40.     jp   nz, Button1_2
    41.     and  $EF
    42.     res  4, b
    43.     jp   Button2
    45. Button1_2:                     ;Button 1: part 2
    46.     bit  7, a
    47.     jp   nz, Button2
    48.     or   $80
    49.     set  7, b
    50. Button2:                       ;Button 2: part 1
    51.     bit  5, c
    52.     jp   nz, Button2_2
    53.     and  $DF
    54.     res  5, b
    55.     jp   _LABEL_36D2_32
    57. Button2_2:                     ;Button 2: part 2
    58.     bit  5, a
    59.     jp   nz, _LABEL_36D2_32
    60.     or   $20
    61.     set  5, b