
    ZShR	                          " S  S5      r g)c                   H    \ rS rSrSrSrSrSrSrSr	Sr
S rS	 rS
 rS rSrg)Cart   i @     i              c                     Xl         [        U R                   S5       nUR                  5       nS S S 5        SU l        U R	                  W5        g ! , (       d  f       N'= f)NrbF)filepathopenreadwrite_enable	open_data)selfpathfraw_datas       :C:\Users\trevor\Downloads\nes_v0.5\nes_v0.5\engine\cart.py__init__Cart.__init__   sF    M	dmmT	"ah 
# DNN8 
#	"s   A
Ac                    US S U l         U R                   S S S:X  d  [        S5      eU R                   S   U l        U R                  [        R                  -  U l        U R                   S   U l        U R                  [        R                  -  U l        U R                   S   nU R                   S   nUS-	  US-  -  U l	        S	US
-  :g  U l
        S	US-  :g  U l        S	US-  :g  U l        S	US-  :g  U l        U R                  (       a  [        R                  O0U R                  (       a  [        R                  O[        R                   U l        US-	  S-  U l        U R$                  S	:w  a!  [        S['        U R$                  5      -   5      eU R                  S-  U l        SU R(                  -  U l        U R*                  U R
                  -   U l        U R,                  U l        U R.                  U R                  -   U l        XR*                  U R,                   U l        U R
                  [        R4                  :X  a  U R2                  U R2                  -   U l        XR.                  U R0                   U l        [9        U R2                  5      U l        [9        U R6                  5      U l        [;        S5        [;        SU R                   35        g )N      s   NESzNot a valid iNES file            r      r   r      zUnsupported version 	   zrom loaded!zmapper: )
raw_header	Exceptionrom_bank_countr   ROM_BANK_SHIFTrom_sizevrom_bank_countVROM_BANK_SHIFT	vrom_sizemapperfour_screen	trainer_pbattery_ramv_mirroringMIRROR_4_SCREENMIRROR_VERTICALMIRROR_HORIZONTALscreen_mirroringversionstrtrainer_size	rom_startrom_end
vrom_startvrom_endprg_romROM_BANK_SIZEchr_rom	bytearrayprint)r   r   	control_1	control_2s       r   r   Cart.open_data   sC   smDO??2A*,-..//!,D''4+>+>>DM??1-D))T-A-AADN"I"Iq.9z#99DKI
22DI
22DNI
22DI
22D #..d"..d
 	 >J.DL||q	*@3t||CT*T UU!+D$+++DN>>DMM1DLllDOOOdnn4DMNN4<<8DL}}***\\DLL0dlOODMM:DLT\\*DLT\\*DL	-	HT[[M
"#    c                      U R                   U   $ )N)r9   )r   addrs     r   read_prg_romCart.read_prg_romL   s    <<rA   c                 r    U R                   (       a  X R                  U'   g [        S[        U5      -   5        g )Nz;Attempted to write to read-only Cartridge PRG ROM address: )r   r9   r=   hex)r   rC   values      r   write_prg_romCart.write_prg_romO   s*     ll4ICPTIUVrA   )r,   r;   r   r*   r)   r9   r!   r#   r6   r%   r5   r1   r+   r4   r-   r2   r&   r8   r(   r7   r   N)__name__
__module____qualname____firstlineno__r:   r$   VROM_BANK_SIZEr'   r0   r/   r.   r   r   rD   rI   __static_attributes__ rA   r   r   r      s<    -..///2$hWrA   r   N)r   rQ   rA   r   <module>rR      s   RW RWrA   