|
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 |
Author | Message |
---|---|
Shaka
|
Hey nop.nop..
Posted: Thu Jul 19, 2001 3:46 am
|
is it possible to hack the mapper on other codemasters games, like you did with MicroMachines ?
if yes... do you have any idea how ? it is quite interesting the idea.. i gotta say.. did you get to test the hack on a real sms ? --Shaka http://shaka.deep-ice.com |
|
|
Mapper hack
Posted: Thu Jul 19, 2001 8:17 am
|
It's possible to hack the mapper on all the Codemasters games dumped so far, just by replacing the byte sequence $32 $00 $80 [LD ($8000), A] with $32 $FF $FF [LD ($FFFF), A] wherever it occurs. Works fine on a real SMS (w/dev cart) too. Mike |
|
|
Posted: Thu Jul 19, 2001 9:13 pm |
Yes it is possible to do that with all Codemasters games since their mapper works a way very similar to the default Sega mapper. I did hacks of some other games a while ago (Cosmic Spacehead, Fantastic Dizzy..) but usually mapper is the simpliest problem when it comes to making those games works, even on a real system :-) |
|
|
Cosmic Spacehead and Fantastic Dizzy mapper hacks
Posted: Thu Jul 19, 2001 9:49 pm
|
I just gave it a go... CS interestingly only has 4 occurences of 32 00 80, which I presume means it has the asm equivalent of a wrapping function for mapping. FD on the other hand has 142... most of which I think must be other data, so a proper mapper hack might be trickier here. Unless SMS Examine is the solution... anyway, both worked fine as far as I could tell playing each for 5 minutes or so. Maxim |
|
nop.nop
|
Posted: Fri Jul 20, 2001 1:48 am |
Yes Before MicroMachine I did another one (not released yet) and it worked on Meka. At this time Meka didn't support codemasters mapper without notification in Meka.nam. I did that for see if the dump was correct, because I don't know how to make CRC for Meka.nam. I pretty sure this mapper hack will work on standard dev cart too.
Read Mike G
No, but it seem Mike did it and it works (That's just what I want to know and I'm not surprised)
|
|
|
Codemasters dump checking
Posted: Fri Jul 20, 2001 10:09 am
|
I seem to remember Bock will give you the checksum tool if you ask nicely; it's secret to keep meka.nam "pure". You're an SMS Power member so you're probably trustable :P I don't know if applies to GG games since they're supposed to have Squinky Tennis instead of the checksumming routine, but all SMS mode Codemasters games dumped so far (that I know of) have a proprietary checksum which you can check by holding buttons 1 and 2 at startup. My header reader can check the Codemasters checksum for you (the screenshot shows it doing just that for MM), and the readme contains the details on how it works. Maxim |
|
nop.nop
|
Re: Codemasters dump checking
Posted: Fri Jul 20, 2001 11:45 pm
|
It smell bad ! nop nop |
|
|
Re: Codemasters dump checking
Posted: Sat Jul 21, 2001 9:34 am
|
Just to state the obvious, the mapper hack is bound to show that, you need to use the original with a meka.nam entry so it will use the Codemasters mapper. If that's what you did then, well, you must have a bad dump. If you're still waiting for the meka.nam entry then use my header reader on the original to check it. Hmm, you probably already knew that. Maxim |
|
|
Re: Codemasters dump checking
Posted: Sat Jul 21, 2001 5:32 pm
|
Meka doesn't need a Meka.nam entry to use codemaster mappers, it is now autodetected on loading if it's not in Meka.nam (i've tested the detection routine on all Sega 8-bit ROMs to confirm it couldn't create any problem even if deleting meka.nam)
I worked on it and figured out it was a little bug in Codemaster mapper emulation that screwed the checksum (but only the checksum). I fixed it 'as a test' but I'm pretty sure I added the code that's causing the bug in early developement stage and it may be needed. So I'll have to do some testing on all games to verify it isn't screwing anything else. |
|
|
Re: Codemasters dump checking
Posted: Sat Jul 21, 2001 8:21 pm
|
Fair enough, I'd forgotten that :) I gave it a go and it does seem to work fine. Are you autodetecting the mapper usage by looking for the right byte sequence in the start of the rom indicating its use, or by checking for the Codemasters header? (just out of interest)
Works for me, in all the CM roms I've got, in Meka 0.57b, except for the Excellent Dizzy prototype which looks like it doesn't have the code there. Out of interest I non-intelligently hacked the mapper and tried it on an SRAM cart in my SMS2, which strangely also changes the behaviour, but it's not important since it still appears to have no working checksum checking code. Maxim |
|
nop.nop
|
Re: Codemasters dump checking
Posted: Sun Jul 22, 2001 12:32 am
|
Like Zoop tell you, it's no more needed. Beside that, it's already in meka.nam (now) ! I've just try Dave's Dega. It run codemaster mapper too. I can't make picture, but the smiley is happy and the code is E62F. So, the tile of number 1 have to look strange. It's probably some kind of bug that dont affect the game. (I know you worked on it Zoop, but) It's strange that meka get a green smiley with micromachine and not with this one. Dega get 2 green smiley. Of course all the mapper hack give red smiley with the two emu (do I have to hack the Codemasters checksum routine to get green smiley ? Nevermind). There is no link with this story, but I'm on my way to look all the GG rom image that I have to try to identify bad dump and alternate version (It's on good way). Maxim, you can expect a long message on the forum (this forum or the other one ?) that point what I've found in comparaison with your GG Checker. nop nop |
|
nop.nop
|
Re: Cosmic Spacehead and Fantastic Dizzy mapper hacks
Posted: Sun Jul 22, 2001 12:46 am
|
Not yet because some code was consider like data. nop nop |
|
|
Re: Codemasters dump checking
Posted: Sun Jul 22, 2001 11:57 am
|
Sorry nop nop, the bug in MEKA is extremely stupid, so it shouldn't have been existed at all :P
I'll release a new version with some fixes ASAP. |
|
|
Re: Codemasters checksum, GG Checker
Posted: Sun Jul 22, 2001 11:58 am
|
:) too late now... copy and paste: ===================================== How the Codemasters header works ===================================== Offset Type Meaning $7FE0 Byte Number of rom pages over which to calculate the checksum $7FE1 Byte Day $7FE2 Byte Month $7FE3 Byte Year $7FE4 Byte Hour $7FE5 Byte Minute $7FE6 Word Checksum $7FE8 Word $10000 - checksum $7FEA-$7FEF are all zero. $7FE0 is $10 for a 256KB rom and $20 for a 512KB rom. The date and time bytes are BCD. For Cosmic Spacehead they are 31 08 93 10 59 for 31/8/93, 10:59 am. The checksum is found by summing words over the entire file to a 16-bit accumulator, except for the Sega header at $7ff0 to $7fff. The checksum word and the word after it sum to zero, allowing the checksum to be added to the file without changing the resulting checksum. So, if you really wanted, you could patch in the right checksum. As ever, my header reader will calculate it for you - you want 1B3B for your MM hack, for example. Hmm, I just tried it and the mapper hacks seem to somewhat destroy the checksumming code, they don't page into frame 2 at all when activated... so maybe that won't work.
OK... bear in mind GG Checker is based on meka.nam, and I admit I'm perhaps a little too ready to mark an unknown dump as bad if there's already one thought to be good. My logic is, if I add data to fix a few bytes and it turns out the original was correct then I can just as easily add data to patch it back again. It's better than having [A], [B], [C] versions knowing that only one is actually correct. Maxim |
|
|
Re: Codemasters dump checking
Posted: Sun Jul 22, 2001 11:59 am
|
I'm detecting opcodes accessing the mapper inside of the code area.
Sorry, but I don't understand your paragraph :( Can you rephrase it ? |
|
|
OK :)
Posted: Sun Jul 22, 2001 12:48 pm
|
OK. For all the Codemasters roms that I have, the checksums work fine in Meka 0.57b; except for the SMS Excellent Dizzy prototype, which appears to not have the checkum routine. I've since guessed that the problem only manifested itself with Dropzone anyway, which makes my post pointless. I then went off on a tangent, seeing what a mapper-hacked Excellent Dizzy does when asked to checksum itself on a real SMS, but it's not important. Maxim |
|
nop.nop
|
Never mind the green smiley ?
Posted: Sun Jul 22, 2001 4:03 pm
|
It affect the game. Look at the 1 in the picture I posted some time ago !
Of course, I cannot be very efficient since glitch not denote bad dump ! AND THE GREEN SMILEY STORY ?
Yes, so if there is no entry in Meka.nam the first access to the mapper register (or the firsts opcode in the rom ?) determine the type of mapper that's going to be emulated. Perhaps it's more fair than Dega method. With it the two mappers are emulated all the time ! So this new mapper hack with green smiley in Dega may or may not have a green smiley within a real SMS (I think it's OK because the checksum routine access to the mapper have to be hacked too). Unfortunately, I've not made Dev-cart yet... If someone can try for me (or I'm the only stupid guy who wast he's time with sutch a stupid thing).
To late, I already see that in a Dega's big DirectDraw Overlay (with red background). Thanks anyway, without your rom header reader documentation, I haven't figured the inverted checksum (E4C5) !
Or maybe that works with the next meka ! (Try it with Dega in the waiting time). Is it the same than mine ?
Can I suggest some improvement in the debugger ? The most useful one for me is : break at read (/ write) data from xxxx. My younger son ask me to suggest autoload savestate with line command (not with GUI, there's a lot of batch behind he's simple mouse click) because half the time he hit F8 ! nop nop |
|
|
Re: Never mind the green smiley ?
Posted: Sun Jul 22, 2001 6:28 pm
|
The checksum routine must be using another method of accessing the mapper that doesn't do the LD ($8000),A (or whatever it was, I forget exactly). Here's what you get on an SMS, using a devcart: Here's what Meka shows: Woo-hoo! Meka is the world's most accurate emulator as ever. Maxim |
|
nop.nop
|
hicups
Posted: Mon Jul 23, 2001 2:51 am
|
Thanks anyway ! (I will retry soon)
I already know Meka is great ! nop nop |
|
Martin
|
Re: Cosmic Spacehead and Fantastic Dizzy mapper hacks
Posted: Mon Jul 23, 2001 1:08 pm
|
The newest version can almost perfectly disassemble MicroMachines. There are only some minor problems, but it should be good enough to do a patch. |
|
nop.nop
|
Where it is ?
Posted: Mon Jul 23, 2001 9:54 pm
|
where I can found the newest version ? (I have R1 from S8-Dev) nop nop |
|
nop.nop
|
Return of the green smiley
Posted: Mon Jul 23, 2001 10:22 pm
|
Here is the return of the green smiley
OK, I hadn't mutch time to do it... Today is a great day : My third child is born at 11:55 in France. Is cute (and heavy : 4.05 Kg) But I have some time to waste in the evening and I was bitten by that story ! I can't imagine that mess when I start with this hack. But I have good tools now : Meka.dump.ram (when I said I used it, actualy it was essentail) and MesaDX's breakpoint at memory read or write (more than useful). So I found the misshacked opcode in RAM. It was put here by some code located in memory too. And the data for building that opcode come from RAM and ROM. But I think I have sail up the program flow and it probably works now on a Dev-cart. Let me know (Maxim ?) nop nop |
|
|
Yes indeedy, and congratulations
Posted: Mon Jul 23, 2001 10:48 pm
|
Congratulations! I have no idea how heavy that is... 8.9 pounds, still I have no idea. You've got three, I'll believe you when you say it's heavy...
(cropped this time) It seems odd to have such a mess. It makes me think it's definitely better for emulators to emulate the mapper than the rely on hacks (as was once suggested). After all, the mapper emulation seems simple compared to the video mode emulation... Maxim |
|
nop.nop
|
Re: Yes indeedy, and congratulations
Posted: Mon Jul 23, 2001 11:45 pm
|
1 Kg = weight of 1 litre of water 1 Pound = 453.8 g 4.05 Kg = 8.928571428571 Pounds (you've got it)
I think, the interest of sutch a hack is just to run the game on a dev cart (and the fun of make it). And the interest of getting the green smiley is ridiculous (except the fun) ! nop nop |
|
|
About the '1' blue dot
Posted: Tue Jul 24, 2001 9:46 pm
|
I checked the game and the blue dot seems to appears on a real machine, although it is a bit blurry due to the GG screen. Strangely enough, the game does not work on my TV Game Gear, so I can't verify with a clean display. |
|
|
Also..
Posted: Tue Jul 24, 2001 9:54 pm
|
If you modify the dot to make it use the usual color, checksum becomes bad.
|
|
Martin
|
Re: Where it is ?
Posted: Wed Jul 25, 2001 9:45 am
|
Sorry, you can't. It's on my hard drive only. I've still some things to do before the next public release. But anyone can get the current one, if he writes me an email asking about it. |
|