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 - MSX to SMS Hacks

Reply to topic Goto page Previous  1, 2, 3, 4, 5, 6, 7 ... 18, 19, 20  Next
Author Message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Wed Mar 18, 2020 4:16 pm
Here are the updated MSX2SMS tools, enjoy! :-)
Tools (v3).zip (147.24 KB)

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Wed Mar 18, 2020 5:41 pm
Revo wrote
Update for 4 Casio games: Koneko no Daibouken, Sinbad, The Stone of Wisdom, Yokai Yasiki.

Glitch on text fixed. Only Sinbad is working on real hardware, the others requires DahJee RAM extension adapter.

BTW, you can make games with DahJee screen working on Emulicious by changing the extension to .sg


Sorry if I made this question again, I just needed to know which DahJee RAM extension works for the Aaronix SG-1000 II / Mark III in Taiwan. The pictures I've taken are right here using RetroArch. These are all running on SG-1000 II hardware emulation. (Rally-X (TW) uses a different loader in the file, loader doesn't work for all MSX games, and Road Fighter is the Aaronix Loader 1 in this case. As you look at the top of Aaronix 2 and 3, you will see the Aaronix logo text. Real logo is there just for comparison. DahJee title's here too.)
Aaronix.png (955 B)
Aaronix.png

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Wed Mar 18, 2020 7:26 pm
Here is four Konami games that would be great as ports. Circus Charlie, Comic Bakery and Pooyan work good on SG-1000 II hardware emulation. Magical Tree has a problem because it shows chunky white or light gray lines while being played on SG-1000 II.
Pooyan (MSX2SMS).zip (144.71 KB)

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Sat Mar 21, 2020 5:08 pm
dink wrote
Maybe this will inspire some people to add an msx to their collection :) or at least an MSX emulator (for proper sound and colors) ;)

I did actually try out American Truck. Only the truck goes right, and you can stop it by using left I'm supposing.

Joy Soft's loader makes me think of an MSX emulator because it runs the codes of almost every 8, 16, or 32 kilobyte game, plus, it even changes the Yamaha's YM2149 / AY-3-8910 noise sound into the Texas Instruments' SN76489 noise and fixed music. As an example, merge David 2 with the loader, and you'll see what I mean. :-)
  View user's profile Send private message
  • Joined: 08 Apr 2011
  • Posts: 29
Reply with quote
Post Posted: Sat Mar 21, 2020 9:06 pm
Stokes wrote
Well, I use Taiwanese (Aaronix) and Korean (Clover, Hi-Com and Joy Soft) loaders to play these working MSX games. I also know for a fact that they already done some stuff. I'm just demonstrating and testing if they work correctly on the loaders. Master Everdrive is not what I'm using, I use the RetroArch Genesis Plus GX because it's emulation is pretty good and decent as a emulator.


I still don't quite understand the reasoning for the loaders? Especially in an emulator, given there are already MSX emus.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Sun Mar 22, 2020 12:41 am
Greg2600 wrote
Stokes wrote
Well, I use Taiwanese (Aaronix) and Korean (Clover, Hi-Com and Joy Soft) loaders to play these working MSX games. I also know for a fact that they already done some stuff. I'm just demonstrating and testing if they work correctly on the loaders. Master Everdrive is not what I'm using, I use the RetroArch Genesis Plus GX because it's emulation is pretty good and decent as a emulator.


I still don't quite understand the reasoning for the loaders? Especially in an emulator, given there are already MSX emus.

Yeah, but they're just thoughts of playing them from the Microsoft system to the Sega system to play.
  View user's profile Send private message
  • Joined: 09 Dec 2013
  • Posts: 228
  • Location: detroit
Reply with quote
Post Posted: Sun Mar 22, 2020 1:10 pm
Stokes wrote
I did actually try out American Truck. Only the truck goes right, and you can stop it by using left I'm supposing.


There is a bad rom-dump of of American Truck that exhibits this behavior, here's a proper dump, attached.
amtrucka.zip (14.18 KB)

  View user's profile Send private message
  • Joined: 22 Sep 2019
  • Posts: 98
Reply with quote
Post Posted: Sun Mar 22, 2020 2:05 pm
Greg2600 wrote
I still don't quite understand the reasoning for the loaders? Especially in an emulator, given there are already MSX emus.

I agree to an extent. Using the loader to run on an emulator for a different system seems self-serving, but getting the games running on hardware is kinda cool. I really ought to get my Game Gear working so that I can have a crack at getting some headers fixed and stuff.
  View user's profile Send private message
  • Joined: 21 Oct 2015
  • Posts: 303
Reply with quote
Post Posted: Sun Mar 22, 2020 5:30 pm
You guys, keep our lovely Sega Master System alive,
thank you very much one more time!!!
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Sun Mar 22, 2020 6:57 pm
law81 wrote
You guys, keep our lovely Sega Master System alive,
thank you very much one more time!!!


You're very welcome! :-)
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Sun Mar 22, 2020 11:11 pm
law81 wrote
You guys, keep our lovely Sega Master System alive,
thank you very much one more time!!!


BTW of this saying, are you leaving this site?
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Tue Mar 24, 2020 4:15 am
I just want to tell you all just a shoutout to RetroRGB for featuring me in the MSX2SMS update article. You can go on the website and see. :-)
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Wed Apr 01, 2020 3:33 pm
bsittler wrote
Nice work! I attempted to incorporate a subset of these games into the SG2GG package in its latest update, though it requires using the Makefile, installing z80asm & Python 3, etc., since these aren't simple IPS patches due to (a) combining parts from two input files, and (b) changing the file offsets as compared to the original MSX ROM dumps. In any case, they do at least run on the Game Gear hardware using an EverDrive

https://www.smspower.org/forums/16912#103058


BTW bsittler, is there any way you can create a SG2GG version of the Joy Soft Loader for Game Gear with both start and ending files?
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Wed Apr 01, 2020 3:34 pm
I just figured out a way to get 32kB MSX games on Game Gear, I will soon publish these.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Wed Apr 01, 2020 5:30 pm
bsittler wrote
Nice work! I attempted to incorporate a subset of these games into the SG2GG package in its latest update, though it requires using the Makefile, installing z80asm & Python 3, etc., since these aren't simple IPS patches due to (a) combining parts from two input files, and (b) changing the file offsets as compared to the original MSX ROM dumps. In any case, they do at least run on the Game Gear hardware using an EverDrive

https://www.smspower.org/forums/16912#103058


The Joy Soft comes from C-SO (Korea).
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Sat Apr 04, 2020 3:13 am
Here are 32kB MSX games on Game Gear. Some games don't work, but here you go. Enjoy! :-)

  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 530
Reply with quote
Post Posted: Sun Apr 05, 2020 8:44 am
Stokes wrote
bsittler wrote
Nice work! I attempted to incorporate a subset of these games into the SG2GG package in its latest update, though it requires using the Makefile, installing z80asm & Python 3, etc., since these aren't simple IPS patches due to (a) combining parts from two input files, and (b) changing the file offsets as compared to the original MSX ROM dumps. In any case, they do at least run on the Game Gear hardware using an EverDrive

https://www.smspower.org/forums/16912#103058


BTW bsittler, is there any way you can create a SG2GG version of the Joy Soft Loader for Game Gear with both start and ending files?


I don't yet know how to do this in a way that works on real hardware for C_So! [MSX] (KR). The Joy Soft/근우교역 conversion of C_So! doesn't seem to run correctly on the Game Gear with an EverDrive even unpatched, it just resets the game each time a button is pressed. I suspect there is a Sega mapper register write somewhere in the game initialization code. In any case I have attached a patch here that can be applied to C_So! [MSX] KR, and perhaps it will help somehow.

edit: the SG2GG patches are updated to include this, and also the Makefile there knows how to apply this "Joy Soft" MSX-to-SG BIOS replacement to other games: https://www.smspower.org/forums/16912-SG1000SC3000MarkIIIJPSMSRArrExportSMSRArrG...
C_So! [MSX] (KR) SG2GG.ips (534 B)
non-functional! C_So! [MSX] (KR) SG2GG.ips

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Mon Apr 06, 2020 12:37 pm
bsittler wrote
Stokes wrote
bsittler wrote
Nice work! I attempted to incorporate a subset of these games into the SG2GG package in its latest update, though it requires using the Makefile, installing z80asm & Python 3, etc., since these aren't simple IPS patches due to (a) combining parts from two input files, and (b) changing the file offsets as compared to the original MSX ROM dumps. In any case, they do at least run on the Game Gear hardware using an EverDrive

https://www.smspower.org/forums/16912#103058


BTW bsittler, is there any way you can create a SG2GG version of the Joy Soft Loader for Game Gear with both start and ending files?


I don't yet know how to do this in a way that works on real hardware for C_So! [MSX] (KR). The Joy Soft/근우교역 conversion of C_So! doesn't seem to run correctly on the Game Gear with an EverDrive even unpatched, it just resets the game each time a button is pressed. I suspect there is a Sega mapper register write somewhere in the game initialization code. In any case I have attached a patch here that can be applied to C_So! [MSX] KR, and perhaps it will help somehow.

edit: the SG2GG patches are updated to include this, and also the Makefile there knows how to apply this "Joy Soft" MSX-to-SG BIOS replacement to other games: https://www.smspower.org/forums/16912-SG1000SC3000MarkIIIJPSMSRArrExportSMSRArrG...


Just got the zip file, included Gyruss (ColecoVision) too, I will see if it works on Q-Bert's Qubes (My ColecoVision port), thanks. :-)
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Mon Apr 06, 2020 12:43 pm
bsittler wrote
Stokes wrote
bsittler wrote
Nice work! I attempted to incorporate a subset of these games into the SG2GG package in its latest update, though it requires using the Makefile, installing z80asm & Python 3, etc., since these aren't simple IPS patches due to (a) combining parts from two input files, and (b) changing the file offsets as compared to the original MSX ROM dumps. In any case, they do at least run on the Game Gear hardware using an EverDrive

https://www.smspower.org/forums/16912#103058


BTW bsittler, is there any way you can create a SG2GG version of the Joy Soft Loader for Game Gear with both start and ending files?


I don't yet know how to do this in a way that works on real hardware for C_So! [MSX] (KR). The Joy Soft/근우교역 conversion of C_So! doesn't seem to run correctly on the Game Gear with an EverDrive even unpatched, it just resets the game each time a button is pressed. I suspect there is a Sega mapper register write somewhere in the game initialization code. In any case I have attached a patch here that can be applied to C_So! [MSX] KR, and perhaps it will help somehow.

edit: the SG2GG patches are updated to include this, and also the Makefile there knows how to apply this "Joy Soft" MSX-to-SG BIOS replacement to other games: https://www.smspower.org/forums/16912-SG1000SC3000MarkIIIJPSMSRArrExportSMSRArrG...


Once again, both work great, thanks! :-)
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Mon Apr 06, 2020 1:28 pm
bsittler wrote
Stokes wrote
bsittler wrote
Nice work! I attempted to incorporate a subset of these games into the SG2GG package in its latest update, though it requires using the Makefile, installing z80asm & Python 3, etc., since these aren't simple IPS patches due to (a) combining parts from two input files, and (b) changing the file offsets as compared to the original MSX ROM dumps. In any case, they do at least run on the Game Gear hardware using an EverDrive

https://www.smspower.org/forums/16912#103058


BTW bsittler, is there any way you can create a SG2GG version of the Joy Soft Loader for Game Gear with both start and ending files?


I don't yet know how to do this in a way that works on real hardware for C_So! [MSX] (KR). The Joy Soft/근우교역 conversion of C_So! doesn't seem to run correctly on the Game Gear with an EverDrive even unpatched, it just resets the game each time a button is pressed. I suspect there is a Sega mapper register write somewhere in the game initialization code. In any case I have attached a patch here that can be applied to C_So! [MSX] KR, and perhaps it will help somehow.

edit: the SG2GG patches are updated to include this, and also the Makefile there knows how to apply this "Joy Soft" MSX-to-SG BIOS replacement to other games: https://www.smspower.org/forums/16912-SG1000SC3000MarkIIIJPSMSRArrExportSMSRArrG...


I also wanted to know what is GalaxFix. Was it a MSX to SMS conversion?
  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 530
Reply with quote
Post Posted: Mon Apr 06, 2020 3:13 pm
GalaxFix modifies MSX1 Galaxian to be able to run on MSX2. I didn't invent the technique, but I couldn't find an IPS for it, only manual hex editing instructions, so I made a patch for it. Apologies, it ended up not making a real difference on SMS although it does remove a stay write to 0xFFFF (or was it 0000?) if I recall correctly
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Mon Apr 06, 2020 3:16 pm
bsittler wrote
GalaxFix modifies MSX1 Galaxian to be able to run on MSX2. I didn't invent the technique, but I couldn't find an IPS for it, only manual hex editing instructions, so I made a patch for it. Apologies, it ended up not making a real difference on SMS although it does remove a stay write to 0xFFFF (or was it 0000?) if I recall correctly


Alright then, thanks for the response.
  View user's profile Send private message
  • Joined: 01 Aug 2012
  • Posts: 322
  • Location: Porto, Portugal
Reply with quote
Post Posted: Sat Apr 11, 2020 11:52 pm
some games from cobinee might work fine converted:
http://blog.livedoor.jp/cobinee/archives/cat_37403.html
(dragonball z and unidentified flying object worked fine, at least)
  View user's profile Send private message Visit poster's website
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Mon Apr 13, 2020 2:01 pm
nitrofurano wrote
some games from cobinee might work fine converted:
http://blog.livedoor.jp/cobinee/archives/cat_37403.html
(dragonball z and unidentified flying object worked fine, at least)


Just downloaded the games, I will get some results of doing these conversions.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Mon Apr 13, 2020 2:17 pm
nitrofurano wrote
some games from cobinee might work fine converted:
http://blog.livedoor.jp/cobinee/archives/cat_37403.html
(dragonball z and unidentified flying object worked fine, at least)


Used Joy Soft, and it works well.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Mon Apr 13, 2020 3:40 pm
nitrofurano wrote
some games from cobinee might work fine converted:
http://blog.livedoor.jp/cobinee/archives/cat_37403.html
(dragonball z and unidentified flying object worked fine, at least)


All the games are working good. I'm about to send them soon.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Mon Apr 13, 2020 3:56 pm
Finished, if there are any problems or requests, send it to me. Enjoy! :-)

  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 530
Reply with quote
Post Posted: Sat Apr 25, 2020 8:11 pm
I uploaded another iteration of the "SG2GG" patch set here just now: https://www.smspower.org/forums/16912#103058

Among other things, this includes a patch that adapts the "Joy Soft" MSX loader to work with the Sega mapper (that is the C_So! [MSX] (KR) SG2GG IPS patch BTW), so it can be used on EverDrives. This also sees several of the MSX-derived Korean SMS games working with a more MSX-like palette on Game Gear hardware than previously, including: Alibaba and 40 Thieves (KR), Block Hole (KR), C_So! [MSX] (KR), FA Tetris (KR), Flashpoint (KR), and Xyzolog (KR). It even includes a few which needed mapper hacks or other modifications of their own to accommodate the SG2GG loader: Cyborg Z (KR), Super Bioman I (KR), Super Boy 3 (KR), and Wonsiin (KR).
Cyborg Z SG2GG.png (374.41 KB)
Cyborg Z (KR) SG2GG running on a McWill-modded Game Gear
Cyborg Z SG2GG.png

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Sat Apr 25, 2020 11:01 pm
bsittler wrote
I uploaded another iteration of the "SG2GG" patch set here just now: https://www.smspower.org/forums/16912#103058

Among other things, this includes a patch that adapts the "Joy Soft" MSX loader to work with the Sega mapper (that is the C_So! [MSX] (KR) SG2GG IPS patch BTW), so it can be used on EverDrives. This also sees several of the MSX-derived Korean SMS games working with a more MSX-like palette on Game Gear hardware than previously, including: Alibaba and 40 Thieves (KR), Block Hole (KR), C_So! [MSX] (KR), FA Tetris (KR), Flashpoint (KR), and Xyzolog (KR). It even includes a few which needed mapper hacks or other modifications of their own to accommodate the SG2GG loader: Cyborg Z (KR), Super Bioman I (KR), Super Boy 3 (KR), and Wonsiin (KR).


Thanks once again, BTW of the image, is this actually how the SG-1000 to Game Gear screen set is suppose to be like? Mine's is the SG-1000 screen, but it's cropped to Game Gear size. Keep up the good work.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Sat Apr 25, 2020 11:56 pm
I did manage to get Space Invader(s) on the Master System and Game Gear using the 'Joy Soft' type of loader from Xyzolog, although the game doesn't function right. I just posted it here. Enjoy! :-)
Edit: BTW, I got the game working about months ago.

  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 530
Reply with quote
Post Posted: Sun Apr 26, 2020 1:42 am
Stokes wrote
Thanks once again, BTW of the image, is this actually how the SG-1000 to Game Gear screen set is suppose to be like? Mine's is the SG-1000 screen, but it's cropped to Game Gear size. Keep up the good work.


Thanks, and you're welcome! And yes, although with the original Game Gear LCD instead of McWill mod the image quality is lower due to every three SMS pixels being squeezed into two screen pixels using color subchannel culling (only two color channels are visible for each pixel, one of RG-, -GB, or R-B), and the viewing angles are worse. On the other hand, provided the contrast wheel is adjusted properly, the colors actually would look better since the McWill mod makes the blue color channel too bright relative to red and green. However that older LCD screen type is more difficult to photograph well, in addition to being more difficult to see. Color LCD technology has come a long way. :)

Also if you have the original LCD but a modern backlight replacement the game is somewhat easier to see (no aging backlight artifacts) but somewhat washed out, and still requires careful contrast wheel adjustment / viewing angle adjustment for decent playability.

If you're using a Game Gear with McWill mod, bear in mind that the mod introduces some color inaccuracies - colors look more "correct" on the original, unmodded display. Also a McWill mod allows cycling through a few different pixel replication/screen scaling modes using 1+2+Start chorded button long presses. For this image I cycled to the "square pixel" mode, but the other modes look fairly similar, just without black borders and with some ugly scaling artifacts visible. The full game screen is visible in the default scaling mode too.

SG2GG implements two different color palettes depending on the Game Gear operating mode. Try changing the file extension to .sms if you're using an EverDrive on Game Gear hardware.

The games look like this picture — full screen visible, colors less accurate since the palette approximation is using RGB222 — if launched using the .sms file extension from a Game Gear EverDrive or (with an adapter) SMS EverDrive. Out of the box, current emulators do not correctly emulate this mode ("Game Gear SMS compatibility mode", I guess) although Emulicious can be instructed to do so using a configuration file setting. The Analogue Mega SG also does not implement this mode at present.

If they are instead launched using the .gg file extension from a Game Gear EverDrive, they run as you described, with only a cropped, enlarged version of the center of the game screen visible, but more accurate colors since the palette approximation can use RGB444.

edit: added some photographs of the same game in the same mode (Game Gear SMS compatibility mode) running on an original, unmodded Game Gear, and on a Game Gear with the original LCD screen but a modern replacement backlight
Cyborg Z in SMS mode on umodified Game Gear.png (478.81 KB)
Cyborg Z GG2SMS in SMS mode on an early-model unmodded Game Gear
Cyborg Z in SMS mode on umodified Game Gear.png
Cyborg Z SG2GG in SMS mode on original LCD with modern backlight.png (482.84 KB)
Cyborg Z GG2SMS in SMS mode on an early-model Game Gear with original LCD but a modern backlight
Cyborg Z SG2GG in SMS mode on original LCD with modern backlight.png

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Sun Apr 26, 2020 2:20 am
bsittler wrote
Stokes wrote
Thanks once again, BTW of the image, is this actually how the SG-1000 to Game Gear screen set is suppose to be like? Mine's is the SG-1000 screen, but it's cropped to Game Gear size. Keep up the good work.


Thanks, and you're welcome! And yes, although with the original Game Gear LCD instead of McWill mod the image quality is lower due to every three SMS pixels being squeezed into two screen pixels using color subchannel culling (only two color channels are visible for each pixel, one of RG-, -GB, or R-B), and the viewing angles are worse. On the other hand, provided the contrast wheel is adjusted properly, the colors actually would look better since the McWill mod makes the blue color channel too bright relative to red and green. However that older LCD screen type is more difficult to photograph well, in addition to being more difficult to see. Color LCD technology has come a long way. :)

Also if you have the original LCD but a modern backlight replacement the game is somewhat easier to see (no aging backlight artifacts) but somewhat washed out, and still requires careful contrast wheel adjustment / viewing angle adjustment for decent playability.

If you're using a Game Gear with McWill mod, bear in mind that the mod introduces some color inaccuracies - colors look more "correct" on the original, unmodded display. Also a McWill mod allows cycling through a few different pixel replication/screen scaling modes using 1+2+Start chorded button long presses. For this image I cycled to the "square pixel" mode, but the other modes look fairly similar, just without black borders and with some ugly scaling artifacts visible. The full game screen is visible in the default scaling mode too.

SG2GG implements two different color palettes depending on the Game Gear operating mode. Try changing the file extension to .sms if you're using an EverDrive on Game Gear hardware.

The games look like this picture — full screen visible, colors less accurate since the palette approximation is using RGB222 — if launched using the .sms file extension from a Game Gear EverDrive or (with an adapter) SMS EverDrive. Out of the box, current emulators do not correctly emulate this mode ("Game Gear SMS compatibility mode", I guess) although Emulicious can be instructed to do so using a configuration file setting. The Analogue Mega SG also does not implement this mode at present.

If they are instead launched using the .gg file extension from a Game Gear EverDrive, they run as you described, with only a cropped, enlarged version of the center of the game screen visible, but more accurate colors since the palette approximation can use RGB444.

edit: added some photographs of the same game in the same mode (Game Gear SMS compatibility mode) running on an original, unmodded Game Gear, and on a Game Gear with the original LCD screen but a modern replacement backlight


So the hacked and mapper versions do this, although the screen's black when emulated (I'm using Genesis Plus GX). Thanks for the response.
  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 530
Reply with quote
Post Posted: Sun Apr 26, 2020 3:42 am
The SG2GG versions include color palette configuration code for Game Gear SMS mode (.sms) and for Game Gear "native" mode (.gg), and also incidentally incorporate mapper fixes where needed. The [HACK+MAPPER] versions (without SG2GG) don't include any Game Gear specific code, and just adapt the games to run (as .sms) using the Sega memory mapper which is supported by EverDrive and all SMS emulators.

This is unlike the specific (Korean) memory mappers those games were originally developed to use, which are only supported in a few of the more comprehensive emulators and some flash cart firmwares. Even emulators and flash cart firmwares that do support those mappers generally only enable the mapper when the file hash or checksum matches a known ROM dump the emulator/firmware author(s) were aware of and that used that mapper, meaning unknown dumps, hacks, homebrew, and modern productions all default to the Sega mapper. In Meka, at least, this can be configured/overridden by adding entries to meka.nam.

edit: For more accurate Game Gear emulation I recommend Emulicious at this point, and for Game Gear SMS mode you'll need to edit the config file. Emulicious also implements a "better than hardware" optional mode where the game runs in Game Gear native mode (so, using .gg file extension and with full RGB444 color palette) but with an uncropped viewing area, so the entire SMS-equivalent screen area remains visible. This mode is selectable in the menu and doesn't require editing the config file

edit 2: Attached a screenshot from Emulicious showing where in the menus to toggle Game Gear screen cropping

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Wed Apr 29, 2020 12:16 am
I'm just asking. Is there any successful version of this Aaronix loader that runs MSX games just like other loaders?
Aaronix.png (1.44 KB)
Aaronix.png

  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 530
Reply with quote
Post Posted: Wed Apr 29, 2020 1:51 am
Stokes wrote
I'm just asking. Is there any successful version of this Aaronix loader that runs MSX games just like other loaders?


I expect probably not, at least not without some "surgery", as these games expect cartridge/adapter RAM in the 0x2000…0x3FFF range, and the Sega mapper has no way to provide that outside of the "ROM write enable" feature possibly implemented in some development cartridges.

edit: Indeed not. The Jumbo loader, at least, does not use the standard MSX ROM entry point, and the ROM has been extensively patched to relocate its RAM usage to the adapter's RAM. The loader uses it too, e.g. for stack space.

As an experiment I went ahead and relocated Knightmare (Taiwan) back to the 0xE000..0xFFFF range used by the MSX original, and modified the Jumbo loader to use that range, too. Everything appears to work, but the patch (attached) is rather cumbersome and the resulting patched loader still cannot be trivially applied to other MSX games.

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Thu Apr 30, 2020 12:49 pm
bsittler wrote
Stokes wrote
I'm just asking. Is there any successful version of this Aaronix loader that runs MSX games just like other loaders?


I expect probably not, at least not without some "surgery", as these games expect cartridge/adapter RAM in the 0x2000…0x3FFF range, and the Sega mapper has no way to provide that outside of the "ROM write enable" feature possibly implemented in some development cartridges.

edit: Indeed not. The Jumbo loader, at least, does not use the standard MSX ROM entry point, and the ROM has been extensively patched to relocate its RAM usage to the adapter's RAM. The loader uses it too, e.g. for stack space.

As an experiment I went ahead and relocated Knightmare (Taiwan) back to the 0xE000..0xFFFF range used by the MSX original, and modified the Jumbo loader to use that range, too. Everything appears to work, but the patch (attached) is rather cumbersome and the resulting patched loader still cannot be trivially applied to other MSX games.


To be honest, you're right. Aaronix basically doesn't work without some conversion to it, and Jumbo, which is basically DahJee with Konami games, just gives a black screen. These companies should've made the games plain, but it's their work, why bother?
  View user's profile Send private message
  • Joined: 01 May 2020
  • Posts: 12
Reply with quote
Knightmare II: Maze of Galleous or Vampire Killer?
Post Posted: Sat May 02, 2020 4:56 am
I saw what you did to Knightmare I and I would like to know how difficult this process would be to do to Knightmare II: The Maze of Galleous, or more ambitiously, Vampire Killer.

I have Knightmare II and Mednafen will not start it. (there are several other roms that fall in this bracket)
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Sat May 02, 2020 5:31 am
Zombie wrote
I saw what you did to Knightmare I and I would like to know how difficult this process would be to do to Knightmare II: The Maze of Galleous, or more ambitiously, Vampire Killer.

I have Knightmare II and Mednafen will not start it. (there are several other roms that fall in this bracket)


I see this comment. Was this targeted to me or someone else? Also, Vampire Killer is a MSX2 game and wouldn't be able to run very well on the Master System due to it having more specific code and the SMS has 64 colors while MSX2 has 256 colors. Knightmare II for the Master System was made by Zemina. If you say that this dump isn't working, then you might as well try a different emulator.
  View user's profile Send private message
  • Joined: 01 May 2020
  • Posts: 12
Reply with quote
Knightmare II: Maze of Galleous and other Zemina MSX Ports
Post Posted: Sat May 02, 2020 8:15 am
I have tried both RetroArch with the Master System core, Genesis Plus GX, Mednafen, and Kega Fusion.

The MD5 Sum does match, but the Rom won't start under any Emulator I throw at it. I have a few Roms like this that have never worked, most of which I have dumped using my Personal Retrode Device.

These include Nemesis, Jang Pung 3, Nemesis II, and Sangokushi 3.
I've got a few Roms like Cyborg Z and Wiison that booted in OpenMSX.[/list]
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Sat May 02, 2020 1:17 pm
Zombie wrote
I have tried both RetroArch with the Master System core, Genesis Plus GX, Mednafen, and Kega Fusion.

The MD5 Sum does match, but the Rom won't start under any Emulator I throw at it. I have a few Roms like this that have never worked, most of which I have dumped using my Personal Retrode Device.

These include Nemesis, Jang Pung 3, Nemesis II, and Sangokushi 3.
I've got a few Roms like Cyborg Z and Wiison that booted in OpenMSX.[/list]


I'm supposing just these Zemina ROMs don't work on these types of cores except for Genesis Plus GX, if you're running on the SG-1000, you might want to Master System or Mark III. Try Android, or maybe not. This might help because the same ROMs like Nemesis, Nemesis II, and Knightmare II actually run well on that device.
  View user's profile Send private message
  • Joined: 01 May 2020
  • Posts: 12
Reply with quote
I tried Genesis Plus GX
Post Posted: Sat May 02, 2020 5:31 pm
I tried Genesis Plus GX. I have a feeling there is some mapper and/or Memory expandsion in some of these boards like the DahJee that my Emulators aren't accommodating.

Another thing is the Linux file Utility. I'm a Linux user. I have run file over these Roms. They don't show up as Master System Roms, or SG-1000 Roms. They don't show up as anything other than 'data' which is File's way of saying: I don't know what this file is. Some of the files that start as OpenMSX Roms show that way too.

There is one exception. WiiSon, shows up as an MSX Rom. So, I'm leaning toward it being necessary to have IPS Patches for these roms.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Sat May 02, 2020 6:53 pm
Zombie wrote
I tried Genesis Plus GX. I have a feeling there is some mapper and/or Memory expandsion in some of these boards like the DahJee that my Emulators aren't accommodating.

Another thing is the Linux file Utility. I'm a Linux user. I have run file over these Roms. They don't show up as Master System Roms, or SG-1000 Roms. They don't show up as anything other than 'data' which is File's way of saying: I don't know what this file is. Some of the files that start as OpenMSX Roms show that way too.

There is one exception. WiiSon, shows up as an MSX Rom. So, I'm leaning toward it being necessary to have IPS Patches for these roms.


Try Emulicious. It's also on Linux.
  View user's profile Send private message
  • Joined: 01 May 2020
  • Posts: 12
Reply with quote
Emulicious
Post Posted: Sat May 02, 2020 10:50 pm
It didn't work, but I should say, that the MSX to SMS Conversions and Hacks, now have proper headers.
MSX ROM with nonstandard page order, init=0x40b1
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Sat May 02, 2020 10:53 pm
Zombie wrote
It didn't work, but I should say, that the MSX to SMS Conversions and Hacks, now have proper headers.
MSX ROM with nonstandard page order, init=0x40b1


I'm supposing that the Zemina files didn't want to be emulated, but I'm glad that the MSX2SMS ports work.
  View user's profile Send private message
  • Joined: 01 May 2020
  • Posts: 12
Reply with quote
That's what I am saying...
Post Posted: Sun May 03, 2020 7:04 am
Can you adjust your MSX tools to create IPS Patches to just fix it.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Sun May 03, 2020 12:24 pm
Zombie wrote
Can you adjust your MSX tools to create IPS Patches to just fix it.


I really don't have a patching utility with me right now.
I think you should try MEKA if it's the only thing that can run the games.
  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 530
Reply with quote
Post Posted: Sun May 03, 2020 4:23 pm
Stokes wrote
Zombie wrote
Can you adjust your MSX tools to create IPS Patches to just fix it.


I really don't have a patching utility with me right now.
I think you should try MEKA if it's the only thing that can run the games.


Yes, please only distribute these as patches. I recommend IPS or BPS format, though xdelta would work too. BPS might be best, but I think the best tool to create it I know of is Windows-only (FLIPS), however it runs fine under Wine on other operating systems too.

For IPS patching I use a small Python 3 script I wrote. It's included in the sg2gg distribution and should work on multiple platforms, though I think I only actually tested it on osx and Windows so far. It is invoked like this:
python3 create_ips.py original.sms modified.sms output.ips


Here's the code pasted since it is not very large: (save it as create_ips.py)
#!/usr/bin/env python3
# -*- python -*-

import os, sys

def create_ips(original, changed):
    IPS_MAGIC = b'PATCH'
    IPS_EOF = b'EOF'
    BAD_OFFSET = (IPS_EOF[0] << 16) | (IPS_EOF[1] << 8) | IPS_EOF[2]
    blocks = []
    offset = len(changed) - 1
    while offset >= 0:
        try:
            if offset < len(original) and changed[offset] == original[offset]:
                continue
            length = 1
            while (offset > 0 and
                   (offset > len(original) or
                    changed[:offset][-5:] != original[:offset][-5:]) and
                   length < 0xFFFF):
                offset -= 1
                length += 1
            if offset == BAD_OFFSET:
                if length == 0xFFFF:
                    offset += 1
                    length -= 1
                else:
                    offset -= 1
                    length += 1
            regions = [(offset, changed[offset:offset + length])]
            block_cursor = 8
            while block_cursor < len(regions[-1][1]):
                block_step = 1
                try:
                    (block_offset, block_data) = regions[-1]
                    block_length = len(block_data)
                    if ((block_offset + block_cursor - 8) == BAD_OFFSET or
                        (block_offset + block_cursor + block_step) == BAD_OFFSET):
                        pass
                    elif block_data[block_cursor-8:block_cursor] == 8 * block_data[block_cursor:block_cursor + 1]:
                        while ((block_cursor + block_step) < block_length and
                               (block_offset + block_cursor + block_step + 1) != BAD_OFFSET and
                               block_data[block_cursor + block_step] == block_data[block_cursor]):
                            block_step += 1
                        regions[-1] = (block_offset, block_data[:block_cursor - 8])
                        regions.append((block_offset + block_cursor - 8,
                                        block_data[block_cursor - 8:block_cursor + block_step]))
                        regions.append((block_offset + block_cursor + block_step,
                                        block_data[block_cursor + block_step:]))
                        block_cursor = 8 - block_step
                finally:
                    block_cursor += block_step
            for (block_offset, block_data) in regions:
                block_length = len(block_data)
                if block_length == 0:
                    continue
                if block_length > 8 and block_data == block_length * block_data[:1]:
                    block = bytes([block_offset >> 16,
                                  (block_offset >> 8) & 0xFF,
                                  block_offset & 0xFF,
                                  0,
                                  0,
                                  block_length >> 8,
                                  block_length & 0xFF]) + block_data[:1]
                else:
                    block = bytes([block_offset >> 16,
                                  (block_offset >> 8) & 0xFF,
                                  block_offset & 0xFF,
                                  block_length >> 8,
                                  block_length & 0xFF]) + block_data
                assert block[:len(IPS_EOF)] != IPS_EOF  # Should never hit this
                blocks.append(block)
        finally:
            offset -= 1
    trailer = b''
    if len(changed) < len(original):
        assert len(changed) <= 0xffffff  # Truncated file is too large for IPS
        trailer = bytes([len(changed) >> 16,
                         (len(changed) >> 8) & 0xFF,
                         len(changed) & 0xFF])
    patch = IPS_MAGIC + b''.join(sorted(blocks)) + IPS_EOF + trailer
    assert patch != IPS_MAGIC + IPS_EOF  # Do not make an empty patch
    return patch

def main(original_file_name, changed_file_name, ips_file_name):
    assert os.path.splitext(ips_file_name)[-1].lower() == '.ips'
    original = open(original_file_name, 'rb').read()
    changed = open(changed_file_name, 'rb').read()
    patch = create_ips(original, changed)
    open(ips_file_name, 'wb').write(patch)

if __name__ == '__main__':
    (_, original_file_name, changed_file_name, ips_file_name) = sys.argv
    main(original_file_name, changed_file_name, ips_file_name)

Only requirement is the regular Python 3 distribution, you can get it from python.org if you don't have it already installed.
  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 530
Reply with quote
Post Posted: Sun May 03, 2020 5:23 pm
Last edited by bsittler on Sat Mar 11, 2023 5:59 am; edited 1 time in total
Zombie wrote
I have tried both RetroArch with the Master System core, Genesis Plus GX, Mednafen, and Kega Fusion.

The MD5 Sum does match, but the Rom won't start under any Emulator I throw at it. I have a few Roms like this that have never worked, most of which I have dumped using my Personal Retrode Device.

These include Nemesis, Jang Pung 3, Nemesis II, and Sangokushi 3.
I've got a few Roms like Cyborg Z and Wiison that booted in OpenMSX.


edit 3: Nemesis 2 (KR) is added, using a combinatorial 4MB mapper conversion. As with the other 2MB and larger conversions, use Meka or Emulicious for this.

edit 2: Samgukji III (KR) uses the same mapper as Jang Pung {II,3} (KR) and the same "fix" appears to work for it.

edit: Jang Pung 3 (KR) and also Jang Pung II (KR) use a different mapper, much more like the Sega and Codemasters mappers, and adapting these to Sega mapper required only replacing each three-byte sequence 32 00 A0 with the three-byte sequence 32 FF FF. Patches for these are attached here too, though they seem off-topic since they weren't MSX games.

I believe the rest of these all use a Zemina-created memory mapper which is not implemented in the emulators you mention. They work in Meka and Emulicious, which do implement this memory mapper.

There are also some games that don't use any mapper, but happen to write to Sega mapper control register addresses. These also need a patch to work in most emulators. Examples include C_So! [MSX] (KR), FA Tetris (KR), Flashpoint (KR), and Xyzolog (KR) at least. The solution for these is generally to modify their memory access to the problematic addresses to use different mirrored addresses for the same RAM, or to slightly reduce the amount of memory they initialize if they only ever "use" the address during initial memory-clearing.

This Zemina mapper uses an 8KB paging granularity. The standard "Sega" mapper implemented in all SMS and Game Gear emulators only implements 16KB paging granularity.

Some of the games themselves appear to only ever use consecutive pairs of 8KB pages starting with an even-numbered page -- in other words, they use it like a mapper with 16KB paging granularity. These ones can be adapter fairly simply to use 16KB pages instead, and because the layout and size of the ROM didn't change, the result can be expressed as an IPS patch.

In general, though, converting the rest to Sega mapper with its 16KB paging granularity is difficult, and may require expanding the ROM size to 4MB (combinatorial mapper expansion, every possible combination of two distinct 8KB pages is present as a distinct 16KB page) which those emulators don't support in any case.

Most emulators seem to cap out their SMS emulation at 1MB, and currently available flash cartridges tend to reach their limit around 1MB (SMS) or 2MB (GG).

Again, Meka and Emulicious work fine with this "oversize SMS" ROM adaptation approach.

I've attached a few such oversize adaptations in BPS patch format, you can apply them using FLIPS. Some of the results (4MB ones) are too large for most emulators but work in Emulicious and Meka. The smaller ones have broader compatibility, but may be incorrect/unplayable past a certain point if the game at some point uses a page combination not present in the reduced size ROM.

IPS format is not capable of representing these patches accurately because many parts of the original ROM are copied or moved to different file locations in the modified ROM. To create a BPS patch in FLIPS you can either use the GUI or invoke it from the command line like this: (on osx or Linux put "wine" in front)
flips --create --bps original.sms modified.sms modified.bps


I think Vampire Killer is a harder conversion since it's MSX2 but I didn't really investigate yet. MSX2 has video modes not found in these Sega systems and more RAM than is found in these Sega systems.

Note: BPS patches have to be attached inside ZIP files in this forum as they are not one of the file extensions allowed as a bare attachment.
Cyborg Z (KR) [HACK+MAPPER].ips (75 B)
In-place Sega mapper conversion of Cyborg Z (KR)
FA Tetris (KR) [HACK+MAPPER].ips (14 B)
Sega mapper compatibility fix for FA Tetris (KR)
Flashpoint (KR) [HACK+MAPPER].ips (15 B)
Sega mapper compatibility fix for Flashpoint (KR)
Super Boy 3 (KR) [HACK+MAPPER].ips (31 B)
In-place Sega mapper conversion of Super Boy 3 (KR)
Wonsiin (KR) [HACK+MAPPER].ips (31 B)
In-place Sega mapper conversion of Wonsiin (KR)
Xyzolog (KR) [HACK+MAPPER].ips (14 B)
Sega mapper compatibility fix for Xyzolog (KR)
F-1 Spirit - The way to Formula-1 (KR) [HACK+MAPPER+4MB].bps.zip (1.16 KB)
4MB Sega mapper combinatorial conversion of F-1 Spirit - The way to Formula-1 (KR)
Knightmare II - The Maze of Galious (KR) [HACK+MAPPER+1MB].bps.zip (798 B)
Partial 512KB Sega mapper combinatorial conversion of Knightmare II - The Maze of Galious (KR)
Nemesis (KR) [HACK+MAPPER+512KB].bps.zip (712 B)
Partial 512KB Sega mapper combinatorial conversion of Nemesis (KR)
Penguin Adventure (KR) [HACK+MAPPER+512KB].bps.zip (1.11 KB)
Partial 512KB Sega mapper combinatorial conversion of Penguin Adventure (KR)
Knightmare II - The Maze of Galious (KR) [HACK+MAPPER+4MB].bps.zip (1.11 KB)
4MB Sega mapper combinatorial conversion of Knightmare II - The Maze of Galious (KR)
Nemesis (KR) [HACK+MAPPER+4MB].bps.zip (1.18 KB)
4MB Sega mapper combinatorial conversion of Nemesis (KR)
C_So! [MSX] (KR) [HACK+MAPPER].ips (14 B)
Sega mapper compatibility fix for C_So! [MSX] (KR)
Jang Pung II (KR) [HACK+MAPPER].ips (15 B)
In-place Sega mapper conversion of Jang Pung II (KR)
Jang Pung 3 (KR) [HACK+MAPPER].ips (78 B)
In-place Sega mapper conversion of Jang Pung 3 (KR)
Samgukji III (KR) [HACK+MAPPER].ips (78 B)
In-place Sega mapper conversion of Samgukji III (KR)
Nemesis 2 (KR) [HACK+MAPPER+4MB].bps.zip (1.15 KB)
4MB Sega mapper combinatorial conversion of Nemesis 2 (KR)
Jang Pung II [SMS-GG] (KR) [HACK+MAPPER].ips (36 B)
In-place Sega mapper conversion of Jang Pung II [SMS-GG] (KR)

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 668
  • Location: United States
Reply with quote
Post Posted: Mon May 04, 2020 2:32 am
bsittler wrote
Zombie wrote
I have tried both RetroArch with the Master System core, Genesis Plus GX, Mednafen, and Kega Fusion.

The MD5 Sum does match, but the Rom won't start under any Emulator I throw at it. I have a few Roms like this that have never worked, most of which I have dumped using my Personal Retrode Device.

These include Nemesis, Jang Pung 3, Nemesis II, and Sangokushi 3.
I've got a few Roms like Cyborg Z and Wiison that booted in OpenMSX.


edit 3: Nemesis 2 (KR) is added, using a combinatorial 4MB mapper conversion. As with the other 2MB and larger conversions, use Meka or Emulicious for this.

edit 2: Samgukji III (KR) uses the same mapper as Jang Pung {II,3} (KR) and the same "fix" appears to work for it.

edit: Jang Pung 3 (KR) and also Jang Pung II (KR) use a different mapper, much more like the Sega and Codemasters mappers, and adapting these to Sega mapper required only replacing each three-byte sequence 32 00 A0 with the three-byte sequence 32 FF FF. Patches for these are attached here too, though they seem off-topic since they weren't MSX games.

I believe the rest of these all use a Zemina-created memory mapper which is not implemented in the emulators you mention. They work in Meka and Emulicious, which do implement this memory mapper.

There are also some games that don't use any mapper, but happen to write to Sega mapper control register addresses. These also need a patch to work in most emulators. Examples include C_So! [MSX] (KR), FA Tetris (KR), Flashpoint (KR), and Xyzolog (KR) at least. The solution for these is generally to modify their memory access to the problematic addresses to use different mirrored addresses for the same RAM, or to slightly reduce the amount of memory they initialize if they only ever "use" the address during initial memory-clearing.

This Zemina mapper uses an 8KB paging granularity. The standard "Sega" mapper implemented in all SMS and Game Gear emulators only implements 16KB paging granularity.

Some of the games themselves appear to only ever use consecutive pairs of 8KB pages starting with an even-numbered page -- in other words, they use it like a mapper with 16KB paging granularity. These ones can be adapter fairly simply to use 16KB pages instead, and because the layout and size of the ROM didn't change, the result can be expressed as an IPS patch.

In general, though, converting the rest to Sega mapper with its 16KB paging granularity is difficult, and may require expanding the ROM size to 4MB (combinatorial mapper expansion, every possible combination of two distinct 8KB pages is present as a distinct 16KB page) which those emulators don't support in any case.

Most emulators seem to cap out their SMS emulation at 1MB, and currently available flash cartridges tend to reach their limit around 1MB (SMS) or 2MB (GG).

Again, Meka and Emulicious work fine with this "oversize SMS" ROM adaptation approach.

I've attached a few such oversize adaptations in BPS patch format, you can apply them using FLIPS. Some of the results (4MB ones) are too large for most emulators but work in Emulicious and Meka. The smaller ones have broader compatibility, but may be incorrect/unplayable past a certain point if the game at some point uses a page combination not present in the reduced size ROM.

IPS format is not capable of representing these patches accurately because many parts of the original ROM are copied or moved to different file locations in the modified ROM. To create a BPS patch in FLIPS you can either use the GUI or invoke it from the command line like this: (on osx or Linux put "wine" in front)
flips --create --bps original.sms modified.sms modified.bps


I think Vampire Killer is a harder conversion since it's MSX2 but I didn't really investigate yet. MSX2 has video modes not found in these Sega systems and more RAM than is found in these Sega systems.

Note: BPS patches have to be attached inside ZIP files in this forum as they are not one of the file extensions allowed as a bare attachment.


Thanks for the patch files. I see a MSX2SG patch for Hi-Com 2. Is that suppose to be a loader in the tools I've put in?
  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 530
Reply with quote
Post Posted: Mon May 04, 2020 2:47 am
Stokes wrote
Thanks for the patch files. I see a MSX2SG patch for Hi-Com 2. Is that suppose to be a loader in the tools I've put in?


It's another one of Hi-Com's MSX BIOS replacements, extracted from Hi-Com 8-in-1 The Best Game Collection C (KR) and modified slightly to work stand-alone.

And you're welcome! BTW, it looks like I missed some mapper writes in Nemesis 2, here's an updated patch that replaces more of the mapper writes.

Also Nemesis 2 doesn't appear to use all that much of the combinatorial page space so it's looking promising for size reduction to something compatible with more emulators and flash carts. Page usage table attached (red block means it accessed the low 8KB of the 16KB page, blue block means it accessed the high 8KB.) Of course this is recorded after only playing for a short time, so it's entirely possible there's a lot more usage that doesn't fit this pattern later in the game

  View user's profile Send private message
Reply to topic Goto page Previous  1, 2, 3, 4, 5, 6, 7 ... 18, 19, 20  Next



Back to the top of this page

Back to SMS Power!