Here's confirmation that DK64 isn't running Jetpac under emulation.
Grabbed a copy of ram via GameShark from the North American DK64 retail release. That's NDOE internally. Jetpac was run from the Bonus menu, and the ram dump was taken in-game.
Firstly, there isn't Spectrum code or any semblance of a Speccy ROM. Even string conventions are wrong. In the Speccy:
Code:
JETPAC GAME SELECTIOÎ1 1 PLAYER GAMÅ2 2 PLAYER GAMÅ3 KEYBOARÄ4 KEMPSTON JOYSTICË5 START GAMÅ
Note the 0x80 END marker on each string. This is the comparable block within DK at 8002E9D0:
Code:
1UP.%d!.2UP.HI..%06d....%06d....%06d....JETPAC GAME SELECTION...1@@@1@PLAYER@GAME...2@@@2@PLAYER@GAME...3@@@KEYBOARD....4@@@KEMPSTON@JOYSTICK...5 START GAME..%c1983 A.C.G. ALL RIGHTS RESERVED...RETURN..DELETE@HISCORE..EXIT@@JETPAC....RAREWARE COIN COLLECTED.GAME OVER PLAYER %d
The @ symbols really are @ symbols, by the way. This is used exclusively in ASM for normal string display.
NDOE @ 80024478:
Code:
//80024478:
3C058003 LUI A1,8003
AFA20010 SW V0,0010 (SP)
00601025 OR V0,V1,R0
24A5E9D0 ADDIU A1,A1,E9D0 ;A1=8002E9D0: b"1UP"
02C02025 OR A0,S6,R0
24060038 ADDIU A2,R0,0038
24070018 ADDIU A3,R0,0018
AFA30050 SW V1,0050 (SP)
0C00ABBF JAL 80002AEF ;print string A1 at (A2,A3) in DL A0
AFA3004C SW V1,004C (SP)
//800244A0:
3C118003 LUI S1,8003
3C138003 LUI S3,8003
2631EC4C ADDIU S1,S1,EC4C ;S1=8002EC4C: scores, high, 2pl, 1pl or something like that
2673E9D4 ADDIU S3,S3,E9D4 ;S3=8002E9D4: b"%d!"
00008025 OR S0,R0,R0
27B50060 ADDIU S5,SP,0060
24140002 ADDIU S4,R0,0002
8E260008 LW A2,S1,0008 ;A2=1UP score
02A02025 OR A0,S5,R0
02602825 OR A1,S3,R0
etc.
Point here being that the scores and menus are all printed via N64 ASM and not under Spectrum emulation. For that matter, at no point will the input read routine from Jetpac be found.
In the Spectrum version you'd have this:
Code:
@6204
3A.F35C LD A,(0x5CF3)
57 LD D,A
3E.F7 LD A,0xF7
D3.FD OUT 0xFD,A
DB.FE IN A,(0xFE)
2F CPL
CB47 BIT 0,A
28.02 JR Z,+2
CB82 RES 0,D
Simple. Reads input and tests masks for pressed number keys, changing entries accordingly. At no point is this present in a DK64 snapshot.
No emulation. They recompiled it as N64 code, for good reason. No reason for a whole emulator when you only need to run one game.