171
172
//a main joystick port driver representing the case where nothing is plugged in
172
static INPUTC DummyJPort={0,0,0,0,0,0};
173
static INPUTC DummyJPort={0};
173
174
//and an expansion port driver for the same ting
174
static INPUTCFC DummyPortFC={0,0,0,0,0,0};
175
static INPUTCFC DummyPortFC={0};
177
178
//--------4 player driver for expansion port--------
299
300
joy_readbit[w]=0;
302
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^6
303
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
305
306
static INPUTC GPC={ReadGP,0,StrobeGP,UpdateGP,0,0,LogGP,LoadGP};
319
320
//tell all drivers to poll input and set up their logical states
320
321
if(!FCEUMOV_Mode(MOVIEMODE_PLAY))
322
for(int port=0;port<2;port++)
323
for(int port=0;port<2;port++){
323
324
joyports[port].driver->Update(port,joyports[port].ptr,joyports[port].attrib);
324
326
portFC.driver->Update(portFC.ptr,portFC.attrib);
333
335
FCEUMOV_AddInputState();
335
337
//TODO - should this apply to the movie data? should this be displayed in the input hud?
336
if(GameInfo->type==GIT_VSUNI)
338
if(GameInfo->type==GIT_VSUNI){
337
339
FCEU_VSUniSwap(&joy[0],&joy[1]);
340
343
static DECLFR(VSUNIRead0)
371
374
portFC.driver->SLHook(bg,spr,linets,final);
374
378
//binds JPorts[pad] to the driver specified in JPType[pad]
375
379
static void SetInputStuff(int port)
377
381
switch(joyports[port].type)
380
if(GameInfo->type==GIT_VSUNI)
384
if(GameInfo->type==GIT_VSUNI){
381
385
joyports[port].driver = &GPCVS;
383
387
joyports[port].driver= &GPC;
385
390
case SI_ARKANOID:
386
391
joyports[port].driver=FCEU_InitArkanoid(port);
743
751
{ EMUCMD_FDS_EJECT_INSERT, EMUCMDTYPE_FDS, FCEUI_FDSInsert, 0, 0, "Eject or Insert FDS Disk", EMUCMDFLAG_TASEDITOR },
744
752
{ EMUCMD_FDS_SIDE_SELECT, EMUCMDTYPE_FDS, FCEUI_FDSSelect, 0, 0, "Switch FDS Disk Side", EMUCMDFLAG_TASEDITOR },
746
{ EMUCMD_VSUNI_COIN, EMUCMDTYPE_VSUNI, FCEUI_VSUniCoin, 0, 0, "Insert Coin", 0 },
754
{ EMUCMD_VSUNI_COIN, EMUCMDTYPE_VSUNI, FCEUI_VSUniCoin, 0, 0, "Insert Coin", EMUCMDFLAG_TASEDITOR },
747
755
{ EMUCMD_VSUNI_TOGGLE_DIP_0, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 0", 0 },
748
756
{ EMUCMD_VSUNI_TOGGLE_DIP_1, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 1", 0 },
749
757
{ EMUCMD_VSUNI_TOGGLE_DIP_2, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 2", 0 },
754
762
{ EMUCMD_VSUNI_TOGGLE_DIP_7, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 7", 0 },
755
763
{ EMUCMD_VSUNI_TOGGLE_DIP_8, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 8", 0 },
756
764
{ EMUCMD_VSUNI_TOGGLE_DIP_9, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 9", 0 },
757
{ EMUCMD_MISC_AUTOSAVE, EMUCMDTYPE_MISC, FCEUI_Autosave, 0, 0, "Load Last Auto-save", 0},
765
{ EMUCMD_MISC_AUTOSAVE, EMUCMDTYPE_MISC, FCEUI_RewindToLastAutosave, 0, 0, "Load Last Auto-save", 0},
758
766
{ EMUCMD_MISC_SHOWSTATES, EMUCMDTYPE_MISC, ViewSlots, 0, 0, "View save slots", 0 },
759
767
{ EMUCMD_MISC_USE_INPUT_PRESET_1, EMUCMDTYPE_MISC, CommandUsePreset, 0, 0, "Use Input Preset 1", EMUCMDFLAG_TASEDITOR },
760
768
{ EMUCMD_MISC_USE_INPUT_PRESET_2, EMUCMDTYPE_MISC, CommandUsePreset, 0, 0, "Use Input Preset 2", EMUCMDFLAG_TASEDITOR },
1151
1159
static void UndoRedoSavestate(void)
1161
// FIXME this will always evaluate to true, should this be
1162
// if (*lastSavestateMade...) to check if it holds a string or just
1153
1164
if (lastSavestateMade && (undoSS || redoSS))
1154
1165
SwapSaveState();