|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
Goto page Previous 1, 2, 3, 4, 5, 6, 7 ... 18, 19, 20 Next |
Author | Message |
---|---|
|
Taylor Stokes' MSX2SMS Ports
Posted: Wed Mar 18, 2020 4:16 pm
|
Here are the updated MSX2SMS tools, enjoy! :-)
|
|
|
Taylor Stokes' MSX2SMS Ports
Posted: Wed Mar 18, 2020 5:41 pm
|
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.) |
|
|
Taylor Stokes' MSX2SMS Ports
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.
|
|
|
Taylor Stokes' MSX2SMS Ports
Posted: Sat Mar 21, 2020 5:08 pm
|
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. :-) |
|
|
Posted: Sat Mar 21, 2020 9:06 pm |
I still don't quite understand the reasoning for the loaders? Especially in an emulator, given there are already MSX emus. |
|
|
Taylor Stokes' MSX2SMS Ports
Posted: Sun Mar 22, 2020 12:41 am
|
Yeah, but they're just thoughts of playing them from the Microsoft system to the Sega system to play. |
|
|
Posted: Sun Mar 22, 2020 1:10 pm |
There is a bad rom-dump of of American Truck that exhibits this behavior, here's a proper dump, attached. |
|
|
Posted: Sun Mar 22, 2020 2:05 pm |
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. |
|
|
Posted: Sun Mar 22, 2020 5:30 pm |
You guys, keep our lovely Sega Master System alive,
thank you very much one more time!!! |
|
|
Taylor Stokes' MSX2SMS Ports
Posted: Sun Mar 22, 2020 6:57 pm
|
You're very welcome! :-) |
|
|
Taylor Stokes' MSX2SMS Ports
Posted: Sun Mar 22, 2020 11:11 pm
|
BTW of this saying, are you leaving this site? |
|
|
Taylor Stokes' MSX2SMS Ports
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. :-) | |
|
Taylor Stokes' MSX2SMS Ports
Posted: Wed Apr 01, 2020 3:33 pm
|
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? |
|
|
Taylor Stokes' MSX2SMS Ports
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. | |
|
Taylor Stokes' MSX2SMS Ports
Posted: Wed Apr 01, 2020 5:30 pm
|
The Joy Soft comes from C-SO (Korea). |
|
|
Taylor Stokes' MSX2SMS Ports
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! :-)
|
|
|
Posted: Sun Apr 05, 2020 8:44 am |
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... |
|
|
Taylor Stokes' MSX2SMS Ports
Posted: Mon Apr 06, 2020 12:37 pm
|
Just got the zip file, included Gyruss (ColecoVision) too, I will see if it works on Q-Bert's Qubes (My ColecoVision port), thanks. :-) |
|
|
Taylor Stokes' MSX2SMS Ports
Posted: Mon Apr 06, 2020 12:43 pm
|
Once again, both work great, thanks! :-) |
|
|
Posted: Mon Apr 06, 2020 1:28 pm |
I also wanted to know what is GalaxFix. Was it a MSX to SMS conversion? |
|
|
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 | |
|
Taylor Stokes' MSX2SMS Ports
Posted: Mon Apr 06, 2020 3:16 pm
|
Alright then, thanks for the response. |
|
|
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) |
|
|
Taylor Stokes' MSX2SMS Ports
Posted: Mon Apr 13, 2020 2:01 pm
|
Just downloaded the games, I will get some results of doing these conversions. |
|
|
Posted: Mon Apr 13, 2020 2:17 pm |
Used Joy Soft, and it works well. |
|
|
Taylor Stokes' MSX2SMS Ports
Posted: Mon Apr 13, 2020 3:40 pm
|
All the games are working good. I'm about to send them soon. |
|
|
Taylor Stokes' MSX2SMS Ports
Posted: Mon Apr 13, 2020 3:56 pm
|
Finished, if there are any problems or requests, send it to me. Enjoy! :-)
|
|
|
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). |
|
|
Posted: Sat Apr 25, 2020 11:01 pm |
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. |
|
|
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. |
|
|
Posted: Sun Apr 26, 2020 1:42 am |
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 |
|
|
Posted: Sun Apr 26, 2020 2:20 am |
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. |
|
|
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 |
|
|
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?
|
|
|
Posted: Wed Apr 29, 2020 1:51 am |
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. |
|
|
Posted: Thu Apr 30, 2020 12:49 pm |
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? |
|
|
Knightmare II: Maze of Galleous or Vampire Killer?
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) |
|
|
Posted: Sat May 02, 2020 5:31 am |
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. |
|
|
Knightmare II: Maze of Galleous and other Zemina MSX Ports
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] |
|
|
Posted: Sat May 02, 2020 1:17 pm |
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. |
|
|
I tried Genesis Plus GX
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. |
|
|
Posted: Sat May 02, 2020 6:53 pm |
Try Emulicious. It's also on Linux. |
|
|
Emulicious
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 |
|
|
Posted: Sat May 02, 2020 10:53 pm |
I'm supposing that the Zemina files didn't want to be emulated, but I'm glad that the MSX2SMS ports work. |
|
|
That's what I am saying...
Posted: Sun May 03, 2020 7:04 am
|
Can you adjust your MSX tools to create IPS Patches to just fix it. | |
|
Posted: Sun May 03, 2020 12:24 pm |
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. |
|
|
Posted: Sun May 03, 2020 4:23 pm |
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. |
|
|
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 |
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. |
|
|
Posted: Mon May 04, 2020 2:32 am |
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? |
|
|
Posted: Mon May 04, 2020 2:47 am |
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 |
|
Goto page Previous 1, 2, 3, 4, 5, 6, 7 ... 18, 19, 20 Next |