obo Posted August 5 Report Share Posted August 5 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. UncleWan, jetsetdanny and JianYang 2 1 Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted August 11 Report Share Posted August 11 Thank you for this update and for all the work you have put into this project! 🙏 On 8/5/2026 at 8:02 AM, obo said: Are the Pavero maps considered to be correct? I would say they mostly (or perhaps even entirely) are. I don't recall seeing any problems with his maps of JSW games (apart from those games that are practically impossible to map, with various illogical exits, overlapping rooms, etc. - but then probably Pavero's maps show them as accurately as possible under the circumstances). I seem to recall from years ago that I noticed a couple of minor errors in the map of "Stay Kool". I did mean to let Pavero know about it, but never did that back then, and now I can't remember the details of the problem and probably couldn't force myself to spend time investigating it. But it's not a JSW game anyway. On 8/5/2026 at 8:02 AM, obo said: JSW Central has been a great source of information to get this done 🙂 I'm very glad to hear this 😁 Regarding your website: I've had a look at my game "Willy's New Mansion" Special Edition. It was truly a "Wow!" moment: seeing the whole map in all its splendour (if I can say so myself) was a truly emotional experience 😊 . I was very impressed both with the fact that everything is in place - including two rooms that were added in the SE (in relation to the original edition) and are placed in the code not in the "normal" #C000 - #FFFF range, but in the #8000 - #BFFF range (namely, "The Temple of Passing Time" is at #A700 - #A7FF and "A Forest Clearing on Fire!" is at #A800 - #A8FF). I was also impressed and, quite truly, moved with the map's showing special flashing-screen effects in some rooms (engineered with the so-called Patch Vectors; working on the SE of "Willy's New Mansion" was my first major venture into the PV territory and I spent a lot of time on it, that's why seeing the effects I applied back then faithfully reproduced in your map is so moving to me 😊). I've also had a look at "Plants vs. Zombies", the latest released JSW48 game, and it was also great to see it all at once, mostly Wan YuXiang's beautiful rooms and also the ones that I contributed to the game 😊. So, congratulations on delivering this fantastic resource with such precision and quality - and, once again, THANK YOU SO MUCH for it! 👍😊 obo and UncleWan 2 Quote Link to comment Share on other sites More sharing options...
UncleWan Posted August 14 Report Share Posted August 14 Due to personal reasons, I haven't been able to return to the JSWMM community for a long time. Today I just took a moment to see if there was anything new. But I’m very happy today—in fact, I’m really excited—to see your valuable work. Through the link you gave, it’s the first time I’ve seen how my game looks on a global scale. What’s equally surprising is that it’s a big map that can actually be played! 😄 Please keep up your work🙏; I believe the community is really looking forward to the final result!😊👍 jetsetdanny and obo 2 Quote Link to comment Share on other sites More sharing options...
obo Posted August 15 Author Report Share Posted August 15 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. UncleWan and jetsetdanny 2 Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted August 18 Report Share Posted August 18 Thank you for this update, and I'm looking forward to your adding JSW128 and JSW64 games 🙂 . Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.