|
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 |
---|---|
|
SG-1000 emu and Safari Hunting
Posted: Wed Oct 26, 2016 4:14 am
|
I noticed that quite a few SG-1000 emulators have or had a problem with Safari Hunting - the game freezes when the player enters the playfield ("jungle").
In my little SG1000 emulator I have the same problem and would like to fix it. Currently every game works, even the Dahjee/Jumbo/Aaronix games. Its just Safari hunting that gives me this problem :P I tried everything I could think of.. tweak irq's, timing, compared my code with other emulators, but just can't find the solution. I was sorta hoping that someone here has gone up against this issue in the past and might be able to guide me in the right direction. thanks for reading & best regards, - dink |
|
|
Posted: Wed Oct 26, 2016 8:43 pm |
which emulators you tried? | |
|
Posted: Thu Oct 27, 2016 12:22 pm |
MESS .142 has the issue, though the current MAME/MESS doesn't.
MEKA before v.40, though it was fixed at .40. www.play-sc3000.com's sg1000 emulator - http://www.play-sc-3000.com/cart.php?Game=SAFHUNTG&Letter=S Kega Fusion plays Safari Hunting alright. To cause the issue, start the game and move your truck to one of the open spots on the field and enter the playfield. If the emulator has the issue, it will freeze up as soon as it draws the player sprite in the field. best regards, - dink |
|
|
Posted: Thu Oct 27, 2016 12:55 pm |
I looked at the diff between 0.39 and 0.40 and there's way too many changes to provide a suitable hint. And frankly I had no idea what I was doing back then. | |
|
Posted: Mon Dec 11, 2017 11:30 am |
Not sure if you figured the issue yourself by now but some user told me I had the same issue in latest versions of Genesis Plus GX and I found the solution after finding that thread by looking at comments related to that game in Meka sourcecode:
https://github.com/ocornut/meka/blob/0ec668276ad207ec5cf3fecbac3f541a1b07f2a7/me...
According to SC3000 notes, the correct mapping for that game is the one below: $0000-$3FFF : ROM
$4000-$7FFF : ROM (mirror) $8000-$BFFF : RAM (mirrored repeatedly every 2K) $C000-$FFFF : Work RAM (mirrored repeatedly every 2K) For some reason, the game is actually reading data from unmapped memory ($8000-$BFFF) which should normally read $FF since the RAM chip is not present. If you return value from a large ROM buffer that was either initialized with zeroes (like I did) or hold data from a previously loaded ROM (not 0xFF), the game will hang. |
|
|
Posted: Mon Dec 11, 2017 1:08 pm |
The mirroring behaviour of games that don't fill the ROM address space is a bit tricky to manage as it's metadata missing from the ROM dumps. | |
|
Posted: Tue Dec 12, 2017 12:33 pm |
Eke, thank you very much for this info!! I've been wondering this for a long time :D | |