Can we hack lemmings for Genesis and Snes?

Started by GigaLem, May 29, 2015, 10:24:43 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

GigaLem

Im legitimately curious, i know its probably a redundant question because of neolemmix and lix, but
Can we hack the console games starting with the Genesis and Snes.
Like i would love to see Oh no! more lemmings ported to those two systems.
of course we'll have to change the pallet but still hacking has been done on those two systems just take a look of the amazing sonic hacks on the genesis or...
Look at the multitude of Super Mario world hacks.

ccexplore

It's not impossible from a technical perspective, but I'm not convinced there's much value in such ports.  If nothing else, I feel the game works best with mouse and keyboard, not with the gamepad.  And for Lemmings, things have turned out such that more work has been done over the years to re-create enhanced versions of the game for the PC, rather than modding the pre-existing versions of the game.  (CustLemm is the closest to a mod in the style of the Super Mario/Sonic hacks you are thinking of, and even it eventually got superceded by projects like Lemmix, NeoLemmix, Lix etc.)  The way we did things here with NeoLemmix/Lix etc also tends to give much greater flexibility to do things that involve greatly altered or even brand new game behaviors, like gimmicks in NeoLemmix for example or the completely new skills in Lix.

Frankly, if people like Eric (who wrote Lemmix), me (who disassembled the PC version to provide the means for near-perfect emulation of its game mechanics on Lemmix), Simon (who wrote Lix pretty much from scratch), etc. had been interested in games like Super Mario instead, it would likely be that most of the hacks would've ended up more like Lemmix (or even based on it), being re-creations (and forks thereof) on the PC instead of mods of the console versions.  The only advantage I can think of (besides less work in exchange for less flexibility in the scope of feasible changes) for console-version mods is the ability to actually play on the actual console hardware, though this requires some specialized hardware and software and is likely of interest to only a much smaller subset of the community.

GigaLem

I can see were you're coming from.
haven't people hacked the snes version to have compatibility of the SNES mouse?

ccexplore

Hmm, have to admit I haven't considered that.  Especially taking into account that apparently Lemmings 2 on SNES does support the mouse, if Wikipedia is to be believed.  Still, in general I haven't seen any existing hacking work done on the SNES version of Lemmings at all.

GigaLem

I've also seen videos of accessing all the 6's... in the SNES
Should we do research on how could this be done?

ccexplore

First, keep in mind that just because a Youtube video says "SNES" doesn't necessarily guarantee it is.  Mislabeling like that occurs rather often.  Not saying they are all mislabeled but do check that you are actually seeing other evidences that points to SNES and not other ports like the Amiga or PC.

That said, porting levels is probably one of the easier things you can do.  On the Genesis version for example I believe we have already figured out where and how the level data are stored.  I'm not sure the same has been done yet for SNES but it should likely be same sort of difficulty as on the Genesis.  If we're lucky, it may even be in the same or very similar format as one of the known formats like PC or Amiga.

Tsyu

From what I recall from messing with the Lemmings SNES ROMs:

  • The Japanese version does have "All the 6's" rather than "Ohayo Lemming San" at Tricky 21.
  • The US version (and most likely other versions) contains the terrain and object data "All the 6's", although it's not used. It's possible to access it with a very simple hack, though. (I don't remember exactly which byte to change or what to change it to, but I know that the ROM has a table containing the title, release rate, and such for every level. In each table entry is a 1- or 2-byte value that indicates which level data to use; that's the value that you would change.)

ccexplore

Interesting.  So for this specific case, it's more of unlocking an inaccessible level that's nevertheless already in the ROM somewhere, as opposed to having to insert it in.  It's probably simple enough to be done via a GameShark code or similar.

geoo

One advantage of hacking over porting/re-writing is having the exact original physics. Though here that's not really a concern as ONML wasn't on Genesis, and so there are no physics for ONML to preserve.

I'm a bit versed in Sega Genesis hacking, and I added Sega Mouse support to Genesis Lemmings at some point, but I don't see much of a point and thus little incentive to port the ONML levels to Sega Genesis (unless you shell over $1000 or something as incentive).

crazygerry

Hello,

very old thread, but I have a solution to play with a mouse.

1.    Save the following code as lemmmouse.lua

function LEMMINGSMouse()
inp = input.get()
pad = joypad.get(1)
offset = -4
--cursorx = memory.readbyte(0x7E0071)
--cursory = memory.readbyte(0x7E0073)

    --gui.text(2, 60, cursorx)
if(inp.xmouse+offset >= 0 and inp.xmouse+offset <= 246) then
memory.writebyte(0x7E0071,inp.xmouse+offset)
elseif(inp.xmouse+offset < 0) then
memory.writebyte(0x7E0071,0)
elseif(inp.xmouse+offset > 246) then
memory.writebyte(0x7E0071,246)
end
--gui.text(2, 70, inp.xmouse+offset)


--gui.text(2, 100, cursory)

if(inp.ymouse+offset >= 0 and inp.ymouse+offset <= 214) then
memory.writebyte(0x7E0073,inp.ymouse+offset)
elseif(inp.ymouse+offset < 0) then
memory.writebyte(0x7E0073,0)
elseif(inp.ymouse+offset > 214) then
memory.writebyte(0x7E0073,214)
end
--gui.text(2, 110, inp.ymouse+offset)


if (inp.xmouse+offset > 245) then
        pad.right = true
joypad.set(1,pad)
end

if (inp.xmouse+offset < 1) then
        pad.left = true
joypad.set(1,pad)
end

if (inp.leftclick) then
pad.A = true
joypad.set(1,pad)
end

if (inp.rightclick) then
pad.X = true
joypad.set(1,pad)
end

end
gui.register(LEMMINGSMouse)




2.   Use snes9x with LUA support.
      hxxps:..github.com/gocha/snes9x/releases

3.   Load Lemmings (Europe).zip (MD5 e51730370bf2b04a426b2a55b3f1972c)

4.   Load my LUAscript and enjoy Lemmings with mouse :-)

For other Lemmings rom versions I have to change the memory locations for the cursor.

Have fun !

607

Quote from: crazygerry on July 26, 2018, 02:25:06 PM
Hello,

very old thread, but I have a solution to play with a mouse.

1.    Save the following code as lemmmouse.lua

function LEMMINGSMouse()
inp = input.get()
pad = joypad.get(1)
offset = -4
--cursorx = memory.readbyte(0x7E0071)
--cursory = memory.readbyte(0x7E0073)

    --gui.text(2, 60, cursorx)
if(inp.xmouse+offset >= 0 and inp.xmouse+offset <= 246) then
memory.writebyte(0x7E0071,inp.xmouse+offset)
elseif(inp.xmouse+offset < 0) then
memory.writebyte(0x7E0071,0)
elseif(inp.xmouse+offset > 246) then
memory.writebyte(0x7E0071,246)
end
--gui.text(2, 70, inp.xmouse+offset)


--gui.text(2, 100, cursory)

if(inp.ymouse+offset >= 0 and inp.ymouse+offset <= 214) then
memory.writebyte(0x7E0073,inp.ymouse+offset)
elseif(inp.ymouse+offset < 0) then
memory.writebyte(0x7E0073,0)
elseif(inp.ymouse+offset > 214) then
memory.writebyte(0x7E0073,214)
end
--gui.text(2, 110, inp.ymouse+offset)


if (inp.xmouse+offset > 245) then
        pad.right = true
joypad.set(1,pad)
end

if (inp.xmouse+offset < 1) then
        pad.left = true
joypad.set(1,pad)
end

if (inp.leftclick) then
pad.A = true
joypad.set(1,pad)
end

if (inp.rightclick) then
pad.X = true
joypad.set(1,pad)
end

end
gui.register(LEMMINGSMouse)




2.   Use snes9x with LUA support.
      hxxps:..github.com/gocha/snes9x/releases

3.   Load Lemmings (Europe).zip (MD5 e51730370bf2b04a426b2a55b3f1972c)

4.   Load my LUAscript and enjoy Lemmings with mouse :-)

For other Lemmings rom versions I have to change the memory locations for the cursor.

Have fun !
But if you're emulating it on pc, why would you play 'on SNES' at all? I feel like you might as well be playing a pc version.

crazygerry

Quote
But if you're emulating it on pc, why would you play 'on SNES' at all? I feel like you might as well be playing a pc version.

Because I can !   ;-)

No seriously... I like the retro feeling. My favorite version is the Amiga version.
I like the SNES version to... but the game is annoying without mouse support.
Now it playable for me.
Off course, NeoLemmix is a good thing and I like it!
But as a great fan of SNES generally, I liked to see that we can play it with a mouse now.

Greetings
Gerry

namida

I have to say I agree with 607 there. The DOS or Amiga version is better suited to playing on PC than a retro console version. The SNES version only has a single level that's unique to it; plus five more levels shared only between it and Genesis. But the Genesis version itself would be a better target for a mouse hack; it has a lot of levels that aren't on any other platform (excluding fanmade clones that support as many official levels as possible; ie: Lemmix, NeoLemmix and SuperLemmini).

I guess though, there is always the "I did this to prove I can" factor - and the learning experience that goes along with that. ;)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

crazygerry

Quote from: namida on July 27, 2018, 07:04:01 PM
I have to say I agree with 607 there. The DOS or Amiga version is better suited to playing on PC than a retro console version. The SNES version only has a single level that's unique to it; plus five more levels shared only between it and Genesis. But the Genesis version itself would be a better target for a mouse hack; it has a lot of levels that aren't on any other platform (excluding fanmade clones that support as many official levels as possible; ie: Lemmix, NeoLemmix and SuperLemmini).

I guess though, there is always the "I did this to prove I can" factor - and the learning experience that goes along with that. ;)

OK. In this case, the Genesis version sounds really interesting, in deed.
I will investigate it and look for a possibility to make mouse support happening.

CU

GigaLem

Quote from: crazygerry on August 06, 2018, 09:13:18 PM
Quote from: namida on July 27, 2018, 07:04:01 PM
I have to say I agree with 607 there. The DOS or Amiga version is better suited to playing on PC than a retro console version. The SNES version only has a single level that's unique to it; plus five more levels shared only between it and Genesis. But the Genesis version itself would be a better target for a mouse hack; it has a lot of levels that aren't on any other platform (excluding fanmade clones that support as many official levels as possible; ie: Lemmix, NeoLemmix and SuperLemmini).

I guess though, there is always the "I did this to prove I can" factor - and the learning experience that goes along with that. ;)

OK. In this case, the Genesis version sounds really interesting, in deed.
I will investigate it and look for a possibility to make mouse support happening.

CU


If its successful, Release a NTSC-U or J version of it. Because if there's one thing I don't like is PAL Mega Drive's Slowness. Makes the songs sound drunk IMHO