View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0005231 | ISS | [All Projects] General | public | 2021-05-24 23:14 | 2021-09-03 11:12 | ||||||||
Reporter | StingRay | ||||||||||||
Assigned To | Psygore | Project Info | Incredible Shrinking Sphere (Electric Dreams) http://www.whdload.de/games/ISS.html | ||||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||||||
Status | closed | Resolution | fixed | ||||||||||
Summary | 0005231: Hi Psygore, the ISS patch needs a few improvements, which I'll list here: - | ||||||||||||
Description | GameVersion: english,pal,2 disks SlaveVersion: 1.0 from 20.05.2000 Hi Psygore, the ISS patch needs a few improvements, which I'll list here: - 68000 quitkey support (game uses it's own level 2 interupt for keyboard handling hence the KickEmu support for that is rendered ineffective) - default quitkey needs to be changed to something else than F10 as that key is used to pause the game - the only OS routines used in the game are DoIO and WaitTOF, both are very easy to emulate so the patch can be made without any OS emulation at all. I'll apply the needed code here so can copy/paste it. The only other change needed to make the patch run without a Kickstart 1.3 ROM is adapting the level 3 interrupt code, this can be easily done as well. Code follows. Thanks and best regards, Sting ; create exec and graphics library emulation lea $200.w,a0 move.l a0,a6 move.l a6,$4.w lea -456(a6),a1 ; DoIO() move.w #$4ef9,(a1)+ pea DoIo(pc) move.l (a7)+,(a1) lea $300.w,a0 move.l a0,$300-4.w lea -270(a0),a1 ; WaitTOF() move.w #$4ef9,(a1)+ pea WaitTOF(pc) move.l (a7)+,(a1) ; --------------------------------------------------------------------------- ; Exec library emulation code DoIo cmp.w #CMD_READ,IO_COMMAND(a1) bne.b .no_read movem.l d0-a6,-(a7) move.l IO_OFFSET(a1),d0 move.l IO_LENGTH(a1),d1 move.l IO_DATA(a1),a0 moveq #1,d2 move.l resload(pc),a2 jsr resload_DiskLoad(a2) movem.l (a7)+,d0-a6 .no_read rts ; --------------------------------------------------------------------------- ; Graphics library emulation code WaitTOF bra.w WaitRaster .SetVBI pea .NewVBI(pc) move.l (a7)+,$6c.w rts .NewVBI movem.l d0-a6,-(a7) btst #4,$dff01e+1 beq.b .noCopInt cmp.w #0,$a400+$9DA4 ; 1: music enabled beq.w .lbC0078FA cmp.w #1,$a400+$9DA4 bne.w .lbC0078F4 jsr $a400+$790c bra.w .lbC0078FA .lbC0078F4 jsr $a400+$9df0 .lbC0078FA .noCopInt movem.l (a7)+,d0-a6 .AckVBI move.w #1<<4|1<<5|1<<6,$dff09c move.w #1<<4|1<<5|1<<6,$dff09c rte WaitRaster .wait1 btst #0,$dff005 beq.b .wait1 .wait2 btst #0,$dff005 bne.b .wait2 rts | ||||||||||||
Tags | No tags attached. | ||||||||||||
Machine | A4000 | ||||||||||||
CPU | 68060 | ||||||||||||
CPUSpeed | 50 | ||||||||||||
ChipSet | AGA | ||||||||||||
GFXCard | Picasso IV | ||||||||||||
ChipMem | 2 MB | ||||||||||||
FastMem | 128 MB | ||||||||||||
Workbench | OS 3.1 | ||||||||||||
KickROM | 40 - Kick 3.1 | ||||||||||||
KickSoft | None | ||||||||||||
WHDLoad | 18.6 | ||||||||||||
imported | yes | ||||||||||||
Attached Files |
|
Notes | |
Psygore (developer) 2021-05-28 15:54 |
Hi StingRay, Yep, if there are only DoIO and WaitTOF to patch, it will be easy to remove the kickemu (we have done some slaves with more OS stuff patched ;) I didn’t take a look at this slave since it was written in 2002. IIRC the kickemu hadn’t the quitkey yet back in the day, so it will have a working quitkey on 68000 now. I usually filled the jump table in library emulation with illegal instruction so it will quit if an os routine is not patched and you will know the function offset. Thanks for your ideas and suggestions, I really appreciate. I will rewrite the slave. |
StingRay (developer) 2021-05-29 16:42 |
Current KickEmu won't help with the 68000 quitkey support, the game bangs the level 2 interrupt vector ($68.w) directly and uses its own level 2 interrupt. If you're going to rewrite the slave, you may also add some trainers as the game is very hard. Lives are decreased at $a400+$e90, ammo is decreased at $A400+$49da. |
Psygore (developer) 2021-07-16 19:53 |
Install has been updated. |
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2021-05-24 23:14 | administrator | New Issue | |
2021-05-24 23:14 | administrator | Status | new => assigned |
2021-05-24 23:14 | administrator | Assigned To | => Psygore |
2021-05-28 15:54 | Psygore | Note Added: 0010382 | |
2021-05-29 16:42 | StingRay | Note Added: 0010385 | |
2021-07-16 19:53 | Psygore | Status | assigned => resolved |
2021-07-16 19:53 | Psygore | Resolution | open => fixed |
2021-07-16 19:53 | Psygore | Note Added: 0010541 | |
2021-09-03 11:12 | Psygore | Status | resolved => closed |