doctorclu Posted June 3 Share Posted June 3 (edited) Introduction: After playing Zool RedimeNsioned on PS4, I wondered, could Zool on the Jaguar be tweaked a bit to make it (even) more fun? Here's what I came up with that could done for "quick" changes: 1) Swap out mod files, give it more of a Zool 1 feel that way. 2) Negate the jump by pushing up on the D-Pad. 3) Eliminate the need for 100% item collection. Great for speed running. Used the RNC uncompression utility, and currently pouring through all the files, finding the picture files, map, character, and other files using JagView. At some point I hope to narrow down the program files. If I can't get it to pull up in some program editor, at least I'll know where it resides in the rom image and can try a few other tricks. Mods at this point were found, and I changed them out for the Zool 1 mods I found in the mod archive. The results, unlike my tinkering with Bubsy which all worked, these mods varied in performance, which I thought was interesting. Went something like this... Uncompressed Compressed Intro 191 k 164 k Replace with: Acid 32 k 23 k Result: Good! Nice simple intro, had the "Get Ready" which I really enjoy. Loved tht this worked. Swan 90 k 57 k Rock N’ Zool. 60 k 44 k Result: Good! Rocking tune, better than the mellow Swan Lake tune, made it more palatable. bulb 60 k 37 k Sonic Basher 40 k 33 k Result: Plays slow. Egypt 88 k 61 k Sunset Mix 85 k 58 k Result: Plays slow. snake 84 k 66 k Sweetie Funk 60 k 37 k Result: Plays slow. ice 88 k 61 k Zool Rave 59 k 41 k Result: Plays regular speed. So if you want to try a version that had the better results (only intro and swan lake changed out) with the other music still in tact here are these images: Zool2B.rom Zool2B2.rom And if you'd like to sample a curiousity, here is the one with all the tracks switched. Zool2B5.rom I'll keep tinkering and see if we can make the no jump and no item collection changes happen. UPDATE June 10, 2023 - Version where UP is disabled on the D-Pad thanks mostly in part to Seedy1812: DOWNLOAD HERE: No odd jumps from the D-Pad anymore. If you need to climb just hold down the jump button. Climbs just as quick as D-Pad up. Option menu used up and down on D-pad, but luckily if you hit down on D-pad it will cycle back to the top if you need. Enjoy! Edited June 10 by doctorclu 3 Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 5 Share Posted June 5 Hiya , well you are going to have fun as just like Bubsy the game code and data are unpacked into ram at boot up. Zool does not store filenames but gives each file a number and you load a file by index number. The table of start addresses for each file is at address 00802a00 to 00802c50. I have added the disassembly of the start up code From address 00802094 loads in the data to $4000 (index 0x0 ) and the code (0x90) to 0x3a300 and then jumps into the code. 00802000 4ff9 0020 0000 LEA A_00200000,A7 00802006 203c 0080 20e0 MOVE #0x008020e0,D0 0080200C c03c 00f8 AND.B #0x00f8,D0 00802010 4840 SWAP d0 00802012 23c0 00f0 0020 MOVE D0,A_00f00020 00802018 21fc 0080 20c8 0100 MOVE #0x008020c8,A_0100.W 00802020 33fc 0003 00f0 00e0 MOVE.W #0x0003,A_00f000e0 00802028 33fc 0003 00f0 00e2 MOVE.W #0x0003,A_00f000e2 00802030 33fc 0000 00f0 0050 MOVE.W #0x0000,A_00f00050 00802038 33fc 0000 00f0 0052 MOVE.W #0x0000,A_00f00052 00802040 23fc 0007 0007 00f0 210c MOVE #0x00070007,A_00f0210c 0080204A 23fc 0007 0007 00f1 a10c MOVE #0x00070007,A_00f1a10c 00802054 23fc 0000 0008 00f0 2114 MOVE #0x00000008,A_00f02114 0080205E 207c 0080 2260 MOVE #0x00802260,A0 00802064 203c 0080 29b0 MOVE #0x008029b0,D0 0080206A 7201 MOVEQ #0x1,D1 0080206C 7400 MOVEQ #0x0,D2 0080206E 4eb9 0080 2100 JSR A_00802100 00802074 40c0 MOVE SR,D0 00802076 0240 f8ff AND.W #0xf8ff,D0 0080207A 46c0 MOVE D0,SR 0080207C 303c 0090 MOVE.W #0x0090,D0 00802080 e548 LSL.W #2,D0 00802082 247c 0080 2a00 MOVE #0x00802a00,A2 00802088 45f2 0000 LEA (D_00,A2,D0.W),A2 0080208C 205a MOVE (A2)+,A0 0080208E 43f9 0003 a300 LEA A_0003a300,A1 00802094 7000 MOVEQ #0x0,D0 00802096 6100 0148 BSR B_8021e0 0080209A 6100 00c0 BSR B_80215c 0080209E 2052 MOVE (A2),A0 008020A0 43f8 4000 LEA A_4000.W,A1 008020A4 7000 MOVEQ #0x0,D0 008020A6 6100 0138 BSR B_8021e0 008020AA 6100 00b0 BSR B_80215c 008020AE 40c0 MOVE SR,D0 008020B0 807c 0700 OR.W #0x0700,D0 008020B4 46c0 MOVE D0,SR 008020B6 23fc 0000 0000 00f0 2100 MOVE #0x00000000,A_00f02100 008020C0 41f9 0003 a300 LEA A_0003a300,A0 008020C6 4ed0 JMP (A0) 008020C8 33fc 0303 00f0 00e0 MOVE.W #0x0303,A_00f000e0 008020D0 33fc 0000 00f0 00e2 MOVE.W #0x0000,A_00f000e2 008020D8 4e73 RTE 2 1 Quote Link to comment Share on other sites More sharing options...
doctorclu Posted June 5 Author Share Posted June 5 Hey Andrew, great to see you as usual! Yeh, no orderly file directory at the beginning of the rom like in Bubsy. Matter of fact, where that one had a lot of the program files towards the beginning, the map files and other such in the middle, and music and voice samples toward the end, this one is quite different: Graphics files at the beginning (at least that is the way the ripper found the RNC files) with an interesting cluster of files by world (mod file, followed by the map files, and other objects, and then another mod file and other related files to that next world and so on.) I would imagine the program files are somewhere in a cluster for each world? Still trying to narrow down to the program files. The disassemly is really exciting to look over, if nothing to see the comparison of the hex values and the commands on the right hand side. Seeing that "33fc" is hex for "move.w" for example, it is always cool when you can find a command in hex. Or know what command to look for and search in hex. Still new to 68K assembly and the wonderful disassembly above. Anything you can say on how to pull up that information would be awesome. 1 Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 5 Share Posted June 5 About a quarter of the commands in the 68000 instruction set are move commands 68000 instructions can be broken down into groups . The basis of an instruction is a 16 bit word - more complex instructions will have extra words to be decoded. Now for Move the top 2 bits are 0 , then the next 2 bits is the size ( 01= byte(8bit) , 10 = long(32 bit) , 11 = word(16bit) ) This leaves 12 bits left which are split into destination and source. Each one of these is made up of 2 3 bit parts , the register and Mode. The mode could be a Data register , address register , immediate value etc some examples are move.b d0,d2 move.l a0,a2 move.w (a1),d7 move.w 123,(a0) move.w 123,(a0)++ Each one would have a different value I would not image there be different program files for each world. In my previous post i told you how to find the program and dta files for the game 1 Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 5 Share Posted June 5 (edited) For the disassembly i can across dasm68k on the internet ( http://finitron.ca/Software/mc680xx.html ) and used a rom file . As a rom starts at 00800000 i used dasm68k /G00 /s800000 ROM_FILE > OUTPUT_FILE of if you unpack the program which should be at 0x0003a300 then you would set the start with /s0003a300 Edited June 5 by Seedy1812 1 1 Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 6 Share Posted June 6 I came across Propack tool somebody wrote which will allow you to at least unpack a file form a rom image, On https://www.romhacking.net/utilities/1310/ you can download the tool ( is a captcha thing you have to pass ) In the zip is rnc_lib.exe - without any parameters you will see the help rnc_lib.exe u Zool2.jag game.bin -i=11920c this should be the game program, then convert to assembler dasm68k /g00 /s3a300 game.bin > game.s How i got 11920c . As i Said the boot up code unpacks 2 files , index 0 and index 0x90. This is how it gets the address 0x00802a00 is an array of pointers into the ROM. Each entry in the array is 4 bytes so to get the address is 0x00802a00 + ( 0x90 * 4). The Rom image starts at 0x00800000 , so this is 0x2a00+(0x90*4) = 0x2c40 the 4 bytes at this offset is 0091920c - again we have to subtract 0x00800000 . This gives 11920c if you do the same for index 0 - the address is 0x00802a00 + ( 0 * 4) and its content is 00802f40 which would give a file offset of 2f40 0080207C 303c 0090 MOVE.W #0x0090,D0 00802080 e548 LSL.W #2,D0 00802082 247c 0080 2a00 MOVE #0x00802a00,A2 00802088 45f2 0000 LEA (D_00,A2,D0.W),A2 0080208C 205a MOVE (A2)+,A0 Quote Link to comment Share on other sites More sharing options...
doctorclu Posted June 6 Author Share Posted June 6 Oh this is good. I was still enjoying the information shown about the table of start addresses hadn't had a chance to try this. Will play with this more tonight. And see if I can rustle up an example of Jaguar controller code to get an idea of what that looks like. Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 6 Share Posted June 6 (edited) Reading the controllers is a standard bit of code which Atari provided so Bubsy , Dinodudes , Raiden and Zool will follow. This is found in bubsy\specfic.jag\seedy\keypad.s The fun thing is the controller port ( aka memory address ) does more than just read the keypads. Normally you write what what buttons on which controller you want to read - each read gets 6 buttons , to read all the buttons you have to do 4 reads but selecting a different collection of buttons. A breakdown of what you have to write is 0x8000 = controller active 0x0100 = audio control - we set it this always but control the volume else where. 0x00ff = if a bit is cleared then then a collection of buttons is read . You only clear one bit in the 0x00ff - this bit will control which controller (( 0 - 1 ) not Team Tap - just controller plugged into front ) ans which set of buttons to read Controller 1 Controller2 0xfe APRLDU 0x7f 0xfd *741B 0xbf 0xfb 2580C 0xdf 0xf7 369#O 0xef The functions in game are found at addresses 004a0e4 reads controller 1 004a160 reads controller 2 Edited June 6 by Seedy1812 1 1 Quote Link to comment Share on other sites More sharing options...
doctorclu Posted June 6 Author Share Posted June 6 Ok this is going to be fun to check out after work. You mentioned the team tap, does that require special coding, or do you code ports 1 and 2 standard and then had special coding from Atari for 3 and 4? 23 minutes ago, Seedy1812 said: Reading the controllers is a standard bit of code which Atari provided so Bubsy , Dinodudes , Raiden and Zool will follow. This is found in bubsy\specfic.jag\seedy\keypad.s As I've dove into Bubsy, Raiden a little bit, and now Zool been fun to see how Imagitec put these together. May have to peek at Dinodudes sometime just for fun. 27 minutes ago, Seedy1812 said: Controller 1 Controller2 0xfe APRLDU 0x7f 0xfd *741B 0xbf 0xfb 2580C 0xdf 0xf7 369#O 0xef More hex values... mohahaha!! Really cool. Again, can't wait to check this out more in a few hours. Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 6 Share Posted June 6 (edited) When the console got launched there was no Team Tap so the games were just written for the 2 controller ports. I would guess special code would have to be written to implement them There is no mention in the revision 8 of the documentation about them . I only had version 6 of the docs when writing Dinodudes. Version 10 of the docs does mention it Edited June 6 by Seedy1812 2 Quote Link to comment Share on other sites More sharing options...
doctorclu Posted June 7 Author Share Posted June 7 So I got about as far as I could tonight. Wine (on my Mac) is not loading dasm68.exe, and won't run in dosbox which I use for dos utilities like ProPack. I have a older PC I will probably plug up for this very soon and run the disassembler. In the meantime, using the hex 33fc to find the "move.w" command since move was said to be a common command, I did a search for that on unpacked (from propack) files that I established were not graphics, music, map, or whatever files. Found three so far. RNC00024.RNC RNC00097.RNC RNC00126.RNC Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 7 Share Posted June 7 4 hours ago, doctorclu said: So I got about as far as I could tonight. Wine (on my Mac) is not loading dasm68.exe, and won't run in dosbox which I use for dos utilities like ProPack. I have a older PC I will probably plug up for this very soon and run the disassembler. In the meantime, using the hex 33fc to find the "move.w" command since move was said to be a common command, I did a search for that on unpacked (from propack) files that I established were not graphics, music, map, or whatever files. Found three so far. RNC00024.RNC 114.95 kB · 0 downloads RNC00097.RNC 23.44 kB · 0 downloads RNC00126.RNC 112.45 kB · 0 downloads 126.rnc is the game.bin file which I explained in my previous post. The other two are just data files , nothing much in them. 97.rnc is 99% full of 0's 24.rnc looks like data , maybe graphics or audio = when you see sequences 13,13,13,13,,14,14,13,13,13, .. 10,11,12,12,12,13,14,14,15,15,16,16,16,16,16,16,15,14 33fc is only one move command in at least 1 in 28,672 before extended addressing modes kick in ( the disassembly i provided had at least 7 different move instructions .. just looking for 1 chances are you will never find what you want ) Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 7 Share Posted June 7 (edited) Zool 2 like Bubsy reads the controller and converts that into a game controller Bubsy has a byte controller bits 0->3 Dpad RLDU 4,5,6 ABC 7 Pause Now Zool does something similar @ 00049D66 the function read and packs the buttons. The bit of code for the Dpad is 00049DD6 4840 SWAP d0 00049DD8 c03c 00f0 AND.B #0x00f0,D0 00049DDC e808 LSR.B #4,D0 So if want to "forget" the up button then we need to do 00049DD6 4840 SWAP d0 00049DD8 c03c 00e0 AND.B #0x00e0,D0 00049DDC e808 LSR.B #4,D0 Thats the easy bit . Repacking the game.txt may cause a bigger packed file and then shuffling the files in the rom to fit would be fun and chances are it would be wrong. The solution is to patch the rom. What it does basically is unpack a game.dta and the game.txt and finally jumps to the start of the game. So instead of jumping straight into the game we jump to an unused part of the rom patch the unpacked game and then jump to the start of the game. Edited June 7 by Seedy1812 Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 7 Share Posted June 7 The code to patch the game would be ROM_ROUTINE 33fc 00e0 0004 9DDA MOVE.W #0x00e0,0x00049DDA 41f9 0003 a300 LEA 0003a300,A0 4ed0 JMP (A0) Now we need to change the boot up code to jump to the ROM_ROUTINE and not 0x0003a300 008020C0 41f9 0003 a300 LEA 0x0003a300,A0 008020C6 4ed0 JMP (A0) Quote Link to comment Share on other sites More sharing options...
doctorclu Posted June 7 Author Share Posted June 7 Thanks for confirming 126 is the program file. I was searching through these three to change the 99% items found to something much less (say 15%) for speedrunning. Funny part was, this file only mentions 99 as in "copyright 1994". Another file had four occurances of 99 in it, and the other file had like 30 occurances of "99". Tinkered with changing those values, no noticable difference. But the changed and recompressed files in those cases were bit for bit of the original at least when re-added to the rom image, so far say that experience. Appreciate the code patch idea because it's true what you say... 5 hours ago, Seedy1812 said: Thats the easy bit . Repacking the game.txt may cause a bigger packed file and then shuffling the files in the rom to fit would be fun and chances are it would be wrong. Just have to see how pro-pack handles a recompressed file with one bit change. Sometimes it goes well, sometimes not. As for this... 5 hours ago, Seedy1812 said: Now Zool does something similar @ 00049D66 the function read and packs the buttons. The bit of code for the Dpad is 00049DD6 4840 SWAP d0 00049DD8 c03c 00f0 AND.B #0x00f0,D0 00049DDC e808 LSR.B #4,D0 So if want to "forget" the up button then we need to do 00049DD6 4840 SWAP d0 00049DD8 c03c 00e0 AND.B #0x00e0,D0 00049DDC e808 LSR.B #4,D0 Very cool, and not visible in the compacted rom but in the uncompacted file RNC126 file we get this... So it's right there, the real question is, will this kill up on the D-Pad for just jumping, or would it also kill the up motion for climbing too? Either way, could be fun to try in a few hours after work. Quote Link to comment Share on other sites More sharing options...
doctorclu Posted June 7 Author Share Posted June 7 (edited) 6 hours ago, Seedy1812 said: The code to patch the game would be ROM_ROUTINE 33fc 00e0 0004 9DDA MOVE.W #0x00e0,0x00049DDA 41f9 0003 a300 LEA 0003a300,A0 4ed0 JMP (A0) Now we need to change the boot up code to jump to the ROM_ROUTINE and not 0x0003a300 008020C0 41f9 0003 a300 LEA 0x0003a300,A0 008020C6 4ed0 JMP (A0) Ah so deleting the move.w line to free up eight bits of space? Not bad. Edited June 7 by doctorclu Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 7 Share Posted June 7 (edited) What i said was leave the rnc file alone do not touch or change it. If you go about deleting bytes out of the code you will make it crash . somethings are relative to other tings and others are set absolutely in memory So moving a function around and calling its old address will do different things and will 100% crash the game. This code change would mean the DPAD UP would not work - so any menus requiring you to press UP would not work. What we will do is patch the program after we have unpacked it but before we run the game The 2 bytes at 0x49DDA need to be written with 0x00e0 Having not player the game i was unaware the up button has 2 functions. So the game boots up say at 802000 and this the code which starts the game up. Now if we find a bit of rom which is not being used ( has to be aligned to even bytes ) at address ROM_ROUTINE so we change this 008020C0 41f9 0003 a300 LEA 0x0003a300,A0 008020C6 4ed0 JMP (A0) so we jump to our patch code 008020C0 41f9 zzzz yyyy LEA ROM_ROUTINE ( 0xzzzzyyyy) ,A0 008020C6 4ed0 JMP (A0) This writes 2 bytes over the game and starts the game up ROM_ROUTINE 33fc 00e0 0004 9DDA MOVE.W #0x00e0,0x00049DDA 41f9 0003 a300 LEA 0003a300,A0 4ed0 JMP (A0) The routine as 2 parts move 0x00e0 into 0x49dda and then let a0 = 0x3a300 jump to address the value of a0 ( 0x3a300 ) Edited June 7 by Seedy1812 Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 7 Share Posted June 7 why would you look for 99 - is there only 100 items on a level ? Quote Link to comment Share on other sites More sharing options...
doctorclu Posted June 8 Author Share Posted June 8 (edited) 6 hours ago, Seedy1812 said: ...So moving a function around and calling its old address will do different things and will 100% crash the game. Roger that. 6 hours ago, Seedy1812 said: This code change would mean the DPAD UP would not work - so any menus requiring you to press UP would not work. What we will do is patch the program after we have unpacked it but before we run the game The 2 bytes at 0x49DDA need to be written with 0x00e0 Having not player the game i was unaware the up button has 2 functions. Oh that's more than fine as you have the 68k know how. And I still want to try killing the up command... been itching to do that all day. In this game the character's jumping ability is triggered by the A button OR pushing up on the controller. This causes the player to jump around at the worst possible moment at times, and quite irratically. So there have been quite a few Zool players over the years that wished the up direction was NOT another option for jumping. But being able to climb up on walls would of course be nice. Will try out the example code when I get home... geez long day. LOL 6 hours ago, Seedy1812 said: why would you look for 99 - is there only 100 items on a level ? Probalby more than 100 items more than likely. The player is required to collect 99% of the "tokens" or items before the player can advance to the next level. Would be nice if that were considerably less. Quite a few thought the earlier Zool games were better because they didn't have the item collecting requirement, and I agree. Edited June 8 by doctorclu 1 Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 8 Share Posted June 8 If this disables the UP button for everything then we are on the right track MOVE.W #0x00e0,0x00049DDA What the following code does is takes the Dpad buttons from the Jaguar controller and take the 4 directions but moves them down to the bottom 4 bits , merges that with ABC buttons and then stores that at memory location 0x4bb4 00049DD8 c03c 00f0 AND.B #0x00f0,D0 00049DDC e808 LSR.B #4,D0 00049DDE 8200 OR.B D0,D1 00049DE0 11c1 4bb4 MOVE.B D1,0x4bb4.W Now bit 0 of 0x4bb4 contains the UP button. 00048920 0838 0000 4bb4 BTST #0,0x4bb4.W 000496F6 0838 0000 4bb4 BTST #0,0x4bb4.W 0005328C 0838 0000 4bb4 BTST #0,0x4bb4.W 0005342A 0838 0000 4bb4 BTST #0,0x4bb4.W 00053590 0838 0000 4bb4 BTST #0,0x4bb4.W 00053904 0838 0000 4bb4 BTST #0,0x4bb4.W 000539DC 0838 0000 4bb4 BTST #0,0x4bb4.W 00053DE6 0838 0000 4bb4 BTST #0,0x4bb4.W 00054344 0838 0000 4bb4 BTST #0,0x4bb4.W 00054398 0838 0000 4bb4 BTST #0,0x4bb4.W 0005618C 0838 0000 4bb4 BTST #0,0x4bb4.W 00056312 0838 0000 4bb4 BTST #0,0x4bb4.W The instruction reads just its written B Test - bit test. The zero flag is set if the bit is 0 , else the flag is cleared. This is checking if the button is pressed (BranchEQual) 00048920 0838 0000 4bb4 BTST #0,0x4bb4.W 00048926 6736 BEQ 0x4895e And this if it is not (BranchNotEqual ) 0005328C 0838 0000 4bb4 BTST #0,0x4bb4.W 00053292 6600 00a2 BNE.L 0x53336 If the branch is within +-127 bytes then instruction fits into 2 bytes else the range is +=32768 and fits into 4 bytes Computers have a NOP instruction which is "do nothing" / Nothing OPeration on a z80 this has a value of 0. 68000 its not 0 but 0x4e71 So to disable the branch you have to overwrite the branch instruction with NOP's . The whole instruction has to be overwritten by NOPs 00048920 0838 0000 4bb4 BTST #0,0x4bb4.W 00048926 4e71 NOP 0005328C 0838 0000 4bb4 BTST #0,0x4bb4.W 00053292 4e71 NOP 00053292 4e71 NOP Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 8 Share Posted June 8 Doing the hack to the rom I suggested yesterday . I have inverted the colours where changed the rom. I put my code over some text which should not be used in the boot up sequence. The change i suggested did disable the UP key anywhere in the game. Quote Link to comment Share on other sites More sharing options...
doctorclu Posted June 8 Author Share Posted June 8 44 minutes ago, Seedy1812 said: Doing the hack to the rom I suggested yesterday . I have inverted the colours where changed the rom. I put my code over some text which should not be used in the boot up sequence. The change i suggested did disable the UP key anywhere in the game. This has been fun. Been working to put in the NOP changes. When recompresed though the file was bit for bit the same size the compressed file was about 8 bits bigger than the original compressed file I was pasting back into the rom. Really wonder why propack sometimes does that, sometimes, not always, create a larger file through the source is the same size So all that to say, will try this startup hack soon. Good to know it cancelled the UP on the D-Pad. Was that for the jump ability, or for climbing too? Quote Link to comment Share on other sites More sharing options...
Seedy1812 Posted June 8 Share Posted June 8 (edited) 13 minutes ago, doctorclu said: This has been fun. Been working to put in the NOP changes. When recompresed though the file was bit for bit the same size the compressed file was about 8 bits bigger than the original compressed file I was pasting back into the rom. Really wonder why propack sometimes does that, sometimes, not always, create a larger file through the source is the same size Its not the size of the file which determines the packed size but the contents of the file. At times it will look for a sequence of numbers eg 20 bytes further along we have the same sequence of 10 bytes so it may write offset size, offset , length. Now offset size may have unique values eg 101 7 bit offset 1101 14 bit offset 11101 24 bit offset 111101 32 bit offset and the we have the offset in however many bits we expect. So anything close by will take up less bits. so changing 00049DD8 c03c 00f0 AND.B #0x00f0,D0 to 00049DD8 c03c 00e0 AND.B #0x00e0,D0 may mean its further away , so different offset and more bits to say where it can be found.. Hey presto a bigger compressed file Edited June 8 by Seedy1812 1 Quote Link to comment Share on other sites More sharing options...
Lostdragon Posted June 8 Share Posted June 8 13 hours ago, doctorclu said: Quite a few thought the earlier Zool games were better because they didn't have the item collecting requirement, and I agree. Been years since I played either Zool or Zool 2, but found both rather flawed in what they were attempting to do. The first games layouts were far too dull, long and tedious. It was something of a real chore knowing where you were supposed to end up. With the sequel, making the player collect floating trash along the way, some of it spilling out of the enemies you destroy and sometimes baby birds have ducks in them and they must be collected in large numbers, a task made far harder by the chaotic graphics choices. 2 Quote Link to comment Share on other sites More sharing options...
doctorclu Posted June 8 Author Share Posted June 8 29 minutes ago, Seedy1812 said: Its not the size of the file which determines the packed size but the contents of the file. At times it will look for a sequence of numbers eg 20 bytes further along we have the same sequence of 10 bytes so it may write offset size, offset , length. .... may mean its further away , so different offset and more bits to say where it can be found.. Hey presto a bigger compressed file That is about what I suspected so there we go. LOL! Got more to play with later knowing that. 30 minutes ago, Lostdragon said: Been years since I played either Zool or Zool 2, but found both rather flawed in what they were attempting to do. The first games layouts were far too dull, long and tedious. It was something of a real chore knowing where you were supposed to end up. With the sequel, making the player collect floating trash along the way, some of it spilling out of the enemies you destroy and sometimes baby birds have ducks in them and they must be collected in large numbers, a task made far harder by the chaotic graphics choices. Ah yes, I do understand where you're coming from. After having played Zool I can see why there was a Zool2. After having played Zool2 I can see why there was not a Zool3. The layouts are something. From my perspective, I've mastered Bubsy, and I enjoy a good 30 minute zip through that game about once a month. I enjoyed Zool RedimeNsioned on the PS4, and got to thinking without that twitchy jump on the d-pad up position, and not needing to collect junk, would make a fun speedrunning game. Layouts are still ... blah, but can they be mastered for a speedrun? What I want to find out. And wow, all these years with Amiga players and you'd think there would be recorded Zool 2 speedruns, but no! Dannng... https://www.speedrun.com/zool2?h=Any-Jaguar&x=02qpo8jd-jlz5w15l.81wdn4oq 1 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.