-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathfunctionality.txt
80 lines (67 loc) · 3.14 KB
/
functionality.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
what the hell do I actually need the freemlib to do?
====================================================
I've started the process of moving this discussion to the functions folder.
[Overall]
There's two ways of doing things on the Neo-Geo:
* the easy way (BIOS calls)
* the hard way (handling the hardware registers yourself)
Let's assume we're taking the easy way for now.
Things I haven't fully considered:
* P ROM bankswitching
* Timer interrupt/IRQ2
Values are set with LSPC_TIMERHIGH and LSPC_TIMERLOW.
LSPC_MODE sets the timer operation:
76543210
||||xxxx- (unrelated)
|||+----- Enable timer interrupt
||+------ Load counter on write to LSPC_TIMERLOW (set either bit 6 or 7 as well)
|+------- Load counter at beginning of HBlank of first VBlank
+-------- Load counter when it becomes 0
The interrupt is triggered when the timer reaches 0. This is something you want
to consider on a case-by-case basis, as you might want different effects at
different times...
* SNK docs say to perform two steps after reset:
1) Write transparent character (e.g. $0020) into SCB1 of Sprite 0 (VRAM $0000-$003F).
2) Write $0000 into SCB3 for Sprite 0 (VRAM $8200).
* Required AES/MVS functionality (I have stubs for some things)
Not sure what is 100% required... Has to do with responding to request codes?
* anything for the CD systems (that comes later)
* additional BIOS calls
* DRAM uploading and stuff
================================================================================
[Input]
From the "Known Issues" page on the UNIVERSE BIOS homepage
http://unibios.free.fr/knownissues.html
"MVS only issues
There are problems in console mode with some games when trying to use the coin
switches as select buttons (pressing a coin switch won't pause a game).
This is due to games accessing the ports directly and not via the BIOS."
Games affected:
* The Super Spy 1990 SNK
* Sengoku 1991 SNK
* Andro Dunos 1992 Visco
* 3 Count Bout 1993 SNK
* Sengoku 2 1993 SNK
* Spinmaster 1993 Data East
* Art of Fighting 2 1994 SNK
* Voltage Fighter Gowcaizer 1995 Technos
* Art of Fighting 3 1996 SNK
* Super Dodge Ball 1996 Technos
* Tecmo World Soccer '96 1996 Tecmo
* Magical Drop 3 1997 Data East
* Money Puzzle/Idol Exchanger 1997 Face
* The Last Blade 1997 SNK
* Metal Slug 2, X, 3-5 1998-2003 SNK, Mega(/Noise Factory?)
* The Last Blade 2 1998 SNK
* Ganryu 1999 Visco
* Strikers 1945 Plus 1999 Psikyo
* Sengoku 3 2001 Noise Factory
* Rage of the Dragons 2002 Evoga/Noise Factory
* Matrimelee 2003 Noise Factory
Interesting patterns of note:
* It looks pretty consistent, only 2000 and 2004-2005 aren't represented.
* SNK's usage was on and off (preference of different teams? Sengoku and Last Blade teams for sure.)
* Metal Slug 1 (under Nazca) didn't do it, but every other Metal Slug (under SNK) does...
* Visco's first and second to last Neo games were the only ones to do this...
* 2/3rds of Technos games do it. (Double Dragon doesn't?)
* Noise Factory is at least consistent about it. They might have inherited it from the Sengoku team?