mikelatiolais / pinmame_fork

0 stars 1 forks source link

Notes #7

Open mikelatiolais opened 5 years ago

mikelatiolais commented 5 years ago

Core.c

Lamps: core.c:void core_setLamp(UINT8 lampMatrix, int col, int row) { core.c:void core_setLampBlank(UINT8 lampMatrix, int col, int row) { INLINE void core_update_modulated_light(UINT32 light, int bit){ extern UINT8 core_calc_modulated_light(UINT32 bits, UINT32 bit_count, UINT8 prev_level);

Switches: core.c: void core_setSw(int swNo, int value) void core_updateSw(int flipEn) extern int core_getSw(int swNo); extern void core_updInvSw(int swNo, int inv); extern int core_getSwCol(int colEn);

Solenoid: extern int core_getSol(int solNo); extern int core_getPulsedSol(int solNo); extern UINT64 core_getAllSol(void);

mikelatiolais commented 5 years ago

Add an OR to the VPINMAME code that is setting up the currbuffer in core.c:

ifdef VPINMAME

            const int offs = (ii-1)*layout->length + jj;
            currbuffer[offs] = col;
            if(layout->length >= 128) { // Capcom hack
                    g_raw_dmdbuffer[offs + raw_dmdoffs] = shade_16_enabled ? raw_16[col] : raw_4[col];
                    g_raw_colordmdbuffer[offs + raw_dmdoffs] = shade_16_enabled ? palette32_16[col] : palette32_4[col];
            }

endif

mikelatiolais commented 5 years ago

Actually, this won't work. VPINMAME includes the windows.h which is not going to be useful. Just pull the bits out that are defining the raw column/row data.