Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - Game Gear to Master System hacks

Reply to topic Goto page Previous  1, 2, 3 ... 5, 6, 7, 8, 9 ... 23, 24, 25  Next
Author Message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14744
  • Location: London
Reply with quote
Post Posted: Fri Jul 03, 2015 6:37 am
Not many TVs let you zoom arbitrarily or mask the image. Playing on a TV modded GG would be the best solution as that does the masking.
  View user's profile Send private message Visit poster's website
Revo
  • Guest
Reply with quote
Post Posted: Thu Sep 03, 2015 3:10 pm
Gunstar Heroes WIP v0.3

This version is working on real hardware but the color of the sky is wrong (purple instead of blue).

No success on the activation of the Left column blank :/

 
Revo
  • Guest
Reply with quote
Post Posted: Thu Sep 03, 2015 3:13 pm
Phantasy Star Adventure (EN) v1

-Start is down controller 2.
-Password system not working 'cause of the English patch.

 
  • Joined: 23 Apr 2014
  • Posts: 131
  • Location: NYC
Reply with quote
Post Posted: Thu Sep 03, 2015 4:47 pm
I couldn't get Gunstar Heroes working on real hardware. I tried both a Genesis and Japanese SMS
- The Genesis would freeze right after stage select and
- The SMS would start the stage for a second, then go back to the title screen...then freeze.
  View user's profile Send private message Visit poster's website
Revo
  • Guest
Reply with quote
Post Posted: Thu Sep 03, 2015 5:16 pm
Work fine on my french SMS1 with After Burner mapper.
 
  • Joined: 23 Apr 2014
  • Posts: 131
  • Location: NYC
Reply with quote
Post Posted: Thu Sep 03, 2015 5:39 pm
Phantasy Star Adventure seems to work fine on real hardware.
  View user's profile Send private message Visit poster's website
Revo
  • Guest
Reply with quote
Post Posted: Sat Sep 19, 2015 11:17 pm
Pinball Dreams v1

I couldn't adapt Vingazole conversion palette code on this game, but like I wanted a real pinball game for Master System so bad, I changed colors one by one. The result is that there is some wrong fading between 2 screens.

Start not needed.
Pinball Dreams v1.zip (78.29 KB)

 
  • Joined: 14 Jul 2008
  • Posts: 158
Reply with quote
Post Posted: Sun Sep 20, 2015 4:44 pm
I have also tested the new Gunstar Heroes WIP v0.3 version in both an European Mega Drive (with region/hz mods) and a Japanese Master System and have pretty much the same results as Revo. They are also the same problems that were already present in previous WIP versions. It seems this game is very difficult to convert due to how it was programmed by those genius at M2 who are still around doing their magic.

Phantasy Star Adventure works perfect in my Japanese Master System but doesn't boot at all in my Mega Drive. Strange.

Pinball Dreams works perfect in both systems.
  View user's profile Send private message
  • Joined: 21 Sep 2015
  • Posts: 10
Reply with quote
Post Posted: Mon Sep 21, 2015 2:46 am
Last edited by Linkuei on Mon Sep 21, 2015 3:49 pm; edited 1 time in total
Amazing job!!!

Someone could convert the STAR WARS since it's a good game and differs of SMS version with different levels that makes the game more linear than the NES/SMS. Some Stages of the game run in the same SMS resolution, which facilitates!
  View user's profile Send private message
Revo
  • Guest
Reply with quote
Post Posted: Mon Sep 21, 2015 12:13 pm
Star Wars WIP v0.1

Only the Lucasfilm Games logo screen have garbage screen.

The lightning of the intro before the game is wrong.

Down controller 2 is start.

Would be nice to move the life bar and to map start somewhere else.

 
  • Joined: 05 Sep 2013
  • Posts: 3827
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Mon Sep 21, 2015 1:05 pm
Revo wrote
Down controller 2 is start.


I tried moving that to 1/START button on controller 1... unfortunately it's used ingame to shoot and the START button is used to pause.
So, if you can live with no pause you can
- replace starting at $05d9 with $DB $DC $00 $17 $17 $17
- replace starting at $046b with $C9
  View user's profile Send private message Visit poster's website
Revo
  • Guest
Reply with quote
Post Posted: Mon Sep 21, 2015 3:06 pm
Thanks. The best solution for pause in-game is to map the start button on pause button and to keep 1 as start for the menu. Do you know how to do that?

It would be great if you could make a tutorial for that as is something I didn't learn yet.
 
  • Joined: 05 Sep 2013
  • Posts: 3827
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Mon Sep 21, 2015 3:38 pm
try with:
- replace starting at $05d9 with $DB $DC $00 $17 $17 $17
- replace starting at $046A with $17 $D0
- replace starting at $006A with $3E $80
the ROM already has an NMI handler in place, I changed it to set the byte msb (it's the third 'replace') and I'm checking that using a RLA, RET NC (the second 'replace')

As for how to do that... where it's reading the pad, I changed to four RLA so that the bit connected to 1/START will go into carry flag.
  View user's profile Send private message Visit poster's website
  • Joined: 21 Sep 2015
  • Posts: 10
Reply with quote
Post Posted: Mon Sep 21, 2015 3:47 pm
Revo wrote
Star Wars WIP v0.1

Only the Lucasfilm Games logo screen have garbage screen.

The lightning of the intro before the game is wrong.

Down controller 2 is start.

Would be nice to move the life bar and to map start somewhere else.


AWESOME!!!
Thanks!
  View user's profile Send private message
Revo
  • Guest
Reply with quote
Post Posted: Mon Sep 21, 2015 3:59 pm
Michael Scott mode: Can you explain it to me like I am 8? No wait, explain it to me like I am 5.

Star Wars WIP v0.2

Start is now configured on 1 for the menu and on Pause in-game. Credits to sverx.

For the conversion to be finish:

- move the life bar up corner left.
- fix the lightning problem on intro and maybe somewhere else.
- fix the garbage screen on Lucasfilm Games logo screen.

If Vingazole have time and like the game maybe he will do it^^

 
  • Joined: 23 Apr 2014
  • Posts: 131
  • Location: NYC
Reply with quote
Post Posted: Mon Sep 21, 2015 4:17 pm
Pinball Dreams and Star Wars (both versions) have been tested and working on real hardware - Patches added to the hacks pages.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14744
  • Location: London
Reply with quote
Post Posted: Mon Sep 21, 2015 6:06 pm
It would be good to get real screenshots so people know what garbage they will see...
  View user's profile Send private message Visit poster's website
  • Joined: 14 Jul 2008
  • Posts: 158
Reply with quote
Post Posted: Mon Sep 21, 2015 11:28 pm
I just took a screenshot showing the garbage in the LucasFilm Games logo screen.



There's also similar off screen garbage in cutscenes (the ones with portraits/pictures) and in the levels where you fly the space ships in first person view. I don't know if it would be possible to carry over code from the Master System version as a way to fix them with their full screen equivalents.

By the way, although the first level with princess Leia works fine, from the second level onwards with Luke you have both shooting and inventory/pause once again assigned to button 1...
  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14744
  • Location: London
Reply with quote
Post Posted: Tue Sep 22, 2015 7:37 am
It's fairly easy to fix this sort of thing (static screens), just add some code to blank it out. The garbage when scrolling is a whole lot harder.
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3827
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Tue Sep 22, 2015 8:16 am
Revo wrote
Michael Scott mode: Can you explain it to me like I am 8? No wait, explain it to me like I am 5.


The best I can do is to try to describe what I did.
First: I fired up an emulator and its debugger, and put a breakpoint on I/O operations on port $DC... as you of course already changed reading from port $00 to $DC when moving from GG to SMS.

So I found, at $05DD, a
IN A,($DC)
RLA
JR C,(some address)


this is testing the most significant bit, so it's our START button, which became 'down' on gamepad port B (controller 2). We should shift (rotate) 4 times instead of 1 to move into the carry flag the bit corresponding to the button 1 on port A (controller 1)... I hope it's clear enough until here.
So we need to put 4 'RLA' where there's only 1, and that's a real problem. :|
Fortunately just before the IN A,($DC) the program is doing something kind of useless, at $05D9:
LD A,$FF
OUT A,($3F)

(what this is for is explained here)
so, we can safely remove that and have 4 more bytes of space to put in the new code we need, from $05D9:
IN A,($DC)
NOP
RLA
RLA
RLA

and leave last part in place at $05DF
RLA
JR C,(some address)


doing this makes button 1 work as START. Unfortunately the game uses button 1 to shoot and START to pause.
If you find all that I wrote useful (and you understand what I'm doing), I can try explaining how to handle that problem too...
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14744
  • Location: London
Reply with quote
Post Posted: Tue Sep 22, 2015 8:51 am
Are you using instruction tables to determine the space and replacements, or are you patching using an assembler? I usually go for the latter because it makes it easier to make larger patches in unused space with jumps. You still need to find the space but it can be as simple as copying the replaced three bytes' opcodes to the destination.
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3827
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Tue Sep 22, 2015 9:02 am
I'm using the instruction table at this very site (and I'm in no way expert at this so it's the best I can do...)
  View user's profile Send private message Visit poster's website
Revo
  • Guest
Reply with quote
Post Posted: Tue Sep 22, 2015 9:36 am
Thanks sverx this is very clear ;) Please continue.

So it's 4 RLA for button 1 and 3 RLA for button 2.

The only problem I've it's that if I try to put the code somewhere else with a jump (C2 or C3 hexa value) this is not working. I will try with other game.
 
Revo
  • Guest
Reply with quote
Post Posted: Tue Sep 22, 2015 9:55 am
Slider v1.1

- Start is now configured on button 2.


So with this game I was able to jump to put the extra code of Start, but strangely I had to put 2 RLA for start on button 2 instead of 3 RLA in Star Wars (3 RLA put start on button 1).
Slider v1.1.sms.zip (52.65 KB)

 
Revo
  • Guest
Reply with quote
Post Posted: Tue Sep 22, 2015 10:16 am
Phantasy Star Adventure (EN) v1.1

- Start is now configured on button 1.

 
  • Joined: 05 Sep 2013
  • Posts: 3827
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Tue Sep 22, 2015 11:21 am
Revo wrote
Please continue.


OK. So, after that
RLA
JR C,(some address)

there's some code that sets three memory locations to $01 ($DE89, $DE8A, $D976). Instead, when carry flag is set, the code that gets executed sets the very same memory locations to $00.

Putting breaks on the emulators when these locations are read, we find that at $0467 there's this code:
LD A,($D976)
AND A
RET Z

so it's returning to caller when that byte in memory is 0 and doesn't return (the code goes on) when it's not 0, thus seems to be checking if it should pause or not. We replace RET Z with RET so that it returns even when not 0, replacing the byte at $046b with $C9 (RET instruction). Now the player shoots and the game doesn't pause anymore.

You then asked if it would be possible to use the Master System PAUSE for triggering the pause. It would be (easily) possible only if ROM at $0066 (NMI handler is here!) was empty. I set a breakpoint at $0066 and I press pause on the emulator. At $0066 I found this:
PUSH AF
LD A,($D976)
XOR $01
LD ($D976),A
POP AF
RETN

which means that a NMI handler is already in place! Weird, uh?
Anyway, we want to write a value in memory at $D976 which is not $01 (because it's written already when pressing button 1) and later check that. So I thought about replacing the XOR $01 with a LD A,$80, thus setting the msb... and go back where there was the check
LD A,($D976)
AND A
RET Z

changing it to check the msb using
LD A,($D976)
RLA
RET NC

(replace starting at $006A with $3E $80 - that's RLA and RET NC)

I'm sure there are better ways to do that, and I've been very very lucky. Also, Wesker noted that from the second level there's again some problem, so there's probably other code checking $D976 value later on... you could try fixing that as an exercise.

Let me know if something isn't clear enough. :)
  View user's profile Send private message Visit poster's website
Revo
  • Guest
Reply with quote
Post Posted: Tue Sep 22, 2015 11:40 am
Thanks, I'm gonna need time to understand all that^^

There already a NMI handler in place in Star Wars 'cause I think the developer use the SMS game to make the GG one. In the original header the region code is $4 for Master System instead of $7 for GG, it's the first GG game where I see that.

If I want to configure Start on Pause button only (for some game who only use Start as pause in-game), how I can do that? Can I use the same NMI handler code for every game?

Thank you so much for your help, I'm really glad to learn more about GG conversions and I think people will be happy to see that I don't have to use down controller player 2 as start anymore^^
 
  • Joined: 05 Sep 2013
  • Posts: 3827
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Tue Sep 22, 2015 12:25 pm
Revo wrote
Can I use the same NMI handler code for every game?


No, you should probably first understand how the game 'marks' that a pause has been requested (probably most of times it's just a flag value somewhere in RAM) and write an 'ad-hoc' NMI handler, at $0066.
If ROM at $0066 is used, you have to relocate the code/data that's in there (and that part may be the most hard part...) and place your handler in that place, or at least insert a JP to the location where you've got your handler (JP absolute is just 3 bytes)... but the handler should probably stay confined into the first 1KB of ROM, so that it won't ever be paged out.

Most of the times I believe a very simple NMI handler will suffice:
PUSH AF
LD A,somevalue
LD (somelocation),A
POP AF
RETN
  View user's profile Send private message Visit poster's website
  • Joined: 21 Sep 2015
  • Posts: 10
Reply with quote
Post Posted: Tue Sep 22, 2015 3:12 pm
A conversion of GP Rider would be nice because the GG game plays and looks like a 8-BIT version of Super Hang On.
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 3827
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Tue Sep 22, 2015 3:48 pm
Revo wrote
Slider v1.1
strangely I had to put 2 RLA for start on button 2 instead of 3 RLA in Star Wars


Yes, you're moving that bit into the msb, not overflowing into carry :)
  View user's profile Send private message Visit poster's website
  • Joined: 23 Apr 2014
  • Posts: 131
  • Location: NYC
Reply with quote
Post Posted: Tue Sep 22, 2015 3:53 pm
Both work on real hardware, but in Phantasy Star Adventure, pressing buttons 1&2 at the same time reset the game (confirmed on both emulation and hardware).
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14744
  • Location: London
Reply with quote
Post Posted: Tue Sep 22, 2015 8:37 pm
The NMI is used for the Gear to Gear cable, so I'd expect most games to have at least a stub there so it doesn't crash if you plug the cable in. Maybe Star Wars pauses instead. Anyway, you should find something replaceable but I haven't investigated much.
  View user's profile Send private message Visit poster's website
  • Joined: 14 Jul 2008
  • Posts: 158
Reply with quote
Post Posted: Wed Sep 23, 2015 1:01 am
RetroRGB wrote
Both work on real hardware, but in Phantasy Star Adventure, pressing buttons 1&2 at the same time reset the game (confirmed on both emulation and hardware).


That's clearly a side effect related to the reset function that most Game Gear games have when you press 1+2+Start at the same time. I assume that happens because button 1 is now assigned to have both the original Game Gear button 1 and Start functions at the same time.
  View user's profile Send private message
  • Joined: 21 Sep 2015
  • Posts: 10
Reply with quote
Post Posted: Fri Sep 25, 2015 4:14 pm
on the stage 2 (Desert Stage) of "Star Wars WIP v0.2" when you press button 1 the game pauses instead of shoot.
  View user's profile Send private message
Revo
  • Guest
Reply with quote
Post Posted: Fri Sep 25, 2015 5:21 pm
Yes I know, gonna try to fix that soon. Until then use v0.1
 
Revo
  • Guest
Reply with quote
Post Posted: Mon Sep 28, 2015 7:32 pm
Star Wars WIP v0.2a

Start should work correctly in all level now, please let me know if it doesn't.

 
  • Joined: 14 Jul 2008
  • Posts: 158
Reply with quote
Post Posted: Tue Sep 29, 2015 2:43 am
The issue with simultaneous shooting/pause function on button 1 is gone indeed.

But for some reason, I can't pause the game/access the inventory, functions which are supposed to be associated to the Pause button. Funny thing is, I can actually do it when playing on emulators, but not when playing on console (Japanese Master System). And it's not a malfunction of the Pause button of my console because the genuine Master System version of Star Wars DOES pause the game/access the inventory when I hit the Pause button.
  View user's profile Send private message
Revo
  • Guest
Reply with quote
Post Posted: Tue Sep 29, 2015 12:59 pm
Even on emulator sometimes you need to press pause 2 or 3 times to actually make pause. It's probably due to sverx code (LD A,$80 on the NMI handler?).
 
  • Joined: 05 Sep 2013
  • Posts: 3827
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Tue Sep 29, 2015 2:32 pm
The code is probably not expecting that a NMI could happen at all, being a GG game. So maybe sometimes the NMI handler writes $80 to $D976 and the code just resets it... sometimes, instead, it happen after that and before checking it.
No good idea on how to solve that. Maybe find where the code resets it and keep msb set if already set...?
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14744
  • Location: London
Reply with quote
Post Posted: Tue Sep 29, 2015 5:48 pm
I think you get NMIs when a Gear to Gear cable is plugged in. Single player games should be tolerant to them, but many may not.
  View user's profile Send private message Visit poster's website
  • Joined: 22 Mar 2015
  • Posts: 228
Reply with quote
Post Posted: Sat Oct 10, 2015 6:26 pm
Hi guys, The 25th anniversary of Sonic the Hedgehog is next year and I was thinking how about if The elite hackers of smspower make an effort to port Sonic Labyrinth to the Master System flawless, The easy would be clean the garbage of some screens and the hardest fixing the background outside of the game gear screen size besides Sonic needs to be faster than he is in the game gear game.
  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14744
  • Location: London
Reply with quote
Post Posted: Sat Oct 10, 2015 8:04 pm
It would be better to port a good game, wouldn't it?
  View user's profile Send private message Visit poster's website
Revo
  • Guest
Reply with quote
Post Posted: Sat Oct 10, 2015 8:47 pm
Like Sonic 1, the Game Gear version is different than the Master System version.
 
  • Joined: 22 Mar 2015
  • Posts: 228
Reply with quote
Post Posted: Sat Oct 10, 2015 10:48 pm
Excuse me, but Sonic Labyrinth was '95 top 5's GG games, The only flaw of this game is Sonic speed (slow even for a game gear screen size), I think hacking the background of this game will help hackers to port another GG games (with the same background problem) as you would figure out why/how the background don't stays just like the inside of the GG screen resolution.
  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14744
  • Location: London
Reply with quote
Post Posted: Sun Oct 11, 2015 1:48 pm
Hacking the background drawing wouldn't help much with other games, it's not an unknown problem, just a difficult one. The issue is more that the more prolific hackers aren't coders and it's deep into difficult coding territory.
  View user's profile Send private message Visit poster's website
  • Joined: 19 Jan 2009
  • Posts: 12
Reply with quote
Post Posted: Mon Oct 12, 2015 3:51 am
Any chance of a region unlock hack for Ristar? I want both levels from world 2...

(Also a lot of these games give errors when I try to run them with an active US/EU SMS Bios, which I assume is because the checksums are wrong...)
  View user's profile Send private message
  • Joined: 21 Sep 2015
  • Posts: 10
Reply with quote
Post Posted: Wed Oct 21, 2015 5:57 pm
Fatal Fury Special is a good game to convert to SMS because is one of the best Fighting games available for a 8 BIT system with a really good playability with until some chain Combos from Arcade working on this port.
  View user's profile Send private message
Revo
  • Guest
Reply with quote
Post Posted: Fri Nov 20, 2015 8:21 pm
Junction v1.1

- start is now configured on button 2.
Junction v1.1.sms.zip (35.59 KB)

 
Revo
  • Guest
Reply with quote
Post Posted: Fri Nov 20, 2015 8:34 pm
Ganbare Gorby! WIP v0.3

- start is now configured on button 1.

 
Revo
  • Guest
Reply with quote
Post Posted: Sat Nov 21, 2015 9:12 am
Buster Ball v1.1

- Sega logo when you start the game.
- No more garbage screen after the first goal (for that I deleted one tile, it's the down part of the number ''0'' for the score; not a perfect compromise but I think it's way better like that).

 
Reply to topic Goto page Previous  1, 2, 3 ... 5, 6, 7, 8, 9 ... 23, 24, 25  Next



Back to the top of this page

Back to SMS Power!