Jump to content
Jet Set Willy & Manic Miner Community

obo

Member
  • Posts

    3
  • Joined

obo's Achievements

Newbie

Newbie (1/3)

6

Reputation

  1. Apologies if this isn't the right place to report this. I've noticed some minor creature collision issues in Willy does the Great Pyramid, where Willy will lose a life if he lingers for too long in certain rooms. The rooms I've seen it happen in are: "word association football": the green ball hits the centre of the stairs after about 54 seconds. "so much for aesthetics": the horizontal creature hits the eye after about around 2 minutes and 51 seconds. "Right at the bottom": the right-hand yellow creature touches the top red creature after about 4 minutes and 15 seconds. I only noticed it because playing the game in TileMap keeps all rooms visible for extended periods. Though there's nothing specific to the app that should cause this problem. The YouTube walkthrough only has Willy in the first room for 25 seconds and 15 seconds, which is shorter than needed to see it happen in the fastest case.
  2. obo

    TileMap 2.x

    Thanks for the feedback! I've made some extra improvements and have updated the web version with the changes. I added a layout override mechanism and have corrected the layouts for many games to match the Pavero maps. In some cases it was just tweaking a room or two, but in complex maps a lot of the map was different. Madam Blavskja's Carnival Macabre still needs a bit of work to place some extra rooms. Willy does the Great Pyramid now looks fantastic, with a special half tile offset applied to align the pyramid edges. The code hooks used to create the map illusion are fairly light, so all special code (including Patch Vectors) will run as normal. There were only a couple of cases I needed extra handling, such as the Doppelganger room in ZX Willy the Bug Slayer, where the extra sprite was initially inside a fire block. In most cases I just need to find a few code locations of interest, like when the game starts and ends, when the room is being drawn, and the start and current room number locations. I just check a few addresses for each and find what I need, but if new games move code around I can add an extra location to check. I also check the OR/XOR/ADD opcode used to convert the room number to a room data high byte, used by a few games. The original JSW support has some special tweaks to make the gameplay more seamless. They include preserving the position of creatures in neighbouring rooms, and positioning Willy a bit closer to the screen edges on entry. I've not applied these to the JSW48 games as it relies on knowing the position and size of room state information, which may well have changed. It wasn't applied to JSW2 either due to the lifts, but it could work for the rest of the state. TileMap only supports 48K games at the moment so I'm limited to the JSW48 games set. Once I've added 128K support I should be able to look at adding JSW64 and JSW128 games too, which should require a similar approach. That won't happen until after the next desktop release though, which shouldn't be too far away now. If you spot any map/gameplay issues then please shout and I'll take a look.
  3. obo

    TileMap 2.x

    I've been working on updating my TileMap application, which lets you see the whole game map as you play. I already supported the original JSW and JSW2+ games, but they use hard-coded map layouts. I've long wanted to add more general support for custom JSW games, which requires working out a 2D map layout from the game data. That turned out to be a much harder problem than expected so it never got finished. I've come to the conclusion that it may not be possible to automatically generate a perfect layout for all games. The only information you have is the room exit data, which must have all 4 exits defined, even if only some are used. The remaining entries usually point back to themselves, or are set to some dummy value, which will usually be an existing room number. In some cases they point to unused rooms from the original JSW, which then become part of the map layout. Examining the room data for navigable exits might help fix some of these, but there are cases where blocks disappear in late game to allow access. That's not even thinking about exotic loops and overlaps that some games have. I've settled on an approach that seems to give "good enough" results for non-overlapping maps. The rules also keep the original JSW map rooms aligned to the east wall, leaving a gap in the middle. In more complex cases it attempts to place problem rooms near (and aligned to) where they should be, but it will always place them somewhere. It's far from perfect (as you'll see below) but it seems a reasonable compromise solution for now. In some cases I'm not even sure what the correct layout should look like! Are the Pavero maps considered to be correct? TileMap also requires game code hooks to react to some game events. JSW mods that change only the data should just work. I've found that most game engine changes use the same code in a different location, or minor variations. I was able to get all the JSW48 games working over a couple of evenings, and extra incompatible games should only take about 10 mins each now. JSW Central has been a great source of information to get this done :) To show the current progress I've built a test web version of my development code, with just the JSW48 games available. It should work on modern desktop browsers, though the final release will be regular desktop apps. Double-click to start, Esc to return to the selection screen. Home centres on current room, End shows full map. Drag/zoom with the mouse. F1-F4 give 1-4x scaling, avoiding scaling artefacts. If there's community interest/help I could allow custom overrides of the map layouts to fix issues. It would likely allow exporting the generated layout for manual editing, rather than having it created from scratch. Any other thoughts are most welcome.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.